1/* Simulator instruction semantics for frvbf.
2
3THIS FILE IS MACHINE GENERATED WITH CGEN.
4
5Copyright 1996-2005 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 3 of the License, or
12(at your option) any 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
20along with this program.  If not, see <http://www.gnu.org/licenses/>.
21
22*/
23
24#define WANT_CPU frvbf
25#define WANT_CPU_FRVBF
26
27#include "sim-main.h"
28#include "cgen-mem.h"
29#include "cgen-ops.h"
30
31#undef GET_ATTR
32#if defined (__STDC__) || defined (ALMOST_STDC) || defined (HAVE_STRINGIZE)
33#define GET_ATTR(cpu, num, attr) CGEN_ATTR_VALUE (NULL, abuf->idesc->attrs, CGEN_INSN_##attr)
34#else
35#define GET_ATTR(cpu, num, attr) CGEN_ATTR_VALUE (NULL, abuf->idesc->attrs, CGEN_INSN_/**/attr)
36#endif
37
38/* This is used so that we can compile two copies of the semantic code,
39   one with full feature support and one without that runs fast(er).
40   FAST_P, when desired, is defined on the command line, -DFAST_P=1.  */
41#if FAST_P
42#define SEM_FN_NAME(cpu,fn) XCONCAT3 (cpu,_semf_,fn)
43#undef TRACE_RESULT
44#define TRACE_RESULT(cpu, abuf, name, type, val)
45#else
46#define SEM_FN_NAME(cpu,fn) XCONCAT3 (cpu,_sem_,fn)
47#endif
48
49/* x-invalid: --invalid-- */
50
51static SEM_PC
52SEM_FN_NAME (frvbf,x_invalid) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
53{
54#define FLD(f) abuf->fields.fmt_empty.f
55  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
56  int UNUSED written = 0;
57  IADDR UNUSED pc = abuf->addr;
58  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 0);
59
60  {
61    /* Update the recorded pc in the cpu state struct.
62       Only necessary for WITH_SCACHE case, but to avoid the
63       conditional compilation ....  */
64    SET_H_PC (pc);
65    /* Virtual insns have zero size.  Overwrite vpc with address of next insn
66       using the default-insn-bitsize spec.  When executing insns in parallel
67       we may want to queue the fault and continue execution.  */
68    vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
69    vpc = sim_engine_invalid_insn (current_cpu, pc, vpc);
70  }
71
72  return vpc;
73#undef FLD
74}
75
76/* x-after: --after-- */
77
78static SEM_PC
79SEM_FN_NAME (frvbf,x_after) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
80{
81#define FLD(f) abuf->fields.fmt_empty.f
82  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
83  int UNUSED written = 0;
84  IADDR UNUSED pc = abuf->addr;
85  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 0);
86
87  {
88#if WITH_SCACHE_PBB_FRVBF
89    frvbf_pbb_after (current_cpu, sem_arg);
90#endif
91  }
92
93  return vpc;
94#undef FLD
95}
96
97/* x-before: --before-- */
98
99static SEM_PC
100SEM_FN_NAME (frvbf,x_before) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
101{
102#define FLD(f) abuf->fields.fmt_empty.f
103  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
104  int UNUSED written = 0;
105  IADDR UNUSED pc = abuf->addr;
106  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 0);
107
108  {
109#if WITH_SCACHE_PBB_FRVBF
110    frvbf_pbb_before (current_cpu, sem_arg);
111#endif
112  }
113
114  return vpc;
115#undef FLD
116}
117
118/* x-cti-chain: --cti-chain-- */
119
120static SEM_PC
121SEM_FN_NAME (frvbf,x_cti_chain) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
122{
123#define FLD(f) abuf->fields.fmt_empty.f
124  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
125  int UNUSED written = 0;
126  IADDR UNUSED pc = abuf->addr;
127  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 0);
128
129  {
130#if WITH_SCACHE_PBB_FRVBF
131#ifdef DEFINE_SWITCH
132    vpc = frvbf_pbb_cti_chain (current_cpu, sem_arg,
133			       pbb_br_type, pbb_br_npc);
134    BREAK (sem);
135#else
136    /* FIXME: Allow provision of explicit ifmt spec in insn spec.  */
137    vpc = frvbf_pbb_cti_chain (current_cpu, sem_arg,
138			       CPU_PBB_BR_TYPE (current_cpu),
139			       CPU_PBB_BR_NPC (current_cpu));
140#endif
141#endif
142  }
143
144  return vpc;
145#undef FLD
146}
147
148/* x-chain: --chain-- */
149
150static SEM_PC
151SEM_FN_NAME (frvbf,x_chain) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
152{
153#define FLD(f) abuf->fields.fmt_empty.f
154  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
155  int UNUSED written = 0;
156  IADDR UNUSED pc = abuf->addr;
157  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 0);
158
159  {
160#if WITH_SCACHE_PBB_FRVBF
161    vpc = frvbf_pbb_chain (current_cpu, sem_arg);
162#ifdef DEFINE_SWITCH
163    BREAK (sem);
164#endif
165#endif
166  }
167
168  return vpc;
169#undef FLD
170}
171
172/* x-begin: --begin-- */
173
174static SEM_PC
175SEM_FN_NAME (frvbf,x_begin) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
176{
177#define FLD(f) abuf->fields.fmt_empty.f
178  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
179  int UNUSED written = 0;
180  IADDR UNUSED pc = abuf->addr;
181  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 0);
182
183  {
184#if WITH_SCACHE_PBB_FRVBF
185#if defined DEFINE_SWITCH || defined FAST_P
186    /* In the switch case FAST_P is a constant, allowing several optimizations
187       in any called inline functions.  */
188    vpc = frvbf_pbb_begin (current_cpu, FAST_P);
189#else
190#if 0 /* cgen engine can't handle dynamic fast/full switching yet.  */
191    vpc = frvbf_pbb_begin (current_cpu, STATE_RUN_FAST_P (CPU_STATE (current_cpu)));
192#else
193    vpc = frvbf_pbb_begin (current_cpu, 0);
194#endif
195#endif
196#endif
197  }
198
199  return vpc;
200#undef FLD
201}
202
203/* add: add$pack $GRi,$GRj,$GRk */
204
205static SEM_PC
206SEM_FN_NAME (frvbf,add) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
207{
208#define FLD(f) abuf->fields.sfmt_addcc.f
209  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
210  int UNUSED written = 0;
211  IADDR UNUSED pc = abuf->addr;
212  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
213
214  {
215    SI opval = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
216    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
217    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
218  }
219
220  return vpc;
221#undef FLD
222}
223
224/* sub: sub$pack $GRi,$GRj,$GRk */
225
226static SEM_PC
227SEM_FN_NAME (frvbf,sub) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
228{
229#define FLD(f) abuf->fields.sfmt_addcc.f
230  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
231  int UNUSED written = 0;
232  IADDR UNUSED pc = abuf->addr;
233  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
234
235  {
236    SI opval = SUBSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
237    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
238    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
239  }
240
241  return vpc;
242#undef FLD
243}
244
245/* and: and$pack $GRi,$GRj,$GRk */
246
247static SEM_PC
248SEM_FN_NAME (frvbf,and) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
249{
250#define FLD(f) abuf->fields.sfmt_addcc.f
251  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
252  int UNUSED written = 0;
253  IADDR UNUSED pc = abuf->addr;
254  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
255
256  {
257    SI opval = ANDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
258    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
259    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
260  }
261
262  return vpc;
263#undef FLD
264}
265
266/* or: or$pack $GRi,$GRj,$GRk */
267
268static SEM_PC
269SEM_FN_NAME (frvbf,or) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
270{
271#define FLD(f) abuf->fields.sfmt_addcc.f
272  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
273  int UNUSED written = 0;
274  IADDR UNUSED pc = abuf->addr;
275  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
276
277  {
278    SI opval = ORSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
279    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
280    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
281  }
282
283  return vpc;
284#undef FLD
285}
286
287/* xor: xor$pack $GRi,$GRj,$GRk */
288
289static SEM_PC
290SEM_FN_NAME (frvbf,xor) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
291{
292#define FLD(f) abuf->fields.sfmt_addcc.f
293  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
294  int UNUSED written = 0;
295  IADDR UNUSED pc = abuf->addr;
296  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
297
298  {
299    SI opval = XORSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
300    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
301    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
302  }
303
304  return vpc;
305#undef FLD
306}
307
308/* not: not$pack $GRj,$GRk */
309
310static SEM_PC
311SEM_FN_NAME (frvbf,not) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
312{
313#define FLD(f) abuf->fields.sfmt_scutss.f
314  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
315  int UNUSED written = 0;
316  IADDR UNUSED pc = abuf->addr;
317  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
318
319  {
320    SI opval = INVSI (GET_H_GR (FLD (f_GRj)));
321    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
322    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
323  }
324
325  return vpc;
326#undef FLD
327}
328
329/* sdiv: sdiv$pack $GRi,$GRj,$GRk */
330
331static SEM_PC
332SEM_FN_NAME (frvbf,sdiv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
333{
334#define FLD(f) abuf->fields.sfmt_addcc.f
335  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
336  int UNUSED written = 0;
337  IADDR UNUSED pc = abuf->addr;
338  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
339
340{
341frvbf_signed_integer_divide (current_cpu, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), FLD (f_GRk), 0);
342; /*clobber*/
343}
344
345  return vpc;
346#undef FLD
347}
348
349/* nsdiv: nsdiv$pack $GRi,$GRj,$GRk */
350
351static SEM_PC
352SEM_FN_NAME (frvbf,nsdiv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
353{
354#define FLD(f) abuf->fields.sfmt_addcc.f
355  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
356  int UNUSED written = 0;
357  IADDR UNUSED pc = abuf->addr;
358  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
359
360{
361frvbf_signed_integer_divide (current_cpu, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), FLD (f_GRk), 1);
362; /*clobber*/
363}
364
365  return vpc;
366#undef FLD
367}
368
369/* udiv: udiv$pack $GRi,$GRj,$GRk */
370
371static SEM_PC
372SEM_FN_NAME (frvbf,udiv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
373{
374#define FLD(f) abuf->fields.sfmt_addcc.f
375  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
376  int UNUSED written = 0;
377  IADDR UNUSED pc = abuf->addr;
378  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
379
380{
381frvbf_unsigned_integer_divide (current_cpu, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), FLD (f_GRk), 0);
382; /*clobber*/
383}
384
385  return vpc;
386#undef FLD
387}
388
389/* nudiv: nudiv$pack $GRi,$GRj,$GRk */
390
391static SEM_PC
392SEM_FN_NAME (frvbf,nudiv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
393{
394#define FLD(f) abuf->fields.sfmt_addcc.f
395  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
396  int UNUSED written = 0;
397  IADDR UNUSED pc = abuf->addr;
398  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
399
400{
401frvbf_unsigned_integer_divide (current_cpu, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), FLD (f_GRk), 1);
402; /*clobber*/
403}
404
405  return vpc;
406#undef FLD
407}
408
409/* smul: smul$pack $GRi,$GRj,$GRdoublek */
410
411static SEM_PC
412SEM_FN_NAME (frvbf,smul) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
413{
414#define FLD(f) abuf->fields.sfmt_smulcc.f
415  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
416  int UNUSED written = 0;
417  IADDR UNUSED pc = abuf->addr;
418  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
419
420  {
421    DI opval = MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi))), EXTSIDI (GET_H_GR (FLD (f_GRj))));
422    sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
423    TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
424  }
425
426  return vpc;
427#undef FLD
428}
429
430/* umul: umul$pack $GRi,$GRj,$GRdoublek */
431
432static SEM_PC
433SEM_FN_NAME (frvbf,umul) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
434{
435#define FLD(f) abuf->fields.sfmt_smulcc.f
436  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
437  int UNUSED written = 0;
438  IADDR UNUSED pc = abuf->addr;
439  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
440
441  {
442    DI opval = MULDI (ZEXTSIDI (GET_H_GR (FLD (f_GRi))), ZEXTSIDI (GET_H_GR (FLD (f_GRj))));
443    sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
444    TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
445  }
446
447  return vpc;
448#undef FLD
449}
450
451/* smu: smu$pack $GRi,$GRj */
452
453static SEM_PC
454SEM_FN_NAME (frvbf,smu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
455{
456#define FLD(f) abuf->fields.sfmt_smass.f
457  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
458  int UNUSED written = 0;
459  IADDR UNUSED pc = abuf->addr;
460  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
461
462  {
463    DI opval = MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi))), EXTSIDI (GET_H_GR (FLD (f_GRj))));
464    sim_queue_fn_di_write (current_cpu, frvbf_h_iacc0_set, ((UINT) 0), opval);
465    TRACE_RESULT (current_cpu, abuf, "iacc0", 'D', opval);
466  }
467
468  return vpc;
469#undef FLD
470}
471
472/* smass: smass$pack $GRi,$GRj */
473
474static SEM_PC
475SEM_FN_NAME (frvbf,smass) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
476{
477#define FLD(f) abuf->fields.sfmt_smass.f
478  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
479  int UNUSED written = 0;
480  IADDR UNUSED pc = abuf->addr;
481  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
482
483  {
484    DI opval = (ANDIF (ANDIF (GTDI (MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi))), EXTSIDI (GET_H_GR (FLD (f_GRj)))), 0), GTDI (GET_H_IACC0 (((UINT) 0)), 0)), LTDI (SUBDI (9223372036854775807, MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi))), EXTSIDI (GET_H_GR (FLD (f_GRj))))), GET_H_IACC0 (((UINT) 0))))) ? (MAKEDI (2147483647, 0xffffffff)) : (ANDIF (ANDIF (LTDI (MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi))), EXTSIDI (GET_H_GR (FLD (f_GRj)))), 0), LTDI (GET_H_IACC0 (((UINT) 0)), 0)), GTDI (SUBDI (9223372036854775808, MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi))), EXTSIDI (GET_H_GR (FLD (f_GRj))))), GET_H_IACC0 (((UINT) 0))))) ? (MAKEDI (0x80000000, 0)) : (ADDDI (GET_H_IACC0 (((UINT) 0)), MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi))), EXTSIDI (GET_H_GR (FLD (f_GRj))))));
485    sim_queue_fn_di_write (current_cpu, frvbf_h_iacc0_set, ((UINT) 0), opval);
486    TRACE_RESULT (current_cpu, abuf, "iacc0", 'D', opval);
487  }
488
489  return vpc;
490#undef FLD
491}
492
493/* smsss: smsss$pack $GRi,$GRj */
494
495static SEM_PC
496SEM_FN_NAME (frvbf,smsss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
497{
498#define FLD(f) abuf->fields.sfmt_smass.f
499  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
500  int UNUSED written = 0;
501  IADDR UNUSED pc = abuf->addr;
502  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
503
504  {
505    DI opval = (ANDIF (ANDIF (LTDI (MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi))), EXTSIDI (GET_H_GR (FLD (f_GRj)))), 0), GTDI (GET_H_IACC0 (((UINT) 0)), 0)), LTDI (ADDDI (9223372036854775807, MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi))), EXTSIDI (GET_H_GR (FLD (f_GRj))))), GET_H_IACC0 (((UINT) 0))))) ? (MAKEDI (2147483647, 0xffffffff)) : (ANDIF (ANDIF (GTDI (MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi))), EXTSIDI (GET_H_GR (FLD (f_GRj)))), 0), LTDI (GET_H_IACC0 (((UINT) 0)), 0)), GTDI (ADDDI (9223372036854775808, MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi))), EXTSIDI (GET_H_GR (FLD (f_GRj))))), GET_H_IACC0 (((UINT) 0))))) ? (MAKEDI (0x80000000, 0)) : (SUBDI (GET_H_IACC0 (((UINT) 0)), MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi))), EXTSIDI (GET_H_GR (FLD (f_GRj))))));
506    sim_queue_fn_di_write (current_cpu, frvbf_h_iacc0_set, ((UINT) 0), opval);
507    TRACE_RESULT (current_cpu, abuf, "iacc0", 'D', opval);
508  }
509
510  return vpc;
511#undef FLD
512}
513
514/* sll: sll$pack $GRi,$GRj,$GRk */
515
516static SEM_PC
517SEM_FN_NAME (frvbf,sll) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
518{
519#define FLD(f) abuf->fields.sfmt_addcc.f
520  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
521  int UNUSED written = 0;
522  IADDR UNUSED pc = abuf->addr;
523  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
524
525  {
526    SI opval = SLLSI (GET_H_GR (FLD (f_GRi)), ANDSI (GET_H_GR (FLD (f_GRj)), 31));
527    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
528    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
529  }
530
531  return vpc;
532#undef FLD
533}
534
535/* srl: srl$pack $GRi,$GRj,$GRk */
536
537static SEM_PC
538SEM_FN_NAME (frvbf,srl) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
539{
540#define FLD(f) abuf->fields.sfmt_addcc.f
541  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
542  int UNUSED written = 0;
543  IADDR UNUSED pc = abuf->addr;
544  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
545
546  {
547    SI opval = SRLSI (GET_H_GR (FLD (f_GRi)), ANDSI (GET_H_GR (FLD (f_GRj)), 31));
548    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
549    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
550  }
551
552  return vpc;
553#undef FLD
554}
555
556/* sra: sra$pack $GRi,$GRj,$GRk */
557
558static SEM_PC
559SEM_FN_NAME (frvbf,sra) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
560{
561#define FLD(f) abuf->fields.sfmt_addcc.f
562  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
563  int UNUSED written = 0;
564  IADDR UNUSED pc = abuf->addr;
565  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
566
567  {
568    SI opval = SRASI (GET_H_GR (FLD (f_GRi)), ANDSI (GET_H_GR (FLD (f_GRj)), 31));
569    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
570    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
571  }
572
573  return vpc;
574#undef FLD
575}
576
577/* slass: slass$pack $GRi,$GRj,$GRk */
578
579static SEM_PC
580SEM_FN_NAME (frvbf,slass) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
581{
582#define FLD(f) abuf->fields.sfmt_addcc.f
583  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
584  int UNUSED written = 0;
585  IADDR UNUSED pc = abuf->addr;
586  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
587
588  {
589    SI opval = frvbf_shift_left_arith_saturate (current_cpu, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
590    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
591    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
592  }
593
594  return vpc;
595#undef FLD
596}
597
598/* scutss: scutss$pack $GRj,$GRk */
599
600static SEM_PC
601SEM_FN_NAME (frvbf,scutss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
602{
603#define FLD(f) abuf->fields.sfmt_scutss.f
604  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
605  int UNUSED written = 0;
606  IADDR UNUSED pc = abuf->addr;
607  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
608
609  {
610    SI opval = frvbf_iacc_cut (current_cpu, GET_H_IACC0 (((UINT) 0)), GET_H_GR (FLD (f_GRj)));
611    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
612    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
613  }
614
615  return vpc;
616#undef FLD
617}
618
619/* scan: scan$pack $GRi,$GRj,$GRk */
620
621static SEM_PC
622SEM_FN_NAME (frvbf,scan) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
623{
624#define FLD(f) abuf->fields.sfmt_addcc.f
625  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
626  int UNUSED written = 0;
627  IADDR UNUSED pc = abuf->addr;
628  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
629
630{
631  SI tmp_tmp1;
632  SI tmp_tmp2;
633  tmp_tmp1 = GET_H_GR (FLD (f_GRi));
634  tmp_tmp2 = SRASI (GET_H_GR (FLD (f_GRj)), 1);
635  {
636    SI opval = frvbf_scan_result (current_cpu, XORSI (tmp_tmp1, tmp_tmp2));
637    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
638    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
639  }
640}
641
642  return vpc;
643#undef FLD
644}
645
646/* cadd: cadd$pack $GRi,$GRj,$GRk,$CCi,$cond */
647
648static SEM_PC
649SEM_FN_NAME (frvbf,cadd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
650{
651#define FLD(f) abuf->fields.sfmt_cswap.f
652  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
653  int UNUSED written = 0;
654  IADDR UNUSED pc = abuf->addr;
655  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
656
657if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
658  {
659    SI opval = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
660    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
661    written |= (1 << 4);
662    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
663  }
664}
665
666  abuf->written = written;
667  return vpc;
668#undef FLD
669}
670
671/* csub: csub$pack $GRi,$GRj,$GRk,$CCi,$cond */
672
673static SEM_PC
674SEM_FN_NAME (frvbf,csub) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
675{
676#define FLD(f) abuf->fields.sfmt_cswap.f
677  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
678  int UNUSED written = 0;
679  IADDR UNUSED pc = abuf->addr;
680  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
681
682if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
683  {
684    SI opval = SUBSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
685    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
686    written |= (1 << 4);
687    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
688  }
689}
690
691  abuf->written = written;
692  return vpc;
693#undef FLD
694}
695
696/* cand: cand$pack $GRi,$GRj,$GRk,$CCi,$cond */
697
698static SEM_PC
699SEM_FN_NAME (frvbf,cand) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
700{
701#define FLD(f) abuf->fields.sfmt_cswap.f
702  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
703  int UNUSED written = 0;
704  IADDR UNUSED pc = abuf->addr;
705  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
706
707if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
708  {
709    SI opval = ANDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
710    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
711    written |= (1 << 4);
712    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
713  }
714}
715
716  abuf->written = written;
717  return vpc;
718#undef FLD
719}
720
721/* cor: cor$pack $GRi,$GRj,$GRk,$CCi,$cond */
722
723static SEM_PC
724SEM_FN_NAME (frvbf,cor) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
725{
726#define FLD(f) abuf->fields.sfmt_cswap.f
727  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
728  int UNUSED written = 0;
729  IADDR UNUSED pc = abuf->addr;
730  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
731
732if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
733  {
734    SI opval = ORSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
735    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
736    written |= (1 << 4);
737    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
738  }
739}
740
741  abuf->written = written;
742  return vpc;
743#undef FLD
744}
745
746/* cxor: cxor$pack $GRi,$GRj,$GRk,$CCi,$cond */
747
748static SEM_PC
749SEM_FN_NAME (frvbf,cxor) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
750{
751#define FLD(f) abuf->fields.sfmt_cswap.f
752  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
753  int UNUSED written = 0;
754  IADDR UNUSED pc = abuf->addr;
755  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
756
757if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
758  {
759    SI opval = XORSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
760    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
761    written |= (1 << 4);
762    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
763  }
764}
765
766  abuf->written = written;
767  return vpc;
768#undef FLD
769}
770
771/* cnot: cnot$pack $GRj,$GRk,$CCi,$cond */
772
773static SEM_PC
774SEM_FN_NAME (frvbf,cnot) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
775{
776#define FLD(f) abuf->fields.sfmt_cswap.f
777  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
778  int UNUSED written = 0;
779  IADDR UNUSED pc = abuf->addr;
780  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
781
782if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
783  {
784    SI opval = INVSI (GET_H_GR (FLD (f_GRj)));
785    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
786    written |= (1 << 3);
787    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
788  }
789}
790
791  abuf->written = written;
792  return vpc;
793#undef FLD
794}
795
796/* csmul: csmul$pack $GRi,$GRj,$GRdoublek,$CCi,$cond */
797
798static SEM_PC
799SEM_FN_NAME (frvbf,csmul) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
800{
801#define FLD(f) abuf->fields.sfmt_clddu.f
802  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
803  int UNUSED written = 0;
804  IADDR UNUSED pc = abuf->addr;
805  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
806
807if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
808  {
809    DI opval = MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi))), EXTSIDI (GET_H_GR (FLD (f_GRj))));
810    sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
811    written |= (1 << 4);
812    TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
813  }
814}
815
816  abuf->written = written;
817  return vpc;
818#undef FLD
819}
820
821/* csdiv: csdiv$pack $GRi,$GRj,$GRk,$CCi,$cond */
822
823static SEM_PC
824SEM_FN_NAME (frvbf,csdiv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
825{
826#define FLD(f) abuf->fields.sfmt_cswap.f
827  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
828  int UNUSED written = 0;
829  IADDR UNUSED pc = abuf->addr;
830  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
831
832if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
833{
834frvbf_signed_integer_divide (current_cpu, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), FLD (f_GRk), 0);
835; /*clobber*/
836}
837}
838
839  abuf->written = written;
840  return vpc;
841#undef FLD
842}
843
844/* cudiv: cudiv$pack $GRi,$GRj,$GRk,$CCi,$cond */
845
846static SEM_PC
847SEM_FN_NAME (frvbf,cudiv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
848{
849#define FLD(f) abuf->fields.sfmt_cswap.f
850  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
851  int UNUSED written = 0;
852  IADDR UNUSED pc = abuf->addr;
853  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
854
855if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
856{
857frvbf_unsigned_integer_divide (current_cpu, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), FLD (f_GRk), 0);
858; /*clobber*/
859}
860}
861
862  abuf->written = written;
863  return vpc;
864#undef FLD
865}
866
867/* csll: csll$pack $GRi,$GRj,$GRk,$CCi,$cond */
868
869static SEM_PC
870SEM_FN_NAME (frvbf,csll) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
871{
872#define FLD(f) abuf->fields.sfmt_cswap.f
873  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
874  int UNUSED written = 0;
875  IADDR UNUSED pc = abuf->addr;
876  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
877
878if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
879  {
880    SI opval = SLLSI (GET_H_GR (FLD (f_GRi)), ANDSI (GET_H_GR (FLD (f_GRj)), 31));
881    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
882    written |= (1 << 4);
883    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
884  }
885}
886
887  abuf->written = written;
888  return vpc;
889#undef FLD
890}
891
892/* csrl: csrl$pack $GRi,$GRj,$GRk,$CCi,$cond */
893
894static SEM_PC
895SEM_FN_NAME (frvbf,csrl) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
896{
897#define FLD(f) abuf->fields.sfmt_cswap.f
898  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
899  int UNUSED written = 0;
900  IADDR UNUSED pc = abuf->addr;
901  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
902
903if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
904  {
905    SI opval = SRLSI (GET_H_GR (FLD (f_GRi)), ANDSI (GET_H_GR (FLD (f_GRj)), 31));
906    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
907    written |= (1 << 4);
908    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
909  }
910}
911
912  abuf->written = written;
913  return vpc;
914#undef FLD
915}
916
917/* csra: csra$pack $GRi,$GRj,$GRk,$CCi,$cond */
918
919static SEM_PC
920SEM_FN_NAME (frvbf,csra) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
921{
922#define FLD(f) abuf->fields.sfmt_cswap.f
923  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
924  int UNUSED written = 0;
925  IADDR UNUSED pc = abuf->addr;
926  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
927
928if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
929  {
930    SI opval = SRASI (GET_H_GR (FLD (f_GRi)), ANDSI (GET_H_GR (FLD (f_GRj)), 31));
931    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
932    written |= (1 << 4);
933    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
934  }
935}
936
937  abuf->written = written;
938  return vpc;
939#undef FLD
940}
941
942/* cscan: cscan$pack $GRi,$GRj,$GRk,$CCi,$cond */
943
944static SEM_PC
945SEM_FN_NAME (frvbf,cscan) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
946{
947#define FLD(f) abuf->fields.sfmt_cswap.f
948  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
949  int UNUSED written = 0;
950  IADDR UNUSED pc = abuf->addr;
951  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
952
953if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
954{
955  SI tmp_tmp1;
956  SI tmp_tmp2;
957  tmp_tmp1 = GET_H_GR (FLD (f_GRi));
958  tmp_tmp2 = SRASI (GET_H_GR (FLD (f_GRj)), 1);
959  {
960    SI opval = frvbf_scan_result (current_cpu, XORSI (tmp_tmp1, tmp_tmp2));
961    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
962    written |= (1 << 4);
963    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
964  }
965}
966}
967
968  abuf->written = written;
969  return vpc;
970#undef FLD
971}
972
973/* addcc: addcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
974
975static SEM_PC
976SEM_FN_NAME (frvbf,addcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
977{
978#define FLD(f) abuf->fields.sfmt_addcc.f
979  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
980  int UNUSED written = 0;
981  IADDR UNUSED pc = abuf->addr;
982  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
983
984{
985  BI tmp_tmp;
986  QI tmp_cc;
987  SI tmp_result;
988  tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
989  tmp_tmp = ADDOFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), 0);
990if (EQBI (tmp_tmp, 0)) {
991  tmp_cc = ANDQI (tmp_cc, 13);
992} else {
993  tmp_cc = ORQI (tmp_cc, 2);
994}
995  tmp_tmp = ADDCFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), 0);
996if (EQBI (tmp_tmp, 0)) {
997  tmp_cc = ANDQI (tmp_cc, 14);
998} else {
999  tmp_cc = ORQI (tmp_cc, 1);
1000}
1001  tmp_result = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
1002if (EQSI (tmp_result, 0)) {
1003  tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
1004} else {
1005if (LTSI (tmp_result, 0)) {
1006  tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
1007} else {
1008  tmp_cc = ANDQI (tmp_cc, 3);
1009}
1010}
1011  {
1012    SI opval = tmp_result;
1013    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1014    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1015  }
1016  {
1017    UQI opval = tmp_cc;
1018    sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1019    TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1020  }
1021}
1022
1023  return vpc;
1024#undef FLD
1025}
1026
1027/* subcc: subcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
1028
1029static SEM_PC
1030SEM_FN_NAME (frvbf,subcc) (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  BI tmp_tmp;
1040  QI tmp_cc;
1041  SI tmp_result;
1042  tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
1043  tmp_tmp = SUBOFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), 0);
1044if (EQBI (tmp_tmp, 0)) {
1045  tmp_cc = ANDQI (tmp_cc, 13);
1046} else {
1047  tmp_cc = ORQI (tmp_cc, 2);
1048}
1049  tmp_tmp = SUBCFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), 0);
1050if (EQBI (tmp_tmp, 0)) {
1051  tmp_cc = ANDQI (tmp_cc, 14);
1052} else {
1053  tmp_cc = ORQI (tmp_cc, 1);
1054}
1055  tmp_result = SUBSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
1056if (EQSI (tmp_result, 0)) {
1057  tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
1058} else {
1059if (LTSI (tmp_result, 0)) {
1060  tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
1061} else {
1062  tmp_cc = ANDQI (tmp_cc, 3);
1063}
1064}
1065  {
1066    SI opval = tmp_result;
1067    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1068    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1069  }
1070  {
1071    UQI opval = tmp_cc;
1072    sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1073    TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1074  }
1075}
1076
1077  return vpc;
1078#undef FLD
1079}
1080
1081/* andcc: andcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
1082
1083static SEM_PC
1084SEM_FN_NAME (frvbf,andcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1085{
1086#define FLD(f) abuf->fields.sfmt_addcc.f
1087  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1088  int UNUSED written = 0;
1089  IADDR UNUSED pc = abuf->addr;
1090  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1091
1092{
1093  SI tmp_tmp;
1094  tmp_tmp = ANDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
1095  {
1096    SI opval = tmp_tmp;
1097    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1098    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1099  }
1100if (EQSI (tmp_tmp, 0)) {
1101  {
1102    UQI opval = ORQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 7), 4);
1103    sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1104    written |= (1 << 4);
1105    TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1106  }
1107} else {
1108if (LTSI (tmp_tmp, 0)) {
1109  {
1110    UQI opval = ORQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 11), 8);
1111    sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1112    written |= (1 << 4);
1113    TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1114  }
1115} else {
1116  {
1117    UQI opval = ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 3);
1118    sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1119    written |= (1 << 4);
1120    TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1121  }
1122}
1123}
1124}
1125
1126  abuf->written = written;
1127  return vpc;
1128#undef FLD
1129}
1130
1131/* orcc: orcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
1132
1133static SEM_PC
1134SEM_FN_NAME (frvbf,orcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1135{
1136#define FLD(f) abuf->fields.sfmt_addcc.f
1137  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1138  int UNUSED written = 0;
1139  IADDR UNUSED pc = abuf->addr;
1140  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1141
1142{
1143  SI tmp_tmp;
1144  tmp_tmp = ORSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
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  {
1152    UQI opval = ORQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 7), 4);
1153    sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1154    written |= (1 << 4);
1155    TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1156  }
1157} else {
1158if (LTSI (tmp_tmp, 0)) {
1159  {
1160    UQI opval = ORQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 11), 8);
1161    sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1162    written |= (1 << 4);
1163    TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1164  }
1165} else {
1166  {
1167    UQI opval = ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 3);
1168    sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1169    written |= (1 << 4);
1170    TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1171  }
1172}
1173}
1174}
1175
1176  abuf->written = written;
1177  return vpc;
1178#undef FLD
1179}
1180
1181/* xorcc: xorcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
1182
1183static SEM_PC
1184SEM_FN_NAME (frvbf,xorcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1185{
1186#define FLD(f) abuf->fields.sfmt_addcc.f
1187  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1188  int UNUSED written = 0;
1189  IADDR UNUSED pc = abuf->addr;
1190  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1191
1192{
1193  SI tmp_tmp;
1194  tmp_tmp = XORSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
1195  {
1196    SI opval = tmp_tmp;
1197    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1198    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1199  }
1200if (EQSI (tmp_tmp, 0)) {
1201  {
1202    UQI opval = ORQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 7), 4);
1203    sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1204    written |= (1 << 4);
1205    TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1206  }
1207} else {
1208if (LTSI (tmp_tmp, 0)) {
1209  {
1210    UQI opval = ORQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 11), 8);
1211    sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1212    written |= (1 << 4);
1213    TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1214  }
1215} else {
1216  {
1217    UQI opval = ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 3);
1218    sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1219    written |= (1 << 4);
1220    TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1221  }
1222}
1223}
1224}
1225
1226  abuf->written = written;
1227  return vpc;
1228#undef FLD
1229}
1230
1231/* sllcc: sllcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
1232
1233static SEM_PC
1234SEM_FN_NAME (frvbf,sllcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1235{
1236#define FLD(f) abuf->fields.sfmt_addcc.f
1237  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1238  int UNUSED written = 0;
1239  IADDR UNUSED pc = abuf->addr;
1240  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1241
1242{
1243  SI tmp_shift;
1244  SI tmp_tmp;
1245  QI tmp_cc;
1246  tmp_shift = ANDSI (GET_H_GR (FLD (f_GRj)), 31);
1247  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)]));
1248  tmp_tmp = SLLSI (GET_H_GR (FLD (f_GRi)), tmp_shift);
1249  {
1250    SI opval = tmp_tmp;
1251    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1252    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1253  }
1254if (EQSI (tmp_tmp, 0)) {
1255  tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
1256} else {
1257if (LTSI (tmp_tmp, 0)) {
1258  tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
1259} else {
1260  tmp_cc = ANDQI (tmp_cc, 3);
1261}
1262}
1263  {
1264    UQI opval = tmp_cc;
1265    sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1266    TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1267  }
1268}
1269
1270  return vpc;
1271#undef FLD
1272}
1273
1274/* srlcc: srlcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
1275
1276static SEM_PC
1277SEM_FN_NAME (frvbf,srlcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1278{
1279#define FLD(f) abuf->fields.sfmt_addcc.f
1280  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1281  int UNUSED written = 0;
1282  IADDR UNUSED pc = abuf->addr;
1283  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1284
1285{
1286  SI tmp_shift;
1287  SI tmp_tmp;
1288  QI tmp_cc;
1289  tmp_shift = ANDSI (GET_H_GR (FLD (f_GRj)), 31);
1290  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)]));
1291  tmp_tmp = SRLSI (GET_H_GR (FLD (f_GRi)), tmp_shift);
1292  {
1293    SI opval = tmp_tmp;
1294    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1295    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1296  }
1297if (EQSI (tmp_tmp, 0)) {
1298  tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
1299} else {
1300if (LTSI (tmp_tmp, 0)) {
1301  tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
1302} else {
1303  tmp_cc = ANDQI (tmp_cc, 3);
1304}
1305}
1306  {
1307    UQI opval = tmp_cc;
1308    sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1309    TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1310  }
1311}
1312
1313  return vpc;
1314#undef FLD
1315}
1316
1317/* sracc: sracc$pack $GRi,$GRj,$GRk,$ICCi_1 */
1318
1319static SEM_PC
1320SEM_FN_NAME (frvbf,sracc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1321{
1322#define FLD(f) abuf->fields.sfmt_addcc.f
1323  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1324  int UNUSED written = 0;
1325  IADDR UNUSED pc = abuf->addr;
1326  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1327
1328{
1329  SI tmp_shift;
1330  SI tmp_tmp;
1331  QI tmp_cc;
1332  tmp_shift = ANDSI (GET_H_GR (FLD (f_GRj)), 31);
1333  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)]));
1334  tmp_tmp = SRASI (GET_H_GR (FLD (f_GRi)), tmp_shift);
1335  {
1336    SI opval = tmp_tmp;
1337    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1338    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1339  }
1340if (EQSI (tmp_tmp, 0)) {
1341  tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
1342} else {
1343if (LTSI (tmp_tmp, 0)) {
1344  tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
1345} else {
1346  tmp_cc = ANDQI (tmp_cc, 3);
1347}
1348}
1349  {
1350    UQI opval = tmp_cc;
1351    sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1352    TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1353  }
1354}
1355
1356  return vpc;
1357#undef FLD
1358}
1359
1360/* smulcc: smulcc$pack $GRi,$GRj,$GRdoublek,$ICCi_1 */
1361
1362static SEM_PC
1363SEM_FN_NAME (frvbf,smulcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1364{
1365#define FLD(f) abuf->fields.sfmt_smulcc.f
1366  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1367  int UNUSED written = 0;
1368  IADDR UNUSED pc = abuf->addr;
1369  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1370
1371{
1372  DI tmp_tmp;
1373  QI tmp_cc;
1374  tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
1375  tmp_tmp = MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi))), EXTSIDI (GET_H_GR (FLD (f_GRj))));
1376if (EQDI (SRLDI (tmp_tmp, 63), 0)) {
1377  tmp_cc = ANDQI (tmp_cc, 7);
1378} else {
1379  tmp_cc = ORQI (tmp_cc, 8);
1380}
1381if (EQBI (EQDI (tmp_tmp, 0), 0)) {
1382  tmp_cc = ANDQI (tmp_cc, 11);
1383} else {
1384  tmp_cc = ORQI (tmp_cc, 4);
1385}
1386  {
1387    DI opval = tmp_tmp;
1388    sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
1389    TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
1390  }
1391  {
1392    UQI opval = tmp_cc;
1393    sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1394    TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1395  }
1396}
1397
1398  return vpc;
1399#undef FLD
1400}
1401
1402/* umulcc: umulcc$pack $GRi,$GRj,$GRdoublek,$ICCi_1 */
1403
1404static SEM_PC
1405SEM_FN_NAME (frvbf,umulcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1406{
1407#define FLD(f) abuf->fields.sfmt_smulcc.f
1408  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1409  int UNUSED written = 0;
1410  IADDR UNUSED pc = abuf->addr;
1411  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1412
1413{
1414  DI tmp_tmp;
1415  QI tmp_cc;
1416  tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
1417  tmp_tmp = MULDI (ZEXTSIDI (GET_H_GR (FLD (f_GRi))), ZEXTSIDI (GET_H_GR (FLD (f_GRj))));
1418if (EQDI (SRLDI (tmp_tmp, 63), 0)) {
1419  tmp_cc = ANDQI (tmp_cc, 7);
1420} else {
1421  tmp_cc = ORQI (tmp_cc, 8);
1422}
1423if (EQBI (EQDI (tmp_tmp, 0), 0)) {
1424  tmp_cc = ANDQI (tmp_cc, 11);
1425} else {
1426  tmp_cc = ORQI (tmp_cc, 4);
1427}
1428  {
1429    DI opval = tmp_tmp;
1430    sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
1431    TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
1432  }
1433  {
1434    UQI opval = tmp_cc;
1435    sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1436    TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1437  }
1438}
1439
1440  return vpc;
1441#undef FLD
1442}
1443
1444/* caddcc: caddcc$pack $GRi,$GRj,$GRk,$CCi,$cond */
1445
1446static SEM_PC
1447SEM_FN_NAME (frvbf,caddcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1448{
1449#define FLD(f) abuf->fields.sfmt_caddcc.f
1450  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1451  int UNUSED written = 0;
1452  IADDR UNUSED pc = abuf->addr;
1453  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1454
1455if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
1456{
1457  BI tmp_tmp;
1458  QI tmp_cc;
1459  SI tmp_result;
1460  tmp_cc = CPU (h_iccr[((FLD (f_CCi)) & (3))]);
1461  tmp_tmp = ADDOFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), 0);
1462if (EQBI (tmp_tmp, 0)) {
1463  tmp_cc = ANDQI (tmp_cc, 13);
1464} else {
1465  tmp_cc = ORQI (tmp_cc, 2);
1466}
1467  tmp_tmp = ADDCFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), 0);
1468if (EQBI (tmp_tmp, 0)) {
1469  tmp_cc = ANDQI (tmp_cc, 14);
1470} else {
1471  tmp_cc = ORQI (tmp_cc, 1);
1472}
1473  tmp_result = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
1474if (EQSI (tmp_result, 0)) {
1475  tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
1476} else {
1477if (LTSI (tmp_result, 0)) {
1478  tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
1479} else {
1480  tmp_cc = ANDQI (tmp_cc, 3);
1481}
1482}
1483  {
1484    SI opval = tmp_result;
1485    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1486    written |= (1 << 6);
1487    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1488  }
1489  {
1490    UQI opval = tmp_cc;
1491    sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);
1492    written |= (1 << 7);
1493    TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1494  }
1495}
1496}
1497
1498  abuf->written = written;
1499  return vpc;
1500#undef FLD
1501}
1502
1503/* csubcc: csubcc$pack $GRi,$GRj,$GRk,$CCi,$cond */
1504
1505static SEM_PC
1506SEM_FN_NAME (frvbf,csubcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1507{
1508#define FLD(f) abuf->fields.sfmt_caddcc.f
1509  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1510  int UNUSED written = 0;
1511  IADDR UNUSED pc = abuf->addr;
1512  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1513
1514if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
1515{
1516  BI tmp_tmp;
1517  QI tmp_cc;
1518  SI tmp_result;
1519  tmp_cc = CPU (h_iccr[((FLD (f_CCi)) & (3))]);
1520  tmp_tmp = SUBOFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), 0);
1521if (EQBI (tmp_tmp, 0)) {
1522  tmp_cc = ANDQI (tmp_cc, 13);
1523} else {
1524  tmp_cc = ORQI (tmp_cc, 2);
1525}
1526  tmp_tmp = SUBCFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), 0);
1527if (EQBI (tmp_tmp, 0)) {
1528  tmp_cc = ANDQI (tmp_cc, 14);
1529} else {
1530  tmp_cc = ORQI (tmp_cc, 1);
1531}
1532  tmp_result = SUBSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
1533if (EQSI (tmp_result, 0)) {
1534  tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
1535} else {
1536if (LTSI (tmp_result, 0)) {
1537  tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
1538} else {
1539  tmp_cc = ANDQI (tmp_cc, 3);
1540}
1541}
1542  {
1543    SI opval = tmp_result;
1544    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1545    written |= (1 << 6);
1546    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1547  }
1548  {
1549    UQI opval = tmp_cc;
1550    sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);
1551    written |= (1 << 7);
1552    TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1553  }
1554}
1555}
1556
1557  abuf->written = written;
1558  return vpc;
1559#undef FLD
1560}
1561
1562/* csmulcc: csmulcc$pack $GRi,$GRj,$GRdoublek,$CCi,$cond */
1563
1564static SEM_PC
1565SEM_FN_NAME (frvbf,csmulcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1566{
1567#define FLD(f) abuf->fields.sfmt_csmulcc.f
1568  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1569  int UNUSED written = 0;
1570  IADDR UNUSED pc = abuf->addr;
1571  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1572
1573if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
1574{
1575  DI tmp_tmp;
1576  QI tmp_cc;
1577  tmp_cc = CPU (h_iccr[((FLD (f_CCi)) & (3))]);
1578  tmp_tmp = MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi))), EXTSIDI (GET_H_GR (FLD (f_GRj))));
1579if (EQDI (SRLDI (tmp_tmp, 63), 0)) {
1580  tmp_cc = ANDQI (tmp_cc, 7);
1581} else {
1582  tmp_cc = ORQI (tmp_cc, 8);
1583}
1584if (EQBI (EQDI (tmp_tmp, 0), 0)) {
1585  tmp_cc = ANDQI (tmp_cc, 11);
1586} else {
1587  tmp_cc = ORQI (tmp_cc, 4);
1588}
1589  {
1590    DI opval = tmp_tmp;
1591    sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
1592    written |= (1 << 6);
1593    TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
1594  }
1595  {
1596    UQI opval = tmp_cc;
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  abuf->written = written;
1605  return vpc;
1606#undef FLD
1607}
1608
1609/* candcc: candcc$pack $GRi,$GRj,$GRk,$CCi,$cond */
1610
1611static SEM_PC
1612SEM_FN_NAME (frvbf,candcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1613{
1614#define FLD(f) abuf->fields.sfmt_caddcc.f
1615  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1616  int UNUSED written = 0;
1617  IADDR UNUSED pc = abuf->addr;
1618  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1619
1620if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
1621{
1622  SI tmp_tmp;
1623  tmp_tmp = ANDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
1624  {
1625    SI opval = tmp_tmp;
1626    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1627    written |= (1 << 6);
1628    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1629  }
1630if (EQSI (tmp_tmp, 0)) {
1631  {
1632    UQI opval = ORQI (ANDQI (CPU (h_iccr[((FLD (f_CCi)) & (3))]), 7), 4);
1633    sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);
1634    written |= (1 << 7);
1635    TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1636  }
1637} else {
1638if (LTSI (tmp_tmp, 0)) {
1639  {
1640    UQI opval = ORQI (ANDQI (CPU (h_iccr[((FLD (f_CCi)) & (3))]), 11), 8);
1641    sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);
1642    written |= (1 << 7);
1643    TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1644  }
1645} else {
1646  {
1647    UQI opval = ANDQI (CPU (h_iccr[((FLD (f_CCi)) & (3))]), 3);
1648    sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);
1649    written |= (1 << 7);
1650    TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1651  }
1652}
1653}
1654}
1655}
1656
1657  abuf->written = written;
1658  return vpc;
1659#undef FLD
1660}
1661
1662/* corcc: corcc$pack $GRi,$GRj,$GRk,$CCi,$cond */
1663
1664static SEM_PC
1665SEM_FN_NAME (frvbf,corcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1666{
1667#define FLD(f) abuf->fields.sfmt_caddcc.f
1668  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1669  int UNUSED written = 0;
1670  IADDR UNUSED pc = abuf->addr;
1671  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1672
1673if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
1674{
1675  SI tmp_tmp;
1676  tmp_tmp = ORSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
1677  {
1678    SI opval = tmp_tmp;
1679    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1680    written |= (1 << 6);
1681    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1682  }
1683if (EQSI (tmp_tmp, 0)) {
1684  {
1685    UQI opval = ORQI (ANDQI (CPU (h_iccr[((FLD (f_CCi)) & (3))]), 7), 4);
1686    sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);
1687    written |= (1 << 7);
1688    TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1689  }
1690} else {
1691if (LTSI (tmp_tmp, 0)) {
1692  {
1693    UQI opval = ORQI (ANDQI (CPU (h_iccr[((FLD (f_CCi)) & (3))]), 11), 8);
1694    sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);
1695    written |= (1 << 7);
1696    TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1697  }
1698} else {
1699  {
1700    UQI opval = ANDQI (CPU (h_iccr[((FLD (f_CCi)) & (3))]), 3);
1701    sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);
1702    written |= (1 << 7);
1703    TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1704  }
1705}
1706}
1707}
1708}
1709
1710  abuf->written = written;
1711  return vpc;
1712#undef FLD
1713}
1714
1715/* cxorcc: cxorcc$pack $GRi,$GRj,$GRk,$CCi,$cond */
1716
1717static SEM_PC
1718SEM_FN_NAME (frvbf,cxorcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1719{
1720#define FLD(f) abuf->fields.sfmt_caddcc.f
1721  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1722  int UNUSED written = 0;
1723  IADDR UNUSED pc = abuf->addr;
1724  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1725
1726if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
1727{
1728  SI tmp_tmp;
1729  tmp_tmp = XORSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
1730  {
1731    SI opval = tmp_tmp;
1732    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1733    written |= (1 << 6);
1734    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1735  }
1736if (EQSI (tmp_tmp, 0)) {
1737  {
1738    UQI opval = ORQI (ANDQI (CPU (h_iccr[((FLD (f_CCi)) & (3))]), 7), 4);
1739    sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);
1740    written |= (1 << 7);
1741    TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1742  }
1743} else {
1744if (LTSI (tmp_tmp, 0)) {
1745  {
1746    UQI opval = ORQI (ANDQI (CPU (h_iccr[((FLD (f_CCi)) & (3))]), 11), 8);
1747    sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);
1748    written |= (1 << 7);
1749    TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1750  }
1751} else {
1752  {
1753    UQI opval = ANDQI (CPU (h_iccr[((FLD (f_CCi)) & (3))]), 3);
1754    sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);
1755    written |= (1 << 7);
1756    TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1757  }
1758}
1759}
1760}
1761}
1762
1763  abuf->written = written;
1764  return vpc;
1765#undef FLD
1766}
1767
1768/* csllcc: csllcc$pack $GRi,$GRj,$GRk,$CCi,$cond */
1769
1770static SEM_PC
1771SEM_FN_NAME (frvbf,csllcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1772{
1773#define FLD(f) abuf->fields.sfmt_caddcc.f
1774  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1775  int UNUSED written = 0;
1776  IADDR UNUSED pc = abuf->addr;
1777  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1778
1779if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
1780{
1781  SI tmp_shift;
1782  SI tmp_tmp;
1783  QI tmp_cc;
1784  tmp_shift = ANDSI (GET_H_GR (FLD (f_GRj)), 31);
1785  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))]));
1786  tmp_tmp = SLLSI (GET_H_GR (FLD (f_GRi)), tmp_shift);
1787  {
1788    SI opval = tmp_tmp;
1789    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1790    written |= (1 << 6);
1791    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1792  }
1793if (EQSI (tmp_tmp, 0)) {
1794  tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
1795} else {
1796if (LTSI (tmp_tmp, 0)) {
1797  tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
1798} else {
1799  tmp_cc = ANDQI (tmp_cc, 3);
1800}
1801}
1802  {
1803    UQI opval = tmp_cc;
1804    sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);
1805    written |= (1 << 7);
1806    TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1807  }
1808}
1809}
1810
1811  abuf->written = written;
1812  return vpc;
1813#undef FLD
1814}
1815
1816/* csrlcc: csrlcc$pack $GRi,$GRj,$GRk,$CCi,$cond */
1817
1818static SEM_PC
1819SEM_FN_NAME (frvbf,csrlcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1820{
1821#define FLD(f) abuf->fields.sfmt_caddcc.f
1822  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1823  int UNUSED written = 0;
1824  IADDR UNUSED pc = abuf->addr;
1825  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1826
1827if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
1828{
1829  SI tmp_shift;
1830  SI tmp_tmp;
1831  QI tmp_cc;
1832  tmp_shift = ANDSI (GET_H_GR (FLD (f_GRj)), 31);
1833  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))]));
1834  tmp_tmp = SRLSI (GET_H_GR (FLD (f_GRi)), tmp_shift);
1835  {
1836    SI opval = tmp_tmp;
1837    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1838    written |= (1 << 6);
1839    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1840  }
1841if (EQSI (tmp_tmp, 0)) {
1842  tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
1843} else {
1844if (LTSI (tmp_tmp, 0)) {
1845  tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
1846} else {
1847  tmp_cc = ANDQI (tmp_cc, 3);
1848}
1849}
1850  {
1851    UQI opval = tmp_cc;
1852    sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);
1853    written |= (1 << 7);
1854    TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1855  }
1856}
1857}
1858
1859  abuf->written = written;
1860  return vpc;
1861#undef FLD
1862}
1863
1864/* csracc: csracc$pack $GRi,$GRj,$GRk,$CCi,$cond */
1865
1866static SEM_PC
1867SEM_FN_NAME (frvbf,csracc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1868{
1869#define FLD(f) abuf->fields.sfmt_caddcc.f
1870  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1871  int UNUSED written = 0;
1872  IADDR UNUSED pc = abuf->addr;
1873  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1874
1875if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
1876{
1877  SI tmp_shift;
1878  SI tmp_tmp;
1879  QI tmp_cc;
1880  tmp_shift = ANDSI (GET_H_GR (FLD (f_GRj)), 31);
1881  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))]));
1882  tmp_tmp = SRASI (GET_H_GR (FLD (f_GRi)), tmp_shift);
1883  {
1884    SI opval = tmp_tmp;
1885    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1886    written |= (1 << 6);
1887    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1888  }
1889if (EQSI (tmp_tmp, 0)) {
1890  tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
1891} else {
1892if (LTSI (tmp_tmp, 0)) {
1893  tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
1894} else {
1895  tmp_cc = ANDQI (tmp_cc, 3);
1896}
1897}
1898  {
1899    UQI opval = tmp_cc;
1900    sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);
1901    written |= (1 << 7);
1902    TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1903  }
1904}
1905}
1906
1907  abuf->written = written;
1908  return vpc;
1909#undef FLD
1910}
1911
1912/* addx: addx$pack $GRi,$GRj,$GRk,$ICCi_1 */
1913
1914static SEM_PC
1915SEM_FN_NAME (frvbf,addx) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1916{
1917#define FLD(f) abuf->fields.sfmt_addcc.f
1918  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1919  int UNUSED written = 0;
1920  IADDR UNUSED pc = abuf->addr;
1921  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1922
1923  {
1924    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)));
1925    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1926    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1927  }
1928
1929  return vpc;
1930#undef FLD
1931}
1932
1933/* subx: subx$pack $GRi,$GRj,$GRk,$ICCi_1 */
1934
1935static SEM_PC
1936SEM_FN_NAME (frvbf,subx) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1937{
1938#define FLD(f) abuf->fields.sfmt_addcc.f
1939  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1940  int UNUSED written = 0;
1941  IADDR UNUSED pc = abuf->addr;
1942  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1943
1944  {
1945    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)));
1946    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1947    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1948  }
1949
1950  return vpc;
1951#undef FLD
1952}
1953
1954/* addxcc: addxcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
1955
1956static SEM_PC
1957SEM_FN_NAME (frvbf,addxcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1958{
1959#define FLD(f) abuf->fields.sfmt_addcc.f
1960  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1961  int UNUSED written = 0;
1962  IADDR UNUSED pc = abuf->addr;
1963  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1964
1965{
1966  SI tmp_tmp;
1967  QI tmp_cc;
1968  tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
1969  tmp_tmp = ADDCSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), TRUNCQIBI (ANDQI (tmp_cc, 1)));
1970if (EQSI (ADDOFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), TRUNCQIBI (ANDQI (tmp_cc, 1))), 0)) {
1971  tmp_cc = ANDQI (tmp_cc, 13);
1972} else {
1973  tmp_cc = ORQI (tmp_cc, 2);
1974}
1975if (EQSI (ADDCFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), TRUNCQIBI (ANDQI (tmp_cc, 1))), 0)) {
1976  tmp_cc = ANDQI (tmp_cc, 14);
1977} else {
1978  tmp_cc = ORQI (tmp_cc, 1);
1979}
1980if (EQSI (tmp_tmp, 0)) {
1981  tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
1982} else {
1983if (LTSI (tmp_tmp, 0)) {
1984  tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
1985} else {
1986  tmp_cc = ANDQI (tmp_cc, 3);
1987}
1988}
1989  {
1990    SI opval = tmp_tmp;
1991    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1992    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1993  }
1994  {
1995    UQI opval = tmp_cc;
1996    sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1997    TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1998  }
1999}
2000
2001  return vpc;
2002#undef FLD
2003}
2004
2005/* subxcc: subxcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
2006
2007static SEM_PC
2008SEM_FN_NAME (frvbf,subxcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2009{
2010#define FLD(f) abuf->fields.sfmt_addcc.f
2011  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2012  int UNUSED written = 0;
2013  IADDR UNUSED pc = abuf->addr;
2014  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2015
2016{
2017  SI tmp_tmp;
2018  QI tmp_cc;
2019  tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
2020  tmp_tmp = SUBCSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), TRUNCQIBI (ANDQI (tmp_cc, 1)));
2021if (EQSI (SUBOFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), TRUNCQIBI (ANDQI (tmp_cc, 1))), 0)) {
2022  tmp_cc = ANDQI (tmp_cc, 13);
2023} else {
2024  tmp_cc = ORQI (tmp_cc, 2);
2025}
2026if (EQSI (SUBCFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), TRUNCQIBI (ANDQI (tmp_cc, 1))), 0)) {
2027  tmp_cc = ANDQI (tmp_cc, 14);
2028} else {
2029  tmp_cc = ORQI (tmp_cc, 1);
2030}
2031if (EQSI (tmp_tmp, 0)) {
2032  tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
2033} else {
2034if (LTSI (tmp_tmp, 0)) {
2035  tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
2036} else {
2037  tmp_cc = ANDQI (tmp_cc, 3);
2038}
2039}
2040  {
2041    SI opval = tmp_tmp;
2042    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2043    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2044  }
2045  {
2046    UQI opval = tmp_cc;
2047    sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2048    TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2049  }
2050}
2051
2052  return vpc;
2053#undef FLD
2054}
2055
2056/* addss: addss$pack $GRi,$GRj,$GRk */
2057
2058static SEM_PC
2059SEM_FN_NAME (frvbf,addss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2060{
2061#define FLD(f) abuf->fields.sfmt_addcc.f
2062  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2063  int UNUSED written = 0;
2064  IADDR UNUSED pc = abuf->addr;
2065  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2066
2067{
2068  {
2069    SI opval = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
2070    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2071    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2072  }
2073if (ADDOFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), 0)) {
2074  {
2075    SI opval = (GTSI (GET_H_GR (FLD (f_GRi)), 0)) ? (2147483647) : (LTSI (GET_H_GR (FLD (f_GRi)), 0)) ? (0x80000000) : (0);
2076    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2077    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2078  }
2079}
2080}
2081
2082  return vpc;
2083#undef FLD
2084}
2085
2086/* subss: subss$pack $GRi,$GRj,$GRk */
2087
2088static SEM_PC
2089SEM_FN_NAME (frvbf,subss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2090{
2091#define FLD(f) abuf->fields.sfmt_addcc.f
2092  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2093  int UNUSED written = 0;
2094  IADDR UNUSED pc = abuf->addr;
2095  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2096
2097{
2098  {
2099    SI opval = SUBSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
2100    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2101    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2102  }
2103if (SUBOFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), 0)) {
2104  {
2105    SI opval = (GTSI (GET_H_GR (FLD (f_GRi)), 0)) ? (2147483647) : (LTSI (GET_H_GR (FLD (f_GRi)), 0)) ? (0x80000000) : (0);
2106    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2107    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2108  }
2109}
2110}
2111
2112  return vpc;
2113#undef FLD
2114}
2115
2116/* addi: addi$pack $GRi,$s12,$GRk */
2117
2118static SEM_PC
2119SEM_FN_NAME (frvbf,addi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2120{
2121#define FLD(f) abuf->fields.sfmt_swapi.f
2122  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2123  int UNUSED written = 0;
2124  IADDR UNUSED pc = abuf->addr;
2125  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2126
2127  {
2128    SI opval = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
2129    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2130    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2131  }
2132
2133  return vpc;
2134#undef FLD
2135}
2136
2137/* subi: subi$pack $GRi,$s12,$GRk */
2138
2139static SEM_PC
2140SEM_FN_NAME (frvbf,subi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2141{
2142#define FLD(f) abuf->fields.sfmt_swapi.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    SI opval = SUBSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
2150    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2151    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2152  }
2153
2154  return vpc;
2155#undef FLD
2156}
2157
2158/* andi: andi$pack $GRi,$s12,$GRk */
2159
2160static SEM_PC
2161SEM_FN_NAME (frvbf,andi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2162{
2163#define FLD(f) abuf->fields.sfmt_swapi.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    SI opval = ANDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
2171    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2172    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2173  }
2174
2175  return vpc;
2176#undef FLD
2177}
2178
2179/* ori: ori$pack $GRi,$s12,$GRk */
2180
2181static SEM_PC
2182SEM_FN_NAME (frvbf,ori) (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 = ORSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
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/* xori: xori$pack $GRi,$s12,$GRk */
2201
2202static SEM_PC
2203SEM_FN_NAME (frvbf,xori) (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 = XORSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
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/* sdivi: sdivi$pack $GRi,$s12,$GRk */
2222
2223static SEM_PC
2224SEM_FN_NAME (frvbf,sdivi) (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{
2233frvbf_signed_integer_divide (current_cpu, GET_H_GR (FLD (f_GRi)), FLD (f_d12), FLD (f_GRk), 0);
2234; /*clobber*/
2235}
2236
2237  return vpc;
2238#undef FLD
2239}
2240
2241/* nsdivi: nsdivi$pack $GRi,$s12,$GRk */
2242
2243static SEM_PC
2244SEM_FN_NAME (frvbf,nsdivi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2245{
2246#define FLD(f) abuf->fields.sfmt_swapi.f
2247  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2248  int UNUSED written = 0;
2249  IADDR UNUSED pc = abuf->addr;
2250  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2251
2252{
2253frvbf_signed_integer_divide (current_cpu, GET_H_GR (FLD (f_GRi)), FLD (f_d12), FLD (f_GRk), 1);
2254; /*clobber*/
2255}
2256
2257  return vpc;
2258#undef FLD
2259}
2260
2261/* udivi: udivi$pack $GRi,$s12,$GRk */
2262
2263static SEM_PC
2264SEM_FN_NAME (frvbf,udivi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2265{
2266#define FLD(f) abuf->fields.sfmt_swapi.f
2267  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2268  int UNUSED written = 0;
2269  IADDR UNUSED pc = abuf->addr;
2270  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2271
2272{
2273frvbf_unsigned_integer_divide (current_cpu, GET_H_GR (FLD (f_GRi)), FLD (f_d12), FLD (f_GRk), 0);
2274; /*clobber*/
2275}
2276
2277  return vpc;
2278#undef FLD
2279}
2280
2281/* nudivi: nudivi$pack $GRi,$s12,$GRk */
2282
2283static SEM_PC
2284SEM_FN_NAME (frvbf,nudivi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2285{
2286#define FLD(f) abuf->fields.sfmt_swapi.f
2287  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2288  int UNUSED written = 0;
2289  IADDR UNUSED pc = abuf->addr;
2290  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2291
2292{
2293frvbf_unsigned_integer_divide (current_cpu, GET_H_GR (FLD (f_GRi)), FLD (f_d12), FLD (f_GRk), 1);
2294; /*clobber*/
2295}
2296
2297  return vpc;
2298#undef FLD
2299}
2300
2301/* smuli: smuli$pack $GRi,$s12,$GRdoublek */
2302
2303static SEM_PC
2304SEM_FN_NAME (frvbf,smuli) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2305{
2306#define FLD(f) abuf->fields.sfmt_smuli.f
2307  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2308  int UNUSED written = 0;
2309  IADDR UNUSED pc = abuf->addr;
2310  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2311
2312  {
2313    DI opval = MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi))), EXTSIDI (FLD (f_d12)));
2314    sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
2315    TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
2316  }
2317
2318  return vpc;
2319#undef FLD
2320}
2321
2322/* umuli: umuli$pack $GRi,$s12,$GRdoublek */
2323
2324static SEM_PC
2325SEM_FN_NAME (frvbf,umuli) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2326{
2327#define FLD(f) abuf->fields.sfmt_smuli.f
2328  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2329  int UNUSED written = 0;
2330  IADDR UNUSED pc = abuf->addr;
2331  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2332
2333  {
2334    DI opval = MULDI (ZEXTSIDI (GET_H_GR (FLD (f_GRi))), ZEXTSIDI (FLD (f_d12)));
2335    sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
2336    TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
2337  }
2338
2339  return vpc;
2340#undef FLD
2341}
2342
2343/* slli: slli$pack $GRi,$s12,$GRk */
2344
2345static SEM_PC
2346SEM_FN_NAME (frvbf,slli) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2347{
2348#define FLD(f) abuf->fields.sfmt_swapi.f
2349  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2350  int UNUSED written = 0;
2351  IADDR UNUSED pc = abuf->addr;
2352  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2353
2354  {
2355    SI opval = SLLSI (GET_H_GR (FLD (f_GRi)), ANDSI (FLD (f_d12), 31));
2356    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2357    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2358  }
2359
2360  return vpc;
2361#undef FLD
2362}
2363
2364/* srli: srli$pack $GRi,$s12,$GRk */
2365
2366static SEM_PC
2367SEM_FN_NAME (frvbf,srli) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2368{
2369#define FLD(f) abuf->fields.sfmt_swapi.f
2370  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2371  int UNUSED written = 0;
2372  IADDR UNUSED pc = abuf->addr;
2373  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2374
2375  {
2376    SI opval = SRLSI (GET_H_GR (FLD (f_GRi)), ANDSI (FLD (f_d12), 31));
2377    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2378    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2379  }
2380
2381  return vpc;
2382#undef FLD
2383}
2384
2385/* srai: srai$pack $GRi,$s12,$GRk */
2386
2387static SEM_PC
2388SEM_FN_NAME (frvbf,srai) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2389{
2390#define FLD(f) abuf->fields.sfmt_swapi.f
2391  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2392  int UNUSED written = 0;
2393  IADDR UNUSED pc = abuf->addr;
2394  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2395
2396  {
2397    SI opval = SRASI (GET_H_GR (FLD (f_GRi)), ANDSI (FLD (f_d12), 31));
2398    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2399    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2400  }
2401
2402  return vpc;
2403#undef FLD
2404}
2405
2406/* scani: scani$pack $GRi,$s12,$GRk */
2407
2408static SEM_PC
2409SEM_FN_NAME (frvbf,scani) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2410{
2411#define FLD(f) abuf->fields.sfmt_swapi.f
2412  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2413  int UNUSED written = 0;
2414  IADDR UNUSED pc = abuf->addr;
2415  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2416
2417{
2418  SI tmp_tmp1;
2419  SI tmp_tmp2;
2420  tmp_tmp1 = GET_H_GR (FLD (f_GRi));
2421  tmp_tmp2 = SRASI (FLD (f_d12), 1);
2422  {
2423    SI opval = frvbf_scan_result (current_cpu, XORSI (tmp_tmp1, tmp_tmp2));
2424    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2425    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2426  }
2427}
2428
2429  return vpc;
2430#undef FLD
2431}
2432
2433/* addicc: addicc$pack $GRi,$s10,$GRk,$ICCi_1 */
2434
2435static SEM_PC
2436SEM_FN_NAME (frvbf,addicc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2437{
2438#define FLD(f) abuf->fields.sfmt_addicc.f
2439  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2440  int UNUSED written = 0;
2441  IADDR UNUSED pc = abuf->addr;
2442  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2443
2444{
2445  BI tmp_tmp;
2446  QI tmp_cc;
2447  SI tmp_result;
2448  tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
2449  tmp_tmp = ADDOFSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), 0);
2450if (EQBI (tmp_tmp, 0)) {
2451  tmp_cc = ANDQI (tmp_cc, 13);
2452} else {
2453  tmp_cc = ORQI (tmp_cc, 2);
2454}
2455  tmp_tmp = ADDCFSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), 0);
2456if (EQBI (tmp_tmp, 0)) {
2457  tmp_cc = ANDQI (tmp_cc, 14);
2458} else {
2459  tmp_cc = ORQI (tmp_cc, 1);
2460}
2461  tmp_result = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10));
2462if (EQSI (tmp_result, 0)) {
2463  tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
2464} else {
2465if (LTSI (tmp_result, 0)) {
2466  tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
2467} else {
2468  tmp_cc = ANDQI (tmp_cc, 3);
2469}
2470}
2471  {
2472    SI opval = tmp_result;
2473    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2474    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2475  }
2476  {
2477    UQI opval = tmp_cc;
2478    sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2479    TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2480  }
2481}
2482
2483  return vpc;
2484#undef FLD
2485}
2486
2487/* subicc: subicc$pack $GRi,$s10,$GRk,$ICCi_1 */
2488
2489static SEM_PC
2490SEM_FN_NAME (frvbf,subicc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2491{
2492#define FLD(f) abuf->fields.sfmt_addicc.f
2493  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2494  int UNUSED written = 0;
2495  IADDR UNUSED pc = abuf->addr;
2496  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2497
2498{
2499  BI tmp_tmp;
2500  QI tmp_cc;
2501  SI tmp_result;
2502  tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
2503  tmp_tmp = SUBOFSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), 0);
2504if (EQBI (tmp_tmp, 0)) {
2505  tmp_cc = ANDQI (tmp_cc, 13);
2506} else {
2507  tmp_cc = ORQI (tmp_cc, 2);
2508}
2509  tmp_tmp = SUBCFSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), 0);
2510if (EQBI (tmp_tmp, 0)) {
2511  tmp_cc = ANDQI (tmp_cc, 14);
2512} else {
2513  tmp_cc = ORQI (tmp_cc, 1);
2514}
2515  tmp_result = SUBSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10));
2516if (EQSI (tmp_result, 0)) {
2517  tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
2518} else {
2519if (LTSI (tmp_result, 0)) {
2520  tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
2521} else {
2522  tmp_cc = ANDQI (tmp_cc, 3);
2523}
2524}
2525  {
2526    SI opval = tmp_result;
2527    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2528    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2529  }
2530  {
2531    UQI opval = tmp_cc;
2532    sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2533    TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2534  }
2535}
2536
2537  return vpc;
2538#undef FLD
2539}
2540
2541/* andicc: andicc$pack $GRi,$s10,$GRk,$ICCi_1 */
2542
2543static SEM_PC
2544SEM_FN_NAME (frvbf,andicc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2545{
2546#define FLD(f) abuf->fields.sfmt_addicc.f
2547  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2548  int UNUSED written = 0;
2549  IADDR UNUSED pc = abuf->addr;
2550  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2551
2552{
2553  SI tmp_tmp;
2554  tmp_tmp = ANDSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10));
2555  {
2556    SI opval = tmp_tmp;
2557    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2558    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2559  }
2560if (EQSI (tmp_tmp, 0)) {
2561  {
2562    UQI opval = ORQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 7), 4);
2563    sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2564    written |= (1 << 4);
2565    TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2566  }
2567} else {
2568if (LTSI (tmp_tmp, 0)) {
2569  {
2570    UQI opval = ORQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 11), 8);
2571    sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2572    written |= (1 << 4);
2573    TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2574  }
2575} else {
2576  {
2577    UQI opval = ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 3);
2578    sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2579    written |= (1 << 4);
2580    TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2581  }
2582}
2583}
2584}
2585
2586  abuf->written = written;
2587  return vpc;
2588#undef FLD
2589}
2590
2591/* oricc: oricc$pack $GRi,$s10,$GRk,$ICCi_1 */
2592
2593static SEM_PC
2594SEM_FN_NAME (frvbf,oricc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2595{
2596#define FLD(f) abuf->fields.sfmt_addicc.f
2597  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2598  int UNUSED written = 0;
2599  IADDR UNUSED pc = abuf->addr;
2600  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2601
2602{
2603  SI tmp_tmp;
2604  tmp_tmp = ORSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10));
2605  {
2606    SI opval = tmp_tmp;
2607    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2608    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2609  }
2610if (EQSI (tmp_tmp, 0)) {
2611  {
2612    UQI opval = ORQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 7), 4);
2613    sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2614    written |= (1 << 4);
2615    TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2616  }
2617} else {
2618if (LTSI (tmp_tmp, 0)) {
2619  {
2620    UQI opval = ORQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 11), 8);
2621    sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2622    written |= (1 << 4);
2623    TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2624  }
2625} else {
2626  {
2627    UQI opval = ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 3);
2628    sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2629    written |= (1 << 4);
2630    TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2631  }
2632}
2633}
2634}
2635
2636  abuf->written = written;
2637  return vpc;
2638#undef FLD
2639}
2640
2641/* xoricc: xoricc$pack $GRi,$s10,$GRk,$ICCi_1 */
2642
2643static SEM_PC
2644SEM_FN_NAME (frvbf,xoricc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2645{
2646#define FLD(f) abuf->fields.sfmt_addicc.f
2647  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2648  int UNUSED written = 0;
2649  IADDR UNUSED pc = abuf->addr;
2650  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2651
2652{
2653  SI tmp_tmp;
2654  tmp_tmp = XORSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10));
2655  {
2656    SI opval = tmp_tmp;
2657    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2658    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2659  }
2660if (EQSI (tmp_tmp, 0)) {
2661  {
2662    UQI opval = ORQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 7), 4);
2663    sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2664    written |= (1 << 4);
2665    TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2666  }
2667} else {
2668if (LTSI (tmp_tmp, 0)) {
2669  {
2670    UQI opval = ORQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 11), 8);
2671    sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2672    written |= (1 << 4);
2673    TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2674  }
2675} else {
2676  {
2677    UQI opval = ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 3);
2678    sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2679    written |= (1 << 4);
2680    TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2681  }
2682}
2683}
2684}
2685
2686  abuf->written = written;
2687  return vpc;
2688#undef FLD
2689}
2690
2691/* smulicc: smulicc$pack $GRi,$s10,$GRdoublek,$ICCi_1 */
2692
2693static SEM_PC
2694SEM_FN_NAME (frvbf,smulicc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2695{
2696#define FLD(f) abuf->fields.sfmt_smulicc.f
2697  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2698  int UNUSED written = 0;
2699  IADDR UNUSED pc = abuf->addr;
2700  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2701
2702{
2703  DI tmp_tmp;
2704  QI tmp_cc;
2705  tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
2706  tmp_tmp = MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi))), EXTSIDI (FLD (f_s10)));
2707if (EQDI (SRLDI (tmp_tmp, 63), 0)) {
2708  tmp_cc = ANDQI (tmp_cc, 7);
2709} else {
2710  tmp_cc = ORQI (tmp_cc, 8);
2711}
2712if (EQBI (EQDI (tmp_tmp, 0), 0)) {
2713  tmp_cc = ANDQI (tmp_cc, 11);
2714} else {
2715  tmp_cc = ORQI (tmp_cc, 4);
2716}
2717  {
2718    DI opval = tmp_tmp;
2719    sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
2720    TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
2721  }
2722  {
2723    UQI opval = tmp_cc;
2724    sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2725    TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2726  }
2727}
2728
2729  return vpc;
2730#undef FLD
2731}
2732
2733/* umulicc: umulicc$pack $GRi,$s10,$GRdoublek,$ICCi_1 */
2734
2735static SEM_PC
2736SEM_FN_NAME (frvbf,umulicc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2737{
2738#define FLD(f) abuf->fields.sfmt_smulicc.f
2739  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2740  int UNUSED written = 0;
2741  IADDR UNUSED pc = abuf->addr;
2742  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2743
2744{
2745  DI tmp_tmp;
2746  QI tmp_cc;
2747  tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
2748  tmp_tmp = MULDI (ZEXTSIDI (GET_H_GR (FLD (f_GRi))), ZEXTSIDI (FLD (f_s10)));
2749if (EQDI (SRLDI (tmp_tmp, 63), 0)) {
2750  tmp_cc = ANDQI (tmp_cc, 7);
2751} else {
2752  tmp_cc = ORQI (tmp_cc, 8);
2753}
2754if (EQBI (EQDI (tmp_tmp, 0), 0)) {
2755  tmp_cc = ANDQI (tmp_cc, 11);
2756} else {
2757  tmp_cc = ORQI (tmp_cc, 4);
2758}
2759  {
2760    DI opval = tmp_tmp;
2761    sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
2762    TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
2763  }
2764  {
2765    UQI opval = tmp_cc;
2766    sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2767    TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2768  }
2769}
2770
2771  return vpc;
2772#undef FLD
2773}
2774
2775/* sllicc: sllicc$pack $GRi,$s10,$GRk,$ICCi_1 */
2776
2777static SEM_PC
2778SEM_FN_NAME (frvbf,sllicc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2779{
2780#define FLD(f) abuf->fields.sfmt_addicc.f
2781  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2782  int UNUSED written = 0;
2783  IADDR UNUSED pc = abuf->addr;
2784  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2785
2786{
2787  SI tmp_shift;
2788  SI tmp_tmp;
2789  QI tmp_cc;
2790  tmp_shift = ANDSI (FLD (f_s10), 31);
2791  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)]));
2792  tmp_tmp = SLLSI (GET_H_GR (FLD (f_GRi)), tmp_shift);
2793  {
2794    SI opval = tmp_tmp;
2795    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2796    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2797  }
2798if (EQSI (tmp_tmp, 0)) {
2799  tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
2800} else {
2801if (LTSI (tmp_tmp, 0)) {
2802  tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
2803} else {
2804  tmp_cc = ANDQI (tmp_cc, 3);
2805}
2806}
2807  {
2808    UQI opval = tmp_cc;
2809    sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2810    TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2811  }
2812}
2813
2814  return vpc;
2815#undef FLD
2816}
2817
2818/* srlicc: srlicc$pack $GRi,$s10,$GRk,$ICCi_1 */
2819
2820static SEM_PC
2821SEM_FN_NAME (frvbf,srlicc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2822{
2823#define FLD(f) abuf->fields.sfmt_addicc.f
2824  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2825  int UNUSED written = 0;
2826  IADDR UNUSED pc = abuf->addr;
2827  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2828
2829{
2830  SI tmp_shift;
2831  SI tmp_tmp;
2832  QI tmp_cc;
2833  tmp_shift = ANDSI (FLD (f_s10), 31);
2834  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)]));
2835  tmp_tmp = SRLSI (GET_H_GR (FLD (f_GRi)), tmp_shift);
2836  {
2837    SI opval = tmp_tmp;
2838    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2839    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2840  }
2841if (EQSI (tmp_tmp, 0)) {
2842  tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
2843} else {
2844if (LTSI (tmp_tmp, 0)) {
2845  tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
2846} else {
2847  tmp_cc = ANDQI (tmp_cc, 3);
2848}
2849}
2850  {
2851    UQI opval = tmp_cc;
2852    sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2853    TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2854  }
2855}
2856
2857  return vpc;
2858#undef FLD
2859}
2860
2861/* sraicc: sraicc$pack $GRi,$s10,$GRk,$ICCi_1 */
2862
2863static SEM_PC
2864SEM_FN_NAME (frvbf,sraicc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2865{
2866#define FLD(f) abuf->fields.sfmt_addicc.f
2867  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2868  int UNUSED written = 0;
2869  IADDR UNUSED pc = abuf->addr;
2870  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2871
2872{
2873  SI tmp_shift;
2874  SI tmp_tmp;
2875  QI tmp_cc;
2876  tmp_shift = ANDSI (FLD (f_s10), 31);
2877  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)]));
2878  tmp_tmp = SRASI (GET_H_GR (FLD (f_GRi)), tmp_shift);
2879  {
2880    SI opval = tmp_tmp;
2881    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2882    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2883  }
2884if (EQSI (tmp_tmp, 0)) {
2885  tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
2886} else {
2887if (LTSI (tmp_tmp, 0)) {
2888  tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
2889} else {
2890  tmp_cc = ANDQI (tmp_cc, 3);
2891}
2892}
2893  {
2894    UQI opval = tmp_cc;
2895    sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2896    TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2897  }
2898}
2899
2900  return vpc;
2901#undef FLD
2902}
2903
2904/* addxi: addxi$pack $GRi,$s10,$GRk,$ICCi_1 */
2905
2906static SEM_PC
2907SEM_FN_NAME (frvbf,addxi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2908{
2909#define FLD(f) abuf->fields.sfmt_addicc.f
2910  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2911  int UNUSED written = 0;
2912  IADDR UNUSED pc = abuf->addr;
2913  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2914
2915  {
2916    SI opval = ADDCSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 1)));
2917    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2918    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2919  }
2920
2921  return vpc;
2922#undef FLD
2923}
2924
2925/* subxi: subxi$pack $GRi,$s10,$GRk,$ICCi_1 */
2926
2927static SEM_PC
2928SEM_FN_NAME (frvbf,subxi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2929{
2930#define FLD(f) abuf->fields.sfmt_addicc.f
2931  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2932  int UNUSED written = 0;
2933  IADDR UNUSED pc = abuf->addr;
2934  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2935
2936  {
2937    SI opval = SUBCSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 1)));
2938    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2939    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2940  }
2941
2942  return vpc;
2943#undef FLD
2944}
2945
2946/* addxicc: addxicc$pack $GRi,$s10,$GRk,$ICCi_1 */
2947
2948static SEM_PC
2949SEM_FN_NAME (frvbf,addxicc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2950{
2951#define FLD(f) abuf->fields.sfmt_addicc.f
2952  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2953  int UNUSED written = 0;
2954  IADDR UNUSED pc = abuf->addr;
2955  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2956
2957{
2958  SI tmp_tmp;
2959  QI tmp_cc;
2960  tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
2961  tmp_tmp = ADDCSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), TRUNCQIBI (ANDQI (tmp_cc, 1)));
2962if (EQSI (ADDOFSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), TRUNCQIBI (ANDQI (tmp_cc, 1))), 0)) {
2963  tmp_cc = ANDQI (tmp_cc, 13);
2964} else {
2965  tmp_cc = ORQI (tmp_cc, 2);
2966}
2967if (EQSI (ADDCFSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), TRUNCQIBI (ANDQI (tmp_cc, 1))), 0)) {
2968  tmp_cc = ANDQI (tmp_cc, 14);
2969} else {
2970  tmp_cc = ORQI (tmp_cc, 1);
2971}
2972if (EQSI (tmp_tmp, 0)) {
2973  tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
2974} else {
2975if (LTSI (tmp_tmp, 0)) {
2976  tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
2977} else {
2978  tmp_cc = ANDQI (tmp_cc, 3);
2979}
2980}
2981  {
2982    SI opval = tmp_tmp;
2983    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2984    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2985  }
2986  {
2987    UQI opval = tmp_cc;
2988    sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2989    TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2990  }
2991}
2992
2993  return vpc;
2994#undef FLD
2995}
2996
2997/* subxicc: subxicc$pack $GRi,$s10,$GRk,$ICCi_1 */
2998
2999static SEM_PC
3000SEM_FN_NAME (frvbf,subxicc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3001{
3002#define FLD(f) abuf->fields.sfmt_addicc.f
3003  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3004  int UNUSED written = 0;
3005  IADDR UNUSED pc = abuf->addr;
3006  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3007
3008{
3009  SI tmp_tmp;
3010  QI tmp_cc;
3011  tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
3012  tmp_tmp = SUBCSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), TRUNCQIBI (ANDQI (tmp_cc, 1)));
3013if (EQSI (SUBOFSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), TRUNCQIBI (ANDQI (tmp_cc, 1))), 0)) {
3014  tmp_cc = ANDQI (tmp_cc, 13);
3015} else {
3016  tmp_cc = ORQI (tmp_cc, 2);
3017}
3018if (EQSI (SUBCFSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), TRUNCQIBI (ANDQI (tmp_cc, 1))), 0)) {
3019  tmp_cc = ANDQI (tmp_cc, 14);
3020} else {
3021  tmp_cc = ORQI (tmp_cc, 1);
3022}
3023if (EQSI (tmp_tmp, 0)) {
3024  tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
3025} else {
3026if (LTSI (tmp_tmp, 0)) {
3027  tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
3028} else {
3029  tmp_cc = ANDQI (tmp_cc, 3);
3030}
3031}
3032  {
3033    SI opval = tmp_tmp;
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    UQI opval = tmp_cc;
3039    sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
3040    TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
3041  }
3042}
3043
3044  return vpc;
3045#undef FLD
3046}
3047
3048/* cmpb: cmpb$pack $GRi,$GRj,$ICCi_1 */
3049
3050static SEM_PC
3051SEM_FN_NAME (frvbf,cmpb) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3052{
3053#define FLD(f) abuf->fields.sfmt_smulcc.f
3054  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3055  int UNUSED written = 0;
3056  IADDR UNUSED pc = abuf->addr;
3057  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3058
3059{
3060  QI tmp_cc;
3061if (EQBI (EQSI (ANDSI (GET_H_GR (FLD (f_GRi)), 0xff000000), ANDSI (GET_H_GR (FLD (f_GRj)), 0xff000000)), 0)) {
3062  tmp_cc = ANDQI (tmp_cc, 7);
3063} else {
3064  tmp_cc = ORQI (tmp_cc, 8);
3065}
3066if (EQBI (EQSI (ANDSI (GET_H_GR (FLD (f_GRi)), 16711680), ANDSI (GET_H_GR (FLD (f_GRj)), 16711680)), 0)) {
3067  tmp_cc = ANDQI (tmp_cc, 11);
3068} else {
3069  tmp_cc = ORQI (tmp_cc, 4);
3070}
3071if (EQBI (EQSI (ANDSI (GET_H_GR (FLD (f_GRi)), 65280), ANDSI (GET_H_GR (FLD (f_GRj)), 65280)), 0)) {
3072  tmp_cc = ANDQI (tmp_cc, 13);
3073} else {
3074  tmp_cc = ORQI (tmp_cc, 2);
3075}
3076if (EQBI (EQSI (ANDSI (GET_H_GR (FLD (f_GRi)), 255), ANDSI (GET_H_GR (FLD (f_GRj)), 255)), 0)) {
3077  tmp_cc = ANDQI (tmp_cc, 14);
3078} else {
3079  tmp_cc = ORQI (tmp_cc, 1);
3080}
3081  {
3082    UQI opval = tmp_cc;
3083    sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
3084    TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
3085  }
3086}
3087
3088  return vpc;
3089#undef FLD
3090}
3091
3092/* cmpba: cmpba$pack $GRi,$GRj,$ICCi_1 */
3093
3094static SEM_PC
3095SEM_FN_NAME (frvbf,cmpba) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3096{
3097#define FLD(f) abuf->fields.sfmt_smulcc.f
3098  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3099  int UNUSED written = 0;
3100  IADDR UNUSED pc = abuf->addr;
3101  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3102
3103{
3104  QI tmp_cc;
3105  tmp_cc = 0;
3106if (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)) {
3107  tmp_cc = ANDQI (tmp_cc, 14);
3108} else {
3109  tmp_cc = ORQI (tmp_cc, 1);
3110}
3111  {
3112    UQI opval = tmp_cc;
3113    sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
3114    TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
3115  }
3116}
3117
3118  return vpc;
3119#undef FLD
3120}
3121
3122/* setlo: setlo$pack $ulo16,$GRklo */
3123
3124static SEM_PC
3125SEM_FN_NAME (frvbf,setlo) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3126{
3127#define FLD(f) abuf->fields.sfmt_setlo.f
3128  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3129  int UNUSED written = 0;
3130  IADDR UNUSED pc = abuf->addr;
3131  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3132
3133  {
3134    UHI opval = FLD (f_u16);
3135    sim_queue_fn_hi_write (current_cpu, frvbf_h_gr_lo_set, FLD (f_GRk), opval);
3136    TRACE_RESULT (current_cpu, abuf, "gr_lo", 'x', opval);
3137  }
3138
3139  return vpc;
3140#undef FLD
3141}
3142
3143/* sethi: sethi$pack $uhi16,$GRkhi */
3144
3145static SEM_PC
3146SEM_FN_NAME (frvbf,sethi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3147{
3148#define FLD(f) abuf->fields.sfmt_sethi.f
3149  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3150  int UNUSED written = 0;
3151  IADDR UNUSED pc = abuf->addr;
3152  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3153
3154  {
3155    UHI opval = FLD (f_u16);
3156    sim_queue_fn_hi_write (current_cpu, frvbf_h_gr_hi_set, FLD (f_GRk), opval);
3157    TRACE_RESULT (current_cpu, abuf, "gr_hi", 'x', opval);
3158  }
3159
3160  return vpc;
3161#undef FLD
3162}
3163
3164/* setlos: setlos$pack $slo16,$GRk */
3165
3166static SEM_PC
3167SEM_FN_NAME (frvbf,setlos) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3168{
3169#define FLD(f) abuf->fields.sfmt_setlos.f
3170  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3171  int UNUSED written = 0;
3172  IADDR UNUSED pc = abuf->addr;
3173  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3174
3175  {
3176    SI opval = FLD (f_s16);
3177    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3178    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3179  }
3180
3181  return vpc;
3182#undef FLD
3183}
3184
3185/* ldsb: ldsb$pack @($GRi,$GRj),$GRk */
3186
3187static SEM_PC
3188SEM_FN_NAME (frvbf,ldsb) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3189{
3190#define FLD(f) abuf->fields.sfmt_addcc.f
3191  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3192  int UNUSED written = 0;
3193  IADDR UNUSED pc = abuf->addr;
3194  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3195
3196  {
3197    SI opval = frvbf_read_mem_QI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3198    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3199    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3200  }
3201
3202  return vpc;
3203#undef FLD
3204}
3205
3206/* ldub: ldub$pack @($GRi,$GRj),$GRk */
3207
3208static SEM_PC
3209SEM_FN_NAME (frvbf,ldub) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3210{
3211#define FLD(f) abuf->fields.sfmt_addcc.f
3212  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3213  int UNUSED written = 0;
3214  IADDR UNUSED pc = abuf->addr;
3215  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3216
3217  {
3218    SI opval = frvbf_read_mem_UQI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3219    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3220    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3221  }
3222
3223  return vpc;
3224#undef FLD
3225}
3226
3227/* ldsh: ldsh$pack @($GRi,$GRj),$GRk */
3228
3229static SEM_PC
3230SEM_FN_NAME (frvbf,ldsh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3231{
3232#define FLD(f) abuf->fields.sfmt_addcc.f
3233  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3234  int UNUSED written = 0;
3235  IADDR UNUSED pc = abuf->addr;
3236  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3237
3238  {
3239    SI opval = frvbf_read_mem_HI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3240    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3241    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3242  }
3243
3244  return vpc;
3245#undef FLD
3246}
3247
3248/* lduh: lduh$pack @($GRi,$GRj),$GRk */
3249
3250static SEM_PC
3251SEM_FN_NAME (frvbf,lduh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3252{
3253#define FLD(f) abuf->fields.sfmt_addcc.f
3254  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3255  int UNUSED written = 0;
3256  IADDR UNUSED pc = abuf->addr;
3257  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3258
3259  {
3260    SI opval = frvbf_read_mem_UHI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3261    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3262    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3263  }
3264
3265  return vpc;
3266#undef FLD
3267}
3268
3269/* ld: ld$pack $ldann($GRi,$GRj),$GRk */
3270
3271static SEM_PC
3272SEM_FN_NAME (frvbf,ld) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3273{
3274#define FLD(f) abuf->fields.sfmt_addcc.f
3275  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3276  int UNUSED written = 0;
3277  IADDR UNUSED pc = abuf->addr;
3278  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3279
3280  {
3281    SI opval = frvbf_read_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3282    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3283    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3284  }
3285
3286  return vpc;
3287#undef FLD
3288}
3289
3290/* ldbf: ldbf$pack @($GRi,$GRj),$FRintk */
3291
3292static SEM_PC
3293SEM_FN_NAME (frvbf,ldbf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3294{
3295#define FLD(f) abuf->fields.sfmt_cldbfu.f
3296  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3297  int UNUSED written = 0;
3298  IADDR UNUSED pc = abuf->addr;
3299  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3300
3301  {
3302    SI opval = frvbf_read_mem_UQI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3303    sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
3304    TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
3305  }
3306
3307  return vpc;
3308#undef FLD
3309}
3310
3311/* ldhf: ldhf$pack @($GRi,$GRj),$FRintk */
3312
3313static SEM_PC
3314SEM_FN_NAME (frvbf,ldhf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3315{
3316#define FLD(f) abuf->fields.sfmt_cldbfu.f
3317  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3318  int UNUSED written = 0;
3319  IADDR UNUSED pc = abuf->addr;
3320  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3321
3322  {
3323    SI opval = frvbf_read_mem_UHI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3324    sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
3325    TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
3326  }
3327
3328  return vpc;
3329#undef FLD
3330}
3331
3332/* ldf: ldf$pack @($GRi,$GRj),$FRintk */
3333
3334static SEM_PC
3335SEM_FN_NAME (frvbf,ldf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3336{
3337#define FLD(f) abuf->fields.sfmt_cldbfu.f
3338  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3339  int UNUSED written = 0;
3340  IADDR UNUSED pc = abuf->addr;
3341  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3342
3343  {
3344    SI opval = frvbf_read_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3345    sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
3346    TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
3347  }
3348
3349  return vpc;
3350#undef FLD
3351}
3352
3353/* ldc: ldc$pack @($GRi,$GRj),$CPRk */
3354
3355static SEM_PC
3356SEM_FN_NAME (frvbf,ldc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3357{
3358#define FLD(f) abuf->fields.sfmt_ldcu.f
3359  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3360  int UNUSED written = 0;
3361  IADDR UNUSED pc = abuf->addr;
3362  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3363
3364  {
3365    SI opval = frvbf_read_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3366    sim_queue_si_write (current_cpu, & CPU (h_cpr[FLD (f_CPRk)]), opval);
3367    TRACE_RESULT (current_cpu, abuf, "cpr", 'x', opval);
3368  }
3369
3370  return vpc;
3371#undef FLD
3372}
3373
3374/* nldsb: nldsb$pack @($GRi,$GRj),$GRk */
3375
3376static SEM_PC
3377SEM_FN_NAME (frvbf,nldsb) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3378{
3379#define FLD(f) abuf->fields.sfmt_addcc.f
3380  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3381  int UNUSED written = 0;
3382  IADDR UNUSED pc = abuf->addr;
3383  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3384
3385{
3386  BI tmp_do_op;
3387  tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 1, 0);
3388if (tmp_do_op) {
3389  {
3390    SI opval = frvbf_read_mem_QI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3391    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3392    written |= (1 << 6);
3393    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3394  }
3395}
3396}
3397
3398  abuf->written = written;
3399  return vpc;
3400#undef FLD
3401}
3402
3403/* nldub: nldub$pack @($GRi,$GRj),$GRk */
3404
3405static SEM_PC
3406SEM_FN_NAME (frvbf,nldub) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3407{
3408#define FLD(f) abuf->fields.sfmt_addcc.f
3409  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3410  int UNUSED written = 0;
3411  IADDR UNUSED pc = abuf->addr;
3412  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3413
3414{
3415  BI tmp_do_op;
3416  tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 0, 0);
3417if (tmp_do_op) {
3418  {
3419    SI opval = frvbf_read_mem_UQI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3420    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3421    written |= (1 << 6);
3422    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3423  }
3424}
3425}
3426
3427  abuf->written = written;
3428  return vpc;
3429#undef FLD
3430}
3431
3432/* nldsh: nldsh$pack @($GRi,$GRj),$GRk */
3433
3434static SEM_PC
3435SEM_FN_NAME (frvbf,nldsh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3436{
3437#define FLD(f) abuf->fields.sfmt_addcc.f
3438  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3439  int UNUSED written = 0;
3440  IADDR UNUSED pc = abuf->addr;
3441  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3442
3443{
3444  BI tmp_do_op;
3445  tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 3, 0);
3446if (tmp_do_op) {
3447  {
3448    SI opval = frvbf_read_mem_HI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3449    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3450    written |= (1 << 6);
3451    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3452  }
3453}
3454}
3455
3456  abuf->written = written;
3457  return vpc;
3458#undef FLD
3459}
3460
3461/* nlduh: nlduh$pack @($GRi,$GRj),$GRk */
3462
3463static SEM_PC
3464SEM_FN_NAME (frvbf,nlduh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3465{
3466#define FLD(f) abuf->fields.sfmt_addcc.f
3467  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3468  int UNUSED written = 0;
3469  IADDR UNUSED pc = abuf->addr;
3470  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3471
3472{
3473  BI tmp_do_op;
3474  tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 2, 0);
3475if (tmp_do_op) {
3476  {
3477    SI opval = frvbf_read_mem_UHI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3478    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3479    written |= (1 << 6);
3480    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3481  }
3482}
3483}
3484
3485  abuf->written = written;
3486  return vpc;
3487#undef FLD
3488}
3489
3490/* nld: nld$pack @($GRi,$GRj),$GRk */
3491
3492static SEM_PC
3493SEM_FN_NAME (frvbf,nld) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3494{
3495#define FLD(f) abuf->fields.sfmt_addcc.f
3496  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3497  int UNUSED written = 0;
3498  IADDR UNUSED pc = abuf->addr;
3499  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3500
3501{
3502  BI tmp_do_op;
3503  tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 4, 0);
3504if (tmp_do_op) {
3505  {
3506    SI opval = frvbf_read_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3507    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3508    written |= (1 << 6);
3509    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3510  }
3511}
3512}
3513
3514  abuf->written = written;
3515  return vpc;
3516#undef FLD
3517}
3518
3519/* nldbf: nldbf$pack @($GRi,$GRj),$FRintk */
3520
3521static SEM_PC
3522SEM_FN_NAME (frvbf,nldbf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3523{
3524#define FLD(f) abuf->fields.sfmt_cldbfu.f
3525  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3526  int UNUSED written = 0;
3527  IADDR UNUSED pc = abuf->addr;
3528  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3529
3530{
3531  BI tmp_do_op;
3532  tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_FRk), 0, 0, 1);
3533if (tmp_do_op) {
3534  {
3535    SI opval = frvbf_read_mem_UQI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3536    sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
3537    written |= (1 << 6);
3538    TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
3539  }
3540}
3541}
3542
3543  abuf->written = written;
3544  return vpc;
3545#undef FLD
3546}
3547
3548/* nldhf: nldhf$pack @($GRi,$GRj),$FRintk */
3549
3550static SEM_PC
3551SEM_FN_NAME (frvbf,nldhf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3552{
3553#define FLD(f) abuf->fields.sfmt_cldbfu.f
3554  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3555  int UNUSED written = 0;
3556  IADDR UNUSED pc = abuf->addr;
3557  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3558
3559{
3560  BI tmp_do_op;
3561  tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_FRk), 0, 2, 1);
3562if (tmp_do_op) {
3563  {
3564    SI opval = frvbf_read_mem_UHI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3565    sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
3566    written |= (1 << 6);
3567    TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
3568  }
3569}
3570}
3571
3572  abuf->written = written;
3573  return vpc;
3574#undef FLD
3575}
3576
3577/* nldf: nldf$pack @($GRi,$GRj),$FRintk */
3578
3579static SEM_PC
3580SEM_FN_NAME (frvbf,nldf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3581{
3582#define FLD(f) abuf->fields.sfmt_cldbfu.f
3583  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3584  int UNUSED written = 0;
3585  IADDR UNUSED pc = abuf->addr;
3586  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3587
3588{
3589  BI tmp_do_op;
3590  tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_FRk), 0, 4, 1);
3591if (tmp_do_op) {
3592  {
3593    SI opval = frvbf_read_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3594    sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
3595    written |= (1 << 6);
3596    TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
3597  }
3598}
3599}
3600
3601  abuf->written = written;
3602  return vpc;
3603#undef FLD
3604}
3605
3606/* ldd: ldd$pack $lddann($GRi,$GRj),$GRdoublek */
3607
3608static SEM_PC
3609SEM_FN_NAME (frvbf,ldd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3610{
3611#define FLD(f) abuf->fields.sfmt_smulcc.f
3612  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3613  int UNUSED written = 0;
3614  IADDR UNUSED pc = abuf->addr;
3615  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3616
3617{
3618  SI tmp_address;
3619if (NESI (FLD (f_GRk), 0)) {
3620{
3621  tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3622  {
3623    DI opval = frvbf_read_mem_DI (current_cpu, pc, tmp_address);
3624    sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
3625    written |= (1 << 4);
3626    TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
3627  }
3628}
3629}
3630}
3631
3632  abuf->written = written;
3633  return vpc;
3634#undef FLD
3635}
3636
3637/* lddf: lddf$pack @($GRi,$GRj),$FRdoublek */
3638
3639static SEM_PC
3640SEM_FN_NAME (frvbf,lddf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3641{
3642#define FLD(f) abuf->fields.sfmt_clddfu.f
3643  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3644  int UNUSED written = 0;
3645  IADDR UNUSED pc = abuf->addr;
3646  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3647
3648{
3649  SI tmp_address;
3650{
3651  tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3652  {
3653    DF opval = frvbf_read_mem_DF (current_cpu, pc, tmp_address);
3654    sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
3655    TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
3656  }
3657}
3658}
3659
3660  return vpc;
3661#undef FLD
3662}
3663
3664/* lddc: lddc$pack @($GRi,$GRj),$CPRdoublek */
3665
3666static SEM_PC
3667SEM_FN_NAME (frvbf,lddc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3668{
3669#define FLD(f) abuf->fields.sfmt_lddcu.f
3670  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3671  int UNUSED written = 0;
3672  IADDR UNUSED pc = abuf->addr;
3673  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3674
3675{
3676  SI tmp_address;
3677{
3678  tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3679  {
3680    DI opval = frvbf_read_mem_DI (current_cpu, pc, tmp_address);
3681    sim_queue_fn_di_write (current_cpu, frvbf_h_cpr_double_set, FLD (f_CPRk), opval);
3682    TRACE_RESULT (current_cpu, abuf, "cpr_double", 'D', opval);
3683  }
3684}
3685}
3686
3687  return vpc;
3688#undef FLD
3689}
3690
3691/* nldd: nldd$pack @($GRi,$GRj),$GRdoublek */
3692
3693static SEM_PC
3694SEM_FN_NAME (frvbf,nldd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3695{
3696#define FLD(f) abuf->fields.sfmt_smulcc.f
3697  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3698  int UNUSED written = 0;
3699  IADDR UNUSED pc = abuf->addr;
3700  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3701
3702{
3703  SI tmp_address;
3704{
3705  BI tmp_do_op;
3706  tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 5, 0);
3707if (tmp_do_op) {
3708if (NESI (FLD (f_GRk), 0)) {
3709{
3710  tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3711  {
3712    DI opval = frvbf_read_mem_DI (current_cpu, pc, tmp_address);
3713    sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
3714    written |= (1 << 6);
3715    TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
3716  }
3717}
3718}
3719}
3720}
3721}
3722
3723  abuf->written = written;
3724  return vpc;
3725#undef FLD
3726}
3727
3728/* nlddf: nlddf$pack @($GRi,$GRj),$FRdoublek */
3729
3730static SEM_PC
3731SEM_FN_NAME (frvbf,nlddf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3732{
3733#define FLD(f) abuf->fields.sfmt_clddfu.f
3734  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3735  int UNUSED written = 0;
3736  IADDR UNUSED pc = abuf->addr;
3737  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3738
3739{
3740  SI tmp_address;
3741{
3742  BI tmp_do_op;
3743  tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_FRk), 0, 5, 1);
3744if (tmp_do_op) {
3745{
3746  tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3747  {
3748    DF opval = frvbf_read_mem_DF (current_cpu, pc, tmp_address);
3749    sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
3750    written |= (1 << 6);
3751    TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
3752  }
3753}
3754}
3755}
3756}
3757
3758  abuf->written = written;
3759  return vpc;
3760#undef FLD
3761}
3762
3763/* ldq: ldq$pack @($GRi,$GRj),$GRk */
3764
3765static SEM_PC
3766SEM_FN_NAME (frvbf,ldq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3767{
3768#define FLD(f) abuf->fields.sfmt_smulcc.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  SI tmp_address;
3776{
3777  tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3778frvbf_load_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
3779}
3780}
3781
3782  return vpc;
3783#undef FLD
3784}
3785
3786/* ldqf: ldqf$pack @($GRi,$GRj),$FRintk */
3787
3788static SEM_PC
3789SEM_FN_NAME (frvbf,ldqf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3790{
3791#define FLD(f) abuf->fields.sfmt_cstdfu.f
3792  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3793  int UNUSED written = 0;
3794  IADDR UNUSED pc = abuf->addr;
3795  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3796
3797{
3798  SI tmp_address;
3799{
3800  tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3801frvbf_load_quad_FRint (current_cpu, pc, tmp_address, FLD (f_FRk));
3802}
3803}
3804
3805  return vpc;
3806#undef FLD
3807}
3808
3809/* ldqc: ldqc$pack @($GRi,$GRj),$CPRk */
3810
3811static SEM_PC
3812SEM_FN_NAME (frvbf,ldqc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3813{
3814#define FLD(f) abuf->fields.sfmt_stdcu.f
3815  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3816  int UNUSED written = 0;
3817  IADDR UNUSED pc = abuf->addr;
3818  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3819
3820{
3821  SI tmp_address;
3822{
3823  tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3824frvbf_load_quad_CPR (current_cpu, pc, tmp_address, FLD (f_CPRk));
3825}
3826}
3827
3828  return vpc;
3829#undef FLD
3830}
3831
3832/* nldq: nldq$pack @($GRi,$GRj),$GRk */
3833
3834static SEM_PC
3835SEM_FN_NAME (frvbf,nldq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3836{
3837#define FLD(f) abuf->fields.sfmt_smulcc.f
3838  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3839  int UNUSED written = 0;
3840  IADDR UNUSED pc = abuf->addr;
3841  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3842
3843{
3844  SI tmp_address;
3845{
3846  BI tmp_do_op;
3847  tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 6, 0);
3848if (tmp_do_op) {
3849{
3850  tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3851frvbf_load_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
3852}
3853}
3854}
3855}
3856
3857  return vpc;
3858#undef FLD
3859}
3860
3861/* nldqf: nldqf$pack @($GRi,$GRj),$FRintk */
3862
3863static SEM_PC
3864SEM_FN_NAME (frvbf,nldqf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3865{
3866#define FLD(f) abuf->fields.sfmt_cstdfu.f
3867  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3868  int UNUSED written = 0;
3869  IADDR UNUSED pc = abuf->addr;
3870  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3871
3872{
3873  SI tmp_address;
3874{
3875  BI tmp_do_op;
3876  tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_FRk), 0, 6, 1);
3877if (tmp_do_op) {
3878{
3879  tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3880frvbf_load_quad_FRint (current_cpu, pc, tmp_address, FLD (f_FRk));
3881}
3882}
3883}
3884}
3885
3886  return vpc;
3887#undef FLD
3888}
3889
3890/* ldsbu: ldsbu$pack @($GRi,$GRj),$GRk */
3891
3892static SEM_PC
3893SEM_FN_NAME (frvbf,ldsbu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3894{
3895#define FLD(f) abuf->fields.sfmt_cldsbu.f
3896  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3897  int UNUSED written = 0;
3898  IADDR UNUSED pc = abuf->addr;
3899  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3900
3901{
3902  USI tmp_address;
3903  tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3904  {
3905    SI opval = frvbf_read_mem_QI (current_cpu, pc, tmp_address);
3906    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3907    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3908  }
3909if (NESI (FLD (f_GRi), FLD (f_GRk))) {
3910{
3911  {
3912    SI opval = tmp_address;
3913    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
3914    written |= (1 << 5);
3915    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3916  }
3917frvbf_force_update (current_cpu);
3918}
3919}
3920}
3921
3922  abuf->written = written;
3923  return vpc;
3924#undef FLD
3925}
3926
3927/* ldubu: ldubu$pack @($GRi,$GRj),$GRk */
3928
3929static SEM_PC
3930SEM_FN_NAME (frvbf,ldubu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3931{
3932#define FLD(f) abuf->fields.sfmt_cldsbu.f
3933  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3934  int UNUSED written = 0;
3935  IADDR UNUSED pc = abuf->addr;
3936  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3937
3938{
3939  USI tmp_address;
3940  tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3941  {
3942    SI opval = frvbf_read_mem_UQI (current_cpu, pc, tmp_address);
3943    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3944    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3945  }
3946if (NESI (FLD (f_GRi), FLD (f_GRk))) {
3947{
3948  {
3949    SI opval = tmp_address;
3950    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
3951    written |= (1 << 5);
3952    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3953  }
3954frvbf_force_update (current_cpu);
3955}
3956}
3957}
3958
3959  abuf->written = written;
3960  return vpc;
3961#undef FLD
3962}
3963
3964/* ldshu: ldshu$pack @($GRi,$GRj),$GRk */
3965
3966static SEM_PC
3967SEM_FN_NAME (frvbf,ldshu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3968{
3969#define FLD(f) abuf->fields.sfmt_cldsbu.f
3970  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3971  int UNUSED written = 0;
3972  IADDR UNUSED pc = abuf->addr;
3973  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3974
3975{
3976  USI tmp_address;
3977  tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3978  {
3979    SI opval = frvbf_read_mem_HI (current_cpu, pc, tmp_address);
3980    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3981    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3982  }
3983if (NESI (FLD (f_GRi), FLD (f_GRk))) {
3984{
3985  {
3986    SI opval = tmp_address;
3987    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
3988    written |= (1 << 5);
3989    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3990  }
3991frvbf_force_update (current_cpu);
3992}
3993}
3994}
3995
3996  abuf->written = written;
3997  return vpc;
3998#undef FLD
3999}
4000
4001/* lduhu: lduhu$pack @($GRi,$GRj),$GRk */
4002
4003static SEM_PC
4004SEM_FN_NAME (frvbf,lduhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4005{
4006#define FLD(f) abuf->fields.sfmt_cldsbu.f
4007  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4008  int UNUSED written = 0;
4009  IADDR UNUSED pc = abuf->addr;
4010  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4011
4012{
4013  USI tmp_address;
4014  tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4015  {
4016    SI opval = frvbf_read_mem_UHI (current_cpu, pc, tmp_address);
4017    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
4018    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4019  }
4020if (NESI (FLD (f_GRi), FLD (f_GRk))) {
4021{
4022  {
4023    SI opval = tmp_address;
4024    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4025    written |= (1 << 5);
4026    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4027  }
4028frvbf_force_update (current_cpu);
4029}
4030}
4031}
4032
4033  abuf->written = written;
4034  return vpc;
4035#undef FLD
4036}
4037
4038/* ldu: ldu$pack @($GRi,$GRj),$GRk */
4039
4040static SEM_PC
4041SEM_FN_NAME (frvbf,ldu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4042{
4043#define FLD(f) abuf->fields.sfmt_cldsbu.f
4044  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4045  int UNUSED written = 0;
4046  IADDR UNUSED pc = abuf->addr;
4047  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4048
4049{
4050  USI tmp_address;
4051  tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4052  {
4053    SI opval = frvbf_read_mem_SI (current_cpu, pc, tmp_address);
4054    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
4055    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4056  }
4057if (NESI (FLD (f_GRi), FLD (f_GRk))) {
4058{
4059  {
4060    SI opval = tmp_address;
4061    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4062    written |= (1 << 5);
4063    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4064  }
4065frvbf_force_update (current_cpu);
4066}
4067}
4068}
4069
4070  abuf->written = written;
4071  return vpc;
4072#undef FLD
4073}
4074
4075/* nldsbu: nldsbu$pack @($GRi,$GRj),$GRk */
4076
4077static SEM_PC
4078SEM_FN_NAME (frvbf,nldsbu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4079{
4080#define FLD(f) abuf->fields.sfmt_cldsbu.f
4081  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4082  int UNUSED written = 0;
4083  IADDR UNUSED pc = abuf->addr;
4084  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4085
4086{
4087  BI tmp_do_op;
4088  tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 1, 0);
4089if (tmp_do_op) {
4090{
4091  USI tmp_address;
4092  tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4093  {
4094    SI opval = frvbf_read_mem_QI (current_cpu, pc, tmp_address);
4095    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
4096    written |= (1 << 7);
4097    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4098  }
4099if (NESI (FLD (f_GRi), FLD (f_GRk))) {
4100{
4101  {
4102    SI opval = tmp_address;
4103    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4104    written |= (1 << 6);
4105    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4106  }
4107frvbf_force_update (current_cpu);
4108}
4109}
4110}
4111}
4112}
4113
4114  abuf->written = written;
4115  return vpc;
4116#undef FLD
4117}
4118
4119/* nldubu: nldubu$pack @($GRi,$GRj),$GRk */
4120
4121static SEM_PC
4122SEM_FN_NAME (frvbf,nldubu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4123{
4124#define FLD(f) abuf->fields.sfmt_cldsbu.f
4125  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4126  int UNUSED written = 0;
4127  IADDR UNUSED pc = abuf->addr;
4128  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4129
4130{
4131  BI tmp_do_op;
4132  tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 0, 0);
4133if (tmp_do_op) {
4134{
4135  USI tmp_address;
4136  tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4137  {
4138    SI opval = frvbf_read_mem_UQI (current_cpu, pc, tmp_address);
4139    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
4140    written |= (1 << 7);
4141    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4142  }
4143if (NESI (FLD (f_GRi), FLD (f_GRk))) {
4144{
4145  {
4146    SI opval = tmp_address;
4147    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4148    written |= (1 << 6);
4149    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4150  }
4151frvbf_force_update (current_cpu);
4152}
4153}
4154}
4155}
4156}
4157
4158  abuf->written = written;
4159  return vpc;
4160#undef FLD
4161}
4162
4163/* nldshu: nldshu$pack @($GRi,$GRj),$GRk */
4164
4165static SEM_PC
4166SEM_FN_NAME (frvbf,nldshu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4167{
4168#define FLD(f) abuf->fields.sfmt_cldsbu.f
4169  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4170  int UNUSED written = 0;
4171  IADDR UNUSED pc = abuf->addr;
4172  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4173
4174{
4175  BI tmp_do_op;
4176  tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 3, 0);
4177if (tmp_do_op) {
4178{
4179  USI tmp_address;
4180  tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4181  {
4182    SI opval = frvbf_read_mem_HI (current_cpu, pc, tmp_address);
4183    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
4184    written |= (1 << 7);
4185    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4186  }
4187if (NESI (FLD (f_GRi), FLD (f_GRk))) {
4188{
4189  {
4190    SI opval = tmp_address;
4191    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4192    written |= (1 << 6);
4193    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4194  }
4195frvbf_force_update (current_cpu);
4196}
4197}
4198}
4199}
4200}
4201
4202  abuf->written = written;
4203  return vpc;
4204#undef FLD
4205}
4206
4207/* nlduhu: nlduhu$pack @($GRi,$GRj),$GRk */
4208
4209static SEM_PC
4210SEM_FN_NAME (frvbf,nlduhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4211{
4212#define FLD(f) abuf->fields.sfmt_cldsbu.f
4213  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4214  int UNUSED written = 0;
4215  IADDR UNUSED pc = abuf->addr;
4216  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4217
4218{
4219  BI tmp_do_op;
4220  tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 2, 0);
4221if (tmp_do_op) {
4222{
4223  USI tmp_address;
4224  tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4225  {
4226    SI opval = frvbf_read_mem_UHI (current_cpu, pc, tmp_address);
4227    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
4228    written |= (1 << 7);
4229    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4230  }
4231if (NESI (FLD (f_GRi), FLD (f_GRk))) {
4232{
4233  {
4234    SI opval = tmp_address;
4235    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4236    written |= (1 << 6);
4237    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4238  }
4239frvbf_force_update (current_cpu);
4240}
4241}
4242}
4243}
4244}
4245
4246  abuf->written = written;
4247  return vpc;
4248#undef FLD
4249}
4250
4251/* nldu: nldu$pack @($GRi,$GRj),$GRk */
4252
4253static SEM_PC
4254SEM_FN_NAME (frvbf,nldu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4255{
4256#define FLD(f) abuf->fields.sfmt_cldsbu.f
4257  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4258  int UNUSED written = 0;
4259  IADDR UNUSED pc = abuf->addr;
4260  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4261
4262{
4263  BI tmp_do_op;
4264  tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 4, 0);
4265if (tmp_do_op) {
4266{
4267  USI tmp_address;
4268  tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4269  {
4270    SI opval = frvbf_read_mem_SI (current_cpu, pc, tmp_address);
4271    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
4272    written |= (1 << 7);
4273    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4274  }
4275if (NESI (FLD (f_GRi), FLD (f_GRk))) {
4276{
4277  {
4278    SI opval = tmp_address;
4279    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4280    written |= (1 << 6);
4281    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4282  }
4283frvbf_force_update (current_cpu);
4284}
4285}
4286}
4287}
4288}
4289
4290  abuf->written = written;
4291  return vpc;
4292#undef FLD
4293}
4294
4295/* ldbfu: ldbfu$pack @($GRi,$GRj),$FRintk */
4296
4297static SEM_PC
4298SEM_FN_NAME (frvbf,ldbfu) (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  USI tmp_address;
4308  tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4309  {
4310    SI opval = frvbf_read_mem_UQI (current_cpu, pc, tmp_address);
4311    sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
4312    TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
4313  }
4314  {
4315    SI opval = tmp_address;
4316    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4317    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4318  }
4319frvbf_force_update (current_cpu);
4320}
4321
4322  return vpc;
4323#undef FLD
4324}
4325
4326/* ldhfu: ldhfu$pack @($GRi,$GRj),$FRintk */
4327
4328static SEM_PC
4329SEM_FN_NAME (frvbf,ldhfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4330{
4331#define FLD(f) abuf->fields.sfmt_cldbfu.f
4332  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4333  int UNUSED written = 0;
4334  IADDR UNUSED pc = abuf->addr;
4335  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4336
4337{
4338  USI tmp_address;
4339  tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4340  {
4341    SI opval = frvbf_read_mem_UHI (current_cpu, pc, tmp_address);
4342    sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
4343    TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
4344  }
4345  {
4346    SI opval = tmp_address;
4347    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4348    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4349  }
4350frvbf_force_update (current_cpu);
4351}
4352
4353  return vpc;
4354#undef FLD
4355}
4356
4357/* ldfu: ldfu$pack @($GRi,$GRj),$FRintk */
4358
4359static SEM_PC
4360SEM_FN_NAME (frvbf,ldfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4361{
4362#define FLD(f) abuf->fields.sfmt_cldbfu.f
4363  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4364  int UNUSED written = 0;
4365  IADDR UNUSED pc = abuf->addr;
4366  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4367
4368{
4369  USI tmp_address;
4370  tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4371  {
4372    SI opval = frvbf_read_mem_SI (current_cpu, pc, tmp_address);
4373    sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
4374    TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
4375  }
4376  {
4377    SI opval = tmp_address;
4378    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4379    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4380  }
4381frvbf_force_update (current_cpu);
4382}
4383
4384  return vpc;
4385#undef FLD
4386}
4387
4388/* ldcu: ldcu$pack @($GRi,$GRj),$CPRk */
4389
4390static SEM_PC
4391SEM_FN_NAME (frvbf,ldcu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4392{
4393#define FLD(f) abuf->fields.sfmt_ldcu.f
4394  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4395  int UNUSED written = 0;
4396  IADDR UNUSED pc = abuf->addr;
4397  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4398
4399{
4400  USI tmp_address;
4401  tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4402  {
4403    SI opval = frvbf_read_mem_SI (current_cpu, pc, tmp_address);
4404    sim_queue_si_write (current_cpu, & CPU (h_cpr[FLD (f_CPRk)]), opval);
4405    TRACE_RESULT (current_cpu, abuf, "cpr", 'x', opval);
4406  }
4407  {
4408    SI opval = tmp_address;
4409    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4410    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4411  }
4412frvbf_force_update (current_cpu);
4413}
4414
4415  return vpc;
4416#undef FLD
4417}
4418
4419/* nldbfu: nldbfu$pack @($GRi,$GRj),$FRintk */
4420
4421static SEM_PC
4422SEM_FN_NAME (frvbf,nldbfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4423{
4424#define FLD(f) abuf->fields.sfmt_cldbfu.f
4425  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4426  int UNUSED written = 0;
4427  IADDR UNUSED pc = abuf->addr;
4428  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4429
4430{
4431  BI tmp_do_op;
4432  tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_FRk), 0, 0, 1);
4433if (tmp_do_op) {
4434{
4435  USI tmp_address;
4436  tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4437  {
4438    SI opval = frvbf_read_mem_UQI (current_cpu, pc, tmp_address);
4439    sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
4440    written |= (1 << 6);
4441    TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
4442  }
4443  {
4444    SI opval = tmp_address;
4445    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4446    written |= (1 << 7);
4447    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4448  }
4449frvbf_force_update (current_cpu);
4450}
4451}
4452}
4453
4454  abuf->written = written;
4455  return vpc;
4456#undef FLD
4457}
4458
4459/* nldhfu: nldhfu$pack @($GRi,$GRj),$FRintk */
4460
4461static SEM_PC
4462SEM_FN_NAME (frvbf,nldhfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4463{
4464#define FLD(f) abuf->fields.sfmt_cldbfu.f
4465  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4466  int UNUSED written = 0;
4467  IADDR UNUSED pc = abuf->addr;
4468  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4469
4470{
4471  BI tmp_do_op;
4472  tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_FRk), 0, 2, 1);
4473if (tmp_do_op) {
4474{
4475  USI tmp_address;
4476  tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4477  {
4478    SI opval = frvbf_read_mem_UHI (current_cpu, pc, tmp_address);
4479    sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
4480    written |= (1 << 6);
4481    TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
4482  }
4483  {
4484    SI opval = tmp_address;
4485    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4486    written |= (1 << 7);
4487    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4488  }
4489frvbf_force_update (current_cpu);
4490}
4491}
4492}
4493
4494  abuf->written = written;
4495  return vpc;
4496#undef FLD
4497}
4498
4499/* nldfu: nldfu$pack @($GRi,$GRj),$FRintk */
4500
4501static SEM_PC
4502SEM_FN_NAME (frvbf,nldfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4503{
4504#define FLD(f) abuf->fields.sfmt_cldbfu.f
4505  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4506  int UNUSED written = 0;
4507  IADDR UNUSED pc = abuf->addr;
4508  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4509
4510{
4511  BI tmp_do_op;
4512  tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_FRk), 0, 4, 1);
4513if (tmp_do_op) {
4514{
4515  USI tmp_address;
4516  tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4517  {
4518    SI opval = frvbf_read_mem_SI (current_cpu, pc, tmp_address);
4519    sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
4520    written |= (1 << 6);
4521    TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
4522  }
4523  {
4524    SI opval = tmp_address;
4525    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4526    written |= (1 << 7);
4527    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4528  }
4529frvbf_force_update (current_cpu);
4530}
4531}
4532}
4533
4534  abuf->written = written;
4535  return vpc;
4536#undef FLD
4537}
4538
4539/* lddu: lddu$pack @($GRi,$GRj),$GRdoublek */
4540
4541static SEM_PC
4542SEM_FN_NAME (frvbf,lddu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4543{
4544#define FLD(f) abuf->fields.sfmt_clddu.f
4545  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4546  int UNUSED written = 0;
4547  IADDR UNUSED pc = abuf->addr;
4548  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4549
4550{
4551  SI tmp_address;
4552if (NESI (FLD (f_GRk), 0)) {
4553{
4554  tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4555  {
4556    DI opval = frvbf_read_mem_DI (current_cpu, pc, tmp_address);
4557    sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
4558    written |= (1 << 5);
4559    TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
4560  }
4561}
4562}
4563if (NESI (FLD (f_GRi), FLD (f_GRk))) {
4564{
4565  {
4566    SI opval = tmp_address;
4567    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4568    written |= (1 << 6);
4569    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4570  }
4571frvbf_force_update (current_cpu);
4572}
4573}
4574}
4575
4576  abuf->written = written;
4577  return vpc;
4578#undef FLD
4579}
4580
4581/* nlddu: nlddu$pack @($GRi,$GRj),$GRdoublek */
4582
4583static SEM_PC
4584SEM_FN_NAME (frvbf,nlddu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4585{
4586#define FLD(f) abuf->fields.sfmt_clddu.f
4587  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4588  int UNUSED written = 0;
4589  IADDR UNUSED pc = abuf->addr;
4590  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4591
4592{
4593  BI tmp_do_op;
4594  tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 5, 0);
4595if (tmp_do_op) {
4596{
4597  SI tmp_address;
4598if (NESI (FLD (f_GRk), 0)) {
4599{
4600  tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4601  {
4602    DI opval = frvbf_read_mem_DI (current_cpu, pc, tmp_address);
4603    sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
4604    written |= (1 << 6);
4605    TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
4606  }
4607}
4608}
4609if (NESI (FLD (f_GRi), FLD (f_GRk))) {
4610{
4611  {
4612    SI opval = tmp_address;
4613    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4614    written |= (1 << 7);
4615    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4616  }
4617frvbf_force_update (current_cpu);
4618}
4619}
4620}
4621}
4622}
4623
4624  abuf->written = written;
4625  return vpc;
4626#undef FLD
4627}
4628
4629/* lddfu: lddfu$pack @($GRi,$GRj),$FRdoublek */
4630
4631static SEM_PC
4632SEM_FN_NAME (frvbf,lddfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4633{
4634#define FLD(f) abuf->fields.sfmt_clddfu.f
4635  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4636  int UNUSED written = 0;
4637  IADDR UNUSED pc = abuf->addr;
4638  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4639
4640{
4641  SI tmp_address;
4642{
4643  tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4644  {
4645    DF opval = frvbf_read_mem_DF (current_cpu, pc, tmp_address);
4646    sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
4647    TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
4648  }
4649}
4650  {
4651    SI opval = tmp_address;
4652    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4653    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4654  }
4655frvbf_force_update (current_cpu);
4656}
4657
4658  return vpc;
4659#undef FLD
4660}
4661
4662/* lddcu: lddcu$pack @($GRi,$GRj),$CPRdoublek */
4663
4664static SEM_PC
4665SEM_FN_NAME (frvbf,lddcu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4666{
4667#define FLD(f) abuf->fields.sfmt_lddcu.f
4668  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4669  int UNUSED written = 0;
4670  IADDR UNUSED pc = abuf->addr;
4671  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4672
4673{
4674  SI tmp_address;
4675{
4676  tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4677  {
4678    DI opval = frvbf_read_mem_DI (current_cpu, pc, tmp_address);
4679    sim_queue_fn_di_write (current_cpu, frvbf_h_cpr_double_set, FLD (f_CPRk), opval);
4680    TRACE_RESULT (current_cpu, abuf, "cpr_double", 'D', opval);
4681  }
4682}
4683  {
4684    SI opval = tmp_address;
4685    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4686    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4687  }
4688frvbf_force_update (current_cpu);
4689}
4690
4691  return vpc;
4692#undef FLD
4693}
4694
4695/* nlddfu: nlddfu$pack @($GRi,$GRj),$FRdoublek */
4696
4697static SEM_PC
4698SEM_FN_NAME (frvbf,nlddfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4699{
4700#define FLD(f) abuf->fields.sfmt_clddfu.f
4701  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4702  int UNUSED written = 0;
4703  IADDR UNUSED pc = abuf->addr;
4704  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4705
4706{
4707  BI tmp_do_op;
4708  tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_FRk), 0, 5, 1);
4709if (tmp_do_op) {
4710{
4711  SI tmp_address;
4712{
4713  tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4714  {
4715    DF opval = frvbf_read_mem_DF (current_cpu, pc, tmp_address);
4716    sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
4717    written |= (1 << 6);
4718    TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
4719  }
4720}
4721  {
4722    SI opval = tmp_address;
4723    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4724    written |= (1 << 7);
4725    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4726  }
4727frvbf_force_update (current_cpu);
4728}
4729}
4730}
4731
4732  abuf->written = written;
4733  return vpc;
4734#undef FLD
4735}
4736
4737/* ldqu: ldqu$pack @($GRi,$GRj),$GRk */
4738
4739static SEM_PC
4740SEM_FN_NAME (frvbf,ldqu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4741{
4742#define FLD(f) abuf->fields.sfmt_cstdu.f
4743  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4744  int UNUSED written = 0;
4745  IADDR UNUSED pc = abuf->addr;
4746  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4747
4748{
4749  SI tmp_address;
4750{
4751  tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4752frvbf_load_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
4753}
4754if (NESI (FLD (f_GRi), FLD (f_GRk))) {
4755{
4756  {
4757    SI opval = tmp_address;
4758    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4759    written |= (1 << 5);
4760    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4761  }
4762frvbf_force_update (current_cpu);
4763}
4764}
4765}
4766
4767  abuf->written = written;
4768  return vpc;
4769#undef FLD
4770}
4771
4772/* nldqu: nldqu$pack @($GRi,$GRj),$GRk */
4773
4774static SEM_PC
4775SEM_FN_NAME (frvbf,nldqu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4776{
4777#define FLD(f) abuf->fields.sfmt_cstdu.f
4778  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4779  int UNUSED written = 0;
4780  IADDR UNUSED pc = abuf->addr;
4781  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4782
4783{
4784  BI tmp_do_op;
4785  tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 6, 0);
4786if (tmp_do_op) {
4787{
4788  SI tmp_address;
4789{
4790  tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4791frvbf_load_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
4792}
4793if (NESI (FLD (f_GRi), FLD (f_GRk))) {
4794{
4795  {
4796    SI opval = tmp_address;
4797    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4798    written |= (1 << 6);
4799    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4800  }
4801frvbf_force_update (current_cpu);
4802}
4803}
4804}
4805}
4806}
4807
4808  abuf->written = written;
4809  return vpc;
4810#undef FLD
4811}
4812
4813/* ldqfu: ldqfu$pack @($GRi,$GRj),$FRintk */
4814
4815static SEM_PC
4816SEM_FN_NAME (frvbf,ldqfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4817{
4818#define FLD(f) abuf->fields.sfmt_cstdfu.f
4819  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4820  int UNUSED written = 0;
4821  IADDR UNUSED pc = abuf->addr;
4822  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4823
4824{
4825  SI tmp_address;
4826{
4827  tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4828frvbf_load_quad_FRint (current_cpu, pc, tmp_address, FLD (f_FRk));
4829}
4830  {
4831    SI opval = tmp_address;
4832    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4833    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4834  }
4835frvbf_force_update (current_cpu);
4836}
4837
4838  return vpc;
4839#undef FLD
4840}
4841
4842/* ldqcu: ldqcu$pack @($GRi,$GRj),$CPRk */
4843
4844static SEM_PC
4845SEM_FN_NAME (frvbf,ldqcu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4846{
4847#define FLD(f) abuf->fields.sfmt_stdcu.f
4848  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4849  int UNUSED written = 0;
4850  IADDR UNUSED pc = abuf->addr;
4851  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4852
4853{
4854  SI tmp_address;
4855{
4856  tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4857frvbf_load_quad_CPR (current_cpu, pc, tmp_address, FLD (f_CPRk));
4858}
4859  {
4860    SI opval = tmp_address;
4861    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4862    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4863  }
4864frvbf_force_update (current_cpu);
4865}
4866
4867  return vpc;
4868#undef FLD
4869}
4870
4871/* nldqfu: nldqfu$pack @($GRi,$GRj),$FRintk */
4872
4873static SEM_PC
4874SEM_FN_NAME (frvbf,nldqfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4875{
4876#define FLD(f) abuf->fields.sfmt_cstdfu.f
4877  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4878  int UNUSED written = 0;
4879  IADDR UNUSED pc = abuf->addr;
4880  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4881
4882{
4883  BI tmp_do_op;
4884  tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_FRk), 0, 6, 1);
4885if (tmp_do_op) {
4886{
4887  SI tmp_address;
4888{
4889  tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4890frvbf_load_quad_FRint (current_cpu, pc, tmp_address, FLD (f_FRk));
4891}
4892  {
4893    SI opval = tmp_address;
4894    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4895    written |= (1 << 6);
4896    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4897  }
4898frvbf_force_update (current_cpu);
4899}
4900}
4901}
4902
4903  abuf->written = written;
4904  return vpc;
4905#undef FLD
4906}
4907
4908/* ldsbi: ldsbi$pack @($GRi,$d12),$GRk */
4909
4910static SEM_PC
4911SEM_FN_NAME (frvbf,ldsbi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4912{
4913#define FLD(f) abuf->fields.sfmt_swapi.f
4914  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4915  int UNUSED written = 0;
4916  IADDR UNUSED pc = abuf->addr;
4917  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4918
4919  {
4920    SI opval = frvbf_read_mem_QI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
4921    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
4922    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4923  }
4924
4925  return vpc;
4926#undef FLD
4927}
4928
4929/* ldshi: ldshi$pack @($GRi,$d12),$GRk */
4930
4931static SEM_PC
4932SEM_FN_NAME (frvbf,ldshi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4933{
4934#define FLD(f) abuf->fields.sfmt_swapi.f
4935  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4936  int UNUSED written = 0;
4937  IADDR UNUSED pc = abuf->addr;
4938  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4939
4940  {
4941    SI opval = frvbf_read_mem_HI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
4942    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
4943    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4944  }
4945
4946  return vpc;
4947#undef FLD
4948}
4949
4950/* ldi: ldi$pack @($GRi,$d12),$GRk */
4951
4952static SEM_PC
4953SEM_FN_NAME (frvbf,ldi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4954{
4955#define FLD(f) abuf->fields.sfmt_swapi.f
4956  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4957  int UNUSED written = 0;
4958  IADDR UNUSED pc = abuf->addr;
4959  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4960
4961  {
4962    SI opval = frvbf_read_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
4963    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
4964    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4965  }
4966
4967  return vpc;
4968#undef FLD
4969}
4970
4971/* ldubi: ldubi$pack @($GRi,$d12),$GRk */
4972
4973static SEM_PC
4974SEM_FN_NAME (frvbf,ldubi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4975{
4976#define FLD(f) abuf->fields.sfmt_swapi.f
4977  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4978  int UNUSED written = 0;
4979  IADDR UNUSED pc = abuf->addr;
4980  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4981
4982  {
4983    SI opval = frvbf_read_mem_UQI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
4984    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
4985    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4986  }
4987
4988  return vpc;
4989#undef FLD
4990}
4991
4992/* lduhi: lduhi$pack @($GRi,$d12),$GRk */
4993
4994static SEM_PC
4995SEM_FN_NAME (frvbf,lduhi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4996{
4997#define FLD(f) abuf->fields.sfmt_swapi.f
4998  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4999  int UNUSED written = 0;
5000  IADDR UNUSED pc = abuf->addr;
5001  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5002
5003  {
5004    SI opval = frvbf_read_mem_UHI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
5005    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
5006    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5007  }
5008
5009  return vpc;
5010#undef FLD
5011}
5012
5013/* ldbfi: ldbfi$pack @($GRi,$d12),$FRintk */
5014
5015static SEM_PC
5016SEM_FN_NAME (frvbf,ldbfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5017{
5018#define FLD(f) abuf->fields.sfmt_ldbfi.f
5019  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5020  int UNUSED written = 0;
5021  IADDR UNUSED pc = abuf->addr;
5022  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5023
5024  {
5025    SI opval = frvbf_read_mem_UQI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
5026    sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
5027    TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
5028  }
5029
5030  return vpc;
5031#undef FLD
5032}
5033
5034/* ldhfi: ldhfi$pack @($GRi,$d12),$FRintk */
5035
5036static SEM_PC
5037SEM_FN_NAME (frvbf,ldhfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5038{
5039#define FLD(f) abuf->fields.sfmt_ldbfi.f
5040  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5041  int UNUSED written = 0;
5042  IADDR UNUSED pc = abuf->addr;
5043  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5044
5045  {
5046    SI opval = frvbf_read_mem_UHI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
5047    sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
5048    TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
5049  }
5050
5051  return vpc;
5052#undef FLD
5053}
5054
5055/* ldfi: ldfi$pack @($GRi,$d12),$FRintk */
5056
5057static SEM_PC
5058SEM_FN_NAME (frvbf,ldfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5059{
5060#define FLD(f) abuf->fields.sfmt_ldbfi.f
5061  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5062  int UNUSED written = 0;
5063  IADDR UNUSED pc = abuf->addr;
5064  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5065
5066  {
5067    SI opval = frvbf_read_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
5068    sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
5069    TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
5070  }
5071
5072  return vpc;
5073#undef FLD
5074}
5075
5076/* nldsbi: nldsbi$pack @($GRi,$d12),$GRk */
5077
5078static SEM_PC
5079SEM_FN_NAME (frvbf,nldsbi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5080{
5081#define FLD(f) abuf->fields.sfmt_swapi.f
5082  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5083  int UNUSED written = 0;
5084  IADDR UNUSED pc = abuf->addr;
5085  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5086
5087{
5088  BI tmp_do_op;
5089  tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), -1, FLD (f_GRk), FLD (f_d12), 1, 0);
5090if (tmp_do_op) {
5091  {
5092    SI opval = frvbf_read_mem_QI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
5093    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
5094    written |= (1 << 5);
5095    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5096  }
5097}
5098}
5099
5100  abuf->written = written;
5101  return vpc;
5102#undef FLD
5103}
5104
5105/* nldubi: nldubi$pack @($GRi,$d12),$GRk */
5106
5107static SEM_PC
5108SEM_FN_NAME (frvbf,nldubi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5109{
5110#define FLD(f) abuf->fields.sfmt_swapi.f
5111  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5112  int UNUSED written = 0;
5113  IADDR UNUSED pc = abuf->addr;
5114  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5115
5116{
5117  BI tmp_do_op;
5118  tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), -1, FLD (f_GRk), FLD (f_d12), 0, 0);
5119if (tmp_do_op) {
5120  {
5121    SI opval = frvbf_read_mem_UQI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
5122    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
5123    written |= (1 << 5);
5124    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5125  }
5126}
5127}
5128
5129  abuf->written = written;
5130  return vpc;
5131#undef FLD
5132}
5133
5134/* nldshi: nldshi$pack @($GRi,$d12),$GRk */
5135
5136static SEM_PC
5137SEM_FN_NAME (frvbf,nldshi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5138{
5139#define FLD(f) abuf->fields.sfmt_swapi.f
5140  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5141  int UNUSED written = 0;
5142  IADDR UNUSED pc = abuf->addr;
5143  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5144
5145{
5146  BI tmp_do_op;
5147  tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), -1, FLD (f_GRk), FLD (f_d12), 3, 0);
5148if (tmp_do_op) {
5149  {
5150    SI opval = frvbf_read_mem_HI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
5151    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
5152    written |= (1 << 5);
5153    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5154  }
5155}
5156}
5157
5158  abuf->written = written;
5159  return vpc;
5160#undef FLD
5161}
5162
5163/* nlduhi: nlduhi$pack @($GRi,$d12),$GRk */
5164
5165static SEM_PC
5166SEM_FN_NAME (frvbf,nlduhi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5167{
5168#define FLD(f) abuf->fields.sfmt_swapi.f
5169  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5170  int UNUSED written = 0;
5171  IADDR UNUSED pc = abuf->addr;
5172  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5173
5174{
5175  BI tmp_do_op;
5176  tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), -1, FLD (f_GRk), FLD (f_d12), 2, 0);
5177if (tmp_do_op) {
5178  {
5179    SI opval = frvbf_read_mem_UHI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
5180    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
5181    written |= (1 << 5);
5182    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5183  }
5184}
5185}
5186
5187  abuf->written = written;
5188  return vpc;
5189#undef FLD
5190}
5191
5192/* nldi: nldi$pack @($GRi,$d12),$GRk */
5193
5194static SEM_PC
5195SEM_FN_NAME (frvbf,nldi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5196{
5197#define FLD(f) abuf->fields.sfmt_swapi.f
5198  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5199  int UNUSED written = 0;
5200  IADDR UNUSED pc = abuf->addr;
5201  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5202
5203{
5204  BI tmp_do_op;
5205  tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), -1, FLD (f_GRk), FLD (f_d12), 4, 0);
5206if (tmp_do_op) {
5207  {
5208    SI opval = frvbf_read_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
5209    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
5210    written |= (1 << 5);
5211    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5212  }
5213}
5214}
5215
5216  abuf->written = written;
5217  return vpc;
5218#undef FLD
5219}
5220
5221/* nldbfi: nldbfi$pack @($GRi,$d12),$FRintk */
5222
5223static SEM_PC
5224SEM_FN_NAME (frvbf,nldbfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5225{
5226#define FLD(f) abuf->fields.sfmt_ldbfi.f
5227  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5228  int UNUSED written = 0;
5229  IADDR UNUSED pc = abuf->addr;
5230  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5231
5232{
5233  BI tmp_do_op;
5234  tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), -1, FLD (f_FRk), FLD (f_d12), 0, 1);
5235if (tmp_do_op) {
5236  {
5237    SI opval = frvbf_read_mem_UQI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
5238    sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
5239    written |= (1 << 5);
5240    TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
5241  }
5242}
5243}
5244
5245  abuf->written = written;
5246  return vpc;
5247#undef FLD
5248}
5249
5250/* nldhfi: nldhfi$pack @($GRi,$d12),$FRintk */
5251
5252static SEM_PC
5253SEM_FN_NAME (frvbf,nldhfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5254{
5255#define FLD(f) abuf->fields.sfmt_ldbfi.f
5256  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5257  int UNUSED written = 0;
5258  IADDR UNUSED pc = abuf->addr;
5259  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5260
5261{
5262  BI tmp_do_op;
5263  tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), -1, FLD (f_FRk), FLD (f_d12), 2, 1);
5264if (tmp_do_op) {
5265  {
5266    SI opval = frvbf_read_mem_UHI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
5267    sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
5268    written |= (1 << 5);
5269    TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
5270  }
5271}
5272}
5273
5274  abuf->written = written;
5275  return vpc;
5276#undef FLD
5277}
5278
5279/* nldfi: nldfi$pack @($GRi,$d12),$FRintk */
5280
5281static SEM_PC
5282SEM_FN_NAME (frvbf,nldfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5283{
5284#define FLD(f) abuf->fields.sfmt_ldbfi.f
5285  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5286  int UNUSED written = 0;
5287  IADDR UNUSED pc = abuf->addr;
5288  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5289
5290{
5291  BI tmp_do_op;
5292  tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), -1, FLD (f_FRk), FLD (f_d12), 4, 1);
5293if (tmp_do_op) {
5294  {
5295    SI opval = frvbf_read_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
5296    sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
5297    written |= (1 << 5);
5298    TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
5299  }
5300}
5301}
5302
5303  abuf->written = written;
5304  return vpc;
5305#undef FLD
5306}
5307
5308/* lddi: lddi$pack @($GRi,$d12),$GRdoublek */
5309
5310static SEM_PC
5311SEM_FN_NAME (frvbf,lddi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5312{
5313#define FLD(f) abuf->fields.sfmt_smuli.f
5314  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5315  int UNUSED written = 0;
5316  IADDR UNUSED pc = abuf->addr;
5317  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5318
5319{
5320  SI tmp_address;
5321if (NESI (FLD (f_GRk), 0)) {
5322{
5323  tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
5324  {
5325    DI opval = frvbf_read_mem_DI (current_cpu, pc, tmp_address);
5326    sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
5327    written |= (1 << 4);
5328    TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
5329  }
5330}
5331}
5332}
5333
5334  abuf->written = written;
5335  return vpc;
5336#undef FLD
5337}
5338
5339/* lddfi: lddfi$pack @($GRi,$d12),$FRdoublek */
5340
5341static SEM_PC
5342SEM_FN_NAME (frvbf,lddfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5343{
5344#define FLD(f) abuf->fields.sfmt_lddfi.f
5345  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5346  int UNUSED written = 0;
5347  IADDR UNUSED pc = abuf->addr;
5348  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5349
5350{
5351  SI tmp_address;
5352{
5353  tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
5354  {
5355    DF opval = frvbf_read_mem_DF (current_cpu, pc, tmp_address);
5356    sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
5357    TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
5358  }
5359}
5360}
5361
5362  return vpc;
5363#undef FLD
5364}
5365
5366/* nlddi: nlddi$pack @($GRi,$d12),$GRdoublek */
5367
5368static SEM_PC
5369SEM_FN_NAME (frvbf,nlddi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5370{
5371#define FLD(f) abuf->fields.sfmt_smuli.f
5372  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5373  int UNUSED written = 0;
5374  IADDR UNUSED pc = abuf->addr;
5375  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5376
5377{
5378  SI tmp_address;
5379{
5380  BI tmp_do_op;
5381  tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), -1, FLD (f_GRk), FLD (f_d12), 5, 0);
5382if (tmp_do_op) {
5383if (NESI (FLD (f_GRk), 0)) {
5384{
5385  tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
5386  {
5387    DI opval = frvbf_read_mem_DI (current_cpu, pc, tmp_address);
5388    sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
5389    written |= (1 << 5);
5390    TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
5391  }
5392}
5393}
5394}
5395}
5396}
5397
5398  abuf->written = written;
5399  return vpc;
5400#undef FLD
5401}
5402
5403/* nlddfi: nlddfi$pack @($GRi,$d12),$FRdoublek */
5404
5405static SEM_PC
5406SEM_FN_NAME (frvbf,nlddfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5407{
5408#define FLD(f) abuf->fields.sfmt_lddfi.f
5409  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5410  int UNUSED written = 0;
5411  IADDR UNUSED pc = abuf->addr;
5412  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5413
5414{
5415  SI tmp_address;
5416{
5417  BI tmp_do_op;
5418  tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), -1, FLD (f_FRk), FLD (f_d12), 5, 1);
5419if (tmp_do_op) {
5420{
5421  tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
5422  {
5423    DF opval = frvbf_read_mem_DF (current_cpu, pc, tmp_address);
5424    sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
5425    written |= (1 << 5);
5426    TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
5427  }
5428}
5429}
5430}
5431}
5432
5433  abuf->written = written;
5434  return vpc;
5435#undef FLD
5436}
5437
5438/* ldqi: ldqi$pack @($GRi,$d12),$GRk */
5439
5440static SEM_PC
5441SEM_FN_NAME (frvbf,ldqi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5442{
5443#define FLD(f) abuf->fields.sfmt_stdi.f
5444  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5445  int UNUSED written = 0;
5446  IADDR UNUSED pc = abuf->addr;
5447  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5448
5449{
5450  SI tmp_address;
5451{
5452  tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
5453frvbf_load_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
5454}
5455}
5456
5457  return vpc;
5458#undef FLD
5459}
5460
5461/* ldqfi: ldqfi$pack @($GRi,$d12),$FRintk */
5462
5463static SEM_PC
5464SEM_FN_NAME (frvbf,ldqfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5465{
5466#define FLD(f) abuf->fields.sfmt_stdfi.f
5467  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5468  int UNUSED written = 0;
5469  IADDR UNUSED pc = abuf->addr;
5470  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5471
5472{
5473  SI tmp_address;
5474{
5475  tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
5476frvbf_load_quad_FRint (current_cpu, pc, tmp_address, FLD (f_FRk));
5477}
5478}
5479
5480  return vpc;
5481#undef FLD
5482}
5483
5484/* nldqfi: nldqfi$pack @($GRi,$d12),$FRintk */
5485
5486static SEM_PC
5487SEM_FN_NAME (frvbf,nldqfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5488{
5489#define FLD(f) abuf->fields.sfmt_stdfi.f
5490  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5491  int UNUSED written = 0;
5492  IADDR UNUSED pc = abuf->addr;
5493  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5494
5495{
5496  SI tmp_address;
5497{
5498  BI tmp_do_op;
5499  tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), -1, FLD (f_FRk), FLD (f_d12), 6, 1);
5500if (tmp_do_op) {
5501{
5502  tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
5503frvbf_load_quad_FRint (current_cpu, pc, tmp_address, FLD (f_FRk));
5504}
5505}
5506}
5507}
5508
5509  return vpc;
5510#undef FLD
5511}
5512
5513/* stb: stb$pack $GRk,@($GRi,$GRj) */
5514
5515static SEM_PC
5516SEM_FN_NAME (frvbf,stb) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5517{
5518#define FLD(f) abuf->fields.sfmt_cswap.f
5519  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5520  int UNUSED written = 0;
5521  IADDR UNUSED pc = abuf->addr;
5522  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5523
5524frvbf_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)));
5525
5526  return vpc;
5527#undef FLD
5528}
5529
5530/* sth: sth$pack $GRk,@($GRi,$GRj) */
5531
5532static SEM_PC
5533SEM_FN_NAME (frvbf,sth) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5534{
5535#define FLD(f) abuf->fields.sfmt_cswap.f
5536  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5537  int UNUSED written = 0;
5538  IADDR UNUSED pc = abuf->addr;
5539  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5540
5541frvbf_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)));
5542
5543  return vpc;
5544#undef FLD
5545}
5546
5547/* st: st$pack $GRk,@($GRi,$GRj) */
5548
5549static SEM_PC
5550SEM_FN_NAME (frvbf,st) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5551{
5552#define FLD(f) abuf->fields.sfmt_cswap.f
5553  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5554  int UNUSED written = 0;
5555  IADDR UNUSED pc = abuf->addr;
5556  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5557
5558frvbf_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)));
5559
5560  return vpc;
5561#undef FLD
5562}
5563
5564/* stbf: stbf$pack $FRintk,@($GRi,$GRj) */
5565
5566static SEM_PC
5567SEM_FN_NAME (frvbf,stbf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5568{
5569#define FLD(f) abuf->fields.sfmt_cstbfu.f
5570  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5571  int UNUSED written = 0;
5572  IADDR UNUSED pc = abuf->addr;
5573  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5574
5575frvbf_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)));
5576
5577  return vpc;
5578#undef FLD
5579}
5580
5581/* sthf: sthf$pack $FRintk,@($GRi,$GRj) */
5582
5583static SEM_PC
5584SEM_FN_NAME (frvbf,sthf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5585{
5586#define FLD(f) abuf->fields.sfmt_cstbfu.f
5587  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5588  int UNUSED written = 0;
5589  IADDR UNUSED pc = abuf->addr;
5590  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5591
5592frvbf_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)));
5593
5594  return vpc;
5595#undef FLD
5596}
5597
5598/* stf: stf$pack $FRintk,@($GRi,$GRj) */
5599
5600static SEM_PC
5601SEM_FN_NAME (frvbf,stf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5602{
5603#define FLD(f) abuf->fields.sfmt_cstbfu.f
5604  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5605  int UNUSED written = 0;
5606  IADDR UNUSED pc = abuf->addr;
5607  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5608
5609frvbf_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)));
5610
5611  return vpc;
5612#undef FLD
5613}
5614
5615/* stc: stc$pack $CPRk,@($GRi,$GRj) */
5616
5617static SEM_PC
5618SEM_FN_NAME (frvbf,stc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5619{
5620#define FLD(f) abuf->fields.sfmt_stcu.f
5621  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5622  int UNUSED written = 0;
5623  IADDR UNUSED pc = abuf->addr;
5624  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5625
5626frvbf_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)]));
5627
5628  return vpc;
5629#undef FLD
5630}
5631
5632/* std: std$pack $GRdoublek,@($GRi,$GRj) */
5633
5634static SEM_PC
5635SEM_FN_NAME (frvbf,std) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5636{
5637#define FLD(f) abuf->fields.sfmt_cstdu.f
5638  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5639  int UNUSED written = 0;
5640  IADDR UNUSED pc = abuf->addr;
5641  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5642
5643{
5644  SI tmp_address;
5645{
5646  tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5647frvbf_write_mem_DI (current_cpu, pc, tmp_address, GET_H_GR_DOUBLE (FLD (f_GRk)));
5648}
5649}
5650
5651  return vpc;
5652#undef FLD
5653}
5654
5655/* stdf: stdf$pack $FRdoublek,@($GRi,$GRj) */
5656
5657static SEM_PC
5658SEM_FN_NAME (frvbf,stdf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5659{
5660#define FLD(f) abuf->fields.sfmt_cstdfu.f
5661  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5662  int UNUSED written = 0;
5663  IADDR UNUSED pc = abuf->addr;
5664  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5665
5666{
5667  SI tmp_address;
5668{
5669  tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5670frvbf_write_mem_DF (current_cpu, pc, tmp_address, GET_H_FR_DOUBLE (FLD (f_FRk)));
5671}
5672}
5673
5674  return vpc;
5675#undef FLD
5676}
5677
5678/* stdc: stdc$pack $CPRdoublek,@($GRi,$GRj) */
5679
5680static SEM_PC
5681SEM_FN_NAME (frvbf,stdc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5682{
5683#define FLD(f) abuf->fields.sfmt_stdcu.f
5684  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5685  int UNUSED written = 0;
5686  IADDR UNUSED pc = abuf->addr;
5687  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5688
5689{
5690  SI tmp_address;
5691{
5692  tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5693frvbf_write_mem_DI (current_cpu, pc, tmp_address, GET_H_CPR_DOUBLE (FLD (f_CPRk)));
5694}
5695}
5696
5697  return vpc;
5698#undef FLD
5699}
5700
5701/* stq: stq$pack $GRk,@($GRi,$GRj) */
5702
5703static SEM_PC
5704SEM_FN_NAME (frvbf,stq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5705{
5706#define FLD(f) abuf->fields.sfmt_smulcc.f
5707  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5708  int UNUSED written = 0;
5709  IADDR UNUSED pc = abuf->addr;
5710  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5711
5712{
5713  SI tmp_address;
5714{
5715  tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5716frvbf_store_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
5717}
5718}
5719
5720  return vpc;
5721#undef FLD
5722}
5723
5724/* stqf: stqf$pack $FRintk,@($GRi,$GRj) */
5725
5726static SEM_PC
5727SEM_FN_NAME (frvbf,stqf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5728{
5729#define FLD(f) abuf->fields.sfmt_cstdfu.f
5730  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5731  int UNUSED written = 0;
5732  IADDR UNUSED pc = abuf->addr;
5733  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5734
5735{
5736  SI tmp_address;
5737{
5738  tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5739frvbf_store_quad_FRint (current_cpu, pc, tmp_address, FLD (f_FRk));
5740}
5741}
5742
5743  return vpc;
5744#undef FLD
5745}
5746
5747/* stqc: stqc$pack $CPRk,@($GRi,$GRj) */
5748
5749static SEM_PC
5750SEM_FN_NAME (frvbf,stqc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5751{
5752#define FLD(f) abuf->fields.sfmt_stdcu.f
5753  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5754  int UNUSED written = 0;
5755  IADDR UNUSED pc = abuf->addr;
5756  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5757
5758{
5759  SI tmp_address;
5760{
5761  tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5762frvbf_store_quad_CPR (current_cpu, pc, tmp_address, FLD (f_CPRk));
5763}
5764}
5765
5766  return vpc;
5767#undef FLD
5768}
5769
5770/* stbu: stbu$pack $GRk,@($GRi,$GRj) */
5771
5772static SEM_PC
5773SEM_FN_NAME (frvbf,stbu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5774{
5775#define FLD(f) abuf->fields.sfmt_cstbu.f
5776  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5777  int UNUSED written = 0;
5778  IADDR UNUSED pc = abuf->addr;
5779  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5780
5781{
5782  USI tmp_address;
5783  tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5784frvbf_write_mem_QI (current_cpu, pc, tmp_address, GET_H_GR (FLD (f_GRk)));
5785  {
5786    SI opval = tmp_address;
5787    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
5788    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5789  }
5790}
5791
5792  return vpc;
5793#undef FLD
5794}
5795
5796/* sthu: sthu$pack $GRk,@($GRi,$GRj) */
5797
5798static SEM_PC
5799SEM_FN_NAME (frvbf,sthu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5800{
5801#define FLD(f) abuf->fields.sfmt_cstbu.f
5802  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5803  int UNUSED written = 0;
5804  IADDR UNUSED pc = abuf->addr;
5805  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5806
5807{
5808  USI tmp_address;
5809  tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5810frvbf_write_mem_HI (current_cpu, pc, tmp_address, GET_H_GR (FLD (f_GRk)));
5811  {
5812    SI opval = tmp_address;
5813    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
5814    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5815  }
5816}
5817
5818  return vpc;
5819#undef FLD
5820}
5821
5822/* stu: stu$pack $GRk,@($GRi,$GRj) */
5823
5824static SEM_PC
5825SEM_FN_NAME (frvbf,stu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5826{
5827#define FLD(f) abuf->fields.sfmt_cstbu.f
5828  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5829  int UNUSED written = 0;
5830  IADDR UNUSED pc = abuf->addr;
5831  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5832
5833{
5834  USI tmp_address;
5835  tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5836frvbf_write_mem_WI (current_cpu, pc, tmp_address, GET_H_GR (FLD (f_GRk)));
5837  {
5838    SI opval = tmp_address;
5839    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
5840    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5841  }
5842}
5843
5844  return vpc;
5845#undef FLD
5846}
5847
5848/* stbfu: stbfu$pack $FRintk,@($GRi,$GRj) */
5849
5850static SEM_PC
5851SEM_FN_NAME (frvbf,stbfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5852{
5853#define FLD(f) abuf->fields.sfmt_cstbfu.f
5854  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5855  int UNUSED written = 0;
5856  IADDR UNUSED pc = abuf->addr;
5857  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5858
5859{
5860  USI tmp_address;
5861  tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5862frvbf_write_mem_QI (current_cpu, pc, tmp_address, GET_H_FR_INT (FLD (f_FRk)));
5863  {
5864    SI opval = tmp_address;
5865    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
5866    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5867  }
5868}
5869
5870  return vpc;
5871#undef FLD
5872}
5873
5874/* sthfu: sthfu$pack $FRintk,@($GRi,$GRj) */
5875
5876static SEM_PC
5877SEM_FN_NAME (frvbf,sthfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5878{
5879#define FLD(f) abuf->fields.sfmt_cstbfu.f
5880  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5881  int UNUSED written = 0;
5882  IADDR UNUSED pc = abuf->addr;
5883  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5884
5885{
5886  USI tmp_address;
5887  tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5888frvbf_write_mem_HI (current_cpu, pc, tmp_address, GET_H_FR_INT (FLD (f_FRk)));
5889  {
5890    SI opval = tmp_address;
5891    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
5892    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5893  }
5894}
5895
5896  return vpc;
5897#undef FLD
5898}
5899
5900/* stfu: stfu$pack $FRintk,@($GRi,$GRj) */
5901
5902static SEM_PC
5903SEM_FN_NAME (frvbf,stfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5904{
5905#define FLD(f) abuf->fields.sfmt_cstbfu.f
5906  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5907  int UNUSED written = 0;
5908  IADDR UNUSED pc = abuf->addr;
5909  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5910
5911{
5912  USI tmp_address;
5913  tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5914frvbf_write_mem_SI (current_cpu, pc, tmp_address, GET_H_FR_INT (FLD (f_FRk)));
5915  {
5916    SI opval = tmp_address;
5917    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
5918    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5919  }
5920}
5921
5922  return vpc;
5923#undef FLD
5924}
5925
5926/* stcu: stcu$pack $CPRk,@($GRi,$GRj) */
5927
5928static SEM_PC
5929SEM_FN_NAME (frvbf,stcu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5930{
5931#define FLD(f) abuf->fields.sfmt_stcu.f
5932  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5933  int UNUSED written = 0;
5934  IADDR UNUSED pc = abuf->addr;
5935  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5936
5937{
5938  USI tmp_address;
5939  tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5940frvbf_write_mem_SI (current_cpu, pc, tmp_address, CPU (h_cpr[FLD (f_CPRk)]));
5941  {
5942    SI opval = tmp_address;
5943    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
5944    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5945  }
5946}
5947
5948  return vpc;
5949#undef FLD
5950}
5951
5952/* stdu: stdu$pack $GRdoublek,@($GRi,$GRj) */
5953
5954static SEM_PC
5955SEM_FN_NAME (frvbf,stdu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5956{
5957#define FLD(f) abuf->fields.sfmt_cstdu.f
5958  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5959  int UNUSED written = 0;
5960  IADDR UNUSED pc = abuf->addr;
5961  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5962
5963{
5964  SI tmp_address;
5965{
5966  tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5967frvbf_write_mem_DI (current_cpu, pc, tmp_address, GET_H_GR_DOUBLE (FLD (f_GRk)));
5968}
5969  {
5970    SI opval = tmp_address;
5971    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
5972    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5973  }
5974}
5975
5976  return vpc;
5977#undef FLD
5978}
5979
5980/* stdfu: stdfu$pack $FRdoublek,@($GRi,$GRj) */
5981
5982static SEM_PC
5983SEM_FN_NAME (frvbf,stdfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5984{
5985#define FLD(f) abuf->fields.sfmt_cstdfu.f
5986  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5987  int UNUSED written = 0;
5988  IADDR UNUSED pc = abuf->addr;
5989  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5990
5991{
5992  SI tmp_address;
5993{
5994  tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5995frvbf_write_mem_DF (current_cpu, pc, tmp_address, GET_H_FR_DOUBLE (FLD (f_FRk)));
5996}
5997  {
5998    SI opval = tmp_address;
5999    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6000    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6001  }
6002}
6003
6004  return vpc;
6005#undef FLD
6006}
6007
6008/* stdcu: stdcu$pack $CPRdoublek,@($GRi,$GRj) */
6009
6010static SEM_PC
6011SEM_FN_NAME (frvbf,stdcu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6012{
6013#define FLD(f) abuf->fields.sfmt_stdcu.f
6014  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6015  int UNUSED written = 0;
6016  IADDR UNUSED pc = abuf->addr;
6017  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6018
6019{
6020  SI tmp_address;
6021{
6022  tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6023frvbf_write_mem_DI (current_cpu, pc, tmp_address, GET_H_CPR_DOUBLE (FLD (f_CPRk)));
6024}
6025  {
6026    SI opval = tmp_address;
6027    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6028    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6029  }
6030}
6031
6032  return vpc;
6033#undef FLD
6034}
6035
6036/* stqu: stqu$pack $GRk,@($GRi,$GRj) */
6037
6038static SEM_PC
6039SEM_FN_NAME (frvbf,stqu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6040{
6041#define FLD(f) abuf->fields.sfmt_cstdu.f
6042  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6043  int UNUSED written = 0;
6044  IADDR UNUSED pc = abuf->addr;
6045  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6046
6047{
6048  SI tmp_address;
6049{
6050  tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6051frvbf_store_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
6052}
6053  {
6054    SI opval = tmp_address;
6055    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6056    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6057  }
6058}
6059
6060  return vpc;
6061#undef FLD
6062}
6063
6064/* stqfu: stqfu$pack $FRintk,@($GRi,$GRj) */
6065
6066static SEM_PC
6067SEM_FN_NAME (frvbf,stqfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6068{
6069#define FLD(f) abuf->fields.sfmt_cstdfu.f
6070  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6071  int UNUSED written = 0;
6072  IADDR UNUSED pc = abuf->addr;
6073  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6074
6075{
6076  SI tmp_address;
6077{
6078  tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6079frvbf_store_quad_FRint (current_cpu, pc, tmp_address, FLD (f_FRk));
6080}
6081  {
6082    SI opval = tmp_address;
6083    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6084    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6085  }
6086}
6087
6088  return vpc;
6089#undef FLD
6090}
6091
6092/* stqcu: stqcu$pack $CPRk,@($GRi,$GRj) */
6093
6094static SEM_PC
6095SEM_FN_NAME (frvbf,stqcu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6096{
6097#define FLD(f) abuf->fields.sfmt_stdcu.f
6098  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6099  int UNUSED written = 0;
6100  IADDR UNUSED pc = abuf->addr;
6101  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6102
6103{
6104  SI tmp_address;
6105{
6106  tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6107frvbf_store_quad_CPR (current_cpu, pc, tmp_address, FLD (f_CPRk));
6108}
6109  {
6110    SI opval = tmp_address;
6111    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6112    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6113  }
6114}
6115
6116  return vpc;
6117#undef FLD
6118}
6119
6120/* cldsb: cldsb$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6121
6122static SEM_PC
6123SEM_FN_NAME (frvbf,cldsb) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6124{
6125#define FLD(f) abuf->fields.sfmt_cswap.f
6126  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6127  int UNUSED written = 0;
6128  IADDR UNUSED pc = abuf->addr;
6129  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6130
6131if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6132  {
6133    SI opval = frvbf_read_mem_QI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
6134    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
6135    written |= (1 << 5);
6136    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6137  }
6138}
6139
6140  abuf->written = written;
6141  return vpc;
6142#undef FLD
6143}
6144
6145/* cldub: cldub$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6146
6147static SEM_PC
6148SEM_FN_NAME (frvbf,cldub) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6149{
6150#define FLD(f) abuf->fields.sfmt_cswap.f
6151  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6152  int UNUSED written = 0;
6153  IADDR UNUSED pc = abuf->addr;
6154  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6155
6156if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6157  {
6158    SI opval = frvbf_read_mem_UQI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
6159    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
6160    written |= (1 << 5);
6161    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6162  }
6163}
6164
6165  abuf->written = written;
6166  return vpc;
6167#undef FLD
6168}
6169
6170/* cldsh: cldsh$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6171
6172static SEM_PC
6173SEM_FN_NAME (frvbf,cldsh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6174{
6175#define FLD(f) abuf->fields.sfmt_cswap.f
6176  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6177  int UNUSED written = 0;
6178  IADDR UNUSED pc = abuf->addr;
6179  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6180
6181if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6182  {
6183    SI opval = frvbf_read_mem_HI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
6184    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
6185    written |= (1 << 5);
6186    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6187  }
6188}
6189
6190  abuf->written = written;
6191  return vpc;
6192#undef FLD
6193}
6194
6195/* clduh: clduh$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6196
6197static SEM_PC
6198SEM_FN_NAME (frvbf,clduh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6199{
6200#define FLD(f) abuf->fields.sfmt_cswap.f
6201  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6202  int UNUSED written = 0;
6203  IADDR UNUSED pc = abuf->addr;
6204  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6205
6206if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6207  {
6208    SI opval = frvbf_read_mem_UHI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
6209    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
6210    written |= (1 << 5);
6211    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6212  }
6213}
6214
6215  abuf->written = written;
6216  return vpc;
6217#undef FLD
6218}
6219
6220/* cld: cld$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6221
6222static SEM_PC
6223SEM_FN_NAME (frvbf,cld) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6224{
6225#define FLD(f) abuf->fields.sfmt_cswap.f
6226  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6227  int UNUSED written = 0;
6228  IADDR UNUSED pc = abuf->addr;
6229  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6230
6231if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6232  {
6233    SI opval = frvbf_read_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
6234    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
6235    written |= (1 << 5);
6236    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6237  }
6238}
6239
6240  abuf->written = written;
6241  return vpc;
6242#undef FLD
6243}
6244
6245/* cldbf: cldbf$pack @($GRi,$GRj),$FRintk,$CCi,$cond */
6246
6247static SEM_PC
6248SEM_FN_NAME (frvbf,cldbf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6249{
6250#define FLD(f) abuf->fields.sfmt_cldbfu.f
6251  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6252  int UNUSED written = 0;
6253  IADDR UNUSED pc = abuf->addr;
6254  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6255
6256if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6257  {
6258    SI opval = frvbf_read_mem_UQI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
6259    sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
6260    written |= (1 << 5);
6261    TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
6262  }
6263}
6264
6265  abuf->written = written;
6266  return vpc;
6267#undef FLD
6268}
6269
6270/* cldhf: cldhf$pack @($GRi,$GRj),$FRintk,$CCi,$cond */
6271
6272static SEM_PC
6273SEM_FN_NAME (frvbf,cldhf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6274{
6275#define FLD(f) abuf->fields.sfmt_cldbfu.f
6276  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6277  int UNUSED written = 0;
6278  IADDR UNUSED pc = abuf->addr;
6279  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6280
6281if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6282  {
6283    SI opval = frvbf_read_mem_UHI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
6284    sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
6285    written |= (1 << 5);
6286    TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
6287  }
6288}
6289
6290  abuf->written = written;
6291  return vpc;
6292#undef FLD
6293}
6294
6295/* cldf: cldf$pack @($GRi,$GRj),$FRintk,$CCi,$cond */
6296
6297static SEM_PC
6298SEM_FN_NAME (frvbf,cldf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6299{
6300#define FLD(f) abuf->fields.sfmt_cldbfu.f
6301  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6302  int UNUSED written = 0;
6303  IADDR UNUSED pc = abuf->addr;
6304  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6305
6306if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6307  {
6308    SI opval = frvbf_read_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
6309    sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
6310    written |= (1 << 5);
6311    TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
6312  }
6313}
6314
6315  abuf->written = written;
6316  return vpc;
6317#undef FLD
6318}
6319
6320/* cldd: cldd$pack @($GRi,$GRj),$GRdoublek,$CCi,$cond */
6321
6322static SEM_PC
6323SEM_FN_NAME (frvbf,cldd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6324{
6325#define FLD(f) abuf->fields.sfmt_clddu.f
6326  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6327  int UNUSED written = 0;
6328  IADDR UNUSED pc = abuf->addr;
6329  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6330
6331if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6332{
6333  SI tmp_address;
6334if (NESI (FLD (f_GRk), 0)) {
6335{
6336  tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6337  {
6338    DI opval = frvbf_read_mem_DI (current_cpu, pc, tmp_address);
6339    sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
6340    written |= (1 << 6);
6341    TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
6342  }
6343}
6344}
6345}
6346}
6347
6348  abuf->written = written;
6349  return vpc;
6350#undef FLD
6351}
6352
6353/* clddf: clddf$pack @($GRi,$GRj),$FRdoublek,$CCi,$cond */
6354
6355static SEM_PC
6356SEM_FN_NAME (frvbf,clddf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6357{
6358#define FLD(f) abuf->fields.sfmt_clddfu.f
6359  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6360  int UNUSED written = 0;
6361  IADDR UNUSED pc = abuf->addr;
6362  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6363
6364if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6365{
6366  SI tmp_address;
6367{
6368  tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6369  {
6370    DF opval = frvbf_read_mem_DF (current_cpu, pc, tmp_address);
6371    sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
6372    written |= (1 << 5);
6373    TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
6374  }
6375}
6376}
6377}
6378
6379  abuf->written = written;
6380  return vpc;
6381#undef FLD
6382}
6383
6384/* cldq: cldq$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6385
6386static SEM_PC
6387SEM_FN_NAME (frvbf,cldq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6388{
6389#define FLD(f) abuf->fields.sfmt_cswap.f
6390  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6391  int UNUSED written = 0;
6392  IADDR UNUSED pc = abuf->addr;
6393  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6394
6395if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6396{
6397  SI tmp_address;
6398{
6399  tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6400frvbf_load_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
6401}
6402}
6403}
6404
6405  return vpc;
6406#undef FLD
6407}
6408
6409/* cldsbu: cldsbu$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6410
6411static SEM_PC
6412SEM_FN_NAME (frvbf,cldsbu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6413{
6414#define FLD(f) abuf->fields.sfmt_cldsbu.f
6415  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6416  int UNUSED written = 0;
6417  IADDR UNUSED pc = abuf->addr;
6418  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6419
6420if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6421{
6422  SI tmp_address;
6423  tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6424  {
6425    SI opval = frvbf_read_mem_QI (current_cpu, pc, tmp_address);
6426    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
6427    written |= (1 << 8);
6428    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6429  }
6430if (NESI (FLD (f_GRi), FLD (f_GRk))) {
6431  {
6432    SI opval = tmp_address;
6433    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6434    written |= (1 << 7);
6435    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6436  }
6437}
6438}
6439}
6440
6441  abuf->written = written;
6442  return vpc;
6443#undef FLD
6444}
6445
6446/* cldubu: cldubu$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6447
6448static SEM_PC
6449SEM_FN_NAME (frvbf,cldubu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6450{
6451#define FLD(f) abuf->fields.sfmt_cldsbu.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  tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6461  {
6462    SI opval = frvbf_read_mem_UQI (current_cpu, pc, tmp_address);
6463    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
6464    written |= (1 << 8);
6465    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6466  }
6467if (NESI (FLD (f_GRi), FLD (f_GRk))) {
6468  {
6469    SI opval = tmp_address;
6470    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6471    written |= (1 << 7);
6472    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6473  }
6474}
6475}
6476}
6477
6478  abuf->written = written;
6479  return vpc;
6480#undef FLD
6481}
6482
6483/* cldshu: cldshu$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6484
6485static SEM_PC
6486SEM_FN_NAME (frvbf,cldshu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6487{
6488#define FLD(f) abuf->fields.sfmt_cldsbu.f
6489  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6490  int UNUSED written = 0;
6491  IADDR UNUSED pc = abuf->addr;
6492  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6493
6494if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6495{
6496  SI tmp_address;
6497  tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6498  {
6499    SI opval = frvbf_read_mem_HI (current_cpu, pc, tmp_address);
6500    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
6501    written |= (1 << 8);
6502    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6503  }
6504if (NESI (FLD (f_GRi), FLD (f_GRk))) {
6505  {
6506    SI opval = tmp_address;
6507    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6508    written |= (1 << 7);
6509    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6510  }
6511}
6512}
6513}
6514
6515  abuf->written = written;
6516  return vpc;
6517#undef FLD
6518}
6519
6520/* clduhu: clduhu$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6521
6522static SEM_PC
6523SEM_FN_NAME (frvbf,clduhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6524{
6525#define FLD(f) abuf->fields.sfmt_cldsbu.f
6526  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6527  int UNUSED written = 0;
6528  IADDR UNUSED pc = abuf->addr;
6529  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6530
6531if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6532{
6533  SI tmp_address;
6534  tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6535  {
6536    SI opval = frvbf_read_mem_UHI (current_cpu, pc, tmp_address);
6537    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
6538    written |= (1 << 8);
6539    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6540  }
6541if (NESI (FLD (f_GRi), FLD (f_GRk))) {
6542  {
6543    SI opval = tmp_address;
6544    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6545    written |= (1 << 7);
6546    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6547  }
6548}
6549}
6550}
6551
6552  abuf->written = written;
6553  return vpc;
6554#undef FLD
6555}
6556
6557/* cldu: cldu$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6558
6559static SEM_PC
6560SEM_FN_NAME (frvbf,cldu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6561{
6562#define FLD(f) abuf->fields.sfmt_cldsbu.f
6563  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6564  int UNUSED written = 0;
6565  IADDR UNUSED pc = abuf->addr;
6566  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6567
6568if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6569{
6570  SI tmp_address;
6571  tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6572  {
6573    SI opval = frvbf_read_mem_SI (current_cpu, pc, tmp_address);
6574    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
6575    written |= (1 << 8);
6576    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6577  }
6578if (NESI (FLD (f_GRi), FLD (f_GRk))) {
6579  {
6580    SI opval = tmp_address;
6581    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6582    written |= (1 << 7);
6583    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6584  }
6585}
6586}
6587}
6588
6589  abuf->written = written;
6590  return vpc;
6591#undef FLD
6592}
6593
6594/* cldbfu: cldbfu$pack @($GRi,$GRj),$FRintk,$CCi,$cond */
6595
6596static SEM_PC
6597SEM_FN_NAME (frvbf,cldbfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6598{
6599#define FLD(f) abuf->fields.sfmt_cldbfu.f
6600  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6601  int UNUSED written = 0;
6602  IADDR UNUSED pc = abuf->addr;
6603  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6604
6605if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6606{
6607  SI tmp_address;
6608  tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6609  {
6610    SI opval = frvbf_read_mem_UQI (current_cpu, pc, tmp_address);
6611    sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
6612    written |= (1 << 5);
6613    TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
6614  }
6615  {
6616    SI opval = tmp_address;
6617    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6618    written |= (1 << 6);
6619    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6620  }
6621}
6622}
6623
6624  abuf->written = written;
6625  return vpc;
6626#undef FLD
6627}
6628
6629/* cldhfu: cldhfu$pack @($GRi,$GRj),$FRintk,$CCi,$cond */
6630
6631static SEM_PC
6632SEM_FN_NAME (frvbf,cldhfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6633{
6634#define FLD(f) abuf->fields.sfmt_cldbfu.f
6635  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6636  int UNUSED written = 0;
6637  IADDR UNUSED pc = abuf->addr;
6638  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6639
6640if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6641{
6642  SI tmp_address;
6643  tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6644  {
6645    SI opval = frvbf_read_mem_UHI (current_cpu, pc, tmp_address);
6646    sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
6647    written |= (1 << 5);
6648    TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
6649  }
6650  {
6651    SI opval = tmp_address;
6652    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6653    written |= (1 << 6);
6654    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6655  }
6656}
6657}
6658
6659  abuf->written = written;
6660  return vpc;
6661#undef FLD
6662}
6663
6664/* cldfu: cldfu$pack @($GRi,$GRj),$FRintk,$CCi,$cond */
6665
6666static SEM_PC
6667SEM_FN_NAME (frvbf,cldfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6668{
6669#define FLD(f) abuf->fields.sfmt_cldbfu.f
6670  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6671  int UNUSED written = 0;
6672  IADDR UNUSED pc = abuf->addr;
6673  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6674
6675if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6676{
6677  SI tmp_address;
6678  tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6679  {
6680    SI opval = frvbf_read_mem_SI (current_cpu, pc, tmp_address);
6681    sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
6682    written |= (1 << 5);
6683    TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
6684  }
6685  {
6686    SI opval = tmp_address;
6687    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6688    written |= (1 << 6);
6689    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6690  }
6691}
6692}
6693
6694  abuf->written = written;
6695  return vpc;
6696#undef FLD
6697}
6698
6699/* clddu: clddu$pack @($GRi,$GRj),$GRdoublek,$CCi,$cond */
6700
6701static SEM_PC
6702SEM_FN_NAME (frvbf,clddu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6703{
6704#define FLD(f) abuf->fields.sfmt_clddu.f
6705  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6706  int UNUSED written = 0;
6707  IADDR UNUSED pc = abuf->addr;
6708  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6709
6710if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6711{
6712  SI tmp_address;
6713if (NESI (FLD (f_GRk), 0)) {
6714{
6715  tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6716  {
6717    DI opval = frvbf_read_mem_DI (current_cpu, pc, tmp_address);
6718    sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
6719    written |= (1 << 7);
6720    TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
6721  }
6722}
6723}
6724if (NESI (FLD (f_GRi), FLD (f_GRk))) {
6725  {
6726    SI opval = tmp_address;
6727    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6728    written |= (1 << 8);
6729    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6730  }
6731}
6732}
6733}
6734
6735  abuf->written = written;
6736  return vpc;
6737#undef FLD
6738}
6739
6740/* clddfu: clddfu$pack @($GRi,$GRj),$FRdoublek,$CCi,$cond */
6741
6742static SEM_PC
6743SEM_FN_NAME (frvbf,clddfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6744{
6745#define FLD(f) abuf->fields.sfmt_clddfu.f
6746  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6747  int UNUSED written = 0;
6748  IADDR UNUSED pc = abuf->addr;
6749  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6750
6751if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6752{
6753  SI tmp_address;
6754{
6755  tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6756  {
6757    DF opval = frvbf_read_mem_DF (current_cpu, pc, tmp_address);
6758    sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
6759    written |= (1 << 5);
6760    TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
6761  }
6762}
6763  {
6764    SI opval = tmp_address;
6765    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6766    written |= (1 << 6);
6767    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6768  }
6769}
6770}
6771
6772  abuf->written = written;
6773  return vpc;
6774#undef FLD
6775}
6776
6777/* cldqu: cldqu$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6778
6779static SEM_PC
6780SEM_FN_NAME (frvbf,cldqu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6781{
6782#define FLD(f) abuf->fields.sfmt_cstdu.f
6783  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6784  int UNUSED written = 0;
6785  IADDR UNUSED pc = abuf->addr;
6786  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6787
6788if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6789{
6790  SI tmp_address;
6791{
6792  tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6793frvbf_load_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
6794}
6795if (NESI (FLD (f_GRi), FLD (f_GRk))) {
6796  {
6797    SI opval = tmp_address;
6798    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6799    written |= (1 << 7);
6800    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6801  }
6802}
6803}
6804}
6805
6806  abuf->written = written;
6807  return vpc;
6808#undef FLD
6809}
6810
6811/* cstb: cstb$pack $GRk,@($GRi,$GRj),$CCi,$cond */
6812
6813static SEM_PC
6814SEM_FN_NAME (frvbf,cstb) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6815{
6816#define FLD(f) abuf->fields.sfmt_cswap.f
6817  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6818  int UNUSED written = 0;
6819  IADDR UNUSED pc = abuf->addr;
6820  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6821
6822if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6823frvbf_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)));
6824}
6825
6826  return vpc;
6827#undef FLD
6828}
6829
6830/* csth: csth$pack $GRk,@($GRi,$GRj),$CCi,$cond */
6831
6832static SEM_PC
6833SEM_FN_NAME (frvbf,csth) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6834{
6835#define FLD(f) abuf->fields.sfmt_cswap.f
6836  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6837  int UNUSED written = 0;
6838  IADDR UNUSED pc = abuf->addr;
6839  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6840
6841if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6842frvbf_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)));
6843}
6844
6845  return vpc;
6846#undef FLD
6847}
6848
6849/* cst: cst$pack $GRk,@($GRi,$GRj),$CCi,$cond */
6850
6851static SEM_PC
6852SEM_FN_NAME (frvbf,cst) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6853{
6854#define FLD(f) abuf->fields.sfmt_cswap.f
6855  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6856  int UNUSED written = 0;
6857  IADDR UNUSED pc = abuf->addr;
6858  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6859
6860if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6861frvbf_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)));
6862}
6863
6864  return vpc;
6865#undef FLD
6866}
6867
6868/* cstbf: cstbf$pack $FRintk,@($GRi,$GRj),$CCi,$cond */
6869
6870static SEM_PC
6871SEM_FN_NAME (frvbf,cstbf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6872{
6873#define FLD(f) abuf->fields.sfmt_cstbfu.f
6874  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6875  int UNUSED written = 0;
6876  IADDR UNUSED pc = abuf->addr;
6877  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6878
6879if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6880frvbf_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)));
6881}
6882
6883  return vpc;
6884#undef FLD
6885}
6886
6887/* csthf: csthf$pack $FRintk,@($GRi,$GRj),$CCi,$cond */
6888
6889static SEM_PC
6890SEM_FN_NAME (frvbf,csthf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6891{
6892#define FLD(f) abuf->fields.sfmt_cstbfu.f
6893  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6894  int UNUSED written = 0;
6895  IADDR UNUSED pc = abuf->addr;
6896  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6897
6898if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6899frvbf_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)));
6900}
6901
6902  return vpc;
6903#undef FLD
6904}
6905
6906/* cstf: cstf$pack $FRintk,@($GRi,$GRj),$CCi,$cond */
6907
6908static SEM_PC
6909SEM_FN_NAME (frvbf,cstf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6910{
6911#define FLD(f) abuf->fields.sfmt_cstbfu.f
6912  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6913  int UNUSED written = 0;
6914  IADDR UNUSED pc = abuf->addr;
6915  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6916
6917if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6918frvbf_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)));
6919}
6920
6921  return vpc;
6922#undef FLD
6923}
6924
6925/* cstd: cstd$pack $GRdoublek,@($GRi,$GRj),$CCi,$cond */
6926
6927static SEM_PC
6928SEM_FN_NAME (frvbf,cstd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6929{
6930#define FLD(f) abuf->fields.sfmt_cstdu.f
6931  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6932  int UNUSED written = 0;
6933  IADDR UNUSED pc = abuf->addr;
6934  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6935
6936if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6937{
6938  SI tmp_address;
6939{
6940  tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6941frvbf_write_mem_DI (current_cpu, pc, tmp_address, GET_H_GR_DOUBLE (FLD (f_GRk)));
6942}
6943}
6944}
6945
6946  return vpc;
6947#undef FLD
6948}
6949
6950/* cstdf: cstdf$pack $FRdoublek,@($GRi,$GRj),$CCi,$cond */
6951
6952static SEM_PC
6953SEM_FN_NAME (frvbf,cstdf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6954{
6955#define FLD(f) abuf->fields.sfmt_cstdfu.f
6956  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6957  int UNUSED written = 0;
6958  IADDR UNUSED pc = abuf->addr;
6959  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6960
6961if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6962{
6963  SI tmp_address;
6964{
6965  tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6966frvbf_write_mem_DF (current_cpu, pc, tmp_address, GET_H_FR_DOUBLE (FLD (f_FRk)));
6967}
6968}
6969}
6970
6971  return vpc;
6972#undef FLD
6973}
6974
6975/* cstq: cstq$pack $GRk,@($GRi,$GRj),$CCi,$cond */
6976
6977static SEM_PC
6978SEM_FN_NAME (frvbf,cstq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6979{
6980#define FLD(f) abuf->fields.sfmt_cswap.f
6981  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6982  int UNUSED written = 0;
6983  IADDR UNUSED pc = abuf->addr;
6984  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6985
6986if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6987{
6988  SI tmp_address;
6989{
6990  tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6991frvbf_store_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
6992}
6993}
6994}
6995
6996  return vpc;
6997#undef FLD
6998}
6999
7000/* cstbu: cstbu$pack $GRk,@($GRi,$GRj),$CCi,$cond */
7001
7002static SEM_PC
7003SEM_FN_NAME (frvbf,cstbu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7004{
7005#define FLD(f) abuf->fields.sfmt_cstbu.f
7006  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7007  int UNUSED written = 0;
7008  IADDR UNUSED pc = abuf->addr;
7009  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7010
7011if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7012{
7013  SI tmp_address;
7014  tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7015frvbf_write_mem_QI (current_cpu, pc, tmp_address, GET_H_GR (FLD (f_GRk)));
7016  {
7017    SI opval = tmp_address;
7018    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
7019    written |= (1 << 6);
7020    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7021  }
7022}
7023}
7024
7025  abuf->written = written;
7026  return vpc;
7027#undef FLD
7028}
7029
7030/* csthu: csthu$pack $GRk,@($GRi,$GRj),$CCi,$cond */
7031
7032static SEM_PC
7033SEM_FN_NAME (frvbf,csthu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7034{
7035#define FLD(f) abuf->fields.sfmt_cstbu.f
7036  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7037  int UNUSED written = 0;
7038  IADDR UNUSED pc = abuf->addr;
7039  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7040
7041if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7042{
7043  SI tmp_address;
7044  tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7045frvbf_write_mem_HI (current_cpu, pc, tmp_address, GET_H_GR (FLD (f_GRk)));
7046  {
7047    SI opval = tmp_address;
7048    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
7049    written |= (1 << 6);
7050    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7051  }
7052}
7053}
7054
7055  abuf->written = written;
7056  return vpc;
7057#undef FLD
7058}
7059
7060/* cstu: cstu$pack $GRk,@($GRi,$GRj),$CCi,$cond */
7061
7062static SEM_PC
7063SEM_FN_NAME (frvbf,cstu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7064{
7065#define FLD(f) abuf->fields.sfmt_cstbu.f
7066  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7067  int UNUSED written = 0;
7068  IADDR UNUSED pc = abuf->addr;
7069  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7070
7071if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7072{
7073  SI tmp_address;
7074  tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7075frvbf_write_mem_SI (current_cpu, pc, tmp_address, GET_H_GR (FLD (f_GRk)));
7076  {
7077    SI opval = tmp_address;
7078    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
7079    written |= (1 << 6);
7080    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7081  }
7082}
7083}
7084
7085  abuf->written = written;
7086  return vpc;
7087#undef FLD
7088}
7089
7090/* cstbfu: cstbfu$pack $FRintk,@($GRi,$GRj),$CCi,$cond */
7091
7092static SEM_PC
7093SEM_FN_NAME (frvbf,cstbfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7094{
7095#define FLD(f) abuf->fields.sfmt_cstbfu.f
7096  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7097  int UNUSED written = 0;
7098  IADDR UNUSED pc = abuf->addr;
7099  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7100
7101if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7102{
7103  SI tmp_address;
7104  tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7105frvbf_write_mem_QI (current_cpu, pc, tmp_address, GET_H_FR_INT (FLD (f_FRk)));
7106  {
7107    SI opval = tmp_address;
7108    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
7109    written |= (1 << 6);
7110    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7111  }
7112}
7113}
7114
7115  abuf->written = written;
7116  return vpc;
7117#undef FLD
7118}
7119
7120/* csthfu: csthfu$pack $FRintk,@($GRi,$GRj),$CCi,$cond */
7121
7122static SEM_PC
7123SEM_FN_NAME (frvbf,csthfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7124{
7125#define FLD(f) abuf->fields.sfmt_cstbfu.f
7126  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7127  int UNUSED written = 0;
7128  IADDR UNUSED pc = abuf->addr;
7129  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7130
7131if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7132{
7133  SI tmp_address;
7134  tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7135frvbf_write_mem_HI (current_cpu, pc, tmp_address, GET_H_FR_INT (FLD (f_FRk)));
7136  {
7137    SI opval = tmp_address;
7138    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
7139    written |= (1 << 6);
7140    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7141  }
7142}
7143}
7144
7145  abuf->written = written;
7146  return vpc;
7147#undef FLD
7148}
7149
7150/* cstfu: cstfu$pack $FRintk,@($GRi,$GRj),$CCi,$cond */
7151
7152static SEM_PC
7153SEM_FN_NAME (frvbf,cstfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7154{
7155#define FLD(f) abuf->fields.sfmt_cstbfu.f
7156  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7157  int UNUSED written = 0;
7158  IADDR UNUSED pc = abuf->addr;
7159  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7160
7161if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7162{
7163  SI tmp_address;
7164  tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7165frvbf_write_mem_SI (current_cpu, pc, tmp_address, GET_H_FR_INT (FLD (f_FRk)));
7166  {
7167    SI opval = tmp_address;
7168    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
7169    written |= (1 << 6);
7170    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7171  }
7172}
7173}
7174
7175  abuf->written = written;
7176  return vpc;
7177#undef FLD
7178}
7179
7180/* cstdu: cstdu$pack $GRdoublek,@($GRi,$GRj),$CCi,$cond */
7181
7182static SEM_PC
7183SEM_FN_NAME (frvbf,cstdu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7184{
7185#define FLD(f) abuf->fields.sfmt_cstdu.f
7186  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7187  int UNUSED written = 0;
7188  IADDR UNUSED pc = abuf->addr;
7189  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7190
7191if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7192{
7193  SI tmp_address;
7194{
7195  tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7196frvbf_write_mem_DI (current_cpu, pc, tmp_address, GET_H_GR_DOUBLE (FLD (f_GRk)));
7197}
7198  {
7199    SI opval = tmp_address;
7200    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
7201    written |= (1 << 6);
7202    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7203  }
7204}
7205}
7206
7207  abuf->written = written;
7208  return vpc;
7209#undef FLD
7210}
7211
7212/* cstdfu: cstdfu$pack $FRdoublek,@($GRi,$GRj),$CCi,$cond */
7213
7214static SEM_PC
7215SEM_FN_NAME (frvbf,cstdfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7216{
7217#define FLD(f) abuf->fields.sfmt_cstdfu.f
7218  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7219  int UNUSED written = 0;
7220  IADDR UNUSED pc = abuf->addr;
7221  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7222
7223if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7224{
7225  SI tmp_address;
7226{
7227  tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7228frvbf_write_mem_DF (current_cpu, pc, tmp_address, GET_H_FR_DOUBLE (FLD (f_FRk)));
7229}
7230  {
7231    SI opval = tmp_address;
7232    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
7233    written |= (1 << 6);
7234    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7235  }
7236}
7237}
7238
7239  abuf->written = written;
7240  return vpc;
7241#undef FLD
7242}
7243
7244/* stbi: stbi$pack $GRk,@($GRi,$d12) */
7245
7246static SEM_PC
7247SEM_FN_NAME (frvbf,stbi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7248{
7249#define FLD(f) abuf->fields.sfmt_swapi.f
7250  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7251  int UNUSED written = 0;
7252  IADDR UNUSED pc = abuf->addr;
7253  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7254
7255frvbf_write_mem_QI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)), GET_H_GR (FLD (f_GRk)));
7256
7257  return vpc;
7258#undef FLD
7259}
7260
7261/* sthi: sthi$pack $GRk,@($GRi,$d12) */
7262
7263static SEM_PC
7264SEM_FN_NAME (frvbf,sthi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7265{
7266#define FLD(f) abuf->fields.sfmt_swapi.f
7267  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7268  int UNUSED written = 0;
7269  IADDR UNUSED pc = abuf->addr;
7270  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7271
7272frvbf_write_mem_HI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)), GET_H_GR (FLD (f_GRk)));
7273
7274  return vpc;
7275#undef FLD
7276}
7277
7278/* sti: sti$pack $GRk,@($GRi,$d12) */
7279
7280static SEM_PC
7281SEM_FN_NAME (frvbf,sti) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7282{
7283#define FLD(f) abuf->fields.sfmt_swapi.f
7284  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7285  int UNUSED written = 0;
7286  IADDR UNUSED pc = abuf->addr;
7287  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7288
7289frvbf_write_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)), GET_H_GR (FLD (f_GRk)));
7290
7291  return vpc;
7292#undef FLD
7293}
7294
7295/* stbfi: stbfi$pack $FRintk,@($GRi,$d12) */
7296
7297static SEM_PC
7298SEM_FN_NAME (frvbf,stbfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7299{
7300#define FLD(f) abuf->fields.sfmt_stbfi.f
7301  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7302  int UNUSED written = 0;
7303  IADDR UNUSED pc = abuf->addr;
7304  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7305
7306frvbf_write_mem_QI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)), GET_H_FR_INT (FLD (f_FRk)));
7307
7308  return vpc;
7309#undef FLD
7310}
7311
7312/* sthfi: sthfi$pack $FRintk,@($GRi,$d12) */
7313
7314static SEM_PC
7315SEM_FN_NAME (frvbf,sthfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7316{
7317#define FLD(f) abuf->fields.sfmt_stbfi.f
7318  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7319  int UNUSED written = 0;
7320  IADDR UNUSED pc = abuf->addr;
7321  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7322
7323frvbf_write_mem_HI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)), GET_H_FR_INT (FLD (f_FRk)));
7324
7325  return vpc;
7326#undef FLD
7327}
7328
7329/* stfi: stfi$pack $FRintk,@($GRi,$d12) */
7330
7331static SEM_PC
7332SEM_FN_NAME (frvbf,stfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7333{
7334#define FLD(f) abuf->fields.sfmt_stbfi.f
7335  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7336  int UNUSED written = 0;
7337  IADDR UNUSED pc = abuf->addr;
7338  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7339
7340frvbf_write_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)), GET_H_FR_INT (FLD (f_FRk)));
7341
7342  return vpc;
7343#undef FLD
7344}
7345
7346/* stdi: stdi$pack $GRdoublek,@($GRi,$d12) */
7347
7348static SEM_PC
7349SEM_FN_NAME (frvbf,stdi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7350{
7351#define FLD(f) abuf->fields.sfmt_stdi.f
7352  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7353  int UNUSED written = 0;
7354  IADDR UNUSED pc = abuf->addr;
7355  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7356
7357{
7358  SI tmp_address;
7359{
7360  tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
7361frvbf_write_mem_DI (current_cpu, pc, tmp_address, GET_H_GR_DOUBLE (FLD (f_GRk)));
7362}
7363}
7364
7365  return vpc;
7366#undef FLD
7367}
7368
7369/* stdfi: stdfi$pack $FRdoublek,@($GRi,$d12) */
7370
7371static SEM_PC
7372SEM_FN_NAME (frvbf,stdfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7373{
7374#define FLD(f) abuf->fields.sfmt_stdfi.f
7375  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7376  int UNUSED written = 0;
7377  IADDR UNUSED pc = abuf->addr;
7378  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7379
7380{
7381  SI tmp_address;
7382{
7383  tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
7384frvbf_write_mem_DF (current_cpu, pc, tmp_address, GET_H_FR_DOUBLE (FLD (f_FRk)));
7385}
7386}
7387
7388  return vpc;
7389#undef FLD
7390}
7391
7392/* stqi: stqi$pack $GRk,@($GRi,$d12) */
7393
7394static SEM_PC
7395SEM_FN_NAME (frvbf,stqi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7396{
7397#define FLD(f) abuf->fields.sfmt_stdi.f
7398  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7399  int UNUSED written = 0;
7400  IADDR UNUSED pc = abuf->addr;
7401  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7402
7403{
7404  SI tmp_address;
7405{
7406  tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
7407frvbf_store_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
7408}
7409}
7410
7411  return vpc;
7412#undef FLD
7413}
7414
7415/* stqfi: stqfi$pack $FRintk,@($GRi,$d12) */
7416
7417static SEM_PC
7418SEM_FN_NAME (frvbf,stqfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7419{
7420#define FLD(f) abuf->fields.sfmt_stdfi.f
7421  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7422  int UNUSED written = 0;
7423  IADDR UNUSED pc = abuf->addr;
7424  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7425
7426{
7427  SI tmp_address;
7428{
7429  tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
7430frvbf_store_quad_FRint (current_cpu, pc, tmp_address, FLD (f_FRk));
7431}
7432}
7433
7434  return vpc;
7435#undef FLD
7436}
7437
7438/* swap: swap$pack @($GRi,$GRj),$GRk */
7439
7440static SEM_PC
7441SEM_FN_NAME (frvbf,swap) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7442{
7443#define FLD(f) abuf->fields.sfmt_cswap.f
7444  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7445  int UNUSED written = 0;
7446  IADDR UNUSED pc = abuf->addr;
7447  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7448
7449{
7450  SI tmp_tmp;
7451  SI tmp_address;
7452  tmp_tmp = GET_H_GR (FLD (f_GRk));
7453  tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7454frvbf_check_swap_address (current_cpu, tmp_address);
7455  {
7456    SI opval = frvbf_read_mem_WI (current_cpu, pc, tmp_address);
7457    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
7458    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7459  }
7460frvbf_write_mem_WI (current_cpu, pc, tmp_address, tmp_tmp);
7461}
7462
7463  return vpc;
7464#undef FLD
7465}
7466
7467/* swapi: swapi$pack @($GRi,$d12),$GRk */
7468
7469static SEM_PC
7470SEM_FN_NAME (frvbf,swapi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7471{
7472#define FLD(f) abuf->fields.sfmt_swapi.f
7473  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7474  int UNUSED written = 0;
7475  IADDR UNUSED pc = abuf->addr;
7476  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7477
7478{
7479  SI tmp_tmp;
7480  SI tmp_address;
7481  tmp_tmp = GET_H_GR (FLD (f_GRk));
7482  tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
7483frvbf_check_swap_address (current_cpu, tmp_address);
7484  {
7485    SI opval = frvbf_read_mem_WI (current_cpu, pc, tmp_address);
7486    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
7487    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7488  }
7489frvbf_write_mem_WI (current_cpu, pc, tmp_address, tmp_tmp);
7490}
7491
7492  return vpc;
7493#undef FLD
7494}
7495
7496/* cswap: cswap$pack @($GRi,$GRj),$GRk,$CCi,$cond */
7497
7498static SEM_PC
7499SEM_FN_NAME (frvbf,cswap) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7500{
7501#define FLD(f) abuf->fields.sfmt_cswap.f
7502  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7503  int UNUSED written = 0;
7504  IADDR UNUSED pc = abuf->addr;
7505  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7506
7507if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7508{
7509  SI tmp_tmp;
7510  SI tmp_address;
7511  tmp_tmp = GET_H_GR (FLD (f_GRk));
7512  tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7513frvbf_check_swap_address (current_cpu, tmp_address);
7514  {
7515    SI opval = frvbf_read_mem_WI (current_cpu, pc, tmp_address);
7516    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
7517    written |= (1 << 6);
7518    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7519  }
7520frvbf_write_mem_WI (current_cpu, pc, tmp_address, tmp_tmp);
7521}
7522}
7523
7524  abuf->written = written;
7525  return vpc;
7526#undef FLD
7527}
7528
7529/* movgf: movgf$pack $GRj,$FRintk */
7530
7531static SEM_PC
7532SEM_FN_NAME (frvbf,movgf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7533{
7534#define FLD(f) abuf->fields.sfmt_cmovgfd.f
7535  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7536  int UNUSED written = 0;
7537  IADDR UNUSED pc = abuf->addr;
7538  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7539
7540  {
7541    SI opval = GET_H_GR (FLD (f_GRj));
7542    sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
7543    TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7544  }
7545
7546  return vpc;
7547#undef FLD
7548}
7549
7550/* movfg: movfg$pack $FRintk,$GRj */
7551
7552static SEM_PC
7553SEM_FN_NAME (frvbf,movfg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7554{
7555#define FLD(f) abuf->fields.sfmt_cmovfgd.f
7556  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7557  int UNUSED written = 0;
7558  IADDR UNUSED pc = abuf->addr;
7559  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7560
7561  {
7562    SI opval = GET_H_FR_INT (FLD (f_FRk));
7563    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRj), opval);
7564    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7565  }
7566
7567  return vpc;
7568#undef FLD
7569}
7570
7571/* movgfd: movgfd$pack $GRj,$FRintk */
7572
7573static SEM_PC
7574SEM_FN_NAME (frvbf,movgfd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7575{
7576#define FLD(f) abuf->fields.sfmt_cmovgfd.f
7577  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7578  int UNUSED written = 0;
7579  IADDR UNUSED pc = abuf->addr;
7580  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7581
7582if (EQSI (FLD (f_GRj), 0)) {
7583{
7584  {
7585    SI opval = 0;
7586    sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
7587    written |= (1 << 4);
7588    TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7589  }
7590  {
7591    USI opval = 0;
7592    sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (1)), opval);
7593    written |= (1 << 5);
7594    TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7595  }
7596}
7597} else {
7598{
7599  {
7600    SI opval = GET_H_GR (FLD (f_GRj));
7601    sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
7602    written |= (1 << 4);
7603    TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7604  }
7605  {
7606    USI opval = GET_H_GR (((FLD (f_GRj)) + (1)));
7607    sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (1)), opval);
7608    written |= (1 << 5);
7609    TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7610  }
7611}
7612}
7613
7614  abuf->written = written;
7615  return vpc;
7616#undef FLD
7617}
7618
7619/* movfgd: movfgd$pack $FRintk,$GRj */
7620
7621static SEM_PC
7622SEM_FN_NAME (frvbf,movfgd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7623{
7624#define FLD(f) abuf->fields.sfmt_cmovfgd.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
7630if (NESI (FLD (f_GRj), 0)) {
7631{
7632  {
7633    SI opval = GET_H_FR_INT (FLD (f_FRk));
7634    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRj), opval);
7635    written |= (1 << 4);
7636    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7637  }
7638  {
7639    USI opval = GET_H_FR_INT (((FLD (f_FRk)) + (1)));
7640    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, ((FLD (f_GRj)) + (1)), opval);
7641    written |= (1 << 5);
7642    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7643  }
7644}
7645}
7646
7647  abuf->written = written;
7648  return vpc;
7649#undef FLD
7650}
7651
7652/* movgfq: movgfq$pack $GRj,$FRintk */
7653
7654static SEM_PC
7655SEM_FN_NAME (frvbf,movgfq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7656{
7657#define FLD(f) abuf->fields.sfmt_movgfq.f
7658  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7659  int UNUSED written = 0;
7660  IADDR UNUSED pc = abuf->addr;
7661  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7662
7663if (EQSI (FLD (f_GRj), 0)) {
7664{
7665  {
7666    SI opval = 0;
7667    sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
7668    written |= (1 << 6);
7669    TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7670  }
7671  {
7672    USI opval = 0;
7673    sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (1)), opval);
7674    written |= (1 << 7);
7675    TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7676  }
7677  {
7678    USI opval = 0;
7679    sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (2)), opval);
7680    written |= (1 << 8);
7681    TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7682  }
7683  {
7684    USI opval = 0;
7685    sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (3)), opval);
7686    written |= (1 << 9);
7687    TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7688  }
7689}
7690} else {
7691{
7692  {
7693    SI opval = GET_H_GR (FLD (f_GRj));
7694    sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
7695    written |= (1 << 6);
7696    TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7697  }
7698  {
7699    USI opval = GET_H_GR (((FLD (f_GRj)) + (1)));
7700    sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (1)), opval);
7701    written |= (1 << 7);
7702    TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7703  }
7704  {
7705    USI opval = GET_H_GR (((FLD (f_GRj)) + (2)));
7706    sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (2)), opval);
7707    written |= (1 << 8);
7708    TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7709  }
7710  {
7711    USI opval = GET_H_GR (((FLD (f_GRj)) + (3)));
7712    sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (3)), opval);
7713    written |= (1 << 9);
7714    TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7715  }
7716}
7717}
7718
7719  abuf->written = written;
7720  return vpc;
7721#undef FLD
7722}
7723
7724/* movfgq: movfgq$pack $FRintk,$GRj */
7725
7726static SEM_PC
7727SEM_FN_NAME (frvbf,movfgq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7728{
7729#define FLD(f) abuf->fields.sfmt_movfgq.f
7730  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7731  int UNUSED written = 0;
7732  IADDR UNUSED pc = abuf->addr;
7733  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7734
7735if (NESI (FLD (f_GRj), 0)) {
7736{
7737  {
7738    SI opval = GET_H_FR_INT (FLD (f_FRk));
7739    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRj), opval);
7740    written |= (1 << 6);
7741    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7742  }
7743  {
7744    USI opval = GET_H_FR_INT (((FLD (f_FRk)) + (1)));
7745    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, ((FLD (f_GRj)) + (1)), opval);
7746    written |= (1 << 7);
7747    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7748  }
7749  {
7750    USI opval = GET_H_FR_INT (((FLD (f_FRk)) + (2)));
7751    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, ((FLD (f_GRj)) + (2)), opval);
7752    written |= (1 << 8);
7753    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7754  }
7755  {
7756    USI opval = GET_H_FR_INT (((FLD (f_FRk)) + (3)));
7757    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, ((FLD (f_GRj)) + (3)), opval);
7758    written |= (1 << 9);
7759    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7760  }
7761}
7762}
7763
7764  abuf->written = written;
7765  return vpc;
7766#undef FLD
7767}
7768
7769/* cmovgf: cmovgf$pack $GRj,$FRintk,$CCi,$cond */
7770
7771static SEM_PC
7772SEM_FN_NAME (frvbf,cmovgf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7773{
7774#define FLD(f) abuf->fields.sfmt_cmovgfd.f
7775  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7776  int UNUSED written = 0;
7777  IADDR UNUSED pc = abuf->addr;
7778  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7779
7780if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7781  {
7782    SI opval = GET_H_GR (FLD (f_GRj));
7783    sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
7784    written |= (1 << 3);
7785    TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7786  }
7787}
7788
7789  abuf->written = written;
7790  return vpc;
7791#undef FLD
7792}
7793
7794/* cmovfg: cmovfg$pack $FRintk,$GRj,$CCi,$cond */
7795
7796static SEM_PC
7797SEM_FN_NAME (frvbf,cmovfg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7798{
7799#define FLD(f) abuf->fields.sfmt_cmovfgd.f
7800  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7801  int UNUSED written = 0;
7802  IADDR UNUSED pc = abuf->addr;
7803  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7804
7805if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7806  {
7807    SI opval = GET_H_FR_INT (FLD (f_FRk));
7808    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRj), opval);
7809    written |= (1 << 3);
7810    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7811  }
7812}
7813
7814  abuf->written = written;
7815  return vpc;
7816#undef FLD
7817}
7818
7819/* cmovgfd: cmovgfd$pack $GRj,$FRintk,$CCi,$cond */
7820
7821static SEM_PC
7822SEM_FN_NAME (frvbf,cmovgfd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7823{
7824#define FLD(f) abuf->fields.sfmt_cmovgfd.f
7825  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7826  int UNUSED written = 0;
7827  IADDR UNUSED pc = abuf->addr;
7828  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7829
7830if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7831if (EQSI (FLD (f_GRj), 0)) {
7832{
7833  {
7834    SI opval = 0;
7835    sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
7836    written |= (1 << 6);
7837    TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7838  }
7839  {
7840    USI opval = 0;
7841    sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (1)), opval);
7842    written |= (1 << 7);
7843    TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7844  }
7845}
7846} else {
7847{
7848  {
7849    SI opval = GET_H_GR (FLD (f_GRj));
7850    sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
7851    written |= (1 << 6);
7852    TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7853  }
7854  {
7855    USI opval = GET_H_GR (((FLD (f_GRj)) + (1)));
7856    sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (1)), opval);
7857    written |= (1 << 7);
7858    TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7859  }
7860}
7861}
7862}
7863
7864  abuf->written = written;
7865  return vpc;
7866#undef FLD
7867}
7868
7869/* cmovfgd: cmovfgd$pack $FRintk,$GRj,$CCi,$cond */
7870
7871static SEM_PC
7872SEM_FN_NAME (frvbf,cmovfgd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7873{
7874#define FLD(f) abuf->fields.sfmt_cmovfgd.f
7875  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7876  int UNUSED written = 0;
7877  IADDR UNUSED pc = abuf->addr;
7878  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7879
7880if (ANDIF (NESI (FLD (f_GRj), 0), EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2)))) {
7881{
7882  {
7883    SI opval = GET_H_FR_INT (FLD (f_FRk));
7884    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRj), opval);
7885    written |= (1 << 6);
7886    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7887  }
7888  {
7889    USI opval = GET_H_FR_INT (((FLD (f_FRk)) + (1)));
7890    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, ((FLD (f_GRj)) + (1)), opval);
7891    written |= (1 << 7);
7892    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7893  }
7894}
7895}
7896
7897  abuf->written = written;
7898  return vpc;
7899#undef FLD
7900}
7901
7902/* movgs: movgs$pack $GRj,$spr */
7903
7904static SEM_PC
7905SEM_FN_NAME (frvbf,movgs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7906{
7907#define FLD(f) abuf->fields.sfmt_movgs.f
7908  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7909  int UNUSED written = 0;
7910  IADDR UNUSED pc = abuf->addr;
7911  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7912
7913  {
7914    USI opval = GET_H_GR (FLD (f_GRj));
7915    sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, FLD (f_spr), opval);
7916    TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
7917  }
7918
7919  return vpc;
7920#undef FLD
7921}
7922
7923/* movsg: movsg$pack $spr,$GRj */
7924
7925static SEM_PC
7926SEM_FN_NAME (frvbf,movsg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7927{
7928#define FLD(f) abuf->fields.sfmt_movsg.f
7929  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7930  int UNUSED written = 0;
7931  IADDR UNUSED pc = abuf->addr;
7932  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7933
7934  {
7935    SI opval = GET_H_SPR (FLD (f_spr));
7936    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRj), opval);
7937    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7938  }
7939
7940  return vpc;
7941#undef FLD
7942}
7943
7944/* bra: bra$pack $hint_taken$label16 */
7945
7946static SEM_PC
7947SEM_FN_NAME (frvbf,bra) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7948{
7949#define FLD(f) abuf->fields.sfmt_fbne.f
7950  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7951  int UNUSED written = 0;
7952  IADDR UNUSED pc = abuf->addr;
7953  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7954
7955{
7956frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
7957  {
7958    USI opval = FLD (i_label16);
7959    sim_queue_pc_write (current_cpu, opval);
7960    TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
7961  }
7962}
7963
7964  return vpc;
7965#undef FLD
7966}
7967
7968/* bno: bno$pack$hint_not_taken */
7969
7970static SEM_PC
7971SEM_FN_NAME (frvbf,bno) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7972{
7973#define FLD(f) abuf->fields.sfmt_fbne.f
7974  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7975  int UNUSED written = 0;
7976  IADDR UNUSED pc = abuf->addr;
7977  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7978
7979frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
7980
7981  return vpc;
7982#undef FLD
7983}
7984
7985/* beq: beq$pack $ICCi_2,$hint,$label16 */
7986
7987static SEM_PC
7988SEM_FN_NAME (frvbf,beq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7989{
7990#define FLD(f) abuf->fields.sfmt_beq.f
7991  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7992  int UNUSED written = 0;
7993  IADDR UNUSED pc = abuf->addr;
7994  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7995
7996{
7997frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
7998if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2))) {
7999  {
8000    USI opval = FLD (i_label16);
8001    sim_queue_pc_write (current_cpu, opval);
8002    written |= (1 << 3);
8003    TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8004  }
8005}
8006}
8007
8008  abuf->written = written;
8009  return vpc;
8010#undef FLD
8011}
8012
8013/* bne: bne$pack $ICCi_2,$hint,$label16 */
8014
8015static SEM_PC
8016SEM_FN_NAME (frvbf,bne) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8017{
8018#define FLD(f) abuf->fields.sfmt_beq.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{
8025frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8026if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)))) {
8027  {
8028    USI opval = FLD (i_label16);
8029    sim_queue_pc_write (current_cpu, opval);
8030    written |= (1 << 3);
8031    TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8032  }
8033}
8034}
8035
8036  abuf->written = written;
8037  return vpc;
8038#undef FLD
8039}
8040
8041/* ble: ble$pack $ICCi_2,$hint,$label16 */
8042
8043static SEM_PC
8044SEM_FN_NAME (frvbf,ble) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8045{
8046#define FLD(f) abuf->fields.sfmt_beq.f
8047  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8048  int UNUSED written = 0;
8049  IADDR UNUSED pc = abuf->addr;
8050  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8051
8052{
8053frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8054if (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))))) {
8055  {
8056    USI opval = FLD (i_label16);
8057    sim_queue_pc_write (current_cpu, opval);
8058    written |= (1 << 3);
8059    TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8060  }
8061}
8062}
8063
8064  abuf->written = written;
8065  return vpc;
8066#undef FLD
8067}
8068
8069/* bgt: bgt$pack $ICCi_2,$hint,$label16 */
8070
8071static SEM_PC
8072SEM_FN_NAME (frvbf,bgt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8073{
8074#define FLD(f) abuf->fields.sfmt_beq.f
8075  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8076  int UNUSED written = 0;
8077  IADDR UNUSED pc = abuf->addr;
8078  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8079
8080{
8081frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8082if (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)))))) {
8083  {
8084    USI opval = FLD (i_label16);
8085    sim_queue_pc_write (current_cpu, opval);
8086    written |= (1 << 3);
8087    TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8088  }
8089}
8090}
8091
8092  abuf->written = written;
8093  return vpc;
8094#undef FLD
8095}
8096
8097/* blt: blt$pack $ICCi_2,$hint,$label16 */
8098
8099static SEM_PC
8100SEM_FN_NAME (frvbf,blt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8101{
8102#define FLD(f) abuf->fields.sfmt_beq.f
8103  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8104  int UNUSED written = 0;
8105  IADDR UNUSED pc = abuf->addr;
8106  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8107
8108{
8109frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8110if (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)))) {
8111  {
8112    USI opval = FLD (i_label16);
8113    sim_queue_pc_write (current_cpu, opval);
8114    written |= (1 << 3);
8115    TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8116  }
8117}
8118}
8119
8120  abuf->written = written;
8121  return vpc;
8122#undef FLD
8123}
8124
8125/* bge: bge$pack $ICCi_2,$hint,$label16 */
8126
8127static SEM_PC
8128SEM_FN_NAME (frvbf,bge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8129{
8130#define FLD(f) abuf->fields.sfmt_beq.f
8131  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8132  int UNUSED written = 0;
8133  IADDR UNUSED pc = abuf->addr;
8134  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8135
8136{
8137frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8138if (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))))) {
8139  {
8140    USI opval = FLD (i_label16);
8141    sim_queue_pc_write (current_cpu, opval);
8142    written |= (1 << 3);
8143    TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8144  }
8145}
8146}
8147
8148  abuf->written = written;
8149  return vpc;
8150#undef FLD
8151}
8152
8153/* bls: bls$pack $ICCi_2,$hint,$label16 */
8154
8155static SEM_PC
8156SEM_FN_NAME (frvbf,bls) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8157{
8158#define FLD(f) abuf->fields.sfmt_beq.f
8159  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8160  int UNUSED written = 0;
8161  IADDR UNUSED pc = abuf->addr;
8162  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8163
8164{
8165frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8166if (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)))) {
8167  {
8168    USI opval = FLD (i_label16);
8169    sim_queue_pc_write (current_cpu, opval);
8170    written |= (1 << 3);
8171    TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8172  }
8173}
8174}
8175
8176  abuf->written = written;
8177  return vpc;
8178#undef FLD
8179}
8180
8181/* bhi: bhi$pack $ICCi_2,$hint,$label16 */
8182
8183static SEM_PC
8184SEM_FN_NAME (frvbf,bhi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8185{
8186#define FLD(f) abuf->fields.sfmt_beq.f
8187  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8188  int UNUSED written = 0;
8189  IADDR UNUSED pc = abuf->addr;
8190  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8191
8192{
8193frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8194if (NOTBI (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2))))) {
8195  {
8196    USI opval = FLD (i_label16);
8197    sim_queue_pc_write (current_cpu, opval);
8198    written |= (1 << 3);
8199    TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8200  }
8201}
8202}
8203
8204  abuf->written = written;
8205  return vpc;
8206#undef FLD
8207}
8208
8209/* bc: bc$pack $ICCi_2,$hint,$label16 */
8210
8211static SEM_PC
8212SEM_FN_NAME (frvbf,bc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8213{
8214#define FLD(f) abuf->fields.sfmt_beq.f
8215  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8216  int UNUSED written = 0;
8217  IADDR UNUSED pc = abuf->addr;
8218  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8219
8220{
8221frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8222if (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1))) {
8223  {
8224    USI opval = FLD (i_label16);
8225    sim_queue_pc_write (current_cpu, opval);
8226    written |= (1 << 3);
8227    TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8228  }
8229}
8230}
8231
8232  abuf->written = written;
8233  return vpc;
8234#undef FLD
8235}
8236
8237/* bnc: bnc$pack $ICCi_2,$hint,$label16 */
8238
8239static SEM_PC
8240SEM_FN_NAME (frvbf,bnc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8241{
8242#define FLD(f) abuf->fields.sfmt_beq.f
8243  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8244  int UNUSED written = 0;
8245  IADDR UNUSED pc = abuf->addr;
8246  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8247
8248{
8249frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8250if (NOTBI (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)))) {
8251  {
8252    USI opval = FLD (i_label16);
8253    sim_queue_pc_write (current_cpu, opval);
8254    written |= (1 << 3);
8255    TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8256  }
8257}
8258}
8259
8260  abuf->written = written;
8261  return vpc;
8262#undef FLD
8263}
8264
8265/* bn: bn$pack $ICCi_2,$hint,$label16 */
8266
8267static SEM_PC
8268SEM_FN_NAME (frvbf,bn) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8269{
8270#define FLD(f) abuf->fields.sfmt_beq.f
8271  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8272  int UNUSED written = 0;
8273  IADDR UNUSED pc = abuf->addr;
8274  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8275
8276{
8277frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8278if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3))) {
8279  {
8280    USI opval = FLD (i_label16);
8281    sim_queue_pc_write (current_cpu, opval);
8282    written |= (1 << 3);
8283    TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8284  }
8285}
8286}
8287
8288  abuf->written = written;
8289  return vpc;
8290#undef FLD
8291}
8292
8293/* bp: bp$pack $ICCi_2,$hint,$label16 */
8294
8295static SEM_PC
8296SEM_FN_NAME (frvbf,bp) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8297{
8298#define FLD(f) abuf->fields.sfmt_beq.f
8299  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8300  int UNUSED written = 0;
8301  IADDR UNUSED pc = abuf->addr;
8302  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8303
8304{
8305frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8306if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3)))) {
8307  {
8308    USI opval = FLD (i_label16);
8309    sim_queue_pc_write (current_cpu, opval);
8310    written |= (1 << 3);
8311    TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8312  }
8313}
8314}
8315
8316  abuf->written = written;
8317  return vpc;
8318#undef FLD
8319}
8320
8321/* bv: bv$pack $ICCi_2,$hint,$label16 */
8322
8323static SEM_PC
8324SEM_FN_NAME (frvbf,bv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8325{
8326#define FLD(f) abuf->fields.sfmt_beq.f
8327  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8328  int UNUSED written = 0;
8329  IADDR UNUSED pc = abuf->addr;
8330  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8331
8332{
8333frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8334if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1))) {
8335  {
8336    USI opval = FLD (i_label16);
8337    sim_queue_pc_write (current_cpu, opval);
8338    written |= (1 << 3);
8339    TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8340  }
8341}
8342}
8343
8344  abuf->written = written;
8345  return vpc;
8346#undef FLD
8347}
8348
8349/* bnv: bnv$pack $ICCi_2,$hint,$label16 */
8350
8351static SEM_PC
8352SEM_FN_NAME (frvbf,bnv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8353{
8354#define FLD(f) abuf->fields.sfmt_beq.f
8355  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8356  int UNUSED written = 0;
8357  IADDR UNUSED pc = abuf->addr;
8358  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8359
8360{
8361frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8362if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1)))) {
8363  {
8364    USI opval = FLD (i_label16);
8365    sim_queue_pc_write (current_cpu, opval);
8366    written |= (1 << 3);
8367    TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8368  }
8369}
8370}
8371
8372  abuf->written = written;
8373  return vpc;
8374#undef FLD
8375}
8376
8377/* fbra: fbra$pack $hint_taken$label16 */
8378
8379static SEM_PC
8380SEM_FN_NAME (frvbf,fbra) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8381{
8382#define FLD(f) abuf->fields.sfmt_fbne.f
8383  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8384  int UNUSED written = 0;
8385  IADDR UNUSED pc = abuf->addr;
8386  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8387
8388{
8389frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8390  {
8391    USI opval = FLD (i_label16);
8392    sim_queue_pc_write (current_cpu, opval);
8393    TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8394  }
8395}
8396
8397  return vpc;
8398#undef FLD
8399}
8400
8401/* fbno: fbno$pack$hint_not_taken */
8402
8403static SEM_PC
8404SEM_FN_NAME (frvbf,fbno) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8405{
8406#define FLD(f) abuf->fields.sfmt_fbne.f
8407  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8408  int UNUSED written = 0;
8409  IADDR UNUSED pc = abuf->addr;
8410  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8411
8412frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8413
8414  return vpc;
8415#undef FLD
8416}
8417
8418/* fbne: fbne$pack $FCCi_2,$hint,$label16 */
8419
8420static SEM_PC
8421SEM_FN_NAME (frvbf,fbne) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8422{
8423#define FLD(f) abuf->fields.sfmt_fbne.f
8424  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8425  int UNUSED written = 0;
8426  IADDR UNUSED pc = abuf->addr;
8427  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8428
8429{
8430frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8431if (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))))) {
8432  {
8433    USI opval = FLD (i_label16);
8434    sim_queue_pc_write (current_cpu, opval);
8435    written |= (1 << 3);
8436    TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8437  }
8438}
8439}
8440
8441  abuf->written = written;
8442  return vpc;
8443#undef FLD
8444}
8445
8446/* fbeq: fbeq$pack $FCCi_2,$hint,$label16 */
8447
8448static SEM_PC
8449SEM_FN_NAME (frvbf,fbeq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8450{
8451#define FLD(f) abuf->fields.sfmt_fbne.f
8452  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8453  int UNUSED written = 0;
8454  IADDR UNUSED pc = abuf->addr;
8455  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8456
8457{
8458frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8459if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3))) {
8460  {
8461    USI opval = FLD (i_label16);
8462    sim_queue_pc_write (current_cpu, opval);
8463    written |= (1 << 3);
8464    TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8465  }
8466}
8467}
8468
8469  abuf->written = written;
8470  return vpc;
8471#undef FLD
8472}
8473
8474/* fblg: fblg$pack $FCCi_2,$hint,$label16 */
8475
8476static SEM_PC
8477SEM_FN_NAME (frvbf,fblg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8478{
8479#define FLD(f) abuf->fields.sfmt_fbne.f
8480  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8481  int UNUSED written = 0;
8482  IADDR UNUSED pc = abuf->addr;
8483  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8484
8485{
8486frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8487if (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)))) {
8488  {
8489    USI opval = FLD (i_label16);
8490    sim_queue_pc_write (current_cpu, opval);
8491    written |= (1 << 3);
8492    TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8493  }
8494}
8495}
8496
8497  abuf->written = written;
8498  return vpc;
8499#undef FLD
8500}
8501
8502/* fbue: fbue$pack $FCCi_2,$hint,$label16 */
8503
8504static SEM_PC
8505SEM_FN_NAME (frvbf,fbue) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8506{
8507#define FLD(f) abuf->fields.sfmt_fbne.f
8508  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8509  int UNUSED written = 0;
8510  IADDR UNUSED pc = abuf->addr;
8511  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8512
8513{
8514frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8515if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
8516  {
8517    USI opval = FLD (i_label16);
8518    sim_queue_pc_write (current_cpu, opval);
8519    written |= (1 << 3);
8520    TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8521  }
8522}
8523}
8524
8525  abuf->written = written;
8526  return vpc;
8527#undef FLD
8528}
8529
8530/* fbul: fbul$pack $FCCi_2,$hint,$label16 */
8531
8532static SEM_PC
8533SEM_FN_NAME (frvbf,fbul) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8534{
8535#define FLD(f) abuf->fields.sfmt_fbne.f
8536  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8537  int UNUSED written = 0;
8538  IADDR UNUSED pc = abuf->addr;
8539  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8540
8541{
8542frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8543if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
8544  {
8545    USI opval = FLD (i_label16);
8546    sim_queue_pc_write (current_cpu, opval);
8547    written |= (1 << 3);
8548    TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8549  }
8550}
8551}
8552
8553  abuf->written = written;
8554  return vpc;
8555#undef FLD
8556}
8557
8558/* fbge: fbge$pack $FCCi_2,$hint,$label16 */
8559
8560static SEM_PC
8561SEM_FN_NAME (frvbf,fbge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8562{
8563#define FLD(f) abuf->fields.sfmt_fbne.f
8564  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8565  int UNUSED written = 0;
8566  IADDR UNUSED pc = abuf->addr;
8567  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8568
8569{
8570frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8571if (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)))) {
8572  {
8573    USI opval = FLD (i_label16);
8574    sim_queue_pc_write (current_cpu, opval);
8575    written |= (1 << 3);
8576    TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8577  }
8578}
8579}
8580
8581  abuf->written = written;
8582  return vpc;
8583#undef FLD
8584}
8585
8586/* fblt: fblt$pack $FCCi_2,$hint,$label16 */
8587
8588static SEM_PC
8589SEM_FN_NAME (frvbf,fblt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8590{
8591#define FLD(f) abuf->fields.sfmt_fbne.f
8592  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8593  int UNUSED written = 0;
8594  IADDR UNUSED pc = abuf->addr;
8595  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8596
8597{
8598frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8599if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2))) {
8600  {
8601    USI opval = FLD (i_label16);
8602    sim_queue_pc_write (current_cpu, opval);
8603    written |= (1 << 3);
8604    TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8605  }
8606}
8607}
8608
8609  abuf->written = written;
8610  return vpc;
8611#undef FLD
8612}
8613
8614/* fbuge: fbuge$pack $FCCi_2,$hint,$label16 */
8615
8616static SEM_PC
8617SEM_FN_NAME (frvbf,fbuge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8618{
8619#define FLD(f) abuf->fields.sfmt_fbne.f
8620  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8621  int UNUSED written = 0;
8622  IADDR UNUSED pc = abuf->addr;
8623  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8624
8625{
8626frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8627if (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))))) {
8628  {
8629    USI opval = FLD (i_label16);
8630    sim_queue_pc_write (current_cpu, opval);
8631    written |= (1 << 3);
8632    TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8633  }
8634}
8635}
8636
8637  abuf->written = written;
8638  return vpc;
8639#undef FLD
8640}
8641
8642/* fbug: fbug$pack $FCCi_2,$hint,$label16 */
8643
8644static SEM_PC
8645SEM_FN_NAME (frvbf,fbug) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8646{
8647#define FLD(f) abuf->fields.sfmt_fbne.f
8648  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8649  int UNUSED written = 0;
8650  IADDR UNUSED pc = abuf->addr;
8651  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8652
8653{
8654frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8655if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
8656  {
8657    USI opval = FLD (i_label16);
8658    sim_queue_pc_write (current_cpu, opval);
8659    written |= (1 << 3);
8660    TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8661  }
8662}
8663}
8664
8665  abuf->written = written;
8666  return vpc;
8667#undef FLD
8668}
8669
8670/* fble: fble$pack $FCCi_2,$hint,$label16 */
8671
8672static SEM_PC
8673SEM_FN_NAME (frvbf,fble) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8674{
8675#define FLD(f) abuf->fields.sfmt_fbne.f
8676  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8677  int UNUSED written = 0;
8678  IADDR UNUSED pc = abuf->addr;
8679  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8680
8681{
8682frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8683if (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)))) {
8684  {
8685    USI opval = FLD (i_label16);
8686    sim_queue_pc_write (current_cpu, opval);
8687    written |= (1 << 3);
8688    TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8689  }
8690}
8691}
8692
8693  abuf->written = written;
8694  return vpc;
8695#undef FLD
8696}
8697
8698/* fbgt: fbgt$pack $FCCi_2,$hint,$label16 */
8699
8700static SEM_PC
8701SEM_FN_NAME (frvbf,fbgt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8702{
8703#define FLD(f) abuf->fields.sfmt_fbne.f
8704  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8705  int UNUSED written = 0;
8706  IADDR UNUSED pc = abuf->addr;
8707  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8708
8709{
8710frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8711if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1))) {
8712  {
8713    USI opval = FLD (i_label16);
8714    sim_queue_pc_write (current_cpu, opval);
8715    written |= (1 << 3);
8716    TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8717  }
8718}
8719}
8720
8721  abuf->written = written;
8722  return vpc;
8723#undef FLD
8724}
8725
8726/* fbule: fbule$pack $FCCi_2,$hint,$label16 */
8727
8728static SEM_PC
8729SEM_FN_NAME (frvbf,fbule) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8730{
8731#define FLD(f) abuf->fields.sfmt_fbne.f
8732  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8733  int UNUSED written = 0;
8734  IADDR UNUSED pc = abuf->addr;
8735  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8736
8737{
8738frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8739if (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))))) {
8740  {
8741    USI opval = FLD (i_label16);
8742    sim_queue_pc_write (current_cpu, opval);
8743    written |= (1 << 3);
8744    TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8745  }
8746}
8747}
8748
8749  abuf->written = written;
8750  return vpc;
8751#undef FLD
8752}
8753
8754/* fbu: fbu$pack $FCCi_2,$hint,$label16 */
8755
8756static SEM_PC
8757SEM_FN_NAME (frvbf,fbu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8758{
8759#define FLD(f) abuf->fields.sfmt_fbne.f
8760  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8761  int UNUSED written = 0;
8762  IADDR UNUSED pc = abuf->addr;
8763  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8764
8765{
8766frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8767if (TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1))) {
8768  {
8769    USI opval = FLD (i_label16);
8770    sim_queue_pc_write (current_cpu, opval);
8771    written |= (1 << 3);
8772    TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8773  }
8774}
8775}
8776
8777  abuf->written = written;
8778  return vpc;
8779#undef FLD
8780}
8781
8782/* fbo: fbo$pack $FCCi_2,$hint,$label16 */
8783
8784static SEM_PC
8785SEM_FN_NAME (frvbf,fbo) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8786{
8787#define FLD(f) abuf->fields.sfmt_fbne.f
8788  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8789  int UNUSED written = 0;
8790  IADDR UNUSED pc = abuf->addr;
8791  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8792
8793{
8794frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8795if (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))))) {
8796  {
8797    USI opval = FLD (i_label16);
8798    sim_queue_pc_write (current_cpu, opval);
8799    written |= (1 << 3);
8800    TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8801  }
8802}
8803}
8804
8805  abuf->written = written;
8806  return vpc;
8807#undef FLD
8808}
8809
8810/* bctrlr: bctrlr$pack $ccond,$hint */
8811
8812static SEM_PC
8813SEM_FN_NAME (frvbf,bctrlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8814{
8815#define FLD(f) abuf->fields.sfmt_fcbeqlr.f
8816  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8817  int UNUSED written = 0;
8818  IADDR UNUSED pc = abuf->addr;
8819  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8820
8821{
8822frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
8823{
8824  SI tmp_tmp;
8825  tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
8826  {
8827    USI opval = tmp_tmp;
8828    sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
8829    TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
8830  }
8831if (EQSI (FLD (f_ccond), 0)) {
8832if (NESI (tmp_tmp, 0)) {
8833  {
8834    USI opval = GET_H_SPR (((UINT) 272));
8835    sim_queue_pc_write (current_cpu, opval);
8836    written |= (1 << 5);
8837    TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8838  }
8839}
8840} else {
8841if (EQSI (tmp_tmp, 0)) {
8842  {
8843    USI opval = GET_H_SPR (((UINT) 272));
8844    sim_queue_pc_write (current_cpu, opval);
8845    written |= (1 << 5);
8846    TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8847  }
8848}
8849}
8850}
8851}
8852
8853  abuf->written = written;
8854  return vpc;
8855#undef FLD
8856}
8857
8858/* bralr: bralr$pack$hint_taken */
8859
8860static SEM_PC
8861SEM_FN_NAME (frvbf,bralr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8862{
8863#define FLD(f) abuf->fields.sfmt_fcbeqlr.f
8864  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8865  int UNUSED written = 0;
8866  IADDR UNUSED pc = abuf->addr;
8867  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8868
8869{
8870frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
8871  {
8872    USI opval = GET_H_SPR (((UINT) 272));
8873    sim_queue_pc_write (current_cpu, opval);
8874    TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8875  }
8876}
8877
8878  return vpc;
8879#undef FLD
8880}
8881
8882/* bnolr: bnolr$pack$hint_not_taken */
8883
8884static SEM_PC
8885SEM_FN_NAME (frvbf,bnolr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8886{
8887#define FLD(f) abuf->fields.sfmt_fcbeqlr.f
8888  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8889  int UNUSED written = 0;
8890  IADDR UNUSED pc = abuf->addr;
8891  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8892
8893frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
8894
8895  return vpc;
8896#undef FLD
8897}
8898
8899/* beqlr: beqlr$pack $ICCi_2,$hint */
8900
8901static SEM_PC
8902SEM_FN_NAME (frvbf,beqlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8903{
8904#define FLD(f) abuf->fields.sfmt_bceqlr.f
8905  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8906  int UNUSED written = 0;
8907  IADDR UNUSED pc = abuf->addr;
8908  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8909
8910{
8911frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
8912if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2))) {
8913  {
8914    USI opval = GET_H_SPR (((UINT) 272));
8915    sim_queue_pc_write (current_cpu, opval);
8916    written |= (1 << 3);
8917    TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8918  }
8919}
8920}
8921
8922  abuf->written = written;
8923  return vpc;
8924#undef FLD
8925}
8926
8927/* bnelr: bnelr$pack $ICCi_2,$hint */
8928
8929static SEM_PC
8930SEM_FN_NAME (frvbf,bnelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8931{
8932#define FLD(f) abuf->fields.sfmt_bceqlr.f
8933  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8934  int UNUSED written = 0;
8935  IADDR UNUSED pc = abuf->addr;
8936  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8937
8938{
8939frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
8940if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)))) {
8941  {
8942    USI opval = GET_H_SPR (((UINT) 272));
8943    sim_queue_pc_write (current_cpu, opval);
8944    written |= (1 << 3);
8945    TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8946  }
8947}
8948}
8949
8950  abuf->written = written;
8951  return vpc;
8952#undef FLD
8953}
8954
8955/* blelr: blelr$pack $ICCi_2,$hint */
8956
8957static SEM_PC
8958SEM_FN_NAME (frvbf,blelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8959{
8960#define FLD(f) abuf->fields.sfmt_bceqlr.f
8961  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8962  int UNUSED written = 0;
8963  IADDR UNUSED pc = abuf->addr;
8964  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8965
8966{
8967frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
8968if (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))))) {
8969  {
8970    USI opval = GET_H_SPR (((UINT) 272));
8971    sim_queue_pc_write (current_cpu, opval);
8972    written |= (1 << 3);
8973    TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8974  }
8975}
8976}
8977
8978  abuf->written = written;
8979  return vpc;
8980#undef FLD
8981}
8982
8983/* bgtlr: bgtlr$pack $ICCi_2,$hint */
8984
8985static SEM_PC
8986SEM_FN_NAME (frvbf,bgtlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8987{
8988#define FLD(f) abuf->fields.sfmt_bceqlr.f
8989  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8990  int UNUSED written = 0;
8991  IADDR UNUSED pc = abuf->addr;
8992  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8993
8994{
8995frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
8996if (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)))))) {
8997  {
8998    USI opval = GET_H_SPR (((UINT) 272));
8999    sim_queue_pc_write (current_cpu, opval);
9000    written |= (1 << 3);
9001    TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9002  }
9003}
9004}
9005
9006  abuf->written = written;
9007  return vpc;
9008#undef FLD
9009}
9010
9011/* bltlr: bltlr$pack $ICCi_2,$hint */
9012
9013static SEM_PC
9014SEM_FN_NAME (frvbf,bltlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9015{
9016#define FLD(f) abuf->fields.sfmt_bceqlr.f
9017  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9018  int UNUSED written = 0;
9019  IADDR UNUSED pc = abuf->addr;
9020  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9021
9022{
9023frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9024if (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)))) {
9025  {
9026    USI opval = GET_H_SPR (((UINT) 272));
9027    sim_queue_pc_write (current_cpu, opval);
9028    written |= (1 << 3);
9029    TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9030  }
9031}
9032}
9033
9034  abuf->written = written;
9035  return vpc;
9036#undef FLD
9037}
9038
9039/* bgelr: bgelr$pack $ICCi_2,$hint */
9040
9041static SEM_PC
9042SEM_FN_NAME (frvbf,bgelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9043{
9044#define FLD(f) abuf->fields.sfmt_bceqlr.f
9045  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9046  int UNUSED written = 0;
9047  IADDR UNUSED pc = abuf->addr;
9048  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9049
9050{
9051frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9052if (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))))) {
9053  {
9054    USI opval = GET_H_SPR (((UINT) 272));
9055    sim_queue_pc_write (current_cpu, opval);
9056    written |= (1 << 3);
9057    TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9058  }
9059}
9060}
9061
9062  abuf->written = written;
9063  return vpc;
9064#undef FLD
9065}
9066
9067/* blslr: blslr$pack $ICCi_2,$hint */
9068
9069static SEM_PC
9070SEM_FN_NAME (frvbf,blslr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9071{
9072#define FLD(f) abuf->fields.sfmt_bceqlr.f
9073  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9074  int UNUSED written = 0;
9075  IADDR UNUSED pc = abuf->addr;
9076  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9077
9078{
9079frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9080if (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)))) {
9081  {
9082    USI opval = GET_H_SPR (((UINT) 272));
9083    sim_queue_pc_write (current_cpu, opval);
9084    written |= (1 << 3);
9085    TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9086  }
9087}
9088}
9089
9090  abuf->written = written;
9091  return vpc;
9092#undef FLD
9093}
9094
9095/* bhilr: bhilr$pack $ICCi_2,$hint */
9096
9097static SEM_PC
9098SEM_FN_NAME (frvbf,bhilr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9099{
9100#define FLD(f) abuf->fields.sfmt_bceqlr.f
9101  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9102  int UNUSED written = 0;
9103  IADDR UNUSED pc = abuf->addr;
9104  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9105
9106{
9107frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9108if (NOTBI (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2))))) {
9109  {
9110    USI opval = GET_H_SPR (((UINT) 272));
9111    sim_queue_pc_write (current_cpu, opval);
9112    written |= (1 << 3);
9113    TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9114  }
9115}
9116}
9117
9118  abuf->written = written;
9119  return vpc;
9120#undef FLD
9121}
9122
9123/* bclr: bclr$pack $ICCi_2,$hint */
9124
9125static SEM_PC
9126SEM_FN_NAME (frvbf,bclr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9127{
9128#define FLD(f) abuf->fields.sfmt_bceqlr.f
9129  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9130  int UNUSED written = 0;
9131  IADDR UNUSED pc = abuf->addr;
9132  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9133
9134{
9135frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9136if (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1))) {
9137  {
9138    USI opval = GET_H_SPR (((UINT) 272));
9139    sim_queue_pc_write (current_cpu, opval);
9140    written |= (1 << 3);
9141    TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9142  }
9143}
9144}
9145
9146  abuf->written = written;
9147  return vpc;
9148#undef FLD
9149}
9150
9151/* bnclr: bnclr$pack $ICCi_2,$hint */
9152
9153static SEM_PC
9154SEM_FN_NAME (frvbf,bnclr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9155{
9156#define FLD(f) abuf->fields.sfmt_bceqlr.f
9157  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9158  int UNUSED written = 0;
9159  IADDR UNUSED pc = abuf->addr;
9160  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9161
9162{
9163frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9164if (NOTBI (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)))) {
9165  {
9166    USI opval = GET_H_SPR (((UINT) 272));
9167    sim_queue_pc_write (current_cpu, opval);
9168    written |= (1 << 3);
9169    TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9170  }
9171}
9172}
9173
9174  abuf->written = written;
9175  return vpc;
9176#undef FLD
9177}
9178
9179/* bnlr: bnlr$pack $ICCi_2,$hint */
9180
9181static SEM_PC
9182SEM_FN_NAME (frvbf,bnlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9183{
9184#define FLD(f) abuf->fields.sfmt_bceqlr.f
9185  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9186  int UNUSED written = 0;
9187  IADDR UNUSED pc = abuf->addr;
9188  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9189
9190{
9191frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9192if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3))) {
9193  {
9194    USI opval = GET_H_SPR (((UINT) 272));
9195    sim_queue_pc_write (current_cpu, opval);
9196    written |= (1 << 3);
9197    TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9198  }
9199}
9200}
9201
9202  abuf->written = written;
9203  return vpc;
9204#undef FLD
9205}
9206
9207/* bplr: bplr$pack $ICCi_2,$hint */
9208
9209static SEM_PC
9210SEM_FN_NAME (frvbf,bplr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9211{
9212#define FLD(f) abuf->fields.sfmt_bceqlr.f
9213  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9214  int UNUSED written = 0;
9215  IADDR UNUSED pc = abuf->addr;
9216  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9217
9218{
9219frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9220if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3)))) {
9221  {
9222    USI opval = GET_H_SPR (((UINT) 272));
9223    sim_queue_pc_write (current_cpu, opval);
9224    written |= (1 << 3);
9225    TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9226  }
9227}
9228}
9229
9230  abuf->written = written;
9231  return vpc;
9232#undef FLD
9233}
9234
9235/* bvlr: bvlr$pack $ICCi_2,$hint */
9236
9237static SEM_PC
9238SEM_FN_NAME (frvbf,bvlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9239{
9240#define FLD(f) abuf->fields.sfmt_bceqlr.f
9241  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9242  int UNUSED written = 0;
9243  IADDR UNUSED pc = abuf->addr;
9244  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9245
9246{
9247frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9248if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1))) {
9249  {
9250    USI opval = GET_H_SPR (((UINT) 272));
9251    sim_queue_pc_write (current_cpu, opval);
9252    written |= (1 << 3);
9253    TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9254  }
9255}
9256}
9257
9258  abuf->written = written;
9259  return vpc;
9260#undef FLD
9261}
9262
9263/* bnvlr: bnvlr$pack $ICCi_2,$hint */
9264
9265static SEM_PC
9266SEM_FN_NAME (frvbf,bnvlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9267{
9268#define FLD(f) abuf->fields.sfmt_bceqlr.f
9269  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9270  int UNUSED written = 0;
9271  IADDR UNUSED pc = abuf->addr;
9272  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9273
9274{
9275frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9276if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1)))) {
9277  {
9278    USI opval = GET_H_SPR (((UINT) 272));
9279    sim_queue_pc_write (current_cpu, opval);
9280    written |= (1 << 3);
9281    TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9282  }
9283}
9284}
9285
9286  abuf->written = written;
9287  return vpc;
9288#undef FLD
9289}
9290
9291/* fbralr: fbralr$pack$hint_taken */
9292
9293static SEM_PC
9294SEM_FN_NAME (frvbf,fbralr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9295{
9296#define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9297  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9298  int UNUSED written = 0;
9299  IADDR UNUSED pc = abuf->addr;
9300  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9301
9302{
9303frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9304  {
9305    USI opval = GET_H_SPR (((UINT) 272));
9306    sim_queue_pc_write (current_cpu, opval);
9307    TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9308  }
9309}
9310
9311  return vpc;
9312#undef FLD
9313}
9314
9315/* fbnolr: fbnolr$pack$hint_not_taken */
9316
9317static SEM_PC
9318SEM_FN_NAME (frvbf,fbnolr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9319{
9320#define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9321  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9322  int UNUSED written = 0;
9323  IADDR UNUSED pc = abuf->addr;
9324  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9325
9326frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9327
9328  return vpc;
9329#undef FLD
9330}
9331
9332/* fbeqlr: fbeqlr$pack $FCCi_2,$hint */
9333
9334static SEM_PC
9335SEM_FN_NAME (frvbf,fbeqlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9336{
9337#define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9338  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9339  int UNUSED written = 0;
9340  IADDR UNUSED pc = abuf->addr;
9341  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9342
9343{
9344frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9345if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3))) {
9346  {
9347    USI opval = GET_H_SPR (((UINT) 272));
9348    sim_queue_pc_write (current_cpu, opval);
9349    written |= (1 << 3);
9350    TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9351  }
9352}
9353}
9354
9355  abuf->written = written;
9356  return vpc;
9357#undef FLD
9358}
9359
9360/* fbnelr: fbnelr$pack $FCCi_2,$hint */
9361
9362static SEM_PC
9363SEM_FN_NAME (frvbf,fbnelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9364{
9365#define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9366  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9367  int UNUSED written = 0;
9368  IADDR UNUSED pc = abuf->addr;
9369  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9370
9371{
9372frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9373if (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))))) {
9374  {
9375    USI opval = GET_H_SPR (((UINT) 272));
9376    sim_queue_pc_write (current_cpu, opval);
9377    written |= (1 << 3);
9378    TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9379  }
9380}
9381}
9382
9383  abuf->written = written;
9384  return vpc;
9385#undef FLD
9386}
9387
9388/* fblglr: fblglr$pack $FCCi_2,$hint */
9389
9390static SEM_PC
9391SEM_FN_NAME (frvbf,fblglr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9392{
9393#define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9394  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9395  int UNUSED written = 0;
9396  IADDR UNUSED pc = abuf->addr;
9397  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9398
9399{
9400frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9401if (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)))) {
9402  {
9403    USI opval = GET_H_SPR (((UINT) 272));
9404    sim_queue_pc_write (current_cpu, opval);
9405    written |= (1 << 3);
9406    TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9407  }
9408}
9409}
9410
9411  abuf->written = written;
9412  return vpc;
9413#undef FLD
9414}
9415
9416/* fbuelr: fbuelr$pack $FCCi_2,$hint */
9417
9418static SEM_PC
9419SEM_FN_NAME (frvbf,fbuelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9420{
9421#define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9422  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9423  int UNUSED written = 0;
9424  IADDR UNUSED pc = abuf->addr;
9425  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9426
9427{
9428frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9429if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
9430  {
9431    USI opval = GET_H_SPR (((UINT) 272));
9432    sim_queue_pc_write (current_cpu, opval);
9433    written |= (1 << 3);
9434    TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9435  }
9436}
9437}
9438
9439  abuf->written = written;
9440  return vpc;
9441#undef FLD
9442}
9443
9444/* fbullr: fbullr$pack $FCCi_2,$hint */
9445
9446static SEM_PC
9447SEM_FN_NAME (frvbf,fbullr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9448{
9449#define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9450  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9451  int UNUSED written = 0;
9452  IADDR UNUSED pc = abuf->addr;
9453  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9454
9455{
9456frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9457if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
9458  {
9459    USI opval = GET_H_SPR (((UINT) 272));
9460    sim_queue_pc_write (current_cpu, opval);
9461    written |= (1 << 3);
9462    TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9463  }
9464}
9465}
9466
9467  abuf->written = written;
9468  return vpc;
9469#undef FLD
9470}
9471
9472/* fbgelr: fbgelr$pack $FCCi_2,$hint */
9473
9474static SEM_PC
9475SEM_FN_NAME (frvbf,fbgelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9476{
9477#define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9478  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9479  int UNUSED written = 0;
9480  IADDR UNUSED pc = abuf->addr;
9481  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9482
9483{
9484frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9485if (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)))) {
9486  {
9487    USI opval = GET_H_SPR (((UINT) 272));
9488    sim_queue_pc_write (current_cpu, opval);
9489    written |= (1 << 3);
9490    TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9491  }
9492}
9493}
9494
9495  abuf->written = written;
9496  return vpc;
9497#undef FLD
9498}
9499
9500/* fbltlr: fbltlr$pack $FCCi_2,$hint */
9501
9502static SEM_PC
9503SEM_FN_NAME (frvbf,fbltlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9504{
9505#define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9506  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9507  int UNUSED written = 0;
9508  IADDR UNUSED pc = abuf->addr;
9509  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9510
9511{
9512frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9513if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2))) {
9514  {
9515    USI opval = GET_H_SPR (((UINT) 272));
9516    sim_queue_pc_write (current_cpu, opval);
9517    written |= (1 << 3);
9518    TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9519  }
9520}
9521}
9522
9523  abuf->written = written;
9524  return vpc;
9525#undef FLD
9526}
9527
9528/* fbugelr: fbugelr$pack $FCCi_2,$hint */
9529
9530static SEM_PC
9531SEM_FN_NAME (frvbf,fbugelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9532{
9533#define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9534  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9535  int UNUSED written = 0;
9536  IADDR UNUSED pc = abuf->addr;
9537  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9538
9539{
9540frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9541if (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))))) {
9542  {
9543    USI opval = GET_H_SPR (((UINT) 272));
9544    sim_queue_pc_write (current_cpu, opval);
9545    written |= (1 << 3);
9546    TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9547  }
9548}
9549}
9550
9551  abuf->written = written;
9552  return vpc;
9553#undef FLD
9554}
9555
9556/* fbuglr: fbuglr$pack $FCCi_2,$hint */
9557
9558static SEM_PC
9559SEM_FN_NAME (frvbf,fbuglr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9560{
9561#define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9562  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9563  int UNUSED written = 0;
9564  IADDR UNUSED pc = abuf->addr;
9565  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9566
9567{
9568frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9569if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
9570  {
9571    USI opval = GET_H_SPR (((UINT) 272));
9572    sim_queue_pc_write (current_cpu, opval);
9573    written |= (1 << 3);
9574    TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9575  }
9576}
9577}
9578
9579  abuf->written = written;
9580  return vpc;
9581#undef FLD
9582}
9583
9584/* fblelr: fblelr$pack $FCCi_2,$hint */
9585
9586static SEM_PC
9587SEM_FN_NAME (frvbf,fblelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9588{
9589#define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9590  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9591  int UNUSED written = 0;
9592  IADDR UNUSED pc = abuf->addr;
9593  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9594
9595{
9596frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9597if (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)))) {
9598  {
9599    USI opval = GET_H_SPR (((UINT) 272));
9600    sim_queue_pc_write (current_cpu, opval);
9601    written |= (1 << 3);
9602    TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9603  }
9604}
9605}
9606
9607  abuf->written = written;
9608  return vpc;
9609#undef FLD
9610}
9611
9612/* fbgtlr: fbgtlr$pack $FCCi_2,$hint */
9613
9614static SEM_PC
9615SEM_FN_NAME (frvbf,fbgtlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9616{
9617#define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9618  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9619  int UNUSED written = 0;
9620  IADDR UNUSED pc = abuf->addr;
9621  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9622
9623{
9624frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9625if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1))) {
9626  {
9627    USI opval = GET_H_SPR (((UINT) 272));
9628    sim_queue_pc_write (current_cpu, opval);
9629    written |= (1 << 3);
9630    TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9631  }
9632}
9633}
9634
9635  abuf->written = written;
9636  return vpc;
9637#undef FLD
9638}
9639
9640/* fbulelr: fbulelr$pack $FCCi_2,$hint */
9641
9642static SEM_PC
9643SEM_FN_NAME (frvbf,fbulelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9644{
9645#define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9646  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9647  int UNUSED written = 0;
9648  IADDR UNUSED pc = abuf->addr;
9649  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9650
9651{
9652frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9653if (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))))) {
9654  {
9655    USI opval = GET_H_SPR (((UINT) 272));
9656    sim_queue_pc_write (current_cpu, opval);
9657    written |= (1 << 3);
9658    TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9659  }
9660}
9661}
9662
9663  abuf->written = written;
9664  return vpc;
9665#undef FLD
9666}
9667
9668/* fbulr: fbulr$pack $FCCi_2,$hint */
9669
9670static SEM_PC
9671SEM_FN_NAME (frvbf,fbulr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9672{
9673#define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9674  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9675  int UNUSED written = 0;
9676  IADDR UNUSED pc = abuf->addr;
9677  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9678
9679{
9680frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9681if (TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1))) {
9682  {
9683    USI opval = GET_H_SPR (((UINT) 272));
9684    sim_queue_pc_write (current_cpu, opval);
9685    written |= (1 << 3);
9686    TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9687  }
9688}
9689}
9690
9691  abuf->written = written;
9692  return vpc;
9693#undef FLD
9694}
9695
9696/* fbolr: fbolr$pack $FCCi_2,$hint */
9697
9698static SEM_PC
9699SEM_FN_NAME (frvbf,fbolr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9700{
9701#define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9702  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9703  int UNUSED written = 0;
9704  IADDR UNUSED pc = abuf->addr;
9705  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9706
9707{
9708frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9709if (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))))) {
9710  {
9711    USI opval = GET_H_SPR (((UINT) 272));
9712    sim_queue_pc_write (current_cpu, opval);
9713    written |= (1 << 3);
9714    TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9715  }
9716}
9717}
9718
9719  abuf->written = written;
9720  return vpc;
9721#undef FLD
9722}
9723
9724/* bcralr: bcralr$pack $ccond$hint_taken */
9725
9726static SEM_PC
9727SEM_FN_NAME (frvbf,bcralr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9728{
9729#define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9730  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9731  int UNUSED written = 0;
9732  IADDR UNUSED pc = abuf->addr;
9733  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9734
9735{
9736frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9737{
9738  SI tmp_tmp;
9739  tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
9740  {
9741    USI opval = tmp_tmp;
9742    sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
9743    TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
9744  }
9745if (EQSI (FLD (f_ccond), 0)) {
9746if (NESI (tmp_tmp, 0)) {
9747  {
9748    USI opval = GET_H_SPR (((UINT) 272));
9749    sim_queue_pc_write (current_cpu, opval);
9750    written |= (1 << 5);
9751    TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9752  }
9753}
9754} else {
9755if (EQSI (tmp_tmp, 0)) {
9756  {
9757    USI opval = GET_H_SPR (((UINT) 272));
9758    sim_queue_pc_write (current_cpu, opval);
9759    written |= (1 << 5);
9760    TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9761  }
9762}
9763}
9764}
9765}
9766
9767  abuf->written = written;
9768  return vpc;
9769#undef FLD
9770}
9771
9772/* bcnolr: bcnolr$pack$hint_not_taken */
9773
9774static SEM_PC
9775SEM_FN_NAME (frvbf,bcnolr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9776{
9777#define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9778  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9779  int UNUSED written = 0;
9780  IADDR UNUSED pc = abuf->addr;
9781  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9782
9783{
9784frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9785{
9786  SI tmp_tmp;
9787  tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
9788  {
9789    USI opval = tmp_tmp;
9790    sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
9791    TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
9792  }
9793((void) 0); /*nop*/
9794}
9795}
9796
9797  return vpc;
9798#undef FLD
9799}
9800
9801/* bceqlr: bceqlr$pack $ICCi_2,$ccond,$hint */
9802
9803static SEM_PC
9804SEM_FN_NAME (frvbf,bceqlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9805{
9806#define FLD(f) abuf->fields.sfmt_bceqlr.f
9807  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9808  int UNUSED written = 0;
9809  IADDR UNUSED pc = abuf->addr;
9810  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9811
9812{
9813frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9814{
9815  SI tmp_tmp;
9816  tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
9817  {
9818    USI opval = tmp_tmp;
9819    sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
9820    TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
9821  }
9822if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2))) {
9823if (EQSI (FLD (f_ccond), 0)) {
9824if (NESI (tmp_tmp, 0)) {
9825  {
9826    USI opval = GET_H_SPR (((UINT) 272));
9827    sim_queue_pc_write (current_cpu, opval);
9828    written |= (1 << 6);
9829    TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9830  }
9831}
9832} else {
9833if (EQSI (tmp_tmp, 0)) {
9834  {
9835    USI opval = GET_H_SPR (((UINT) 272));
9836    sim_queue_pc_write (current_cpu, opval);
9837    written |= (1 << 6);
9838    TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9839  }
9840}
9841}
9842}
9843}
9844}
9845
9846  abuf->written = written;
9847  return vpc;
9848#undef FLD
9849}
9850
9851/* bcnelr: bcnelr$pack $ICCi_2,$ccond,$hint */
9852
9853static SEM_PC
9854SEM_FN_NAME (frvbf,bcnelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9855{
9856#define FLD(f) abuf->fields.sfmt_bceqlr.f
9857  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9858  int UNUSED written = 0;
9859  IADDR UNUSED pc = abuf->addr;
9860  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9861
9862{
9863frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9864{
9865  SI tmp_tmp;
9866  tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
9867  {
9868    USI opval = tmp_tmp;
9869    sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
9870    TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
9871  }
9872if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)))) {
9873if (EQSI (FLD (f_ccond), 0)) {
9874if (NESI (tmp_tmp, 0)) {
9875  {
9876    USI opval = GET_H_SPR (((UINT) 272));
9877    sim_queue_pc_write (current_cpu, opval);
9878    written |= (1 << 6);
9879    TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9880  }
9881}
9882} else {
9883if (EQSI (tmp_tmp, 0)) {
9884  {
9885    USI opval = GET_H_SPR (((UINT) 272));
9886    sim_queue_pc_write (current_cpu, opval);
9887    written |= (1 << 6);
9888    TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9889  }
9890}
9891}
9892}
9893}
9894}
9895
9896  abuf->written = written;
9897  return vpc;
9898#undef FLD
9899}
9900
9901/* bclelr: bclelr$pack $ICCi_2,$ccond,$hint */
9902
9903static SEM_PC
9904SEM_FN_NAME (frvbf,bclelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9905{
9906#define FLD(f) abuf->fields.sfmt_bceqlr.f
9907  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9908  int UNUSED written = 0;
9909  IADDR UNUSED pc = abuf->addr;
9910  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9911
9912{
9913frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9914{
9915  SI tmp_tmp;
9916  tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
9917  {
9918    USI opval = tmp_tmp;
9919    sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
9920    TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
9921  }
9922if (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))))) {
9923if (EQSI (FLD (f_ccond), 0)) {
9924if (NESI (tmp_tmp, 0)) {
9925  {
9926    USI opval = GET_H_SPR (((UINT) 272));
9927    sim_queue_pc_write (current_cpu, opval);
9928    written |= (1 << 6);
9929    TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9930  }
9931}
9932} else {
9933if (EQSI (tmp_tmp, 0)) {
9934  {
9935    USI opval = GET_H_SPR (((UINT) 272));
9936    sim_queue_pc_write (current_cpu, opval);
9937    written |= (1 << 6);
9938    TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9939  }
9940}
9941}
9942}
9943}
9944}
9945
9946  abuf->written = written;
9947  return vpc;
9948#undef FLD
9949}
9950
9951/* bcgtlr: bcgtlr$pack $ICCi_2,$ccond,$hint */
9952
9953static SEM_PC
9954SEM_FN_NAME (frvbf,bcgtlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9955{
9956#define FLD(f) abuf->fields.sfmt_bceqlr.f
9957  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9958  int UNUSED written = 0;
9959  IADDR UNUSED pc = abuf->addr;
9960  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9961
9962{
9963frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9964{
9965  SI tmp_tmp;
9966  tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
9967  {
9968    USI opval = tmp_tmp;
9969    sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
9970    TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
9971  }
9972if (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)))))) {
9973if (EQSI (FLD (f_ccond), 0)) {
9974if (NESI (tmp_tmp, 0)) {
9975  {
9976    USI opval = GET_H_SPR (((UINT) 272));
9977    sim_queue_pc_write (current_cpu, opval);
9978    written |= (1 << 6);
9979    TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9980  }
9981}
9982} else {
9983if (EQSI (tmp_tmp, 0)) {
9984  {
9985    USI opval = GET_H_SPR (((UINT) 272));
9986    sim_queue_pc_write (current_cpu, opval);
9987    written |= (1 << 6);
9988    TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9989  }
9990}
9991}
9992}
9993}
9994}
9995
9996  abuf->written = written;
9997  return vpc;
9998#undef FLD
9999}
10000
10001/* bcltlr: bcltlr$pack $ICCi_2,$ccond,$hint */
10002
10003static SEM_PC
10004SEM_FN_NAME (frvbf,bcltlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10005{
10006#define FLD(f) abuf->fields.sfmt_bceqlr.f
10007  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10008  int UNUSED written = 0;
10009  IADDR UNUSED pc = abuf->addr;
10010  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10011
10012{
10013frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10014{
10015  SI tmp_tmp;
10016  tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10017  {
10018    USI opval = tmp_tmp;
10019    sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10020    TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10021  }
10022if (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)))) {
10023if (EQSI (FLD (f_ccond), 0)) {
10024if (NESI (tmp_tmp, 0)) {
10025  {
10026    USI opval = GET_H_SPR (((UINT) 272));
10027    sim_queue_pc_write (current_cpu, opval);
10028    written |= (1 << 6);
10029    TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10030  }
10031}
10032} else {
10033if (EQSI (tmp_tmp, 0)) {
10034  {
10035    USI opval = GET_H_SPR (((UINT) 272));
10036    sim_queue_pc_write (current_cpu, opval);
10037    written |= (1 << 6);
10038    TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10039  }
10040}
10041}
10042}
10043}
10044}
10045
10046  abuf->written = written;
10047  return vpc;
10048#undef FLD
10049}
10050
10051/* bcgelr: bcgelr$pack $ICCi_2,$ccond,$hint */
10052
10053static SEM_PC
10054SEM_FN_NAME (frvbf,bcgelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10055{
10056#define FLD(f) abuf->fields.sfmt_bceqlr.f
10057  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10058  int UNUSED written = 0;
10059  IADDR UNUSED pc = abuf->addr;
10060  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10061
10062{
10063frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10064{
10065  SI tmp_tmp;
10066  tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10067  {
10068    USI opval = tmp_tmp;
10069    sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10070    TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10071  }
10072if (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))))) {
10073if (EQSI (FLD (f_ccond), 0)) {
10074if (NESI (tmp_tmp, 0)) {
10075  {
10076    USI opval = GET_H_SPR (((UINT) 272));
10077    sim_queue_pc_write (current_cpu, opval);
10078    written |= (1 << 6);
10079    TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10080  }
10081}
10082} else {
10083if (EQSI (tmp_tmp, 0)) {
10084  {
10085    USI opval = GET_H_SPR (((UINT) 272));
10086    sim_queue_pc_write (current_cpu, opval);
10087    written |= (1 << 6);
10088    TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10089  }
10090}
10091}
10092}
10093}
10094}
10095
10096  abuf->written = written;
10097  return vpc;
10098#undef FLD
10099}
10100
10101/* bclslr: bclslr$pack $ICCi_2,$ccond,$hint */
10102
10103static SEM_PC
10104SEM_FN_NAME (frvbf,bclslr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10105{
10106#define FLD(f) abuf->fields.sfmt_bceqlr.f
10107  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10108  int UNUSED written = 0;
10109  IADDR UNUSED pc = abuf->addr;
10110  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10111
10112{
10113frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10114{
10115  SI tmp_tmp;
10116  tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10117  {
10118    USI opval = tmp_tmp;
10119    sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10120    TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10121  }
10122if (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)))) {
10123if (EQSI (FLD (f_ccond), 0)) {
10124if (NESI (tmp_tmp, 0)) {
10125  {
10126    USI opval = GET_H_SPR (((UINT) 272));
10127    sim_queue_pc_write (current_cpu, opval);
10128    written |= (1 << 6);
10129    TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10130  }
10131}
10132} else {
10133if (EQSI (tmp_tmp, 0)) {
10134  {
10135    USI opval = GET_H_SPR (((UINT) 272));
10136    sim_queue_pc_write (current_cpu, opval);
10137    written |= (1 << 6);
10138    TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10139  }
10140}
10141}
10142}
10143}
10144}
10145
10146  abuf->written = written;
10147  return vpc;
10148#undef FLD
10149}
10150
10151/* bchilr: bchilr$pack $ICCi_2,$ccond,$hint */
10152
10153static SEM_PC
10154SEM_FN_NAME (frvbf,bchilr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10155{
10156#define FLD(f) abuf->fields.sfmt_bceqlr.f
10157  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10158  int UNUSED written = 0;
10159  IADDR UNUSED pc = abuf->addr;
10160  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10161
10162{
10163frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10164{
10165  SI tmp_tmp;
10166  tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10167  {
10168    USI opval = tmp_tmp;
10169    sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10170    TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10171  }
10172if (NOTBI (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2))))) {
10173if (EQSI (FLD (f_ccond), 0)) {
10174if (NESI (tmp_tmp, 0)) {
10175  {
10176    USI opval = GET_H_SPR (((UINT) 272));
10177    sim_queue_pc_write (current_cpu, opval);
10178    written |= (1 << 6);
10179    TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10180  }
10181}
10182} else {
10183if (EQSI (tmp_tmp, 0)) {
10184  {
10185    USI opval = GET_H_SPR (((UINT) 272));
10186    sim_queue_pc_write (current_cpu, opval);
10187    written |= (1 << 6);
10188    TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10189  }
10190}
10191}
10192}
10193}
10194}
10195
10196  abuf->written = written;
10197  return vpc;
10198#undef FLD
10199}
10200
10201/* bcclr: bcclr$pack $ICCi_2,$ccond,$hint */
10202
10203static SEM_PC
10204SEM_FN_NAME (frvbf,bcclr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10205{
10206#define FLD(f) abuf->fields.sfmt_bceqlr.f
10207  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10208  int UNUSED written = 0;
10209  IADDR UNUSED pc = abuf->addr;
10210  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10211
10212{
10213frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10214{
10215  SI tmp_tmp;
10216  tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10217  {
10218    USI opval = tmp_tmp;
10219    sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10220    TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10221  }
10222if (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1))) {
10223if (EQSI (FLD (f_ccond), 0)) {
10224if (NESI (tmp_tmp, 0)) {
10225  {
10226    USI opval = GET_H_SPR (((UINT) 272));
10227    sim_queue_pc_write (current_cpu, opval);
10228    written |= (1 << 6);
10229    TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10230  }
10231}
10232} else {
10233if (EQSI (tmp_tmp, 0)) {
10234  {
10235    USI opval = GET_H_SPR (((UINT) 272));
10236    sim_queue_pc_write (current_cpu, opval);
10237    written |= (1 << 6);
10238    TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10239  }
10240}
10241}
10242}
10243}
10244}
10245
10246  abuf->written = written;
10247  return vpc;
10248#undef FLD
10249}
10250
10251/* bcnclr: bcnclr$pack $ICCi_2,$ccond,$hint */
10252
10253static SEM_PC
10254SEM_FN_NAME (frvbf,bcnclr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10255{
10256#define FLD(f) abuf->fields.sfmt_bceqlr.f
10257  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10258  int UNUSED written = 0;
10259  IADDR UNUSED pc = abuf->addr;
10260  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10261
10262{
10263frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10264{
10265  SI tmp_tmp;
10266  tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10267  {
10268    USI opval = tmp_tmp;
10269    sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10270    TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10271  }
10272if (NOTBI (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)))) {
10273if (EQSI (FLD (f_ccond), 0)) {
10274if (NESI (tmp_tmp, 0)) {
10275  {
10276    USI opval = GET_H_SPR (((UINT) 272));
10277    sim_queue_pc_write (current_cpu, opval);
10278    written |= (1 << 6);
10279    TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10280  }
10281}
10282} else {
10283if (EQSI (tmp_tmp, 0)) {
10284  {
10285    USI opval = GET_H_SPR (((UINT) 272));
10286    sim_queue_pc_write (current_cpu, opval);
10287    written |= (1 << 6);
10288    TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10289  }
10290}
10291}
10292}
10293}
10294}
10295
10296  abuf->written = written;
10297  return vpc;
10298#undef FLD
10299}
10300
10301/* bcnlr: bcnlr$pack $ICCi_2,$ccond,$hint */
10302
10303static SEM_PC
10304SEM_FN_NAME (frvbf,bcnlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10305{
10306#define FLD(f) abuf->fields.sfmt_bceqlr.f
10307  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10308  int UNUSED written = 0;
10309  IADDR UNUSED pc = abuf->addr;
10310  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10311
10312{
10313frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10314{
10315  SI tmp_tmp;
10316  tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10317  {
10318    USI opval = tmp_tmp;
10319    sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10320    TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10321  }
10322if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3))) {
10323if (EQSI (FLD (f_ccond), 0)) {
10324if (NESI (tmp_tmp, 0)) {
10325  {
10326    USI opval = GET_H_SPR (((UINT) 272));
10327    sim_queue_pc_write (current_cpu, opval);
10328    written |= (1 << 6);
10329    TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10330  }
10331}
10332} else {
10333if (EQSI (tmp_tmp, 0)) {
10334  {
10335    USI opval = GET_H_SPR (((UINT) 272));
10336    sim_queue_pc_write (current_cpu, opval);
10337    written |= (1 << 6);
10338    TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10339  }
10340}
10341}
10342}
10343}
10344}
10345
10346  abuf->written = written;
10347  return vpc;
10348#undef FLD
10349}
10350
10351/* bcplr: bcplr$pack $ICCi_2,$ccond,$hint */
10352
10353static SEM_PC
10354SEM_FN_NAME (frvbf,bcplr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10355{
10356#define FLD(f) abuf->fields.sfmt_bceqlr.f
10357  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10358  int UNUSED written = 0;
10359  IADDR UNUSED pc = abuf->addr;
10360  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10361
10362{
10363frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10364{
10365  SI tmp_tmp;
10366  tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10367  {
10368    USI opval = tmp_tmp;
10369    sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10370    TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10371  }
10372if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3)))) {
10373if (EQSI (FLD (f_ccond), 0)) {
10374if (NESI (tmp_tmp, 0)) {
10375  {
10376    USI opval = GET_H_SPR (((UINT) 272));
10377    sim_queue_pc_write (current_cpu, opval);
10378    written |= (1 << 6);
10379    TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10380  }
10381}
10382} else {
10383if (EQSI (tmp_tmp, 0)) {
10384  {
10385    USI opval = GET_H_SPR (((UINT) 272));
10386    sim_queue_pc_write (current_cpu, opval);
10387    written |= (1 << 6);
10388    TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10389  }
10390}
10391}
10392}
10393}
10394}
10395
10396  abuf->written = written;
10397  return vpc;
10398#undef FLD
10399}
10400
10401/* bcvlr: bcvlr$pack $ICCi_2,$ccond,$hint */
10402
10403static SEM_PC
10404SEM_FN_NAME (frvbf,bcvlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10405{
10406#define FLD(f) abuf->fields.sfmt_bceqlr.f
10407  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10408  int UNUSED written = 0;
10409  IADDR UNUSED pc = abuf->addr;
10410  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10411
10412{
10413frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10414{
10415  SI tmp_tmp;
10416  tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10417  {
10418    USI opval = tmp_tmp;
10419    sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10420    TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10421  }
10422if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1))) {
10423if (EQSI (FLD (f_ccond), 0)) {
10424if (NESI (tmp_tmp, 0)) {
10425  {
10426    USI opval = GET_H_SPR (((UINT) 272));
10427    sim_queue_pc_write (current_cpu, opval);
10428    written |= (1 << 6);
10429    TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10430  }
10431}
10432} else {
10433if (EQSI (tmp_tmp, 0)) {
10434  {
10435    USI opval = GET_H_SPR (((UINT) 272));
10436    sim_queue_pc_write (current_cpu, opval);
10437    written |= (1 << 6);
10438    TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10439  }
10440}
10441}
10442}
10443}
10444}
10445
10446  abuf->written = written;
10447  return vpc;
10448#undef FLD
10449}
10450
10451/* bcnvlr: bcnvlr$pack $ICCi_2,$ccond,$hint */
10452
10453static SEM_PC
10454SEM_FN_NAME (frvbf,bcnvlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10455{
10456#define FLD(f) abuf->fields.sfmt_bceqlr.f
10457  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10458  int UNUSED written = 0;
10459  IADDR UNUSED pc = abuf->addr;
10460  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10461
10462{
10463frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10464{
10465  SI tmp_tmp;
10466  tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10467  {
10468    USI opval = tmp_tmp;
10469    sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10470    TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10471  }
10472if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1)))) {
10473if (EQSI (FLD (f_ccond), 0)) {
10474if (NESI (tmp_tmp, 0)) {
10475  {
10476    USI opval = GET_H_SPR (((UINT) 272));
10477    sim_queue_pc_write (current_cpu, opval);
10478    written |= (1 << 6);
10479    TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10480  }
10481}
10482} else {
10483if (EQSI (tmp_tmp, 0)) {
10484  {
10485    USI opval = GET_H_SPR (((UINT) 272));
10486    sim_queue_pc_write (current_cpu, opval);
10487    written |= (1 << 6);
10488    TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10489  }
10490}
10491}
10492}
10493}
10494}
10495
10496  abuf->written = written;
10497  return vpc;
10498#undef FLD
10499}
10500
10501/* fcbralr: fcbralr$pack $ccond$hint_taken */
10502
10503static SEM_PC
10504SEM_FN_NAME (frvbf,fcbralr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10505{
10506#define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10507  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10508  int UNUSED written = 0;
10509  IADDR UNUSED pc = abuf->addr;
10510  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10511
10512{
10513frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10514{
10515  SI tmp_tmp;
10516  tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10517  {
10518    USI opval = tmp_tmp;
10519    sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10520    TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10521  }
10522if (EQSI (FLD (f_ccond), 0)) {
10523if (NESI (tmp_tmp, 0)) {
10524  {
10525    USI opval = GET_H_SPR (((UINT) 272));
10526    sim_queue_pc_write (current_cpu, opval);
10527    written |= (1 << 5);
10528    TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10529  }
10530}
10531} else {
10532if (EQSI (tmp_tmp, 0)) {
10533  {
10534    USI opval = GET_H_SPR (((UINT) 272));
10535    sim_queue_pc_write (current_cpu, opval);
10536    written |= (1 << 5);
10537    TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10538  }
10539}
10540}
10541}
10542}
10543
10544  abuf->written = written;
10545  return vpc;
10546#undef FLD
10547}
10548
10549/* fcbnolr: fcbnolr$pack$hint_not_taken */
10550
10551static SEM_PC
10552SEM_FN_NAME (frvbf,fcbnolr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10553{
10554#define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10555  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10556  int UNUSED written = 0;
10557  IADDR UNUSED pc = abuf->addr;
10558  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10559
10560{
10561frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10562{
10563  SI tmp_tmp;
10564  tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10565  {
10566    USI opval = tmp_tmp;
10567    sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10568    TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10569  }
10570((void) 0); /*nop*/
10571}
10572}
10573
10574  return vpc;
10575#undef FLD
10576}
10577
10578/* fcbeqlr: fcbeqlr$pack $FCCi_2,$ccond,$hint */
10579
10580static SEM_PC
10581SEM_FN_NAME (frvbf,fcbeqlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10582{
10583#define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10584  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10585  int UNUSED written = 0;
10586  IADDR UNUSED pc = abuf->addr;
10587  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10588
10589{
10590frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10591{
10592  SI tmp_tmp;
10593  tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10594  {
10595    USI opval = tmp_tmp;
10596    sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10597    TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10598  }
10599if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3))) {
10600if (EQSI (FLD (f_ccond), 0)) {
10601if (NESI (tmp_tmp, 0)) {
10602  {
10603    USI opval = GET_H_SPR (((UINT) 272));
10604    sim_queue_pc_write (current_cpu, opval);
10605    written |= (1 << 6);
10606    TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10607  }
10608}
10609} else {
10610if (EQSI (tmp_tmp, 0)) {
10611  {
10612    USI opval = GET_H_SPR (((UINT) 272));
10613    sim_queue_pc_write (current_cpu, opval);
10614    written |= (1 << 6);
10615    TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10616  }
10617}
10618}
10619}
10620}
10621}
10622
10623  abuf->written = written;
10624  return vpc;
10625#undef FLD
10626}
10627
10628/* fcbnelr: fcbnelr$pack $FCCi_2,$ccond,$hint */
10629
10630static SEM_PC
10631SEM_FN_NAME (frvbf,fcbnelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10632{
10633#define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10634  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10635  int UNUSED written = 0;
10636  IADDR UNUSED pc = abuf->addr;
10637  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10638
10639{
10640frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10641{
10642  SI tmp_tmp;
10643  tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10644  {
10645    USI opval = tmp_tmp;
10646    sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10647    TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10648  }
10649if (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))))) {
10650if (EQSI (FLD (f_ccond), 0)) {
10651if (NESI (tmp_tmp, 0)) {
10652  {
10653    USI opval = GET_H_SPR (((UINT) 272));
10654    sim_queue_pc_write (current_cpu, opval);
10655    written |= (1 << 6);
10656    TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10657  }
10658}
10659} else {
10660if (EQSI (tmp_tmp, 0)) {
10661  {
10662    USI opval = GET_H_SPR (((UINT) 272));
10663    sim_queue_pc_write (current_cpu, opval);
10664    written |= (1 << 6);
10665    TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10666  }
10667}
10668}
10669}
10670}
10671}
10672
10673  abuf->written = written;
10674  return vpc;
10675#undef FLD
10676}
10677
10678/* fcblglr: fcblglr$pack $FCCi_2,$ccond,$hint */
10679
10680static SEM_PC
10681SEM_FN_NAME (frvbf,fcblglr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10682{
10683#define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10684  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10685  int UNUSED written = 0;
10686  IADDR UNUSED pc = abuf->addr;
10687  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10688
10689{
10690frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10691{
10692  SI tmp_tmp;
10693  tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10694  {
10695    USI opval = tmp_tmp;
10696    sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10697    TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10698  }
10699if (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)))) {
10700if (EQSI (FLD (f_ccond), 0)) {
10701if (NESI (tmp_tmp, 0)) {
10702  {
10703    USI opval = GET_H_SPR (((UINT) 272));
10704    sim_queue_pc_write (current_cpu, opval);
10705    written |= (1 << 6);
10706    TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10707  }
10708}
10709} else {
10710if (EQSI (tmp_tmp, 0)) {
10711  {
10712    USI opval = GET_H_SPR (((UINT) 272));
10713    sim_queue_pc_write (current_cpu, opval);
10714    written |= (1 << 6);
10715    TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10716  }
10717}
10718}
10719}
10720}
10721}
10722
10723  abuf->written = written;
10724  return vpc;
10725#undef FLD
10726}
10727
10728/* fcbuelr: fcbuelr$pack $FCCi_2,$ccond,$hint */
10729
10730static SEM_PC
10731SEM_FN_NAME (frvbf,fcbuelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10732{
10733#define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10734  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10735  int UNUSED written = 0;
10736  IADDR UNUSED pc = abuf->addr;
10737  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10738
10739{
10740frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10741{
10742  SI tmp_tmp;
10743  tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10744  {
10745    USI opval = tmp_tmp;
10746    sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10747    TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10748  }
10749if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
10750if (EQSI (FLD (f_ccond), 0)) {
10751if (NESI (tmp_tmp, 0)) {
10752  {
10753    USI opval = GET_H_SPR (((UINT) 272));
10754    sim_queue_pc_write (current_cpu, opval);
10755    written |= (1 << 6);
10756    TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10757  }
10758}
10759} else {
10760if (EQSI (tmp_tmp, 0)) {
10761  {
10762    USI opval = GET_H_SPR (((UINT) 272));
10763    sim_queue_pc_write (current_cpu, opval);
10764    written |= (1 << 6);
10765    TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10766  }
10767}
10768}
10769}
10770}
10771}
10772
10773  abuf->written = written;
10774  return vpc;
10775#undef FLD
10776}
10777
10778/* fcbullr: fcbullr$pack $FCCi_2,$ccond,$hint */
10779
10780static SEM_PC
10781SEM_FN_NAME (frvbf,fcbullr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10782{
10783#define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10784  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10785  int UNUSED written = 0;
10786  IADDR UNUSED pc = abuf->addr;
10787  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10788
10789{
10790frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10791{
10792  SI tmp_tmp;
10793  tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10794  {
10795    USI opval = tmp_tmp;
10796    sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10797    TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10798  }
10799if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
10800if (EQSI (FLD (f_ccond), 0)) {
10801if (NESI (tmp_tmp, 0)) {
10802  {
10803    USI opval = GET_H_SPR (((UINT) 272));
10804    sim_queue_pc_write (current_cpu, opval);
10805    written |= (1 << 6);
10806    TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10807  }
10808}
10809} else {
10810if (EQSI (tmp_tmp, 0)) {
10811  {
10812    USI opval = GET_H_SPR (((UINT) 272));
10813    sim_queue_pc_write (current_cpu, opval);
10814    written |= (1 << 6);
10815    TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10816  }
10817}
10818}
10819}
10820}
10821}
10822
10823  abuf->written = written;
10824  return vpc;
10825#undef FLD
10826}
10827
10828/* fcbgelr: fcbgelr$pack $FCCi_2,$ccond,$hint */
10829
10830static SEM_PC
10831SEM_FN_NAME (frvbf,fcbgelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10832{
10833#define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10834  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10835  int UNUSED written = 0;
10836  IADDR UNUSED pc = abuf->addr;
10837  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10838
10839{
10840frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10841{
10842  SI tmp_tmp;
10843  tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10844  {
10845    USI opval = tmp_tmp;
10846    sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10847    TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10848  }
10849if (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)))) {
10850if (EQSI (FLD (f_ccond), 0)) {
10851if (NESI (tmp_tmp, 0)) {
10852  {
10853    USI opval = GET_H_SPR (((UINT) 272));
10854    sim_queue_pc_write (current_cpu, opval);
10855    written |= (1 << 6);
10856    TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10857  }
10858}
10859} else {
10860if (EQSI (tmp_tmp, 0)) {
10861  {
10862    USI opval = GET_H_SPR (((UINT) 272));
10863    sim_queue_pc_write (current_cpu, opval);
10864    written |= (1 << 6);
10865    TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10866  }
10867}
10868}
10869}
10870}
10871}
10872
10873  abuf->written = written;
10874  return vpc;
10875#undef FLD
10876}
10877
10878/* fcbltlr: fcbltlr$pack $FCCi_2,$ccond,$hint */
10879
10880static SEM_PC
10881SEM_FN_NAME (frvbf,fcbltlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10882{
10883#define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10884  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10885  int UNUSED written = 0;
10886  IADDR UNUSED pc = abuf->addr;
10887  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10888
10889{
10890frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10891{
10892  SI tmp_tmp;
10893  tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10894  {
10895    USI opval = tmp_tmp;
10896    sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10897    TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10898  }
10899if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2))) {
10900if (EQSI (FLD (f_ccond), 0)) {
10901if (NESI (tmp_tmp, 0)) {
10902  {
10903    USI opval = GET_H_SPR (((UINT) 272));
10904    sim_queue_pc_write (current_cpu, opval);
10905    written |= (1 << 6);
10906    TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10907  }
10908}
10909} else {
10910if (EQSI (tmp_tmp, 0)) {
10911  {
10912    USI opval = GET_H_SPR (((UINT) 272));
10913    sim_queue_pc_write (current_cpu, opval);
10914    written |= (1 << 6);
10915    TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10916  }
10917}
10918}
10919}
10920}
10921}
10922
10923  abuf->written = written;
10924  return vpc;
10925#undef FLD
10926}
10927
10928/* fcbugelr: fcbugelr$pack $FCCi_2,$ccond,$hint */
10929
10930static SEM_PC
10931SEM_FN_NAME (frvbf,fcbugelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10932{
10933#define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10934  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10935  int UNUSED written = 0;
10936  IADDR UNUSED pc = abuf->addr;
10937  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10938
10939{
10940frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10941{
10942  SI tmp_tmp;
10943  tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10944  {
10945    USI opval = tmp_tmp;
10946    sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10947    TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10948  }
10949if (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))))) {
10950if (EQSI (FLD (f_ccond), 0)) {
10951if (NESI (tmp_tmp, 0)) {
10952  {
10953    USI opval = GET_H_SPR (((UINT) 272));
10954    sim_queue_pc_write (current_cpu, opval);
10955    written |= (1 << 6);
10956    TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10957  }
10958}
10959} else {
10960if (EQSI (tmp_tmp, 0)) {
10961  {
10962    USI opval = GET_H_SPR (((UINT) 272));
10963    sim_queue_pc_write (current_cpu, opval);
10964    written |= (1 << 6);
10965    TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10966  }
10967}
10968}
10969}
10970}
10971}
10972
10973  abuf->written = written;
10974  return vpc;
10975#undef FLD
10976}
10977
10978/* fcbuglr: fcbuglr$pack $FCCi_2,$ccond,$hint */
10979
10980static SEM_PC
10981SEM_FN_NAME (frvbf,fcbuglr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10982{
10983#define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10984  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10985  int UNUSED written = 0;
10986  IADDR UNUSED pc = abuf->addr;
10987  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10988
10989{
10990frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10991{
10992  SI tmp_tmp;
10993  tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10994  {
10995    USI opval = tmp_tmp;
10996    sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10997    TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10998  }
10999if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
11000if (EQSI (FLD (f_ccond), 0)) {
11001if (NESI (tmp_tmp, 0)) {
11002  {
11003    USI opval = GET_H_SPR (((UINT) 272));
11004    sim_queue_pc_write (current_cpu, opval);
11005    written |= (1 << 6);
11006    TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11007  }
11008}
11009} else {
11010if (EQSI (tmp_tmp, 0)) {
11011  {
11012    USI opval = GET_H_SPR (((UINT) 272));
11013    sim_queue_pc_write (current_cpu, opval);
11014    written |= (1 << 6);
11015    TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11016  }
11017}
11018}
11019}
11020}
11021}
11022
11023  abuf->written = written;
11024  return vpc;
11025#undef FLD
11026}
11027
11028/* fcblelr: fcblelr$pack $FCCi_2,$ccond,$hint */
11029
11030static SEM_PC
11031SEM_FN_NAME (frvbf,fcblelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11032{
11033#define FLD(f) abuf->fields.sfmt_fcbeqlr.f
11034  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11035  int UNUSED written = 0;
11036  IADDR UNUSED pc = abuf->addr;
11037  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11038
11039{
11040frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
11041{
11042  SI tmp_tmp;
11043  tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
11044  {
11045    USI opval = tmp_tmp;
11046    sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
11047    TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
11048  }
11049if (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)))) {
11050if (EQSI (FLD (f_ccond), 0)) {
11051if (NESI (tmp_tmp, 0)) {
11052  {
11053    USI opval = GET_H_SPR (((UINT) 272));
11054    sim_queue_pc_write (current_cpu, opval);
11055    written |= (1 << 6);
11056    TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11057  }
11058}
11059} else {
11060if (EQSI (tmp_tmp, 0)) {
11061  {
11062    USI opval = GET_H_SPR (((UINT) 272));
11063    sim_queue_pc_write (current_cpu, opval);
11064    written |= (1 << 6);
11065    TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11066  }
11067}
11068}
11069}
11070}
11071}
11072
11073  abuf->written = written;
11074  return vpc;
11075#undef FLD
11076}
11077
11078/* fcbgtlr: fcbgtlr$pack $FCCi_2,$ccond,$hint */
11079
11080static SEM_PC
11081SEM_FN_NAME (frvbf,fcbgtlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11082{
11083#define FLD(f) abuf->fields.sfmt_fcbeqlr.f
11084  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11085  int UNUSED written = 0;
11086  IADDR UNUSED pc = abuf->addr;
11087  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11088
11089{
11090frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
11091{
11092  SI tmp_tmp;
11093  tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
11094  {
11095    USI opval = tmp_tmp;
11096    sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
11097    TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
11098  }
11099if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1))) {
11100if (EQSI (FLD (f_ccond), 0)) {
11101if (NESI (tmp_tmp, 0)) {
11102  {
11103    USI opval = GET_H_SPR (((UINT) 272));
11104    sim_queue_pc_write (current_cpu, opval);
11105    written |= (1 << 6);
11106    TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11107  }
11108}
11109} else {
11110if (EQSI (tmp_tmp, 0)) {
11111  {
11112    USI opval = GET_H_SPR (((UINT) 272));
11113    sim_queue_pc_write (current_cpu, opval);
11114    written |= (1 << 6);
11115    TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11116  }
11117}
11118}
11119}
11120}
11121}
11122
11123  abuf->written = written;
11124  return vpc;
11125#undef FLD
11126}
11127
11128/* fcbulelr: fcbulelr$pack $FCCi_2,$ccond,$hint */
11129
11130static SEM_PC
11131SEM_FN_NAME (frvbf,fcbulelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11132{
11133#define FLD(f) abuf->fields.sfmt_fcbeqlr.f
11134  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11135  int UNUSED written = 0;
11136  IADDR UNUSED pc = abuf->addr;
11137  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11138
11139{
11140frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
11141{
11142  SI tmp_tmp;
11143  tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
11144  {
11145    USI opval = tmp_tmp;
11146    sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
11147    TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
11148  }
11149if (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))))) {
11150if (EQSI (FLD (f_ccond), 0)) {
11151if (NESI (tmp_tmp, 0)) {
11152  {
11153    USI opval = GET_H_SPR (((UINT) 272));
11154    sim_queue_pc_write (current_cpu, opval);
11155    written |= (1 << 6);
11156    TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11157  }
11158}
11159} else {
11160if (EQSI (tmp_tmp, 0)) {
11161  {
11162    USI opval = GET_H_SPR (((UINT) 272));
11163    sim_queue_pc_write (current_cpu, opval);
11164    written |= (1 << 6);
11165    TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11166  }
11167}
11168}
11169}
11170}
11171}
11172
11173  abuf->written = written;
11174  return vpc;
11175#undef FLD
11176}
11177
11178/* fcbulr: fcbulr$pack $FCCi_2,$ccond,$hint */
11179
11180static SEM_PC
11181SEM_FN_NAME (frvbf,fcbulr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11182{
11183#define FLD(f) abuf->fields.sfmt_fcbeqlr.f
11184  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11185  int UNUSED written = 0;
11186  IADDR UNUSED pc = abuf->addr;
11187  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11188
11189{
11190frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
11191{
11192  SI tmp_tmp;
11193  tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
11194  {
11195    USI opval = tmp_tmp;
11196    sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
11197    TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
11198  }
11199if (TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1))) {
11200if (EQSI (FLD (f_ccond), 0)) {
11201if (NESI (tmp_tmp, 0)) {
11202  {
11203    USI opval = GET_H_SPR (((UINT) 272));
11204    sim_queue_pc_write (current_cpu, opval);
11205    written |= (1 << 6);
11206    TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11207  }
11208}
11209} else {
11210if (EQSI (tmp_tmp, 0)) {
11211  {
11212    USI opval = GET_H_SPR (((UINT) 272));
11213    sim_queue_pc_write (current_cpu, opval);
11214    written |= (1 << 6);
11215    TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11216  }
11217}
11218}
11219}
11220}
11221}
11222
11223  abuf->written = written;
11224  return vpc;
11225#undef FLD
11226}
11227
11228/* fcbolr: fcbolr$pack $FCCi_2,$ccond,$hint */
11229
11230static SEM_PC
11231SEM_FN_NAME (frvbf,fcbolr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11232{
11233#define FLD(f) abuf->fields.sfmt_fcbeqlr.f
11234  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11235  int UNUSED written = 0;
11236  IADDR UNUSED pc = abuf->addr;
11237  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11238
11239{
11240frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
11241{
11242  SI tmp_tmp;
11243  tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
11244  {
11245    USI opval = tmp_tmp;
11246    sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
11247    TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
11248  }
11249if (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))))) {
11250if (EQSI (FLD (f_ccond), 0)) {
11251if (NESI (tmp_tmp, 0)) {
11252  {
11253    USI opval = GET_H_SPR (((UINT) 272));
11254    sim_queue_pc_write (current_cpu, opval);
11255    written |= (1 << 6);
11256    TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11257  }
11258}
11259} else {
11260if (EQSI (tmp_tmp, 0)) {
11261  {
11262    USI opval = GET_H_SPR (((UINT) 272));
11263    sim_queue_pc_write (current_cpu, opval);
11264    written |= (1 << 6);
11265    TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11266  }
11267}
11268}
11269}
11270}
11271}
11272
11273  abuf->written = written;
11274  return vpc;
11275#undef FLD
11276}
11277
11278/* jmpl: jmpl$pack @($GRi,$GRj) */
11279
11280static SEM_PC
11281SEM_FN_NAME (frvbf,jmpl) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11282{
11283#define FLD(f) abuf->fields.sfmt_cjmpl.f
11284  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11285  int UNUSED written = 0;
11286  IADDR UNUSED pc = abuf->addr;
11287  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11288
11289{
11290if (EQSI (FLD (f_LI), 1)) {
11291frvbf_set_write_next_vliw_addr_to_LR (current_cpu, 1);
11292}
11293  {
11294    USI opval = ANDSI (ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), 0xfffffffc);
11295    sim_queue_pc_write (current_cpu, opval);
11296    TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11297  }
11298frvbf_model_branch (current_cpu, pc, 2);
11299}
11300
11301  return vpc;
11302#undef FLD
11303}
11304
11305/* calll: calll$pack $callann($GRi,$GRj) */
11306
11307static SEM_PC
11308SEM_FN_NAME (frvbf,calll) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11309{
11310#define FLD(f) abuf->fields.sfmt_cjmpl.f
11311  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11312  int UNUSED written = 0;
11313  IADDR UNUSED pc = abuf->addr;
11314  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11315
11316{
11317if (EQSI (FLD (f_LI), 1)) {
11318frvbf_set_write_next_vliw_addr_to_LR (current_cpu, 1);
11319}
11320  {
11321    USI opval = ANDSI (ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), 0xfffffffc);
11322    sim_queue_pc_write (current_cpu, opval);
11323    TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11324  }
11325frvbf_model_branch (current_cpu, pc, 2);
11326}
11327
11328  return vpc;
11329#undef FLD
11330}
11331
11332/* jmpil: jmpil$pack @($GRi,$s12) */
11333
11334static SEM_PC
11335SEM_FN_NAME (frvbf,jmpil) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11336{
11337#define FLD(f) abuf->fields.sfmt_jmpil.f
11338  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11339  int UNUSED written = 0;
11340  IADDR UNUSED pc = abuf->addr;
11341  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11342
11343{
11344if (EQSI (FLD (f_LI), 1)) {
11345frvbf_set_write_next_vliw_addr_to_LR (current_cpu, 1);
11346}
11347  {
11348    USI opval = ANDSI (ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)), 0xfffffffc);
11349    sim_queue_pc_write (current_cpu, opval);
11350    TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11351  }
11352frvbf_model_branch (current_cpu, pc, 2);
11353}
11354
11355  return vpc;
11356#undef FLD
11357}
11358
11359/* callil: callil$pack @($GRi,$s12) */
11360
11361static SEM_PC
11362SEM_FN_NAME (frvbf,callil) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11363{
11364#define FLD(f) abuf->fields.sfmt_jmpil.f
11365  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11366  int UNUSED written = 0;
11367  IADDR UNUSED pc = abuf->addr;
11368  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11369
11370{
11371if (EQSI (FLD (f_LI), 1)) {
11372frvbf_set_write_next_vliw_addr_to_LR (current_cpu, 1);
11373}
11374  {
11375    USI opval = ANDSI (ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)), 0xfffffffc);
11376    sim_queue_pc_write (current_cpu, opval);
11377    TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11378  }
11379frvbf_model_branch (current_cpu, pc, 2);
11380}
11381
11382  return vpc;
11383#undef FLD
11384}
11385
11386/* call: call$pack $label24 */
11387
11388static SEM_PC
11389SEM_FN_NAME (frvbf,call) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11390{
11391#define FLD(f) abuf->fields.sfmt_call.f
11392  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11393  int UNUSED written = 0;
11394  IADDR UNUSED pc = abuf->addr;
11395  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11396
11397{
11398frvbf_set_write_next_vliw_addr_to_LR (current_cpu, 1);
11399  {
11400    USI opval = FLD (i_label24);
11401    sim_queue_pc_write (current_cpu, opval);
11402    TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11403  }
11404frvbf_model_branch (current_cpu, pc, 2);
11405}
11406
11407  return vpc;
11408#undef FLD
11409}
11410
11411/* rett: rett$pack $debug */
11412
11413static SEM_PC
11414SEM_FN_NAME (frvbf,rett) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11415{
11416#define FLD(f) abuf->fields.sfmt_rett.f
11417  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11418  int UNUSED written = 0;
11419  IADDR UNUSED pc = abuf->addr;
11420  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11421
11422{
11423  {
11424    USI opval = frv_rett (current_cpu, pc, FLD (f_debug));
11425    sim_queue_pc_write (current_cpu, opval);
11426    TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11427  }
11428frvbf_model_branch (current_cpu, pc, 2);
11429}
11430
11431  return vpc;
11432#undef FLD
11433}
11434
11435/* rei: rei$pack $eir */
11436
11437static SEM_PC
11438SEM_FN_NAME (frvbf,rei) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11439{
11440#define FLD(f) abuf->fields.fmt_empty.f
11441  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11442  int UNUSED written = 0;
11443  IADDR UNUSED pc = abuf->addr;
11444  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11445
11446((void) 0); /*nop*/
11447
11448  return vpc;
11449#undef FLD
11450}
11451
11452/* tra: tra$pack $GRi,$GRj */
11453
11454static SEM_PC
11455SEM_FN_NAME (frvbf,tra) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11456{
11457#define FLD(f) abuf->fields.sfmt_ftne.f
11458  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11459  int UNUSED written = 0;
11460  IADDR UNUSED pc = abuf->addr;
11461  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11462
11463{
11464; /*clobber*/
11465; /*clobber*/
11466; /*clobber*/
11467; /*clobber*/
11468if (NEBI (CPU (h_psr_esr), 0)) {
11469{
11470; /*clobber*/
11471; /*clobber*/
11472; /*clobber*/
11473; /*clobber*/
11474}
11475}
11476frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11477}
11478
11479  abuf->written = written;
11480  return vpc;
11481#undef FLD
11482}
11483
11484/* tno: tno$pack */
11485
11486static SEM_PC
11487SEM_FN_NAME (frvbf,tno) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11488{
11489#define FLD(f) abuf->fields.fmt_empty.f
11490  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11491  int UNUSED written = 0;
11492  IADDR UNUSED pc = abuf->addr;
11493  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11494
11495((void) 0); /*nop*/
11496
11497  return vpc;
11498#undef FLD
11499}
11500
11501/* teq: teq$pack $ICCi_2,$GRi,$GRj */
11502
11503static SEM_PC
11504SEM_FN_NAME (frvbf,teq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11505{
11506#define FLD(f) abuf->fields.sfmt_teq.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
11512if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2))) {
11513{
11514; /*clobber*/
11515; /*clobber*/
11516; /*clobber*/
11517; /*clobber*/
11518if (NEBI (CPU (h_psr_esr), 0)) {
11519{
11520; /*clobber*/
11521; /*clobber*/
11522; /*clobber*/
11523; /*clobber*/
11524}
11525}
11526frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11527}
11528}
11529
11530  abuf->written = written;
11531  return vpc;
11532#undef FLD
11533}
11534
11535/* tne: tne$pack $ICCi_2,$GRi,$GRj */
11536
11537static SEM_PC
11538SEM_FN_NAME (frvbf,tne) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11539{
11540#define FLD(f) abuf->fields.sfmt_teq.f
11541  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11542  int UNUSED written = 0;
11543  IADDR UNUSED pc = abuf->addr;
11544  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11545
11546if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)))) {
11547{
11548; /*clobber*/
11549; /*clobber*/
11550; /*clobber*/
11551; /*clobber*/
11552if (NEBI (CPU (h_psr_esr), 0)) {
11553{
11554; /*clobber*/
11555; /*clobber*/
11556; /*clobber*/
11557; /*clobber*/
11558}
11559}
11560frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11561}
11562}
11563
11564  abuf->written = written;
11565  return vpc;
11566#undef FLD
11567}
11568
11569/* tle: tle$pack $ICCi_2,$GRi,$GRj */
11570
11571static SEM_PC
11572SEM_FN_NAME (frvbf,tle) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11573{
11574#define FLD(f) abuf->fields.sfmt_teq.f
11575  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11576  int UNUSED written = 0;
11577  IADDR UNUSED pc = abuf->addr;
11578  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11579
11580if (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))))) {
11581{
11582; /*clobber*/
11583; /*clobber*/
11584; /*clobber*/
11585; /*clobber*/
11586if (NEBI (CPU (h_psr_esr), 0)) {
11587{
11588; /*clobber*/
11589; /*clobber*/
11590; /*clobber*/
11591; /*clobber*/
11592}
11593}
11594frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11595}
11596}
11597
11598  abuf->written = written;
11599  return vpc;
11600#undef FLD
11601}
11602
11603/* tgt: tgt$pack $ICCi_2,$GRi,$GRj */
11604
11605static SEM_PC
11606SEM_FN_NAME (frvbf,tgt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11607{
11608#define FLD(f) abuf->fields.sfmt_teq.f
11609  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11610  int UNUSED written = 0;
11611  IADDR UNUSED pc = abuf->addr;
11612  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11613
11614if (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)))))) {
11615{
11616; /*clobber*/
11617; /*clobber*/
11618; /*clobber*/
11619; /*clobber*/
11620if (NEBI (CPU (h_psr_esr), 0)) {
11621{
11622; /*clobber*/
11623; /*clobber*/
11624; /*clobber*/
11625; /*clobber*/
11626}
11627}
11628frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11629}
11630}
11631
11632  abuf->written = written;
11633  return vpc;
11634#undef FLD
11635}
11636
11637/* tlt: tlt$pack $ICCi_2,$GRi,$GRj */
11638
11639static SEM_PC
11640SEM_FN_NAME (frvbf,tlt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11641{
11642#define FLD(f) abuf->fields.sfmt_teq.f
11643  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11644  int UNUSED written = 0;
11645  IADDR UNUSED pc = abuf->addr;
11646  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11647
11648if (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)))) {
11649{
11650; /*clobber*/
11651; /*clobber*/
11652; /*clobber*/
11653; /*clobber*/
11654if (NEBI (CPU (h_psr_esr), 0)) {
11655{
11656; /*clobber*/
11657; /*clobber*/
11658; /*clobber*/
11659; /*clobber*/
11660}
11661}
11662frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11663}
11664}
11665
11666  abuf->written = written;
11667  return vpc;
11668#undef FLD
11669}
11670
11671/* tge: tge$pack $ICCi_2,$GRi,$GRj */
11672
11673static SEM_PC
11674SEM_FN_NAME (frvbf,tge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11675{
11676#define FLD(f) abuf->fields.sfmt_teq.f
11677  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11678  int UNUSED written = 0;
11679  IADDR UNUSED pc = abuf->addr;
11680  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11681
11682if (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))))) {
11683{
11684; /*clobber*/
11685; /*clobber*/
11686; /*clobber*/
11687; /*clobber*/
11688if (NEBI (CPU (h_psr_esr), 0)) {
11689{
11690; /*clobber*/
11691; /*clobber*/
11692; /*clobber*/
11693; /*clobber*/
11694}
11695}
11696frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11697}
11698}
11699
11700  abuf->written = written;
11701  return vpc;
11702#undef FLD
11703}
11704
11705/* tls: tls$pack $ICCi_2,$GRi,$GRj */
11706
11707static SEM_PC
11708SEM_FN_NAME (frvbf,tls) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11709{
11710#define FLD(f) abuf->fields.sfmt_teq.f
11711  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11712  int UNUSED written = 0;
11713  IADDR UNUSED pc = abuf->addr;
11714  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11715
11716if (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)))) {
11717{
11718; /*clobber*/
11719; /*clobber*/
11720; /*clobber*/
11721; /*clobber*/
11722if (NEBI (CPU (h_psr_esr), 0)) {
11723{
11724; /*clobber*/
11725; /*clobber*/
11726; /*clobber*/
11727; /*clobber*/
11728}
11729}
11730frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11731}
11732}
11733
11734  abuf->written = written;
11735  return vpc;
11736#undef FLD
11737}
11738
11739/* thi: thi$pack $ICCi_2,$GRi,$GRj */
11740
11741static SEM_PC
11742SEM_FN_NAME (frvbf,thi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11743{
11744#define FLD(f) abuf->fields.sfmt_teq.f
11745  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11746  int UNUSED written = 0;
11747  IADDR UNUSED pc = abuf->addr;
11748  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11749
11750if (NOTBI (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2))))) {
11751{
11752; /*clobber*/
11753; /*clobber*/
11754; /*clobber*/
11755; /*clobber*/
11756if (NEBI (CPU (h_psr_esr), 0)) {
11757{
11758; /*clobber*/
11759; /*clobber*/
11760; /*clobber*/
11761; /*clobber*/
11762}
11763}
11764frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11765}
11766}
11767
11768  abuf->written = written;
11769  return vpc;
11770#undef FLD
11771}
11772
11773/* tc: tc$pack $ICCi_2,$GRi,$GRj */
11774
11775static SEM_PC
11776SEM_FN_NAME (frvbf,tc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11777{
11778#define FLD(f) abuf->fields.sfmt_teq.f
11779  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11780  int UNUSED written = 0;
11781  IADDR UNUSED pc = abuf->addr;
11782  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11783
11784if (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1))) {
11785{
11786; /*clobber*/
11787; /*clobber*/
11788; /*clobber*/
11789; /*clobber*/
11790if (NEBI (CPU (h_psr_esr), 0)) {
11791{
11792; /*clobber*/
11793; /*clobber*/
11794; /*clobber*/
11795; /*clobber*/
11796}
11797}
11798frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11799}
11800}
11801
11802  abuf->written = written;
11803  return vpc;
11804#undef FLD
11805}
11806
11807/* tnc: tnc$pack $ICCi_2,$GRi,$GRj */
11808
11809static SEM_PC
11810SEM_FN_NAME (frvbf,tnc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11811{
11812#define FLD(f) abuf->fields.sfmt_teq.f
11813  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11814  int UNUSED written = 0;
11815  IADDR UNUSED pc = abuf->addr;
11816  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11817
11818if (NOTBI (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)))) {
11819{
11820; /*clobber*/
11821; /*clobber*/
11822; /*clobber*/
11823; /*clobber*/
11824if (NEBI (CPU (h_psr_esr), 0)) {
11825{
11826; /*clobber*/
11827; /*clobber*/
11828; /*clobber*/
11829; /*clobber*/
11830}
11831}
11832frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11833}
11834}
11835
11836  abuf->written = written;
11837  return vpc;
11838#undef FLD
11839}
11840
11841/* tn: tn$pack $ICCi_2,$GRi,$GRj */
11842
11843static SEM_PC
11844SEM_FN_NAME (frvbf,tn) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11845{
11846#define FLD(f) abuf->fields.sfmt_teq.f
11847  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11848  int UNUSED written = 0;
11849  IADDR UNUSED pc = abuf->addr;
11850  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11851
11852if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3))) {
11853{
11854; /*clobber*/
11855; /*clobber*/
11856; /*clobber*/
11857; /*clobber*/
11858if (NEBI (CPU (h_psr_esr), 0)) {
11859{
11860; /*clobber*/
11861; /*clobber*/
11862; /*clobber*/
11863; /*clobber*/
11864}
11865}
11866frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11867}
11868}
11869
11870  abuf->written = written;
11871  return vpc;
11872#undef FLD
11873}
11874
11875/* tp: tp$pack $ICCi_2,$GRi,$GRj */
11876
11877static SEM_PC
11878SEM_FN_NAME (frvbf,tp) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11879{
11880#define FLD(f) abuf->fields.sfmt_teq.f
11881  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11882  int UNUSED written = 0;
11883  IADDR UNUSED pc = abuf->addr;
11884  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11885
11886if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3)))) {
11887{
11888; /*clobber*/
11889; /*clobber*/
11890; /*clobber*/
11891; /*clobber*/
11892if (NEBI (CPU (h_psr_esr), 0)) {
11893{
11894; /*clobber*/
11895; /*clobber*/
11896; /*clobber*/
11897; /*clobber*/
11898}
11899}
11900frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11901}
11902}
11903
11904  abuf->written = written;
11905  return vpc;
11906#undef FLD
11907}
11908
11909/* tv: tv$pack $ICCi_2,$GRi,$GRj */
11910
11911static SEM_PC
11912SEM_FN_NAME (frvbf,tv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11913{
11914#define FLD(f) abuf->fields.sfmt_teq.f
11915  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11916  int UNUSED written = 0;
11917  IADDR UNUSED pc = abuf->addr;
11918  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11919
11920if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1))) {
11921{
11922; /*clobber*/
11923; /*clobber*/
11924; /*clobber*/
11925; /*clobber*/
11926if (NEBI (CPU (h_psr_esr), 0)) {
11927{
11928; /*clobber*/
11929; /*clobber*/
11930; /*clobber*/
11931; /*clobber*/
11932}
11933}
11934frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11935}
11936}
11937
11938  abuf->written = written;
11939  return vpc;
11940#undef FLD
11941}
11942
11943/* tnv: tnv$pack $ICCi_2,$GRi,$GRj */
11944
11945static SEM_PC
11946SEM_FN_NAME (frvbf,tnv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11947{
11948#define FLD(f) abuf->fields.sfmt_teq.f
11949  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11950  int UNUSED written = 0;
11951  IADDR UNUSED pc = abuf->addr;
11952  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11953
11954if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1)))) {
11955{
11956; /*clobber*/
11957; /*clobber*/
11958; /*clobber*/
11959; /*clobber*/
11960if (NEBI (CPU (h_psr_esr), 0)) {
11961{
11962; /*clobber*/
11963; /*clobber*/
11964; /*clobber*/
11965; /*clobber*/
11966}
11967}
11968frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11969}
11970}
11971
11972  abuf->written = written;
11973  return vpc;
11974#undef FLD
11975}
11976
11977/* ftra: ftra$pack $GRi,$GRj */
11978
11979static SEM_PC
11980SEM_FN_NAME (frvbf,ftra) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11981{
11982#define FLD(f) abuf->fields.sfmt_ftne.f
11983  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11984  int UNUSED written = 0;
11985  IADDR UNUSED pc = abuf->addr;
11986  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11987
11988{
11989; /*clobber*/
11990; /*clobber*/
11991; /*clobber*/
11992; /*clobber*/
11993if (NEBI (CPU (h_psr_esr), 0)) {
11994{
11995; /*clobber*/
11996; /*clobber*/
11997; /*clobber*/
11998; /*clobber*/
11999}
12000}
12001frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12002}
12003
12004  abuf->written = written;
12005  return vpc;
12006#undef FLD
12007}
12008
12009/* ftno: ftno$pack */
12010
12011static SEM_PC
12012SEM_FN_NAME (frvbf,ftno) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12013{
12014#define FLD(f) abuf->fields.fmt_empty.f
12015  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12016  int UNUSED written = 0;
12017  IADDR UNUSED pc = abuf->addr;
12018  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12019
12020((void) 0); /*nop*/
12021
12022  return vpc;
12023#undef FLD
12024}
12025
12026/* ftne: ftne$pack $FCCi_2,$GRi,$GRj */
12027
12028static SEM_PC
12029SEM_FN_NAME (frvbf,ftne) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12030{
12031#define FLD(f) abuf->fields.sfmt_ftne.f
12032  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12033  int UNUSED written = 0;
12034  IADDR UNUSED pc = abuf->addr;
12035  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12036
12037if (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))))) {
12038{
12039; /*clobber*/
12040; /*clobber*/
12041; /*clobber*/
12042; /*clobber*/
12043if (NEBI (CPU (h_psr_esr), 0)) {
12044{
12045; /*clobber*/
12046; /*clobber*/
12047; /*clobber*/
12048; /*clobber*/
12049}
12050}
12051frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12052}
12053}
12054
12055  abuf->written = written;
12056  return vpc;
12057#undef FLD
12058}
12059
12060/* fteq: fteq$pack $FCCi_2,$GRi,$GRj */
12061
12062static SEM_PC
12063SEM_FN_NAME (frvbf,fteq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12064{
12065#define FLD(f) abuf->fields.sfmt_ftne.f
12066  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12067  int UNUSED written = 0;
12068  IADDR UNUSED pc = abuf->addr;
12069  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12070
12071if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3))) {
12072{
12073; /*clobber*/
12074; /*clobber*/
12075; /*clobber*/
12076; /*clobber*/
12077if (NEBI (CPU (h_psr_esr), 0)) {
12078{
12079; /*clobber*/
12080; /*clobber*/
12081; /*clobber*/
12082; /*clobber*/
12083}
12084}
12085frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12086}
12087}
12088
12089  abuf->written = written;
12090  return vpc;
12091#undef FLD
12092}
12093
12094/* ftlg: ftlg$pack $FCCi_2,$GRi,$GRj */
12095
12096static SEM_PC
12097SEM_FN_NAME (frvbf,ftlg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12098{
12099#define FLD(f) abuf->fields.sfmt_ftne.f
12100  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12101  int UNUSED written = 0;
12102  IADDR UNUSED pc = abuf->addr;
12103  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12104
12105if (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)))) {
12106{
12107; /*clobber*/
12108; /*clobber*/
12109; /*clobber*/
12110; /*clobber*/
12111if (NEBI (CPU (h_psr_esr), 0)) {
12112{
12113; /*clobber*/
12114; /*clobber*/
12115; /*clobber*/
12116; /*clobber*/
12117}
12118}
12119frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12120}
12121}
12122
12123  abuf->written = written;
12124  return vpc;
12125#undef FLD
12126}
12127
12128/* ftue: ftue$pack $FCCi_2,$GRi,$GRj */
12129
12130static SEM_PC
12131SEM_FN_NAME (frvbf,ftue) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12132{
12133#define FLD(f) abuf->fields.sfmt_ftne.f
12134  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12135  int UNUSED written = 0;
12136  IADDR UNUSED pc = abuf->addr;
12137  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12138
12139if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
12140{
12141; /*clobber*/
12142; /*clobber*/
12143; /*clobber*/
12144; /*clobber*/
12145if (NEBI (CPU (h_psr_esr), 0)) {
12146{
12147; /*clobber*/
12148; /*clobber*/
12149; /*clobber*/
12150; /*clobber*/
12151}
12152}
12153frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12154}
12155}
12156
12157  abuf->written = written;
12158  return vpc;
12159#undef FLD
12160}
12161
12162/* ftul: ftul$pack $FCCi_2,$GRi,$GRj */
12163
12164static SEM_PC
12165SEM_FN_NAME (frvbf,ftul) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12166{
12167#define FLD(f) abuf->fields.sfmt_ftne.f
12168  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12169  int UNUSED written = 0;
12170  IADDR UNUSED pc = abuf->addr;
12171  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12172
12173if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
12174{
12175; /*clobber*/
12176; /*clobber*/
12177; /*clobber*/
12178; /*clobber*/
12179if (NEBI (CPU (h_psr_esr), 0)) {
12180{
12181; /*clobber*/
12182; /*clobber*/
12183; /*clobber*/
12184; /*clobber*/
12185}
12186}
12187frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12188}
12189}
12190
12191  abuf->written = written;
12192  return vpc;
12193#undef FLD
12194}
12195
12196/* ftge: ftge$pack $FCCi_2,$GRi,$GRj */
12197
12198static SEM_PC
12199SEM_FN_NAME (frvbf,ftge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12200{
12201#define FLD(f) abuf->fields.sfmt_ftne.f
12202  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12203  int UNUSED written = 0;
12204  IADDR UNUSED pc = abuf->addr;
12205  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12206
12207if (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)))) {
12208{
12209; /*clobber*/
12210; /*clobber*/
12211; /*clobber*/
12212; /*clobber*/
12213if (NEBI (CPU (h_psr_esr), 0)) {
12214{
12215; /*clobber*/
12216; /*clobber*/
12217; /*clobber*/
12218; /*clobber*/
12219}
12220}
12221frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12222}
12223}
12224
12225  abuf->written = written;
12226  return vpc;
12227#undef FLD
12228}
12229
12230/* ftlt: ftlt$pack $FCCi_2,$GRi,$GRj */
12231
12232static SEM_PC
12233SEM_FN_NAME (frvbf,ftlt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12234{
12235#define FLD(f) abuf->fields.sfmt_ftne.f
12236  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12237  int UNUSED written = 0;
12238  IADDR UNUSED pc = abuf->addr;
12239  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12240
12241if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2))) {
12242{
12243; /*clobber*/
12244; /*clobber*/
12245; /*clobber*/
12246; /*clobber*/
12247if (NEBI (CPU (h_psr_esr), 0)) {
12248{
12249; /*clobber*/
12250; /*clobber*/
12251; /*clobber*/
12252; /*clobber*/
12253}
12254}
12255frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12256}
12257}
12258
12259  abuf->written = written;
12260  return vpc;
12261#undef FLD
12262}
12263
12264/* ftuge: ftuge$pack $FCCi_2,$GRi,$GRj */
12265
12266static SEM_PC
12267SEM_FN_NAME (frvbf,ftuge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12268{
12269#define FLD(f) abuf->fields.sfmt_ftne.f
12270  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12271  int UNUSED written = 0;
12272  IADDR UNUSED pc = abuf->addr;
12273  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12274
12275if (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))))) {
12276{
12277; /*clobber*/
12278; /*clobber*/
12279; /*clobber*/
12280; /*clobber*/
12281if (NEBI (CPU (h_psr_esr), 0)) {
12282{
12283; /*clobber*/
12284; /*clobber*/
12285; /*clobber*/
12286; /*clobber*/
12287}
12288}
12289frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12290}
12291}
12292
12293  abuf->written = written;
12294  return vpc;
12295#undef FLD
12296}
12297
12298/* ftug: ftug$pack $FCCi_2,$GRi,$GRj */
12299
12300static SEM_PC
12301SEM_FN_NAME (frvbf,ftug) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12302{
12303#define FLD(f) abuf->fields.sfmt_ftne.f
12304  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12305  int UNUSED written = 0;
12306  IADDR UNUSED pc = abuf->addr;
12307  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12308
12309if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
12310{
12311; /*clobber*/
12312; /*clobber*/
12313; /*clobber*/
12314; /*clobber*/
12315if (NEBI (CPU (h_psr_esr), 0)) {
12316{
12317; /*clobber*/
12318; /*clobber*/
12319; /*clobber*/
12320; /*clobber*/
12321}
12322}
12323frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12324}
12325}
12326
12327  abuf->written = written;
12328  return vpc;
12329#undef FLD
12330}
12331
12332/* ftle: ftle$pack $FCCi_2,$GRi,$GRj */
12333
12334static SEM_PC
12335SEM_FN_NAME (frvbf,ftle) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12336{
12337#define FLD(f) abuf->fields.sfmt_ftne.f
12338  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12339  int UNUSED written = 0;
12340  IADDR UNUSED pc = abuf->addr;
12341  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12342
12343if (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)))) {
12344{
12345; /*clobber*/
12346; /*clobber*/
12347; /*clobber*/
12348; /*clobber*/
12349if (NEBI (CPU (h_psr_esr), 0)) {
12350{
12351; /*clobber*/
12352; /*clobber*/
12353; /*clobber*/
12354; /*clobber*/
12355}
12356}
12357frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12358}
12359}
12360
12361  abuf->written = written;
12362  return vpc;
12363#undef FLD
12364}
12365
12366/* ftgt: ftgt$pack $FCCi_2,$GRi,$GRj */
12367
12368static SEM_PC
12369SEM_FN_NAME (frvbf,ftgt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12370{
12371#define FLD(f) abuf->fields.sfmt_ftne.f
12372  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12373  int UNUSED written = 0;
12374  IADDR UNUSED pc = abuf->addr;
12375  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12376
12377if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1))) {
12378{
12379; /*clobber*/
12380; /*clobber*/
12381; /*clobber*/
12382; /*clobber*/
12383if (NEBI (CPU (h_psr_esr), 0)) {
12384{
12385; /*clobber*/
12386; /*clobber*/
12387; /*clobber*/
12388; /*clobber*/
12389}
12390}
12391frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12392}
12393}
12394
12395  abuf->written = written;
12396  return vpc;
12397#undef FLD
12398}
12399
12400/* ftule: ftule$pack $FCCi_2,$GRi,$GRj */
12401
12402static SEM_PC
12403SEM_FN_NAME (frvbf,ftule) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12404{
12405#define FLD(f) abuf->fields.sfmt_ftne.f
12406  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12407  int UNUSED written = 0;
12408  IADDR UNUSED pc = abuf->addr;
12409  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12410
12411if (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))))) {
12412{
12413; /*clobber*/
12414; /*clobber*/
12415; /*clobber*/
12416; /*clobber*/
12417if (NEBI (CPU (h_psr_esr), 0)) {
12418{
12419; /*clobber*/
12420; /*clobber*/
12421; /*clobber*/
12422; /*clobber*/
12423}
12424}
12425frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12426}
12427}
12428
12429  abuf->written = written;
12430  return vpc;
12431#undef FLD
12432}
12433
12434/* ftu: ftu$pack $FCCi_2,$GRi,$GRj */
12435
12436static SEM_PC
12437SEM_FN_NAME (frvbf,ftu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12438{
12439#define FLD(f) abuf->fields.sfmt_ftne.f
12440  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12441  int UNUSED written = 0;
12442  IADDR UNUSED pc = abuf->addr;
12443  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12444
12445if (TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1))) {
12446{
12447; /*clobber*/
12448; /*clobber*/
12449; /*clobber*/
12450; /*clobber*/
12451if (NEBI (CPU (h_psr_esr), 0)) {
12452{
12453; /*clobber*/
12454; /*clobber*/
12455; /*clobber*/
12456; /*clobber*/
12457}
12458}
12459frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12460}
12461}
12462
12463  abuf->written = written;
12464  return vpc;
12465#undef FLD
12466}
12467
12468/* fto: fto$pack $FCCi_2,$GRi,$GRj */
12469
12470static SEM_PC
12471SEM_FN_NAME (frvbf,fto) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12472{
12473#define FLD(f) abuf->fields.sfmt_ftne.f
12474  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12475  int UNUSED written = 0;
12476  IADDR UNUSED pc = abuf->addr;
12477  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12478
12479if (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))))) {
12480{
12481; /*clobber*/
12482; /*clobber*/
12483; /*clobber*/
12484; /*clobber*/
12485if (NEBI (CPU (h_psr_esr), 0)) {
12486{
12487; /*clobber*/
12488; /*clobber*/
12489; /*clobber*/
12490; /*clobber*/
12491}
12492}
12493frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12494}
12495}
12496
12497  abuf->written = written;
12498  return vpc;
12499#undef FLD
12500}
12501
12502/* tira: tira$pack $GRi,$s12 */
12503
12504static SEM_PC
12505SEM_FN_NAME (frvbf,tira) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12506{
12507#define FLD(f) abuf->fields.sfmt_ftine.f
12508  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12509  int UNUSED written = 0;
12510  IADDR UNUSED pc = abuf->addr;
12511  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12512
12513{
12514; /*clobber*/
12515; /*clobber*/
12516; /*clobber*/
12517; /*clobber*/
12518if (NEBI (CPU (h_psr_esr), 0)) {
12519{
12520; /*clobber*/
12521; /*clobber*/
12522; /*clobber*/
12523; /*clobber*/
12524}
12525}
12526frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12527}
12528
12529  abuf->written = written;
12530  return vpc;
12531#undef FLD
12532}
12533
12534/* tino: tino$pack */
12535
12536static SEM_PC
12537SEM_FN_NAME (frvbf,tino) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12538{
12539#define FLD(f) abuf->fields.fmt_empty.f
12540  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12541  int UNUSED written = 0;
12542  IADDR UNUSED pc = abuf->addr;
12543  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12544
12545((void) 0); /*nop*/
12546
12547  return vpc;
12548#undef FLD
12549}
12550
12551/* tieq: tieq$pack $ICCi_2,$GRi,$s12 */
12552
12553static SEM_PC
12554SEM_FN_NAME (frvbf,tieq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12555{
12556#define FLD(f) abuf->fields.sfmt_tieq.f
12557  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12558  int UNUSED written = 0;
12559  IADDR UNUSED pc = abuf->addr;
12560  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12561
12562if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2))) {
12563{
12564; /*clobber*/
12565; /*clobber*/
12566; /*clobber*/
12567; /*clobber*/
12568if (NEBI (CPU (h_psr_esr), 0)) {
12569{
12570; /*clobber*/
12571; /*clobber*/
12572; /*clobber*/
12573; /*clobber*/
12574}
12575}
12576frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12577}
12578}
12579
12580  abuf->written = written;
12581  return vpc;
12582#undef FLD
12583}
12584
12585/* tine: tine$pack $ICCi_2,$GRi,$s12 */
12586
12587static SEM_PC
12588SEM_FN_NAME (frvbf,tine) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12589{
12590#define FLD(f) abuf->fields.sfmt_tieq.f
12591  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12592  int UNUSED written = 0;
12593  IADDR UNUSED pc = abuf->addr;
12594  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12595
12596if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)))) {
12597{
12598; /*clobber*/
12599; /*clobber*/
12600; /*clobber*/
12601; /*clobber*/
12602if (NEBI (CPU (h_psr_esr), 0)) {
12603{
12604; /*clobber*/
12605; /*clobber*/
12606; /*clobber*/
12607; /*clobber*/
12608}
12609}
12610frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12611}
12612}
12613
12614  abuf->written = written;
12615  return vpc;
12616#undef FLD
12617}
12618
12619/* tile: tile$pack $ICCi_2,$GRi,$s12 */
12620
12621static SEM_PC
12622SEM_FN_NAME (frvbf,tile) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12623{
12624#define FLD(f) abuf->fields.sfmt_tieq.f
12625  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12626  int UNUSED written = 0;
12627  IADDR UNUSED pc = abuf->addr;
12628  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12629
12630if (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))))) {
12631{
12632; /*clobber*/
12633; /*clobber*/
12634; /*clobber*/
12635; /*clobber*/
12636if (NEBI (CPU (h_psr_esr), 0)) {
12637{
12638; /*clobber*/
12639; /*clobber*/
12640; /*clobber*/
12641; /*clobber*/
12642}
12643}
12644frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12645}
12646}
12647
12648  abuf->written = written;
12649  return vpc;
12650#undef FLD
12651}
12652
12653/* tigt: tigt$pack $ICCi_2,$GRi,$s12 */
12654
12655static SEM_PC
12656SEM_FN_NAME (frvbf,tigt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12657{
12658#define FLD(f) abuf->fields.sfmt_tieq.f
12659  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12660  int UNUSED written = 0;
12661  IADDR UNUSED pc = abuf->addr;
12662  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12663
12664if (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)))))) {
12665{
12666; /*clobber*/
12667; /*clobber*/
12668; /*clobber*/
12669; /*clobber*/
12670if (NEBI (CPU (h_psr_esr), 0)) {
12671{
12672; /*clobber*/
12673; /*clobber*/
12674; /*clobber*/
12675; /*clobber*/
12676}
12677}
12678frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12679}
12680}
12681
12682  abuf->written = written;
12683  return vpc;
12684#undef FLD
12685}
12686
12687/* tilt: tilt$pack $ICCi_2,$GRi,$s12 */
12688
12689static SEM_PC
12690SEM_FN_NAME (frvbf,tilt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12691{
12692#define FLD(f) abuf->fields.sfmt_tieq.f
12693  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12694  int UNUSED written = 0;
12695  IADDR UNUSED pc = abuf->addr;
12696  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12697
12698if (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)))) {
12699{
12700; /*clobber*/
12701; /*clobber*/
12702; /*clobber*/
12703; /*clobber*/
12704if (NEBI (CPU (h_psr_esr), 0)) {
12705{
12706; /*clobber*/
12707; /*clobber*/
12708; /*clobber*/
12709; /*clobber*/
12710}
12711}
12712frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12713}
12714}
12715
12716  abuf->written = written;
12717  return vpc;
12718#undef FLD
12719}
12720
12721/* tige: tige$pack $ICCi_2,$GRi,$s12 */
12722
12723static SEM_PC
12724SEM_FN_NAME (frvbf,tige) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12725{
12726#define FLD(f) abuf->fields.sfmt_tieq.f
12727  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12728  int UNUSED written = 0;
12729  IADDR UNUSED pc = abuf->addr;
12730  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12731
12732if (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))))) {
12733{
12734; /*clobber*/
12735; /*clobber*/
12736; /*clobber*/
12737; /*clobber*/
12738if (NEBI (CPU (h_psr_esr), 0)) {
12739{
12740; /*clobber*/
12741; /*clobber*/
12742; /*clobber*/
12743; /*clobber*/
12744}
12745}
12746frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12747}
12748}
12749
12750  abuf->written = written;
12751  return vpc;
12752#undef FLD
12753}
12754
12755/* tils: tils$pack $ICCi_2,$GRi,$s12 */
12756
12757static SEM_PC
12758SEM_FN_NAME (frvbf,tils) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12759{
12760#define FLD(f) abuf->fields.sfmt_tieq.f
12761  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12762  int UNUSED written = 0;
12763  IADDR UNUSED pc = abuf->addr;
12764  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12765
12766if (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)))) {
12767{
12768; /*clobber*/
12769; /*clobber*/
12770; /*clobber*/
12771; /*clobber*/
12772if (NEBI (CPU (h_psr_esr), 0)) {
12773{
12774; /*clobber*/
12775; /*clobber*/
12776; /*clobber*/
12777; /*clobber*/
12778}
12779}
12780frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12781}
12782}
12783
12784  abuf->written = written;
12785  return vpc;
12786#undef FLD
12787}
12788
12789/* tihi: tihi$pack $ICCi_2,$GRi,$s12 */
12790
12791static SEM_PC
12792SEM_FN_NAME (frvbf,tihi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12793{
12794#define FLD(f) abuf->fields.sfmt_tieq.f
12795  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12796  int UNUSED written = 0;
12797  IADDR UNUSED pc = abuf->addr;
12798  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12799
12800if (NOTBI (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2))))) {
12801{
12802; /*clobber*/
12803; /*clobber*/
12804; /*clobber*/
12805; /*clobber*/
12806if (NEBI (CPU (h_psr_esr), 0)) {
12807{
12808; /*clobber*/
12809; /*clobber*/
12810; /*clobber*/
12811; /*clobber*/
12812}
12813}
12814frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12815}
12816}
12817
12818  abuf->written = written;
12819  return vpc;
12820#undef FLD
12821}
12822
12823/* tic: tic$pack $ICCi_2,$GRi,$s12 */
12824
12825static SEM_PC
12826SEM_FN_NAME (frvbf,tic) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12827{
12828#define FLD(f) abuf->fields.sfmt_tieq.f
12829  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12830  int UNUSED written = 0;
12831  IADDR UNUSED pc = abuf->addr;
12832  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12833
12834if (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1))) {
12835{
12836; /*clobber*/
12837; /*clobber*/
12838; /*clobber*/
12839; /*clobber*/
12840if (NEBI (CPU (h_psr_esr), 0)) {
12841{
12842; /*clobber*/
12843; /*clobber*/
12844; /*clobber*/
12845; /*clobber*/
12846}
12847}
12848frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12849}
12850}
12851
12852  abuf->written = written;
12853  return vpc;
12854#undef FLD
12855}
12856
12857/* tinc: tinc$pack $ICCi_2,$GRi,$s12 */
12858
12859static SEM_PC
12860SEM_FN_NAME (frvbf,tinc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12861{
12862#define FLD(f) abuf->fields.sfmt_tieq.f
12863  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12864  int UNUSED written = 0;
12865  IADDR UNUSED pc = abuf->addr;
12866  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12867
12868if (NOTBI (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)))) {
12869{
12870; /*clobber*/
12871; /*clobber*/
12872; /*clobber*/
12873; /*clobber*/
12874if (NEBI (CPU (h_psr_esr), 0)) {
12875{
12876; /*clobber*/
12877; /*clobber*/
12878; /*clobber*/
12879; /*clobber*/
12880}
12881}
12882frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12883}
12884}
12885
12886  abuf->written = written;
12887  return vpc;
12888#undef FLD
12889}
12890
12891/* tin: tin$pack $ICCi_2,$GRi,$s12 */
12892
12893static SEM_PC
12894SEM_FN_NAME (frvbf,tin) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12895{
12896#define FLD(f) abuf->fields.sfmt_tieq.f
12897  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12898  int UNUSED written = 0;
12899  IADDR UNUSED pc = abuf->addr;
12900  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12901
12902if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3))) {
12903{
12904; /*clobber*/
12905; /*clobber*/
12906; /*clobber*/
12907; /*clobber*/
12908if (NEBI (CPU (h_psr_esr), 0)) {
12909{
12910; /*clobber*/
12911; /*clobber*/
12912; /*clobber*/
12913; /*clobber*/
12914}
12915}
12916frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12917}
12918}
12919
12920  abuf->written = written;
12921  return vpc;
12922#undef FLD
12923}
12924
12925/* tip: tip$pack $ICCi_2,$GRi,$s12 */
12926
12927static SEM_PC
12928SEM_FN_NAME (frvbf,tip) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12929{
12930#define FLD(f) abuf->fields.sfmt_tieq.f
12931  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12932  int UNUSED written = 0;
12933  IADDR UNUSED pc = abuf->addr;
12934  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12935
12936if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3)))) {
12937{
12938; /*clobber*/
12939; /*clobber*/
12940; /*clobber*/
12941; /*clobber*/
12942if (NEBI (CPU (h_psr_esr), 0)) {
12943{
12944; /*clobber*/
12945; /*clobber*/
12946; /*clobber*/
12947; /*clobber*/
12948}
12949}
12950frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12951}
12952}
12953
12954  abuf->written = written;
12955  return vpc;
12956#undef FLD
12957}
12958
12959/* tiv: tiv$pack $ICCi_2,$GRi,$s12 */
12960
12961static SEM_PC
12962SEM_FN_NAME (frvbf,tiv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12963{
12964#define FLD(f) abuf->fields.sfmt_tieq.f
12965  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12966  int UNUSED written = 0;
12967  IADDR UNUSED pc = abuf->addr;
12968  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12969
12970if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1))) {
12971{
12972; /*clobber*/
12973; /*clobber*/
12974; /*clobber*/
12975; /*clobber*/
12976if (NEBI (CPU (h_psr_esr), 0)) {
12977{
12978; /*clobber*/
12979; /*clobber*/
12980; /*clobber*/
12981; /*clobber*/
12982}
12983}
12984frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12985}
12986}
12987
12988  abuf->written = written;
12989  return vpc;
12990#undef FLD
12991}
12992
12993/* tinv: tinv$pack $ICCi_2,$GRi,$s12 */
12994
12995static SEM_PC
12996SEM_FN_NAME (frvbf,tinv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12997{
12998#define FLD(f) abuf->fields.sfmt_tieq.f
12999  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13000  int UNUSED written = 0;
13001  IADDR UNUSED pc = abuf->addr;
13002  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13003
13004if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1)))) {
13005{
13006; /*clobber*/
13007; /*clobber*/
13008; /*clobber*/
13009; /*clobber*/
13010if (NEBI (CPU (h_psr_esr), 0)) {
13011{
13012; /*clobber*/
13013; /*clobber*/
13014; /*clobber*/
13015; /*clobber*/
13016}
13017}
13018frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13019}
13020}
13021
13022  abuf->written = written;
13023  return vpc;
13024#undef FLD
13025}
13026
13027/* ftira: ftira$pack $GRi,$s12 */
13028
13029static SEM_PC
13030SEM_FN_NAME (frvbf,ftira) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13031{
13032#define FLD(f) abuf->fields.sfmt_ftine.f
13033  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13034  int UNUSED written = 0;
13035  IADDR UNUSED pc = abuf->addr;
13036  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13037
13038{
13039; /*clobber*/
13040; /*clobber*/
13041; /*clobber*/
13042; /*clobber*/
13043if (NEBI (CPU (h_psr_esr), 0)) {
13044{
13045; /*clobber*/
13046; /*clobber*/
13047; /*clobber*/
13048; /*clobber*/
13049}
13050}
13051frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13052}
13053
13054  abuf->written = written;
13055  return vpc;
13056#undef FLD
13057}
13058
13059/* ftino: ftino$pack */
13060
13061static SEM_PC
13062SEM_FN_NAME (frvbf,ftino) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13063{
13064#define FLD(f) abuf->fields.fmt_empty.f
13065  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13066  int UNUSED written = 0;
13067  IADDR UNUSED pc = abuf->addr;
13068  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13069
13070((void) 0); /*nop*/
13071
13072  return vpc;
13073#undef FLD
13074}
13075
13076/* ftine: ftine$pack $FCCi_2,$GRi,$s12 */
13077
13078static SEM_PC
13079SEM_FN_NAME (frvbf,ftine) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13080{
13081#define FLD(f) abuf->fields.sfmt_ftine.f
13082  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13083  int UNUSED written = 0;
13084  IADDR UNUSED pc = abuf->addr;
13085  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13086
13087if (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))))) {
13088{
13089; /*clobber*/
13090; /*clobber*/
13091; /*clobber*/
13092; /*clobber*/
13093if (NEBI (CPU (h_psr_esr), 0)) {
13094{
13095; /*clobber*/
13096; /*clobber*/
13097; /*clobber*/
13098; /*clobber*/
13099}
13100}
13101frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13102}
13103}
13104
13105  abuf->written = written;
13106  return vpc;
13107#undef FLD
13108}
13109
13110/* ftieq: ftieq$pack $FCCi_2,$GRi,$s12 */
13111
13112static SEM_PC
13113SEM_FN_NAME (frvbf,ftieq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13114{
13115#define FLD(f) abuf->fields.sfmt_ftine.f
13116  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13117  int UNUSED written = 0;
13118  IADDR UNUSED pc = abuf->addr;
13119  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13120
13121if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3))) {
13122{
13123; /*clobber*/
13124; /*clobber*/
13125; /*clobber*/
13126; /*clobber*/
13127if (NEBI (CPU (h_psr_esr), 0)) {
13128{
13129; /*clobber*/
13130; /*clobber*/
13131; /*clobber*/
13132; /*clobber*/
13133}
13134}
13135frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13136}
13137}
13138
13139  abuf->written = written;
13140  return vpc;
13141#undef FLD
13142}
13143
13144/* ftilg: ftilg$pack $FCCi_2,$GRi,$s12 */
13145
13146static SEM_PC
13147SEM_FN_NAME (frvbf,ftilg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13148{
13149#define FLD(f) abuf->fields.sfmt_ftine.f
13150  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13151  int UNUSED written = 0;
13152  IADDR UNUSED pc = abuf->addr;
13153  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13154
13155if (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)))) {
13156{
13157; /*clobber*/
13158; /*clobber*/
13159; /*clobber*/
13160; /*clobber*/
13161if (NEBI (CPU (h_psr_esr), 0)) {
13162{
13163; /*clobber*/
13164; /*clobber*/
13165; /*clobber*/
13166; /*clobber*/
13167}
13168}
13169frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13170}
13171}
13172
13173  abuf->written = written;
13174  return vpc;
13175#undef FLD
13176}
13177
13178/* ftiue: ftiue$pack $FCCi_2,$GRi,$s12 */
13179
13180static SEM_PC
13181SEM_FN_NAME (frvbf,ftiue) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13182{
13183#define FLD(f) abuf->fields.sfmt_ftine.f
13184  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13185  int UNUSED written = 0;
13186  IADDR UNUSED pc = abuf->addr;
13187  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13188
13189if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
13190{
13191; /*clobber*/
13192; /*clobber*/
13193; /*clobber*/
13194; /*clobber*/
13195if (NEBI (CPU (h_psr_esr), 0)) {
13196{
13197; /*clobber*/
13198; /*clobber*/
13199; /*clobber*/
13200; /*clobber*/
13201}
13202}
13203frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13204}
13205}
13206
13207  abuf->written = written;
13208  return vpc;
13209#undef FLD
13210}
13211
13212/* ftiul: ftiul$pack $FCCi_2,$GRi,$s12 */
13213
13214static SEM_PC
13215SEM_FN_NAME (frvbf,ftiul) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13216{
13217#define FLD(f) abuf->fields.sfmt_ftine.f
13218  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13219  int UNUSED written = 0;
13220  IADDR UNUSED pc = abuf->addr;
13221  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13222
13223if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
13224{
13225; /*clobber*/
13226; /*clobber*/
13227; /*clobber*/
13228; /*clobber*/
13229if (NEBI (CPU (h_psr_esr), 0)) {
13230{
13231; /*clobber*/
13232; /*clobber*/
13233; /*clobber*/
13234; /*clobber*/
13235}
13236}
13237frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13238}
13239}
13240
13241  abuf->written = written;
13242  return vpc;
13243#undef FLD
13244}
13245
13246/* ftige: ftige$pack $FCCi_2,$GRi,$s12 */
13247
13248static SEM_PC
13249SEM_FN_NAME (frvbf,ftige) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13250{
13251#define FLD(f) abuf->fields.sfmt_ftine.f
13252  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13253  int UNUSED written = 0;
13254  IADDR UNUSED pc = abuf->addr;
13255  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13256
13257if (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)))) {
13258{
13259; /*clobber*/
13260; /*clobber*/
13261; /*clobber*/
13262; /*clobber*/
13263if (NEBI (CPU (h_psr_esr), 0)) {
13264{
13265; /*clobber*/
13266; /*clobber*/
13267; /*clobber*/
13268; /*clobber*/
13269}
13270}
13271frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13272}
13273}
13274
13275  abuf->written = written;
13276  return vpc;
13277#undef FLD
13278}
13279
13280/* ftilt: ftilt$pack $FCCi_2,$GRi,$s12 */
13281
13282static SEM_PC
13283SEM_FN_NAME (frvbf,ftilt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13284{
13285#define FLD(f) abuf->fields.sfmt_ftine.f
13286  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13287  int UNUSED written = 0;
13288  IADDR UNUSED pc = abuf->addr;
13289  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13290
13291if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2))) {
13292{
13293; /*clobber*/
13294; /*clobber*/
13295; /*clobber*/
13296; /*clobber*/
13297if (NEBI (CPU (h_psr_esr), 0)) {
13298{
13299; /*clobber*/
13300; /*clobber*/
13301; /*clobber*/
13302; /*clobber*/
13303}
13304}
13305frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13306}
13307}
13308
13309  abuf->written = written;
13310  return vpc;
13311#undef FLD
13312}
13313
13314/* ftiuge: ftiuge$pack $FCCi_2,$GRi,$s12 */
13315
13316static SEM_PC
13317SEM_FN_NAME (frvbf,ftiuge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13318{
13319#define FLD(f) abuf->fields.sfmt_ftine.f
13320  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13321  int UNUSED written = 0;
13322  IADDR UNUSED pc = abuf->addr;
13323  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13324
13325if (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))))) {
13326{
13327; /*clobber*/
13328; /*clobber*/
13329; /*clobber*/
13330; /*clobber*/
13331if (NEBI (CPU (h_psr_esr), 0)) {
13332{
13333; /*clobber*/
13334; /*clobber*/
13335; /*clobber*/
13336; /*clobber*/
13337}
13338}
13339frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13340}
13341}
13342
13343  abuf->written = written;
13344  return vpc;
13345#undef FLD
13346}
13347
13348/* ftiug: ftiug$pack $FCCi_2,$GRi,$s12 */
13349
13350static SEM_PC
13351SEM_FN_NAME (frvbf,ftiug) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13352{
13353#define FLD(f) abuf->fields.sfmt_ftine.f
13354  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13355  int UNUSED written = 0;
13356  IADDR UNUSED pc = abuf->addr;
13357  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13358
13359if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
13360{
13361; /*clobber*/
13362; /*clobber*/
13363; /*clobber*/
13364; /*clobber*/
13365if (NEBI (CPU (h_psr_esr), 0)) {
13366{
13367; /*clobber*/
13368; /*clobber*/
13369; /*clobber*/
13370; /*clobber*/
13371}
13372}
13373frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13374}
13375}
13376
13377  abuf->written = written;
13378  return vpc;
13379#undef FLD
13380}
13381
13382/* ftile: ftile$pack $FCCi_2,$GRi,$s12 */
13383
13384static SEM_PC
13385SEM_FN_NAME (frvbf,ftile) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13386{
13387#define FLD(f) abuf->fields.sfmt_ftine.f
13388  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13389  int UNUSED written = 0;
13390  IADDR UNUSED pc = abuf->addr;
13391  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13392
13393if (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)))) {
13394{
13395; /*clobber*/
13396; /*clobber*/
13397; /*clobber*/
13398; /*clobber*/
13399if (NEBI (CPU (h_psr_esr), 0)) {
13400{
13401; /*clobber*/
13402; /*clobber*/
13403; /*clobber*/
13404; /*clobber*/
13405}
13406}
13407frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13408}
13409}
13410
13411  abuf->written = written;
13412  return vpc;
13413#undef FLD
13414}
13415
13416/* ftigt: ftigt$pack $FCCi_2,$GRi,$s12 */
13417
13418static SEM_PC
13419SEM_FN_NAME (frvbf,ftigt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13420{
13421#define FLD(f) abuf->fields.sfmt_ftine.f
13422  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13423  int UNUSED written = 0;
13424  IADDR UNUSED pc = abuf->addr;
13425  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13426
13427if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1))) {
13428{
13429; /*clobber*/
13430; /*clobber*/
13431; /*clobber*/
13432; /*clobber*/
13433if (NEBI (CPU (h_psr_esr), 0)) {
13434{
13435; /*clobber*/
13436; /*clobber*/
13437; /*clobber*/
13438; /*clobber*/
13439}
13440}
13441frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13442}
13443}
13444
13445  abuf->written = written;
13446  return vpc;
13447#undef FLD
13448}
13449
13450/* ftiule: ftiule$pack $FCCi_2,$GRi,$s12 */
13451
13452static SEM_PC
13453SEM_FN_NAME (frvbf,ftiule) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13454{
13455#define FLD(f) abuf->fields.sfmt_ftine.f
13456  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13457  int UNUSED written = 0;
13458  IADDR UNUSED pc = abuf->addr;
13459  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13460
13461if (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))))) {
13462{
13463; /*clobber*/
13464; /*clobber*/
13465; /*clobber*/
13466; /*clobber*/
13467if (NEBI (CPU (h_psr_esr), 0)) {
13468{
13469; /*clobber*/
13470; /*clobber*/
13471; /*clobber*/
13472; /*clobber*/
13473}
13474}
13475frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13476}
13477}
13478
13479  abuf->written = written;
13480  return vpc;
13481#undef FLD
13482}
13483
13484/* ftiu: ftiu$pack $FCCi_2,$GRi,$s12 */
13485
13486static SEM_PC
13487SEM_FN_NAME (frvbf,ftiu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13488{
13489#define FLD(f) abuf->fields.sfmt_ftine.f
13490  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13491  int UNUSED written = 0;
13492  IADDR UNUSED pc = abuf->addr;
13493  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13494
13495if (TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1))) {
13496{
13497; /*clobber*/
13498; /*clobber*/
13499; /*clobber*/
13500; /*clobber*/
13501if (NEBI (CPU (h_psr_esr), 0)) {
13502{
13503; /*clobber*/
13504; /*clobber*/
13505; /*clobber*/
13506; /*clobber*/
13507}
13508}
13509frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13510}
13511}
13512
13513  abuf->written = written;
13514  return vpc;
13515#undef FLD
13516}
13517
13518/* ftio: ftio$pack $FCCi_2,$GRi,$s12 */
13519
13520static SEM_PC
13521SEM_FN_NAME (frvbf,ftio) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13522{
13523#define FLD(f) abuf->fields.sfmt_ftine.f
13524  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13525  int UNUSED written = 0;
13526  IADDR UNUSED pc = abuf->addr;
13527  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13528
13529if (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))))) {
13530{
13531; /*clobber*/
13532; /*clobber*/
13533; /*clobber*/
13534; /*clobber*/
13535if (NEBI (CPU (h_psr_esr), 0)) {
13536{
13537; /*clobber*/
13538; /*clobber*/
13539; /*clobber*/
13540; /*clobber*/
13541}
13542}
13543frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13544}
13545}
13546
13547  abuf->written = written;
13548  return vpc;
13549#undef FLD
13550}
13551
13552/* break: break$pack */
13553
13554static SEM_PC
13555SEM_FN_NAME (frvbf,break) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13556{
13557#define FLD(f) abuf->fields.sfmt_break.f
13558  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13559  int UNUSED written = 0;
13560  IADDR UNUSED pc = abuf->addr;
13561  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13562
13563{
13564; /*clobber*/
13565; /*clobber*/
13566; /*clobber*/
13567; /*clobber*/
13568; /*clobber*/
13569; /*clobber*/
13570frv_break (current_cpu);
13571}
13572
13573  return vpc;
13574#undef FLD
13575}
13576
13577/* mtrap: mtrap$pack */
13578
13579static SEM_PC
13580SEM_FN_NAME (frvbf,mtrap) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13581{
13582#define FLD(f) abuf->fields.fmt_empty.f
13583  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13584  int UNUSED written = 0;
13585  IADDR UNUSED pc = abuf->addr;
13586  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13587
13588frv_mtrap (current_cpu);
13589
13590  return vpc;
13591#undef FLD
13592}
13593
13594/* andcr: andcr$pack $CRi,$CRj,$CRk */
13595
13596static SEM_PC
13597SEM_FN_NAME (frvbf,andcr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13598{
13599#define FLD(f) abuf->fields.sfmt_andcr.f
13600  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13601  int UNUSED written = 0;
13602  IADDR UNUSED pc = abuf->addr;
13603  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13604
13605  {
13606    UQI opval = frvbf_cr_logic (current_cpu, 0, CPU (h_cccr[FLD (f_CRi)]), CPU (h_cccr[FLD (f_CRj)]));
13607    sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRk)]), opval);
13608    TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13609  }
13610
13611  return vpc;
13612#undef FLD
13613}
13614
13615/* orcr: orcr$pack $CRi,$CRj,$CRk */
13616
13617static SEM_PC
13618SEM_FN_NAME (frvbf,orcr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13619{
13620#define FLD(f) abuf->fields.sfmt_andcr.f
13621  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13622  int UNUSED written = 0;
13623  IADDR UNUSED pc = abuf->addr;
13624  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13625
13626  {
13627    UQI opval = frvbf_cr_logic (current_cpu, 1, CPU (h_cccr[FLD (f_CRi)]), CPU (h_cccr[FLD (f_CRj)]));
13628    sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRk)]), opval);
13629    TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13630  }
13631
13632  return vpc;
13633#undef FLD
13634}
13635
13636/* xorcr: xorcr$pack $CRi,$CRj,$CRk */
13637
13638static SEM_PC
13639SEM_FN_NAME (frvbf,xorcr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13640{
13641#define FLD(f) abuf->fields.sfmt_andcr.f
13642  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13643  int UNUSED written = 0;
13644  IADDR UNUSED pc = abuf->addr;
13645  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13646
13647  {
13648    UQI opval = frvbf_cr_logic (current_cpu, 2, CPU (h_cccr[FLD (f_CRi)]), CPU (h_cccr[FLD (f_CRj)]));
13649    sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRk)]), opval);
13650    TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13651  }
13652
13653  return vpc;
13654#undef FLD
13655}
13656
13657/* nandcr: nandcr$pack $CRi,$CRj,$CRk */
13658
13659static SEM_PC
13660SEM_FN_NAME (frvbf,nandcr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13661{
13662#define FLD(f) abuf->fields.sfmt_andcr.f
13663  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13664  int UNUSED written = 0;
13665  IADDR UNUSED pc = abuf->addr;
13666  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13667
13668  {
13669    UQI opval = frvbf_cr_logic (current_cpu, 3, CPU (h_cccr[FLD (f_CRi)]), CPU (h_cccr[FLD (f_CRj)]));
13670    sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRk)]), opval);
13671    TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13672  }
13673
13674  return vpc;
13675#undef FLD
13676}
13677
13678/* norcr: norcr$pack $CRi,$CRj,$CRk */
13679
13680static SEM_PC
13681SEM_FN_NAME (frvbf,norcr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13682{
13683#define FLD(f) abuf->fields.sfmt_andcr.f
13684  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13685  int UNUSED written = 0;
13686  IADDR UNUSED pc = abuf->addr;
13687  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13688
13689  {
13690    UQI opval = frvbf_cr_logic (current_cpu, 4, CPU (h_cccr[FLD (f_CRi)]), CPU (h_cccr[FLD (f_CRj)]));
13691    sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRk)]), opval);
13692    TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13693  }
13694
13695  return vpc;
13696#undef FLD
13697}
13698
13699/* andncr: andncr$pack $CRi,$CRj,$CRk */
13700
13701static SEM_PC
13702SEM_FN_NAME (frvbf,andncr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13703{
13704#define FLD(f) abuf->fields.sfmt_andcr.f
13705  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13706  int UNUSED written = 0;
13707  IADDR UNUSED pc = abuf->addr;
13708  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13709
13710  {
13711    UQI opval = frvbf_cr_logic (current_cpu, 5, CPU (h_cccr[FLD (f_CRi)]), CPU (h_cccr[FLD (f_CRj)]));
13712    sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRk)]), opval);
13713    TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13714  }
13715
13716  return vpc;
13717#undef FLD
13718}
13719
13720/* orncr: orncr$pack $CRi,$CRj,$CRk */
13721
13722static SEM_PC
13723SEM_FN_NAME (frvbf,orncr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13724{
13725#define FLD(f) abuf->fields.sfmt_andcr.f
13726  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13727  int UNUSED written = 0;
13728  IADDR UNUSED pc = abuf->addr;
13729  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13730
13731  {
13732    UQI opval = frvbf_cr_logic (current_cpu, 6, CPU (h_cccr[FLD (f_CRi)]), CPU (h_cccr[FLD (f_CRj)]));
13733    sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRk)]), opval);
13734    TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13735  }
13736
13737  return vpc;
13738#undef FLD
13739}
13740
13741/* nandncr: nandncr$pack $CRi,$CRj,$CRk */
13742
13743static SEM_PC
13744SEM_FN_NAME (frvbf,nandncr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13745{
13746#define FLD(f) abuf->fields.sfmt_andcr.f
13747  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13748  int UNUSED written = 0;
13749  IADDR UNUSED pc = abuf->addr;
13750  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13751
13752  {
13753    UQI opval = frvbf_cr_logic (current_cpu, 7, CPU (h_cccr[FLD (f_CRi)]), CPU (h_cccr[FLD (f_CRj)]));
13754    sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRk)]), opval);
13755    TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13756  }
13757
13758  return vpc;
13759#undef FLD
13760}
13761
13762/* norncr: norncr$pack $CRi,$CRj,$CRk */
13763
13764static SEM_PC
13765SEM_FN_NAME (frvbf,norncr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13766{
13767#define FLD(f) abuf->fields.sfmt_andcr.f
13768  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13769  int UNUSED written = 0;
13770  IADDR UNUSED pc = abuf->addr;
13771  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13772
13773  {
13774    UQI opval = frvbf_cr_logic (current_cpu, 8, CPU (h_cccr[FLD (f_CRi)]), CPU (h_cccr[FLD (f_CRj)]));
13775    sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRk)]), opval);
13776    TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13777  }
13778
13779  return vpc;
13780#undef FLD
13781}
13782
13783/* notcr: notcr$pack $CRj,$CRk */
13784
13785static SEM_PC
13786SEM_FN_NAME (frvbf,notcr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13787{
13788#define FLD(f) abuf->fields.sfmt_andcr.f
13789  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13790  int UNUSED written = 0;
13791  IADDR UNUSED pc = abuf->addr;
13792  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13793
13794  {
13795    UQI opval = XORQI (CPU (h_cccr[FLD (f_CRj)]), 1);
13796    sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRk)]), opval);
13797    TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13798  }
13799
13800  return vpc;
13801#undef FLD
13802}
13803
13804/* ckra: ckra$pack $CRj_int */
13805
13806static SEM_PC
13807SEM_FN_NAME (frvbf,ckra) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13808{
13809#define FLD(f) abuf->fields.sfmt_cckeq.f
13810  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13811  int UNUSED written = 0;
13812  IADDR UNUSED pc = abuf->addr;
13813  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13814
13815  {
13816    UQI opval = 3;
13817    sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
13818    TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13819  }
13820
13821  return vpc;
13822#undef FLD
13823}
13824
13825/* ckno: ckno$pack $CRj_int */
13826
13827static SEM_PC
13828SEM_FN_NAME (frvbf,ckno) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13829{
13830#define FLD(f) abuf->fields.sfmt_cckeq.f
13831  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13832  int UNUSED written = 0;
13833  IADDR UNUSED pc = abuf->addr;
13834  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13835
13836  {
13837    UQI opval = 2;
13838    sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
13839    TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13840  }
13841
13842  return vpc;
13843#undef FLD
13844}
13845
13846/* ckeq: ckeq$pack $ICCi_3,$CRj_int */
13847
13848static SEM_PC
13849SEM_FN_NAME (frvbf,ckeq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13850{
13851#define FLD(f) abuf->fields.sfmt_cckeq.f
13852  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13853  int UNUSED written = 0;
13854  IADDR UNUSED pc = abuf->addr;
13855  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13856
13857if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 4), 2))) {
13858  {
13859    UQI opval = 3;
13860    sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
13861    written |= (1 << 1);
13862    TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13863  }
13864} else {
13865  {
13866    UQI opval = 2;
13867    sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
13868    written |= (1 << 1);
13869    TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13870  }
13871}
13872
13873  abuf->written = written;
13874  return vpc;
13875#undef FLD
13876}
13877
13878/* ckne: ckne$pack $ICCi_3,$CRj_int */
13879
13880static SEM_PC
13881SEM_FN_NAME (frvbf,ckne) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13882{
13883#define FLD(f) abuf->fields.sfmt_cckeq.f
13884  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13885  int UNUSED written = 0;
13886  IADDR UNUSED pc = abuf->addr;
13887  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13888
13889if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 4), 2)))) {
13890  {
13891    UQI opval = 3;
13892    sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
13893    written |= (1 << 1);
13894    TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13895  }
13896} else {
13897  {
13898    UQI opval = 2;
13899    sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
13900    written |= (1 << 1);
13901    TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13902  }
13903}
13904
13905  abuf->written = written;
13906  return vpc;
13907#undef FLD
13908}
13909
13910/* ckle: ckle$pack $ICCi_3,$CRj_int */
13911
13912static SEM_PC
13913SEM_FN_NAME (frvbf,ckle) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13914{
13915#define FLD(f) abuf->fields.sfmt_cckeq.f
13916  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13917  int UNUSED written = 0;
13918  IADDR UNUSED pc = abuf->addr;
13919  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13920
13921if (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))))) {
13922  {
13923    UQI opval = 3;
13924    sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
13925    written |= (1 << 1);
13926    TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13927  }
13928} else {
13929  {
13930    UQI opval = 2;
13931    sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
13932    written |= (1 << 1);
13933    TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13934  }
13935}
13936
13937  abuf->written = written;
13938  return vpc;
13939#undef FLD
13940}
13941
13942/* ckgt: ckgt$pack $ICCi_3,$CRj_int */
13943
13944static SEM_PC
13945SEM_FN_NAME (frvbf,ckgt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13946{
13947#define FLD(f) abuf->fields.sfmt_cckeq.f
13948  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13949  int UNUSED written = 0;
13950  IADDR UNUSED pc = abuf->addr;
13951  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13952
13953if (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)))))) {
13954  {
13955    UQI opval = 3;
13956    sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
13957    written |= (1 << 1);
13958    TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13959  }
13960} else {
13961  {
13962    UQI opval = 2;
13963    sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
13964    written |= (1 << 1);
13965    TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13966  }
13967}
13968
13969  abuf->written = written;
13970  return vpc;
13971#undef FLD
13972}
13973
13974/* cklt: cklt$pack $ICCi_3,$CRj_int */
13975
13976static SEM_PC
13977SEM_FN_NAME (frvbf,cklt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13978{
13979#define FLD(f) abuf->fields.sfmt_cckeq.f
13980  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13981  int UNUSED written = 0;
13982  IADDR UNUSED pc = abuf->addr;
13983  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13984
13985if (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)))) {
13986  {
13987    UQI opval = 3;
13988    sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
13989    written |= (1 << 1);
13990    TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13991  }
13992} else {
13993  {
13994    UQI opval = 2;
13995    sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
13996    written |= (1 << 1);
13997    TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13998  }
13999}
14000
14001  abuf->written = written;
14002  return vpc;
14003#undef FLD
14004}
14005
14006/* ckge: ckge$pack $ICCi_3,$CRj_int */
14007
14008static SEM_PC
14009SEM_FN_NAME (frvbf,ckge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14010{
14011#define FLD(f) abuf->fields.sfmt_cckeq.f
14012  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14013  int UNUSED written = 0;
14014  IADDR UNUSED pc = abuf->addr;
14015  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14016
14017if (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))))) {
14018  {
14019    UQI opval = 3;
14020    sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14021    written |= (1 << 1);
14022    TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14023  }
14024} else {
14025  {
14026    UQI opval = 2;
14027    sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14028    written |= (1 << 1);
14029    TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14030  }
14031}
14032
14033  abuf->written = written;
14034  return vpc;
14035#undef FLD
14036}
14037
14038/* ckls: ckls$pack $ICCi_3,$CRj_int */
14039
14040static SEM_PC
14041SEM_FN_NAME (frvbf,ckls) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14042{
14043#define FLD(f) abuf->fields.sfmt_cckeq.f
14044  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14045  int UNUSED written = 0;
14046  IADDR UNUSED pc = abuf->addr;
14047  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14048
14049if (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 4), 2)))) {
14050  {
14051    UQI opval = 3;
14052    sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14053    written |= (1 << 1);
14054    TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14055  }
14056} else {
14057  {
14058    UQI opval = 2;
14059    sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14060    written |= (1 << 1);
14061    TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14062  }
14063}
14064
14065  abuf->written = written;
14066  return vpc;
14067#undef FLD
14068}
14069
14070/* ckhi: ckhi$pack $ICCi_3,$CRj_int */
14071
14072static SEM_PC
14073SEM_FN_NAME (frvbf,ckhi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14074{
14075#define FLD(f) abuf->fields.sfmt_cckeq.f
14076  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14077  int UNUSED written = 0;
14078  IADDR UNUSED pc = abuf->addr;
14079  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14080
14081if (NOTBI (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 4), 2))))) {
14082  {
14083    UQI opval = 3;
14084    sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14085    written |= (1 << 1);
14086    TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14087  }
14088} else {
14089  {
14090    UQI opval = 2;
14091    sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14092    written |= (1 << 1);
14093    TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14094  }
14095}
14096
14097  abuf->written = written;
14098  return vpc;
14099#undef FLD
14100}
14101
14102/* ckc: ckc$pack $ICCi_3,$CRj_int */
14103
14104static SEM_PC
14105SEM_FN_NAME (frvbf,ckc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14106{
14107#define FLD(f) abuf->fields.sfmt_cckeq.f
14108  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14109  int UNUSED written = 0;
14110  IADDR UNUSED pc = abuf->addr;
14111  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14112
14113if (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 1))) {
14114  {
14115    UQI opval = 3;
14116    sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14117    written |= (1 << 1);
14118    TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14119  }
14120} else {
14121  {
14122    UQI opval = 2;
14123    sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14124    written |= (1 << 1);
14125    TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14126  }
14127}
14128
14129  abuf->written = written;
14130  return vpc;
14131#undef FLD
14132}
14133
14134/* cknc: cknc$pack $ICCi_3,$CRj_int */
14135
14136static SEM_PC
14137SEM_FN_NAME (frvbf,cknc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14138{
14139#define FLD(f) abuf->fields.sfmt_cckeq.f
14140  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14141  int UNUSED written = 0;
14142  IADDR UNUSED pc = abuf->addr;
14143  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14144
14145if (NOTBI (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 1)))) {
14146  {
14147    UQI opval = 3;
14148    sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14149    written |= (1 << 1);
14150    TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14151  }
14152} else {
14153  {
14154    UQI opval = 2;
14155    sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14156    written |= (1 << 1);
14157    TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14158  }
14159}
14160
14161  abuf->written = written;
14162  return vpc;
14163#undef FLD
14164}
14165
14166/* ckn: ckn$pack $ICCi_3,$CRj_int */
14167
14168static SEM_PC
14169SEM_FN_NAME (frvbf,ckn) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14170{
14171#define FLD(f) abuf->fields.sfmt_cckeq.f
14172  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14173  int UNUSED written = 0;
14174  IADDR UNUSED pc = abuf->addr;
14175  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14176
14177if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 8), 3))) {
14178  {
14179    UQI opval = 3;
14180    sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14181    written |= (1 << 1);
14182    TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14183  }
14184} else {
14185  {
14186    UQI opval = 2;
14187    sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14188    written |= (1 << 1);
14189    TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14190  }
14191}
14192
14193  abuf->written = written;
14194  return vpc;
14195#undef FLD
14196}
14197
14198/* ckp: ckp$pack $ICCi_3,$CRj_int */
14199
14200static SEM_PC
14201SEM_FN_NAME (frvbf,ckp) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14202{
14203#define FLD(f) abuf->fields.sfmt_cckeq.f
14204  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14205  int UNUSED written = 0;
14206  IADDR UNUSED pc = abuf->addr;
14207  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14208
14209if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 8), 3)))) {
14210  {
14211    UQI opval = 3;
14212    sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14213    written |= (1 << 1);
14214    TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14215  }
14216} else {
14217  {
14218    UQI opval = 2;
14219    sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14220    written |= (1 << 1);
14221    TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14222  }
14223}
14224
14225  abuf->written = written;
14226  return vpc;
14227#undef FLD
14228}
14229
14230/* ckv: ckv$pack $ICCi_3,$CRj_int */
14231
14232static SEM_PC
14233SEM_FN_NAME (frvbf,ckv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14234{
14235#define FLD(f) abuf->fields.sfmt_cckeq.f
14236  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14237  int UNUSED written = 0;
14238  IADDR UNUSED pc = abuf->addr;
14239  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14240
14241if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 2), 1))) {
14242  {
14243    UQI opval = 3;
14244    sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14245    written |= (1 << 1);
14246    TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14247  }
14248} else {
14249  {
14250    UQI opval = 2;
14251    sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14252    written |= (1 << 1);
14253    TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14254  }
14255}
14256
14257  abuf->written = written;
14258  return vpc;
14259#undef FLD
14260}
14261
14262/* cknv: cknv$pack $ICCi_3,$CRj_int */
14263
14264static SEM_PC
14265SEM_FN_NAME (frvbf,cknv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14266{
14267#define FLD(f) abuf->fields.sfmt_cckeq.f
14268  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14269  int UNUSED written = 0;
14270  IADDR UNUSED pc = abuf->addr;
14271  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14272
14273if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 2), 1)))) {
14274  {
14275    UQI opval = 3;
14276    sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14277    written |= (1 << 1);
14278    TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14279  }
14280} else {
14281  {
14282    UQI opval = 2;
14283    sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14284    written |= (1 << 1);
14285    TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14286  }
14287}
14288
14289  abuf->written = written;
14290  return vpc;
14291#undef FLD
14292}
14293
14294/* fckra: fckra$pack $CRj_float */
14295
14296static SEM_PC
14297SEM_FN_NAME (frvbf,fckra) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14298{
14299#define FLD(f) abuf->fields.sfmt_cfckne.f
14300  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14301  int UNUSED written = 0;
14302  IADDR UNUSED pc = abuf->addr;
14303  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14304
14305  {
14306    UQI opval = 3;
14307    sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14308    TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14309  }
14310
14311  return vpc;
14312#undef FLD
14313}
14314
14315/* fckno: fckno$pack $CRj_float */
14316
14317static SEM_PC
14318SEM_FN_NAME (frvbf,fckno) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14319{
14320#define FLD(f) abuf->fields.sfmt_cfckne.f
14321  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14322  int UNUSED written = 0;
14323  IADDR UNUSED pc = abuf->addr;
14324  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14325
14326  {
14327    UQI opval = 2;
14328    sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14329    TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14330  }
14331
14332  return vpc;
14333#undef FLD
14334}
14335
14336/* fckne: fckne$pack $FCCi_3,$CRj_float */
14337
14338static SEM_PC
14339SEM_FN_NAME (frvbf,fckne) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14340{
14341#define FLD(f) abuf->fields.sfmt_cfckne.f
14342  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14343  int UNUSED written = 0;
14344  IADDR UNUSED pc = abuf->addr;
14345  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14346
14347if (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))))) {
14348  {
14349    UQI opval = 3;
14350    sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14351    written |= (1 << 1);
14352    TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14353  }
14354} else {
14355  {
14356    UQI opval = 2;
14357    sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14358    written |= (1 << 1);
14359    TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14360  }
14361}
14362
14363  abuf->written = written;
14364  return vpc;
14365#undef FLD
14366}
14367
14368/* fckeq: fckeq$pack $FCCi_3,$CRj_float */
14369
14370static SEM_PC
14371SEM_FN_NAME (frvbf,fckeq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14372{
14373#define FLD(f) abuf->fields.sfmt_cfckne.f
14374  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14375  int UNUSED written = 0;
14376  IADDR UNUSED pc = abuf->addr;
14377  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14378
14379if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 8), 3))) {
14380  {
14381    UQI opval = 3;
14382    sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14383    written |= (1 << 1);
14384    TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14385  }
14386} else {
14387  {
14388    UQI opval = 2;
14389    sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14390    written |= (1 << 1);
14391    TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14392  }
14393}
14394
14395  abuf->written = written;
14396  return vpc;
14397#undef FLD
14398}
14399
14400/* fcklg: fcklg$pack $FCCi_3,$CRj_float */
14401
14402static SEM_PC
14403SEM_FN_NAME (frvbf,fcklg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14404{
14405#define FLD(f) abuf->fields.sfmt_cfckne.f
14406  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14407  int UNUSED written = 0;
14408  IADDR UNUSED pc = abuf->addr;
14409  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14410
14411if (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)))) {
14412  {
14413    UQI opval = 3;
14414    sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14415    written |= (1 << 1);
14416    TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14417  }
14418} else {
14419  {
14420    UQI opval = 2;
14421    sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14422    written |= (1 << 1);
14423    TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14424  }
14425}
14426
14427  abuf->written = written;
14428  return vpc;
14429#undef FLD
14430}
14431
14432/* fckue: fckue$pack $FCCi_3,$CRj_float */
14433
14434static SEM_PC
14435SEM_FN_NAME (frvbf,fckue) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14436{
14437#define FLD(f) abuf->fields.sfmt_cfckne.f
14438  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14439  int UNUSED written = 0;
14440  IADDR UNUSED pc = abuf->addr;
14441  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14442
14443if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 8), 3)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 1)))) {
14444  {
14445    UQI opval = 3;
14446    sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14447    written |= (1 << 1);
14448    TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14449  }
14450} else {
14451  {
14452    UQI opval = 2;
14453    sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14454    written |= (1 << 1);
14455    TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14456  }
14457}
14458
14459  abuf->written = written;
14460  return vpc;
14461#undef FLD
14462}
14463
14464/* fckul: fckul$pack $FCCi_3,$CRj_float */
14465
14466static SEM_PC
14467SEM_FN_NAME (frvbf,fckul) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14468{
14469#define FLD(f) abuf->fields.sfmt_cfckne.f
14470  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14471  int UNUSED written = 0;
14472  IADDR UNUSED pc = abuf->addr;
14473  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14474
14475if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 4), 2)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 1)))) {
14476  {
14477    UQI opval = 3;
14478    sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14479    written |= (1 << 1);
14480    TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14481  }
14482} else {
14483  {
14484    UQI opval = 2;
14485    sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14486    written |= (1 << 1);
14487    TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14488  }
14489}
14490
14491  abuf->written = written;
14492  return vpc;
14493#undef FLD
14494}
14495
14496/* fckge: fckge$pack $FCCi_3,$CRj_float */
14497
14498static SEM_PC
14499SEM_FN_NAME (frvbf,fckge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14500{
14501#define FLD(f) abuf->fields.sfmt_cfckne.f
14502  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14503  int UNUSED written = 0;
14504  IADDR UNUSED pc = abuf->addr;
14505  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14506
14507if (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)))) {
14508  {
14509    UQI opval = 3;
14510    sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14511    written |= (1 << 1);
14512    TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14513  }
14514} else {
14515  {
14516    UQI opval = 2;
14517    sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14518    written |= (1 << 1);
14519    TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14520  }
14521}
14522
14523  abuf->written = written;
14524  return vpc;
14525#undef FLD
14526}
14527
14528/* fcklt: fcklt$pack $FCCi_3,$CRj_float */
14529
14530static SEM_PC
14531SEM_FN_NAME (frvbf,fcklt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14532{
14533#define FLD(f) abuf->fields.sfmt_cfckne.f
14534  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14535  int UNUSED written = 0;
14536  IADDR UNUSED pc = abuf->addr;
14537  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14538
14539if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 4), 2))) {
14540  {
14541    UQI opval = 3;
14542    sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14543    written |= (1 << 1);
14544    TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14545  }
14546} else {
14547  {
14548    UQI opval = 2;
14549    sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14550    written |= (1 << 1);
14551    TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14552  }
14553}
14554
14555  abuf->written = written;
14556  return vpc;
14557#undef FLD
14558}
14559
14560/* fckuge: fckuge$pack $FCCi_3,$CRj_float */
14561
14562static SEM_PC
14563SEM_FN_NAME (frvbf,fckuge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14564{
14565#define FLD(f) abuf->fields.sfmt_cfckne.f
14566  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14567  int UNUSED written = 0;
14568  IADDR UNUSED pc = abuf->addr;
14569  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14570
14571if (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))))) {
14572  {
14573    UQI opval = 3;
14574    sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14575    written |= (1 << 1);
14576    TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14577  }
14578} else {
14579  {
14580    UQI opval = 2;
14581    sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14582    written |= (1 << 1);
14583    TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14584  }
14585}
14586
14587  abuf->written = written;
14588  return vpc;
14589#undef FLD
14590}
14591
14592/* fckug: fckug$pack $FCCi_3,$CRj_float */
14593
14594static SEM_PC
14595SEM_FN_NAME (frvbf,fckug) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14596{
14597#define FLD(f) abuf->fields.sfmt_cfckne.f
14598  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14599  int UNUSED written = 0;
14600  IADDR UNUSED pc = abuf->addr;
14601  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14602
14603if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 1)))) {
14604  {
14605    UQI opval = 3;
14606    sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14607    written |= (1 << 1);
14608    TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14609  }
14610} else {
14611  {
14612    UQI opval = 2;
14613    sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14614    written |= (1 << 1);
14615    TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14616  }
14617}
14618
14619  abuf->written = written;
14620  return vpc;
14621#undef FLD
14622}
14623
14624/* fckle: fckle$pack $FCCi_3,$CRj_float */
14625
14626static SEM_PC
14627SEM_FN_NAME (frvbf,fckle) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14628{
14629#define FLD(f) abuf->fields.sfmt_cfckne.f
14630  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14631  int UNUSED written = 0;
14632  IADDR UNUSED pc = abuf->addr;
14633  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14634
14635if (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)))) {
14636  {
14637    UQI opval = 3;
14638    sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14639    written |= (1 << 1);
14640    TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14641  }
14642} else {
14643  {
14644    UQI opval = 2;
14645    sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14646    written |= (1 << 1);
14647    TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14648  }
14649}
14650
14651  abuf->written = written;
14652  return vpc;
14653#undef FLD
14654}
14655
14656/* fckgt: fckgt$pack $FCCi_3,$CRj_float */
14657
14658static SEM_PC
14659SEM_FN_NAME (frvbf,fckgt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14660{
14661#define FLD(f) abuf->fields.sfmt_cfckne.f
14662  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14663  int UNUSED written = 0;
14664  IADDR UNUSED pc = abuf->addr;
14665  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14666
14667if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 2), 1))) {
14668  {
14669    UQI opval = 3;
14670    sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14671    written |= (1 << 1);
14672    TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14673  }
14674} else {
14675  {
14676    UQI opval = 2;
14677    sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14678    written |= (1 << 1);
14679    TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14680  }
14681}
14682
14683  abuf->written = written;
14684  return vpc;
14685#undef FLD
14686}
14687
14688/* fckule: fckule$pack $FCCi_3,$CRj_float */
14689
14690static SEM_PC
14691SEM_FN_NAME (frvbf,fckule) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14692{
14693#define FLD(f) abuf->fields.sfmt_cfckne.f
14694  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14695  int UNUSED written = 0;
14696  IADDR UNUSED pc = abuf->addr;
14697  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14698
14699if (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))))) {
14700  {
14701    UQI opval = 3;
14702    sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14703    written |= (1 << 1);
14704    TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14705  }
14706} else {
14707  {
14708    UQI opval = 2;
14709    sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14710    written |= (1 << 1);
14711    TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14712  }
14713}
14714
14715  abuf->written = written;
14716  return vpc;
14717#undef FLD
14718}
14719
14720/* fcku: fcku$pack $FCCi_3,$CRj_float */
14721
14722static SEM_PC
14723SEM_FN_NAME (frvbf,fcku) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14724{
14725#define FLD(f) abuf->fields.sfmt_cfckne.f
14726  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14727  int UNUSED written = 0;
14728  IADDR UNUSED pc = abuf->addr;
14729  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14730
14731if (TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 1))) {
14732  {
14733    UQI opval = 3;
14734    sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14735    written |= (1 << 1);
14736    TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14737  }
14738} else {
14739  {
14740    UQI opval = 2;
14741    sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14742    written |= (1 << 1);
14743    TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14744  }
14745}
14746
14747  abuf->written = written;
14748  return vpc;
14749#undef FLD
14750}
14751
14752/* fcko: fcko$pack $FCCi_3,$CRj_float */
14753
14754static SEM_PC
14755SEM_FN_NAME (frvbf,fcko) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14756{
14757#define FLD(f) abuf->fields.sfmt_cfckne.f
14758  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14759  int UNUSED written = 0;
14760  IADDR UNUSED pc = abuf->addr;
14761  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14762
14763if (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))))) {
14764  {
14765    UQI opval = 3;
14766    sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14767    written |= (1 << 1);
14768    TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14769  }
14770} else {
14771  {
14772    UQI opval = 2;
14773    sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14774    written |= (1 << 1);
14775    TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14776  }
14777}
14778
14779  abuf->written = written;
14780  return vpc;
14781#undef FLD
14782}
14783
14784/* cckra: cckra$pack $CRj_int,$CCi,$cond */
14785
14786static SEM_PC
14787SEM_FN_NAME (frvbf,cckra) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14788{
14789#define FLD(f) abuf->fields.sfmt_cckeq.f
14790  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14791  int UNUSED written = 0;
14792  IADDR UNUSED pc = abuf->addr;
14793  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14794
14795if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
14796  {
14797    UQI opval = 3;
14798    sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14799    written |= (1 << 2);
14800    TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14801  }
14802} else {
14803  {
14804    UQI opval = 0;
14805    sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14806    written |= (1 << 2);
14807    TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14808  }
14809}
14810
14811  abuf->written = written;
14812  return vpc;
14813#undef FLD
14814}
14815
14816/* cckno: cckno$pack $CRj_int,$CCi,$cond */
14817
14818static SEM_PC
14819SEM_FN_NAME (frvbf,cckno) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14820{
14821#define FLD(f) abuf->fields.sfmt_cckeq.f
14822  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14823  int UNUSED written = 0;
14824  IADDR UNUSED pc = abuf->addr;
14825  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14826
14827if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
14828  {
14829    UQI opval = 2;
14830    sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14831    written |= (1 << 2);
14832    TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14833  }
14834} else {
14835  {
14836    UQI opval = 0;
14837    sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14838    written |= (1 << 2);
14839    TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14840  }
14841}
14842
14843  abuf->written = written;
14844  return vpc;
14845#undef FLD
14846}
14847
14848/* cckeq: cckeq$pack $ICCi_3,$CRj_int,$CCi,$cond */
14849
14850static SEM_PC
14851SEM_FN_NAME (frvbf,cckeq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14852{
14853#define FLD(f) abuf->fields.sfmt_cckeq.f
14854  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14855  int UNUSED written = 0;
14856  IADDR UNUSED pc = abuf->addr;
14857  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14858
14859if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
14860if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 4), 2))) {
14861  {
14862    UQI opval = 3;
14863    sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14864    written |= (1 << 3);
14865    TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14866  }
14867} else {
14868  {
14869    UQI opval = 2;
14870    sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14871    written |= (1 << 3);
14872    TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14873  }
14874}
14875} else {
14876  {
14877    UQI opval = 0;
14878    sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14879    written |= (1 << 3);
14880    TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14881  }
14882}
14883
14884  abuf->written = written;
14885  return vpc;
14886#undef FLD
14887}
14888
14889/* cckne: cckne$pack $ICCi_3,$CRj_int,$CCi,$cond */
14890
14891static SEM_PC
14892SEM_FN_NAME (frvbf,cckne) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14893{
14894#define FLD(f) abuf->fields.sfmt_cckeq.f
14895  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14896  int UNUSED written = 0;
14897  IADDR UNUSED pc = abuf->addr;
14898  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14899
14900if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
14901if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 4), 2)))) {
14902  {
14903    UQI opval = 3;
14904    sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14905    written |= (1 << 3);
14906    TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14907  }
14908} else {
14909  {
14910    UQI opval = 2;
14911    sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14912    written |= (1 << 3);
14913    TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14914  }
14915}
14916} else {
14917  {
14918    UQI opval = 0;
14919    sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14920    written |= (1 << 3);
14921    TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14922  }
14923}
14924
14925  abuf->written = written;
14926  return vpc;
14927#undef FLD
14928}
14929
14930/* cckle: cckle$pack $ICCi_3,$CRj_int,$CCi,$cond */
14931
14932static SEM_PC
14933SEM_FN_NAME (frvbf,cckle) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14934{
14935#define FLD(f) abuf->fields.sfmt_cckeq.f
14936  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14937  int UNUSED written = 0;
14938  IADDR UNUSED pc = abuf->addr;
14939  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14940
14941if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
14942if (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))))) {
14943  {
14944    UQI opval = 3;
14945    sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14946    written |= (1 << 3);
14947    TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14948  }
14949} else {
14950  {
14951    UQI opval = 2;
14952    sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14953    written |= (1 << 3);
14954    TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14955  }
14956}
14957} else {
14958  {
14959    UQI opval = 0;
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
14966  abuf->written = written;
14967  return vpc;
14968#undef FLD
14969}
14970
14971/* cckgt: cckgt$pack $ICCi_3,$CRj_int,$CCi,$cond */
14972
14973static SEM_PC
14974SEM_FN_NAME (frvbf,cckgt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14975{
14976#define FLD(f) abuf->fields.sfmt_cckeq.f
14977  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14978  int UNUSED written = 0;
14979  IADDR UNUSED pc = abuf->addr;
14980  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14981
14982if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
14983if (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)))))) {
14984  {
14985    UQI opval = 3;
14986    sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14987    written |= (1 << 3);
14988    TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14989  }
14990} else {
14991  {
14992    UQI opval = 2;
14993    sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14994    written |= (1 << 3);
14995    TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14996  }
14997}
14998} else {
14999  {
15000    UQI opval = 0;
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
15007  abuf->written = written;
15008  return vpc;
15009#undef FLD
15010}
15011
15012/* ccklt: ccklt$pack $ICCi_3,$CRj_int,$CCi,$cond */
15013
15014static SEM_PC
15015SEM_FN_NAME (frvbf,ccklt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15016{
15017#define FLD(f) abuf->fields.sfmt_cckeq.f
15018  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15019  int UNUSED written = 0;
15020  IADDR UNUSED pc = abuf->addr;
15021  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15022
15023if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15024if (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)))) {
15025  {
15026    UQI opval = 3;
15027    sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15028    written |= (1 << 3);
15029    TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15030  }
15031} else {
15032  {
15033    UQI opval = 2;
15034    sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15035    written |= (1 << 3);
15036    TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15037  }
15038}
15039} else {
15040  {
15041    UQI opval = 0;
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
15048  abuf->written = written;
15049  return vpc;
15050#undef FLD
15051}
15052
15053/* cckge: cckge$pack $ICCi_3,$CRj_int,$CCi,$cond */
15054
15055static SEM_PC
15056SEM_FN_NAME (frvbf,cckge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15057{
15058#define FLD(f) abuf->fields.sfmt_cckeq.f
15059  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15060  int UNUSED written = 0;
15061  IADDR UNUSED pc = abuf->addr;
15062  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15063
15064if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15065if (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))))) {
15066  {
15067    UQI opval = 3;
15068    sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15069    written |= (1 << 3);
15070    TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15071  }
15072} else {
15073  {
15074    UQI opval = 2;
15075    sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15076    written |= (1 << 3);
15077    TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15078  }
15079}
15080} else {
15081  {
15082    UQI opval = 0;
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
15089  abuf->written = written;
15090  return vpc;
15091#undef FLD
15092}
15093
15094/* cckls: cckls$pack $ICCi_3,$CRj_int,$CCi,$cond */
15095
15096static SEM_PC
15097SEM_FN_NAME (frvbf,cckls) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15098{
15099#define FLD(f) abuf->fields.sfmt_cckeq.f
15100  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15101  int UNUSED written = 0;
15102  IADDR UNUSED pc = abuf->addr;
15103  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15104
15105if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15106if (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 4), 2)))) {
15107  {
15108    UQI opval = 3;
15109    sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15110    written |= (1 << 3);
15111    TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15112  }
15113} else {
15114  {
15115    UQI opval = 2;
15116    sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15117    written |= (1 << 3);
15118    TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15119  }
15120}
15121} else {
15122  {
15123    UQI opval = 0;
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
15130  abuf->written = written;
15131  return vpc;
15132#undef FLD
15133}
15134
15135/* cckhi: cckhi$pack $ICCi_3,$CRj_int,$CCi,$cond */
15136
15137static SEM_PC
15138SEM_FN_NAME (frvbf,cckhi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15139{
15140#define FLD(f) abuf->fields.sfmt_cckeq.f
15141  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15142  int UNUSED written = 0;
15143  IADDR UNUSED pc = abuf->addr;
15144  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15145
15146if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15147if (NOTBI (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 4), 2))))) {
15148  {
15149    UQI opval = 3;
15150    sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15151    written |= (1 << 3);
15152    TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15153  }
15154} else {
15155  {
15156    UQI opval = 2;
15157    sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15158    written |= (1 << 3);
15159    TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15160  }
15161}
15162} else {
15163  {
15164    UQI opval = 0;
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
15171  abuf->written = written;
15172  return vpc;
15173#undef FLD
15174}
15175
15176/* cckc: cckc$pack $ICCi_3,$CRj_int,$CCi,$cond */
15177
15178static SEM_PC
15179SEM_FN_NAME (frvbf,cckc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15180{
15181#define FLD(f) abuf->fields.sfmt_cckeq.f
15182  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15183  int UNUSED written = 0;
15184  IADDR UNUSED pc = abuf->addr;
15185  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15186
15187if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15188if (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 1))) {
15189  {
15190    UQI opval = 3;
15191    sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15192    written |= (1 << 3);
15193    TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15194  }
15195} else {
15196  {
15197    UQI opval = 2;
15198    sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15199    written |= (1 << 3);
15200    TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15201  }
15202}
15203} else {
15204  {
15205    UQI opval = 0;
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
15212  abuf->written = written;
15213  return vpc;
15214#undef FLD
15215}
15216
15217/* ccknc: ccknc$pack $ICCi_3,$CRj_int,$CCi,$cond */
15218
15219static SEM_PC
15220SEM_FN_NAME (frvbf,ccknc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15221{
15222#define FLD(f) abuf->fields.sfmt_cckeq.f
15223  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15224  int UNUSED written = 0;
15225  IADDR UNUSED pc = abuf->addr;
15226  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15227
15228if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15229if (NOTBI (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 1)))) {
15230  {
15231    UQI opval = 3;
15232    sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15233    written |= (1 << 3);
15234    TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15235  }
15236} else {
15237  {
15238    UQI opval = 2;
15239    sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15240    written |= (1 << 3);
15241    TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15242  }
15243}
15244} else {
15245  {
15246    UQI opval = 0;
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
15253  abuf->written = written;
15254  return vpc;
15255#undef FLD
15256}
15257
15258/* cckn: cckn$pack $ICCi_3,$CRj_int,$CCi,$cond */
15259
15260static SEM_PC
15261SEM_FN_NAME (frvbf,cckn) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15262{
15263#define FLD(f) abuf->fields.sfmt_cckeq.f
15264  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15265  int UNUSED written = 0;
15266  IADDR UNUSED pc = abuf->addr;
15267  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15268
15269if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15270if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 8), 3))) {
15271  {
15272    UQI opval = 3;
15273    sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15274    written |= (1 << 3);
15275    TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15276  }
15277} else {
15278  {
15279    UQI opval = 2;
15280    sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15281    written |= (1 << 3);
15282    TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15283  }
15284}
15285} else {
15286  {
15287    UQI opval = 0;
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
15294  abuf->written = written;
15295  return vpc;
15296#undef FLD
15297}
15298
15299/* cckp: cckp$pack $ICCi_3,$CRj_int,$CCi,$cond */
15300
15301static SEM_PC
15302SEM_FN_NAME (frvbf,cckp) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15303{
15304#define FLD(f) abuf->fields.sfmt_cckeq.f
15305  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15306  int UNUSED written = 0;
15307  IADDR UNUSED pc = abuf->addr;
15308  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15309
15310if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15311if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 8), 3)))) {
15312  {
15313    UQI opval = 3;
15314    sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15315    written |= (1 << 3);
15316    TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15317  }
15318} else {
15319  {
15320    UQI opval = 2;
15321    sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15322    written |= (1 << 3);
15323    TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15324  }
15325}
15326} else {
15327  {
15328    UQI opval = 0;
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
15335  abuf->written = written;
15336  return vpc;
15337#undef FLD
15338}
15339
15340/* cckv: cckv$pack $ICCi_3,$CRj_int,$CCi,$cond */
15341
15342static SEM_PC
15343SEM_FN_NAME (frvbf,cckv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15344{
15345#define FLD(f) abuf->fields.sfmt_cckeq.f
15346  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15347  int UNUSED written = 0;
15348  IADDR UNUSED pc = abuf->addr;
15349  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15350
15351if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15352if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 2), 1))) {
15353  {
15354    UQI opval = 3;
15355    sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15356    written |= (1 << 3);
15357    TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15358  }
15359} else {
15360  {
15361    UQI opval = 2;
15362    sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15363    written |= (1 << 3);
15364    TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15365  }
15366}
15367} else {
15368  {
15369    UQI opval = 0;
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
15376  abuf->written = written;
15377  return vpc;
15378#undef FLD
15379}
15380
15381/* ccknv: ccknv$pack $ICCi_3,$CRj_int,$CCi,$cond */
15382
15383static SEM_PC
15384SEM_FN_NAME (frvbf,ccknv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15385{
15386#define FLD(f) abuf->fields.sfmt_cckeq.f
15387  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15388  int UNUSED written = 0;
15389  IADDR UNUSED pc = abuf->addr;
15390  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15391
15392if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15393if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 2), 1)))) {
15394  {
15395    UQI opval = 3;
15396    sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15397    written |= (1 << 3);
15398    TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15399  }
15400} else {
15401  {
15402    UQI opval = 2;
15403    sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15404    written |= (1 << 3);
15405    TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15406  }
15407}
15408} else {
15409  {
15410    UQI opval = 0;
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
15417  abuf->written = written;
15418  return vpc;
15419#undef FLD
15420}
15421
15422/* cfckra: cfckra$pack $CRj_float,$CCi,$cond */
15423
15424static SEM_PC
15425SEM_FN_NAME (frvbf,cfckra) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15426{
15427#define FLD(f) abuf->fields.sfmt_cfckne.f
15428  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15429  int UNUSED written = 0;
15430  IADDR UNUSED pc = abuf->addr;
15431  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15432
15433if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15434  {
15435    UQI opval = 3;
15436    sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15437    written |= (1 << 2);
15438    TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15439  }
15440} else {
15441  {
15442    UQI opval = 0;
15443    sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15444    written |= (1 << 2);
15445    TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15446  }
15447}
15448
15449  abuf->written = written;
15450  return vpc;
15451#undef FLD
15452}
15453
15454/* cfckno: cfckno$pack $CRj_float,$CCi,$cond */
15455
15456static SEM_PC
15457SEM_FN_NAME (frvbf,cfckno) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15458{
15459#define FLD(f) abuf->fields.sfmt_cfckne.f
15460  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15461  int UNUSED written = 0;
15462  IADDR UNUSED pc = abuf->addr;
15463  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15464
15465if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15466  {
15467    UQI opval = 2;
15468    sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15469    written |= (1 << 2);
15470    TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15471  }
15472} else {
15473  {
15474    UQI opval = 0;
15475    sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15476    written |= (1 << 2);
15477    TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15478  }
15479}
15480
15481  abuf->written = written;
15482  return vpc;
15483#undef FLD
15484}
15485
15486/* cfckne: cfckne$pack $FCCi_3,$CRj_float,$CCi,$cond */
15487
15488static SEM_PC
15489SEM_FN_NAME (frvbf,cfckne) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15490{
15491#define FLD(f) abuf->fields.sfmt_cfckne.f
15492  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15493  int UNUSED written = 0;
15494  IADDR UNUSED pc = abuf->addr;
15495  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15496
15497if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15498if (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))))) {
15499  {
15500    UQI opval = 3;
15501    sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15502    written |= (1 << 3);
15503    TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15504  }
15505} else {
15506  {
15507    UQI opval = 2;
15508    sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15509    written |= (1 << 3);
15510    TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15511  }
15512}
15513} else {
15514  {
15515    UQI opval = 0;
15516    sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15517    written |= (1 << 3);
15518    TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15519  }
15520}
15521
15522  abuf->written = written;
15523  return vpc;
15524#undef FLD
15525}
15526
15527/* cfckeq: cfckeq$pack $FCCi_3,$CRj_float,$CCi,$cond */
15528
15529static SEM_PC
15530SEM_FN_NAME (frvbf,cfckeq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15531{
15532#define FLD(f) abuf->fields.sfmt_cfckne.f
15533  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15534  int UNUSED written = 0;
15535  IADDR UNUSED pc = abuf->addr;
15536  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15537
15538if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15539if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 8), 3))) {
15540  {
15541    UQI opval = 3;
15542    sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15543    written |= (1 << 3);
15544    TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15545  }
15546} else {
15547  {
15548    UQI opval = 2;
15549    sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15550    written |= (1 << 3);
15551    TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15552  }
15553}
15554} else {
15555  {
15556    UQI opval = 0;
15557    sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15558    written |= (1 << 3);
15559    TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15560  }
15561}
15562
15563  abuf->written = written;
15564  return vpc;
15565#undef FLD
15566}
15567
15568/* cfcklg: cfcklg$pack $FCCi_3,$CRj_float,$CCi,$cond */
15569
15570static SEM_PC
15571SEM_FN_NAME (frvbf,cfcklg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15572{
15573#define FLD(f) abuf->fields.sfmt_cfckne.f
15574  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15575  int UNUSED written = 0;
15576  IADDR UNUSED pc = abuf->addr;
15577  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15578
15579if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15580if (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)))) {
15581  {
15582    UQI opval = 3;
15583    sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15584    written |= (1 << 3);
15585    TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15586  }
15587} else {
15588  {
15589    UQI opval = 2;
15590    sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15591    written |= (1 << 3);
15592    TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15593  }
15594}
15595} else {
15596  {
15597    UQI opval = 0;
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
15604  abuf->written = written;
15605  return vpc;
15606#undef FLD
15607}
15608
15609/* cfckue: cfckue$pack $FCCi_3,$CRj_float,$CCi,$cond */
15610
15611static SEM_PC
15612SEM_FN_NAME (frvbf,cfckue) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15613{
15614#define FLD(f) abuf->fields.sfmt_cfckne.f
15615  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15616  int UNUSED written = 0;
15617  IADDR UNUSED pc = abuf->addr;
15618  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15619
15620if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15621if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 8), 3)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 1)))) {
15622  {
15623    UQI opval = 3;
15624    sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15625    written |= (1 << 3);
15626    TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15627  }
15628} else {
15629  {
15630    UQI opval = 2;
15631    sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15632    written |= (1 << 3);
15633    TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15634  }
15635}
15636} else {
15637  {
15638    UQI opval = 0;
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
15645  abuf->written = written;
15646  return vpc;
15647#undef FLD
15648}
15649
15650/* cfckul: cfckul$pack $FCCi_3,$CRj_float,$CCi,$cond */
15651
15652static SEM_PC
15653SEM_FN_NAME (frvbf,cfckul) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15654{
15655#define FLD(f) abuf->fields.sfmt_cfckne.f
15656  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15657  int UNUSED written = 0;
15658  IADDR UNUSED pc = abuf->addr;
15659  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15660
15661if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15662if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 4), 2)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 1)))) {
15663  {
15664    UQI opval = 3;
15665    sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15666    written |= (1 << 3);
15667    TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15668  }
15669} else {
15670  {
15671    UQI opval = 2;
15672    sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15673    written |= (1 << 3);
15674    TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15675  }
15676}
15677} else {
15678  {
15679    UQI opval = 0;
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
15686  abuf->written = written;
15687  return vpc;
15688#undef FLD
15689}
15690
15691/* cfckge: cfckge$pack $FCCi_3,$CRj_float,$CCi,$cond */
15692
15693static SEM_PC
15694SEM_FN_NAME (frvbf,cfckge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15695{
15696#define FLD(f) abuf->fields.sfmt_cfckne.f
15697  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15698  int UNUSED written = 0;
15699  IADDR UNUSED pc = abuf->addr;
15700  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15701
15702if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15703if (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)))) {
15704  {
15705    UQI opval = 3;
15706    sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15707    written |= (1 << 3);
15708    TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15709  }
15710} else {
15711  {
15712    UQI opval = 2;
15713    sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15714    written |= (1 << 3);
15715    TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15716  }
15717}
15718} else {
15719  {
15720    UQI opval = 0;
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
15727  abuf->written = written;
15728  return vpc;
15729#undef FLD
15730}
15731
15732/* cfcklt: cfcklt$pack $FCCi_3,$CRj_float,$CCi,$cond */
15733
15734static SEM_PC
15735SEM_FN_NAME (frvbf,cfcklt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15736{
15737#define FLD(f) abuf->fields.sfmt_cfckne.f
15738  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15739  int UNUSED written = 0;
15740  IADDR UNUSED pc = abuf->addr;
15741  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15742
15743if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15744if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 4), 2))) {
15745  {
15746    UQI opval = 3;
15747    sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15748    written |= (1 << 3);
15749    TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15750  }
15751} else {
15752  {
15753    UQI opval = 2;
15754    sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15755    written |= (1 << 3);
15756    TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15757  }
15758}
15759} else {
15760  {
15761    UQI opval = 0;
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
15768  abuf->written = written;
15769  return vpc;
15770#undef FLD
15771}
15772
15773/* cfckuge: cfckuge$pack $FCCi_3,$CRj_float,$CCi,$cond */
15774
15775static SEM_PC
15776SEM_FN_NAME (frvbf,cfckuge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15777{
15778#define FLD(f) abuf->fields.sfmt_cfckne.f
15779  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15780  int UNUSED written = 0;
15781  IADDR UNUSED pc = abuf->addr;
15782  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15783
15784if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15785if (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))))) {
15786  {
15787    UQI opval = 3;
15788    sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15789    written |= (1 << 3);
15790    TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15791  }
15792} else {
15793  {
15794    UQI opval = 2;
15795    sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15796    written |= (1 << 3);
15797    TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15798  }
15799}
15800} else {
15801  {
15802    UQI opval = 0;
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
15809  abuf->written = written;
15810  return vpc;
15811#undef FLD
15812}
15813
15814/* cfckug: cfckug$pack $FCCi_3,$CRj_float,$CCi,$cond */
15815
15816static SEM_PC
15817SEM_FN_NAME (frvbf,cfckug) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15818{
15819#define FLD(f) abuf->fields.sfmt_cfckne.f
15820  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15821  int UNUSED written = 0;
15822  IADDR UNUSED pc = abuf->addr;
15823  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15824
15825if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15826if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 1)))) {
15827  {
15828    UQI opval = 3;
15829    sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15830    written |= (1 << 3);
15831    TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15832  }
15833} else {
15834  {
15835    UQI opval = 2;
15836    sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15837    written |= (1 << 3);
15838    TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15839  }
15840}
15841} else {
15842  {
15843    UQI opval = 0;
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
15850  abuf->written = written;
15851  return vpc;
15852#undef FLD
15853}
15854
15855/* cfckle: cfckle$pack $FCCi_3,$CRj_float,$CCi,$cond */
15856
15857static SEM_PC
15858SEM_FN_NAME (frvbf,cfckle) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15859{
15860#define FLD(f) abuf->fields.sfmt_cfckne.f
15861  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15862  int UNUSED written = 0;
15863  IADDR UNUSED pc = abuf->addr;
15864  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15865
15866if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15867if (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)))) {
15868  {
15869    UQI opval = 3;
15870    sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15871    written |= (1 << 3);
15872    TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15873  }
15874} else {
15875  {
15876    UQI opval = 2;
15877    sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15878    written |= (1 << 3);
15879    TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15880  }
15881}
15882} else {
15883  {
15884    UQI opval = 0;
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
15891  abuf->written = written;
15892  return vpc;
15893#undef FLD
15894}
15895
15896/* cfckgt: cfckgt$pack $FCCi_3,$CRj_float,$CCi,$cond */
15897
15898static SEM_PC
15899SEM_FN_NAME (frvbf,cfckgt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15900{
15901#define FLD(f) abuf->fields.sfmt_cfckne.f
15902  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15903  int UNUSED written = 0;
15904  IADDR UNUSED pc = abuf->addr;
15905  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15906
15907if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15908if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 2), 1))) {
15909  {
15910    UQI opval = 3;
15911    sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15912    written |= (1 << 3);
15913    TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15914  }
15915} else {
15916  {
15917    UQI opval = 2;
15918    sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15919    written |= (1 << 3);
15920    TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15921  }
15922}
15923} else {
15924  {
15925    UQI opval = 0;
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
15932  abuf->written = written;
15933  return vpc;
15934#undef FLD
15935}
15936
15937/* cfckule: cfckule$pack $FCCi_3,$CRj_float,$CCi,$cond */
15938
15939static SEM_PC
15940SEM_FN_NAME (frvbf,cfckule) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15941{
15942#define FLD(f) abuf->fields.sfmt_cfckne.f
15943  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15944  int UNUSED written = 0;
15945  IADDR UNUSED pc = abuf->addr;
15946  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15947
15948if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15949if (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))))) {
15950  {
15951    UQI opval = 3;
15952    sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15953    written |= (1 << 3);
15954    TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15955  }
15956} else {
15957  {
15958    UQI opval = 2;
15959    sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15960    written |= (1 << 3);
15961    TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15962  }
15963}
15964} else {
15965  {
15966    UQI opval = 0;
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
15973  abuf->written = written;
15974  return vpc;
15975#undef FLD
15976}
15977
15978/* cfcku: cfcku$pack $FCCi_3,$CRj_float,$CCi,$cond */
15979
15980static SEM_PC
15981SEM_FN_NAME (frvbf,cfcku) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15982{
15983#define FLD(f) abuf->fields.sfmt_cfckne.f
15984  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15985  int UNUSED written = 0;
15986  IADDR UNUSED pc = abuf->addr;
15987  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15988
15989if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15990if (TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 1))) {
15991  {
15992    UQI opval = 3;
15993    sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15994    written |= (1 << 3);
15995    TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15996  }
15997} else {
15998  {
15999    UQI opval = 2;
16000    sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
16001    written |= (1 << 3);
16002    TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
16003  }
16004}
16005} else {
16006  {
16007    UQI opval = 0;
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
16014  abuf->written = written;
16015  return vpc;
16016#undef FLD
16017}
16018
16019/* cfcko: cfcko$pack $FCCi_3,$CRj_float,$CCi,$cond */
16020
16021static SEM_PC
16022SEM_FN_NAME (frvbf,cfcko) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16023{
16024#define FLD(f) abuf->fields.sfmt_cfckne.f
16025  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16026  int UNUSED written = 0;
16027  IADDR UNUSED pc = abuf->addr;
16028  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16029
16030if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
16031if (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))))) {
16032  {
16033    UQI opval = 3;
16034    sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
16035    written |= (1 << 3);
16036    TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
16037  }
16038} else {
16039  {
16040    UQI opval = 2;
16041    sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
16042    written |= (1 << 3);
16043    TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
16044  }
16045}
16046} else {
16047  {
16048    UQI opval = 0;
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
16055  abuf->written = written;
16056  return vpc;
16057#undef FLD
16058}
16059
16060/* cjmpl: cjmpl$pack @($GRi,$GRj),$CCi,$cond */
16061
16062static SEM_PC
16063SEM_FN_NAME (frvbf,cjmpl) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16064{
16065#define FLD(f) abuf->fields.sfmt_cjmpl.f
16066  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16067  int UNUSED written = 0;
16068  IADDR UNUSED pc = abuf->addr;
16069  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16070
16071if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
16072{
16073if (EQSI (FLD (f_LI), 1)) {
16074frvbf_set_write_next_vliw_addr_to_LR (current_cpu, 1);
16075}
16076  {
16077    USI opval = ANDSI (ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), 0xfffffffc);
16078    sim_queue_pc_write (current_cpu, opval);
16079    written |= (1 << 6);
16080    TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
16081  }
16082frvbf_model_branch (current_cpu, pc, 2);
16083}
16084}
16085
16086  abuf->written = written;
16087  return vpc;
16088#undef FLD
16089}
16090
16091/* ccalll: ccalll$pack @($GRi,$GRj),$CCi,$cond */
16092
16093static SEM_PC
16094SEM_FN_NAME (frvbf,ccalll) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16095{
16096#define FLD(f) abuf->fields.sfmt_cjmpl.f
16097  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16098  int UNUSED written = 0;
16099  IADDR UNUSED pc = abuf->addr;
16100  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16101
16102if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
16103{
16104if (EQSI (FLD (f_LI), 1)) {
16105frvbf_set_write_next_vliw_addr_to_LR (current_cpu, 1);
16106}
16107  {
16108    USI opval = ANDSI (ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), 0xfffffffc);
16109    sim_queue_pc_write (current_cpu, opval);
16110    written |= (1 << 6);
16111    TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
16112  }
16113frvbf_model_branch (current_cpu, pc, 2);
16114}
16115}
16116
16117  abuf->written = written;
16118  return vpc;
16119#undef FLD
16120}
16121
16122/* ici: ici$pack @($GRi,$GRj) */
16123
16124static SEM_PC
16125SEM_FN_NAME (frvbf,ici) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16126{
16127#define FLD(f) abuf->fields.sfmt_icpl.f
16128  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16129  int UNUSED written = 0;
16130  IADDR UNUSED pc = abuf->addr;
16131  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16132
16133frvbf_insn_cache_invalidate (current_cpu, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), 0);
16134
16135  return vpc;
16136#undef FLD
16137}
16138
16139/* dci: dci$pack @($GRi,$GRj) */
16140
16141static SEM_PC
16142SEM_FN_NAME (frvbf,dci) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16143{
16144#define FLD(f) abuf->fields.sfmt_icpl.f
16145  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16146  int UNUSED written = 0;
16147  IADDR UNUSED pc = abuf->addr;
16148  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16149
16150frvbf_data_cache_invalidate (current_cpu, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), 0);
16151
16152  return vpc;
16153#undef FLD
16154}
16155
16156/* icei: icei$pack @($GRi,$GRj),$ae */
16157
16158static SEM_PC
16159SEM_FN_NAME (frvbf,icei) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16160{
16161#define FLD(f) abuf->fields.sfmt_icei.f
16162  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16163  int UNUSED written = 0;
16164  IADDR UNUSED pc = abuf->addr;
16165  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16166
16167if (EQSI (FLD (f_ae), 0)) {
16168frvbf_insn_cache_invalidate (current_cpu, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), -1);
16169} else {
16170frvbf_insn_cache_invalidate (current_cpu, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), FLD (f_ae));
16171}
16172
16173  return vpc;
16174#undef FLD
16175}
16176
16177/* dcei: dcei$pack @($GRi,$GRj),$ae */
16178
16179static SEM_PC
16180SEM_FN_NAME (frvbf,dcei) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16181{
16182#define FLD(f) abuf->fields.sfmt_icei.f
16183  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16184  int UNUSED written = 0;
16185  IADDR UNUSED pc = abuf->addr;
16186  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16187
16188if (EQSI (FLD (f_ae), 0)) {
16189frvbf_data_cache_invalidate (current_cpu, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), -1);
16190} else {
16191frvbf_data_cache_invalidate (current_cpu, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), FLD (f_ae));
16192}
16193
16194  return vpc;
16195#undef FLD
16196}
16197
16198/* dcf: dcf$pack @($GRi,$GRj) */
16199
16200static SEM_PC
16201SEM_FN_NAME (frvbf,dcf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16202{
16203#define FLD(f) abuf->fields.sfmt_icpl.f
16204  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16205  int UNUSED written = 0;
16206  IADDR UNUSED pc = abuf->addr;
16207  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16208
16209frvbf_data_cache_flush (current_cpu, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), 0);
16210
16211  return vpc;
16212#undef FLD
16213}
16214
16215/* dcef: dcef$pack @($GRi,$GRj),$ae */
16216
16217static SEM_PC
16218SEM_FN_NAME (frvbf,dcef) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16219{
16220#define FLD(f) abuf->fields.sfmt_icei.f
16221  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16222  int UNUSED written = 0;
16223  IADDR UNUSED pc = abuf->addr;
16224  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16225
16226if (EQSI (FLD (f_ae), 0)) {
16227frvbf_data_cache_flush (current_cpu, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), -1);
16228} else {
16229frvbf_data_cache_flush (current_cpu, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), FLD (f_ae));
16230}
16231
16232  return vpc;
16233#undef FLD
16234}
16235
16236/* witlb: witlb$pack $GRk,@($GRi,$GRj) */
16237
16238static SEM_PC
16239SEM_FN_NAME (frvbf,witlb) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16240{
16241#define FLD(f) abuf->fields.fmt_empty.f
16242  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16243  int UNUSED written = 0;
16244  IADDR UNUSED pc = abuf->addr;
16245  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16246
16247((void) 0); /*nop*/
16248
16249  return vpc;
16250#undef FLD
16251}
16252
16253/* wdtlb: wdtlb$pack $GRk,@($GRi,$GRj) */
16254
16255static SEM_PC
16256SEM_FN_NAME (frvbf,wdtlb) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16257{
16258#define FLD(f) abuf->fields.fmt_empty.f
16259  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16260  int UNUSED written = 0;
16261  IADDR UNUSED pc = abuf->addr;
16262  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16263
16264((void) 0); /*nop*/
16265
16266  return vpc;
16267#undef FLD
16268}
16269
16270/* itlbi: itlbi$pack @($GRi,$GRj) */
16271
16272static SEM_PC
16273SEM_FN_NAME (frvbf,itlbi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16274{
16275#define FLD(f) abuf->fields.fmt_empty.f
16276  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16277  int UNUSED written = 0;
16278  IADDR UNUSED pc = abuf->addr;
16279  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16280
16281((void) 0); /*nop*/
16282
16283  return vpc;
16284#undef FLD
16285}
16286
16287/* dtlbi: dtlbi$pack @($GRi,$GRj) */
16288
16289static SEM_PC
16290SEM_FN_NAME (frvbf,dtlbi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16291{
16292#define FLD(f) abuf->fields.fmt_empty.f
16293  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16294  int UNUSED written = 0;
16295  IADDR UNUSED pc = abuf->addr;
16296  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16297
16298((void) 0); /*nop*/
16299
16300  return vpc;
16301#undef FLD
16302}
16303
16304/* icpl: icpl$pack $GRi,$GRj,$lock */
16305
16306static SEM_PC
16307SEM_FN_NAME (frvbf,icpl) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16308{
16309#define FLD(f) abuf->fields.sfmt_icpl.f
16310  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16311  int UNUSED written = 0;
16312  IADDR UNUSED pc = abuf->addr;
16313  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16314
16315frvbf_insn_cache_preload (current_cpu, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), FLD (f_lock));
16316
16317  return vpc;
16318#undef FLD
16319}
16320
16321/* dcpl: dcpl$pack $GRi,$GRj,$lock */
16322
16323static SEM_PC
16324SEM_FN_NAME (frvbf,dcpl) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16325{
16326#define FLD(f) abuf->fields.sfmt_icpl.f
16327  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16328  int UNUSED written = 0;
16329  IADDR UNUSED pc = abuf->addr;
16330  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16331
16332frvbf_data_cache_preload (current_cpu, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), FLD (f_lock));
16333
16334  return vpc;
16335#undef FLD
16336}
16337
16338/* icul: icul$pack $GRi */
16339
16340static SEM_PC
16341SEM_FN_NAME (frvbf,icul) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16342{
16343#define FLD(f) abuf->fields.sfmt_jmpil.f
16344  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16345  int UNUSED written = 0;
16346  IADDR UNUSED pc = abuf->addr;
16347  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16348
16349frvbf_insn_cache_unlock (current_cpu, GET_H_GR (FLD (f_GRi)));
16350
16351  return vpc;
16352#undef FLD
16353}
16354
16355/* dcul: dcul$pack $GRi */
16356
16357static SEM_PC
16358SEM_FN_NAME (frvbf,dcul) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16359{
16360#define FLD(f) abuf->fields.sfmt_jmpil.f
16361  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16362  int UNUSED written = 0;
16363  IADDR UNUSED pc = abuf->addr;
16364  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16365
16366frvbf_data_cache_unlock (current_cpu, GET_H_GR (FLD (f_GRi)));
16367
16368  return vpc;
16369#undef FLD
16370}
16371
16372/* bar: bar$pack */
16373
16374static SEM_PC
16375SEM_FN_NAME (frvbf,bar) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16376{
16377#define FLD(f) abuf->fields.fmt_empty.f
16378  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16379  int UNUSED written = 0;
16380  IADDR UNUSED pc = abuf->addr;
16381  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16382
16383((void) 0); /*nop*/
16384
16385  return vpc;
16386#undef FLD
16387}
16388
16389/* membar: membar$pack */
16390
16391static SEM_PC
16392SEM_FN_NAME (frvbf,membar) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16393{
16394#define FLD(f) abuf->fields.fmt_empty.f
16395  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16396  int UNUSED written = 0;
16397  IADDR UNUSED pc = abuf->addr;
16398  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16399
16400((void) 0); /*nop*/
16401
16402  return vpc;
16403#undef FLD
16404}
16405
16406/* lrai: lrai$pack $GRi,$GRk,$LRAE,$LRAD,$LRAS */
16407
16408static SEM_PC
16409SEM_FN_NAME (frvbf,lrai) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16410{
16411#define FLD(f) abuf->fields.fmt_empty.f
16412  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16413  int UNUSED written = 0;
16414  IADDR UNUSED pc = abuf->addr;
16415  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16416
16417((void) 0); /*nop*/
16418
16419  return vpc;
16420#undef FLD
16421}
16422
16423/* lrad: lrad$pack $GRi,$GRk,$LRAE,$LRAD,$LRAS */
16424
16425static SEM_PC
16426SEM_FN_NAME (frvbf,lrad) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16427{
16428#define FLD(f) abuf->fields.fmt_empty.f
16429  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16430  int UNUSED written = 0;
16431  IADDR UNUSED pc = abuf->addr;
16432  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16433
16434((void) 0); /*nop*/
16435
16436  return vpc;
16437#undef FLD
16438}
16439
16440/* tlbpr: tlbpr$pack $GRi,$GRj,$TLBPRopx,$TLBPRL */
16441
16442static SEM_PC
16443SEM_FN_NAME (frvbf,tlbpr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16444{
16445#define FLD(f) abuf->fields.fmt_empty.f
16446  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16447  int UNUSED written = 0;
16448  IADDR UNUSED pc = abuf->addr;
16449  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16450
16451((void) 0); /*nop*/
16452
16453  return vpc;
16454#undef FLD
16455}
16456
16457/* cop1: cop1$pack $s6_1,$CPRi,$CPRj,$CPRk */
16458
16459static SEM_PC
16460SEM_FN_NAME (frvbf,cop1) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16461{
16462#define FLD(f) abuf->fields.fmt_empty.f
16463  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16464  int UNUSED written = 0;
16465  IADDR UNUSED pc = abuf->addr;
16466  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16467
16468((void) 0); /*nop*/
16469
16470  return vpc;
16471#undef FLD
16472}
16473
16474/* cop2: cop2$pack $s6_1,$CPRi,$CPRj,$CPRk */
16475
16476static SEM_PC
16477SEM_FN_NAME (frvbf,cop2) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16478{
16479#define FLD(f) abuf->fields.fmt_empty.f
16480  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16481  int UNUSED written = 0;
16482  IADDR UNUSED pc = abuf->addr;
16483  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16484
16485((void) 0); /*nop*/
16486
16487  return vpc;
16488#undef FLD
16489}
16490
16491/* clrgr: clrgr$pack $GRk */
16492
16493static SEM_PC
16494SEM_FN_NAME (frvbf,clrgr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16495{
16496#define FLD(f) abuf->fields.sfmt_swapi.f
16497  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16498  int UNUSED written = 0;
16499  IADDR UNUSED pc = abuf->addr;
16500  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16501
16502{
16503frv_ref_SI (GET_H_GR (FLD (f_GRk)));
16504frvbf_clear_ne_flags (current_cpu, FLD (f_GRk), 0);
16505}
16506
16507  return vpc;
16508#undef FLD
16509}
16510
16511/* clrfr: clrfr$pack $FRk */
16512
16513static SEM_PC
16514SEM_FN_NAME (frvbf,clrfr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16515{
16516#define FLD(f) abuf->fields.sfmt_cfmadds.f
16517  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16518  int UNUSED written = 0;
16519  IADDR UNUSED pc = abuf->addr;
16520  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16521
16522{
16523frv_ref_SI (GET_H_FR (FLD (f_FRk)));
16524frvbf_clear_ne_flags (current_cpu, FLD (f_FRk), 1);
16525}
16526
16527  return vpc;
16528#undef FLD
16529}
16530
16531/* clrga: clrga$pack */
16532
16533static SEM_PC
16534SEM_FN_NAME (frvbf,clrga) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16535{
16536#define FLD(f) abuf->fields.fmt_empty.f
16537  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16538  int UNUSED written = 0;
16539  IADDR UNUSED pc = abuf->addr;
16540  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16541
16542frvbf_clear_ne_flags (current_cpu, -1, 0);
16543
16544  return vpc;
16545#undef FLD
16546}
16547
16548/* clrfa: clrfa$pack */
16549
16550static SEM_PC
16551SEM_FN_NAME (frvbf,clrfa) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16552{
16553#define FLD(f) abuf->fields.fmt_empty.f
16554  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16555  int UNUSED written = 0;
16556  IADDR UNUSED pc = abuf->addr;
16557  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16558
16559frvbf_clear_ne_flags (current_cpu, -1, 1);
16560
16561  return vpc;
16562#undef FLD
16563}
16564
16565/* commitgr: commitgr$pack $GRk */
16566
16567static SEM_PC
16568SEM_FN_NAME (frvbf,commitgr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16569{
16570#define FLD(f) abuf->fields.sfmt_setlos.f
16571  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16572  int UNUSED written = 0;
16573  IADDR UNUSED pc = abuf->addr;
16574  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16575
16576frvbf_commit (current_cpu, FLD (f_GRk), 0);
16577
16578  return vpc;
16579#undef FLD
16580}
16581
16582/* commitfr: commitfr$pack $FRk */
16583
16584static SEM_PC
16585SEM_FN_NAME (frvbf,commitfr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16586{
16587#define FLD(f) abuf->fields.sfmt_mhsethis.f
16588  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16589  int UNUSED written = 0;
16590  IADDR UNUSED pc = abuf->addr;
16591  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16592
16593frvbf_commit (current_cpu, FLD (f_FRk), 1);
16594
16595  return vpc;
16596#undef FLD
16597}
16598
16599/* commitga: commitga$pack */
16600
16601static SEM_PC
16602SEM_FN_NAME (frvbf,commitga) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16603{
16604#define FLD(f) abuf->fields.fmt_empty.f
16605  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16606  int UNUSED written = 0;
16607  IADDR UNUSED pc = abuf->addr;
16608  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16609
16610frvbf_commit (current_cpu, -1, 0);
16611
16612  return vpc;
16613#undef FLD
16614}
16615
16616/* commitfa: commitfa$pack */
16617
16618static SEM_PC
16619SEM_FN_NAME (frvbf,commitfa) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16620{
16621#define FLD(f) abuf->fields.fmt_empty.f
16622  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16623  int UNUSED written = 0;
16624  IADDR UNUSED pc = abuf->addr;
16625  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16626
16627frvbf_commit (current_cpu, -1, 1);
16628
16629  return vpc;
16630#undef FLD
16631}
16632
16633/* fitos: fitos$pack $FRintj,$FRk */
16634
16635static SEM_PC
16636SEM_FN_NAME (frvbf,fitos) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16637{
16638#define FLD(f) abuf->fields.sfmt_fditos.f
16639  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16640  int UNUSED written = 0;
16641  IADDR UNUSED pc = abuf->addr;
16642  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16643
16644  {
16645    SF opval = CGEN_CPU_FPU (current_cpu)->ops->floatsisf (CGEN_CPU_FPU (current_cpu), GET_H_FR_INT (FLD (f_FRj)));
16646    sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
16647    TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
16648  }
16649
16650  return vpc;
16651#undef FLD
16652}
16653
16654/* fstoi: fstoi$pack $FRj,$FRintk */
16655
16656static SEM_PC
16657SEM_FN_NAME (frvbf,fstoi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16658{
16659#define FLD(f) abuf->fields.sfmt_fdstoi.f
16660  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16661  int UNUSED written = 0;
16662  IADDR UNUSED pc = abuf->addr;
16663  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16664
16665  {
16666    SI opval = CGEN_CPU_FPU (current_cpu)->ops->fixsfsi (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
16667    sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
16668    TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
16669  }
16670
16671  return vpc;
16672#undef FLD
16673}
16674
16675/* fitod: fitod$pack $FRintj,$FRdoublek */
16676
16677static SEM_PC
16678SEM_FN_NAME (frvbf,fitod) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16679{
16680#define FLD(f) abuf->fields.sfmt_fitod.f
16681  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16682  int UNUSED written = 0;
16683  IADDR UNUSED pc = abuf->addr;
16684  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16685
16686  {
16687    DF opval = CGEN_CPU_FPU (current_cpu)->ops->floatsidf (CGEN_CPU_FPU (current_cpu), GET_H_FR_INT (FLD (f_FRj)));
16688    sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
16689    TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
16690  }
16691
16692  return vpc;
16693#undef FLD
16694}
16695
16696/* fdtoi: fdtoi$pack $FRdoublej,$FRintk */
16697
16698static SEM_PC
16699SEM_FN_NAME (frvbf,fdtoi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16700{
16701#define FLD(f) abuf->fields.sfmt_fdtoi.f
16702  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16703  int UNUSED written = 0;
16704  IADDR UNUSED pc = abuf->addr;
16705  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16706
16707  {
16708    SI opval = CGEN_CPU_FPU (current_cpu)->ops->fixdfsi (CGEN_CPU_FPU (current_cpu), GET_H_FR_DOUBLE (FLD (f_FRj)));
16709    sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
16710    TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
16711  }
16712
16713  return vpc;
16714#undef FLD
16715}
16716
16717/* fditos: fditos$pack $FRintj,$FRk */
16718
16719static SEM_PC
16720SEM_FN_NAME (frvbf,fditos) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16721{
16722#define FLD(f) abuf->fields.sfmt_fditos.f
16723  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16724  int UNUSED written = 0;
16725  IADDR UNUSED pc = abuf->addr;
16726  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16727
16728{
16729  {
16730    SF opval = CGEN_CPU_FPU (current_cpu)->ops->floatsisf (CGEN_CPU_FPU (current_cpu), GET_H_FR_INT (FLD (f_FRj)));
16731    sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
16732    TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
16733  }
16734  {
16735    SF opval = CGEN_CPU_FPU (current_cpu)->ops->floatsisf (CGEN_CPU_FPU (current_cpu), GET_H_FR_INT (((FLD (f_FRj)) + (1))));
16736    sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
16737    TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
16738  }
16739}
16740
16741  return vpc;
16742#undef FLD
16743}
16744
16745/* fdstoi: fdstoi$pack $FRj,$FRintk */
16746
16747static SEM_PC
16748SEM_FN_NAME (frvbf,fdstoi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16749{
16750#define FLD(f) abuf->fields.sfmt_fdstoi.f
16751  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16752  int UNUSED written = 0;
16753  IADDR UNUSED pc = abuf->addr;
16754  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16755
16756{
16757  {
16758    SI opval = CGEN_CPU_FPU (current_cpu)->ops->fixsfsi (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
16759    sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
16760    TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
16761  }
16762  {
16763    USI opval = CGEN_CPU_FPU (current_cpu)->ops->fixsfsi (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRj)) + (1))));
16764    sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (1)), opval);
16765    TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
16766  }
16767}
16768
16769  return vpc;
16770#undef FLD
16771}
16772
16773/* nfditos: nfditos$pack $FRintj,$FRk */
16774
16775static SEM_PC
16776SEM_FN_NAME (frvbf,nfditos) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16777{
16778#define FLD(f) abuf->fields.sfmt_fditos.f
16779  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16780  int UNUSED written = 0;
16781  IADDR UNUSED pc = abuf->addr;
16782  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16783
16784{
16785frvbf_set_ne_index (current_cpu, FLD (f_FRk));
16786  {
16787    SF opval = CGEN_CPU_FPU (current_cpu)->ops->floatsisf (CGEN_CPU_FPU (current_cpu), GET_H_FR_INT (FLD (f_FRj)));
16788    sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
16789    TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
16790  }
16791frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
16792  {
16793    SF opval = CGEN_CPU_FPU (current_cpu)->ops->floatsisf (CGEN_CPU_FPU (current_cpu), GET_H_FR_INT (((FLD (f_FRj)) + (1))));
16794    sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
16795    TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
16796  }
16797}
16798
16799  return vpc;
16800#undef FLD
16801}
16802
16803/* nfdstoi: nfdstoi$pack $FRj,$FRintk */
16804
16805static SEM_PC
16806SEM_FN_NAME (frvbf,nfdstoi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16807{
16808#define FLD(f) abuf->fields.sfmt_fdstoi.f
16809  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16810  int UNUSED written = 0;
16811  IADDR UNUSED pc = abuf->addr;
16812  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16813
16814{
16815frvbf_set_ne_index (current_cpu, FLD (f_FRk));
16816  {
16817    SI opval = CGEN_CPU_FPU (current_cpu)->ops->fixsfsi (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
16818    sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
16819    TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
16820  }
16821frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
16822  {
16823    USI opval = CGEN_CPU_FPU (current_cpu)->ops->fixsfsi (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRj)) + (1))));
16824    sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (1)), opval);
16825    TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
16826  }
16827}
16828
16829  return vpc;
16830#undef FLD
16831}
16832
16833/* cfitos: cfitos$pack $FRintj,$FRk,$CCi,$cond */
16834
16835static SEM_PC
16836SEM_FN_NAME (frvbf,cfitos) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16837{
16838#define FLD(f) abuf->fields.sfmt_cfitos.f
16839  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16840  int UNUSED written = 0;
16841  IADDR UNUSED pc = abuf->addr;
16842  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16843
16844if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
16845  {
16846    SF opval = CGEN_CPU_FPU (current_cpu)->ops->floatsisf (CGEN_CPU_FPU (current_cpu), GET_H_FR_INT (FLD (f_FRj)));
16847    sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
16848    written |= (1 << 3);
16849    TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
16850  }
16851}
16852
16853  abuf->written = written;
16854  return vpc;
16855#undef FLD
16856}
16857
16858/* cfstoi: cfstoi$pack $FRj,$FRintk,$CCi,$cond */
16859
16860static SEM_PC
16861SEM_FN_NAME (frvbf,cfstoi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16862{
16863#define FLD(f) abuf->fields.sfmt_cfstoi.f
16864  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16865  int UNUSED written = 0;
16866  IADDR UNUSED pc = abuf->addr;
16867  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16868
16869if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
16870  {
16871    SI opval = CGEN_CPU_FPU (current_cpu)->ops->fixsfsi (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
16872    sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
16873    written |= (1 << 3);
16874    TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
16875  }
16876}
16877
16878  abuf->written = written;
16879  return vpc;
16880#undef FLD
16881}
16882
16883/* nfitos: nfitos$pack $FRintj,$FRk */
16884
16885static SEM_PC
16886SEM_FN_NAME (frvbf,nfitos) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16887{
16888#define FLD(f) abuf->fields.sfmt_fditos.f
16889  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16890  int UNUSED written = 0;
16891  IADDR UNUSED pc = abuf->addr;
16892  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16893
16894{
16895frvbf_set_ne_index (current_cpu, FLD (f_FRk));
16896  {
16897    SF opval = CGEN_CPU_FPU (current_cpu)->ops->floatsisf (CGEN_CPU_FPU (current_cpu), GET_H_FR_INT (FLD (f_FRj)));
16898    sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
16899    TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
16900  }
16901}
16902
16903  return vpc;
16904#undef FLD
16905}
16906
16907/* nfstoi: nfstoi$pack $FRj,$FRintk */
16908
16909static SEM_PC
16910SEM_FN_NAME (frvbf,nfstoi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16911{
16912#define FLD(f) abuf->fields.sfmt_fdstoi.f
16913  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16914  int UNUSED written = 0;
16915  IADDR UNUSED pc = abuf->addr;
16916  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16917
16918{
16919frvbf_set_ne_index (current_cpu, FLD (f_FRk));
16920  {
16921    SI opval = CGEN_CPU_FPU (current_cpu)->ops->fixsfsi (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
16922    sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
16923    TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
16924  }
16925}
16926
16927  return vpc;
16928#undef FLD
16929}
16930
16931/* fmovs: fmovs$pack $FRj,$FRk */
16932
16933static SEM_PC
16934SEM_FN_NAME (frvbf,fmovs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16935{
16936#define FLD(f) abuf->fields.sfmt_cfmadds.f
16937  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16938  int UNUSED written = 0;
16939  IADDR UNUSED pc = abuf->addr;
16940  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16941
16942  {
16943    SF opval = GET_H_FR (FLD (f_FRj));
16944    sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
16945    TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
16946  }
16947
16948  return vpc;
16949#undef FLD
16950}
16951
16952/* fmovd: fmovd$pack $FRdoublej,$FRdoublek */
16953
16954static SEM_PC
16955SEM_FN_NAME (frvbf,fmovd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16956{
16957#define FLD(f) abuf->fields.sfmt_fmaddd.f
16958  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16959  int UNUSED written = 0;
16960  IADDR UNUSED pc = abuf->addr;
16961  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16962
16963  {
16964    DF opval = GET_H_FR_DOUBLE (FLD (f_FRj));
16965    sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
16966    TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
16967  }
16968
16969  return vpc;
16970#undef FLD
16971}
16972
16973/* fdmovs: fdmovs$pack $FRj,$FRk */
16974
16975static SEM_PC
16976SEM_FN_NAME (frvbf,fdmovs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16977{
16978#define FLD(f) abuf->fields.sfmt_fdmadds.f
16979  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16980  int UNUSED written = 0;
16981  IADDR UNUSED pc = abuf->addr;
16982  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16983
16984{
16985  {
16986    SF opval = GET_H_FR (FLD (f_FRj));
16987    sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
16988    TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
16989  }
16990  {
16991    SF opval = GET_H_FR (((FLD (f_FRj)) + (1)));
16992    sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
16993    TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
16994  }
16995}
16996
16997  return vpc;
16998#undef FLD
16999}
17000
17001/* cfmovs: cfmovs$pack $FRj,$FRk,$CCi,$cond */
17002
17003static SEM_PC
17004SEM_FN_NAME (frvbf,cfmovs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17005{
17006#define FLD(f) abuf->fields.sfmt_cfmadds.f
17007  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17008  int UNUSED written = 0;
17009  IADDR UNUSED pc = abuf->addr;
17010  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17011
17012if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
17013  {
17014    SF opval = GET_H_FR (FLD (f_FRj));
17015    sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17016    written |= (1 << 3);
17017    TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17018  }
17019}
17020
17021  abuf->written = written;
17022  return vpc;
17023#undef FLD
17024}
17025
17026/* fnegs: fnegs$pack $FRj,$FRk */
17027
17028static SEM_PC
17029SEM_FN_NAME (frvbf,fnegs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17030{
17031#define FLD(f) abuf->fields.sfmt_cfmadds.f
17032  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17033  int UNUSED written = 0;
17034  IADDR UNUSED pc = abuf->addr;
17035  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17036
17037  {
17038    SF opval = CGEN_CPU_FPU (current_cpu)->ops->negsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17039    sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17040    TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17041  }
17042
17043  return vpc;
17044#undef FLD
17045}
17046
17047/* fnegd: fnegd$pack $FRdoublej,$FRdoublek */
17048
17049static SEM_PC
17050SEM_FN_NAME (frvbf,fnegd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17051{
17052#define FLD(f) abuf->fields.sfmt_fmaddd.f
17053  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17054  int UNUSED written = 0;
17055  IADDR UNUSED pc = abuf->addr;
17056  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17057
17058  {
17059    DF opval = CGEN_CPU_FPU (current_cpu)->ops->negdf (CGEN_CPU_FPU (current_cpu), GET_H_FR_DOUBLE (FLD (f_FRj)));
17060    sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
17061    TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
17062  }
17063
17064  return vpc;
17065#undef FLD
17066}
17067
17068/* fdnegs: fdnegs$pack $FRj,$FRk */
17069
17070static SEM_PC
17071SEM_FN_NAME (frvbf,fdnegs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17072{
17073#define FLD(f) abuf->fields.sfmt_fdmadds.f
17074  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17075  int UNUSED written = 0;
17076  IADDR UNUSED pc = abuf->addr;
17077  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17078
17079{
17080  {
17081    SF opval = CGEN_CPU_FPU (current_cpu)->ops->negsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17082    sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17083    TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17084  }
17085  {
17086    SF opval = CGEN_CPU_FPU (current_cpu)->ops->negsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRj)) + (1))));
17087    sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
17088    TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17089  }
17090}
17091
17092  return vpc;
17093#undef FLD
17094}
17095
17096/* cfnegs: cfnegs$pack $FRj,$FRk,$CCi,$cond */
17097
17098static SEM_PC
17099SEM_FN_NAME (frvbf,cfnegs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17100{
17101#define FLD(f) abuf->fields.sfmt_cfmadds.f
17102  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17103  int UNUSED written = 0;
17104  IADDR UNUSED pc = abuf->addr;
17105  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17106
17107if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
17108  {
17109    SF opval = CGEN_CPU_FPU (current_cpu)->ops->negsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17110    sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17111    written |= (1 << 3);
17112    TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17113  }
17114}
17115
17116  abuf->written = written;
17117  return vpc;
17118#undef FLD
17119}
17120
17121/* fabss: fabss$pack $FRj,$FRk */
17122
17123static SEM_PC
17124SEM_FN_NAME (frvbf,fabss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17125{
17126#define FLD(f) abuf->fields.sfmt_cfmadds.f
17127  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17128  int UNUSED written = 0;
17129  IADDR UNUSED pc = abuf->addr;
17130  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17131
17132  {
17133    SF opval = CGEN_CPU_FPU (current_cpu)->ops->abssf (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17134    sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17135    TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17136  }
17137
17138  return vpc;
17139#undef FLD
17140}
17141
17142/* fabsd: fabsd$pack $FRdoublej,$FRdoublek */
17143
17144static SEM_PC
17145SEM_FN_NAME (frvbf,fabsd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17146{
17147#define FLD(f) abuf->fields.sfmt_fmaddd.f
17148  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17149  int UNUSED written = 0;
17150  IADDR UNUSED pc = abuf->addr;
17151  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17152
17153  {
17154    DF opval = CGEN_CPU_FPU (current_cpu)->ops->absdf (CGEN_CPU_FPU (current_cpu), GET_H_FR_DOUBLE (FLD (f_FRj)));
17155    sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
17156    TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
17157  }
17158
17159  return vpc;
17160#undef FLD
17161}
17162
17163/* fdabss: fdabss$pack $FRj,$FRk */
17164
17165static SEM_PC
17166SEM_FN_NAME (frvbf,fdabss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17167{
17168#define FLD(f) abuf->fields.sfmt_fdmadds.f
17169  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17170  int UNUSED written = 0;
17171  IADDR UNUSED pc = abuf->addr;
17172  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17173
17174{
17175  {
17176    SF opval = CGEN_CPU_FPU (current_cpu)->ops->abssf (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17177    sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17178    TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17179  }
17180  {
17181    SF opval = CGEN_CPU_FPU (current_cpu)->ops->abssf (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRj)) + (1))));
17182    sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
17183    TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17184  }
17185}
17186
17187  return vpc;
17188#undef FLD
17189}
17190
17191/* cfabss: cfabss$pack $FRj,$FRk,$CCi,$cond */
17192
17193static SEM_PC
17194SEM_FN_NAME (frvbf,cfabss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17195{
17196#define FLD(f) abuf->fields.sfmt_cfmadds.f
17197  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17198  int UNUSED written = 0;
17199  IADDR UNUSED pc = abuf->addr;
17200  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17201
17202if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
17203  {
17204    SF opval = CGEN_CPU_FPU (current_cpu)->ops->abssf (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17205    sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17206    written |= (1 << 3);
17207    TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17208  }
17209}
17210
17211  abuf->written = written;
17212  return vpc;
17213#undef FLD
17214}
17215
17216/* fsqrts: fsqrts$pack $FRj,$FRk */
17217
17218static SEM_PC
17219SEM_FN_NAME (frvbf,fsqrts) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17220{
17221#define FLD(f) abuf->fields.sfmt_cfmadds.f
17222  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17223  int UNUSED written = 0;
17224  IADDR UNUSED pc = abuf->addr;
17225  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17226
17227  {
17228    SF opval = CGEN_CPU_FPU (current_cpu)->ops->sqrtsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17229    sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17230    TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17231  }
17232
17233  return vpc;
17234#undef FLD
17235}
17236
17237/* fdsqrts: fdsqrts$pack $FRj,$FRk */
17238
17239static SEM_PC
17240SEM_FN_NAME (frvbf,fdsqrts) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17241{
17242#define FLD(f) abuf->fields.sfmt_fdmadds.f
17243  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17244  int UNUSED written = 0;
17245  IADDR UNUSED pc = abuf->addr;
17246  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17247
17248{
17249  {
17250    SF opval = CGEN_CPU_FPU (current_cpu)->ops->sqrtsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17251    sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17252    TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17253  }
17254  {
17255    SF opval = CGEN_CPU_FPU (current_cpu)->ops->sqrtsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRj)) + (1))));
17256    sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
17257    TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17258  }
17259}
17260
17261  return vpc;
17262#undef FLD
17263}
17264
17265/* nfdsqrts: nfdsqrts$pack $FRj,$FRk */
17266
17267static SEM_PC
17268SEM_FN_NAME (frvbf,nfdsqrts) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17269{
17270#define FLD(f) abuf->fields.sfmt_fdmadds.f
17271  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17272  int UNUSED written = 0;
17273  IADDR UNUSED pc = abuf->addr;
17274  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17275
17276{
17277frvbf_set_ne_index (current_cpu, FLD (f_FRk));
17278  {
17279    SF opval = CGEN_CPU_FPU (current_cpu)->ops->sqrtsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17280    sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17281    TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17282  }
17283frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
17284  {
17285    SF opval = CGEN_CPU_FPU (current_cpu)->ops->sqrtsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRj)) + (1))));
17286    sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
17287    TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17288  }
17289}
17290
17291  return vpc;
17292#undef FLD
17293}
17294
17295/* fsqrtd: fsqrtd$pack $FRdoublej,$FRdoublek */
17296
17297static SEM_PC
17298SEM_FN_NAME (frvbf,fsqrtd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17299{
17300#define FLD(f) abuf->fields.sfmt_fmaddd.f
17301  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17302  int UNUSED written = 0;
17303  IADDR UNUSED pc = abuf->addr;
17304  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17305
17306  {
17307    DF opval = CGEN_CPU_FPU (current_cpu)->ops->sqrtdf (CGEN_CPU_FPU (current_cpu), GET_H_FR_DOUBLE (FLD (f_FRj)));
17308    sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
17309    TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
17310  }
17311
17312  return vpc;
17313#undef FLD
17314}
17315
17316/* cfsqrts: cfsqrts$pack $FRj,$FRk,$CCi,$cond */
17317
17318static SEM_PC
17319SEM_FN_NAME (frvbf,cfsqrts) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17320{
17321#define FLD(f) abuf->fields.sfmt_cfmadds.f
17322  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17323  int UNUSED written = 0;
17324  IADDR UNUSED pc = abuf->addr;
17325  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17326
17327if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
17328  {
17329    SF opval = CGEN_CPU_FPU (current_cpu)->ops->sqrtsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17330    sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17331    written |= (1 << 3);
17332    TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17333  }
17334}
17335
17336  abuf->written = written;
17337  return vpc;
17338#undef FLD
17339}
17340
17341/* nfsqrts: nfsqrts$pack $FRj,$FRk */
17342
17343static SEM_PC
17344SEM_FN_NAME (frvbf,nfsqrts) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17345{
17346#define FLD(f) abuf->fields.sfmt_cfmadds.f
17347  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17348  int UNUSED written = 0;
17349  IADDR UNUSED pc = abuf->addr;
17350  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17351
17352{
17353frvbf_set_ne_index (current_cpu, FLD (f_FRk));
17354  {
17355    SF opval = CGEN_CPU_FPU (current_cpu)->ops->sqrtsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17356    sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17357    TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17358  }
17359}
17360
17361  return vpc;
17362#undef FLD
17363}
17364
17365/* fadds: fadds$pack $FRi,$FRj,$FRk */
17366
17367static SEM_PC
17368SEM_FN_NAME (frvbf,fadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17369{
17370#define FLD(f) abuf->fields.sfmt_cfmadds.f
17371  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17372  int UNUSED written = 0;
17373  IADDR UNUSED pc = abuf->addr;
17374  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17375
17376  {
17377    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)));
17378    sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17379    TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17380  }
17381
17382  return vpc;
17383#undef FLD
17384}
17385
17386/* fsubs: fsubs$pack $FRi,$FRj,$FRk */
17387
17388static SEM_PC
17389SEM_FN_NAME (frvbf,fsubs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17390{
17391#define FLD(f) abuf->fields.sfmt_cfmadds.f
17392  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17393  int UNUSED written = 0;
17394  IADDR UNUSED pc = abuf->addr;
17395  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17396
17397  {
17398    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)));
17399    sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17400    TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17401  }
17402
17403  return vpc;
17404#undef FLD
17405}
17406
17407/* fmuls: fmuls$pack $FRi,$FRj,$FRk */
17408
17409static SEM_PC
17410SEM_FN_NAME (frvbf,fmuls) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17411{
17412#define FLD(f) abuf->fields.sfmt_cfmadds.f
17413  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17414  int UNUSED written = 0;
17415  IADDR UNUSED pc = abuf->addr;
17416  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17417
17418  {
17419    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)));
17420    sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17421    TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17422  }
17423
17424  return vpc;
17425#undef FLD
17426}
17427
17428/* fdivs: fdivs$pack $FRi,$FRj,$FRk */
17429
17430static SEM_PC
17431SEM_FN_NAME (frvbf,fdivs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17432{
17433#define FLD(f) abuf->fields.sfmt_cfmadds.f
17434  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17435  int UNUSED written = 0;
17436  IADDR UNUSED pc = abuf->addr;
17437  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17438
17439  {
17440    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)));
17441    sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17442    TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17443  }
17444
17445  return vpc;
17446#undef FLD
17447}
17448
17449/* faddd: faddd$pack $FRdoublei,$FRdoublej,$FRdoublek */
17450
17451static SEM_PC
17452SEM_FN_NAME (frvbf,faddd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17453{
17454#define FLD(f) abuf->fields.sfmt_fmaddd.f
17455  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17456  int UNUSED written = 0;
17457  IADDR UNUSED pc = abuf->addr;
17458  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17459
17460  {
17461    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)));
17462    sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
17463    TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
17464  }
17465
17466  return vpc;
17467#undef FLD
17468}
17469
17470/* fsubd: fsubd$pack $FRdoublei,$FRdoublej,$FRdoublek */
17471
17472static SEM_PC
17473SEM_FN_NAME (frvbf,fsubd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17474{
17475#define FLD(f) abuf->fields.sfmt_fmaddd.f
17476  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17477  int UNUSED written = 0;
17478  IADDR UNUSED pc = abuf->addr;
17479  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17480
17481  {
17482    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)));
17483    sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
17484    TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
17485  }
17486
17487  return vpc;
17488#undef FLD
17489}
17490
17491/* fmuld: fmuld$pack $FRdoublei,$FRdoublej,$FRdoublek */
17492
17493static SEM_PC
17494SEM_FN_NAME (frvbf,fmuld) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17495{
17496#define FLD(f) abuf->fields.sfmt_fmaddd.f
17497  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17498  int UNUSED written = 0;
17499  IADDR UNUSED pc = abuf->addr;
17500  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17501
17502  {
17503    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)));
17504    sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
17505    TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
17506  }
17507
17508  return vpc;
17509#undef FLD
17510}
17511
17512/* fdivd: fdivd$pack $FRdoublei,$FRdoublej,$FRdoublek */
17513
17514static SEM_PC
17515SEM_FN_NAME (frvbf,fdivd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17516{
17517#define FLD(f) abuf->fields.sfmt_fmaddd.f
17518  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17519  int UNUSED written = 0;
17520  IADDR UNUSED pc = abuf->addr;
17521  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17522
17523  {
17524    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)));
17525    sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
17526    TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
17527  }
17528
17529  return vpc;
17530#undef FLD
17531}
17532
17533/* cfadds: cfadds$pack $FRi,$FRj,$FRk,$CCi,$cond */
17534
17535static SEM_PC
17536SEM_FN_NAME (frvbf,cfadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17537{
17538#define FLD(f) abuf->fields.sfmt_cfmadds.f
17539  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17540  int UNUSED written = 0;
17541  IADDR UNUSED pc = abuf->addr;
17542  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17543
17544if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
17545  {
17546    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)));
17547    sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17548    written |= (1 << 4);
17549    TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17550  }
17551}
17552
17553  abuf->written = written;
17554  return vpc;
17555#undef FLD
17556}
17557
17558/* cfsubs: cfsubs$pack $FRi,$FRj,$FRk,$CCi,$cond */
17559
17560static SEM_PC
17561SEM_FN_NAME (frvbf,cfsubs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17562{
17563#define FLD(f) abuf->fields.sfmt_cfmadds.f
17564  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17565  int UNUSED written = 0;
17566  IADDR UNUSED pc = abuf->addr;
17567  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17568
17569if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
17570  {
17571    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)));
17572    sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17573    written |= (1 << 4);
17574    TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17575  }
17576}
17577
17578  abuf->written = written;
17579  return vpc;
17580#undef FLD
17581}
17582
17583/* cfmuls: cfmuls$pack $FRi,$FRj,$FRk,$CCi,$cond */
17584
17585static SEM_PC
17586SEM_FN_NAME (frvbf,cfmuls) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17587{
17588#define FLD(f) abuf->fields.sfmt_cfmadds.f
17589  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17590  int UNUSED written = 0;
17591  IADDR UNUSED pc = abuf->addr;
17592  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17593
17594if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
17595  {
17596    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)));
17597    sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17598    written |= (1 << 4);
17599    TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17600  }
17601}
17602
17603  abuf->written = written;
17604  return vpc;
17605#undef FLD
17606}
17607
17608/* cfdivs: cfdivs$pack $FRi,$FRj,$FRk,$CCi,$cond */
17609
17610static SEM_PC
17611SEM_FN_NAME (frvbf,cfdivs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17612{
17613#define FLD(f) abuf->fields.sfmt_cfmadds.f
17614  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17615  int UNUSED written = 0;
17616  IADDR UNUSED pc = abuf->addr;
17617  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17618
17619if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
17620  {
17621    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)));
17622    sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17623    written |= (1 << 4);
17624    TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17625  }
17626}
17627
17628  abuf->written = written;
17629  return vpc;
17630#undef FLD
17631}
17632
17633/* nfadds: nfadds$pack $FRi,$FRj,$FRk */
17634
17635static SEM_PC
17636SEM_FN_NAME (frvbf,nfadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17637{
17638#define FLD(f) abuf->fields.sfmt_cfmadds.f
17639  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17640  int UNUSED written = 0;
17641  IADDR UNUSED pc = abuf->addr;
17642  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17643
17644{
17645frvbf_set_ne_index (current_cpu, FLD (f_FRk));
17646  {
17647    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)));
17648    sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17649    TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17650  }
17651}
17652
17653  return vpc;
17654#undef FLD
17655}
17656
17657/* nfsubs: nfsubs$pack $FRi,$FRj,$FRk */
17658
17659static SEM_PC
17660SEM_FN_NAME (frvbf,nfsubs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17661{
17662#define FLD(f) abuf->fields.sfmt_cfmadds.f
17663  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17664  int UNUSED written = 0;
17665  IADDR UNUSED pc = abuf->addr;
17666  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17667
17668{
17669frvbf_set_ne_index (current_cpu, FLD (f_FRk));
17670  {
17671    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)));
17672    sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17673    TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17674  }
17675}
17676
17677  return vpc;
17678#undef FLD
17679}
17680
17681/* nfmuls: nfmuls$pack $FRi,$FRj,$FRk */
17682
17683static SEM_PC
17684SEM_FN_NAME (frvbf,nfmuls) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17685{
17686#define FLD(f) abuf->fields.sfmt_cfmadds.f
17687  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17688  int UNUSED written = 0;
17689  IADDR UNUSED pc = abuf->addr;
17690  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17691
17692{
17693frvbf_set_ne_index (current_cpu, FLD (f_FRk));
17694  {
17695    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)));
17696    sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17697    TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17698  }
17699}
17700
17701  return vpc;
17702#undef FLD
17703}
17704
17705/* nfdivs: nfdivs$pack $FRi,$FRj,$FRk */
17706
17707static SEM_PC
17708SEM_FN_NAME (frvbf,nfdivs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17709{
17710#define FLD(f) abuf->fields.sfmt_cfmadds.f
17711  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17712  int UNUSED written = 0;
17713  IADDR UNUSED pc = abuf->addr;
17714  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17715
17716{
17717frvbf_set_ne_index (current_cpu, FLD (f_FRk));
17718  {
17719    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)));
17720    sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17721    TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17722  }
17723}
17724
17725  return vpc;
17726#undef FLD
17727}
17728
17729/* fcmps: fcmps$pack $FRi,$FRj,$FCCi_2 */
17730
17731static SEM_PC
17732SEM_FN_NAME (frvbf,fcmps) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17733{
17734#define FLD(f) abuf->fields.sfmt_cfcmps.f
17735  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17736  int UNUSED written = 0;
17737  IADDR UNUSED pc = abuf->addr;
17738  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17739
17740if (CGEN_CPU_FPU (current_cpu)->ops->gtsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)))) {
17741  {
17742    UQI opval = 2;
17743    sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17744    written |= (1 << 2);
17745    TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17746  }
17747} else {
17748if (CGEN_CPU_FPU (current_cpu)->ops->eqsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)))) {
17749  {
17750    UQI opval = 8;
17751    sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17752    written |= (1 << 2);
17753    TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17754  }
17755} else {
17756if (CGEN_CPU_FPU (current_cpu)->ops->ltsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)))) {
17757  {
17758    UQI opval = 4;
17759    sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17760    written |= (1 << 2);
17761    TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17762  }
17763} else {
17764  {
17765    UQI opval = 1;
17766    sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17767    written |= (1 << 2);
17768    TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17769  }
17770}
17771}
17772}
17773
17774  abuf->written = written;
17775  return vpc;
17776#undef FLD
17777}
17778
17779/* fcmpd: fcmpd$pack $FRdoublei,$FRdoublej,$FCCi_2 */
17780
17781static SEM_PC
17782SEM_FN_NAME (frvbf,fcmpd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17783{
17784#define FLD(f) abuf->fields.sfmt_fcmpd.f
17785  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17786  int UNUSED written = 0;
17787  IADDR UNUSED pc = abuf->addr;
17788  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17789
17790if (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)))) {
17791  {
17792    UQI opval = 2;
17793    sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17794    written |= (1 << 2);
17795    TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17796  }
17797} else {
17798if (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)))) {
17799  {
17800    UQI opval = 8;
17801    sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17802    written |= (1 << 2);
17803    TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17804  }
17805} else {
17806if (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)))) {
17807  {
17808    UQI opval = 4;
17809    sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17810    written |= (1 << 2);
17811    TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17812  }
17813} else {
17814  {
17815    UQI opval = 1;
17816    sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17817    written |= (1 << 2);
17818    TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17819  }
17820}
17821}
17822}
17823
17824  abuf->written = written;
17825  return vpc;
17826#undef FLD
17827}
17828
17829/* cfcmps: cfcmps$pack $FRi,$FRj,$FCCi_2,$CCi,$cond */
17830
17831static SEM_PC
17832SEM_FN_NAME (frvbf,cfcmps) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17833{
17834#define FLD(f) abuf->fields.sfmt_cfcmps.f
17835  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17836  int UNUSED written = 0;
17837  IADDR UNUSED pc = abuf->addr;
17838  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17839
17840if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
17841if (CGEN_CPU_FPU (current_cpu)->ops->gtsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)))) {
17842  {
17843    UQI opval = 2;
17844    sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17845    written |= (1 << 4);
17846    TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17847  }
17848} else {
17849if (CGEN_CPU_FPU (current_cpu)->ops->eqsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)))) {
17850  {
17851    UQI opval = 8;
17852    sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17853    written |= (1 << 4);
17854    TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17855  }
17856} else {
17857if (CGEN_CPU_FPU (current_cpu)->ops->ltsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)))) {
17858  {
17859    UQI opval = 4;
17860    sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17861    written |= (1 << 4);
17862    TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17863  }
17864} else {
17865  {
17866    UQI opval = 1;
17867    sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17868    written |= (1 << 4);
17869    TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17870  }
17871}
17872}
17873}
17874}
17875
17876  abuf->written = written;
17877  return vpc;
17878#undef FLD
17879}
17880
17881/* fdcmps: fdcmps$pack $FRi,$FRj,$FCCi_2 */
17882
17883static SEM_PC
17884SEM_FN_NAME (frvbf,fdcmps) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17885{
17886#define FLD(f) abuf->fields.sfmt_nfdcmps.f
17887  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17888  int UNUSED written = 0;
17889  IADDR UNUSED pc = abuf->addr;
17890  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17891
17892{
17893if (CGEN_CPU_FPU (current_cpu)->ops->gtsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)))) {
17894  {
17895    UQI opval = 2;
17896    sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17897    written |= (1 << 7);
17898    TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17899  }
17900} else {
17901if (CGEN_CPU_FPU (current_cpu)->ops->eqsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)))) {
17902  {
17903    UQI opval = 8;
17904    sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17905    written |= (1 << 7);
17906    TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17907  }
17908} else {
17909if (CGEN_CPU_FPU (current_cpu)->ops->ltsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)))) {
17910  {
17911    UQI opval = 4;
17912    sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17913    written |= (1 << 7);
17914    TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17915  }
17916} else {
17917  {
17918    UQI opval = 1;
17919    sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17920    written |= (1 << 7);
17921    TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17922  }
17923}
17924}
17925}
17926if (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))))) {
17927  {
17928    UQI opval = 2;
17929    sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCi_2)) + (1))]), opval);
17930    written |= (1 << 8);
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)) + (1))), GET_H_FR (((FLD (f_FRj)) + (1))))) {
17935  {
17936    UQI opval = 8;
17937    sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCi_2)) + (1))]), opval);
17938    written |= (1 << 8);
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)) + (1))), GET_H_FR (((FLD (f_FRj)) + (1))))) {
17943  {
17944    UQI opval = 4;
17945    sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCi_2)) + (1))]), opval);
17946    written |= (1 << 8);
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)) + (1))]), opval);
17953    written |= (1 << 8);
17954    TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17955  }
17956}
17957}
17958}
17959}
17960
17961  abuf->written = written;
17962  return vpc;
17963#undef FLD
17964}
17965
17966/* fmadds: fmadds$pack $FRi,$FRj,$FRk */
17967
17968static SEM_PC
17969SEM_FN_NAME (frvbf,fmadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17970{
17971#define FLD(f) abuf->fields.sfmt_cfmadds.f
17972  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17973  int UNUSED written = 0;
17974  IADDR UNUSED pc = abuf->addr;
17975  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17976
17977  {
17978    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)));
17979    sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17980    TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17981  }
17982
17983  return vpc;
17984#undef FLD
17985}
17986
17987/* fmsubs: fmsubs$pack $FRi,$FRj,$FRk */
17988
17989static SEM_PC
17990SEM_FN_NAME (frvbf,fmsubs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17991{
17992#define FLD(f) abuf->fields.sfmt_cfmadds.f
17993  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17994  int UNUSED written = 0;
17995  IADDR UNUSED pc = abuf->addr;
17996  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17997
17998  {
17999    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)));
18000    sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18001    TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18002  }
18003
18004  return vpc;
18005#undef FLD
18006}
18007
18008/* fmaddd: fmaddd$pack $FRdoublei,$FRdoublej,$FRdoublek */
18009
18010static SEM_PC
18011SEM_FN_NAME (frvbf,fmaddd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18012{
18013#define FLD(f) abuf->fields.sfmt_fmaddd.f
18014  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18015  int UNUSED written = 0;
18016  IADDR UNUSED pc = abuf->addr;
18017  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18018
18019  {
18020    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)));
18021    sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
18022    TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
18023  }
18024
18025  return vpc;
18026#undef FLD
18027}
18028
18029/* fmsubd: fmsubd$pack $FRdoublei,$FRdoublej,$FRdoublek */
18030
18031static SEM_PC
18032SEM_FN_NAME (frvbf,fmsubd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18033{
18034#define FLD(f) abuf->fields.sfmt_fmaddd.f
18035  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18036  int UNUSED written = 0;
18037  IADDR UNUSED pc = abuf->addr;
18038  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18039
18040  {
18041    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)));
18042    sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
18043    TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
18044  }
18045
18046  return vpc;
18047#undef FLD
18048}
18049
18050/* fdmadds: fdmadds$pack $FRi,$FRj,$FRk */
18051
18052static SEM_PC
18053SEM_FN_NAME (frvbf,fdmadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18054{
18055#define FLD(f) abuf->fields.sfmt_fdmadds.f
18056  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18057  int UNUSED written = 0;
18058  IADDR UNUSED pc = abuf->addr;
18059  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18060
18061{
18062  {
18063    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)));
18064    sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18065    TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18066  }
18067  {
18068    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))));
18069    sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18070    TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18071  }
18072}
18073
18074  return vpc;
18075#undef FLD
18076}
18077
18078/* nfdmadds: nfdmadds$pack $FRi,$FRj,$FRk */
18079
18080static SEM_PC
18081SEM_FN_NAME (frvbf,nfdmadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18082{
18083#define FLD(f) abuf->fields.sfmt_fdmadds.f
18084  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18085  int UNUSED written = 0;
18086  IADDR UNUSED pc = abuf->addr;
18087  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18088
18089{
18090frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18091  {
18092    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)));
18093    sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18094    TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18095  }
18096frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18097  {
18098    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))));
18099    sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18100    TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18101  }
18102}
18103
18104  return vpc;
18105#undef FLD
18106}
18107
18108/* cfmadds: cfmadds$pack $FRi,$FRj,$FRk,$CCi,$cond */
18109
18110static SEM_PC
18111SEM_FN_NAME (frvbf,cfmadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18112{
18113#define FLD(f) abuf->fields.sfmt_cfmadds.f
18114  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18115  int UNUSED written = 0;
18116  IADDR UNUSED pc = abuf->addr;
18117  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18118
18119if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
18120  {
18121    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)));
18122    sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18123    written |= (1 << 5);
18124    TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18125  }
18126}
18127
18128  abuf->written = written;
18129  return vpc;
18130#undef FLD
18131}
18132
18133/* cfmsubs: cfmsubs$pack $FRi,$FRj,$FRk,$CCi,$cond */
18134
18135static SEM_PC
18136SEM_FN_NAME (frvbf,cfmsubs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18137{
18138#define FLD(f) abuf->fields.sfmt_cfmadds.f
18139  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18140  int UNUSED written = 0;
18141  IADDR UNUSED pc = abuf->addr;
18142  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18143
18144if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
18145  {
18146    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)));
18147    sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18148    written |= (1 << 5);
18149    TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18150  }
18151}
18152
18153  abuf->written = written;
18154  return vpc;
18155#undef FLD
18156}
18157
18158/* nfmadds: nfmadds$pack $FRi,$FRj,$FRk */
18159
18160static SEM_PC
18161SEM_FN_NAME (frvbf,nfmadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18162{
18163#define FLD(f) abuf->fields.sfmt_cfmadds.f
18164  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18165  int UNUSED written = 0;
18166  IADDR UNUSED pc = abuf->addr;
18167  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18168
18169{
18170frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18171  {
18172    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)));
18173    sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18174    TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18175  }
18176}
18177
18178  return vpc;
18179#undef FLD
18180}
18181
18182/* nfmsubs: nfmsubs$pack $FRi,$FRj,$FRk */
18183
18184static SEM_PC
18185SEM_FN_NAME (frvbf,nfmsubs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18186{
18187#define FLD(f) abuf->fields.sfmt_cfmadds.f
18188  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18189  int UNUSED written = 0;
18190  IADDR UNUSED pc = abuf->addr;
18191  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18192
18193{
18194frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18195  {
18196    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)));
18197    sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18198    TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18199  }
18200}
18201
18202  return vpc;
18203#undef FLD
18204}
18205
18206/* fmas: fmas$pack $FRi,$FRj,$FRk */
18207
18208static SEM_PC
18209SEM_FN_NAME (frvbf,fmas) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18210{
18211#define FLD(f) abuf->fields.sfmt_fdmadds.f
18212  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18213  int UNUSED written = 0;
18214  IADDR UNUSED pc = abuf->addr;
18215  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18216
18217{
18218  {
18219    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)));
18220    sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18221    TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18222  }
18223  {
18224    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))));
18225    sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18226    TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18227  }
18228}
18229
18230  return vpc;
18231#undef FLD
18232}
18233
18234/* fmss: fmss$pack $FRi,$FRj,$FRk */
18235
18236static SEM_PC
18237SEM_FN_NAME (frvbf,fmss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18238{
18239#define FLD(f) abuf->fields.sfmt_fdmadds.f
18240  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18241  int UNUSED written = 0;
18242  IADDR UNUSED pc = abuf->addr;
18243  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18244
18245{
18246  {
18247    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)));
18248    sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18249    TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18250  }
18251  {
18252    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))));
18253    sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18254    TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18255  }
18256}
18257
18258  return vpc;
18259#undef FLD
18260}
18261
18262/* fdmas: fdmas$pack $FRi,$FRj,$FRk */
18263
18264static SEM_PC
18265SEM_FN_NAME (frvbf,fdmas) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18266{
18267#define FLD(f) abuf->fields.sfmt_fdmas.f
18268  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18269  int UNUSED written = 0;
18270  IADDR UNUSED pc = abuf->addr;
18271  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18272
18273{
18274  {
18275    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)));
18276    sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18277    TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18278  }
18279  {
18280    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))));
18281    sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18282    TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18283  }
18284  {
18285    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))));
18286    sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (2)), opval);
18287    TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18288  }
18289  {
18290    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))));
18291    sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (3)), opval);
18292    TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18293  }
18294}
18295
18296  return vpc;
18297#undef FLD
18298}
18299
18300/* fdmss: fdmss$pack $FRi,$FRj,$FRk */
18301
18302static SEM_PC
18303SEM_FN_NAME (frvbf,fdmss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18304{
18305#define FLD(f) abuf->fields.sfmt_fdmas.f
18306  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18307  int UNUSED written = 0;
18308  IADDR UNUSED pc = abuf->addr;
18309  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18310
18311{
18312  {
18313    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)));
18314    sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18315    TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18316  }
18317  {
18318    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))));
18319    sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18320    TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18321  }
18322  {
18323    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))));
18324    sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (2)), opval);
18325    TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18326  }
18327  {
18328    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))));
18329    sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (3)), opval);
18330    TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18331  }
18332}
18333
18334  return vpc;
18335#undef FLD
18336}
18337
18338/* nfdmas: nfdmas$pack $FRi,$FRj,$FRk */
18339
18340static SEM_PC
18341SEM_FN_NAME (frvbf,nfdmas) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18342{
18343#define FLD(f) abuf->fields.sfmt_fdmas.f
18344  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18345  int UNUSED written = 0;
18346  IADDR UNUSED pc = abuf->addr;
18347  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18348
18349{
18350frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18351frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18352frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 2));
18353frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 3));
18354  {
18355    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)));
18356    sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18357    TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18358  }
18359  {
18360    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))));
18361    sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18362    TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18363  }
18364  {
18365    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))));
18366    sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (2)), opval);
18367    TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18368  }
18369  {
18370    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))));
18371    sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (3)), opval);
18372    TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18373  }
18374}
18375
18376  return vpc;
18377#undef FLD
18378}
18379
18380/* nfdmss: nfdmss$pack $FRi,$FRj,$FRk */
18381
18382static SEM_PC
18383SEM_FN_NAME (frvbf,nfdmss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18384{
18385#define FLD(f) abuf->fields.sfmt_fdmas.f
18386  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18387  int UNUSED written = 0;
18388  IADDR UNUSED pc = abuf->addr;
18389  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18390
18391{
18392frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18393frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18394frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 2));
18395frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 3));
18396  {
18397    SF opval = CGEN_CPU_FPU (current_cpu)->ops->mulsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)));
18398    sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18399    TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18400  }
18401  {
18402    SF opval = CGEN_CPU_FPU (current_cpu)->ops->subsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (1))), GET_H_FR (((FLD (f_FRj)) + (1))));
18403    sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18404    TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18405  }
18406  {
18407    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))));
18408    sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (2)), opval);
18409    TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18410  }
18411  {
18412    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))));
18413    sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (3)), opval);
18414    TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18415  }
18416}
18417
18418  return vpc;
18419#undef FLD
18420}
18421
18422/* cfmas: cfmas$pack $FRi,$FRj,$FRk,$CCi,$cond */
18423
18424static SEM_PC
18425SEM_FN_NAME (frvbf,cfmas) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18426{
18427#define FLD(f) abuf->fields.sfmt_cfmas.f
18428  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18429  int UNUSED written = 0;
18430  IADDR UNUSED pc = abuf->addr;
18431  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18432
18433if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
18434{
18435  {
18436    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)));
18437    sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18438    written |= (1 << 9);
18439    TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18440  }
18441  {
18442    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))));
18443    sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18444    written |= (1 << 10);
18445    TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18446  }
18447}
18448}
18449
18450  abuf->written = written;
18451  return vpc;
18452#undef FLD
18453}
18454
18455/* cfmss: cfmss$pack $FRi,$FRj,$FRk,$CCi,$cond */
18456
18457static SEM_PC
18458SEM_FN_NAME (frvbf,cfmss) (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->subsf (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/* fmad: fmad$pack $FRi,$FRj,$FRk */
18489
18490static SEM_PC
18491SEM_FN_NAME (frvbf,fmad) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18492{
18493#define FLD(f) abuf->fields.sfmt_fdmadds.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
18499{
18500  {
18501    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)))));
18502    sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18503    TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18504  }
18505  {
18506    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))))));
18507    sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18508    TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18509  }
18510}
18511
18512  return vpc;
18513#undef FLD
18514}
18515
18516/* fmsd: fmsd$pack $FRi,$FRj,$FRk */
18517
18518static SEM_PC
18519SEM_FN_NAME (frvbf,fmsd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18520{
18521#define FLD(f) abuf->fields.sfmt_fdmadds.f
18522  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18523  int UNUSED written = 0;
18524  IADDR UNUSED pc = abuf->addr;
18525  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18526
18527{
18528  {
18529    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)))));
18530    sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18531    TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18532  }
18533  {
18534    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))))));
18535    sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18536    TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18537  }
18538}
18539
18540  return vpc;
18541#undef FLD
18542}
18543
18544/* nfmas: nfmas$pack $FRi,$FRj,$FRk */
18545
18546static SEM_PC
18547SEM_FN_NAME (frvbf,nfmas) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18548{
18549#define FLD(f) abuf->fields.sfmt_fdmadds.f
18550  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18551  int UNUSED written = 0;
18552  IADDR UNUSED pc = abuf->addr;
18553  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18554
18555{
18556frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18557  {
18558    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)));
18559    sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18560    TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18561  }
18562frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18563  {
18564    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))));
18565    sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18566    TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18567  }
18568}
18569
18570  return vpc;
18571#undef FLD
18572}
18573
18574/* nfmss: nfmss$pack $FRi,$FRj,$FRk */
18575
18576static SEM_PC
18577SEM_FN_NAME (frvbf,nfmss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18578{
18579#define FLD(f) abuf->fields.sfmt_fdmadds.f
18580  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18581  int UNUSED written = 0;
18582  IADDR UNUSED pc = abuf->addr;
18583  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18584
18585{
18586frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18587  {
18588    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)));
18589    sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18590    TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18591  }
18592frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18593  {
18594    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))));
18595    sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18596    TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18597  }
18598}
18599
18600  return vpc;
18601#undef FLD
18602}
18603
18604/* fdadds: fdadds$pack $FRi,$FRj,$FRk */
18605
18606static SEM_PC
18607SEM_FN_NAME (frvbf,fdadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18608{
18609#define FLD(f) abuf->fields.sfmt_fdmadds.f
18610  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18611  int UNUSED written = 0;
18612  IADDR UNUSED pc = abuf->addr;
18613  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18614
18615{
18616  {
18617    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)));
18618    sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18619    TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18620  }
18621  {
18622    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))));
18623    sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18624    TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18625  }
18626}
18627
18628  return vpc;
18629#undef FLD
18630}
18631
18632/* fdsubs: fdsubs$pack $FRi,$FRj,$FRk */
18633
18634static SEM_PC
18635SEM_FN_NAME (frvbf,fdsubs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18636{
18637#define FLD(f) abuf->fields.sfmt_fdmadds.f
18638  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18639  int UNUSED written = 0;
18640  IADDR UNUSED pc = abuf->addr;
18641  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18642
18643{
18644  {
18645    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)));
18646    sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18647    TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18648  }
18649  {
18650    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))));
18651    sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18652    TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18653  }
18654}
18655
18656  return vpc;
18657#undef FLD
18658}
18659
18660/* fdmuls: fdmuls$pack $FRi,$FRj,$FRk */
18661
18662static SEM_PC
18663SEM_FN_NAME (frvbf,fdmuls) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18664{
18665#define FLD(f) abuf->fields.sfmt_fdmadds.f
18666  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18667  int UNUSED written = 0;
18668  IADDR UNUSED pc = abuf->addr;
18669  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18670
18671{
18672  {
18673    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)));
18674    sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18675    TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18676  }
18677  {
18678    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))));
18679    sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18680    TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18681  }
18682}
18683
18684  return vpc;
18685#undef FLD
18686}
18687
18688/* fddivs: fddivs$pack $FRi,$FRj,$FRk */
18689
18690static SEM_PC
18691SEM_FN_NAME (frvbf,fddivs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18692{
18693#define FLD(f) abuf->fields.sfmt_fdmadds.f
18694  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18695  int UNUSED written = 0;
18696  IADDR UNUSED pc = abuf->addr;
18697  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18698
18699{
18700  {
18701    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)));
18702    sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18703    TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18704  }
18705  {
18706    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))));
18707    sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18708    TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18709  }
18710}
18711
18712  return vpc;
18713#undef FLD
18714}
18715
18716/* fdsads: fdsads$pack $FRi,$FRj,$FRk */
18717
18718static SEM_PC
18719SEM_FN_NAME (frvbf,fdsads) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18720{
18721#define FLD(f) abuf->fields.sfmt_fdmadds.f
18722  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18723  int UNUSED written = 0;
18724  IADDR UNUSED pc = abuf->addr;
18725  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18726
18727{
18728  {
18729    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)));
18730    sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18731    TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18732  }
18733  {
18734    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))));
18735    sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18736    TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18737  }
18738}
18739
18740  return vpc;
18741#undef FLD
18742}
18743
18744/* fdmulcs: fdmulcs$pack $FRi,$FRj,$FRk */
18745
18746static SEM_PC
18747SEM_FN_NAME (frvbf,fdmulcs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18748{
18749#define FLD(f) abuf->fields.sfmt_fdmadds.f
18750  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18751  int UNUSED written = 0;
18752  IADDR UNUSED pc = abuf->addr;
18753  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18754
18755{
18756  {
18757    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))));
18758    sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18759    TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18760  }
18761  {
18762    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)));
18763    sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18764    TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18765  }
18766}
18767
18768  return vpc;
18769#undef FLD
18770}
18771
18772/* nfdmulcs: nfdmulcs$pack $FRi,$FRj,$FRk */
18773
18774static SEM_PC
18775SEM_FN_NAME (frvbf,nfdmulcs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18776{
18777#define FLD(f) abuf->fields.sfmt_fdmadds.f
18778  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18779  int UNUSED written = 0;
18780  IADDR UNUSED pc = abuf->addr;
18781  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18782
18783{
18784frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18785  {
18786    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))));
18787    sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18788    TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18789  }
18790frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18791  {
18792    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)));
18793    sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18794    TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18795  }
18796}
18797
18798  return vpc;
18799#undef FLD
18800}
18801
18802/* nfdadds: nfdadds$pack $FRi,$FRj,$FRk */
18803
18804static SEM_PC
18805SEM_FN_NAME (frvbf,nfdadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18806{
18807#define FLD(f) abuf->fields.sfmt_fdmadds.f
18808  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18809  int UNUSED written = 0;
18810  IADDR UNUSED pc = abuf->addr;
18811  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18812
18813{
18814frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18815  {
18816    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)));
18817    sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18818    TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18819  }
18820frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18821  {
18822    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))));
18823    sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18824    TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18825  }
18826}
18827
18828  return vpc;
18829#undef FLD
18830}
18831
18832/* nfdsubs: nfdsubs$pack $FRi,$FRj,$FRk */
18833
18834static SEM_PC
18835SEM_FN_NAME (frvbf,nfdsubs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18836{
18837#define FLD(f) abuf->fields.sfmt_fdmadds.f
18838  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18839  int UNUSED written = 0;
18840  IADDR UNUSED pc = abuf->addr;
18841  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18842
18843{
18844frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18845  {
18846    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)));
18847    sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18848    TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18849  }
18850frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18851  {
18852    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))));
18853    sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18854    TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18855  }
18856}
18857
18858  return vpc;
18859#undef FLD
18860}
18861
18862/* nfdmuls: nfdmuls$pack $FRi,$FRj,$FRk */
18863
18864static SEM_PC
18865SEM_FN_NAME (frvbf,nfdmuls) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18866{
18867#define FLD(f) abuf->fields.sfmt_fdmadds.f
18868  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18869  int UNUSED written = 0;
18870  IADDR UNUSED pc = abuf->addr;
18871  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18872
18873{
18874frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18875  {
18876    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)));
18877    sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18878    TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18879  }
18880frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18881  {
18882    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))));
18883    sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18884    TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18885  }
18886}
18887
18888  return vpc;
18889#undef FLD
18890}
18891
18892/* nfddivs: nfddivs$pack $FRi,$FRj,$FRk */
18893
18894static SEM_PC
18895SEM_FN_NAME (frvbf,nfddivs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18896{
18897#define FLD(f) abuf->fields.sfmt_fdmadds.f
18898  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18899  int UNUSED written = 0;
18900  IADDR UNUSED pc = abuf->addr;
18901  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18902
18903{
18904frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18905  {
18906    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)));
18907    sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18908    TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18909  }
18910frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18911  {
18912    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))));
18913    sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18914    TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18915  }
18916}
18917
18918  return vpc;
18919#undef FLD
18920}
18921
18922/* nfdsads: nfdsads$pack $FRi,$FRj,$FRk */
18923
18924static SEM_PC
18925SEM_FN_NAME (frvbf,nfdsads) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18926{
18927#define FLD(f) abuf->fields.sfmt_fdmadds.f
18928  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18929  int UNUSED written = 0;
18930  IADDR UNUSED pc = abuf->addr;
18931  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18932
18933{
18934frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18935  {
18936    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)));
18937    sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18938    TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18939  }
18940frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18941  {
18942    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))));
18943    sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18944    TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18945  }
18946}
18947
18948  return vpc;
18949#undef FLD
18950}
18951
18952/* nfdcmps: nfdcmps$pack $FRi,$FRj,$FCCi_2 */
18953
18954static SEM_PC
18955SEM_FN_NAME (frvbf,nfdcmps) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18956{
18957#define FLD(f) abuf->fields.sfmt_nfdcmps.f
18958  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18959  int UNUSED written = 0;
18960  IADDR UNUSED pc = abuf->addr;
18961  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18962
18963{
18964frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18965if (CGEN_CPU_FPU (current_cpu)->ops->gtsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)))) {
18966  {
18967    UQI opval = 2;
18968    sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
18969    written |= (1 << 8);
18970    TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
18971  }
18972} else {
18973if (CGEN_CPU_FPU (current_cpu)->ops->eqsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)))) {
18974  {
18975    UQI opval = 8;
18976    sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
18977    written |= (1 << 8);
18978    TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
18979  }
18980} else {
18981if (CGEN_CPU_FPU (current_cpu)->ops->ltsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)))) {
18982  {
18983    UQI opval = 4;
18984    sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
18985    written |= (1 << 8);
18986    TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
18987  }
18988} else {
18989  {
18990    UQI opval = 1;
18991    sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
18992    written |= (1 << 8);
18993    TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
18994  }
18995}
18996}
18997}
18998frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18999if (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))))) {
19000  {
19001    UQI opval = 2;
19002    sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCi_2)) + (1))]), opval);
19003    written |= (1 << 9);
19004    TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
19005  }
19006} else {
19007if (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))))) {
19008  {
19009    UQI opval = 8;
19010    sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCi_2)) + (1))]), opval);
19011    written |= (1 << 9);
19012    TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
19013  }
19014} else {
19015if (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))))) {
19016  {
19017    UQI opval = 4;
19018    sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCi_2)) + (1))]), opval);
19019    written |= (1 << 9);
19020    TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
19021  }
19022} else {
19023  {
19024    UQI opval = 1;
19025    sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCi_2)) + (1))]), opval);
19026    written |= (1 << 9);
19027    TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
19028  }
19029}
19030}
19031}
19032}
19033
19034  abuf->written = written;
19035  return vpc;
19036#undef FLD
19037}
19038
19039/* mhsetlos: mhsetlos$pack $u12,$FRklo */
19040
19041static SEM_PC
19042SEM_FN_NAME (frvbf,mhsetlos) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19043{
19044#define FLD(f) abuf->fields.sfmt_mhsetlos.f
19045  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19046  int UNUSED written = 0;
19047  IADDR UNUSED pc = abuf->addr;
19048  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19049
19050  {
19051    UHI opval = FLD (f_u12);
19052    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, FLD (f_FRk), opval);
19053    TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19054  }
19055
19056  return vpc;
19057#undef FLD
19058}
19059
19060/* mhsethis: mhsethis$pack $u12,$FRkhi */
19061
19062static SEM_PC
19063SEM_FN_NAME (frvbf,mhsethis) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19064{
19065#define FLD(f) abuf->fields.sfmt_mhsethis.f
19066  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19067  int UNUSED written = 0;
19068  IADDR UNUSED pc = abuf->addr;
19069  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19070
19071  {
19072    UHI opval = FLD (f_u12);
19073    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, FLD (f_FRk), opval);
19074    TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19075  }
19076
19077  return vpc;
19078#undef FLD
19079}
19080
19081/* mhdsets: mhdsets$pack $u12,$FRintk */
19082
19083static SEM_PC
19084SEM_FN_NAME (frvbf,mhdsets) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19085{
19086#define FLD(f) abuf->fields.sfmt_mhdsets.f
19087  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19088  int UNUSED written = 0;
19089  IADDR UNUSED pc = abuf->addr;
19090  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19091
19092{
19093  {
19094    SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
19095    sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19096    TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19097  }
19098  {
19099    UHI opval = FLD (f_u12);
19100    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
19101    TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19102  }
19103  {
19104    UHI opval = FLD (f_u12);
19105    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
19106    TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19107  }
19108}
19109
19110  return vpc;
19111#undef FLD
19112}
19113
19114/* mhsetloh: mhsetloh$pack $s5,$FRklo */
19115
19116static SEM_PC
19117SEM_FN_NAME (frvbf,mhsetloh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19118{
19119#define FLD(f) abuf->fields.sfmt_mhsetloh.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  HI tmp_tmp;
19127  tmp_tmp = GET_H_FR_LO (FLD (f_FRk));
19128  tmp_tmp = ANDHI (tmp_tmp, 2047);
19129  tmp_tmp = ORHI (tmp_tmp, SLLSI (ANDSI (FLD (f_s5), 31), 11));
19130  {
19131    UHI opval = tmp_tmp;
19132    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, FLD (f_FRk), opval);
19133    TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19134  }
19135}
19136
19137  return vpc;
19138#undef FLD
19139}
19140
19141/* mhsethih: mhsethih$pack $s5,$FRkhi */
19142
19143static SEM_PC
19144SEM_FN_NAME (frvbf,mhsethih) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19145{
19146#define FLD(f) abuf->fields.sfmt_mhsethih.f
19147  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19148  int UNUSED written = 0;
19149  IADDR UNUSED pc = abuf->addr;
19150  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19151
19152{
19153  HI tmp_tmp;
19154  tmp_tmp = GET_H_FR_HI (FLD (f_FRk));
19155  tmp_tmp = ANDHI (tmp_tmp, 2047);
19156  tmp_tmp = ORHI (tmp_tmp, SLLSI (ANDSI (FLD (f_s5), 31), 11));
19157  {
19158    UHI opval = tmp_tmp;
19159    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, FLD (f_FRk), opval);
19160    TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19161  }
19162}
19163
19164  return vpc;
19165#undef FLD
19166}
19167
19168/* mhdseth: mhdseth$pack $s5,$FRintk */
19169
19170static SEM_PC
19171SEM_FN_NAME (frvbf,mhdseth) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19172{
19173#define FLD(f) abuf->fields.sfmt_mhdseth.f
19174  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19175  int UNUSED written = 0;
19176  IADDR UNUSED pc = abuf->addr;
19177  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19178
19179{
19180  {
19181    SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
19182    sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19183    TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19184  }
19185{
19186  HI tmp_tmp;
19187  tmp_tmp = GET_H_FR_HI (((FLD (f_FRk)) + (0)));
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)) + (0)), opval);
19193    TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19194  }
19195}
19196{
19197  HI tmp_tmp;
19198  tmp_tmp = GET_H_FR_LO (((FLD (f_FRk)) + (0)));
19199  tmp_tmp = ANDHI (tmp_tmp, 2047);
19200  tmp_tmp = ORHI (tmp_tmp, SLLSI (ANDSI (FLD (f_s5), 31), 11));
19201  {
19202    UHI opval = tmp_tmp;
19203    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
19204    TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19205  }
19206}
19207}
19208
19209  return vpc;
19210#undef FLD
19211}
19212
19213/* mand: mand$pack $FRinti,$FRintj,$FRintk */
19214
19215static SEM_PC
19216SEM_FN_NAME (frvbf,mand) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19217{
19218#define FLD(f) abuf->fields.sfmt_mwcut.f
19219  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19220  int UNUSED written = 0;
19221  IADDR UNUSED pc = abuf->addr;
19222  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19223
19224  {
19225    SI opval = ANDSI (GET_H_FR_INT (FLD (f_FRi)), GET_H_FR_INT (FLD (f_FRj)));
19226    sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19227    TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19228  }
19229
19230  return vpc;
19231#undef FLD
19232}
19233
19234/* mor: mor$pack $FRinti,$FRintj,$FRintk */
19235
19236static SEM_PC
19237SEM_FN_NAME (frvbf,mor) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19238{
19239#define FLD(f) abuf->fields.sfmt_mwcut.f
19240  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19241  int UNUSED written = 0;
19242  IADDR UNUSED pc = abuf->addr;
19243  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19244
19245  {
19246    SI opval = ORSI (GET_H_FR_INT (FLD (f_FRi)), GET_H_FR_INT (FLD (f_FRj)));
19247    sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19248    TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19249  }
19250
19251  return vpc;
19252#undef FLD
19253}
19254
19255/* mxor: mxor$pack $FRinti,$FRintj,$FRintk */
19256
19257static SEM_PC
19258SEM_FN_NAME (frvbf,mxor) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19259{
19260#define FLD(f) abuf->fields.sfmt_mwcut.f
19261  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19262  int UNUSED written = 0;
19263  IADDR UNUSED pc = abuf->addr;
19264  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19265
19266  {
19267    SI opval = XORSI (GET_H_FR_INT (FLD (f_FRi)), GET_H_FR_INT (FLD (f_FRj)));
19268    sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19269    TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19270  }
19271
19272  return vpc;
19273#undef FLD
19274}
19275
19276/* cmand: cmand$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
19277
19278static SEM_PC
19279SEM_FN_NAME (frvbf,cmand) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19280{
19281#define FLD(f) abuf->fields.sfmt_cmand.f
19282  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19283  int UNUSED written = 0;
19284  IADDR UNUSED pc = abuf->addr;
19285  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19286
19287if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
19288  {
19289    SI opval = ANDSI (GET_H_FR_INT (FLD (f_FRi)), GET_H_FR_INT (FLD (f_FRj)));
19290    sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19291    written |= (1 << 4);
19292    TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19293  }
19294}
19295
19296  abuf->written = written;
19297  return vpc;
19298#undef FLD
19299}
19300
19301/* cmor: cmor$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
19302
19303static SEM_PC
19304SEM_FN_NAME (frvbf,cmor) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19305{
19306#define FLD(f) abuf->fields.sfmt_cmand.f
19307  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19308  int UNUSED written = 0;
19309  IADDR UNUSED pc = abuf->addr;
19310  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19311
19312if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
19313  {
19314    SI opval = ORSI (GET_H_FR_INT (FLD (f_FRi)), GET_H_FR_INT (FLD (f_FRj)));
19315    sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19316    written |= (1 << 4);
19317    TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19318  }
19319}
19320
19321  abuf->written = written;
19322  return vpc;
19323#undef FLD
19324}
19325
19326/* cmxor: cmxor$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
19327
19328static SEM_PC
19329SEM_FN_NAME (frvbf,cmxor) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19330{
19331#define FLD(f) abuf->fields.sfmt_cmand.f
19332  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19333  int UNUSED written = 0;
19334  IADDR UNUSED pc = abuf->addr;
19335  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19336
19337if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
19338  {
19339    SI opval = XORSI (GET_H_FR_INT (FLD (f_FRi)), GET_H_FR_INT (FLD (f_FRj)));
19340    sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19341    written |= (1 << 4);
19342    TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19343  }
19344}
19345
19346  abuf->written = written;
19347  return vpc;
19348#undef FLD
19349}
19350
19351/* mnot: mnot$pack $FRintj,$FRintk */
19352
19353static SEM_PC
19354SEM_FN_NAME (frvbf,mnot) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19355{
19356#define FLD(f) abuf->fields.sfmt_mcut.f
19357  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19358  int UNUSED written = 0;
19359  IADDR UNUSED pc = abuf->addr;
19360  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19361
19362  {
19363    SI opval = INVSI (GET_H_FR_INT (FLD (f_FRj)));
19364    sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19365    TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19366  }
19367
19368  return vpc;
19369#undef FLD
19370}
19371
19372/* cmnot: cmnot$pack $FRintj,$FRintk,$CCi,$cond */
19373
19374static SEM_PC
19375SEM_FN_NAME (frvbf,cmnot) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19376{
19377#define FLD(f) abuf->fields.sfmt_cmand.f
19378  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19379  int UNUSED written = 0;
19380  IADDR UNUSED pc = abuf->addr;
19381  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19382
19383if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
19384  {
19385    SI opval = INVSI (GET_H_FR_INT (FLD (f_FRj)));
19386    sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19387    written |= (1 << 3);
19388    TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19389  }
19390}
19391
19392  abuf->written = written;
19393  return vpc;
19394#undef FLD
19395}
19396
19397/* mrotli: mrotli$pack $FRinti,$u6,$FRintk */
19398
19399static SEM_PC
19400SEM_FN_NAME (frvbf,mrotli) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19401{
19402#define FLD(f) abuf->fields.sfmt_mwcuti.f
19403  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19404  int UNUSED written = 0;
19405  IADDR UNUSED pc = abuf->addr;
19406  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19407
19408  {
19409    SI opval = ROLSI (GET_H_FR_INT (FLD (f_FRi)), ANDSI (FLD (f_u6), 31));
19410    sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19411    TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19412  }
19413
19414  return vpc;
19415#undef FLD
19416}
19417
19418/* mrotri: mrotri$pack $FRinti,$u6,$FRintk */
19419
19420static SEM_PC
19421SEM_FN_NAME (frvbf,mrotri) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19422{
19423#define FLD(f) abuf->fields.sfmt_mwcuti.f
19424  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19425  int UNUSED written = 0;
19426  IADDR UNUSED pc = abuf->addr;
19427  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19428
19429  {
19430    SI opval = RORSI (GET_H_FR_INT (FLD (f_FRi)), ANDSI (FLD (f_u6), 31));
19431    sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19432    TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19433  }
19434
19435  return vpc;
19436#undef FLD
19437}
19438
19439/* mwcut: mwcut$pack $FRinti,$FRintj,$FRintk */
19440
19441static SEM_PC
19442SEM_FN_NAME (frvbf,mwcut) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19443{
19444#define FLD(f) abuf->fields.sfmt_mwcut.f
19445  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19446  int UNUSED written = 0;
19447  IADDR UNUSED pc = abuf->addr;
19448  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19449
19450  {
19451    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)));
19452    sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19453    TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19454  }
19455
19456  return vpc;
19457#undef FLD
19458}
19459
19460/* mwcuti: mwcuti$pack $FRinti,$u6,$FRintk */
19461
19462static SEM_PC
19463SEM_FN_NAME (frvbf,mwcuti) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19464{
19465#define FLD(f) abuf->fields.sfmt_mwcuti.f
19466  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19467  int UNUSED written = 0;
19468  IADDR UNUSED pc = abuf->addr;
19469  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19470
19471  {
19472    SI opval = frvbf_cut (current_cpu, GET_H_FR_INT (FLD (f_FRi)), GET_H_FR_INT (((FLD (f_FRi)) + (1))), FLD (f_u6));
19473    sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19474    TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19475  }
19476
19477  return vpc;
19478#undef FLD
19479}
19480
19481/* mcut: mcut$pack $ACC40Si,$FRintj,$FRintk */
19482
19483static SEM_PC
19484SEM_FN_NAME (frvbf,mcut) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19485{
19486#define FLD(f) abuf->fields.sfmt_mcut.f
19487  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19488  int UNUSED written = 0;
19489  IADDR UNUSED pc = abuf->addr;
19490  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19491
19492  {
19493    SI opval = frvbf_media_cut (current_cpu, GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_FR_INT (FLD (f_FRj)));
19494    sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19495    TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19496  }
19497
19498  return vpc;
19499#undef FLD
19500}
19501
19502/* mcuti: mcuti$pack $ACC40Si,$s6,$FRintk */
19503
19504static SEM_PC
19505SEM_FN_NAME (frvbf,mcuti) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19506{
19507#define FLD(f) abuf->fields.sfmt_mcuti.f
19508  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19509  int UNUSED written = 0;
19510  IADDR UNUSED pc = abuf->addr;
19511  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19512
19513  {
19514    SI opval = frvbf_media_cut (current_cpu, GET_H_ACC40S (FLD (f_ACC40Si)), FLD (f_s6));
19515    sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19516    TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19517  }
19518
19519  return vpc;
19520#undef FLD
19521}
19522
19523/* mcutss: mcutss$pack $ACC40Si,$FRintj,$FRintk */
19524
19525static SEM_PC
19526SEM_FN_NAME (frvbf,mcutss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19527{
19528#define FLD(f) abuf->fields.sfmt_mcut.f
19529  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19530  int UNUSED written = 0;
19531  IADDR UNUSED pc = abuf->addr;
19532  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19533
19534  {
19535    SI opval = frvbf_media_cut_ss (current_cpu, GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_FR_INT (FLD (f_FRj)));
19536    sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19537    TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19538  }
19539
19540  return vpc;
19541#undef FLD
19542}
19543
19544/* mcutssi: mcutssi$pack $ACC40Si,$s6,$FRintk */
19545
19546static SEM_PC
19547SEM_FN_NAME (frvbf,mcutssi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19548{
19549#define FLD(f) abuf->fields.sfmt_mcuti.f
19550  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19551  int UNUSED written = 0;
19552  IADDR UNUSED pc = abuf->addr;
19553  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19554
19555  {
19556    SI opval = frvbf_media_cut_ss (current_cpu, GET_H_ACC40S (FLD (f_ACC40Si)), FLD (f_s6));
19557    sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19558    TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19559  }
19560
19561  return vpc;
19562#undef FLD
19563}
19564
19565/* mdcutssi: mdcutssi$pack $ACC40Si,$s6,$FRintkeven */
19566
19567static SEM_PC
19568SEM_FN_NAME (frvbf,mdcutssi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19569{
19570#define FLD(f) abuf->fields.sfmt_mdcutssi.f
19571  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19572  int UNUSED written = 0;
19573  IADDR UNUSED pc = abuf->addr;
19574  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19575
19576if (ANDSI (FLD (f_ACC40Si), SUBSI (2, 1))) {
19577frvbf_media_acc_not_aligned (current_cpu);
19578} else {
19579if (ANDSI (FLD (f_FRk), SUBSI (2, 1))) {
19580frvbf_media_register_not_aligned (current_cpu);
19581} else {
19582{
19583  {
19584    SI opval = frvbf_media_cut_ss (current_cpu, GET_H_ACC40S (FLD (f_ACC40Si)), FLD (f_s6));
19585    sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19586    written |= (1 << 5);
19587    TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19588  }
19589  {
19590    USI opval = frvbf_media_cut_ss (current_cpu, GET_H_ACC40S (((FLD (f_ACC40Si)) + (1))), FLD (f_s6));
19591    sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (1)), opval);
19592    written |= (1 << 6);
19593    TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19594  }
19595}
19596}
19597}
19598
19599  abuf->written = written;
19600  return vpc;
19601#undef FLD
19602}
19603
19604/* maveh: maveh$pack $FRinti,$FRintj,$FRintk */
19605
19606static SEM_PC
19607SEM_FN_NAME (frvbf,maveh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19608{
19609#define FLD(f) abuf->fields.sfmt_mwcut.f
19610  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19611  int UNUSED written = 0;
19612  IADDR UNUSED pc = abuf->addr;
19613  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19614
19615  {
19616    SI opval = frvbf_media_average (current_cpu, GET_H_FR_INT (FLD (f_FRi)), GET_H_FR_INT (FLD (f_FRj)));
19617    sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19618    TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19619  }
19620
19621  return vpc;
19622#undef FLD
19623}
19624
19625/* msllhi: msllhi$pack $FRinti,$u6,$FRintk */
19626
19627static SEM_PC
19628SEM_FN_NAME (frvbf,msllhi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19629{
19630#define FLD(f) abuf->fields.sfmt_msllhi.f
19631  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19632  int UNUSED written = 0;
19633  IADDR UNUSED pc = abuf->addr;
19634  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19635
19636{
19637  {
19638    SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRi)));
19639    sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRi), opval);
19640    TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19641  }
19642  {
19643    SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
19644    sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19645    TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19646  }
19647  {
19648    UHI opval = SLLHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), ANDSI (FLD (f_u6), 15));
19649    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
19650    TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19651  }
19652  {
19653    UHI opval = SLLHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), ANDSI (FLD (f_u6), 15));
19654    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
19655    TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19656  }
19657}
19658
19659  return vpc;
19660#undef FLD
19661}
19662
19663/* msrlhi: msrlhi$pack $FRinti,$u6,$FRintk */
19664
19665static SEM_PC
19666SEM_FN_NAME (frvbf,msrlhi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19667{
19668#define FLD(f) abuf->fields.sfmt_msllhi.f
19669  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19670  int UNUSED written = 0;
19671  IADDR UNUSED pc = abuf->addr;
19672  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19673
19674{
19675  {
19676    SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRi)));
19677    sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRi), opval);
19678    TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19679  }
19680  {
19681    SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
19682    sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19683    TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19684  }
19685  {
19686    UHI opval = SRLHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), ANDSI (FLD (f_u6), 15));
19687    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
19688    TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19689  }
19690  {
19691    UHI opval = SRLHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), ANDSI (FLD (f_u6), 15));
19692    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
19693    TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19694  }
19695}
19696
19697  return vpc;
19698#undef FLD
19699}
19700
19701/* msrahi: msrahi$pack $FRinti,$u6,$FRintk */
19702
19703static SEM_PC
19704SEM_FN_NAME (frvbf,msrahi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19705{
19706#define FLD(f) abuf->fields.sfmt_msllhi.f
19707  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19708  int UNUSED written = 0;
19709  IADDR UNUSED pc = abuf->addr;
19710  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19711
19712{
19713  {
19714    SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRi)));
19715    sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRi), opval);
19716    TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19717  }
19718  {
19719    SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
19720    sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19721    TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19722  }
19723  {
19724    UHI opval = SRAHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), ANDSI (FLD (f_u6), 15));
19725    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
19726    TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19727  }
19728  {
19729    UHI opval = SRAHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), ANDSI (FLD (f_u6), 15));
19730    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
19731    TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19732  }
19733}
19734
19735  return vpc;
19736#undef FLD
19737}
19738
19739/* mdrotli: mdrotli$pack $FRintieven,$s6,$FRintkeven */
19740
19741static SEM_PC
19742SEM_FN_NAME (frvbf,mdrotli) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19743{
19744#define FLD(f) abuf->fields.sfmt_mdrotli.f
19745  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19746  int UNUSED written = 0;
19747  IADDR UNUSED pc = abuf->addr;
19748  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19749
19750if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1)))) {
19751frvbf_media_register_not_aligned (current_cpu);
19752} else {
19753{
19754  {
19755    SI opval = ROLSI (GET_H_FR_INT (FLD (f_FRi)), ANDSI (FLD (f_s6), 31));
19756    sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19757    written |= (1 << 5);
19758    TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19759  }
19760  {
19761    USI opval = ROLSI (GET_H_FR_INT (((FLD (f_FRi)) + (1))), ANDSI (FLD (f_s6), 31));
19762    sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (1)), opval);
19763    written |= (1 << 6);
19764    TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19765  }
19766}
19767}
19768
19769  abuf->written = written;
19770  return vpc;
19771#undef FLD
19772}
19773
19774/* mcplhi: mcplhi$pack $FRinti,$u6,$FRintk */
19775
19776static SEM_PC
19777SEM_FN_NAME (frvbf,mcplhi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19778{
19779#define FLD(f) abuf->fields.sfmt_mcplhi.f
19780  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19781  int UNUSED written = 0;
19782  IADDR UNUSED pc = abuf->addr;
19783  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19784
19785{
19786  HI tmp_arg1;
19787  HI tmp_arg2;
19788  HI tmp_shift;
19789  {
19790    SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRi)));
19791    sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRi), opval);
19792    TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19793  }
19794  {
19795    SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
19796    sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19797    TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19798  }
19799  tmp_shift = ANDSI (FLD (f_u6), 15);
19800  tmp_arg1 = SLLHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), tmp_shift);
19801if (NEHI (tmp_shift, 0)) {
19802{
19803  tmp_arg2 = GET_H_FR_HI (((FLD (f_FRi)) + (1)));
19804  tmp_arg2 = SRLHI (SLLHI (tmp_arg2, SUBSI (15, tmp_shift)), SUBSI (15, tmp_shift));
19805  tmp_arg1 = ORHI (tmp_arg1, tmp_arg2);
19806}
19807}
19808  {
19809    UHI opval = tmp_arg1;
19810    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
19811    TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19812  }
19813}
19814
19815  return vpc;
19816#undef FLD
19817}
19818
19819/* mcpli: mcpli$pack $FRinti,$u6,$FRintk */
19820
19821static SEM_PC
19822SEM_FN_NAME (frvbf,mcpli) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19823{
19824#define FLD(f) abuf->fields.sfmt_mwcuti.f
19825  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19826  int UNUSED written = 0;
19827  IADDR UNUSED pc = abuf->addr;
19828  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19829
19830{
19831  SI tmp_tmp;
19832  SI tmp_shift;
19833  tmp_shift = ANDSI (FLD (f_u6), 31);
19834  tmp_tmp = SLLSI (GET_H_FR_INT (FLD (f_FRi)), tmp_shift);
19835if (NESI (tmp_shift, 0)) {
19836{
19837  SI tmp_tmp1;
19838  tmp_tmp1 = SRLSI (SLLSI (GET_H_FR_INT (((FLD (f_FRi)) + (1))), SUBSI (31, tmp_shift)), SUBSI (31, tmp_shift));
19839  tmp_tmp = ORSI (tmp_tmp, tmp_tmp1);
19840}
19841}
19842  {
19843    SI opval = tmp_tmp;
19844    sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19845    TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19846  }
19847}
19848
19849  return vpc;
19850#undef FLD
19851}
19852
19853/* msaths: msaths$pack $FRinti,$FRintj,$FRintk */
19854
19855static SEM_PC
19856SEM_FN_NAME (frvbf,msaths) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19857{
19858#define FLD(f) abuf->fields.sfmt_cmaddhss.f
19859  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19860  int UNUSED written = 0;
19861  IADDR UNUSED pc = abuf->addr;
19862  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19863
19864{
19865  HI tmp_argihi;
19866  HI tmp_argilo;
19867  HI tmp_argjhi;
19868  HI tmp_argjlo;
19869{
19870  tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
19871  tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
19872  tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
19873  tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
19874}
19875if (GTHI (tmp_argihi, tmp_argjhi)) {
19876  {
19877    UHI opval = tmp_argjhi;
19878    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
19879    written |= (1 << 9);
19880    TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19881  }
19882} else {
19883if (LTHI (tmp_argihi, INVHI (tmp_argjhi))) {
19884  {
19885    UHI opval = INVHI (tmp_argjhi);
19886    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
19887    written |= (1 << 9);
19888    TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19889  }
19890} else {
19891  {
19892    UHI opval = tmp_argihi;
19893    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
19894    written |= (1 << 9);
19895    TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19896  }
19897}
19898}
19899if (GTHI (tmp_argilo, tmp_argjlo)) {
19900  {
19901    UHI opval = tmp_argjlo;
19902    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
19903    written |= (1 << 10);
19904    TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19905  }
19906} else {
19907if (LTHI (tmp_argilo, INVHI (tmp_argjlo))) {
19908  {
19909    UHI opval = INVHI (tmp_argjlo);
19910    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
19911    written |= (1 << 10);
19912    TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19913  }
19914} else {
19915  {
19916    UHI opval = tmp_argilo;
19917    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
19918    written |= (1 << 10);
19919    TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19920  }
19921}
19922}
19923}
19924
19925  abuf->written = written;
19926  return vpc;
19927#undef FLD
19928}
19929
19930/* mqsaths: mqsaths$pack $FRintieven,$FRintjeven,$FRintkeven */
19931
19932static SEM_PC
19933SEM_FN_NAME (frvbf,mqsaths) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19934{
19935#define FLD(f) abuf->fields.sfmt_cmqaddhss.f
19936  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19937  int UNUSED written = 0;
19938  IADDR UNUSED pc = abuf->addr;
19939  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19940
19941if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
19942frvbf_media_register_not_aligned (current_cpu);
19943} else {
19944{
19945  HI tmp_argihi;
19946  HI tmp_argilo;
19947  HI tmp_argjhi;
19948  HI tmp_argjlo;
19949  {
19950    SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
19951    sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19952    written |= (1 << 14);
19953    TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19954  }
19955{
19956  tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
19957  tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
19958  tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
19959  tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
19960}
19961if (GTHI (tmp_argihi, tmp_argjhi)) {
19962  {
19963    UHI opval = tmp_argjhi;
19964    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
19965    written |= (1 << 15);
19966    TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19967  }
19968} else {
19969if (LTHI (tmp_argihi, INVHI (tmp_argjhi))) {
19970  {
19971    UHI opval = INVHI (tmp_argjhi);
19972    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
19973    written |= (1 << 15);
19974    TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19975  }
19976} else {
19977  {
19978    UHI opval = tmp_argihi;
19979    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
19980    written |= (1 << 15);
19981    TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19982  }
19983}
19984}
19985if (GTHI (tmp_argilo, tmp_argjlo)) {
19986  {
19987    UHI opval = tmp_argjlo;
19988    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
19989    written |= (1 << 17);
19990    TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19991  }
19992} else {
19993if (LTHI (tmp_argilo, INVHI (tmp_argjlo))) {
19994  {
19995    UHI opval = INVHI (tmp_argjlo);
19996    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
19997    written |= (1 << 17);
19998    TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19999  }
20000} else {
20001  {
20002    UHI opval = tmp_argilo;
20003    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20004    written |= (1 << 17);
20005    TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20006  }
20007}
20008}
20009{
20010  tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20011  tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20012  tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20013  tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20014}
20015if (GTHI (tmp_argihi, tmp_argjhi)) {
20016  {
20017    UHI opval = tmp_argjhi;
20018    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
20019    written |= (1 << 16);
20020    TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20021  }
20022} else {
20023if (LTHI (tmp_argihi, INVHI (tmp_argjhi))) {
20024  {
20025    UHI opval = INVHI (tmp_argjhi);
20026    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
20027    written |= (1 << 16);
20028    TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20029  }
20030} else {
20031  {
20032    UHI opval = tmp_argihi;
20033    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
20034    written |= (1 << 16);
20035    TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20036  }
20037}
20038}
20039if (GTHI (tmp_argilo, tmp_argjlo)) {
20040  {
20041    UHI opval = tmp_argjlo;
20042    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
20043    written |= (1 << 18);
20044    TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20045  }
20046} else {
20047if (LTHI (tmp_argilo, INVHI (tmp_argjlo))) {
20048  {
20049    UHI opval = INVHI (tmp_argjlo);
20050    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
20051    written |= (1 << 18);
20052    TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20053  }
20054} else {
20055  {
20056    UHI opval = tmp_argilo;
20057    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
20058    written |= (1 << 18);
20059    TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20060  }
20061}
20062}
20063}
20064}
20065
20066  abuf->written = written;
20067  return vpc;
20068#undef FLD
20069}
20070
20071/* msathu: msathu$pack $FRinti,$FRintj,$FRintk */
20072
20073static SEM_PC
20074SEM_FN_NAME (frvbf,msathu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20075{
20076#define FLD(f) abuf->fields.sfmt_cmaddhss.f
20077  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20078  int UNUSED written = 0;
20079  IADDR UNUSED pc = abuf->addr;
20080  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20081
20082{
20083  UHI tmp_argihi;
20084  UHI tmp_argilo;
20085  UHI tmp_argjhi;
20086  UHI tmp_argjlo;
20087{
20088  tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20089  tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20090  tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20091  tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20092}
20093if (GTUHI (tmp_argihi, tmp_argjhi)) {
20094  {
20095    UHI opval = tmp_argjhi;
20096    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20097    written |= (1 << 9);
20098    TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20099  }
20100} else {
20101  {
20102    UHI opval = tmp_argihi;
20103    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20104    written |= (1 << 9);
20105    TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20106  }
20107}
20108if (GTUHI (tmp_argilo, tmp_argjlo)) {
20109  {
20110    UHI opval = tmp_argjlo;
20111    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20112    written |= (1 << 10);
20113    TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20114  }
20115} else {
20116  {
20117    UHI opval = tmp_argilo;
20118    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20119    written |= (1 << 10);
20120    TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20121  }
20122}
20123}
20124
20125  abuf->written = written;
20126  return vpc;
20127#undef FLD
20128}
20129
20130/* mcmpsh: mcmpsh$pack $FRinti,$FRintj,$FCCk */
20131
20132static SEM_PC
20133SEM_FN_NAME (frvbf,mcmpsh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20134{
20135#define FLD(f) abuf->fields.sfmt_mcmpsh.f
20136  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20137  int UNUSED written = 0;
20138  IADDR UNUSED pc = abuf->addr;
20139  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20140
20141if (ANDSI (FLD (f_FCCk), SUBSI (2, 1))) {
20142frvbf_media_cr_not_aligned (current_cpu);
20143} else {
20144{
20145  HI tmp_argihi;
20146  HI tmp_argilo;
20147  HI tmp_argjhi;
20148  HI tmp_argjlo;
20149{
20150  tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20151  tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20152  tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20153  tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20154}
20155if (GTHI (tmp_argihi, tmp_argjhi)) {
20156  {
20157    UQI opval = 2;
20158    sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCk)]), opval);
20159    written |= (1 << 9);
20160    TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20161  }
20162} else {
20163if (EQHI (tmp_argihi, tmp_argjhi)) {
20164  {
20165    UQI opval = 8;
20166    sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCk)]), opval);
20167    written |= (1 << 9);
20168    TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20169  }
20170} else {
20171if (LTHI (tmp_argihi, tmp_argjhi)) {
20172  {
20173    UQI opval = 4;
20174    sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCk)]), opval);
20175    written |= (1 << 9);
20176    TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20177  }
20178} else {
20179  {
20180    UQI opval = 1;
20181    sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCk)]), opval);
20182    written |= (1 << 9);
20183    TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20184  }
20185}
20186}
20187}
20188if (GTHI (tmp_argilo, tmp_argjlo)) {
20189  {
20190    UQI opval = 2;
20191    sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCk)) + (1))]), opval);
20192    written |= (1 << 10);
20193    TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20194  }
20195} else {
20196if (EQHI (tmp_argilo, tmp_argjlo)) {
20197  {
20198    UQI opval = 8;
20199    sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCk)) + (1))]), opval);
20200    written |= (1 << 10);
20201    TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20202  }
20203} else {
20204if (LTHI (tmp_argilo, tmp_argjlo)) {
20205  {
20206    UQI opval = 4;
20207    sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCk)) + (1))]), opval);
20208    written |= (1 << 10);
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)) + (1))]), opval);
20215    written |= (1 << 10);
20216    TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20217  }
20218}
20219}
20220}
20221}
20222}
20223
20224  abuf->written = written;
20225  return vpc;
20226#undef FLD
20227}
20228
20229/* mcmpuh: mcmpuh$pack $FRinti,$FRintj,$FCCk */
20230
20231static SEM_PC
20232SEM_FN_NAME (frvbf,mcmpuh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20233{
20234#define FLD(f) abuf->fields.sfmt_mcmpsh.f
20235  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20236  int UNUSED written = 0;
20237  IADDR UNUSED pc = abuf->addr;
20238  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20239
20240if (ANDSI (FLD (f_FCCk), SUBSI (2, 1))) {
20241frvbf_media_cr_not_aligned (current_cpu);
20242} else {
20243{
20244  UHI tmp_argihi;
20245  UHI tmp_argilo;
20246  UHI tmp_argjhi;
20247  UHI tmp_argjlo;
20248{
20249  tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20250  tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20251  tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20252  tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20253}
20254if (GTUHI (tmp_argihi, tmp_argjhi)) {
20255  {
20256    UQI opval = 2;
20257    sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCk)]), opval);
20258    written |= (1 << 9);
20259    TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20260  }
20261} else {
20262if (EQHI (tmp_argihi, tmp_argjhi)) {
20263  {
20264    UQI opval = 8;
20265    sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCk)]), opval);
20266    written |= (1 << 9);
20267    TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20268  }
20269} else {
20270if (LTUHI (tmp_argihi, tmp_argjhi)) {
20271  {
20272    UQI opval = 4;
20273    sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCk)]), opval);
20274    written |= (1 << 9);
20275    TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20276  }
20277} else {
20278  {
20279    UQI opval = 1;
20280    sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCk)]), opval);
20281    written |= (1 << 9);
20282    TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20283  }
20284}
20285}
20286}
20287if (GTUHI (tmp_argilo, tmp_argjlo)) {
20288  {
20289    UQI opval = 2;
20290    sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCk)) + (1))]), opval);
20291    written |= (1 << 10);
20292    TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20293  }
20294} else {
20295if (EQHI (tmp_argilo, tmp_argjlo)) {
20296  {
20297    UQI opval = 8;
20298    sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCk)) + (1))]), opval);
20299    written |= (1 << 10);
20300    TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20301  }
20302} else {
20303if (LTUHI (tmp_argilo, tmp_argjlo)) {
20304  {
20305    UQI opval = 4;
20306    sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCk)) + (1))]), opval);
20307    written |= (1 << 10);
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)) + (1))]), opval);
20314    written |= (1 << 10);
20315    TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20316  }
20317}
20318}
20319}
20320}
20321}
20322
20323  abuf->written = written;
20324  return vpc;
20325#undef FLD
20326}
20327
20328/* mabshs: mabshs$pack $FRintj,$FRintk */
20329
20330static SEM_PC
20331SEM_FN_NAME (frvbf,mabshs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20332{
20333#define FLD(f) abuf->fields.sfmt_mabshs.f
20334  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20335  int UNUSED written = 0;
20336  IADDR UNUSED pc = abuf->addr;
20337  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20338
20339{
20340  HI tmp_arghi;
20341  HI tmp_arglo;
20342  {
20343    SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRj)));
20344    sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRj), opval);
20345    TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
20346  }
20347  {
20348    SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
20349    sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
20350    TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
20351  }
20352  tmp_arghi = GET_H_FR_HI (((FLD (f_FRj)) + (0)));
20353  tmp_arglo = GET_H_FR_LO (((FLD (f_FRj)) + (0)));
20354if (GTDI (ABSHI (tmp_arghi), 32767)) {
20355{
20356  {
20357    UHI opval = 32767;
20358    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20359    written |= (1 << 8);
20360    TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20361  }
20362frvbf_media_overflow (current_cpu, 8);
20363}
20364} else {
20365if (LTDI (ABSHI (tmp_arghi), -32768)) {
20366{
20367  {
20368    UHI opval = -32768;
20369    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20370    written |= (1 << 8);
20371    TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20372  }
20373frvbf_media_overflow (current_cpu, 8);
20374}
20375} else {
20376  {
20377    UHI opval = ABSHI (tmp_arghi);
20378    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20379    written |= (1 << 8);
20380    TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20381  }
20382}
20383}
20384if (GTDI (ABSHI (tmp_arglo), 32767)) {
20385{
20386  {
20387    UHI opval = 32767;
20388    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20389    written |= (1 << 9);
20390    TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20391  }
20392frvbf_media_overflow (current_cpu, 4);
20393}
20394} else {
20395if (LTDI (ABSHI (tmp_arglo), -32768)) {
20396{
20397  {
20398    UHI opval = -32768;
20399    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20400    written |= (1 << 9);
20401    TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20402  }
20403frvbf_media_overflow (current_cpu, 4);
20404}
20405} else {
20406  {
20407    UHI opval = ABSHI (tmp_arglo);
20408    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20409    written |= (1 << 9);
20410    TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20411  }
20412}
20413}
20414}
20415
20416  abuf->written = written;
20417  return vpc;
20418#undef FLD
20419}
20420
20421/* maddhss: maddhss$pack $FRinti,$FRintj,$FRintk */
20422
20423static SEM_PC
20424SEM_FN_NAME (frvbf,maddhss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20425{
20426#define FLD(f) abuf->fields.sfmt_cmaddhss.f
20427  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20428  int UNUSED written = 0;
20429  IADDR UNUSED pc = abuf->addr;
20430  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20431
20432{
20433  HI tmp_argihi;
20434  HI tmp_argilo;
20435  HI tmp_argjhi;
20436  HI tmp_argjlo;
20437{
20438  tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20439  tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20440  tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20441  tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20442}
20443{
20444  DI tmp_tmp;
20445  tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
20446if (GTDI (tmp_tmp, 32767)) {
20447{
20448  {
20449    UHI opval = 32767;
20450    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20451    written |= (1 << 9);
20452    TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20453  }
20454frvbf_media_overflow (current_cpu, 8);
20455}
20456} else {
20457if (LTDI (tmp_tmp, -32768)) {
20458{
20459  {
20460    UHI opval = -32768;
20461    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20462    written |= (1 << 9);
20463    TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20464  }
20465frvbf_media_overflow (current_cpu, 8);
20466}
20467} else {
20468  {
20469    UHI opval = tmp_tmp;
20470    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20471    written |= (1 << 9);
20472    TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20473  }
20474}
20475}
20476}
20477{
20478  DI tmp_tmp;
20479  tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
20480if (GTDI (tmp_tmp, 32767)) {
20481{
20482  {
20483    UHI opval = 32767;
20484    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20485    written |= (1 << 10);
20486    TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20487  }
20488frvbf_media_overflow (current_cpu, 4);
20489}
20490} else {
20491if (LTDI (tmp_tmp, -32768)) {
20492{
20493  {
20494    UHI opval = -32768;
20495    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20496    written |= (1 << 10);
20497    TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20498  }
20499frvbf_media_overflow (current_cpu, 4);
20500}
20501} else {
20502  {
20503    UHI opval = tmp_tmp;
20504    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20505    written |= (1 << 10);
20506    TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20507  }
20508}
20509}
20510}
20511}
20512
20513  abuf->written = written;
20514  return vpc;
20515#undef FLD
20516}
20517
20518/* maddhus: maddhus$pack $FRinti,$FRintj,$FRintk */
20519
20520static SEM_PC
20521SEM_FN_NAME (frvbf,maddhus) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20522{
20523#define FLD(f) abuf->fields.sfmt_cmaddhss.f
20524  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20525  int UNUSED written = 0;
20526  IADDR UNUSED pc = abuf->addr;
20527  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20528
20529{
20530  UHI tmp_argihi;
20531  UHI tmp_argilo;
20532  UHI tmp_argjhi;
20533  UHI tmp_argjlo;
20534{
20535  tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20536  tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20537  tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20538  tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20539}
20540{
20541  DI tmp_tmp;
20542  tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
20543if (GTDI (tmp_tmp, 65535)) {
20544{
20545  {
20546    UHI opval = 65535;
20547    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20548    written |= (1 << 9);
20549    TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20550  }
20551frvbf_media_overflow (current_cpu, 8);
20552}
20553} else {
20554if (LTDI (tmp_tmp, 0)) {
20555{
20556  {
20557    UHI opval = 0;
20558    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20559    written |= (1 << 9);
20560    TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20561  }
20562frvbf_media_overflow (current_cpu, 8);
20563}
20564} else {
20565  {
20566    UHI opval = tmp_tmp;
20567    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20568    written |= (1 << 9);
20569    TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20570  }
20571}
20572}
20573}
20574{
20575  DI tmp_tmp;
20576  tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
20577if (GTDI (tmp_tmp, 65535)) {
20578{
20579  {
20580    UHI opval = 65535;
20581    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20582    written |= (1 << 10);
20583    TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20584  }
20585frvbf_media_overflow (current_cpu, 4);
20586}
20587} else {
20588if (LTDI (tmp_tmp, 0)) {
20589{
20590  {
20591    UHI opval = 0;
20592    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20593    written |= (1 << 10);
20594    TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20595  }
20596frvbf_media_overflow (current_cpu, 4);
20597}
20598} else {
20599  {
20600    UHI opval = tmp_tmp;
20601    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20602    written |= (1 << 10);
20603    TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20604  }
20605}
20606}
20607}
20608}
20609
20610  abuf->written = written;
20611  return vpc;
20612#undef FLD
20613}
20614
20615/* msubhss: msubhss$pack $FRinti,$FRintj,$FRintk */
20616
20617static SEM_PC
20618SEM_FN_NAME (frvbf,msubhss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20619{
20620#define FLD(f) abuf->fields.sfmt_cmaddhss.f
20621  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20622  int UNUSED written = 0;
20623  IADDR UNUSED pc = abuf->addr;
20624  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20625
20626{
20627  HI tmp_argihi;
20628  HI tmp_argilo;
20629  HI tmp_argjhi;
20630  HI tmp_argjlo;
20631{
20632  tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20633  tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20634  tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20635  tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20636}
20637{
20638  DI tmp_tmp;
20639  tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
20640if (GTDI (tmp_tmp, 32767)) {
20641{
20642  {
20643    UHI opval = 32767;
20644    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20645    written |= (1 << 9);
20646    TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20647  }
20648frvbf_media_overflow (current_cpu, 8);
20649}
20650} else {
20651if (LTDI (tmp_tmp, -32768)) {
20652{
20653  {
20654    UHI opval = -32768;
20655    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20656    written |= (1 << 9);
20657    TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20658  }
20659frvbf_media_overflow (current_cpu, 8);
20660}
20661} else {
20662  {
20663    UHI opval = tmp_tmp;
20664    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20665    written |= (1 << 9);
20666    TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20667  }
20668}
20669}
20670}
20671{
20672  DI tmp_tmp;
20673  tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
20674if (GTDI (tmp_tmp, 32767)) {
20675{
20676  {
20677    UHI opval = 32767;
20678    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20679    written |= (1 << 10);
20680    TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20681  }
20682frvbf_media_overflow (current_cpu, 4);
20683}
20684} else {
20685if (LTDI (tmp_tmp, -32768)) {
20686{
20687  {
20688    UHI opval = -32768;
20689    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20690    written |= (1 << 10);
20691    TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20692  }
20693frvbf_media_overflow (current_cpu, 4);
20694}
20695} else {
20696  {
20697    UHI opval = tmp_tmp;
20698    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20699    written |= (1 << 10);
20700    TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20701  }
20702}
20703}
20704}
20705}
20706
20707  abuf->written = written;
20708  return vpc;
20709#undef FLD
20710}
20711
20712/* msubhus: msubhus$pack $FRinti,$FRintj,$FRintk */
20713
20714static SEM_PC
20715SEM_FN_NAME (frvbf,msubhus) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20716{
20717#define FLD(f) abuf->fields.sfmt_cmaddhss.f
20718  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20719  int UNUSED written = 0;
20720  IADDR UNUSED pc = abuf->addr;
20721  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20722
20723{
20724  UHI tmp_argihi;
20725  UHI tmp_argilo;
20726  UHI tmp_argjhi;
20727  UHI tmp_argjlo;
20728{
20729  tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20730  tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20731  tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20732  tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20733}
20734{
20735  DI tmp_tmp;
20736  tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
20737if (GTDI (tmp_tmp, 65535)) {
20738{
20739  {
20740    UHI opval = 65535;
20741    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20742    written |= (1 << 9);
20743    TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20744  }
20745frvbf_media_overflow (current_cpu, 8);
20746}
20747} else {
20748if (LTDI (tmp_tmp, 0)) {
20749{
20750  {
20751    UHI opval = 0;
20752    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20753    written |= (1 << 9);
20754    TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20755  }
20756frvbf_media_overflow (current_cpu, 8);
20757}
20758} else {
20759  {
20760    UHI opval = tmp_tmp;
20761    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20762    written |= (1 << 9);
20763    TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20764  }
20765}
20766}
20767}
20768{
20769  DI tmp_tmp;
20770  tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
20771if (GTDI (tmp_tmp, 65535)) {
20772{
20773  {
20774    UHI opval = 65535;
20775    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20776    written |= (1 << 10);
20777    TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20778  }
20779frvbf_media_overflow (current_cpu, 4);
20780}
20781} else {
20782if (LTDI (tmp_tmp, 0)) {
20783{
20784  {
20785    UHI opval = 0;
20786    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20787    written |= (1 << 10);
20788    TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20789  }
20790frvbf_media_overflow (current_cpu, 4);
20791}
20792} else {
20793  {
20794    UHI opval = tmp_tmp;
20795    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20796    written |= (1 << 10);
20797    TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20798  }
20799}
20800}
20801}
20802}
20803
20804  abuf->written = written;
20805  return vpc;
20806#undef FLD
20807}
20808
20809/* cmaddhss: cmaddhss$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
20810
20811static SEM_PC
20812SEM_FN_NAME (frvbf,cmaddhss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20813{
20814#define FLD(f) abuf->fields.sfmt_cmaddhss.f
20815  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20816  int UNUSED written = 0;
20817  IADDR UNUSED pc = abuf->addr;
20818  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20819
20820if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
20821{
20822  HI tmp_argihi;
20823  HI tmp_argilo;
20824  HI tmp_argjhi;
20825  HI tmp_argjlo;
20826{
20827  tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20828  tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20829  tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20830  tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20831}
20832{
20833  DI tmp_tmp;
20834  tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
20835if (GTDI (tmp_tmp, 32767)) {
20836{
20837  {
20838    UHI opval = 32767;
20839    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20840    written |= (1 << 11);
20841    TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20842  }
20843frvbf_media_overflow (current_cpu, 8);
20844}
20845} else {
20846if (LTDI (tmp_tmp, -32768)) {
20847{
20848  {
20849    UHI opval = -32768;
20850    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20851    written |= (1 << 11);
20852    TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20853  }
20854frvbf_media_overflow (current_cpu, 8);
20855}
20856} else {
20857  {
20858    UHI opval = tmp_tmp;
20859    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20860    written |= (1 << 11);
20861    TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20862  }
20863}
20864}
20865}
20866{
20867  DI tmp_tmp;
20868  tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
20869if (GTDI (tmp_tmp, 32767)) {
20870{
20871  {
20872    UHI opval = 32767;
20873    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20874    written |= (1 << 12);
20875    TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20876  }
20877frvbf_media_overflow (current_cpu, 4);
20878}
20879} else {
20880if (LTDI (tmp_tmp, -32768)) {
20881{
20882  {
20883    UHI opval = -32768;
20884    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20885    written |= (1 << 12);
20886    TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20887  }
20888frvbf_media_overflow (current_cpu, 4);
20889}
20890} else {
20891  {
20892    UHI opval = tmp_tmp;
20893    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20894    written |= (1 << 12);
20895    TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20896  }
20897}
20898}
20899}
20900}
20901}
20902
20903  abuf->written = written;
20904  return vpc;
20905#undef FLD
20906}
20907
20908/* cmaddhus: cmaddhus$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
20909
20910static SEM_PC
20911SEM_FN_NAME (frvbf,cmaddhus) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20912{
20913#define FLD(f) abuf->fields.sfmt_cmaddhss.f
20914  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20915  int UNUSED written = 0;
20916  IADDR UNUSED pc = abuf->addr;
20917  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20918
20919if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
20920{
20921  UHI tmp_argihi;
20922  UHI tmp_argilo;
20923  UHI tmp_argjhi;
20924  UHI tmp_argjlo;
20925{
20926  tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20927  tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20928  tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20929  tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20930}
20931{
20932  DI tmp_tmp;
20933  tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
20934if (GTDI (tmp_tmp, 65535)) {
20935{
20936  {
20937    UHI opval = 65535;
20938    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20939    written |= (1 << 11);
20940    TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20941  }
20942frvbf_media_overflow (current_cpu, 8);
20943}
20944} else {
20945if (LTDI (tmp_tmp, 0)) {
20946{
20947  {
20948    UHI opval = 0;
20949    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20950    written |= (1 << 11);
20951    TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20952  }
20953frvbf_media_overflow (current_cpu, 8);
20954}
20955} else {
20956  {
20957    UHI opval = tmp_tmp;
20958    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20959    written |= (1 << 11);
20960    TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20961  }
20962}
20963}
20964}
20965{
20966  DI tmp_tmp;
20967  tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
20968if (GTDI (tmp_tmp, 65535)) {
20969{
20970  {
20971    UHI opval = 65535;
20972    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20973    written |= (1 << 12);
20974    TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20975  }
20976frvbf_media_overflow (current_cpu, 4);
20977}
20978} else {
20979if (LTDI (tmp_tmp, 0)) {
20980{
20981  {
20982    UHI opval = 0;
20983    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20984    written |= (1 << 12);
20985    TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20986  }
20987frvbf_media_overflow (current_cpu, 4);
20988}
20989} else {
20990  {
20991    UHI opval = tmp_tmp;
20992    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20993    written |= (1 << 12);
20994    TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20995  }
20996}
20997}
20998}
20999}
21000}
21001
21002  abuf->written = written;
21003  return vpc;
21004#undef FLD
21005}
21006
21007/* cmsubhss: cmsubhss$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
21008
21009static SEM_PC
21010SEM_FN_NAME (frvbf,cmsubhss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
21011{
21012#define FLD(f) abuf->fields.sfmt_cmaddhss.f
21013  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
21014  int UNUSED written = 0;
21015  IADDR UNUSED pc = abuf->addr;
21016  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
21017
21018if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
21019{
21020  HI tmp_argihi;
21021  HI tmp_argilo;
21022  HI tmp_argjhi;
21023  HI tmp_argjlo;
21024{
21025  tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21026  tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21027  tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21028  tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21029}
21030{
21031  DI tmp_tmp;
21032  tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
21033if (GTDI (tmp_tmp, 32767)) {
21034{
21035  {
21036    UHI opval = 32767;
21037    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21038    written |= (1 << 11);
21039    TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21040  }
21041frvbf_media_overflow (current_cpu, 8);
21042}
21043} else {
21044if (LTDI (tmp_tmp, -32768)) {
21045{
21046  {
21047    UHI opval = -32768;
21048    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21049    written |= (1 << 11);
21050    TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21051  }
21052frvbf_media_overflow (current_cpu, 8);
21053}
21054} else {
21055  {
21056    UHI opval = tmp_tmp;
21057    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21058    written |= (1 << 11);
21059    TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21060  }
21061}
21062}
21063}
21064{
21065  DI tmp_tmp;
21066  tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
21067if (GTDI (tmp_tmp, 32767)) {
21068{
21069  {
21070    UHI opval = 32767;
21071    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21072    written |= (1 << 12);
21073    TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21074  }
21075frvbf_media_overflow (current_cpu, 4);
21076}
21077} else {
21078if (LTDI (tmp_tmp, -32768)) {
21079{
21080  {
21081    UHI opval = -32768;
21082    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21083    written |= (1 << 12);
21084    TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21085  }
21086frvbf_media_overflow (current_cpu, 4);
21087}
21088} else {
21089  {
21090    UHI opval = tmp_tmp;
21091    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21092    written |= (1 << 12);
21093    TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21094  }
21095}
21096}
21097}
21098}
21099}
21100
21101  abuf->written = written;
21102  return vpc;
21103#undef FLD
21104}
21105
21106/* cmsubhus: cmsubhus$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
21107
21108static SEM_PC
21109SEM_FN_NAME (frvbf,cmsubhus) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
21110{
21111#define FLD(f) abuf->fields.sfmt_cmaddhss.f
21112  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
21113  int UNUSED written = 0;
21114  IADDR UNUSED pc = abuf->addr;
21115  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
21116
21117if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
21118{
21119  UHI tmp_argihi;
21120  UHI tmp_argilo;
21121  UHI tmp_argjhi;
21122  UHI tmp_argjlo;
21123{
21124  tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21125  tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21126  tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21127  tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21128}
21129{
21130  DI tmp_tmp;
21131  tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
21132if (GTDI (tmp_tmp, 65535)) {
21133{
21134  {
21135    UHI opval = 65535;
21136    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21137    written |= (1 << 11);
21138    TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21139  }
21140frvbf_media_overflow (current_cpu, 8);
21141}
21142} else {
21143if (LTDI (tmp_tmp, 0)) {
21144{
21145  {
21146    UHI opval = 0;
21147    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21148    written |= (1 << 11);
21149    TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21150  }
21151frvbf_media_overflow (current_cpu, 8);
21152}
21153} else {
21154  {
21155    UHI opval = tmp_tmp;
21156    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21157    written |= (1 << 11);
21158    TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21159  }
21160}
21161}
21162}
21163{
21164  DI tmp_tmp;
21165  tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
21166if (GTDI (tmp_tmp, 65535)) {
21167{
21168  {
21169    UHI opval = 65535;
21170    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21171    written |= (1 << 12);
21172    TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21173  }
21174frvbf_media_overflow (current_cpu, 4);
21175}
21176} else {
21177if (LTDI (tmp_tmp, 0)) {
21178{
21179  {
21180    UHI opval = 0;
21181    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21182    written |= (1 << 12);
21183    TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21184  }
21185frvbf_media_overflow (current_cpu, 4);
21186}
21187} else {
21188  {
21189    UHI opval = tmp_tmp;
21190    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21191    written |= (1 << 12);
21192    TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21193  }
21194}
21195}
21196}
21197}
21198}
21199
21200  abuf->written = written;
21201  return vpc;
21202#undef FLD
21203}
21204
21205/* mqaddhss: mqaddhss$pack $FRintieven,$FRintjeven,$FRintkeven */
21206
21207static SEM_PC
21208SEM_FN_NAME (frvbf,mqaddhss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
21209{
21210#define FLD(f) abuf->fields.sfmt_cmqaddhss.f
21211  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
21212  int UNUSED written = 0;
21213  IADDR UNUSED pc = abuf->addr;
21214  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
21215
21216if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
21217frvbf_media_register_not_aligned (current_cpu);
21218} else {
21219{
21220  HI tmp_argihi;
21221  HI tmp_argilo;
21222  HI tmp_argjhi;
21223  HI tmp_argjlo;
21224  {
21225    SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
21226    sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
21227    written |= (1 << 14);
21228    TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
21229  }
21230{
21231  tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21232  tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21233  tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21234  tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21235}
21236{
21237  DI tmp_tmp;
21238  tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
21239if (GTDI (tmp_tmp, 32767)) {
21240{
21241  {
21242    UHI opval = 32767;
21243    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21244    written |= (1 << 15);
21245    TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21246  }
21247frvbf_media_overflow (current_cpu, 8);
21248}
21249} else {
21250if (LTDI (tmp_tmp, -32768)) {
21251{
21252  {
21253    UHI opval = -32768;
21254    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21255    written |= (1 << 15);
21256    TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21257  }
21258frvbf_media_overflow (current_cpu, 8);
21259}
21260} else {
21261  {
21262    UHI opval = tmp_tmp;
21263    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21264    written |= (1 << 15);
21265    TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21266  }
21267}
21268}
21269}
21270{
21271  DI tmp_tmp;
21272  tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
21273if (GTDI (tmp_tmp, 32767)) {
21274{
21275  {
21276    UHI opval = 32767;
21277    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21278    written |= (1 << 17);
21279    TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21280  }
21281frvbf_media_overflow (current_cpu, 4);
21282}
21283} else {
21284if (LTDI (tmp_tmp, -32768)) {
21285{
21286  {
21287    UHI opval = -32768;
21288    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21289    written |= (1 << 17);
21290    TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21291  }
21292frvbf_media_overflow (current_cpu, 4);
21293}
21294} else {
21295  {
21296    UHI opval = tmp_tmp;
21297    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21298    written |= (1 << 17);
21299    TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21300  }
21301}
21302}
21303}
21304{
21305  tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21306  tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21307  tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21308  tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21309}
21310{
21311  DI tmp_tmp;
21312  tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
21313if (GTDI (tmp_tmp, 32767)) {
21314{
21315  {
21316    UHI opval = 32767;
21317    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21318    written |= (1 << 16);
21319    TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21320  }
21321frvbf_media_overflow (current_cpu, 2);
21322}
21323} else {
21324if (LTDI (tmp_tmp, -32768)) {
21325{
21326  {
21327    UHI opval = -32768;
21328    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21329    written |= (1 << 16);
21330    TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21331  }
21332frvbf_media_overflow (current_cpu, 2);
21333}
21334} else {
21335  {
21336    UHI opval = tmp_tmp;
21337    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21338    written |= (1 << 16);
21339    TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21340  }
21341}
21342}
21343}
21344{
21345  DI tmp_tmp;
21346  tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
21347if (GTDI (tmp_tmp, 32767)) {
21348{
21349  {
21350    UHI opval = 32767;
21351    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21352    written |= (1 << 18);
21353    TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21354  }
21355frvbf_media_overflow (current_cpu, 1);
21356}
21357} else {
21358if (LTDI (tmp_tmp, -32768)) {
21359{
21360  {
21361    UHI opval = -32768;
21362    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21363    written |= (1 << 18);
21364    TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21365  }
21366frvbf_media_overflow (current_cpu, 1);
21367}
21368} else {
21369  {
21370    UHI opval = tmp_tmp;
21371    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21372    written |= (1 << 18);
21373    TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21374  }
21375}
21376}
21377}
21378}
21379}
21380
21381  abuf->written = written;
21382  return vpc;
21383#undef FLD
21384}
21385
21386/* mqaddhus: mqaddhus$pack $FRintieven,$FRintjeven,$FRintkeven */
21387
21388static SEM_PC
21389SEM_FN_NAME (frvbf,mqaddhus) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
21390{
21391#define FLD(f) abuf->fields.sfmt_cmqaddhss.f
21392  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
21393  int UNUSED written = 0;
21394  IADDR UNUSED pc = abuf->addr;
21395  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
21396
21397if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
21398frvbf_media_register_not_aligned (current_cpu);
21399} else {
21400{
21401  UHI tmp_argihi;
21402  UHI tmp_argilo;
21403  UHI tmp_argjhi;
21404  UHI tmp_argjlo;
21405  {
21406    SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
21407    sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
21408    written |= (1 << 14);
21409    TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
21410  }
21411{
21412  tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21413  tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21414  tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21415  tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21416}
21417{
21418  DI tmp_tmp;
21419  tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
21420if (GTDI (tmp_tmp, 65535)) {
21421{
21422  {
21423    UHI opval = 65535;
21424    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21425    written |= (1 << 15);
21426    TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21427  }
21428frvbf_media_overflow (current_cpu, 8);
21429}
21430} else {
21431if (LTDI (tmp_tmp, 0)) {
21432{
21433  {
21434    UHI opval = 0;
21435    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21436    written |= (1 << 15);
21437    TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21438  }
21439frvbf_media_overflow (current_cpu, 8);
21440}
21441} else {
21442  {
21443    UHI opval = tmp_tmp;
21444    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21445    written |= (1 << 15);
21446    TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21447  }
21448}
21449}
21450}
21451{
21452  DI tmp_tmp;
21453  tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
21454if (GTDI (tmp_tmp, 65535)) {
21455{
21456  {
21457    UHI opval = 65535;
21458    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21459    written |= (1 << 17);
21460    TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21461  }
21462frvbf_media_overflow (current_cpu, 4);
21463}
21464} else {
21465if (LTDI (tmp_tmp, 0)) {
21466{
21467  {
21468    UHI opval = 0;
21469    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21470    written |= (1 << 17);
21471    TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21472  }
21473frvbf_media_overflow (current_cpu, 4);
21474}
21475} else {
21476  {
21477    UHI opval = tmp_tmp;
21478    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21479    written |= (1 << 17);
21480    TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21481  }
21482}
21483}
21484}
21485{
21486  tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21487  tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21488  tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21489  tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21490}
21491{
21492  DI tmp_tmp;
21493  tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
21494if (GTDI (tmp_tmp, 65535)) {
21495{
21496  {
21497    UHI opval = 65535;
21498    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21499    written |= (1 << 16);
21500    TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21501  }
21502frvbf_media_overflow (current_cpu, 2);
21503}
21504} else {
21505if (LTDI (tmp_tmp, 0)) {
21506{
21507  {
21508    UHI opval = 0;
21509    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21510    written |= (1 << 16);
21511    TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21512  }
21513frvbf_media_overflow (current_cpu, 2);
21514}
21515} else {
21516  {
21517    UHI opval = tmp_tmp;
21518    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21519    written |= (1 << 16);
21520    TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21521  }
21522}
21523}
21524}
21525{
21526  DI tmp_tmp;
21527  tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
21528if (GTDI (tmp_tmp, 65535)) {
21529{
21530  {
21531    UHI opval = 65535;
21532    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21533    written |= (1 << 18);
21534    TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21535  }
21536frvbf_media_overflow (current_cpu, 1);
21537}
21538} else {
21539if (LTDI (tmp_tmp, 0)) {
21540{
21541  {
21542    UHI opval = 0;
21543    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21544    written |= (1 << 18);
21545    TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21546  }
21547frvbf_media_overflow (current_cpu, 1);
21548}
21549} else {
21550  {
21551    UHI opval = tmp_tmp;
21552    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21553    written |= (1 << 18);
21554    TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21555  }
21556}
21557}
21558}
21559}
21560}
21561
21562  abuf->written = written;
21563  return vpc;
21564#undef FLD
21565}
21566
21567/* mqsubhss: mqsubhss$pack $FRintieven,$FRintjeven,$FRintkeven */
21568
21569static SEM_PC
21570SEM_FN_NAME (frvbf,mqsubhss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
21571{
21572#define FLD(f) abuf->fields.sfmt_cmqaddhss.f
21573  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
21574  int UNUSED written = 0;
21575  IADDR UNUSED pc = abuf->addr;
21576  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
21577
21578if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
21579frvbf_media_register_not_aligned (current_cpu);
21580} else {
21581{
21582  HI tmp_argihi;
21583  HI tmp_argilo;
21584  HI tmp_argjhi;
21585  HI tmp_argjlo;
21586  {
21587    SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
21588    sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
21589    written |= (1 << 14);
21590    TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
21591  }
21592{
21593  tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21594  tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21595  tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21596  tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21597}
21598{
21599  DI tmp_tmp;
21600  tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
21601if (GTDI (tmp_tmp, 32767)) {
21602{
21603  {
21604    UHI opval = 32767;
21605    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21606    written |= (1 << 15);
21607    TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21608  }
21609frvbf_media_overflow (current_cpu, 8);
21610}
21611} else {
21612if (LTDI (tmp_tmp, -32768)) {
21613{
21614  {
21615    UHI opval = -32768;
21616    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21617    written |= (1 << 15);
21618    TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21619  }
21620frvbf_media_overflow (current_cpu, 8);
21621}
21622} else {
21623  {
21624    UHI opval = tmp_tmp;
21625    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21626    written |= (1 << 15);
21627    TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21628  }
21629}
21630}
21631}
21632{
21633  DI tmp_tmp;
21634  tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
21635if (GTDI (tmp_tmp, 32767)) {
21636{
21637  {
21638    UHI opval = 32767;
21639    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21640    written |= (1 << 17);
21641    TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21642  }
21643frvbf_media_overflow (current_cpu, 4);
21644}
21645} else {
21646if (LTDI (tmp_tmp, -32768)) {
21647{
21648  {
21649    UHI opval = -32768;
21650    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21651    written |= (1 << 17);
21652    TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21653  }
21654frvbf_media_overflow (current_cpu, 4);
21655}
21656} else {
21657  {
21658    UHI opval = tmp_tmp;
21659    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21660    written |= (1 << 17);
21661    TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21662  }
21663}
21664}
21665}
21666{
21667  tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21668  tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21669  tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21670  tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21671}
21672{
21673  DI tmp_tmp;
21674  tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
21675if (GTDI (tmp_tmp, 32767)) {
21676{
21677  {
21678    UHI opval = 32767;
21679    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21680    written |= (1 << 16);
21681    TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21682  }
21683frvbf_media_overflow (current_cpu, 2);
21684}
21685} else {
21686if (LTDI (tmp_tmp, -32768)) {
21687{
21688  {
21689    UHI opval = -32768;
21690    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21691    written |= (1 << 16);
21692    TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21693  }
21694frvbf_media_overflow (current_cpu, 2);
21695}
21696} else {
21697  {
21698    UHI opval = tmp_tmp;
21699    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21700    written |= (1 << 16);
21701    TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21702  }
21703}
21704}
21705}
21706{
21707  DI tmp_tmp;
21708  tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
21709if (GTDI (tmp_tmp, 32767)) {
21710{
21711  {
21712    UHI opval = 32767;
21713    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21714    written |= (1 << 18);
21715    TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21716  }
21717frvbf_media_overflow (current_cpu, 1);
21718}
21719} else {
21720if (LTDI (tmp_tmp, -32768)) {
21721{
21722  {
21723    UHI opval = -32768;
21724    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21725    written |= (1 << 18);
21726    TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21727  }
21728frvbf_media_overflow (current_cpu, 1);
21729}
21730} else {
21731  {
21732    UHI opval = tmp_tmp;
21733    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21734    written |= (1 << 18);
21735    TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21736  }
21737}
21738}
21739}
21740}
21741}
21742
21743  abuf->written = written;
21744  return vpc;
21745#undef FLD
21746}
21747
21748/* mqsubhus: mqsubhus$pack $FRintieven,$FRintjeven,$FRintkeven */
21749
21750static SEM_PC
21751SEM_FN_NAME (frvbf,mqsubhus) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
21752{
21753#define FLD(f) abuf->fields.sfmt_cmqaddhss.f
21754  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
21755  int UNUSED written = 0;
21756  IADDR UNUSED pc = abuf->addr;
21757  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
21758
21759if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
21760frvbf_media_register_not_aligned (current_cpu);
21761} else {
21762{
21763  UHI tmp_argihi;
21764  UHI tmp_argilo;
21765  UHI tmp_argjhi;
21766  UHI tmp_argjlo;
21767  {
21768    SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
21769    sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
21770    written |= (1 << 14);
21771    TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
21772  }
21773{
21774  tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21775  tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21776  tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21777  tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21778}
21779{
21780  DI tmp_tmp;
21781  tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
21782if (GTDI (tmp_tmp, 65535)) {
21783{
21784  {
21785    UHI opval = 65535;
21786    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21787    written |= (1 << 15);
21788    TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21789  }
21790frvbf_media_overflow (current_cpu, 8);
21791}
21792} else {
21793if (LTDI (tmp_tmp, 0)) {
21794{
21795  {
21796    UHI opval = 0;
21797    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21798    written |= (1 << 15);
21799    TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21800  }
21801frvbf_media_overflow (current_cpu, 8);
21802}
21803} else {
21804  {
21805    UHI opval = tmp_tmp;
21806    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21807    written |= (1 << 15);
21808    TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21809  }
21810}
21811}
21812}
21813{
21814  DI tmp_tmp;
21815  tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
21816if (GTDI (tmp_tmp, 65535)) {
21817{
21818  {
21819    UHI opval = 65535;
21820    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21821    written |= (1 << 17);
21822    TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21823  }
21824frvbf_media_overflow (current_cpu, 4);
21825}
21826} else {
21827if (LTDI (tmp_tmp, 0)) {
21828{
21829  {
21830    UHI opval = 0;
21831    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21832    written |= (1 << 17);
21833    TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21834  }
21835frvbf_media_overflow (current_cpu, 4);
21836}
21837} else {
21838  {
21839    UHI opval = tmp_tmp;
21840    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21841    written |= (1 << 17);
21842    TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21843  }
21844}
21845}
21846}
21847{
21848  tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21849  tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21850  tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21851  tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21852}
21853{
21854  DI tmp_tmp;
21855  tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
21856if (GTDI (tmp_tmp, 65535)) {
21857{
21858  {
21859    UHI opval = 65535;
21860    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21861    written |= (1 << 16);
21862    TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21863  }
21864frvbf_media_overflow (current_cpu, 2);
21865}
21866} else {
21867if (LTDI (tmp_tmp, 0)) {
21868{
21869  {
21870    UHI opval = 0;
21871    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21872    written |= (1 << 16);
21873    TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21874  }
21875frvbf_media_overflow (current_cpu, 2);
21876}
21877} else {
21878  {
21879    UHI opval = tmp_tmp;
21880    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21881    written |= (1 << 16);
21882    TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21883  }
21884}
21885}
21886}
21887{
21888  DI tmp_tmp;
21889  tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
21890if (GTDI (tmp_tmp, 65535)) {
21891{
21892  {
21893    UHI opval = 65535;
21894    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21895    written |= (1 << 18);
21896    TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21897  }
21898frvbf_media_overflow (current_cpu, 1);
21899}
21900} else {
21901if (LTDI (tmp_tmp, 0)) {
21902{
21903  {
21904    UHI opval = 0;
21905    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21906    written |= (1 << 18);
21907    TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21908  }
21909frvbf_media_overflow (current_cpu, 1);
21910}
21911} else {
21912  {
21913    UHI opval = tmp_tmp;
21914    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21915    written |= (1 << 18);
21916    TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21917  }
21918}
21919}
21920}
21921}
21922}
21923
21924  abuf->written = written;
21925  return vpc;
21926#undef FLD
21927}
21928
21929/* cmqaddhss: cmqaddhss$pack $FRintieven,$FRintjeven,$FRintkeven,$CCi,$cond */
21930
21931static SEM_PC
21932SEM_FN_NAME (frvbf,cmqaddhss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
21933{
21934#define FLD(f) abuf->fields.sfmt_cmqaddhss.f
21935  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
21936  int UNUSED written = 0;
21937  IADDR UNUSED pc = abuf->addr;
21938  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
21939
21940if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
21941frvbf_media_register_not_aligned (current_cpu);
21942} else {
21943if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
21944{
21945  HI tmp_argihi;
21946  HI tmp_argilo;
21947  HI tmp_argjhi;
21948  HI tmp_argjlo;
21949  {
21950    SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
21951    sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
21952    written |= (1 << 16);
21953    TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
21954  }
21955{
21956  tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21957  tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21958  tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21959  tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21960}
21961{
21962  DI tmp_tmp;
21963  tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
21964if (GTDI (tmp_tmp, 32767)) {
21965{
21966  {
21967    UHI opval = 32767;
21968    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21969    written |= (1 << 17);
21970    TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21971  }
21972frvbf_media_overflow (current_cpu, 8);
21973}
21974} else {
21975if (LTDI (tmp_tmp, -32768)) {
21976{
21977  {
21978    UHI opval = -32768;
21979    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21980    written |= (1 << 17);
21981    TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21982  }
21983frvbf_media_overflow (current_cpu, 8);
21984}
21985} else {
21986  {
21987    UHI opval = tmp_tmp;
21988    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21989    written |= (1 << 17);
21990    TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21991  }
21992}
21993}
21994}
21995{
21996  DI tmp_tmp;
21997  tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
21998if (GTDI (tmp_tmp, 32767)) {
21999{
22000  {
22001    UHI opval = 32767;
22002    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22003    written |= (1 << 19);
22004    TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22005  }
22006frvbf_media_overflow (current_cpu, 4);
22007}
22008} else {
22009if (LTDI (tmp_tmp, -32768)) {
22010{
22011  {
22012    UHI opval = -32768;
22013    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22014    written |= (1 << 19);
22015    TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22016  }
22017frvbf_media_overflow (current_cpu, 4);
22018}
22019} else {
22020  {
22021    UHI opval = tmp_tmp;
22022    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22023    written |= (1 << 19);
22024    TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22025  }
22026}
22027}
22028}
22029{
22030  tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22031  tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22032  tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22033  tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22034}
22035{
22036  DI tmp_tmp;
22037  tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
22038if (GTDI (tmp_tmp, 32767)) {
22039{
22040  {
22041    UHI opval = 32767;
22042    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22043    written |= (1 << 18);
22044    TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22045  }
22046frvbf_media_overflow (current_cpu, 2);
22047}
22048} else {
22049if (LTDI (tmp_tmp, -32768)) {
22050{
22051  {
22052    UHI opval = -32768;
22053    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22054    written |= (1 << 18);
22055    TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22056  }
22057frvbf_media_overflow (current_cpu, 2);
22058}
22059} else {
22060  {
22061    UHI opval = tmp_tmp;
22062    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22063    written |= (1 << 18);
22064    TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22065  }
22066}
22067}
22068}
22069{
22070  DI tmp_tmp;
22071  tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
22072if (GTDI (tmp_tmp, 32767)) {
22073{
22074  {
22075    UHI opval = 32767;
22076    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22077    written |= (1 << 20);
22078    TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22079  }
22080frvbf_media_overflow (current_cpu, 1);
22081}
22082} else {
22083if (LTDI (tmp_tmp, -32768)) {
22084{
22085  {
22086    UHI opval = -32768;
22087    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22088    written |= (1 << 20);
22089    TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22090  }
22091frvbf_media_overflow (current_cpu, 1);
22092}
22093} else {
22094  {
22095    UHI opval = tmp_tmp;
22096    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22097    written |= (1 << 20);
22098    TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22099  }
22100}
22101}
22102}
22103}
22104}
22105}
22106
22107  abuf->written = written;
22108  return vpc;
22109#undef FLD
22110}
22111
22112/* cmqaddhus: cmqaddhus$pack $FRintieven,$FRintjeven,$FRintkeven,$CCi,$cond */
22113
22114static SEM_PC
22115SEM_FN_NAME (frvbf,cmqaddhus) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
22116{
22117#define FLD(f) abuf->fields.sfmt_cmqaddhss.f
22118  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
22119  int UNUSED written = 0;
22120  IADDR UNUSED pc = abuf->addr;
22121  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
22122
22123if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
22124frvbf_media_register_not_aligned (current_cpu);
22125} else {
22126if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
22127{
22128  UHI tmp_argihi;
22129  UHI tmp_argilo;
22130  UHI tmp_argjhi;
22131  UHI tmp_argjlo;
22132  {
22133    SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
22134    sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
22135    written |= (1 << 16);
22136    TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
22137  }
22138{
22139  tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22140  tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22141  tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22142  tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22143}
22144{
22145  DI tmp_tmp;
22146  tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
22147if (GTDI (tmp_tmp, 65535)) {
22148{
22149  {
22150    UHI opval = 65535;
22151    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22152    written |= (1 << 17);
22153    TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22154  }
22155frvbf_media_overflow (current_cpu, 8);
22156}
22157} else {
22158if (LTDI (tmp_tmp, 0)) {
22159{
22160  {
22161    UHI opval = 0;
22162    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22163    written |= (1 << 17);
22164    TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22165  }
22166frvbf_media_overflow (current_cpu, 8);
22167}
22168} else {
22169  {
22170    UHI opval = tmp_tmp;
22171    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22172    written |= (1 << 17);
22173    TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22174  }
22175}
22176}
22177}
22178{
22179  DI tmp_tmp;
22180  tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
22181if (GTDI (tmp_tmp, 65535)) {
22182{
22183  {
22184    UHI opval = 65535;
22185    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22186    written |= (1 << 19);
22187    TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22188  }
22189frvbf_media_overflow (current_cpu, 4);
22190}
22191} else {
22192if (LTDI (tmp_tmp, 0)) {
22193{
22194  {
22195    UHI opval = 0;
22196    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22197    written |= (1 << 19);
22198    TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22199  }
22200frvbf_media_overflow (current_cpu, 4);
22201}
22202} else {
22203  {
22204    UHI opval = tmp_tmp;
22205    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22206    written |= (1 << 19);
22207    TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22208  }
22209}
22210}
22211}
22212{
22213  tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22214  tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22215  tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22216  tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22217}
22218{
22219  DI tmp_tmp;
22220  tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
22221if (GTDI (tmp_tmp, 65535)) {
22222{
22223  {
22224    UHI opval = 65535;
22225    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22226    written |= (1 << 18);
22227    TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22228  }
22229frvbf_media_overflow (current_cpu, 2);
22230}
22231} else {
22232if (LTDI (tmp_tmp, 0)) {
22233{
22234  {
22235    UHI opval = 0;
22236    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22237    written |= (1 << 18);
22238    TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22239  }
22240frvbf_media_overflow (current_cpu, 2);
22241}
22242} else {
22243  {
22244    UHI opval = tmp_tmp;
22245    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22246    written |= (1 << 18);
22247    TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22248  }
22249}
22250}
22251}
22252{
22253  DI tmp_tmp;
22254  tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
22255if (GTDI (tmp_tmp, 65535)) {
22256{
22257  {
22258    UHI opval = 65535;
22259    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22260    written |= (1 << 20);
22261    TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22262  }
22263frvbf_media_overflow (current_cpu, 1);
22264}
22265} else {
22266if (LTDI (tmp_tmp, 0)) {
22267{
22268  {
22269    UHI opval = 0;
22270    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22271    written |= (1 << 20);
22272    TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22273  }
22274frvbf_media_overflow (current_cpu, 1);
22275}
22276} else {
22277  {
22278    UHI opval = tmp_tmp;
22279    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22280    written |= (1 << 20);
22281    TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22282  }
22283}
22284}
22285}
22286}
22287}
22288}
22289
22290  abuf->written = written;
22291  return vpc;
22292#undef FLD
22293}
22294
22295/* cmqsubhss: cmqsubhss$pack $FRintieven,$FRintjeven,$FRintkeven,$CCi,$cond */
22296
22297static SEM_PC
22298SEM_FN_NAME (frvbf,cmqsubhss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
22299{
22300#define FLD(f) abuf->fields.sfmt_cmqaddhss.f
22301  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
22302  int UNUSED written = 0;
22303  IADDR UNUSED pc = abuf->addr;
22304  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
22305
22306if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
22307frvbf_media_register_not_aligned (current_cpu);
22308} else {
22309if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
22310{
22311  HI tmp_argihi;
22312  HI tmp_argilo;
22313  HI tmp_argjhi;
22314  HI tmp_argjlo;
22315  {
22316    SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
22317    sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
22318    written |= (1 << 16);
22319    TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
22320  }
22321{
22322  tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22323  tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22324  tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22325  tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22326}
22327{
22328  DI tmp_tmp;
22329  tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
22330if (GTDI (tmp_tmp, 32767)) {
22331{
22332  {
22333    UHI opval = 32767;
22334    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22335    written |= (1 << 17);
22336    TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22337  }
22338frvbf_media_overflow (current_cpu, 8);
22339}
22340} else {
22341if (LTDI (tmp_tmp, -32768)) {
22342{
22343  {
22344    UHI opval = -32768;
22345    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22346    written |= (1 << 17);
22347    TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22348  }
22349frvbf_media_overflow (current_cpu, 8);
22350}
22351} else {
22352  {
22353    UHI opval = tmp_tmp;
22354    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22355    written |= (1 << 17);
22356    TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22357  }
22358}
22359}
22360}
22361{
22362  DI tmp_tmp;
22363  tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
22364if (GTDI (tmp_tmp, 32767)) {
22365{
22366  {
22367    UHI opval = 32767;
22368    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22369    written |= (1 << 19);
22370    TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22371  }
22372frvbf_media_overflow (current_cpu, 4);
22373}
22374} else {
22375if (LTDI (tmp_tmp, -32768)) {
22376{
22377  {
22378    UHI opval = -32768;
22379    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22380    written |= (1 << 19);
22381    TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22382  }
22383frvbf_media_overflow (current_cpu, 4);
22384}
22385} else {
22386  {
22387    UHI opval = tmp_tmp;
22388    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22389    written |= (1 << 19);
22390    TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22391  }
22392}
22393}
22394}
22395{
22396  tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22397  tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22398  tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22399  tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22400}
22401{
22402  DI tmp_tmp;
22403  tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
22404if (GTDI (tmp_tmp, 32767)) {
22405{
22406  {
22407    UHI opval = 32767;
22408    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22409    written |= (1 << 18);
22410    TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22411  }
22412frvbf_media_overflow (current_cpu, 2);
22413}
22414} else {
22415if (LTDI (tmp_tmp, -32768)) {
22416{
22417  {
22418    UHI opval = -32768;
22419    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22420    written |= (1 << 18);
22421    TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22422  }
22423frvbf_media_overflow (current_cpu, 2);
22424}
22425} else {
22426  {
22427    UHI opval = tmp_tmp;
22428    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22429    written |= (1 << 18);
22430    TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22431  }
22432}
22433}
22434}
22435{
22436  DI tmp_tmp;
22437  tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
22438if (GTDI (tmp_tmp, 32767)) {
22439{
22440  {
22441    UHI opval = 32767;
22442    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22443    written |= (1 << 20);
22444    TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22445  }
22446frvbf_media_overflow (current_cpu, 1);
22447}
22448} else {
22449if (LTDI (tmp_tmp, -32768)) {
22450{
22451  {
22452    UHI opval = -32768;
22453    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22454    written |= (1 << 20);
22455    TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22456  }
22457frvbf_media_overflow (current_cpu, 1);
22458}
22459} else {
22460  {
22461    UHI opval = tmp_tmp;
22462    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22463    written |= (1 << 20);
22464    TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22465  }
22466}
22467}
22468}
22469}
22470}
22471}
22472
22473  abuf->written = written;
22474  return vpc;
22475#undef FLD
22476}
22477
22478/* cmqsubhus: cmqsubhus$pack $FRintieven,$FRintjeven,$FRintkeven,$CCi,$cond */
22479
22480static SEM_PC
22481SEM_FN_NAME (frvbf,cmqsubhus) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
22482{
22483#define FLD(f) abuf->fields.sfmt_cmqaddhss.f
22484  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
22485  int UNUSED written = 0;
22486  IADDR UNUSED pc = abuf->addr;
22487  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
22488
22489if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
22490frvbf_media_register_not_aligned (current_cpu);
22491} else {
22492if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
22493{
22494  UHI tmp_argihi;
22495  UHI tmp_argilo;
22496  UHI tmp_argjhi;
22497  UHI tmp_argjlo;
22498  {
22499    SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
22500    sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
22501    written |= (1 << 16);
22502    TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
22503  }
22504{
22505  tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22506  tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22507  tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22508  tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22509}
22510{
22511  DI tmp_tmp;
22512  tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
22513if (GTDI (tmp_tmp, 65535)) {
22514{
22515  {
22516    UHI opval = 65535;
22517    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22518    written |= (1 << 17);
22519    TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22520  }
22521frvbf_media_overflow (current_cpu, 8);
22522}
22523} else {
22524if (LTDI (tmp_tmp, 0)) {
22525{
22526  {
22527    UHI opval = 0;
22528    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22529    written |= (1 << 17);
22530    TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22531  }
22532frvbf_media_overflow (current_cpu, 8);
22533}
22534} else {
22535  {
22536    UHI opval = tmp_tmp;
22537    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22538    written |= (1 << 17);
22539    TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22540  }
22541}
22542}
22543}
22544{
22545  DI tmp_tmp;
22546  tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
22547if (GTDI (tmp_tmp, 65535)) {
22548{
22549  {
22550    UHI opval = 65535;
22551    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22552    written |= (1 << 19);
22553    TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22554  }
22555frvbf_media_overflow (current_cpu, 4);
22556}
22557} else {
22558if (LTDI (tmp_tmp, 0)) {
22559{
22560  {
22561    UHI opval = 0;
22562    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22563    written |= (1 << 19);
22564    TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22565  }
22566frvbf_media_overflow (current_cpu, 4);
22567}
22568} else {
22569  {
22570    UHI opval = tmp_tmp;
22571    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22572    written |= (1 << 19);
22573    TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22574  }
22575}
22576}
22577}
22578{
22579  tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22580  tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22581  tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22582  tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22583}
22584{
22585  DI tmp_tmp;
22586  tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
22587if (GTDI (tmp_tmp, 65535)) {
22588{
22589  {
22590    UHI opval = 65535;
22591    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22592    written |= (1 << 18);
22593    TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22594  }
22595frvbf_media_overflow (current_cpu, 2);
22596}
22597} else {
22598if (LTDI (tmp_tmp, 0)) {
22599{
22600  {
22601    UHI opval = 0;
22602    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22603    written |= (1 << 18);
22604    TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22605  }
22606frvbf_media_overflow (current_cpu, 2);
22607}
22608} else {
22609  {
22610    UHI opval = tmp_tmp;
22611    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22612    written |= (1 << 18);
22613    TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22614  }
22615}
22616}
22617}
22618{
22619  DI tmp_tmp;
22620  tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
22621if (GTDI (tmp_tmp, 65535)) {
22622{
22623  {
22624    UHI opval = 65535;
22625    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22626    written |= (1 << 20);
22627    TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22628  }
22629frvbf_media_overflow (current_cpu, 1);
22630}
22631} else {
22632if (LTDI (tmp_tmp, 0)) {
22633{
22634  {
22635    UHI opval = 0;
22636    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22637    written |= (1 << 20);
22638    TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22639  }
22640frvbf_media_overflow (current_cpu, 1);
22641}
22642} else {
22643  {
22644    UHI opval = tmp_tmp;
22645    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22646    written |= (1 << 20);
22647    TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22648  }
22649}
22650}
22651}
22652}
22653}
22654}
22655
22656  abuf->written = written;
22657  return vpc;
22658#undef FLD
22659}
22660
22661/* mqlclrhs: mqlclrhs$pack $FRintieven,$FRintjeven,$FRintkeven */
22662
22663static SEM_PC
22664SEM_FN_NAME (frvbf,mqlclrhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
22665{
22666#define FLD(f) abuf->fields.sfmt_cmqaddhss.f
22667  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
22668  int UNUSED written = 0;
22669  IADDR UNUSED pc = abuf->addr;
22670  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
22671
22672if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
22673frvbf_media_register_not_aligned (current_cpu);
22674} else {
22675{
22676  HI tmp_a1;
22677  HI tmp_a2;
22678  HI tmp_a3;
22679  HI tmp_a4;
22680  HI tmp_b1;
22681  HI tmp_b2;
22682  HI tmp_b3;
22683  HI tmp_b4;
22684  {
22685    SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
22686    sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
22687    written |= (1 << 14);
22688    TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
22689  }
22690{
22691  tmp_a1 = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22692  tmp_a2 = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22693  tmp_b1 = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22694  tmp_b2 = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22695}
22696{
22697  tmp_a3 = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22698  tmp_a4 = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22699  tmp_b3 = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22700  tmp_b4 = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22701}
22702  {
22703    UHI opval = (LEUHI (ABSHI (tmp_a1), ABSHI (tmp_b1))) ? (0) : (LEHI (0, tmp_b1)) ? (tmp_a1) : (EQHI (tmp_a1, -32768)) ? (32767) : (NEGHI (tmp_a1));
22704    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22705    written |= (1 << 15);
22706    TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22707  }
22708  {
22709    UHI opval = (LEUHI (ABSHI (tmp_a2), ABSHI (tmp_b2))) ? (0) : (LEHI (0, tmp_b2)) ? (tmp_a2) : (EQHI (tmp_a2, -32768)) ? (32767) : (NEGHI (tmp_a2));
22710    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22711    written |= (1 << 17);
22712    TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22713  }
22714  {
22715    UHI opval = (LEUHI (ABSHI (tmp_a3), ABSHI (tmp_b3))) ? (0) : (LEHI (0, tmp_b3)) ? (tmp_a3) : (EQHI (tmp_a3, -32768)) ? (32767) : (NEGHI (tmp_a3));
22716    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22717    written |= (1 << 16);
22718    TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22719  }
22720  {
22721    UHI opval = (LEUHI (ABSHI (tmp_a4), ABSHI (tmp_b4))) ? (0) : (LEHI (0, tmp_b4)) ? (tmp_a4) : (EQHI (tmp_a4, -32768)) ? (32767) : (NEGHI (tmp_a4));
22722    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22723    written |= (1 << 18);
22724    TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22725  }
22726}
22727}
22728
22729  abuf->written = written;
22730  return vpc;
22731#undef FLD
22732}
22733
22734/* mqlmths: mqlmths$pack $FRintieven,$FRintjeven,$FRintkeven */
22735
22736static SEM_PC
22737SEM_FN_NAME (frvbf,mqlmths) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
22738{
22739#define FLD(f) abuf->fields.sfmt_cmqaddhss.f
22740  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
22741  int UNUSED written = 0;
22742  IADDR UNUSED pc = abuf->addr;
22743  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
22744
22745if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
22746frvbf_media_register_not_aligned (current_cpu);
22747} else {
22748{
22749  HI tmp_a1;
22750  HI tmp_a2;
22751  HI tmp_a3;
22752  HI tmp_a4;
22753  HI tmp_b1;
22754  HI tmp_b2;
22755  HI tmp_b3;
22756  HI tmp_b4;
22757  {
22758    SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
22759    sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
22760    written |= (1 << 14);
22761    TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
22762  }
22763{
22764  tmp_a1 = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22765  tmp_a2 = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22766  tmp_b1 = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22767  tmp_b2 = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22768}
22769{
22770  tmp_a3 = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22771  tmp_a4 = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22772  tmp_b3 = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22773  tmp_b4 = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22774}
22775  {
22776    UHI opval = (ANDIF (GTHI (tmp_b1, -32768), GEHI (tmp_a1, ABSHI (tmp_b1)))) ? (tmp_b1) : (GTHI (tmp_a1, NEGHI (ABSHI (tmp_b1)))) ? (tmp_a1) : (EQHI (tmp_b1, -32768)) ? (32767) : (NEGHI (tmp_b1));
22777    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22778    written |= (1 << 15);
22779    TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22780  }
22781  {
22782    UHI opval = (ANDIF (GTHI (tmp_b2, -32768), GEHI (tmp_a2, ABSHI (tmp_b2)))) ? (tmp_b2) : (GTHI (tmp_a2, NEGHI (ABSHI (tmp_b2)))) ? (tmp_a2) : (EQHI (tmp_b2, -32768)) ? (32767) : (NEGHI (tmp_b2));
22783    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22784    written |= (1 << 17);
22785    TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22786  }
22787  {
22788    UHI opval = (ANDIF (GTHI (tmp_b3, -32768), GEHI (tmp_a3, ABSHI (tmp_b3)))) ? (tmp_b3) : (GTHI (tmp_a3, NEGHI (ABSHI (tmp_b3)))) ? (tmp_a3) : (EQHI (tmp_b3, -32768)) ? (32767) : (NEGHI (tmp_b3));
22789    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22790    written |= (1 << 16);
22791    TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22792  }
22793  {
22794    UHI opval = (ANDIF (GTHI (tmp_b4, -32768), GEHI (tmp_a4, ABSHI (tmp_b4)))) ? (tmp_b4) : (GTHI (tmp_a4, NEGHI (ABSHI (tmp_b4)))) ? (tmp_a4) : (EQHI (tmp_b4, -32768)) ? (32767) : (NEGHI (tmp_b4));
22795    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22796    written |= (1 << 18);
22797    TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22798  }
22799}
22800}
22801
22802  abuf->written = written;
22803  return vpc;
22804#undef FLD
22805}
22806
22807/* mqsllhi: mqsllhi$pack $FRintieven,$u6,$FRintkeven */
22808
22809static SEM_PC
22810SEM_FN_NAME (frvbf,mqsllhi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
22811{
22812#define FLD(f) abuf->fields.sfmt_mqsllhi.f
22813  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
22814  int UNUSED written = 0;
22815  IADDR UNUSED pc = abuf->addr;
22816  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
22817
22818if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1)))) {
22819frvbf_media_register_not_aligned (current_cpu);
22820} else {
22821{
22822  {
22823    SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRi)));
22824    sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRi), opval);
22825    written |= (1 << 9);
22826    TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
22827  }
22828  {
22829    SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
22830    sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
22831    written |= (1 << 10);
22832    TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
22833  }
22834  {
22835    UHI opval = SLLHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), ANDSI (FLD (f_u6), 15));
22836    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22837    written |= (1 << 11);
22838    TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22839  }
22840  {
22841    UHI opval = SLLHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), ANDSI (FLD (f_u6), 15));
22842    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22843    written |= (1 << 13);
22844    TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22845  }
22846  {
22847    UHI opval = SLLHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), ANDSI (FLD (f_u6), 15));
22848    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22849    written |= (1 << 12);
22850    TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22851  }
22852  {
22853    UHI opval = SLLHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), ANDSI (FLD (f_u6), 15));
22854    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22855    written |= (1 << 14);
22856    TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22857  }
22858}
22859}
22860
22861  abuf->written = written;
22862  return vpc;
22863#undef FLD
22864}
22865
22866/* mqsrahi: mqsrahi$pack $FRintieven,$u6,$FRintkeven */
22867
22868static SEM_PC
22869SEM_FN_NAME (frvbf,mqsrahi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
22870{
22871#define FLD(f) abuf->fields.sfmt_mqsllhi.f
22872  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
22873  int UNUSED written = 0;
22874  IADDR UNUSED pc = abuf->addr;
22875  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
22876
22877if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1)))) {
22878frvbf_media_register_not_aligned (current_cpu);
22879} else {
22880{
22881  {
22882    SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRi)));
22883    sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRi), opval);
22884    written |= (1 << 9);
22885    TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
22886  }
22887  {
22888    SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
22889    sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
22890    written |= (1 << 10);
22891    TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
22892  }
22893  {
22894    UHI opval = SRAHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), ANDSI (FLD (f_u6), 15));
22895    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22896    written |= (1 << 11);
22897    TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22898  }
22899  {
22900    UHI opval = SRAHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), ANDSI (FLD (f_u6), 15));
22901    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22902    written |= (1 << 13);
22903    TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22904  }
22905  {
22906    UHI opval = SRAHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), ANDSI (FLD (f_u6), 15));
22907    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22908    written |= (1 << 12);
22909    TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22910  }
22911  {
22912    UHI opval = SRAHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), ANDSI (FLD (f_u6), 15));
22913    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22914    written |= (1 << 14);
22915    TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22916  }
22917}
22918}
22919
22920  abuf->written = written;
22921  return vpc;
22922#undef FLD
22923}
22924
22925/* maddaccs: maddaccs$pack $ACC40Si,$ACC40Sk */
22926
22927static SEM_PC
22928SEM_FN_NAME (frvbf,maddaccs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
22929{
22930#define FLD(f) abuf->fields.sfmt_mdasaccs.f
22931  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
22932  int UNUSED written = 0;
22933  IADDR UNUSED pc = abuf->addr;
22934  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
22935
22936if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Si))) {
22937if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
22938if (ANDSI (FLD (f_ACC40Si), SUBSI (2, 1))) {
22939frvbf_media_acc_not_aligned (current_cpu);
22940} else {
22941{
22942  DI tmp_tmp;
22943  tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_ACC40S (((FLD (f_ACC40Si)) + (1))));
22944if (GTDI (tmp_tmp, 549755813887)) {
22945{
22946  {
22947    DI opval = 549755813887;
22948    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
22949    written |= (1 << 4);
22950    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22951  }
22952frvbf_media_overflow (current_cpu, 8);
22953}
22954} else {
22955if (LTDI (tmp_tmp, INVDI (549755813887))) {
22956{
22957  {
22958    DI opval = INVDI (549755813887);
22959    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
22960    written |= (1 << 4);
22961    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22962  }
22963frvbf_media_overflow (current_cpu, 8);
22964}
22965} else {
22966  {
22967    DI opval = tmp_tmp;
22968    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
22969    written |= (1 << 4);
22970    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22971  }
22972}
22973}
22974}
22975}
22976}
22977}
22978
22979  abuf->written = written;
22980  return vpc;
22981#undef FLD
22982}
22983
22984/* msubaccs: msubaccs$pack $ACC40Si,$ACC40Sk */
22985
22986static SEM_PC
22987SEM_FN_NAME (frvbf,msubaccs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
22988{
22989#define FLD(f) abuf->fields.sfmt_mdasaccs.f
22990  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
22991  int UNUSED written = 0;
22992  IADDR UNUSED pc = abuf->addr;
22993  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
22994
22995if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Si))) {
22996if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
22997if (ANDSI (FLD (f_ACC40Si), SUBSI (2, 1))) {
22998frvbf_media_acc_not_aligned (current_cpu);
22999} else {
23000{
23001  DI tmp_tmp;
23002  tmp_tmp = SUBDI (GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_ACC40S (((FLD (f_ACC40Si)) + (1))));
23003if (GTDI (tmp_tmp, 549755813887)) {
23004{
23005  {
23006    DI opval = 549755813887;
23007    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23008    written |= (1 << 4);
23009    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23010  }
23011frvbf_media_overflow (current_cpu, 8);
23012}
23013} else {
23014if (LTDI (tmp_tmp, INVDI (549755813887))) {
23015{
23016  {
23017    DI opval = INVDI (549755813887);
23018    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23019    written |= (1 << 4);
23020    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23021  }
23022frvbf_media_overflow (current_cpu, 8);
23023}
23024} else {
23025  {
23026    DI opval = tmp_tmp;
23027    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23028    written |= (1 << 4);
23029    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23030  }
23031}
23032}
23033}
23034}
23035}
23036}
23037
23038  abuf->written = written;
23039  return vpc;
23040#undef FLD
23041}
23042
23043/* mdaddaccs: mdaddaccs$pack $ACC40Si,$ACC40Sk */
23044
23045static SEM_PC
23046SEM_FN_NAME (frvbf,mdaddaccs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23047{
23048#define FLD(f) abuf->fields.sfmt_mdasaccs.f
23049  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23050  int UNUSED written = 0;
23051  IADDR UNUSED pc = abuf->addr;
23052  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23053
23054if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Si))) {
23055if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
23056if (ANDSI (FLD (f_ACC40Si), SUBSI (4, 1))) {
23057frvbf_media_acc_not_aligned (current_cpu);
23058} else {
23059if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
23060frvbf_media_acc_not_aligned (current_cpu);
23061} else {
23062{
23063{
23064  DI tmp_tmp;
23065  tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_ACC40S (((FLD (f_ACC40Si)) + (1))));
23066if (GTDI (tmp_tmp, 549755813887)) {
23067{
23068  {
23069    DI opval = 549755813887;
23070    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23071    written |= (1 << 6);
23072    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23073  }
23074frvbf_media_overflow (current_cpu, 8);
23075}
23076} else {
23077if (LTDI (tmp_tmp, INVDI (549755813887))) {
23078{
23079  {
23080    DI opval = INVDI (549755813887);
23081    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23082    written |= (1 << 6);
23083    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23084  }
23085frvbf_media_overflow (current_cpu, 8);
23086}
23087} else {
23088  {
23089    DI opval = tmp_tmp;
23090    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23091    written |= (1 << 6);
23092    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23093  }
23094}
23095}
23096}
23097{
23098  DI tmp_tmp;
23099  tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Si)) + (2))), GET_H_ACC40S (((FLD (f_ACC40Si)) + (3))));
23100if (GTDI (tmp_tmp, 549755813887)) {
23101{
23102  {
23103    DI opval = 549755813887;
23104    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23105    written |= (1 << 7);
23106    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23107  }
23108frvbf_media_overflow (current_cpu, 4);
23109}
23110} else {
23111if (LTDI (tmp_tmp, INVDI (549755813887))) {
23112{
23113  {
23114    DI opval = INVDI (549755813887);
23115    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23116    written |= (1 << 7);
23117    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23118  }
23119frvbf_media_overflow (current_cpu, 4);
23120}
23121} else {
23122  {
23123    DI opval = tmp_tmp;
23124    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23125    written |= (1 << 7);
23126    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23127  }
23128}
23129}
23130}
23131}
23132}
23133}
23134}
23135}
23136
23137  abuf->written = written;
23138  return vpc;
23139#undef FLD
23140}
23141
23142/* mdsubaccs: mdsubaccs$pack $ACC40Si,$ACC40Sk */
23143
23144static SEM_PC
23145SEM_FN_NAME (frvbf,mdsubaccs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23146{
23147#define FLD(f) abuf->fields.sfmt_mdasaccs.f
23148  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23149  int UNUSED written = 0;
23150  IADDR UNUSED pc = abuf->addr;
23151  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23152
23153if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Si))) {
23154if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
23155if (ANDSI (FLD (f_ACC40Si), SUBSI (4, 1))) {
23156frvbf_media_acc_not_aligned (current_cpu);
23157} else {
23158if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
23159frvbf_media_acc_not_aligned (current_cpu);
23160} else {
23161{
23162{
23163  DI tmp_tmp;
23164  tmp_tmp = SUBDI (GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_ACC40S (((FLD (f_ACC40Si)) + (1))));
23165if (GTDI (tmp_tmp, 549755813887)) {
23166{
23167  {
23168    DI opval = 549755813887;
23169    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23170    written |= (1 << 6);
23171    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23172  }
23173frvbf_media_overflow (current_cpu, 8);
23174}
23175} else {
23176if (LTDI (tmp_tmp, INVDI (549755813887))) {
23177{
23178  {
23179    DI opval = INVDI (549755813887);
23180    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23181    written |= (1 << 6);
23182    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23183  }
23184frvbf_media_overflow (current_cpu, 8);
23185}
23186} else {
23187  {
23188    DI opval = tmp_tmp;
23189    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23190    written |= (1 << 6);
23191    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23192  }
23193}
23194}
23195}
23196{
23197  DI tmp_tmp;
23198  tmp_tmp = SUBDI (GET_H_ACC40S (((FLD (f_ACC40Si)) + (2))), GET_H_ACC40S (((FLD (f_ACC40Si)) + (3))));
23199if (GTDI (tmp_tmp, 549755813887)) {
23200{
23201  {
23202    DI opval = 549755813887;
23203    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23204    written |= (1 << 7);
23205    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23206  }
23207frvbf_media_overflow (current_cpu, 4);
23208}
23209} else {
23210if (LTDI (tmp_tmp, INVDI (549755813887))) {
23211{
23212  {
23213    DI opval = INVDI (549755813887);
23214    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23215    written |= (1 << 7);
23216    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23217  }
23218frvbf_media_overflow (current_cpu, 4);
23219}
23220} else {
23221  {
23222    DI opval = tmp_tmp;
23223    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23224    written |= (1 << 7);
23225    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23226  }
23227}
23228}
23229}
23230}
23231}
23232}
23233}
23234}
23235
23236  abuf->written = written;
23237  return vpc;
23238#undef FLD
23239}
23240
23241/* masaccs: masaccs$pack $ACC40Si,$ACC40Sk */
23242
23243static SEM_PC
23244SEM_FN_NAME (frvbf,masaccs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23245{
23246#define FLD(f) abuf->fields.sfmt_mdasaccs.f
23247  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23248  int UNUSED written = 0;
23249  IADDR UNUSED pc = abuf->addr;
23250  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23251
23252if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Si))) {
23253if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
23254if (ANDSI (FLD (f_ACC40Si), SUBSI (2, 1))) {
23255frvbf_media_acc_not_aligned (current_cpu);
23256} else {
23257if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
23258frvbf_media_acc_not_aligned (current_cpu);
23259} else {
23260{
23261{
23262  DI tmp_tmp;
23263  tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_ACC40S (((FLD (f_ACC40Si)) + (1))));
23264if (GTDI (tmp_tmp, 549755813887)) {
23265{
23266  {
23267    DI opval = 549755813887;
23268    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23269    written |= (1 << 4);
23270    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23271  }
23272frvbf_media_overflow (current_cpu, 8);
23273}
23274} else {
23275if (LTDI (tmp_tmp, INVDI (549755813887))) {
23276{
23277  {
23278    DI opval = INVDI (549755813887);
23279    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23280    written |= (1 << 4);
23281    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23282  }
23283frvbf_media_overflow (current_cpu, 8);
23284}
23285} else {
23286  {
23287    DI opval = tmp_tmp;
23288    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23289    written |= (1 << 4);
23290    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23291  }
23292}
23293}
23294}
23295{
23296  DI tmp_tmp;
23297  tmp_tmp = SUBDI (GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_ACC40S (((FLD (f_ACC40Si)) + (1))));
23298if (GTDI (tmp_tmp, 549755813887)) {
23299{
23300  {
23301    DI opval = 549755813887;
23302    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23303    written |= (1 << 5);
23304    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23305  }
23306frvbf_media_overflow (current_cpu, 4);
23307}
23308} else {
23309if (LTDI (tmp_tmp, INVDI (549755813887))) {
23310{
23311  {
23312    DI opval = INVDI (549755813887);
23313    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23314    written |= (1 << 5);
23315    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23316  }
23317frvbf_media_overflow (current_cpu, 4);
23318}
23319} else {
23320  {
23321    DI opval = tmp_tmp;
23322    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23323    written |= (1 << 5);
23324    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23325  }
23326}
23327}
23328}
23329}
23330}
23331}
23332}
23333}
23334
23335  abuf->written = written;
23336  return vpc;
23337#undef FLD
23338}
23339
23340/* mdasaccs: mdasaccs$pack $ACC40Si,$ACC40Sk */
23341
23342static SEM_PC
23343SEM_FN_NAME (frvbf,mdasaccs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23344{
23345#define FLD(f) abuf->fields.sfmt_mdasaccs.f
23346  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23347  int UNUSED written = 0;
23348  IADDR UNUSED pc = abuf->addr;
23349  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23350
23351if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Si))) {
23352if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
23353if (ANDSI (FLD (f_ACC40Si), SUBSI (4, 1))) {
23354frvbf_media_acc_not_aligned (current_cpu);
23355} else {
23356if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
23357frvbf_media_acc_not_aligned (current_cpu);
23358} else {
23359{
23360{
23361  DI tmp_tmp;
23362  tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_ACC40S (((FLD (f_ACC40Si)) + (1))));
23363if (GTDI (tmp_tmp, 549755813887)) {
23364{
23365  {
23366    DI opval = 549755813887;
23367    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23368    written |= (1 << 6);
23369    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23370  }
23371frvbf_media_overflow (current_cpu, 8);
23372}
23373} else {
23374if (LTDI (tmp_tmp, INVDI (549755813887))) {
23375{
23376  {
23377    DI opval = INVDI (549755813887);
23378    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23379    written |= (1 << 6);
23380    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23381  }
23382frvbf_media_overflow (current_cpu, 8);
23383}
23384} else {
23385  {
23386    DI opval = tmp_tmp;
23387    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23388    written |= (1 << 6);
23389    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23390  }
23391}
23392}
23393}
23394{
23395  DI tmp_tmp;
23396  tmp_tmp = SUBDI (GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_ACC40S (((FLD (f_ACC40Si)) + (1))));
23397if (GTDI (tmp_tmp, 549755813887)) {
23398{
23399  {
23400    DI opval = 549755813887;
23401    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23402    written |= (1 << 7);
23403    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23404  }
23405frvbf_media_overflow (current_cpu, 4);
23406}
23407} else {
23408if (LTDI (tmp_tmp, INVDI (549755813887))) {
23409{
23410  {
23411    DI opval = INVDI (549755813887);
23412    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23413    written |= (1 << 7);
23414    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23415  }
23416frvbf_media_overflow (current_cpu, 4);
23417}
23418} else {
23419  {
23420    DI opval = tmp_tmp;
23421    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23422    written |= (1 << 7);
23423    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23424  }
23425}
23426}
23427}
23428{
23429  DI tmp_tmp;
23430  tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Si)) + (2))), GET_H_ACC40S (((FLD (f_ACC40Si)) + (3))));
23431if (GTDI (tmp_tmp, 549755813887)) {
23432{
23433  {
23434    DI opval = 549755813887;
23435    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
23436    written |= (1 << 8);
23437    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23438  }
23439frvbf_media_overflow (current_cpu, 2);
23440}
23441} else {
23442if (LTDI (tmp_tmp, INVDI (549755813887))) {
23443{
23444  {
23445    DI opval = INVDI (549755813887);
23446    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
23447    written |= (1 << 8);
23448    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23449  }
23450frvbf_media_overflow (current_cpu, 2);
23451}
23452} else {
23453  {
23454    DI opval = tmp_tmp;
23455    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
23456    written |= (1 << 8);
23457    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23458  }
23459}
23460}
23461}
23462{
23463  DI tmp_tmp;
23464  tmp_tmp = SUBDI (GET_H_ACC40S (((FLD (f_ACC40Si)) + (2))), GET_H_ACC40S (((FLD (f_ACC40Si)) + (3))));
23465if (GTDI (tmp_tmp, 549755813887)) {
23466{
23467  {
23468    DI opval = 549755813887;
23469    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
23470    written |= (1 << 9);
23471    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23472  }
23473frvbf_media_overflow (current_cpu, 1);
23474}
23475} else {
23476if (LTDI (tmp_tmp, INVDI (549755813887))) {
23477{
23478  {
23479    DI opval = INVDI (549755813887);
23480    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
23481    written |= (1 << 9);
23482    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23483  }
23484frvbf_media_overflow (current_cpu, 1);
23485}
23486} else {
23487  {
23488    DI opval = tmp_tmp;
23489    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
23490    written |= (1 << 9);
23491    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23492  }
23493}
23494}
23495}
23496}
23497}
23498}
23499}
23500}
23501
23502  abuf->written = written;
23503  return vpc;
23504#undef FLD
23505}
23506
23507/* mmulhs: mmulhs$pack $FRinti,$FRintj,$ACC40Sk */
23508
23509static SEM_PC
23510SEM_FN_NAME (frvbf,mmulhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23511{
23512#define FLD(f) abuf->fields.sfmt_cmmachs.f
23513  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23514  int UNUSED written = 0;
23515  IADDR UNUSED pc = abuf->addr;
23516  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23517
23518if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
23519if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
23520frvbf_media_acc_not_aligned (current_cpu);
23521} else {
23522{
23523  HI tmp_argihi;
23524  HI tmp_argilo;
23525  HI tmp_argjhi;
23526  HI tmp_argjlo;
23527{
23528  tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23529  tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23530  tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23531  tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23532}
23533  {
23534    DI opval = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
23535    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23536    written |= (1 << 9);
23537    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23538  }
23539  {
23540    DI opval = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
23541    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23542    written |= (1 << 10);
23543    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23544  }
23545}
23546}
23547}
23548
23549  abuf->written = written;
23550  return vpc;
23551#undef FLD
23552}
23553
23554/* mmulhu: mmulhu$pack $FRinti,$FRintj,$ACC40Sk */
23555
23556static SEM_PC
23557SEM_FN_NAME (frvbf,mmulhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23558{
23559#define FLD(f) abuf->fields.sfmt_cmmachs.f
23560  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23561  int UNUSED written = 0;
23562  IADDR UNUSED pc = abuf->addr;
23563  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23564
23565if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
23566if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
23567frvbf_media_acc_not_aligned (current_cpu);
23568} else {
23569{
23570  UHI tmp_argihi;
23571  UHI tmp_argilo;
23572  UHI tmp_argjhi;
23573  UHI tmp_argjlo;
23574{
23575  tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23576  tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23577  tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23578  tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23579}
23580  {
23581    DI opval = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
23582    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23583    written |= (1 << 9);
23584    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23585  }
23586  {
23587    DI opval = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
23588    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23589    written |= (1 << 10);
23590    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23591  }
23592}
23593}
23594}
23595
23596  abuf->written = written;
23597  return vpc;
23598#undef FLD
23599}
23600
23601/* mmulxhs: mmulxhs$pack $FRinti,$FRintj,$ACC40Sk */
23602
23603static SEM_PC
23604SEM_FN_NAME (frvbf,mmulxhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23605{
23606#define FLD(f) abuf->fields.sfmt_cmmachs.f
23607  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23608  int UNUSED written = 0;
23609  IADDR UNUSED pc = abuf->addr;
23610  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23611
23612if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
23613if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
23614frvbf_media_acc_not_aligned (current_cpu);
23615} else {
23616{
23617  HI tmp_argihi;
23618  HI tmp_argilo;
23619  HI tmp_argjhi;
23620  HI tmp_argjlo;
23621{
23622  tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23623  tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23624  tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23625  tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23626}
23627  {
23628    DI opval = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo));
23629    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23630    written |= (1 << 9);
23631    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23632  }
23633  {
23634    DI opval = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi));
23635    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23636    written |= (1 << 10);
23637    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23638  }
23639}
23640}
23641}
23642
23643  abuf->written = written;
23644  return vpc;
23645#undef FLD
23646}
23647
23648/* mmulxhu: mmulxhu$pack $FRinti,$FRintj,$ACC40Sk */
23649
23650static SEM_PC
23651SEM_FN_NAME (frvbf,mmulxhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23652{
23653#define FLD(f) abuf->fields.sfmt_cmmachs.f
23654  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23655  int UNUSED written = 0;
23656  IADDR UNUSED pc = abuf->addr;
23657  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23658
23659if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
23660if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
23661frvbf_media_acc_not_aligned (current_cpu);
23662} else {
23663{
23664  UHI tmp_argihi;
23665  UHI tmp_argilo;
23666  UHI tmp_argjhi;
23667  UHI tmp_argjlo;
23668{
23669  tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23670  tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23671  tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23672  tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23673}
23674  {
23675    DI opval = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjlo));
23676    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23677    written |= (1 << 9);
23678    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23679  }
23680  {
23681    DI opval = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjhi));
23682    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23683    written |= (1 << 10);
23684    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23685  }
23686}
23687}
23688}
23689
23690  abuf->written = written;
23691  return vpc;
23692#undef FLD
23693}
23694
23695/* cmmulhs: cmmulhs$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
23696
23697static SEM_PC
23698SEM_FN_NAME (frvbf,cmmulhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23699{
23700#define FLD(f) abuf->fields.sfmt_cmmachs.f
23701  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23702  int UNUSED written = 0;
23703  IADDR UNUSED pc = abuf->addr;
23704  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23705
23706if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
23707if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
23708frvbf_media_acc_not_aligned (current_cpu);
23709} else {
23710if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
23711{
23712  HI tmp_argihi;
23713  HI tmp_argilo;
23714  HI tmp_argjhi;
23715  HI tmp_argjlo;
23716{
23717  tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23718  tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23719  tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23720  tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23721}
23722  {
23723    DI opval = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
23724    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23725    written |= (1 << 11);
23726    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23727  }
23728  {
23729    DI opval = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
23730    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23731    written |= (1 << 12);
23732    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23733  }
23734}
23735}
23736}
23737}
23738
23739  abuf->written = written;
23740  return vpc;
23741#undef FLD
23742}
23743
23744/* cmmulhu: cmmulhu$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
23745
23746static SEM_PC
23747SEM_FN_NAME (frvbf,cmmulhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23748{
23749#define FLD(f) abuf->fields.sfmt_cmmachs.f
23750  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23751  int UNUSED written = 0;
23752  IADDR UNUSED pc = abuf->addr;
23753  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23754
23755if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
23756if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
23757frvbf_media_acc_not_aligned (current_cpu);
23758} else {
23759if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
23760{
23761  UHI tmp_argihi;
23762  UHI tmp_argilo;
23763  UHI tmp_argjhi;
23764  UHI tmp_argjlo;
23765{
23766  tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23767  tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23768  tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23769  tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23770}
23771  {
23772    DI opval = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
23773    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23774    written |= (1 << 11);
23775    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23776  }
23777  {
23778    DI opval = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
23779    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23780    written |= (1 << 12);
23781    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23782  }
23783}
23784}
23785}
23786}
23787
23788  abuf->written = written;
23789  return vpc;
23790#undef FLD
23791}
23792
23793/* mqmulhs: mqmulhs$pack $FRintieven,$FRintjeven,$ACC40Sk */
23794
23795static SEM_PC
23796SEM_FN_NAME (frvbf,mqmulhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23797{
23798#define FLD(f) abuf->fields.sfmt_cmqmachs.f
23799  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23800  int UNUSED written = 0;
23801  IADDR UNUSED pc = abuf->addr;
23802  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23803
23804if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
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 {
23811{
23812  HI tmp_argihi;
23813  HI tmp_argilo;
23814  HI tmp_argjhi;
23815  HI tmp_argjlo;
23816{
23817  tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23818  tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23819  tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23820  tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23821}
23822  {
23823    DI opval = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
23824    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23825    written |= (1 << 13);
23826    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23827  }
23828  {
23829    DI opval = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
23830    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23831    written |= (1 << 14);
23832    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23833  }
23834{
23835  tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23836  tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23837  tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23838  tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23839}
23840  {
23841    DI opval = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
23842    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
23843    written |= (1 << 15);
23844    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23845  }
23846  {
23847    DI opval = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
23848    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
23849    written |= (1 << 16);
23850    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23851  }
23852}
23853}
23854}
23855}
23856
23857  abuf->written = written;
23858  return vpc;
23859#undef FLD
23860}
23861
23862/* mqmulhu: mqmulhu$pack $FRintieven,$FRintjeven,$ACC40Sk */
23863
23864static SEM_PC
23865SEM_FN_NAME (frvbf,mqmulhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23866{
23867#define FLD(f) abuf->fields.sfmt_cmqmachs.f
23868  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23869  int UNUSED written = 0;
23870  IADDR UNUSED pc = abuf->addr;
23871  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23872
23873if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
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 {
23880{
23881  UHI tmp_argihi;
23882  UHI tmp_argilo;
23883  UHI tmp_argjhi;
23884  UHI tmp_argjlo;
23885{
23886  tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23887  tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23888  tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23889  tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23890}
23891  {
23892    DI opval = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
23893    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23894    written |= (1 << 13);
23895    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23896  }
23897  {
23898    DI opval = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
23899    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23900    written |= (1 << 14);
23901    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23902  }
23903{
23904  tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23905  tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23906  tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23907  tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23908}
23909  {
23910    DI opval = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
23911    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
23912    written |= (1 << 15);
23913    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23914  }
23915  {
23916    DI opval = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
23917    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
23918    written |= (1 << 16);
23919    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23920  }
23921}
23922}
23923}
23924}
23925
23926  abuf->written = written;
23927  return vpc;
23928#undef FLD
23929}
23930
23931/* mqmulxhs: mqmulxhs$pack $FRintieven,$FRintjeven,$ACC40Sk */
23932
23933static SEM_PC
23934SEM_FN_NAME (frvbf,mqmulxhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23935{
23936#define FLD(f) abuf->fields.sfmt_cmqmachs.f
23937  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23938  int UNUSED written = 0;
23939  IADDR UNUSED pc = abuf->addr;
23940  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23941
23942if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
23943if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
23944frvbf_media_acc_not_aligned (current_cpu);
23945} else {
23946if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
23947frvbf_media_register_not_aligned (current_cpu);
23948} else {
23949{
23950  HI tmp_argihi;
23951  HI tmp_argilo;
23952  HI tmp_argjhi;
23953  HI tmp_argjlo;
23954{
23955  tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23956  tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23957  tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23958  tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23959}
23960  {
23961    DI opval = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo));
23962    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23963    written |= (1 << 13);
23964    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23965  }
23966  {
23967    DI opval = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi));
23968    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23969    written |= (1 << 14);
23970    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23971  }
23972{
23973  tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23974  tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23975  tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23976  tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23977}
23978  {
23979    DI opval = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo));
23980    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
23981    written |= (1 << 15);
23982    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23983  }
23984  {
23985    DI opval = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi));
23986    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
23987    written |= (1 << 16);
23988    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23989  }
23990}
23991}
23992}
23993}
23994
23995  abuf->written = written;
23996  return vpc;
23997#undef FLD
23998}
23999
24000/* mqmulxhu: mqmulxhu$pack $FRintieven,$FRintjeven,$ACC40Sk */
24001
24002static SEM_PC
24003SEM_FN_NAME (frvbf,mqmulxhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
24004{
24005#define FLD(f) abuf->fields.sfmt_cmqmachs.f
24006  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
24007  int UNUSED written = 0;
24008  IADDR UNUSED pc = abuf->addr;
24009  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
24010
24011if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
24012if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
24013frvbf_media_acc_not_aligned (current_cpu);
24014} else {
24015if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
24016frvbf_media_register_not_aligned (current_cpu);
24017} else {
24018{
24019  UHI tmp_argihi;
24020  UHI tmp_argilo;
24021  UHI tmp_argjhi;
24022  UHI tmp_argjlo;
24023{
24024  tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24025  tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24026  tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24027  tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24028}
24029  {
24030    DI opval = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjlo));
24031    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24032    written |= (1 << 13);
24033    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24034  }
24035  {
24036    DI opval = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjhi));
24037    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24038    written |= (1 << 14);
24039    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24040  }
24041{
24042  tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24043  tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24044  tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24045  tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24046}
24047  {
24048    DI opval = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjlo));
24049    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
24050    written |= (1 << 15);
24051    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24052  }
24053  {
24054    DI opval = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjhi));
24055    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
24056    written |= (1 << 16);
24057    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24058  }
24059}
24060}
24061}
24062}
24063
24064  abuf->written = written;
24065  return vpc;
24066#undef FLD
24067}
24068
24069/* cmqmulhs: cmqmulhs$pack $FRintieven,$FRintjeven,$ACC40Sk,$CCi,$cond */
24070
24071static SEM_PC
24072SEM_FN_NAME (frvbf,cmqmulhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
24073{
24074#define FLD(f) abuf->fields.sfmt_cmqmachs.f
24075  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
24076  int UNUSED written = 0;
24077  IADDR UNUSED pc = abuf->addr;
24078  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
24079
24080if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
24081if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
24082frvbf_media_acc_not_aligned (current_cpu);
24083} else {
24084if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
24085frvbf_media_register_not_aligned (current_cpu);
24086} else {
24087if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
24088{
24089  HI tmp_argihi;
24090  HI tmp_argilo;
24091  HI tmp_argjhi;
24092  HI tmp_argjlo;
24093{
24094  tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24095  tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24096  tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24097  tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24098}
24099  {
24100    DI opval = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
24101    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24102    written |= (1 << 15);
24103    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24104  }
24105  {
24106    DI opval = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
24107    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24108    written |= (1 << 16);
24109    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24110  }
24111{
24112  tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24113  tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24114  tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24115  tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24116}
24117  {
24118    DI opval = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
24119    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
24120    written |= (1 << 17);
24121    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24122  }
24123  {
24124    DI opval = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
24125    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
24126    written |= (1 << 18);
24127    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24128  }
24129}
24130}
24131}
24132}
24133}
24134
24135  abuf->written = written;
24136  return vpc;
24137#undef FLD
24138}
24139
24140/* cmqmulhu: cmqmulhu$pack $FRintieven,$FRintjeven,$ACC40Sk,$CCi,$cond */
24141
24142static SEM_PC
24143SEM_FN_NAME (frvbf,cmqmulhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
24144{
24145#define FLD(f) abuf->fields.sfmt_cmqmachs.f
24146  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
24147  int UNUSED written = 0;
24148  IADDR UNUSED pc = abuf->addr;
24149  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
24150
24151if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
24152if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
24153frvbf_media_acc_not_aligned (current_cpu);
24154} else {
24155if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
24156frvbf_media_register_not_aligned (current_cpu);
24157} else {
24158if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
24159{
24160  UHI tmp_argihi;
24161  UHI tmp_argilo;
24162  UHI tmp_argjhi;
24163  UHI tmp_argjlo;
24164{
24165  tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24166  tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24167  tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24168  tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24169}
24170  {
24171    DI opval = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
24172    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24173    written |= (1 << 15);
24174    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24175  }
24176  {
24177    DI opval = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
24178    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24179    written |= (1 << 16);
24180    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24181  }
24182{
24183  tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24184  tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24185  tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24186  tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24187}
24188  {
24189    DI opval = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
24190    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
24191    written |= (1 << 17);
24192    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24193  }
24194  {
24195    DI opval = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
24196    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
24197    written |= (1 << 18);
24198    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24199  }
24200}
24201}
24202}
24203}
24204}
24205
24206  abuf->written = written;
24207  return vpc;
24208#undef FLD
24209}
24210
24211/* mmachs: mmachs$pack $FRinti,$FRintj,$ACC40Sk */
24212
24213static SEM_PC
24214SEM_FN_NAME (frvbf,mmachs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
24215{
24216#define FLD(f) abuf->fields.sfmt_cmmachs.f
24217  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
24218  int UNUSED written = 0;
24219  IADDR UNUSED pc = abuf->addr;
24220  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
24221
24222if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
24223if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
24224frvbf_media_acc_not_aligned (current_cpu);
24225} else {
24226{
24227  HI tmp_argihi;
24228  HI tmp_argilo;
24229  HI tmp_argjhi;
24230  HI tmp_argjlo;
24231{
24232  tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24233  tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24234  tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24235  tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24236}
24237{
24238  DI tmp_tmp;
24239  tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Sk)), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi)));
24240if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24241{
24242  {
24243    DI opval = MAKEDI (127, 0xffffffff);
24244    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24245    written |= (1 << 11);
24246    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24247  }
24248frvbf_media_overflow (current_cpu, 8);
24249}
24250} else {
24251if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24252{
24253  {
24254    DI opval = MAKEDI (0xffffff80, 0);
24255    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24256    written |= (1 << 11);
24257    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24258  }
24259frvbf_media_overflow (current_cpu, 8);
24260}
24261} else {
24262  {
24263    DI opval = tmp_tmp;
24264    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24265    written |= (1 << 11);
24266    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24267  }
24268}
24269}
24270}
24271{
24272  DI tmp_tmp;
24273  tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (1))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo)));
24274if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24275{
24276  {
24277    DI opval = MAKEDI (127, 0xffffffff);
24278    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24279    written |= (1 << 12);
24280    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24281  }
24282frvbf_media_overflow (current_cpu, 4);
24283}
24284} else {
24285if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24286{
24287  {
24288    DI opval = MAKEDI (0xffffff80, 0);
24289    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24290    written |= (1 << 12);
24291    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24292  }
24293frvbf_media_overflow (current_cpu, 4);
24294}
24295} else {
24296  {
24297    DI opval = tmp_tmp;
24298    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24299    written |= (1 << 12);
24300    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24301  }
24302}
24303}
24304}
24305}
24306}
24307}
24308
24309  abuf->written = written;
24310  return vpc;
24311#undef FLD
24312}
24313
24314/* mmachu: mmachu$pack $FRinti,$FRintj,$ACC40Uk */
24315
24316static SEM_PC
24317SEM_FN_NAME (frvbf,mmachu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
24318{
24319#define FLD(f) abuf->fields.sfmt_cmmachu.f
24320  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
24321  int UNUSED written = 0;
24322  IADDR UNUSED pc = abuf->addr;
24323  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
24324
24325if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Uk))) {
24326if (ANDSI (FLD (f_ACC40Uk), SUBSI (2, 1))) {
24327frvbf_media_acc_not_aligned (current_cpu);
24328} else {
24329{
24330  UHI tmp_argihi;
24331  UHI tmp_argilo;
24332  UHI tmp_argjhi;
24333  UHI tmp_argjlo;
24334{
24335  tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24336  tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24337  tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24338  tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24339}
24340{
24341  DI tmp_tmp;
24342  tmp_tmp = ADDDI (GET_H_ACC40U (FLD (f_ACC40Uk)), MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi)));
24343if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
24344{
24345  {
24346    UDI opval = MAKEDI (255, 0xffffffff);
24347    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24348    written |= (1 << 11);
24349    TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24350  }
24351frvbf_media_overflow (current_cpu, 8);
24352}
24353} else {
24354if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
24355{
24356  {
24357    UDI opval = MAKEDI (0, 0);
24358    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24359    written |= (1 << 11);
24360    TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24361  }
24362frvbf_media_overflow (current_cpu, 8);
24363}
24364} else {
24365  {
24366    UDI opval = tmp_tmp;
24367    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24368    written |= (1 << 11);
24369    TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24370  }
24371}
24372}
24373}
24374{
24375  DI tmp_tmp;
24376  tmp_tmp = ADDDI (GET_H_ACC40U (((FLD (f_ACC40Uk)) + (1))), MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo)));
24377if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
24378{
24379  {
24380    UDI opval = MAKEDI (255, 0xffffffff);
24381    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
24382    written |= (1 << 12);
24383    TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24384  }
24385frvbf_media_overflow (current_cpu, 4);
24386}
24387} else {
24388if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
24389{
24390  {
24391    UDI opval = MAKEDI (0, 0);
24392    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
24393    written |= (1 << 12);
24394    TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24395  }
24396frvbf_media_overflow (current_cpu, 4);
24397}
24398} else {
24399  {
24400    UDI opval = tmp_tmp;
24401    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
24402    written |= (1 << 12);
24403    TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24404  }
24405}
24406}
24407}
24408}
24409}
24410}
24411
24412  abuf->written = written;
24413  return vpc;
24414#undef FLD
24415}
24416
24417/* mmrdhs: mmrdhs$pack $FRinti,$FRintj,$ACC40Sk */
24418
24419static SEM_PC
24420SEM_FN_NAME (frvbf,mmrdhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
24421{
24422#define FLD(f) abuf->fields.sfmt_cmmachs.f
24423  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
24424  int UNUSED written = 0;
24425  IADDR UNUSED pc = abuf->addr;
24426  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
24427
24428if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
24429if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
24430frvbf_media_acc_not_aligned (current_cpu);
24431} else {
24432{
24433  HI tmp_argihi;
24434  HI tmp_argilo;
24435  HI tmp_argjhi;
24436  HI tmp_argjlo;
24437{
24438  tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24439  tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24440  tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24441  tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24442}
24443{
24444  DI tmp_tmp;
24445  tmp_tmp = SUBDI (GET_H_ACC40S (FLD (f_ACC40Sk)), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi)));
24446if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24447{
24448  {
24449    DI opval = MAKEDI (127, 0xffffffff);
24450    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24451    written |= (1 << 11);
24452    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24453  }
24454frvbf_media_overflow (current_cpu, 8);
24455}
24456} else {
24457if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24458{
24459  {
24460    DI opval = MAKEDI (0xffffff80, 0);
24461    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24462    written |= (1 << 11);
24463    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24464  }
24465frvbf_media_overflow (current_cpu, 8);
24466}
24467} else {
24468  {
24469    DI opval = tmp_tmp;
24470    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24471    written |= (1 << 11);
24472    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24473  }
24474}
24475}
24476}
24477{
24478  DI tmp_tmp;
24479  tmp_tmp = SUBDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (1))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo)));
24480if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24481{
24482  {
24483    DI opval = MAKEDI (127, 0xffffffff);
24484    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24485    written |= (1 << 12);
24486    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24487  }
24488frvbf_media_overflow (current_cpu, 4);
24489}
24490} else {
24491if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24492{
24493  {
24494    DI opval = MAKEDI (0xffffff80, 0);
24495    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24496    written |= (1 << 12);
24497    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24498  }
24499frvbf_media_overflow (current_cpu, 4);
24500}
24501} else {
24502  {
24503    DI opval = tmp_tmp;
24504    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24505    written |= (1 << 12);
24506    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24507  }
24508}
24509}
24510}
24511}
24512}
24513}
24514
24515  abuf->written = written;
24516  return vpc;
24517#undef FLD
24518}
24519
24520/* mmrdhu: mmrdhu$pack $FRinti,$FRintj,$ACC40Uk */
24521
24522static SEM_PC
24523SEM_FN_NAME (frvbf,mmrdhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
24524{
24525#define FLD(f) abuf->fields.sfmt_cmmachu.f
24526  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
24527  int UNUSED written = 0;
24528  IADDR UNUSED pc = abuf->addr;
24529  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
24530
24531if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Uk))) {
24532if (ANDSI (FLD (f_ACC40Uk), SUBSI (2, 1))) {
24533frvbf_media_acc_not_aligned (current_cpu);
24534} else {
24535{
24536  UHI tmp_argihi;
24537  UHI tmp_argilo;
24538  UHI tmp_argjhi;
24539  UHI tmp_argjlo;
24540{
24541  tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24542  tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24543  tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24544  tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24545}
24546{
24547  DI tmp_tmp;
24548  tmp_tmp = SUBDI (GET_H_ACC40U (FLD (f_ACC40Uk)), MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi)));
24549if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
24550{
24551  {
24552    UDI opval = MAKEDI (255, 0xffffffff);
24553    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24554    written |= (1 << 11);
24555    TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24556  }
24557frvbf_media_overflow (current_cpu, 8);
24558}
24559} else {
24560if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
24561{
24562  {
24563    UDI opval = MAKEDI (0, 0);
24564    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24565    written |= (1 << 11);
24566    TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24567  }
24568frvbf_media_overflow (current_cpu, 8);
24569}
24570} else {
24571  {
24572    UDI opval = tmp_tmp;
24573    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24574    written |= (1 << 11);
24575    TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24576  }
24577}
24578}
24579}
24580{
24581  DI tmp_tmp;
24582  tmp_tmp = SUBDI (GET_H_ACC40U (((FLD (f_ACC40Uk)) + (1))), MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo)));
24583if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
24584{
24585  {
24586    UDI opval = MAKEDI (255, 0xffffffff);
24587    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
24588    written |= (1 << 12);
24589    TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24590  }
24591frvbf_media_overflow (current_cpu, 4);
24592}
24593} else {
24594if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
24595{
24596  {
24597    UDI opval = MAKEDI (0, 0);
24598    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
24599    written |= (1 << 12);
24600    TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24601  }
24602frvbf_media_overflow (current_cpu, 4);
24603}
24604} else {
24605  {
24606    UDI opval = tmp_tmp;
24607    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
24608    written |= (1 << 12);
24609    TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24610  }
24611}
24612}
24613}
24614}
24615}
24616}
24617
24618  abuf->written = written;
24619  return vpc;
24620#undef FLD
24621}
24622
24623/* cmmachs: cmmachs$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
24624
24625static SEM_PC
24626SEM_FN_NAME (frvbf,cmmachs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
24627{
24628#define FLD(f) abuf->fields.sfmt_cmmachs.f
24629  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
24630  int UNUSED written = 0;
24631  IADDR UNUSED pc = abuf->addr;
24632  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
24633
24634if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
24635if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
24636frvbf_media_acc_not_aligned (current_cpu);
24637} else {
24638if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
24639{
24640  HI tmp_argihi;
24641  HI tmp_argilo;
24642  HI tmp_argjhi;
24643  HI tmp_argjlo;
24644{
24645  tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24646  tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24647  tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24648  tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24649}
24650{
24651  DI tmp_tmp;
24652  tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Sk)), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi)));
24653if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24654{
24655  {
24656    DI opval = MAKEDI (127, 0xffffffff);
24657    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24658    written |= (1 << 13);
24659    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24660  }
24661frvbf_media_overflow (current_cpu, 8);
24662}
24663} else {
24664if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24665{
24666  {
24667    DI opval = MAKEDI (0xffffff80, 0);
24668    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24669    written |= (1 << 13);
24670    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24671  }
24672frvbf_media_overflow (current_cpu, 8);
24673}
24674} else {
24675  {
24676    DI opval = tmp_tmp;
24677    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24678    written |= (1 << 13);
24679    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24680  }
24681}
24682}
24683}
24684{
24685  DI tmp_tmp;
24686  tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (1))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo)));
24687if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24688{
24689  {
24690    DI opval = MAKEDI (127, 0xffffffff);
24691    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24692    written |= (1 << 14);
24693    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24694  }
24695frvbf_media_overflow (current_cpu, 4);
24696}
24697} else {
24698if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24699{
24700  {
24701    DI opval = MAKEDI (0xffffff80, 0);
24702    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24703    written |= (1 << 14);
24704    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24705  }
24706frvbf_media_overflow (current_cpu, 4);
24707}
24708} else {
24709  {
24710    DI opval = tmp_tmp;
24711    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24712    written |= (1 << 14);
24713    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24714  }
24715}
24716}
24717}
24718}
24719}
24720}
24721}
24722
24723  abuf->written = written;
24724  return vpc;
24725#undef FLD
24726}
24727
24728/* cmmachu: cmmachu$pack $FRinti,$FRintj,$ACC40Uk,$CCi,$cond */
24729
24730static SEM_PC
24731SEM_FN_NAME (frvbf,cmmachu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
24732{
24733#define FLD(f) abuf->fields.sfmt_cmmachu.f
24734  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
24735  int UNUSED written = 0;
24736  IADDR UNUSED pc = abuf->addr;
24737  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
24738
24739if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Uk))) {
24740if (ANDSI (FLD (f_ACC40Uk), SUBSI (2, 1))) {
24741frvbf_media_acc_not_aligned (current_cpu);
24742} else {
24743if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
24744{
24745  UHI tmp_argihi;
24746  UHI tmp_argilo;
24747  UHI tmp_argjhi;
24748  UHI tmp_argjlo;
24749{
24750  tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24751  tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24752  tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24753  tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24754}
24755{
24756  DI tmp_tmp;
24757  tmp_tmp = ADDDI (GET_H_ACC40U (FLD (f_ACC40Uk)), MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi)));
24758if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
24759{
24760  {
24761    UDI opval = MAKEDI (255, 0xffffffff);
24762    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24763    written |= (1 << 13);
24764    TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24765  }
24766frvbf_media_overflow (current_cpu, 8);
24767}
24768} else {
24769if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
24770{
24771  {
24772    UDI opval = MAKEDI (0, 0);
24773    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24774    written |= (1 << 13);
24775    TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24776  }
24777frvbf_media_overflow (current_cpu, 8);
24778}
24779} else {
24780  {
24781    UDI opval = tmp_tmp;
24782    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24783    written |= (1 << 13);
24784    TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24785  }
24786}
24787}
24788}
24789{
24790  DI tmp_tmp;
24791  tmp_tmp = ADDDI (GET_H_ACC40U (((FLD (f_ACC40Uk)) + (1))), MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo)));
24792if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
24793{
24794  {
24795    UDI opval = MAKEDI (255, 0xffffffff);
24796    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
24797    written |= (1 << 14);
24798    TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24799  }
24800frvbf_media_overflow (current_cpu, 4);
24801}
24802} else {
24803if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
24804{
24805  {
24806    UDI opval = MAKEDI (0, 0);
24807    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
24808    written |= (1 << 14);
24809    TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24810  }
24811frvbf_media_overflow (current_cpu, 4);
24812}
24813} else {
24814  {
24815    UDI opval = tmp_tmp;
24816    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
24817    written |= (1 << 14);
24818    TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24819  }
24820}
24821}
24822}
24823}
24824}
24825}
24826}
24827
24828  abuf->written = written;
24829  return vpc;
24830#undef FLD
24831}
24832
24833/* mqmachs: mqmachs$pack $FRintieven,$FRintjeven,$ACC40Sk */
24834
24835static SEM_PC
24836SEM_FN_NAME (frvbf,mqmachs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
24837{
24838#define FLD(f) abuf->fields.sfmt_cmqmachs.f
24839  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
24840  int UNUSED written = 0;
24841  IADDR UNUSED pc = abuf->addr;
24842  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
24843
24844if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
24845if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
24846frvbf_media_acc_not_aligned (current_cpu);
24847} else {
24848if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
24849frvbf_media_register_not_aligned (current_cpu);
24850} else {
24851{
24852  HI tmp_argihi;
24853  HI tmp_argilo;
24854  HI tmp_argjhi;
24855  HI tmp_argjlo;
24856{
24857  tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24858  tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24859  tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24860  tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24861}
24862{
24863  DI tmp_tmp;
24864  tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Sk)), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi)));
24865if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24866{
24867  {
24868    DI opval = MAKEDI (127, 0xffffffff);
24869    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24870    written |= (1 << 17);
24871    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24872  }
24873frvbf_media_overflow (current_cpu, 8);
24874}
24875} else {
24876if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24877{
24878  {
24879    DI opval = MAKEDI (0xffffff80, 0);
24880    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24881    written |= (1 << 17);
24882    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24883  }
24884frvbf_media_overflow (current_cpu, 8);
24885}
24886} else {
24887  {
24888    DI opval = tmp_tmp;
24889    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24890    written |= (1 << 17);
24891    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24892  }
24893}
24894}
24895}
24896{
24897  DI tmp_tmp;
24898  tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (1))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo)));
24899if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24900{
24901  {
24902    DI opval = MAKEDI (127, 0xffffffff);
24903    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24904    written |= (1 << 18);
24905    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24906  }
24907frvbf_media_overflow (current_cpu, 4);
24908}
24909} else {
24910if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24911{
24912  {
24913    DI opval = MAKEDI (0xffffff80, 0);
24914    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24915    written |= (1 << 18);
24916    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24917  }
24918frvbf_media_overflow (current_cpu, 4);
24919}
24920} else {
24921  {
24922    DI opval = tmp_tmp;
24923    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24924    written |= (1 << 18);
24925    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24926  }
24927}
24928}
24929}
24930{
24931  tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24932  tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24933  tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24934  tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24935}
24936{
24937  DI tmp_tmp;
24938  tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (2))), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi)));
24939if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24940{
24941  {
24942    DI opval = MAKEDI (127, 0xffffffff);
24943    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
24944    written |= (1 << 19);
24945    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24946  }
24947frvbf_media_overflow (current_cpu, 2);
24948}
24949} else {
24950if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24951{
24952  {
24953    DI opval = MAKEDI (0xffffff80, 0);
24954    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
24955    written |= (1 << 19);
24956    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24957  }
24958frvbf_media_overflow (current_cpu, 2);
24959}
24960} else {
24961  {
24962    DI opval = tmp_tmp;
24963    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
24964    written |= (1 << 19);
24965    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24966  }
24967}
24968}
24969}
24970{
24971  DI tmp_tmp;
24972  tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (3))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo)));
24973if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24974{
24975  {
24976    DI opval = MAKEDI (127, 0xffffffff);
24977    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
24978    written |= (1 << 20);
24979    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24980  }
24981frvbf_media_overflow (current_cpu, 1);
24982}
24983} else {
24984if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24985{
24986  {
24987    DI opval = MAKEDI (0xffffff80, 0);
24988    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
24989    written |= (1 << 20);
24990    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24991  }
24992frvbf_media_overflow (current_cpu, 1);
24993}
24994} else {
24995  {
24996    DI opval = tmp_tmp;
24997    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
24998    written |= (1 << 20);
24999    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25000  }
25001}
25002}
25003}
25004}
25005}
25006}
25007}
25008
25009  abuf->written = written;
25010  return vpc;
25011#undef FLD
25012}
25013
25014/* mqmachu: mqmachu$pack $FRintieven,$FRintjeven,$ACC40Uk */
25015
25016static SEM_PC
25017SEM_FN_NAME (frvbf,mqmachu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
25018{
25019#define FLD(f) abuf->fields.sfmt_cmqmachu.f
25020  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
25021  int UNUSED written = 0;
25022  IADDR UNUSED pc = abuf->addr;
25023  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
25024
25025if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Uk))) {
25026if (ANDSI (FLD (f_ACC40Uk), SUBSI (4, 1))) {
25027frvbf_media_acc_not_aligned (current_cpu);
25028} else {
25029if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
25030frvbf_media_register_not_aligned (current_cpu);
25031} else {
25032{
25033  UHI tmp_argihi;
25034  UHI tmp_argilo;
25035  UHI tmp_argjhi;
25036  UHI tmp_argjlo;
25037{
25038  tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25039  tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25040  tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25041  tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25042}
25043{
25044  DI tmp_tmp;
25045  tmp_tmp = ADDDI (GET_H_ACC40U (FLD (f_ACC40Uk)), MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi)));
25046if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
25047{
25048  {
25049    UDI opval = MAKEDI (255, 0xffffffff);
25050    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
25051    written |= (1 << 17);
25052    TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25053  }
25054frvbf_media_overflow (current_cpu, 8);
25055}
25056} else {
25057if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
25058{
25059  {
25060    UDI opval = MAKEDI (0, 0);
25061    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
25062    written |= (1 << 17);
25063    TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25064  }
25065frvbf_media_overflow (current_cpu, 8);
25066}
25067} else {
25068  {
25069    UDI opval = tmp_tmp;
25070    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
25071    written |= (1 << 17);
25072    TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25073  }
25074}
25075}
25076}
25077{
25078  DI tmp_tmp;
25079  tmp_tmp = ADDDI (GET_H_ACC40U (((FLD (f_ACC40Uk)) + (1))), MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo)));
25080if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
25081{
25082  {
25083    UDI opval = MAKEDI (255, 0xffffffff);
25084    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
25085    written |= (1 << 18);
25086    TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25087  }
25088frvbf_media_overflow (current_cpu, 4);
25089}
25090} else {
25091if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
25092{
25093  {
25094    UDI opval = MAKEDI (0, 0);
25095    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
25096    written |= (1 << 18);
25097    TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25098  }
25099frvbf_media_overflow (current_cpu, 4);
25100}
25101} else {
25102  {
25103    UDI opval = tmp_tmp;
25104    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
25105    written |= (1 << 18);
25106    TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25107  }
25108}
25109}
25110}
25111{
25112  tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25113  tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25114  tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25115  tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25116}
25117{
25118  DI tmp_tmp;
25119  tmp_tmp = ADDDI (GET_H_ACC40U (((FLD (f_ACC40Uk)) + (2))), MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi)));
25120if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
25121{
25122  {
25123    UDI opval = MAKEDI (255, 0xffffffff);
25124    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (2)), opval);
25125    written |= (1 << 19);
25126    TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25127  }
25128frvbf_media_overflow (current_cpu, 2);
25129}
25130} else {
25131if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
25132{
25133  {
25134    UDI opval = MAKEDI (0, 0);
25135    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (2)), opval);
25136    written |= (1 << 19);
25137    TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25138  }
25139frvbf_media_overflow (current_cpu, 2);
25140}
25141} else {
25142  {
25143    UDI opval = tmp_tmp;
25144    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (2)), opval);
25145    written |= (1 << 19);
25146    TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25147  }
25148}
25149}
25150}
25151{
25152  DI tmp_tmp;
25153  tmp_tmp = ADDDI (GET_H_ACC40U (((FLD (f_ACC40Uk)) + (3))), MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo)));
25154if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
25155{
25156  {
25157    UDI opval = MAKEDI (255, 0xffffffff);
25158    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (3)), opval);
25159    written |= (1 << 20);
25160    TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25161  }
25162frvbf_media_overflow (current_cpu, 1);
25163}
25164} else {
25165if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
25166{
25167  {
25168    UDI opval = MAKEDI (0, 0);
25169    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (3)), opval);
25170    written |= (1 << 20);
25171    TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25172  }
25173frvbf_media_overflow (current_cpu, 1);
25174}
25175} else {
25176  {
25177    UDI opval = tmp_tmp;
25178    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (3)), opval);
25179    written |= (1 << 20);
25180    TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25181  }
25182}
25183}
25184}
25185}
25186}
25187}
25188}
25189
25190  abuf->written = written;
25191  return vpc;
25192#undef FLD
25193}
25194
25195/* cmqmachs: cmqmachs$pack $FRintieven,$FRintjeven,$ACC40Sk,$CCi,$cond */
25196
25197static SEM_PC
25198SEM_FN_NAME (frvbf,cmqmachs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
25199{
25200#define FLD(f) abuf->fields.sfmt_cmqmachs.f
25201  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
25202  int UNUSED written = 0;
25203  IADDR UNUSED pc = abuf->addr;
25204  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
25205
25206if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
25207if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
25208frvbf_media_acc_not_aligned (current_cpu);
25209} else {
25210if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
25211frvbf_media_register_not_aligned (current_cpu);
25212} else {
25213if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
25214{
25215  HI tmp_argihi;
25216  HI tmp_argilo;
25217  HI tmp_argjhi;
25218  HI tmp_argjlo;
25219{
25220  tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25221  tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25222  tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25223  tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25224}
25225{
25226  DI tmp_tmp;
25227  tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Sk)), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi)));
25228if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25229{
25230  {
25231    DI opval = MAKEDI (127, 0xffffffff);
25232    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25233    written |= (1 << 19);
25234    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25235  }
25236frvbf_media_overflow (current_cpu, 8);
25237}
25238} else {
25239if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25240{
25241  {
25242    DI opval = MAKEDI (0xffffff80, 0);
25243    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25244    written |= (1 << 19);
25245    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25246  }
25247frvbf_media_overflow (current_cpu, 8);
25248}
25249} else {
25250  {
25251    DI opval = tmp_tmp;
25252    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25253    written |= (1 << 19);
25254    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25255  }
25256}
25257}
25258}
25259{
25260  DI tmp_tmp;
25261  tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (1))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo)));
25262if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25263{
25264  {
25265    DI opval = MAKEDI (127, 0xffffffff);
25266    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
25267    written |= (1 << 20);
25268    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25269  }
25270frvbf_media_overflow (current_cpu, 4);
25271}
25272} else {
25273if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25274{
25275  {
25276    DI opval = MAKEDI (0xffffff80, 0);
25277    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
25278    written |= (1 << 20);
25279    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25280  }
25281frvbf_media_overflow (current_cpu, 4);
25282}
25283} else {
25284  {
25285    DI opval = tmp_tmp;
25286    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
25287    written |= (1 << 20);
25288    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25289  }
25290}
25291}
25292}
25293{
25294  tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25295  tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25296  tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25297  tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25298}
25299{
25300  DI tmp_tmp;
25301  tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (2))), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi)));
25302if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25303{
25304  {
25305    DI opval = MAKEDI (127, 0xffffffff);
25306    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
25307    written |= (1 << 21);
25308    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25309  }
25310frvbf_media_overflow (current_cpu, 2);
25311}
25312} else {
25313if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25314{
25315  {
25316    DI opval = MAKEDI (0xffffff80, 0);
25317    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
25318    written |= (1 << 21);
25319    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25320  }
25321frvbf_media_overflow (current_cpu, 2);
25322}
25323} else {
25324  {
25325    DI opval = tmp_tmp;
25326    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
25327    written |= (1 << 21);
25328    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25329  }
25330}
25331}
25332}
25333{
25334  DI tmp_tmp;
25335  tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (3))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo)));
25336if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25337{
25338  {
25339    DI opval = MAKEDI (127, 0xffffffff);
25340    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
25341    written |= (1 << 22);
25342    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25343  }
25344frvbf_media_overflow (current_cpu, 1);
25345}
25346} else {
25347if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25348{
25349  {
25350    DI opval = MAKEDI (0xffffff80, 0);
25351    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
25352    written |= (1 << 22);
25353    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25354  }
25355frvbf_media_overflow (current_cpu, 1);
25356}
25357} else {
25358  {
25359    DI opval = tmp_tmp;
25360    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
25361    written |= (1 << 22);
25362    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25363  }
25364}
25365}
25366}
25367}
25368}
25369}
25370}
25371}
25372
25373  abuf->written = written;
25374  return vpc;
25375#undef FLD
25376}
25377
25378/* cmqmachu: cmqmachu$pack $FRintieven,$FRintjeven,$ACC40Uk,$CCi,$cond */
25379
25380static SEM_PC
25381SEM_FN_NAME (frvbf,cmqmachu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
25382{
25383#define FLD(f) abuf->fields.sfmt_cmqmachu.f
25384  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
25385  int UNUSED written = 0;
25386  IADDR UNUSED pc = abuf->addr;
25387  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
25388
25389if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Uk))) {
25390if (ANDSI (FLD (f_ACC40Uk), SUBSI (4, 1))) {
25391frvbf_media_acc_not_aligned (current_cpu);
25392} else {
25393if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
25394frvbf_media_register_not_aligned (current_cpu);
25395} else {
25396if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
25397{
25398  UHI tmp_argihi;
25399  UHI tmp_argilo;
25400  UHI tmp_argjhi;
25401  UHI tmp_argjlo;
25402{
25403  tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25404  tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25405  tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25406  tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25407}
25408{
25409  DI tmp_tmp;
25410  tmp_tmp = ADDDI (GET_H_ACC40U (FLD (f_ACC40Uk)), MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi)));
25411if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
25412{
25413  {
25414    UDI opval = MAKEDI (255, 0xffffffff);
25415    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
25416    written |= (1 << 19);
25417    TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25418  }
25419frvbf_media_overflow (current_cpu, 8);
25420}
25421} else {
25422if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
25423{
25424  {
25425    UDI opval = MAKEDI (0, 0);
25426    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
25427    written |= (1 << 19);
25428    TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25429  }
25430frvbf_media_overflow (current_cpu, 8);
25431}
25432} else {
25433  {
25434    UDI opval = tmp_tmp;
25435    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
25436    written |= (1 << 19);
25437    TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25438  }
25439}
25440}
25441}
25442{
25443  DI tmp_tmp;
25444  tmp_tmp = ADDDI (GET_H_ACC40U (((FLD (f_ACC40Uk)) + (1))), MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo)));
25445if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
25446{
25447  {
25448    UDI opval = MAKEDI (255, 0xffffffff);
25449    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
25450    written |= (1 << 20);
25451    TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25452  }
25453frvbf_media_overflow (current_cpu, 4);
25454}
25455} else {
25456if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
25457{
25458  {
25459    UDI opval = MAKEDI (0, 0);
25460    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
25461    written |= (1 << 20);
25462    TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25463  }
25464frvbf_media_overflow (current_cpu, 4);
25465}
25466} else {
25467  {
25468    UDI opval = tmp_tmp;
25469    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
25470    written |= (1 << 20);
25471    TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25472  }
25473}
25474}
25475}
25476{
25477  tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25478  tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25479  tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25480  tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25481}
25482{
25483  DI tmp_tmp;
25484  tmp_tmp = ADDDI (GET_H_ACC40U (((FLD (f_ACC40Uk)) + (2))), MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi)));
25485if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
25486{
25487  {
25488    UDI opval = MAKEDI (255, 0xffffffff);
25489    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (2)), opval);
25490    written |= (1 << 21);
25491    TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25492  }
25493frvbf_media_overflow (current_cpu, 2);
25494}
25495} else {
25496if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
25497{
25498  {
25499    UDI opval = MAKEDI (0, 0);
25500    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (2)), opval);
25501    written |= (1 << 21);
25502    TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25503  }
25504frvbf_media_overflow (current_cpu, 2);
25505}
25506} else {
25507  {
25508    UDI opval = tmp_tmp;
25509    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (2)), opval);
25510    written |= (1 << 21);
25511    TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25512  }
25513}
25514}
25515}
25516{
25517  DI tmp_tmp;
25518  tmp_tmp = ADDDI (GET_H_ACC40U (((FLD (f_ACC40Uk)) + (3))), MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo)));
25519if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
25520{
25521  {
25522    UDI opval = MAKEDI (255, 0xffffffff);
25523    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (3)), opval);
25524    written |= (1 << 22);
25525    TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25526  }
25527frvbf_media_overflow (current_cpu, 1);
25528}
25529} else {
25530if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
25531{
25532  {
25533    UDI opval = MAKEDI (0, 0);
25534    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (3)), opval);
25535    written |= (1 << 22);
25536    TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25537  }
25538frvbf_media_overflow (current_cpu, 1);
25539}
25540} else {
25541  {
25542    UDI opval = tmp_tmp;
25543    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (3)), opval);
25544    written |= (1 << 22);
25545    TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25546  }
25547}
25548}
25549}
25550}
25551}
25552}
25553}
25554}
25555
25556  abuf->written = written;
25557  return vpc;
25558#undef FLD
25559}
25560
25561/* mqxmachs: mqxmachs$pack $FRintieven,$FRintjeven,$ACC40Sk */
25562
25563static SEM_PC
25564SEM_FN_NAME (frvbf,mqxmachs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
25565{
25566#define FLD(f) abuf->fields.sfmt_cmqmachs.f
25567  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
25568  int UNUSED written = 0;
25569  IADDR UNUSED pc = abuf->addr;
25570  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
25571
25572if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
25573if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
25574frvbf_media_acc_not_aligned (current_cpu);
25575} else {
25576if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
25577frvbf_media_register_not_aligned (current_cpu);
25578} else {
25579{
25580  HI tmp_argihi;
25581  HI tmp_argilo;
25582  HI tmp_argjhi;
25583  HI tmp_argjlo;
25584{
25585  tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25586  tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25587  tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25588  tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25589}
25590{
25591  DI tmp_tmp;
25592  tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (2))), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi)));
25593if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25594{
25595  {
25596    DI opval = MAKEDI (127, 0xffffffff);
25597    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
25598    written |= (1 << 19);
25599    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25600  }
25601frvbf_media_overflow (current_cpu, 2);
25602}
25603} else {
25604if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25605{
25606  {
25607    DI opval = MAKEDI (0xffffff80, 0);
25608    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
25609    written |= (1 << 19);
25610    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25611  }
25612frvbf_media_overflow (current_cpu, 2);
25613}
25614} else {
25615  {
25616    DI opval = tmp_tmp;
25617    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
25618    written |= (1 << 19);
25619    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25620  }
25621}
25622}
25623}
25624{
25625  DI tmp_tmp;
25626  tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (3))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo)));
25627if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25628{
25629  {
25630    DI opval = MAKEDI (127, 0xffffffff);
25631    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
25632    written |= (1 << 20);
25633    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25634  }
25635frvbf_media_overflow (current_cpu, 1);
25636}
25637} else {
25638if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25639{
25640  {
25641    DI opval = MAKEDI (0xffffff80, 0);
25642    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
25643    written |= (1 << 20);
25644    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25645  }
25646frvbf_media_overflow (current_cpu, 1);
25647}
25648} else {
25649  {
25650    DI opval = tmp_tmp;
25651    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
25652    written |= (1 << 20);
25653    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25654  }
25655}
25656}
25657}
25658{
25659  tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25660  tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25661  tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25662  tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25663}
25664{
25665  DI tmp_tmp;
25666  tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Sk)), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi)));
25667if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25668{
25669  {
25670    DI opval = MAKEDI (127, 0xffffffff);
25671    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25672    written |= (1 << 17);
25673    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25674  }
25675frvbf_media_overflow (current_cpu, 8);
25676}
25677} else {
25678if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25679{
25680  {
25681    DI opval = MAKEDI (0xffffff80, 0);
25682    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25683    written |= (1 << 17);
25684    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25685  }
25686frvbf_media_overflow (current_cpu, 8);
25687}
25688} else {
25689  {
25690    DI opval = tmp_tmp;
25691    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25692    written |= (1 << 17);
25693    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25694  }
25695}
25696}
25697}
25698{
25699  DI tmp_tmp;
25700  tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (1))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo)));
25701if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25702{
25703  {
25704    DI opval = MAKEDI (127, 0xffffffff);
25705    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
25706    written |= (1 << 18);
25707    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25708  }
25709frvbf_media_overflow (current_cpu, 4);
25710}
25711} else {
25712if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25713{
25714  {
25715    DI opval = MAKEDI (0xffffff80, 0);
25716    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
25717    written |= (1 << 18);
25718    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25719  }
25720frvbf_media_overflow (current_cpu, 4);
25721}
25722} else {
25723  {
25724    DI opval = tmp_tmp;
25725    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
25726    written |= (1 << 18);
25727    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25728  }
25729}
25730}
25731}
25732}
25733}
25734}
25735}
25736
25737  abuf->written = written;
25738  return vpc;
25739#undef FLD
25740}
25741
25742/* mqxmacxhs: mqxmacxhs$pack $FRintieven,$FRintjeven,$ACC40Sk */
25743
25744static SEM_PC
25745SEM_FN_NAME (frvbf,mqxmacxhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
25746{
25747#define FLD(f) abuf->fields.sfmt_cmqmachs.f
25748  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
25749  int UNUSED written = 0;
25750  IADDR UNUSED pc = abuf->addr;
25751  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
25752
25753if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
25754if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
25755frvbf_media_acc_not_aligned (current_cpu);
25756} else {
25757if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
25758frvbf_media_register_not_aligned (current_cpu);
25759} else {
25760{
25761  HI tmp_argihi;
25762  HI tmp_argilo;
25763  HI tmp_argjhi;
25764  HI tmp_argjlo;
25765{
25766  tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25767  tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25768  tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25769  tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25770}
25771{
25772  DI tmp_tmp;
25773  tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (2))), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo)));
25774if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25775{
25776  {
25777    DI opval = MAKEDI (127, 0xffffffff);
25778    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
25779    written |= (1 << 19);
25780    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25781  }
25782frvbf_media_overflow (current_cpu, 2);
25783}
25784} else {
25785if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25786{
25787  {
25788    DI opval = MAKEDI (0xffffff80, 0);
25789    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
25790    written |= (1 << 19);
25791    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25792  }
25793frvbf_media_overflow (current_cpu, 2);
25794}
25795} else {
25796  {
25797    DI opval = tmp_tmp;
25798    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
25799    written |= (1 << 19);
25800    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25801  }
25802}
25803}
25804}
25805{
25806  DI tmp_tmp;
25807  tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (3))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi)));
25808if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25809{
25810  {
25811    DI opval = MAKEDI (127, 0xffffffff);
25812    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
25813    written |= (1 << 20);
25814    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25815  }
25816frvbf_media_overflow (current_cpu, 1);
25817}
25818} else {
25819if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25820{
25821  {
25822    DI opval = MAKEDI (0xffffff80, 0);
25823    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
25824    written |= (1 << 20);
25825    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25826  }
25827frvbf_media_overflow (current_cpu, 1);
25828}
25829} else {
25830  {
25831    DI opval = tmp_tmp;
25832    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
25833    written |= (1 << 20);
25834    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25835  }
25836}
25837}
25838}
25839{
25840  tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25841  tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25842  tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25843  tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25844}
25845{
25846  DI tmp_tmp;
25847  tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Sk)), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo)));
25848if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25849{
25850  {
25851    DI opval = MAKEDI (127, 0xffffffff);
25852    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25853    written |= (1 << 17);
25854    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25855  }
25856frvbf_media_overflow (current_cpu, 8);
25857}
25858} else {
25859if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25860{
25861  {
25862    DI opval = MAKEDI (0xffffff80, 0);
25863    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25864    written |= (1 << 17);
25865    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25866  }
25867frvbf_media_overflow (current_cpu, 8);
25868}
25869} else {
25870  {
25871    DI opval = tmp_tmp;
25872    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25873    written |= (1 << 17);
25874    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25875  }
25876}
25877}
25878}
25879{
25880  DI tmp_tmp;
25881  tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (1))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi)));
25882if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25883{
25884  {
25885    DI opval = MAKEDI (127, 0xffffffff);
25886    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
25887    written |= (1 << 18);
25888    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25889  }
25890frvbf_media_overflow (current_cpu, 4);
25891}
25892} else {
25893if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25894{
25895  {
25896    DI opval = MAKEDI (0xffffff80, 0);
25897    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
25898    written |= (1 << 18);
25899    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25900  }
25901frvbf_media_overflow (current_cpu, 4);
25902}
25903} else {
25904  {
25905    DI opval = tmp_tmp;
25906    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
25907    written |= (1 << 18);
25908    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25909  }
25910}
25911}
25912}
25913}
25914}
25915}
25916}
25917
25918  abuf->written = written;
25919  return vpc;
25920#undef FLD
25921}
25922
25923/* mqmacxhs: mqmacxhs$pack $FRintieven,$FRintjeven,$ACC40Sk */
25924
25925static SEM_PC
25926SEM_FN_NAME (frvbf,mqmacxhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
25927{
25928#define FLD(f) abuf->fields.sfmt_cmqmachs.f
25929  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
25930  int UNUSED written = 0;
25931  IADDR UNUSED pc = abuf->addr;
25932  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
25933
25934if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
25935if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
25936frvbf_media_acc_not_aligned (current_cpu);
25937} else {
25938if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
25939frvbf_media_register_not_aligned (current_cpu);
25940} else {
25941{
25942  HI tmp_argihi;
25943  HI tmp_argilo;
25944  HI tmp_argjhi;
25945  HI tmp_argjlo;
25946{
25947  tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25948  tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25949  tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25950  tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25951}
25952{
25953  DI tmp_tmp;
25954  tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Sk)), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo)));
25955if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25956{
25957  {
25958    DI opval = MAKEDI (127, 0xffffffff);
25959    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25960    written |= (1 << 17);
25961    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25962  }
25963frvbf_media_overflow (current_cpu, 8);
25964}
25965} else {
25966if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25967{
25968  {
25969    DI opval = MAKEDI (0xffffff80, 0);
25970    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25971    written |= (1 << 17);
25972    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25973  }
25974frvbf_media_overflow (current_cpu, 8);
25975}
25976} else {
25977  {
25978    DI opval = tmp_tmp;
25979    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25980    written |= (1 << 17);
25981    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25982  }
25983}
25984}
25985}
25986{
25987  DI tmp_tmp;
25988  tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (1))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi)));
25989if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25990{
25991  {
25992    DI opval = MAKEDI (127, 0xffffffff);
25993    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
25994    written |= (1 << 18);
25995    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25996  }
25997frvbf_media_overflow (current_cpu, 4);
25998}
25999} else {
26000if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
26001{
26002  {
26003    DI opval = MAKEDI (0xffffff80, 0);
26004    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
26005    written |= (1 << 18);
26006    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26007  }
26008frvbf_media_overflow (current_cpu, 4);
26009}
26010} else {
26011  {
26012    DI opval = tmp_tmp;
26013    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
26014    written |= (1 << 18);
26015    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26016  }
26017}
26018}
26019}
26020{
26021  tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26022  tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26023  tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26024  tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26025}
26026{
26027  DI tmp_tmp;
26028  tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (2))), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo)));
26029if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
26030{
26031  {
26032    DI opval = MAKEDI (127, 0xffffffff);
26033    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
26034    written |= (1 << 19);
26035    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26036  }
26037frvbf_media_overflow (current_cpu, 2);
26038}
26039} else {
26040if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
26041{
26042  {
26043    DI opval = MAKEDI (0xffffff80, 0);
26044    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
26045    written |= (1 << 19);
26046    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26047  }
26048frvbf_media_overflow (current_cpu, 2);
26049}
26050} else {
26051  {
26052    DI opval = tmp_tmp;
26053    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
26054    written |= (1 << 19);
26055    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26056  }
26057}
26058}
26059}
26060{
26061  DI tmp_tmp;
26062  tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (3))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi)));
26063if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
26064{
26065  {
26066    DI opval = MAKEDI (127, 0xffffffff);
26067    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
26068    written |= (1 << 20);
26069    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26070  }
26071frvbf_media_overflow (current_cpu, 1);
26072}
26073} else {
26074if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
26075{
26076  {
26077    DI opval = MAKEDI (0xffffff80, 0);
26078    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
26079    written |= (1 << 20);
26080    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26081  }
26082frvbf_media_overflow (current_cpu, 1);
26083}
26084} else {
26085  {
26086    DI opval = tmp_tmp;
26087    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
26088    written |= (1 << 20);
26089    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26090  }
26091}
26092}
26093}
26094}
26095}
26096}
26097}
26098
26099  abuf->written = written;
26100  return vpc;
26101#undef FLD
26102}
26103
26104/* mcpxrs: mcpxrs$pack $FRinti,$FRintj,$ACC40Sk */
26105
26106static SEM_PC
26107SEM_FN_NAME (frvbf,mcpxrs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26108{
26109#define FLD(f) abuf->fields.sfmt_cmmachs.f
26110  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26111  int UNUSED written = 0;
26112  IADDR UNUSED pc = abuf->addr;
26113  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26114
26115if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
26116{
26117  HI tmp_argihi;
26118  HI tmp_argilo;
26119  HI tmp_argjhi;
26120  HI tmp_argjlo;
26121{
26122  tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26123  tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26124  tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26125  tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26126}
26127{
26128  DI tmp_tmp1;
26129  DI tmp_tmp2;
26130  tmp_tmp1 = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
26131  tmp_tmp2 = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
26132  tmp_tmp1 = SUBDI (tmp_tmp1, tmp_tmp2);
26133if (GTDI (tmp_tmp1, MAKEDI (127, 0xffffffff))) {
26134{
26135  {
26136    DI opval = MAKEDI (127, 0xffffffff);
26137    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26138    written |= (1 << 9);
26139    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26140  }
26141frvbf_media_overflow (current_cpu, 8);
26142}
26143} else {
26144if (LTDI (tmp_tmp1, MAKEDI (0xffffff80, 0))) {
26145{
26146  {
26147    DI opval = MAKEDI (0xffffff80, 0);
26148    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26149    written |= (1 << 9);
26150    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26151  }
26152frvbf_media_overflow (current_cpu, 8);
26153}
26154} else {
26155  {
26156    DI opval = tmp_tmp1;
26157    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26158    written |= (1 << 9);
26159    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26160  }
26161}
26162}
26163}
26164}
26165}
26166
26167  abuf->written = written;
26168  return vpc;
26169#undef FLD
26170}
26171
26172/* mcpxru: mcpxru$pack $FRinti,$FRintj,$ACC40Sk */
26173
26174static SEM_PC
26175SEM_FN_NAME (frvbf,mcpxru) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26176{
26177#define FLD(f) abuf->fields.sfmt_cmmachs.f
26178  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26179  int UNUSED written = 0;
26180  IADDR UNUSED pc = abuf->addr;
26181  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26182
26183if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
26184{
26185  UHI tmp_argihi;
26186  UHI tmp_argilo;
26187  UHI tmp_argjhi;
26188  UHI tmp_argjlo;
26189{
26190  tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26191  tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26192  tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26193  tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26194}
26195{
26196  DI tmp_tmp1;
26197  DI tmp_tmp2;
26198  tmp_tmp1 = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
26199  tmp_tmp2 = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
26200  tmp_tmp1 = SUBDI (tmp_tmp1, tmp_tmp2);
26201if (GTDI (tmp_tmp1, MAKEDI (255, 0xffffffff))) {
26202{
26203  {
26204    DI opval = MAKEDI (255, 0xffffffff);
26205    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26206    written |= (1 << 9);
26207    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26208  }
26209frvbf_media_overflow (current_cpu, 8);
26210}
26211} else {
26212if (LTDI (tmp_tmp1, MAKEDI (0, 0))) {
26213{
26214  {
26215    DI opval = MAKEDI (0, 0);
26216    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26217    written |= (1 << 9);
26218    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26219  }
26220frvbf_media_overflow (current_cpu, 8);
26221}
26222} else {
26223  {
26224    DI opval = tmp_tmp1;
26225    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26226    written |= (1 << 9);
26227    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26228  }
26229}
26230}
26231}
26232}
26233}
26234
26235  abuf->written = written;
26236  return vpc;
26237#undef FLD
26238}
26239
26240/* mcpxis: mcpxis$pack $FRinti,$FRintj,$ACC40Sk */
26241
26242static SEM_PC
26243SEM_FN_NAME (frvbf,mcpxis) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26244{
26245#define FLD(f) abuf->fields.sfmt_cmmachs.f
26246  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26247  int UNUSED written = 0;
26248  IADDR UNUSED pc = abuf->addr;
26249  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26250
26251if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
26252{
26253  HI tmp_argihi;
26254  HI tmp_argilo;
26255  HI tmp_argjhi;
26256  HI tmp_argjlo;
26257{
26258  tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26259  tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26260  tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26261  tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26262}
26263{
26264  DI tmp_tmp1;
26265  DI tmp_tmp2;
26266  tmp_tmp1 = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo));
26267  tmp_tmp2 = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi));
26268  tmp_tmp1 = ADDDI (tmp_tmp1, tmp_tmp2);
26269if (GTDI (tmp_tmp1, MAKEDI (127, 0xffffffff))) {
26270{
26271  {
26272    DI opval = MAKEDI (127, 0xffffffff);
26273    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26274    written |= (1 << 9);
26275    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26276  }
26277frvbf_media_overflow (current_cpu, 8);
26278}
26279} else {
26280if (LTDI (tmp_tmp1, MAKEDI (0xffffff80, 0))) {
26281{
26282  {
26283    DI opval = MAKEDI (0xffffff80, 0);
26284    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26285    written |= (1 << 9);
26286    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26287  }
26288frvbf_media_overflow (current_cpu, 8);
26289}
26290} else {
26291  {
26292    DI opval = tmp_tmp1;
26293    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26294    written |= (1 << 9);
26295    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26296  }
26297}
26298}
26299}
26300}
26301}
26302
26303  abuf->written = written;
26304  return vpc;
26305#undef FLD
26306}
26307
26308/* mcpxiu: mcpxiu$pack $FRinti,$FRintj,$ACC40Sk */
26309
26310static SEM_PC
26311SEM_FN_NAME (frvbf,mcpxiu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26312{
26313#define FLD(f) abuf->fields.sfmt_cmmachs.f
26314  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26315  int UNUSED written = 0;
26316  IADDR UNUSED pc = abuf->addr;
26317  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26318
26319if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
26320{
26321  UHI tmp_argihi;
26322  UHI tmp_argilo;
26323  UHI tmp_argjhi;
26324  UHI tmp_argjlo;
26325{
26326  tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26327  tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26328  tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26329  tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26330}
26331{
26332  DI tmp_tmp1;
26333  DI tmp_tmp2;
26334  tmp_tmp1 = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjlo));
26335  tmp_tmp2 = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjhi));
26336  tmp_tmp1 = ADDDI (tmp_tmp1, tmp_tmp2);
26337if (GTDI (tmp_tmp1, MAKEDI (255, 0xffffffff))) {
26338{
26339  {
26340    DI opval = MAKEDI (255, 0xffffffff);
26341    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26342    written |= (1 << 9);
26343    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26344  }
26345frvbf_media_overflow (current_cpu, 8);
26346}
26347} else {
26348if (LTDI (tmp_tmp1, MAKEDI (0, 0))) {
26349{
26350  {
26351    DI opval = MAKEDI (0, 0);
26352    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26353    written |= (1 << 9);
26354    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26355  }
26356frvbf_media_overflow (current_cpu, 8);
26357}
26358} else {
26359  {
26360    DI opval = tmp_tmp1;
26361    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26362    written |= (1 << 9);
26363    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26364  }
26365}
26366}
26367}
26368}
26369}
26370
26371  abuf->written = written;
26372  return vpc;
26373#undef FLD
26374}
26375
26376/* cmcpxrs: cmcpxrs$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
26377
26378static SEM_PC
26379SEM_FN_NAME (frvbf,cmcpxrs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26380{
26381#define FLD(f) abuf->fields.sfmt_cmmachs.f
26382  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26383  int UNUSED written = 0;
26384  IADDR UNUSED pc = abuf->addr;
26385  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26386
26387if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
26388if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
26389{
26390  HI tmp_argihi;
26391  HI tmp_argilo;
26392  HI tmp_argjhi;
26393  HI tmp_argjlo;
26394{
26395  tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26396  tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26397  tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26398  tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26399}
26400{
26401  DI tmp_tmp1;
26402  DI tmp_tmp2;
26403  tmp_tmp1 = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
26404  tmp_tmp2 = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
26405  tmp_tmp1 = SUBDI (tmp_tmp1, tmp_tmp2);
26406if (GTDI (tmp_tmp1, MAKEDI (127, 0xffffffff))) {
26407{
26408  {
26409    DI opval = MAKEDI (127, 0xffffffff);
26410    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26411    written |= (1 << 11);
26412    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26413  }
26414frvbf_media_overflow (current_cpu, 8);
26415}
26416} else {
26417if (LTDI (tmp_tmp1, MAKEDI (0xffffff80, 0))) {
26418{
26419  {
26420    DI opval = MAKEDI (0xffffff80, 0);
26421    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26422    written |= (1 << 11);
26423    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26424  }
26425frvbf_media_overflow (current_cpu, 8);
26426}
26427} else {
26428  {
26429    DI opval = tmp_tmp1;
26430    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26431    written |= (1 << 11);
26432    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26433  }
26434}
26435}
26436}
26437}
26438}
26439}
26440
26441  abuf->written = written;
26442  return vpc;
26443#undef FLD
26444}
26445
26446/* cmcpxru: cmcpxru$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
26447
26448static SEM_PC
26449SEM_FN_NAME (frvbf,cmcpxru) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26450{
26451#define FLD(f) abuf->fields.sfmt_cmmachs.f
26452  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26453  int UNUSED written = 0;
26454  IADDR UNUSED pc = abuf->addr;
26455  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26456
26457if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
26458if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
26459{
26460  UHI tmp_argihi;
26461  UHI tmp_argilo;
26462  UHI tmp_argjhi;
26463  UHI tmp_argjlo;
26464{
26465  tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26466  tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26467  tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26468  tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26469}
26470{
26471  DI tmp_tmp1;
26472  DI tmp_tmp2;
26473  tmp_tmp1 = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
26474  tmp_tmp2 = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
26475  tmp_tmp1 = SUBDI (tmp_tmp1, tmp_tmp2);
26476if (GTDI (tmp_tmp1, MAKEDI (255, 0xffffffff))) {
26477{
26478  {
26479    DI opval = MAKEDI (255, 0xffffffff);
26480    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26481    written |= (1 << 11);
26482    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26483  }
26484frvbf_media_overflow (current_cpu, 8);
26485}
26486} else {
26487if (LTDI (tmp_tmp1, MAKEDI (0, 0))) {
26488{
26489  {
26490    DI opval = MAKEDI (0, 0);
26491    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26492    written |= (1 << 11);
26493    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26494  }
26495frvbf_media_overflow (current_cpu, 8);
26496}
26497} else {
26498  {
26499    DI opval = tmp_tmp1;
26500    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26501    written |= (1 << 11);
26502    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26503  }
26504}
26505}
26506}
26507}
26508}
26509}
26510
26511  abuf->written = written;
26512  return vpc;
26513#undef FLD
26514}
26515
26516/* cmcpxis: cmcpxis$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
26517
26518static SEM_PC
26519SEM_FN_NAME (frvbf,cmcpxis) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26520{
26521#define FLD(f) abuf->fields.sfmt_cmmachs.f
26522  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26523  int UNUSED written = 0;
26524  IADDR UNUSED pc = abuf->addr;
26525  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26526
26527if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
26528if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
26529{
26530  HI tmp_argihi;
26531  HI tmp_argilo;
26532  HI tmp_argjhi;
26533  HI tmp_argjlo;
26534{
26535  tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26536  tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26537  tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26538  tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26539}
26540{
26541  DI tmp_tmp1;
26542  DI tmp_tmp2;
26543  tmp_tmp1 = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo));
26544  tmp_tmp2 = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi));
26545  tmp_tmp1 = ADDDI (tmp_tmp1, tmp_tmp2);
26546if (GTDI (tmp_tmp1, MAKEDI (127, 0xffffffff))) {
26547{
26548  {
26549    DI opval = MAKEDI (127, 0xffffffff);
26550    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26551    written |= (1 << 11);
26552    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26553  }
26554frvbf_media_overflow (current_cpu, 8);
26555}
26556} else {
26557if (LTDI (tmp_tmp1, MAKEDI (0xffffff80, 0))) {
26558{
26559  {
26560    DI opval = MAKEDI (0xffffff80, 0);
26561    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26562    written |= (1 << 11);
26563    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26564  }
26565frvbf_media_overflow (current_cpu, 8);
26566}
26567} else {
26568  {
26569    DI opval = tmp_tmp1;
26570    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26571    written |= (1 << 11);
26572    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26573  }
26574}
26575}
26576}
26577}
26578}
26579}
26580
26581  abuf->written = written;
26582  return vpc;
26583#undef FLD
26584}
26585
26586/* cmcpxiu: cmcpxiu$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
26587
26588static SEM_PC
26589SEM_FN_NAME (frvbf,cmcpxiu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26590{
26591#define FLD(f) abuf->fields.sfmt_cmmachs.f
26592  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26593  int UNUSED written = 0;
26594  IADDR UNUSED pc = abuf->addr;
26595  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26596
26597if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
26598if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
26599{
26600  UHI tmp_argihi;
26601  UHI tmp_argilo;
26602  UHI tmp_argjhi;
26603  UHI tmp_argjlo;
26604{
26605  tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26606  tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26607  tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26608  tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26609}
26610{
26611  DI tmp_tmp1;
26612  DI tmp_tmp2;
26613  tmp_tmp1 = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjlo));
26614  tmp_tmp2 = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjhi));
26615  tmp_tmp1 = ADDDI (tmp_tmp1, tmp_tmp2);
26616if (GTDI (tmp_tmp1, MAKEDI (255, 0xffffffff))) {
26617{
26618  {
26619    DI opval = MAKEDI (255, 0xffffffff);
26620    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26621    written |= (1 << 11);
26622    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26623  }
26624frvbf_media_overflow (current_cpu, 8);
26625}
26626} else {
26627if (LTDI (tmp_tmp1, MAKEDI (0, 0))) {
26628{
26629  {
26630    DI opval = MAKEDI (0, 0);
26631    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26632    written |= (1 << 11);
26633    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26634  }
26635frvbf_media_overflow (current_cpu, 8);
26636}
26637} else {
26638  {
26639    DI opval = tmp_tmp1;
26640    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26641    written |= (1 << 11);
26642    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26643  }
26644}
26645}
26646}
26647}
26648}
26649}
26650
26651  abuf->written = written;
26652  return vpc;
26653#undef FLD
26654}
26655
26656/* mqcpxrs: mqcpxrs$pack $FRintieven,$FRintjeven,$ACC40Sk */
26657
26658static SEM_PC
26659SEM_FN_NAME (frvbf,mqcpxrs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26660{
26661#define FLD(f) abuf->fields.sfmt_cmqmachs.f
26662  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26663  int UNUSED written = 0;
26664  IADDR UNUSED pc = abuf->addr;
26665  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26666
26667if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
26668if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
26669frvbf_media_acc_not_aligned (current_cpu);
26670} else {
26671if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
26672frvbf_media_register_not_aligned (current_cpu);
26673} else {
26674{
26675  HI tmp_argihi;
26676  HI tmp_argilo;
26677  HI tmp_argjhi;
26678  HI tmp_argjlo;
26679{
26680  tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26681  tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26682  tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26683  tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26684}
26685{
26686  DI tmp_tmp1;
26687  DI tmp_tmp2;
26688  tmp_tmp1 = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
26689  tmp_tmp2 = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
26690  tmp_tmp1 = SUBDI (tmp_tmp1, tmp_tmp2);
26691if (GTDI (tmp_tmp1, MAKEDI (127, 0xffffffff))) {
26692{
26693  {
26694    DI opval = MAKEDI (127, 0xffffffff);
26695    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26696    written |= (1 << 13);
26697    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26698  }
26699frvbf_media_overflow (current_cpu, 8);
26700}
26701} else {
26702if (LTDI (tmp_tmp1, MAKEDI (0xffffff80, 0))) {
26703{
26704  {
26705    DI opval = MAKEDI (0xffffff80, 0);
26706    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26707    written |= (1 << 13);
26708    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26709  }
26710frvbf_media_overflow (current_cpu, 8);
26711}
26712} else {
26713  {
26714    DI opval = tmp_tmp1;
26715    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26716    written |= (1 << 13);
26717    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26718  }
26719}
26720}
26721}
26722{
26723  tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26724  tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26725  tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26726  tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26727}
26728{
26729  DI tmp_tmp1;
26730  DI tmp_tmp2;
26731  tmp_tmp1 = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
26732  tmp_tmp2 = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
26733  tmp_tmp1 = SUBDI (tmp_tmp1, tmp_tmp2);
26734if (GTDI (tmp_tmp1, MAKEDI (127, 0xffffffff))) {
26735{
26736  {
26737    DI opval = MAKEDI (127, 0xffffffff);
26738    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
26739    written |= (1 << 14);
26740    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26741  }
26742frvbf_media_overflow (current_cpu, 4);
26743}
26744} else {
26745if (LTDI (tmp_tmp1, MAKEDI (0xffffff80, 0))) {
26746{
26747  {
26748    DI opval = MAKEDI (0xffffff80, 0);
26749    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
26750    written |= (1 << 14);
26751    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26752  }
26753frvbf_media_overflow (current_cpu, 4);
26754}
26755} else {
26756  {
26757    DI opval = tmp_tmp1;
26758    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
26759    written |= (1 << 14);
26760    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26761  }
26762}
26763}
26764}
26765}
26766}
26767}
26768}
26769
26770  abuf->written = written;
26771  return vpc;
26772#undef FLD
26773}
26774
26775/* mqcpxru: mqcpxru$pack $FRintieven,$FRintjeven,$ACC40Sk */
26776
26777static SEM_PC
26778SEM_FN_NAME (frvbf,mqcpxru) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26779{
26780#define FLD(f) abuf->fields.sfmt_cmqmachs.f
26781  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26782  int UNUSED written = 0;
26783  IADDR UNUSED pc = abuf->addr;
26784  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26785
26786if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
26787if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
26788frvbf_media_acc_not_aligned (current_cpu);
26789} else {
26790if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
26791frvbf_media_register_not_aligned (current_cpu);
26792} else {
26793{
26794  UHI tmp_argihi;
26795  UHI tmp_argilo;
26796  UHI tmp_argjhi;
26797  UHI tmp_argjlo;
26798{
26799  tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26800  tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26801  tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26802  tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26803}
26804{
26805  DI tmp_tmp1;
26806  DI tmp_tmp2;
26807  tmp_tmp1 = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
26808  tmp_tmp2 = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
26809  tmp_tmp1 = SUBDI (tmp_tmp1, tmp_tmp2);
26810if (GTDI (tmp_tmp1, MAKEDI (255, 0xffffffff))) {
26811{
26812  {
26813    DI opval = MAKEDI (255, 0xffffffff);
26814    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26815    written |= (1 << 13);
26816    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26817  }
26818frvbf_media_overflow (current_cpu, 8);
26819}
26820} else {
26821if (LTDI (tmp_tmp1, MAKEDI (0, 0))) {
26822{
26823  {
26824    DI opval = MAKEDI (0, 0);
26825    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26826    written |= (1 << 13);
26827    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26828  }
26829frvbf_media_overflow (current_cpu, 8);
26830}
26831} else {
26832  {
26833    DI opval = tmp_tmp1;
26834    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26835    written |= (1 << 13);
26836    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26837  }
26838}
26839}
26840}
26841{
26842  tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26843  tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26844  tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26845  tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26846}
26847{
26848  DI tmp_tmp1;
26849  DI tmp_tmp2;
26850  tmp_tmp1 = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
26851  tmp_tmp2 = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
26852  tmp_tmp1 = SUBDI (tmp_tmp1, tmp_tmp2);
26853if (GTDI (tmp_tmp1, MAKEDI (255, 0xffffffff))) {
26854{
26855  {
26856    DI opval = MAKEDI (255, 0xffffffff);
26857    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
26858    written |= (1 << 14);
26859    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26860  }
26861frvbf_media_overflow (current_cpu, 4);
26862}
26863} else {
26864if (LTDI (tmp_tmp1, MAKEDI (0, 0))) {
26865{
26866  {
26867    DI opval = MAKEDI (0, 0);
26868    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
26869    written |= (1 << 14);
26870    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26871  }
26872frvbf_media_overflow (current_cpu, 4);
26873}
26874} else {
26875  {
26876    DI opval = tmp_tmp1;
26877    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
26878    written |= (1 << 14);
26879    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26880  }
26881}
26882}
26883}
26884}
26885}
26886}
26887}
26888
26889  abuf->written = written;
26890  return vpc;
26891#undef FLD
26892}
26893
26894/* mqcpxis: mqcpxis$pack $FRintieven,$FRintjeven,$ACC40Sk */
26895
26896static SEM_PC
26897SEM_FN_NAME (frvbf,mqcpxis) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26898{
26899#define FLD(f) abuf->fields.sfmt_cmqmachs.f
26900  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26901  int UNUSED written = 0;
26902  IADDR UNUSED pc = abuf->addr;
26903  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26904
26905if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
26906if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
26907frvbf_media_acc_not_aligned (current_cpu);
26908} else {
26909if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
26910frvbf_media_register_not_aligned (current_cpu);
26911} else {
26912{
26913  HI tmp_argihi;
26914  HI tmp_argilo;
26915  HI tmp_argjhi;
26916  HI tmp_argjlo;
26917{
26918  tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26919  tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26920  tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26921  tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26922}
26923{
26924  DI tmp_tmp1;
26925  DI tmp_tmp2;
26926  tmp_tmp1 = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo));
26927  tmp_tmp2 = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi));
26928  tmp_tmp1 = ADDDI (tmp_tmp1, tmp_tmp2);
26929if (GTDI (tmp_tmp1, MAKEDI (127, 0xffffffff))) {
26930{
26931  {
26932    DI opval = MAKEDI (127, 0xffffffff);
26933    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26934    written |= (1 << 13);
26935    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26936  }
26937frvbf_media_overflow (current_cpu, 8);
26938}
26939} else {
26940if (LTDI (tmp_tmp1, MAKEDI (0xffffff80, 0))) {
26941{
26942  {
26943    DI opval = MAKEDI (0xffffff80, 0);
26944    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26945    written |= (1 << 13);
26946    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26947  }
26948frvbf_media_overflow (current_cpu, 8);
26949}
26950} else {
26951  {
26952    DI opval = tmp_tmp1;
26953    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26954    written |= (1 << 13);
26955    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26956  }
26957}
26958}
26959}
26960{
26961  tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26962  tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26963  tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26964  tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26965}
26966{
26967  DI tmp_tmp1;
26968  DI tmp_tmp2;
26969  tmp_tmp1 = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo));
26970  tmp_tmp2 = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi));
26971  tmp_tmp1 = ADDDI (tmp_tmp1, tmp_tmp2);
26972if (GTDI (tmp_tmp1, MAKEDI (127, 0xffffffff))) {
26973{
26974  {
26975    DI opval = MAKEDI (127, 0xffffffff);
26976    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
26977    written |= (1 << 14);
26978    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26979  }
26980frvbf_media_overflow (current_cpu, 4);
26981}
26982} else {
26983if (LTDI (tmp_tmp1, MAKEDI (0xffffff80, 0))) {
26984{
26985  {
26986    DI opval = MAKEDI (0xffffff80, 0);
26987    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
26988    written |= (1 << 14);
26989    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26990  }
26991frvbf_media_overflow (current_cpu, 4);
26992}
26993} else {
26994  {
26995    DI opval = tmp_tmp1;
26996    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
26997    written |= (1 << 14);
26998    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26999  }
27000}
27001}
27002}
27003}
27004}
27005}
27006}
27007
27008  abuf->written = written;
27009  return vpc;
27010#undef FLD
27011}
27012
27013/* mqcpxiu: mqcpxiu$pack $FRintieven,$FRintjeven,$ACC40Sk */
27014
27015static SEM_PC
27016SEM_FN_NAME (frvbf,mqcpxiu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27017{
27018#define FLD(f) abuf->fields.sfmt_cmqmachs.f
27019  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27020  int UNUSED written = 0;
27021  IADDR UNUSED pc = abuf->addr;
27022  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27023
27024if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
27025if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
27026frvbf_media_acc_not_aligned (current_cpu);
27027} else {
27028if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
27029frvbf_media_register_not_aligned (current_cpu);
27030} else {
27031{
27032  UHI tmp_argihi;
27033  UHI tmp_argilo;
27034  UHI tmp_argjhi;
27035  UHI tmp_argjlo;
27036{
27037  tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
27038  tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
27039  tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
27040  tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
27041}
27042{
27043  DI tmp_tmp1;
27044  DI tmp_tmp2;
27045  tmp_tmp1 = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjlo));
27046  tmp_tmp2 = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjhi));
27047  tmp_tmp1 = ADDDI (tmp_tmp1, tmp_tmp2);
27048if (GTDI (tmp_tmp1, MAKEDI (255, 0xffffffff))) {
27049{
27050  {
27051    DI opval = MAKEDI (255, 0xffffffff);
27052    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
27053    written |= (1 << 13);
27054    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
27055  }
27056frvbf_media_overflow (current_cpu, 8);
27057}
27058} else {
27059if (LTDI (tmp_tmp1, MAKEDI (0, 0))) {
27060{
27061  {
27062    DI opval = MAKEDI (0, 0);
27063    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
27064    written |= (1 << 13);
27065    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
27066  }
27067frvbf_media_overflow (current_cpu, 8);
27068}
27069} else {
27070  {
27071    DI opval = tmp_tmp1;
27072    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
27073    written |= (1 << 13);
27074    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
27075  }
27076}
27077}
27078}
27079{
27080  tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
27081  tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
27082  tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
27083  tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
27084}
27085{
27086  DI tmp_tmp1;
27087  DI tmp_tmp2;
27088  tmp_tmp1 = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjlo));
27089  tmp_tmp2 = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjhi));
27090  tmp_tmp1 = ADDDI (tmp_tmp1, tmp_tmp2);
27091if (GTDI (tmp_tmp1, MAKEDI (255, 0xffffffff))) {
27092{
27093  {
27094    DI opval = MAKEDI (255, 0xffffffff);
27095    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
27096    written |= (1 << 14);
27097    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
27098  }
27099frvbf_media_overflow (current_cpu, 4);
27100}
27101} else {
27102if (LTDI (tmp_tmp1, MAKEDI (0, 0))) {
27103{
27104  {
27105    DI opval = MAKEDI (0, 0);
27106    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
27107    written |= (1 << 14);
27108    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
27109  }
27110frvbf_media_overflow (current_cpu, 4);
27111}
27112} else {
27113  {
27114    DI opval = tmp_tmp1;
27115    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
27116    written |= (1 << 14);
27117    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
27118  }
27119}
27120}
27121}
27122}
27123}
27124}
27125}
27126
27127  abuf->written = written;
27128  return vpc;
27129#undef FLD
27130}
27131
27132/* mexpdhw: mexpdhw$pack $FRinti,$u6,$FRintk */
27133
27134static SEM_PC
27135SEM_FN_NAME (frvbf,mexpdhw) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27136{
27137#define FLD(f) abuf->fields.sfmt_cmexpdhw.f
27138  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27139  int UNUSED written = 0;
27140  IADDR UNUSED pc = abuf->addr;
27141  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27142
27143{
27144  UHI tmp_tmp;
27145if (ANDSI (FLD (f_u6), 1)) {
27146  tmp_tmp = GET_H_FR_LO (((FLD (f_FRi)) + (0)));
27147} else {
27148  tmp_tmp = GET_H_FR_HI (((FLD (f_FRi)) + (0)));
27149}
27150  {
27151    UHI opval = tmp_tmp;
27152    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
27153    TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27154  }
27155  {
27156    UHI opval = tmp_tmp;
27157    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
27158    TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27159  }
27160}
27161
27162  return vpc;
27163#undef FLD
27164}
27165
27166/* cmexpdhw: cmexpdhw$pack $FRinti,$u6,$FRintk,$CCi,$cond */
27167
27168static SEM_PC
27169SEM_FN_NAME (frvbf,cmexpdhw) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27170{
27171#define FLD(f) abuf->fields.sfmt_cmexpdhw.f
27172  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27173  int UNUSED written = 0;
27174  IADDR UNUSED pc = abuf->addr;
27175  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27176
27177if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
27178{
27179  UHI tmp_tmp;
27180if (ANDSI (FLD (f_u6), 1)) {
27181  tmp_tmp = GET_H_FR_LO (((FLD (f_FRi)) + (0)));
27182} else {
27183  tmp_tmp = GET_H_FR_HI (((FLD (f_FRi)) + (0)));
27184}
27185  {
27186    UHI opval = tmp_tmp;
27187    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
27188    written |= (1 << 7);
27189    TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27190  }
27191  {
27192    UHI opval = tmp_tmp;
27193    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
27194    written |= (1 << 8);
27195    TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27196  }
27197}
27198}
27199
27200  abuf->written = written;
27201  return vpc;
27202#undef FLD
27203}
27204
27205/* mexpdhd: mexpdhd$pack $FRinti,$u6,$FRintkeven */
27206
27207static SEM_PC
27208SEM_FN_NAME (frvbf,mexpdhd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27209{
27210#define FLD(f) abuf->fields.sfmt_cmexpdhd.f
27211  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27212  int UNUSED written = 0;
27213  IADDR UNUSED pc = abuf->addr;
27214  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27215
27216if (ANDSI (FLD (f_FRk), SUBSI (2, 1))) {
27217frvbf_media_register_not_aligned (current_cpu);
27218} else {
27219{
27220  UHI tmp_tmp;
27221  {
27222    SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27223    sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27224    written |= (1 << 6);
27225    TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27226  }
27227if (ANDSI (FLD (f_u6), 1)) {
27228  tmp_tmp = GET_H_FR_LO (((FLD (f_FRi)) + (0)));
27229} else {
27230  tmp_tmp = GET_H_FR_HI (((FLD (f_FRi)) + (0)));
27231}
27232  {
27233    UHI opval = tmp_tmp;
27234    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
27235    written |= (1 << 7);
27236    TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27237  }
27238  {
27239    UHI opval = tmp_tmp;
27240    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
27241    written |= (1 << 9);
27242    TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27243  }
27244  {
27245    UHI opval = tmp_tmp;
27246    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
27247    written |= (1 << 8);
27248    TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27249  }
27250  {
27251    UHI opval = tmp_tmp;
27252    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
27253    written |= (1 << 10);
27254    TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27255  }
27256}
27257}
27258
27259  abuf->written = written;
27260  return vpc;
27261#undef FLD
27262}
27263
27264/* cmexpdhd: cmexpdhd$pack $FRinti,$u6,$FRintkeven,$CCi,$cond */
27265
27266static SEM_PC
27267SEM_FN_NAME (frvbf,cmexpdhd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27268{
27269#define FLD(f) abuf->fields.sfmt_cmexpdhd.f
27270  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27271  int UNUSED written = 0;
27272  IADDR UNUSED pc = abuf->addr;
27273  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27274
27275if (ANDSI (FLD (f_FRk), SUBSI (2, 1))) {
27276frvbf_media_register_not_aligned (current_cpu);
27277} else {
27278if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
27279{
27280  UHI tmp_tmp;
27281  {
27282    SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27283    sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27284    written |= (1 << 8);
27285    TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27286  }
27287if (ANDSI (FLD (f_u6), 1)) {
27288  tmp_tmp = GET_H_FR_LO (((FLD (f_FRi)) + (0)));
27289} else {
27290  tmp_tmp = GET_H_FR_HI (((FLD (f_FRi)) + (0)));
27291}
27292  {
27293    UHI opval = tmp_tmp;
27294    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
27295    written |= (1 << 9);
27296    TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27297  }
27298  {
27299    UHI opval = tmp_tmp;
27300    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
27301    written |= (1 << 11);
27302    TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27303  }
27304  {
27305    UHI opval = tmp_tmp;
27306    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
27307    written |= (1 << 10);
27308    TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27309  }
27310  {
27311    UHI opval = tmp_tmp;
27312    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
27313    written |= (1 << 12);
27314    TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27315  }
27316}
27317}
27318}
27319
27320  abuf->written = written;
27321  return vpc;
27322#undef FLD
27323}
27324
27325/* mpackh: mpackh$pack $FRinti,$FRintj,$FRintk */
27326
27327static SEM_PC
27328SEM_FN_NAME (frvbf,mpackh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27329{
27330#define FLD(f) abuf->fields.sfmt_cmaddhss.f
27331  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27332  int UNUSED written = 0;
27333  IADDR UNUSED pc = abuf->addr;
27334  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27335
27336{
27337  {
27338    UHI opval = GET_H_FR_LO (((FLD (f_FRi)) + (0)));
27339    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
27340    TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27341  }
27342  {
27343    UHI opval = GET_H_FR_LO (((FLD (f_FRj)) + (0)));
27344    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
27345    TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27346  }
27347}
27348
27349  return vpc;
27350#undef FLD
27351}
27352
27353/* mdpackh: mdpackh$pack $FRintieven,$FRintjeven,$FRintkeven */
27354
27355static SEM_PC
27356SEM_FN_NAME (frvbf,mdpackh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27357{
27358#define FLD(f) abuf->fields.sfmt_mdpackh.f
27359  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27360  int UNUSED written = 0;
27361  IADDR UNUSED pc = abuf->addr;
27362  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27363
27364if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
27365frvbf_media_register_not_aligned (current_cpu);
27366} else {
27367{
27368  {
27369    SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRi)));
27370    sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRi), opval);
27371    written |= (1 << 10);
27372    TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27373  }
27374  {
27375    SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRj)));
27376    sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRj), opval);
27377    written |= (1 << 11);
27378    TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27379  }
27380  {
27381    SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27382    sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27383    written |= (1 << 12);
27384    TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27385  }
27386{
27387  {
27388    UHI opval = GET_H_FR_LO (((FLD (f_FRi)) + (0)));
27389    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
27390    written |= (1 << 13);
27391    TRACE_RESULT (current_cpu, abuf, "fr_hi", '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_lo_set, ((FLD (f_FRk)) + (0)), opval);
27396    written |= (1 << 15);
27397    TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27398  }
27399}
27400{
27401  {
27402    UHI opval = GET_H_FR_LO (((FLD (f_FRi)) + (1)));
27403    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
27404    written |= (1 << 14);
27405    TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27406  }
27407  {
27408    UHI opval = GET_H_FR_LO (((FLD (f_FRj)) + (1)));
27409    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
27410    written |= (1 << 16);
27411    TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27412  }
27413}
27414}
27415}
27416
27417  abuf->written = written;
27418  return vpc;
27419#undef FLD
27420}
27421
27422/* munpackh: munpackh$pack $FRinti,$FRintkeven */
27423
27424static SEM_PC
27425SEM_FN_NAME (frvbf,munpackh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27426{
27427#define FLD(f) abuf->fields.sfmt_munpackh.f
27428  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27429  int UNUSED written = 0;
27430  IADDR UNUSED pc = abuf->addr;
27431  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27432
27433if (ANDSI (FLD (f_FRk), SUBSI (2, 1))) {
27434frvbf_media_register_not_aligned (current_cpu);
27435} else {
27436{
27437  {
27438    SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRi)));
27439    sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRi), opval);
27440    written |= (1 << 6);
27441    TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27442  }
27443  {
27444    SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27445    sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27446    written |= (1 << 7);
27447    TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27448  }
27449{
27450  {
27451    UHI opval = GET_H_FR_HI (((FLD (f_FRi)) + (0)));
27452    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
27453    written |= (1 << 8);
27454    TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27455  }
27456  {
27457    UHI opval = GET_H_FR_HI (((FLD (f_FRi)) + (0)));
27458    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
27459    written |= (1 << 10);
27460    TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27461  }
27462  {
27463    UHI opval = GET_H_FR_LO (((FLD (f_FRi)) + (0)));
27464    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (ADDSI (0, 1))), opval);
27465    written |= (1 << 9);
27466    TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27467  }
27468  {
27469    UHI opval = GET_H_FR_LO (((FLD (f_FRi)) + (0)));
27470    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (ADDSI (0, 1))), opval);
27471    written |= (1 << 11);
27472    TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27473  }
27474}
27475}
27476}
27477
27478  abuf->written = written;
27479  return vpc;
27480#undef FLD
27481}
27482
27483/* mdunpackh: mdunpackh$pack $FRintieven,$FRintk */
27484
27485static SEM_PC
27486SEM_FN_NAME (frvbf,mdunpackh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27487{
27488#define FLD(f) abuf->fields.sfmt_mdunpackh.f
27489  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27490  int UNUSED written = 0;
27491  IADDR UNUSED pc = abuf->addr;
27492  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27493
27494if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (4, 1)))) {
27495frvbf_media_register_not_aligned (current_cpu);
27496} else {
27497{
27498  {
27499    SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRi)));
27500    sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRi), opval);
27501    written |= (1 << 8);
27502    TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27503  }
27504  {
27505    SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27506    sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27507    written |= (1 << 9);
27508    TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27509  }
27510{
27511  {
27512    UHI opval = GET_H_FR_HI (((FLD (f_FRi)) + (0)));
27513    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
27514    written |= (1 << 10);
27515    TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27516  }
27517  {
27518    UHI opval = GET_H_FR_HI (((FLD (f_FRi)) + (0)));
27519    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
27520    written |= (1 << 14);
27521    TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27522  }
27523  {
27524    UHI opval = GET_H_FR_LO (((FLD (f_FRi)) + (0)));
27525    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (ADDSI (0, 1))), opval);
27526    written |= (1 << 12);
27527    TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27528  }
27529  {
27530    UHI opval = GET_H_FR_LO (((FLD (f_FRi)) + (0)));
27531    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (ADDSI (0, 1))), opval);
27532    written |= (1 << 16);
27533    TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27534  }
27535}
27536{
27537  {
27538    UHI opval = GET_H_FR_HI (((FLD (f_FRi)) + (1)));
27539    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (2)), opval);
27540    written |= (1 << 11);
27541    TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27542  }
27543  {
27544    UHI opval = GET_H_FR_HI (((FLD (f_FRi)) + (1)));
27545    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (2)), opval);
27546    written |= (1 << 15);
27547    TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27548  }
27549  {
27550    UHI opval = GET_H_FR_LO (((FLD (f_FRi)) + (1)));
27551    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (ADDSI (2, 1))), opval);
27552    written |= (1 << 13);
27553    TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27554  }
27555  {
27556    UHI opval = GET_H_FR_LO (((FLD (f_FRi)) + (1)));
27557    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (ADDSI (2, 1))), opval);
27558    written |= (1 << 17);
27559    TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27560  }
27561}
27562}
27563}
27564
27565  abuf->written = written;
27566  return vpc;
27567#undef FLD
27568}
27569
27570/* mbtoh: mbtoh$pack $FRintj,$FRintkeven */
27571
27572static SEM_PC
27573SEM_FN_NAME (frvbf,mbtoh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27574{
27575#define FLD(f) abuf->fields.sfmt_cmbtoh.f
27576  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27577  int UNUSED written = 0;
27578  IADDR UNUSED pc = abuf->addr;
27579  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27580
27581{
27582  {
27583    SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRj)));
27584    sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRj), opval);
27585    TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27586  }
27587  {
27588    SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27589    sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27590    TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27591  }
27592if (ANDSI (FLD (f_FRk), SUBSI (2, 1))) {
27593frvbf_media_register_not_aligned (current_cpu);
27594} else {
27595{
27596  {
27597    UHI opval = GET_H_FR_3 (((FLD (f_FRj)) + (0)));
27598    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
27599    written |= (1 << 10);
27600    TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27601  }
27602  {
27603    UHI opval = GET_H_FR_2 (((FLD (f_FRj)) + (0)));
27604    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
27605    written |= (1 << 12);
27606    TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27607  }
27608  {
27609    UHI opval = GET_H_FR_1 (((FLD (f_FRj)) + (0)));
27610    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
27611    written |= (1 << 11);
27612    TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27613  }
27614  {
27615    UHI opval = GET_H_FR_0 (((FLD (f_FRj)) + (0)));
27616    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
27617    written |= (1 << 13);
27618    TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27619  }
27620}
27621}
27622}
27623
27624  abuf->written = written;
27625  return vpc;
27626#undef FLD
27627}
27628
27629/* cmbtoh: cmbtoh$pack $FRintj,$FRintkeven,$CCi,$cond */
27630
27631static SEM_PC
27632SEM_FN_NAME (frvbf,cmbtoh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27633{
27634#define FLD(f) abuf->fields.sfmt_cmbtoh.f
27635  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27636  int UNUSED written = 0;
27637  IADDR UNUSED pc = abuf->addr;
27638  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27639
27640{
27641  {
27642    SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRj)));
27643    sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRj), opval);
27644    TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27645  }
27646  {
27647    SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27648    sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27649    TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27650  }
27651if (ANDSI (FLD (f_FRk), SUBSI (2, 1))) {
27652frvbf_media_register_not_aligned (current_cpu);
27653} else {
27654if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
27655{
27656  {
27657    UHI opval = GET_H_FR_3 (((FLD (f_FRj)) + (0)));
27658    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
27659    written |= (1 << 12);
27660    TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27661  }
27662  {
27663    UHI opval = GET_H_FR_2 (((FLD (f_FRj)) + (0)));
27664    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
27665    written |= (1 << 14);
27666    TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27667  }
27668  {
27669    UHI opval = GET_H_FR_1 (((FLD (f_FRj)) + (0)));
27670    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
27671    written |= (1 << 13);
27672    TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27673  }
27674  {
27675    UHI opval = GET_H_FR_0 (((FLD (f_FRj)) + (0)));
27676    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
27677    written |= (1 << 15);
27678    TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27679  }
27680}
27681}
27682}
27683}
27684
27685  abuf->written = written;
27686  return vpc;
27687#undef FLD
27688}
27689
27690/* mhtob: mhtob$pack $FRintjeven,$FRintk */
27691
27692static SEM_PC
27693SEM_FN_NAME (frvbf,mhtob) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27694{
27695#define FLD(f) abuf->fields.sfmt_cmhtob.f
27696  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27697  int UNUSED written = 0;
27698  IADDR UNUSED pc = abuf->addr;
27699  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27700
27701{
27702  {
27703    SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRj)));
27704    sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRj), opval);
27705    TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27706  }
27707  {
27708    SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27709    sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27710    TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27711  }
27712if (ANDSI (FLD (f_FRj), SUBSI (2, 1))) {
27713frvbf_media_register_not_aligned (current_cpu);
27714} else {
27715{
27716  {
27717    UHI opval = GET_H_FR_HI (((FLD (f_FRj)) + (0)));
27718    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_3_set, ((FLD (f_FRk)) + (0)), opval);
27719    written |= (1 << 13);
27720    TRACE_RESULT (current_cpu, abuf, "fr_3", 'x', opval);
27721  }
27722  {
27723    UHI opval = GET_H_FR_LO (((FLD (f_FRj)) + (0)));
27724    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_2_set, ((FLD (f_FRk)) + (0)), opval);
27725    written |= (1 << 12);
27726    TRACE_RESULT (current_cpu, abuf, "fr_2", 'x', opval);
27727  }
27728  {
27729    UHI opval = GET_H_FR_HI (((FLD (f_FRj)) + (1)));
27730    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_1_set, ((FLD (f_FRk)) + (0)), opval);
27731    written |= (1 << 11);
27732    TRACE_RESULT (current_cpu, abuf, "fr_1", 'x', opval);
27733  }
27734  {
27735    UHI opval = GET_H_FR_LO (((FLD (f_FRj)) + (1)));
27736    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_0_set, ((FLD (f_FRk)) + (0)), opval);
27737    written |= (1 << 10);
27738    TRACE_RESULT (current_cpu, abuf, "fr_0", 'x', opval);
27739  }
27740}
27741}
27742}
27743
27744  abuf->written = written;
27745  return vpc;
27746#undef FLD
27747}
27748
27749/* cmhtob: cmhtob$pack $FRintjeven,$FRintk,$CCi,$cond */
27750
27751static SEM_PC
27752SEM_FN_NAME (frvbf,cmhtob) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27753{
27754#define FLD(f) abuf->fields.sfmt_cmhtob.f
27755  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27756  int UNUSED written = 0;
27757  IADDR UNUSED pc = abuf->addr;
27758  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27759
27760{
27761  {
27762    SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRj)));
27763    sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRj), opval);
27764    TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27765  }
27766  {
27767    SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27768    sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27769    TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27770  }
27771if (ANDSI (FLD (f_FRj), SUBSI (2, 1))) {
27772frvbf_media_register_not_aligned (current_cpu);
27773} else {
27774if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
27775{
27776  {
27777    UHI opval = GET_H_FR_HI (((FLD (f_FRj)) + (0)));
27778    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_3_set, ((FLD (f_FRk)) + (0)), opval);
27779    written |= (1 << 15);
27780    TRACE_RESULT (current_cpu, abuf, "fr_3", 'x', opval);
27781  }
27782  {
27783    UHI opval = GET_H_FR_LO (((FLD (f_FRj)) + (0)));
27784    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_2_set, ((FLD (f_FRk)) + (0)), opval);
27785    written |= (1 << 14);
27786    TRACE_RESULT (current_cpu, abuf, "fr_2", 'x', opval);
27787  }
27788  {
27789    UHI opval = GET_H_FR_HI (((FLD (f_FRj)) + (1)));
27790    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_1_set, ((FLD (f_FRk)) + (0)), opval);
27791    written |= (1 << 13);
27792    TRACE_RESULT (current_cpu, abuf, "fr_1", 'x', opval);
27793  }
27794  {
27795    UHI opval = GET_H_FR_LO (((FLD (f_FRj)) + (1)));
27796    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_0_set, ((FLD (f_FRk)) + (0)), opval);
27797    written |= (1 << 12);
27798    TRACE_RESULT (current_cpu, abuf, "fr_0", 'x', opval);
27799  }
27800}
27801}
27802}
27803}
27804
27805  abuf->written = written;
27806  return vpc;
27807#undef FLD
27808}
27809
27810/* mbtohe: mbtohe$pack $FRintj,$FRintk */
27811
27812static SEM_PC
27813SEM_FN_NAME (frvbf,mbtohe) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27814{
27815#define FLD(f) abuf->fields.sfmt_cmbtohe.f
27816  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27817  int UNUSED written = 0;
27818  IADDR UNUSED pc = abuf->addr;
27819  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27820
27821{
27822  {
27823    SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRj)));
27824    sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRj), opval);
27825    TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27826  }
27827  {
27828    SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27829    sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27830    TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27831  }
27832if (ANDSI (FLD (f_FRk), SUBSI (4, 1))) {
27833frvbf_media_register_not_aligned (current_cpu);
27834} else {
27835{
27836  {
27837    UHI opval = GET_H_FR_3 (((FLD (f_FRj)) + (0)));
27838    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
27839    written |= (1 << 10);
27840    TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27841  }
27842  {
27843    UHI opval = GET_H_FR_3 (((FLD (f_FRj)) + (0)));
27844    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
27845    written |= (1 << 14);
27846    TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27847  }
27848  {
27849    UHI opval = GET_H_FR_2 (((FLD (f_FRj)) + (0)));
27850    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
27851    written |= (1 << 11);
27852    TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27853  }
27854  {
27855    UHI opval = GET_H_FR_2 (((FLD (f_FRj)) + (0)));
27856    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
27857    written |= (1 << 15);
27858    TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27859  }
27860  {
27861    UHI opval = GET_H_FR_1 (((FLD (f_FRj)) + (0)));
27862    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (2)), opval);
27863    written |= (1 << 12);
27864    TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27865  }
27866  {
27867    UHI opval = GET_H_FR_1 (((FLD (f_FRj)) + (0)));
27868    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (2)), opval);
27869    written |= (1 << 16);
27870    TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27871  }
27872  {
27873    UHI opval = GET_H_FR_0 (((FLD (f_FRj)) + (0)));
27874    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (3)), opval);
27875    written |= (1 << 13);
27876    TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27877  }
27878  {
27879    UHI opval = GET_H_FR_0 (((FLD (f_FRj)) + (0)));
27880    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (3)), opval);
27881    written |= (1 << 17);
27882    TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27883  }
27884}
27885}
27886}
27887
27888  abuf->written = written;
27889  return vpc;
27890#undef FLD
27891}
27892
27893/* cmbtohe: cmbtohe$pack $FRintj,$FRintk,$CCi,$cond */
27894
27895static SEM_PC
27896SEM_FN_NAME (frvbf,cmbtohe) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27897{
27898#define FLD(f) abuf->fields.sfmt_cmbtohe.f
27899  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27900  int UNUSED written = 0;
27901  IADDR UNUSED pc = abuf->addr;
27902  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27903
27904{
27905  {
27906    SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRj)));
27907    sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRj), opval);
27908    TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27909  }
27910  {
27911    SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27912    sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27913    TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27914  }
27915if (ANDSI (FLD (f_FRk), SUBSI (4, 1))) {
27916frvbf_media_register_not_aligned (current_cpu);
27917} else {
27918if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
27919{
27920  {
27921    UHI opval = GET_H_FR_3 (((FLD (f_FRj)) + (0)));
27922    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
27923    written |= (1 << 12);
27924    TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27925  }
27926  {
27927    UHI opval = GET_H_FR_3 (((FLD (f_FRj)) + (0)));
27928    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
27929    written |= (1 << 16);
27930    TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27931  }
27932  {
27933    UHI opval = GET_H_FR_2 (((FLD (f_FRj)) + (0)));
27934    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
27935    written |= (1 << 13);
27936    TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27937  }
27938  {
27939    UHI opval = GET_H_FR_2 (((FLD (f_FRj)) + (0)));
27940    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
27941    written |= (1 << 17);
27942    TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27943  }
27944  {
27945    UHI opval = GET_H_FR_1 (((FLD (f_FRj)) + (0)));
27946    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (2)), opval);
27947    written |= (1 << 14);
27948    TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27949  }
27950  {
27951    UHI opval = GET_H_FR_1 (((FLD (f_FRj)) + (0)));
27952    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (2)), opval);
27953    written |= (1 << 18);
27954    TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27955  }
27956  {
27957    UHI opval = GET_H_FR_0 (((FLD (f_FRj)) + (0)));
27958    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (3)), opval);
27959    written |= (1 << 15);
27960    TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27961  }
27962  {
27963    UHI opval = GET_H_FR_0 (((FLD (f_FRj)) + (0)));
27964    sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (3)), opval);
27965    written |= (1 << 19);
27966    TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27967  }
27968}
27969}
27970}
27971}
27972
27973  abuf->written = written;
27974  return vpc;
27975#undef FLD
27976}
27977
27978/* mnop: mnop$pack */
27979
27980static SEM_PC
27981SEM_FN_NAME (frvbf,mnop) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27982{
27983#define FLD(f) abuf->fields.fmt_empty.f
27984  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27985  int UNUSED written = 0;
27986  IADDR UNUSED pc = abuf->addr;
27987  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27988
27989((void) 0); /*nop*/
27990
27991  return vpc;
27992#undef FLD
27993}
27994
27995/* mclracc-0: mclracc$pack $ACC40Sk,$A0 */
27996
27997static SEM_PC
27998SEM_FN_NAME (frvbf,mclracc_0) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27999{
28000#define FLD(f) abuf->fields.sfmt_mdasaccs.f
28001  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
28002  int UNUSED written = 0;
28003  IADDR UNUSED pc = abuf->addr;
28004  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
28005
28006frvbf_clear_accumulators (current_cpu, FLD (f_ACC40Sk), 0);
28007
28008  return vpc;
28009#undef FLD
28010}
28011
28012/* mclracc-1: mclracc$pack $ACC40Sk,$A1 */
28013
28014static SEM_PC
28015SEM_FN_NAME (frvbf,mclracc_1) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
28016{
28017#define FLD(f) abuf->fields.sfmt_mdasaccs.f
28018  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
28019  int UNUSED written = 0;
28020  IADDR UNUSED pc = abuf->addr;
28021  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
28022
28023frvbf_clear_accumulators (current_cpu, FLD (f_ACC40Sk), 1);
28024
28025  return vpc;
28026#undef FLD
28027}
28028
28029/* mrdacc: mrdacc$pack $ACC40Si,$FRintk */
28030
28031static SEM_PC
28032SEM_FN_NAME (frvbf,mrdacc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
28033{
28034#define FLD(f) abuf->fields.sfmt_mcuti.f
28035  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
28036  int UNUSED written = 0;
28037  IADDR UNUSED pc = abuf->addr;
28038  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
28039
28040  {
28041    SI opval = GET_H_ACC40S (FLD (f_ACC40Si));
28042    sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
28043    TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
28044  }
28045
28046  return vpc;
28047#undef FLD
28048}
28049
28050/* mrdaccg: mrdaccg$pack $ACCGi,$FRintk */
28051
28052static SEM_PC
28053SEM_FN_NAME (frvbf,mrdaccg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
28054{
28055#define FLD(f) abuf->fields.sfmt_mrdaccg.f
28056  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
28057  int UNUSED written = 0;
28058  IADDR UNUSED pc = abuf->addr;
28059  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
28060
28061  {
28062    SI opval = GET_H_ACCG (FLD (f_ACCGi));
28063    sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
28064    TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
28065  }
28066
28067  return vpc;
28068#undef FLD
28069}
28070
28071/* mwtacc: mwtacc$pack $FRinti,$ACC40Sk */
28072
28073static SEM_PC
28074SEM_FN_NAME (frvbf,mwtacc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
28075{
28076#define FLD(f) abuf->fields.sfmt_cmmachs.f
28077  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
28078  int UNUSED written = 0;
28079  IADDR UNUSED pc = abuf->addr;
28080  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
28081
28082  {
28083    DI opval = ORDI (ANDDI (GET_H_ACC40S (FLD (f_ACC40Sk)), MAKEDI (0xffffffff, 0)), GET_H_FR_INT (FLD (f_FRi)));
28084    sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
28085    TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
28086  }
28087
28088  return vpc;
28089#undef FLD
28090}
28091
28092/* mwtaccg: mwtaccg$pack $FRinti,$ACCGk */
28093
28094static SEM_PC
28095SEM_FN_NAME (frvbf,mwtaccg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
28096{
28097#define FLD(f) abuf->fields.sfmt_mwtaccg.f
28098  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
28099  int UNUSED written = 0;
28100  IADDR UNUSED pc = abuf->addr;
28101  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
28102
28103{
28104frv_ref_SI (GET_H_ACCG (FLD (f_ACCGk)));
28105  {
28106    USI opval = GET_H_FR_INT (FLD (f_FRi));
28107    sim_queue_fn_si_write (current_cpu, frvbf_h_accg_set, FLD (f_ACCGk), opval);
28108    TRACE_RESULT (current_cpu, abuf, "accg", 'x', opval);
28109  }
28110}
28111
28112  return vpc;
28113#undef FLD
28114}
28115
28116/* mcop1: mcop1$pack $FRi,$FRj,$FRk */
28117
28118static SEM_PC
28119SEM_FN_NAME (frvbf,mcop1) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
28120{
28121#define FLD(f) abuf->fields.fmt_empty.f
28122  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
28123  int UNUSED written = 0;
28124  IADDR UNUSED pc = abuf->addr;
28125  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
28126
28127frvbf_media_cop (current_cpu, 1);
28128
28129  return vpc;
28130#undef FLD
28131}
28132
28133/* mcop2: mcop2$pack $FRi,$FRj,$FRk */
28134
28135static SEM_PC
28136SEM_FN_NAME (frvbf,mcop2) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
28137{
28138#define FLD(f) abuf->fields.fmt_empty.f
28139  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
28140  int UNUSED written = 0;
28141  IADDR UNUSED pc = abuf->addr;
28142  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
28143
28144frvbf_media_cop (current_cpu, 2);
28145
28146  return vpc;
28147#undef FLD
28148}
28149
28150/* fnop: fnop$pack */
28151
28152static SEM_PC
28153SEM_FN_NAME (frvbf,fnop) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
28154{
28155#define FLD(f) abuf->fields.fmt_empty.f
28156  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
28157  int UNUSED written = 0;
28158  IADDR UNUSED pc = abuf->addr;
28159  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
28160
28161((void) 0); /*nop*/
28162
28163  return vpc;
28164#undef FLD
28165}
28166
28167/* Table of all semantic fns.  */
28168
28169static const struct sem_fn_desc sem_fns[] = {
28170  { FRVBF_INSN_X_INVALID, SEM_FN_NAME (frvbf,x_invalid) },
28171  { FRVBF_INSN_X_AFTER, SEM_FN_NAME (frvbf,x_after) },
28172  { FRVBF_INSN_X_BEFORE, SEM_FN_NAME (frvbf,x_before) },
28173  { FRVBF_INSN_X_CTI_CHAIN, SEM_FN_NAME (frvbf,x_cti_chain) },
28174  { FRVBF_INSN_X_CHAIN, SEM_FN_NAME (frvbf,x_chain) },
28175  { FRVBF_INSN_X_BEGIN, SEM_FN_NAME (frvbf,x_begin) },
28176  { FRVBF_INSN_ADD, SEM_FN_NAME (frvbf,add) },
28177  { FRVBF_INSN_SUB, SEM_FN_NAME (frvbf,sub) },
28178  { FRVBF_INSN_AND, SEM_FN_NAME (frvbf,and) },
28179  { FRVBF_INSN_OR, SEM_FN_NAME (frvbf,or) },
28180  { FRVBF_INSN_XOR, SEM_FN_NAME (frvbf,xor) },
28181  { FRVBF_INSN_NOT, SEM_FN_NAME (frvbf,not) },
28182  { FRVBF_INSN_SDIV, SEM_FN_NAME (frvbf,sdiv) },
28183  { FRVBF_INSN_NSDIV, SEM_FN_NAME (frvbf,nsdiv) },
28184  { FRVBF_INSN_UDIV, SEM_FN_NAME (frvbf,udiv) },
28185  { FRVBF_INSN_NUDIV, SEM_FN_NAME (frvbf,nudiv) },
28186  { FRVBF_INSN_SMUL, SEM_FN_NAME (frvbf,smul) },
28187  { FRVBF_INSN_UMUL, SEM_FN_NAME (frvbf,umul) },
28188  { FRVBF_INSN_SMU, SEM_FN_NAME (frvbf,smu) },
28189  { FRVBF_INSN_SMASS, SEM_FN_NAME (frvbf,smass) },
28190  { FRVBF_INSN_SMSSS, SEM_FN_NAME (frvbf,smsss) },
28191  { FRVBF_INSN_SLL, SEM_FN_NAME (frvbf,sll) },
28192  { FRVBF_INSN_SRL, SEM_FN_NAME (frvbf,srl) },
28193  { FRVBF_INSN_SRA, SEM_FN_NAME (frvbf,sra) },
28194  { FRVBF_INSN_SLASS, SEM_FN_NAME (frvbf,slass) },
28195  { FRVBF_INSN_SCUTSS, SEM_FN_NAME (frvbf,scutss) },
28196  { FRVBF_INSN_SCAN, SEM_FN_NAME (frvbf,scan) },
28197  { FRVBF_INSN_CADD, SEM_FN_NAME (frvbf,cadd) },
28198  { FRVBF_INSN_CSUB, SEM_FN_NAME (frvbf,csub) },
28199  { FRVBF_INSN_CAND, SEM_FN_NAME (frvbf,cand) },
28200  { FRVBF_INSN_COR, SEM_FN_NAME (frvbf,cor) },
28201  { FRVBF_INSN_CXOR, SEM_FN_NAME (frvbf,cxor) },
28202  { FRVBF_INSN_CNOT, SEM_FN_NAME (frvbf,cnot) },
28203  { FRVBF_INSN_CSMUL, SEM_FN_NAME (frvbf,csmul) },
28204  { FRVBF_INSN_CSDIV, SEM_FN_NAME (frvbf,csdiv) },
28205  { FRVBF_INSN_CUDIV, SEM_FN_NAME (frvbf,cudiv) },
28206  { FRVBF_INSN_CSLL, SEM_FN_NAME (frvbf,csll) },
28207  { FRVBF_INSN_CSRL, SEM_FN_NAME (frvbf,csrl) },
28208  { FRVBF_INSN_CSRA, SEM_FN_NAME (frvbf,csra) },
28209  { FRVBF_INSN_CSCAN, SEM_FN_NAME (frvbf,cscan) },
28210  { FRVBF_INSN_ADDCC, SEM_FN_NAME (frvbf,addcc) },
28211  { FRVBF_INSN_SUBCC, SEM_FN_NAME (frvbf,subcc) },
28212  { FRVBF_INSN_ANDCC, SEM_FN_NAME (frvbf,andcc) },
28213  { FRVBF_INSN_ORCC, SEM_FN_NAME (frvbf,orcc) },
28214  { FRVBF_INSN_XORCC, SEM_FN_NAME (frvbf,xorcc) },
28215  { FRVBF_INSN_SLLCC, SEM_FN_NAME (frvbf,sllcc) },
28216  { FRVBF_INSN_SRLCC, SEM_FN_NAME (frvbf,srlcc) },
28217  { FRVBF_INSN_SRACC, SEM_FN_NAME (frvbf,sracc) },
28218  { FRVBF_INSN_SMULCC, SEM_FN_NAME (frvbf,smulcc) },
28219  { FRVBF_INSN_UMULCC, SEM_FN_NAME (frvbf,umulcc) },
28220  { FRVBF_INSN_CADDCC, SEM_FN_NAME (frvbf,caddcc) },
28221  { FRVBF_INSN_CSUBCC, SEM_FN_NAME (frvbf,csubcc) },
28222  { FRVBF_INSN_CSMULCC, SEM_FN_NAME (frvbf,csmulcc) },
28223  { FRVBF_INSN_CANDCC, SEM_FN_NAME (frvbf,candcc) },
28224  { FRVBF_INSN_CORCC, SEM_FN_NAME (frvbf,corcc) },
28225  { FRVBF_INSN_CXORCC, SEM_FN_NAME (frvbf,cxorcc) },
28226  { FRVBF_INSN_CSLLCC, SEM_FN_NAME (frvbf,csllcc) },
28227  { FRVBF_INSN_CSRLCC, SEM_FN_NAME (frvbf,csrlcc) },
28228  { FRVBF_INSN_CSRACC, SEM_FN_NAME (frvbf,csracc) },
28229  { FRVBF_INSN_ADDX, SEM_FN_NAME (frvbf,addx) },
28230  { FRVBF_INSN_SUBX, SEM_FN_NAME (frvbf,subx) },
28231  { FRVBF_INSN_ADDXCC, SEM_FN_NAME (frvbf,addxcc) },
28232  { FRVBF_INSN_SUBXCC, SEM_FN_NAME (frvbf,subxcc) },
28233  { FRVBF_INSN_ADDSS, SEM_FN_NAME (frvbf,addss) },
28234  { FRVBF_INSN_SUBSS, SEM_FN_NAME (frvbf,subss) },
28235  { FRVBF_INSN_ADDI, SEM_FN_NAME (frvbf,addi) },
28236  { FRVBF_INSN_SUBI, SEM_FN_NAME (frvbf,subi) },
28237  { FRVBF_INSN_ANDI, SEM_FN_NAME (frvbf,andi) },
28238  { FRVBF_INSN_ORI, SEM_FN_NAME (frvbf,ori) },
28239  { FRVBF_INSN_XORI, SEM_FN_NAME (frvbf,xori) },
28240  { FRVBF_INSN_SDIVI, SEM_FN_NAME (frvbf,sdivi) },
28241  { FRVBF_INSN_NSDIVI, SEM_FN_NAME (frvbf,nsdivi) },
28242  { FRVBF_INSN_UDIVI, SEM_FN_NAME (frvbf,udivi) },
28243  { FRVBF_INSN_NUDIVI, SEM_FN_NAME (frvbf,nudivi) },
28244  { FRVBF_INSN_SMULI, SEM_FN_NAME (frvbf,smuli) },
28245  { FRVBF_INSN_UMULI, SEM_FN_NAME (frvbf,umuli) },
28246  { FRVBF_INSN_SLLI, SEM_FN_NAME (frvbf,slli) },
28247  { FRVBF_INSN_SRLI, SEM_FN_NAME (frvbf,srli) },
28248  { FRVBF_INSN_SRAI, SEM_FN_NAME (frvbf,srai) },
28249  { FRVBF_INSN_SCANI, SEM_FN_NAME (frvbf,scani) },
28250  { FRVBF_INSN_ADDICC, SEM_FN_NAME (frvbf,addicc) },
28251  { FRVBF_INSN_SUBICC, SEM_FN_NAME (frvbf,subicc) },
28252  { FRVBF_INSN_ANDICC, SEM_FN_NAME (frvbf,andicc) },
28253  { FRVBF_INSN_ORICC, SEM_FN_NAME (frvbf,oricc) },
28254  { FRVBF_INSN_XORICC, SEM_FN_NAME (frvbf,xoricc) },
28255  { FRVBF_INSN_SMULICC, SEM_FN_NAME (frvbf,smulicc) },
28256  { FRVBF_INSN_UMULICC, SEM_FN_NAME (frvbf,umulicc) },
28257  { FRVBF_INSN_SLLICC, SEM_FN_NAME (frvbf,sllicc) },
28258  { FRVBF_INSN_SRLICC, SEM_FN_NAME (frvbf,srlicc) },
28259  { FRVBF_INSN_SRAICC, SEM_FN_NAME (frvbf,sraicc) },
28260  { FRVBF_INSN_ADDXI, SEM_FN_NAME (frvbf,addxi) },
28261  { FRVBF_INSN_SUBXI, SEM_FN_NAME (frvbf,subxi) },
28262  { FRVBF_INSN_ADDXICC, SEM_FN_NAME (frvbf,addxicc) },
28263  { FRVBF_INSN_SUBXICC, SEM_FN_NAME (frvbf,subxicc) },
28264  { FRVBF_INSN_CMPB, SEM_FN_NAME (frvbf,cmpb) },
28265  { FRVBF_INSN_CMPBA, SEM_FN_NAME (frvbf,cmpba) },
28266  { FRVBF_INSN_SETLO, SEM_FN_NAME (frvbf,setlo) },
28267  { FRVBF_INSN_SETHI, SEM_FN_NAME (frvbf,sethi) },
28268  { FRVBF_INSN_SETLOS, SEM_FN_NAME (frvbf,setlos) },
28269  { FRVBF_INSN_LDSB, SEM_FN_NAME (frvbf,ldsb) },
28270  { FRVBF_INSN_LDUB, SEM_FN_NAME (frvbf,ldub) },
28271  { FRVBF_INSN_LDSH, SEM_FN_NAME (frvbf,ldsh) },
28272  { FRVBF_INSN_LDUH, SEM_FN_NAME (frvbf,lduh) },
28273  { FRVBF_INSN_LD, SEM_FN_NAME (frvbf,ld) },
28274  { FRVBF_INSN_LDBF, SEM_FN_NAME (frvbf,ldbf) },
28275  { FRVBF_INSN_LDHF, SEM_FN_NAME (frvbf,ldhf) },
28276  { FRVBF_INSN_LDF, SEM_FN_NAME (frvbf,ldf) },
28277  { FRVBF_INSN_LDC, SEM_FN_NAME (frvbf,ldc) },
28278  { FRVBF_INSN_NLDSB, SEM_FN_NAME (frvbf,nldsb) },
28279  { FRVBF_INSN_NLDUB, SEM_FN_NAME (frvbf,nldub) },
28280  { FRVBF_INSN_NLDSH, SEM_FN_NAME (frvbf,nldsh) },
28281  { FRVBF_INSN_NLDUH, SEM_FN_NAME (frvbf,nlduh) },
28282  { FRVBF_INSN_NLD, SEM_FN_NAME (frvbf,nld) },
28283  { FRVBF_INSN_NLDBF, SEM_FN_NAME (frvbf,nldbf) },
28284  { FRVBF_INSN_NLDHF, SEM_FN_NAME (frvbf,nldhf) },
28285  { FRVBF_INSN_NLDF, SEM_FN_NAME (frvbf,nldf) },
28286  { FRVBF_INSN_LDD, SEM_FN_NAME (frvbf,ldd) },
28287  { FRVBF_INSN_LDDF, SEM_FN_NAME (frvbf,lddf) },
28288  { FRVBF_INSN_LDDC, SEM_FN_NAME (frvbf,lddc) },
28289  { FRVBF_INSN_NLDD, SEM_FN_NAME (frvbf,nldd) },
28290  { FRVBF_INSN_NLDDF, SEM_FN_NAME (frvbf,nlddf) },
28291  { FRVBF_INSN_LDQ, SEM_FN_NAME (frvbf,ldq) },
28292  { FRVBF_INSN_LDQF, SEM_FN_NAME (frvbf,ldqf) },
28293  { FRVBF_INSN_LDQC, SEM_FN_NAME (frvbf,ldqc) },
28294  { FRVBF_INSN_NLDQ, SEM_FN_NAME (frvbf,nldq) },
28295  { FRVBF_INSN_NLDQF, SEM_FN_NAME (frvbf,nldqf) },
28296  { FRVBF_INSN_LDSBU, SEM_FN_NAME (frvbf,ldsbu) },
28297  { FRVBF_INSN_LDUBU, SEM_FN_NAME (frvbf,ldubu) },
28298  { FRVBF_INSN_LDSHU, SEM_FN_NAME (frvbf,ldshu) },
28299  { FRVBF_INSN_LDUHU, SEM_FN_NAME (frvbf,lduhu) },
28300  { FRVBF_INSN_LDU, SEM_FN_NAME (frvbf,ldu) },
28301  { FRVBF_INSN_NLDSBU, SEM_FN_NAME (frvbf,nldsbu) },
28302  { FRVBF_INSN_NLDUBU, SEM_FN_NAME (frvbf,nldubu) },
28303  { FRVBF_INSN_NLDSHU, SEM_FN_NAME (frvbf,nldshu) },
28304  { FRVBF_INSN_NLDUHU, SEM_FN_NAME (frvbf,nlduhu) },
28305  { FRVBF_INSN_NLDU, SEM_FN_NAME (frvbf,nldu) },
28306  { FRVBF_INSN_LDBFU, SEM_FN_NAME (frvbf,ldbfu) },
28307  { FRVBF_INSN_LDHFU, SEM_FN_NAME (frvbf,ldhfu) },
28308  { FRVBF_INSN_LDFU, SEM_FN_NAME (frvbf,ldfu) },
28309  { FRVBF_INSN_LDCU, SEM_FN_NAME (frvbf,ldcu) },
28310  { FRVBF_INSN_NLDBFU, SEM_FN_NAME (frvbf,nldbfu) },
28311  { FRVBF_INSN_NLDHFU, SEM_FN_NAME (frvbf,nldhfu) },
28312  { FRVBF_INSN_NLDFU, SEM_FN_NAME (frvbf,nldfu) },
28313  { FRVBF_INSN_LDDU, SEM_FN_NAME (frvbf,lddu) },
28314  { FRVBF_INSN_NLDDU, SEM_FN_NAME (frvbf,nlddu) },
28315  { FRVBF_INSN_LDDFU, SEM_FN_NAME (frvbf,lddfu) },
28316  { FRVBF_INSN_LDDCU, SEM_FN_NAME (frvbf,lddcu) },
28317  { FRVBF_INSN_NLDDFU, SEM_FN_NAME (frvbf,nlddfu) },
28318  { FRVBF_INSN_LDQU, SEM_FN_NAME (frvbf,ldqu) },
28319  { FRVBF_INSN_NLDQU, SEM_FN_NAME (frvbf,nldqu) },
28320  { FRVBF_INSN_LDQFU, SEM_FN_NAME (frvbf,ldqfu) },
28321  { FRVBF_INSN_LDQCU, SEM_FN_NAME (frvbf,ldqcu) },
28322  { FRVBF_INSN_NLDQFU, SEM_FN_NAME (frvbf,nldqfu) },
28323  { FRVBF_INSN_LDSBI, SEM_FN_NAME (frvbf,ldsbi) },
28324  { FRVBF_INSN_LDSHI, SEM_FN_NAME (frvbf,ldshi) },
28325  { FRVBF_INSN_LDI, SEM_FN_NAME (frvbf,ldi) },
28326  { FRVBF_INSN_LDUBI, SEM_FN_NAME (frvbf,ldubi) },
28327  { FRVBF_INSN_LDUHI, SEM_FN_NAME (frvbf,lduhi) },
28328  { FRVBF_INSN_LDBFI, SEM_FN_NAME (frvbf,ldbfi) },
28329  { FRVBF_INSN_LDHFI, SEM_FN_NAME (frvbf,ldhfi) },
28330  { FRVBF_INSN_LDFI, SEM_FN_NAME (frvbf,ldfi) },
28331  { FRVBF_INSN_NLDSBI, SEM_FN_NAME (frvbf,nldsbi) },
28332  { FRVBF_INSN_NLDUBI, SEM_FN_NAME (frvbf,nldubi) },
28333  { FRVBF_INSN_NLDSHI, SEM_FN_NAME (frvbf,nldshi) },
28334  { FRVBF_INSN_NLDUHI, SEM_FN_NAME (frvbf,nlduhi) },
28335  { FRVBF_INSN_NLDI, SEM_FN_NAME (frvbf,nldi) },
28336  { FRVBF_INSN_NLDBFI, SEM_FN_NAME (frvbf,nldbfi) },
28337  { FRVBF_INSN_NLDHFI, SEM_FN_NAME (frvbf,nldhfi) },
28338  { FRVBF_INSN_NLDFI, SEM_FN_NAME (frvbf,nldfi) },
28339  { FRVBF_INSN_LDDI, SEM_FN_NAME (frvbf,lddi) },
28340  { FRVBF_INSN_LDDFI, SEM_FN_NAME (frvbf,lddfi) },
28341  { FRVBF_INSN_NLDDI, SEM_FN_NAME (frvbf,nlddi) },
28342  { FRVBF_INSN_NLDDFI, SEM_FN_NAME (frvbf,nlddfi) },
28343  { FRVBF_INSN_LDQI, SEM_FN_NAME (frvbf,ldqi) },
28344  { FRVBF_INSN_LDQFI, SEM_FN_NAME (frvbf,ldqfi) },
28345  { FRVBF_INSN_NLDQFI, SEM_FN_NAME (frvbf,nldqfi) },
28346  { FRVBF_INSN_STB, SEM_FN_NAME (frvbf,stb) },
28347  { FRVBF_INSN_STH, SEM_FN_NAME (frvbf,sth) },
28348  { FRVBF_INSN_ST, SEM_FN_NAME (frvbf,st) },
28349  { FRVBF_INSN_STBF, SEM_FN_NAME (frvbf,stbf) },
28350  { FRVBF_INSN_STHF, SEM_FN_NAME (frvbf,sthf) },
28351  { FRVBF_INSN_STF, SEM_FN_NAME (frvbf,stf) },
28352  { FRVBF_INSN_STC, SEM_FN_NAME (frvbf,stc) },
28353  { FRVBF_INSN_STD, SEM_FN_NAME (frvbf,std) },
28354  { FRVBF_INSN_STDF, SEM_FN_NAME (frvbf,stdf) },
28355  { FRVBF_INSN_STDC, SEM_FN_NAME (frvbf,stdc) },
28356  { FRVBF_INSN_STQ, SEM_FN_NAME (frvbf,stq) },
28357  { FRVBF_INSN_STQF, SEM_FN_NAME (frvbf,stqf) },
28358  { FRVBF_INSN_STQC, SEM_FN_NAME (frvbf,stqc) },
28359  { FRVBF_INSN_STBU, SEM_FN_NAME (frvbf,stbu) },
28360  { FRVBF_INSN_STHU, SEM_FN_NAME (frvbf,sthu) },
28361  { FRVBF_INSN_STU, SEM_FN_NAME (frvbf,stu) },
28362  { FRVBF_INSN_STBFU, SEM_FN_NAME (frvbf,stbfu) },
28363  { FRVBF_INSN_STHFU, SEM_FN_NAME (frvbf,sthfu) },
28364  { FRVBF_INSN_STFU, SEM_FN_NAME (frvbf,stfu) },
28365  { FRVBF_INSN_STCU, SEM_FN_NAME (frvbf,stcu) },
28366  { FRVBF_INSN_STDU, SEM_FN_NAME (frvbf,stdu) },
28367  { FRVBF_INSN_STDFU, SEM_FN_NAME (frvbf,stdfu) },
28368  { FRVBF_INSN_STDCU, SEM_FN_NAME (frvbf,stdcu) },
28369  { FRVBF_INSN_STQU, SEM_FN_NAME (frvbf,stqu) },
28370  { FRVBF_INSN_STQFU, SEM_FN_NAME (frvbf,stqfu) },
28371  { FRVBF_INSN_STQCU, SEM_FN_NAME (frvbf,stqcu) },
28372  { FRVBF_INSN_CLDSB, SEM_FN_NAME (frvbf,cldsb) },
28373  { FRVBF_INSN_CLDUB, SEM_FN_NAME (frvbf,cldub) },
28374  { FRVBF_INSN_CLDSH, SEM_FN_NAME (frvbf,cldsh) },
28375  { FRVBF_INSN_CLDUH, SEM_FN_NAME (frvbf,clduh) },
28376  { FRVBF_INSN_CLD, SEM_FN_NAME (frvbf,cld) },
28377  { FRVBF_INSN_CLDBF, SEM_FN_NAME (frvbf,cldbf) },
28378  { FRVBF_INSN_CLDHF, SEM_FN_NAME (frvbf,cldhf) },
28379  { FRVBF_INSN_CLDF, SEM_FN_NAME (frvbf,cldf) },
28380  { FRVBF_INSN_CLDD, SEM_FN_NAME (frvbf,cldd) },
28381  { FRVBF_INSN_CLDDF, SEM_FN_NAME (frvbf,clddf) },
28382  { FRVBF_INSN_CLDQ, SEM_FN_NAME (frvbf,cldq) },
28383  { FRVBF_INSN_CLDSBU, SEM_FN_NAME (frvbf,cldsbu) },
28384  { FRVBF_INSN_CLDUBU, SEM_FN_NAME (frvbf,cldubu) },
28385  { FRVBF_INSN_CLDSHU, SEM_FN_NAME (frvbf,cldshu) },
28386  { FRVBF_INSN_CLDUHU, SEM_FN_NAME (frvbf,clduhu) },
28387  { FRVBF_INSN_CLDU, SEM_FN_NAME (frvbf,cldu) },
28388  { FRVBF_INSN_CLDBFU, SEM_FN_NAME (frvbf,cldbfu) },
28389  { FRVBF_INSN_CLDHFU, SEM_FN_NAME (frvbf,cldhfu) },
28390  { FRVBF_INSN_CLDFU, SEM_FN_NAME (frvbf,cldfu) },
28391  { FRVBF_INSN_CLDDU, SEM_FN_NAME (frvbf,clddu) },
28392  { FRVBF_INSN_CLDDFU, SEM_FN_NAME (frvbf,clddfu) },
28393  { FRVBF_INSN_CLDQU, SEM_FN_NAME (frvbf,cldqu) },
28394  { FRVBF_INSN_CSTB, SEM_FN_NAME (frvbf,cstb) },
28395  { FRVBF_INSN_CSTH, SEM_FN_NAME (frvbf,csth) },
28396  { FRVBF_INSN_CST, SEM_FN_NAME (frvbf,cst) },
28397  { FRVBF_INSN_CSTBF, SEM_FN_NAME (frvbf,cstbf) },
28398  { FRVBF_INSN_CSTHF, SEM_FN_NAME (frvbf,csthf) },
28399  { FRVBF_INSN_CSTF, SEM_FN_NAME (frvbf,cstf) },
28400  { FRVBF_INSN_CSTD, SEM_FN_NAME (frvbf,cstd) },
28401  { FRVBF_INSN_CSTDF, SEM_FN_NAME (frvbf,cstdf) },
28402  { FRVBF_INSN_CSTQ, SEM_FN_NAME (frvbf,cstq) },
28403  { FRVBF_INSN_CSTBU, SEM_FN_NAME (frvbf,cstbu) },
28404  { FRVBF_INSN_CSTHU, SEM_FN_NAME (frvbf,csthu) },
28405  { FRVBF_INSN_CSTU, SEM_FN_NAME (frvbf,cstu) },
28406  { FRVBF_INSN_CSTBFU, SEM_FN_NAME (frvbf,cstbfu) },
28407  { FRVBF_INSN_CSTHFU, SEM_FN_NAME (frvbf,csthfu) },
28408  { FRVBF_INSN_CSTFU, SEM_FN_NAME (frvbf,cstfu) },
28409  { FRVBF_INSN_CSTDU, SEM_FN_NAME (frvbf,cstdu) },
28410  { FRVBF_INSN_CSTDFU, SEM_FN_NAME (frvbf,cstdfu) },
28411  { FRVBF_INSN_STBI, SEM_FN_NAME (frvbf,stbi) },
28412  { FRVBF_INSN_STHI, SEM_FN_NAME (frvbf,sthi) },
28413  { FRVBF_INSN_STI, SEM_FN_NAME (frvbf,sti) },
28414  { FRVBF_INSN_STBFI, SEM_FN_NAME (frvbf,stbfi) },
28415  { FRVBF_INSN_STHFI, SEM_FN_NAME (frvbf,sthfi) },
28416  { FRVBF_INSN_STFI, SEM_FN_NAME (frvbf,stfi) },
28417  { FRVBF_INSN_STDI, SEM_FN_NAME (frvbf,stdi) },
28418  { FRVBF_INSN_STDFI, SEM_FN_NAME (frvbf,stdfi) },
28419  { FRVBF_INSN_STQI, SEM_FN_NAME (frvbf,stqi) },
28420  { FRVBF_INSN_STQFI, SEM_FN_NAME (frvbf,stqfi) },
28421  { FRVBF_INSN_SWAP, SEM_FN_NAME (frvbf,swap) },
28422  { FRVBF_INSN_SWAPI, SEM_FN_NAME (frvbf,swapi) },
28423  { FRVBF_INSN_CSWAP, SEM_FN_NAME (frvbf,cswap) },
28424  { FRVBF_INSN_MOVGF, SEM_FN_NAME (frvbf,movgf) },
28425  { FRVBF_INSN_MOVFG, SEM_FN_NAME (frvbf,movfg) },
28426  { FRVBF_INSN_MOVGFD, SEM_FN_NAME (frvbf,movgfd) },
28427  { FRVBF_INSN_MOVFGD, SEM_FN_NAME (frvbf,movfgd) },
28428  { FRVBF_INSN_MOVGFQ, SEM_FN_NAME (frvbf,movgfq) },
28429  { FRVBF_INSN_MOVFGQ, SEM_FN_NAME (frvbf,movfgq) },
28430  { FRVBF_INSN_CMOVGF, SEM_FN_NAME (frvbf,cmovgf) },
28431  { FRVBF_INSN_CMOVFG, SEM_FN_NAME (frvbf,cmovfg) },
28432  { FRVBF_INSN_CMOVGFD, SEM_FN_NAME (frvbf,cmovgfd) },
28433  { FRVBF_INSN_CMOVFGD, SEM_FN_NAME (frvbf,cmovfgd) },
28434  { FRVBF_INSN_MOVGS, SEM_FN_NAME (frvbf,movgs) },
28435  { FRVBF_INSN_MOVSG, SEM_FN_NAME (frvbf,movsg) },
28436  { FRVBF_INSN_BRA, SEM_FN_NAME (frvbf,bra) },
28437  { FRVBF_INSN_BNO, SEM_FN_NAME (frvbf,bno) },
28438  { FRVBF_INSN_BEQ, SEM_FN_NAME (frvbf,beq) },
28439  { FRVBF_INSN_BNE, SEM_FN_NAME (frvbf,bne) },
28440  { FRVBF_INSN_BLE, SEM_FN_NAME (frvbf,ble) },
28441  { FRVBF_INSN_BGT, SEM_FN_NAME (frvbf,bgt) },
28442  { FRVBF_INSN_BLT, SEM_FN_NAME (frvbf,blt) },
28443  { FRVBF_INSN_BGE, SEM_FN_NAME (frvbf,bge) },
28444  { FRVBF_INSN_BLS, SEM_FN_NAME (frvbf,bls) },
28445  { FRVBF_INSN_BHI, SEM_FN_NAME (frvbf,bhi) },
28446  { FRVBF_INSN_BC, SEM_FN_NAME (frvbf,bc) },
28447  { FRVBF_INSN_BNC, SEM_FN_NAME (frvbf,bnc) },
28448  { FRVBF_INSN_BN, SEM_FN_NAME (frvbf,bn) },
28449  { FRVBF_INSN_BP, SEM_FN_NAME (frvbf,bp) },
28450  { FRVBF_INSN_BV, SEM_FN_NAME (frvbf,bv) },
28451  { FRVBF_INSN_BNV, SEM_FN_NAME (frvbf,bnv) },
28452  { FRVBF_INSN_FBRA, SEM_FN_NAME (frvbf,fbra) },
28453  { FRVBF_INSN_FBNO, SEM_FN_NAME (frvbf,fbno) },
28454  { FRVBF_INSN_FBNE, SEM_FN_NAME (frvbf,fbne) },
28455  { FRVBF_INSN_FBEQ, SEM_FN_NAME (frvbf,fbeq) },
28456  { FRVBF_INSN_FBLG, SEM_FN_NAME (frvbf,fblg) },
28457  { FRVBF_INSN_FBUE, SEM_FN_NAME (frvbf,fbue) },
28458  { FRVBF_INSN_FBUL, SEM_FN_NAME (frvbf,fbul) },
28459  { FRVBF_INSN_FBGE, SEM_FN_NAME (frvbf,fbge) },
28460  { FRVBF_INSN_FBLT, SEM_FN_NAME (frvbf,fblt) },
28461  { FRVBF_INSN_FBUGE, SEM_FN_NAME (frvbf,fbuge) },
28462  { FRVBF_INSN_FBUG, SEM_FN_NAME (frvbf,fbug) },
28463  { FRVBF_INSN_FBLE, SEM_FN_NAME (frvbf,fble) },
28464  { FRVBF_INSN_FBGT, SEM_FN_NAME (frvbf,fbgt) },
28465  { FRVBF_INSN_FBULE, SEM_FN_NAME (frvbf,fbule) },
28466  { FRVBF_INSN_FBU, SEM_FN_NAME (frvbf,fbu) },
28467  { FRVBF_INSN_FBO, SEM_FN_NAME (frvbf,fbo) },
28468  { FRVBF_INSN_BCTRLR, SEM_FN_NAME (frvbf,bctrlr) },
28469  { FRVBF_INSN_BRALR, SEM_FN_NAME (frvbf,bralr) },
28470  { FRVBF_INSN_BNOLR, SEM_FN_NAME (frvbf,bnolr) },
28471  { FRVBF_INSN_BEQLR, SEM_FN_NAME (frvbf,beqlr) },
28472  { FRVBF_INSN_BNELR, SEM_FN_NAME (frvbf,bnelr) },
28473  { FRVBF_INSN_BLELR, SEM_FN_NAME (frvbf,blelr) },
28474  { FRVBF_INSN_BGTLR, SEM_FN_NAME (frvbf,bgtlr) },
28475  { FRVBF_INSN_BLTLR, SEM_FN_NAME (frvbf,bltlr) },
28476  { FRVBF_INSN_BGELR, SEM_FN_NAME (frvbf,bgelr) },
28477  { FRVBF_INSN_BLSLR, SEM_FN_NAME (frvbf,blslr) },
28478  { FRVBF_INSN_BHILR, SEM_FN_NAME (frvbf,bhilr) },
28479  { FRVBF_INSN_BCLR, SEM_FN_NAME (frvbf,bclr) },
28480  { FRVBF_INSN_BNCLR, SEM_FN_NAME (frvbf,bnclr) },
28481  { FRVBF_INSN_BNLR, SEM_FN_NAME (frvbf,bnlr) },
28482  { FRVBF_INSN_BPLR, SEM_FN_NAME (frvbf,bplr) },
28483  { FRVBF_INSN_BVLR, SEM_FN_NAME (frvbf,bvlr) },
28484  { FRVBF_INSN_BNVLR, SEM_FN_NAME (frvbf,bnvlr) },
28485  { FRVBF_INSN_FBRALR, SEM_FN_NAME (frvbf,fbralr) },
28486  { FRVBF_INSN_FBNOLR, SEM_FN_NAME (frvbf,fbnolr) },
28487  { FRVBF_INSN_FBEQLR, SEM_FN_NAME (frvbf,fbeqlr) },
28488  { FRVBF_INSN_FBNELR, SEM_FN_NAME (frvbf,fbnelr) },
28489  { FRVBF_INSN_FBLGLR, SEM_FN_NAME (frvbf,fblglr) },
28490  { FRVBF_INSN_FBUELR, SEM_FN_NAME (frvbf,fbuelr) },
28491  { FRVBF_INSN_FBULLR, SEM_FN_NAME (frvbf,fbullr) },
28492  { FRVBF_INSN_FBGELR, SEM_FN_NAME (frvbf,fbgelr) },
28493  { FRVBF_INSN_FBLTLR, SEM_FN_NAME (frvbf,fbltlr) },
28494  { FRVBF_INSN_FBUGELR, SEM_FN_NAME (frvbf,fbugelr) },
28495  { FRVBF_INSN_FBUGLR, SEM_FN_NAME (frvbf,fbuglr) },
28496  { FRVBF_INSN_FBLELR, SEM_FN_NAME (frvbf,fblelr) },
28497  { FRVBF_INSN_FBGTLR, SEM_FN_NAME (frvbf,fbgtlr) },
28498  { FRVBF_INSN_FBULELR, SEM_FN_NAME (frvbf,fbulelr) },
28499  { FRVBF_INSN_FBULR, SEM_FN_NAME (frvbf,fbulr) },
28500  { FRVBF_INSN_FBOLR, SEM_FN_NAME (frvbf,fbolr) },
28501  { FRVBF_INSN_BCRALR, SEM_FN_NAME (frvbf,bcralr) },
28502  { FRVBF_INSN_BCNOLR, SEM_FN_NAME (frvbf,bcnolr) },
28503  { FRVBF_INSN_BCEQLR, SEM_FN_NAME (frvbf,bceqlr) },
28504  { FRVBF_INSN_BCNELR, SEM_FN_NAME (frvbf,bcnelr) },
28505  { FRVBF_INSN_BCLELR, SEM_FN_NAME (frvbf,bclelr) },
28506  { FRVBF_INSN_BCGTLR, SEM_FN_NAME (frvbf,bcgtlr) },
28507  { FRVBF_INSN_BCLTLR, SEM_FN_NAME (frvbf,bcltlr) },
28508  { FRVBF_INSN_BCGELR, SEM_FN_NAME (frvbf,bcgelr) },
28509  { FRVBF_INSN_BCLSLR, SEM_FN_NAME (frvbf,bclslr) },
28510  { FRVBF_INSN_BCHILR, SEM_FN_NAME (frvbf,bchilr) },
28511  { FRVBF_INSN_BCCLR, SEM_FN_NAME (frvbf,bcclr) },
28512  { FRVBF_INSN_BCNCLR, SEM_FN_NAME (frvbf,bcnclr) },
28513  { FRVBF_INSN_BCNLR, SEM_FN_NAME (frvbf,bcnlr) },
28514  { FRVBF_INSN_BCPLR, SEM_FN_NAME (frvbf,bcplr) },
28515  { FRVBF_INSN_BCVLR, SEM_FN_NAME (frvbf,bcvlr) },
28516  { FRVBF_INSN_BCNVLR, SEM_FN_NAME (frvbf,bcnvlr) },
28517  { FRVBF_INSN_FCBRALR, SEM_FN_NAME (frvbf,fcbralr) },
28518  { FRVBF_INSN_FCBNOLR, SEM_FN_NAME (frvbf,fcbnolr) },
28519  { FRVBF_INSN_FCBEQLR, SEM_FN_NAME (frvbf,fcbeqlr) },
28520  { FRVBF_INSN_FCBNELR, SEM_FN_NAME (frvbf,fcbnelr) },
28521  { FRVBF_INSN_FCBLGLR, SEM_FN_NAME (frvbf,fcblglr) },
28522  { FRVBF_INSN_FCBUELR, SEM_FN_NAME (frvbf,fcbuelr) },
28523  { FRVBF_INSN_FCBULLR, SEM_FN_NAME (frvbf,fcbullr) },
28524  { FRVBF_INSN_FCBGELR, SEM_FN_NAME (frvbf,fcbgelr) },
28525  { FRVBF_INSN_FCBLTLR, SEM_FN_NAME (frvbf,fcbltlr) },
28526  { FRVBF_INSN_FCBUGELR, SEM_FN_NAME (frvbf,fcbugelr) },
28527  { FRVBF_INSN_FCBUGLR, SEM_FN_NAME (frvbf,fcbuglr) },
28528  { FRVBF_INSN_FCBLELR, SEM_FN_NAME (frvbf,fcblelr) },
28529  { FRVBF_INSN_FCBGTLR, SEM_FN_NAME (frvbf,fcbgtlr) },
28530  { FRVBF_INSN_FCBULELR, SEM_FN_NAME (frvbf,fcbulelr) },
28531  { FRVBF_INSN_FCBULR, SEM_FN_NAME (frvbf,fcbulr) },
28532  { FRVBF_INSN_FCBOLR, SEM_FN_NAME (frvbf,fcbolr) },
28533  { FRVBF_INSN_JMPL, SEM_FN_NAME (frvbf,jmpl) },
28534  { FRVBF_INSN_CALLL, SEM_FN_NAME (frvbf,calll) },
28535  { FRVBF_INSN_JMPIL, SEM_FN_NAME (frvbf,jmpil) },
28536  { FRVBF_INSN_CALLIL, SEM_FN_NAME (frvbf,callil) },
28537  { FRVBF_INSN_CALL, SEM_FN_NAME (frvbf,call) },
28538  { FRVBF_INSN_RETT, SEM_FN_NAME (frvbf,rett) },
28539  { FRVBF_INSN_REI, SEM_FN_NAME (frvbf,rei) },
28540  { FRVBF_INSN_TRA, SEM_FN_NAME (frvbf,tra) },
28541  { FRVBF_INSN_TNO, SEM_FN_NAME (frvbf,tno) },
28542  { FRVBF_INSN_TEQ, SEM_FN_NAME (frvbf,teq) },
28543  { FRVBF_INSN_TNE, SEM_FN_NAME (frvbf,tne) },
28544  { FRVBF_INSN_TLE, SEM_FN_NAME (frvbf,tle) },
28545  { FRVBF_INSN_TGT, SEM_FN_NAME (frvbf,tgt) },
28546  { FRVBF_INSN_TLT, SEM_FN_NAME (frvbf,tlt) },
28547  { FRVBF_INSN_TGE, SEM_FN_NAME (frvbf,tge) },
28548  { FRVBF_INSN_TLS, SEM_FN_NAME (frvbf,tls) },
28549  { FRVBF_INSN_THI, SEM_FN_NAME (frvbf,thi) },
28550  { FRVBF_INSN_TC, SEM_FN_NAME (frvbf,tc) },
28551  { FRVBF_INSN_TNC, SEM_FN_NAME (frvbf,tnc) },
28552  { FRVBF_INSN_TN, SEM_FN_NAME (frvbf,tn) },
28553  { FRVBF_INSN_TP, SEM_FN_NAME (frvbf,tp) },
28554  { FRVBF_INSN_TV, SEM_FN_NAME (frvbf,tv) },
28555  { FRVBF_INSN_TNV, SEM_FN_NAME (frvbf,tnv) },
28556  { FRVBF_INSN_FTRA, SEM_FN_NAME (frvbf,ftra) },
28557  { FRVBF_INSN_FTNO, SEM_FN_NAME (frvbf,ftno) },
28558  { FRVBF_INSN_FTNE, SEM_FN_NAME (frvbf,ftne) },
28559  { FRVBF_INSN_FTEQ, SEM_FN_NAME (frvbf,fteq) },
28560  { FRVBF_INSN_FTLG, SEM_FN_NAME (frvbf,ftlg) },
28561  { FRVBF_INSN_FTUE, SEM_FN_NAME (frvbf,ftue) },
28562  { FRVBF_INSN_FTUL, SEM_FN_NAME (frvbf,ftul) },
28563  { FRVBF_INSN_FTGE, SEM_FN_NAME (frvbf,ftge) },
28564  { FRVBF_INSN_FTLT, SEM_FN_NAME (frvbf,ftlt) },
28565  { FRVBF_INSN_FTUGE, SEM_FN_NAME (frvbf,ftuge) },
28566  { FRVBF_INSN_FTUG, SEM_FN_NAME (frvbf,ftug) },
28567  { FRVBF_INSN_FTLE, SEM_FN_NAME (frvbf,ftle) },
28568  { FRVBF_INSN_FTGT, SEM_FN_NAME (frvbf,ftgt) },
28569  { FRVBF_INSN_FTULE, SEM_FN_NAME (frvbf,ftule) },
28570  { FRVBF_INSN_FTU, SEM_FN_NAME (frvbf,ftu) },
28571  { FRVBF_INSN_FTO, SEM_FN_NAME (frvbf,fto) },
28572  { FRVBF_INSN_TIRA, SEM_FN_NAME (frvbf,tira) },
28573  { FRVBF_INSN_TINO, SEM_FN_NAME (frvbf,tino) },
28574  { FRVBF_INSN_TIEQ, SEM_FN_NAME (frvbf,tieq) },
28575  { FRVBF_INSN_TINE, SEM_FN_NAME (frvbf,tine) },
28576  { FRVBF_INSN_TILE, SEM_FN_NAME (frvbf,tile) },
28577  { FRVBF_INSN_TIGT, SEM_FN_NAME (frvbf,tigt) },
28578  { FRVBF_INSN_TILT, SEM_FN_NAME (frvbf,tilt) },
28579  { FRVBF_INSN_TIGE, SEM_FN_NAME (frvbf,tige) },
28580  { FRVBF_INSN_TILS, SEM_FN_NAME (frvbf,tils) },
28581  { FRVBF_INSN_TIHI, SEM_FN_NAME (frvbf,tihi) },
28582  { FRVBF_INSN_TIC, SEM_FN_NAME (frvbf,tic) },
28583  { FRVBF_INSN_TINC, SEM_FN_NAME (frvbf,tinc) },
28584  { FRVBF_INSN_TIN, SEM_FN_NAME (frvbf,tin) },
28585  { FRVBF_INSN_TIP, SEM_FN_NAME (frvbf,tip) },
28586  { FRVBF_INSN_TIV, SEM_FN_NAME (frvbf,tiv) },
28587  { FRVBF_INSN_TINV, SEM_FN_NAME (frvbf,tinv) },
28588  { FRVBF_INSN_FTIRA, SEM_FN_NAME (frvbf,ftira) },
28589  { FRVBF_INSN_FTINO, SEM_FN_NAME (frvbf,ftino) },
28590  { FRVBF_INSN_FTINE, SEM_FN_NAME (frvbf,ftine) },
28591  { FRVBF_INSN_FTIEQ, SEM_FN_NAME (frvbf,ftieq) },
28592  { FRVBF_INSN_FTILG, SEM_FN_NAME (frvbf,ftilg) },
28593  { FRVBF_INSN_FTIUE, SEM_FN_NAME (frvbf,ftiue) },
28594  { FRVBF_INSN_FTIUL, SEM_FN_NAME (frvbf,ftiul) },
28595  { FRVBF_INSN_FTIGE, SEM_FN_NAME (frvbf,ftige) },
28596  { FRVBF_INSN_FTILT, SEM_FN_NAME (frvbf,ftilt) },
28597  { FRVBF_INSN_FTIUGE, SEM_FN_NAME (frvbf,ftiuge) },
28598  { FRVBF_INSN_FTIUG, SEM_FN_NAME (frvbf,ftiug) },
28599  { FRVBF_INSN_FTILE, SEM_FN_NAME (frvbf,ftile) },
28600  { FRVBF_INSN_FTIGT, SEM_FN_NAME (frvbf,ftigt) },
28601  { FRVBF_INSN_FTIULE, SEM_FN_NAME (frvbf,ftiule) },
28602  { FRVBF_INSN_FTIU, SEM_FN_NAME (frvbf,ftiu) },
28603  { FRVBF_INSN_FTIO, SEM_FN_NAME (frvbf,ftio) },
28604  { FRVBF_INSN_BREAK, SEM_FN_NAME (frvbf,break) },
28605  { FRVBF_INSN_MTRAP, SEM_FN_NAME (frvbf,mtrap) },
28606  { FRVBF_INSN_ANDCR, SEM_FN_NAME (frvbf,andcr) },
28607  { FRVBF_INSN_ORCR, SEM_FN_NAME (frvbf,orcr) },
28608  { FRVBF_INSN_XORCR, SEM_FN_NAME (frvbf,xorcr) },
28609  { FRVBF_INSN_NANDCR, SEM_FN_NAME (frvbf,nandcr) },
28610  { FRVBF_INSN_NORCR, SEM_FN_NAME (frvbf,norcr) },
28611  { FRVBF_INSN_ANDNCR, SEM_FN_NAME (frvbf,andncr) },
28612  { FRVBF_INSN_ORNCR, SEM_FN_NAME (frvbf,orncr) },
28613  { FRVBF_INSN_NANDNCR, SEM_FN_NAME (frvbf,nandncr) },
28614  { FRVBF_INSN_NORNCR, SEM_FN_NAME (frvbf,norncr) },
28615  { FRVBF_INSN_NOTCR, SEM_FN_NAME (frvbf,notcr) },
28616  { FRVBF_INSN_CKRA, SEM_FN_NAME (frvbf,ckra) },
28617  { FRVBF_INSN_CKNO, SEM_FN_NAME (frvbf,ckno) },
28618  { FRVBF_INSN_CKEQ, SEM_FN_NAME (frvbf,ckeq) },
28619  { FRVBF_INSN_CKNE, SEM_FN_NAME (frvbf,ckne) },
28620  { FRVBF_INSN_CKLE, SEM_FN_NAME (frvbf,ckle) },
28621  { FRVBF_INSN_CKGT, SEM_FN_NAME (frvbf,ckgt) },
28622  { FRVBF_INSN_CKLT, SEM_FN_NAME (frvbf,cklt) },
28623  { FRVBF_INSN_CKGE, SEM_FN_NAME (frvbf,ckge) },
28624  { FRVBF_INSN_CKLS, SEM_FN_NAME (frvbf,ckls) },
28625  { FRVBF_INSN_CKHI, SEM_FN_NAME (frvbf,ckhi) },
28626  { FRVBF_INSN_CKC, SEM_FN_NAME (frvbf,ckc) },
28627  { FRVBF_INSN_CKNC, SEM_FN_NAME (frvbf,cknc) },
28628  { FRVBF_INSN_CKN, SEM_FN_NAME (frvbf,ckn) },
28629  { FRVBF_INSN_CKP, SEM_FN_NAME (frvbf,ckp) },
28630  { FRVBF_INSN_CKV, SEM_FN_NAME (frvbf,ckv) },
28631  { FRVBF_INSN_CKNV, SEM_FN_NAME (frvbf,cknv) },
28632  { FRVBF_INSN_FCKRA, SEM_FN_NAME (frvbf,fckra) },
28633  { FRVBF_INSN_FCKNO, SEM_FN_NAME (frvbf,fckno) },
28634  { FRVBF_INSN_FCKNE, SEM_FN_NAME (frvbf,fckne) },
28635  { FRVBF_INSN_FCKEQ, SEM_FN_NAME (frvbf,fckeq) },
28636  { FRVBF_INSN_FCKLG, SEM_FN_NAME (frvbf,fcklg) },
28637  { FRVBF_INSN_FCKUE, SEM_FN_NAME (frvbf,fckue) },
28638  { FRVBF_INSN_FCKUL, SEM_FN_NAME (frvbf,fckul) },
28639  { FRVBF_INSN_FCKGE, SEM_FN_NAME (frvbf,fckge) },
28640  { FRVBF_INSN_FCKLT, SEM_FN_NAME (frvbf,fcklt) },
28641  { FRVBF_INSN_FCKUGE, SEM_FN_NAME (frvbf,fckuge) },
28642  { FRVBF_INSN_FCKUG, SEM_FN_NAME (frvbf,fckug) },
28643  { FRVBF_INSN_FCKLE, SEM_FN_NAME (frvbf,fckle) },
28644  { FRVBF_INSN_FCKGT, SEM_FN_NAME (frvbf,fckgt) },
28645  { FRVBF_INSN_FCKULE, SEM_FN_NAME (frvbf,fckule) },
28646  { FRVBF_INSN_FCKU, SEM_FN_NAME (frvbf,fcku) },
28647  { FRVBF_INSN_FCKO, SEM_FN_NAME (frvbf,fcko) },
28648  { FRVBF_INSN_CCKRA, SEM_FN_NAME (frvbf,cckra) },
28649  { FRVBF_INSN_CCKNO, SEM_FN_NAME (frvbf,cckno) },
28650  { FRVBF_INSN_CCKEQ, SEM_FN_NAME (frvbf,cckeq) },
28651  { FRVBF_INSN_CCKNE, SEM_FN_NAME (frvbf,cckne) },
28652  { FRVBF_INSN_CCKLE, SEM_FN_NAME (frvbf,cckle) },
28653  { FRVBF_INSN_CCKGT, SEM_FN_NAME (frvbf,cckgt) },
28654  { FRVBF_INSN_CCKLT, SEM_FN_NAME (frvbf,ccklt) },
28655  { FRVBF_INSN_CCKGE, SEM_FN_NAME (frvbf,cckge) },
28656  { FRVBF_INSN_CCKLS, SEM_FN_NAME (frvbf,cckls) },
28657  { FRVBF_INSN_CCKHI, SEM_FN_NAME (frvbf,cckhi) },
28658  { FRVBF_INSN_CCKC, SEM_FN_NAME (frvbf,cckc) },
28659  { FRVBF_INSN_CCKNC, SEM_FN_NAME (frvbf,ccknc) },
28660  { FRVBF_INSN_CCKN, SEM_FN_NAME (frvbf,cckn) },
28661  { FRVBF_INSN_CCKP, SEM_FN_NAME (frvbf,cckp) },
28662  { FRVBF_INSN_CCKV, SEM_FN_NAME (frvbf,cckv) },
28663  { FRVBF_INSN_CCKNV, SEM_FN_NAME (frvbf,ccknv) },
28664  { FRVBF_INSN_CFCKRA, SEM_FN_NAME (frvbf,cfckra) },
28665  { FRVBF_INSN_CFCKNO, SEM_FN_NAME (frvbf,cfckno) },
28666  { FRVBF_INSN_CFCKNE, SEM_FN_NAME (frvbf,cfckne) },
28667  { FRVBF_INSN_CFCKEQ, SEM_FN_NAME (frvbf,cfckeq) },
28668  { FRVBF_INSN_CFCKLG, SEM_FN_NAME (frvbf,cfcklg) },
28669  { FRVBF_INSN_CFCKUE, SEM_FN_NAME (frvbf,cfckue) },
28670  { FRVBF_INSN_CFCKUL, SEM_FN_NAME (frvbf,cfckul) },
28671  { FRVBF_INSN_CFCKGE, SEM_FN_NAME (frvbf,cfckge) },
28672  { FRVBF_INSN_CFCKLT, SEM_FN_NAME (frvbf,cfcklt) },
28673  { FRVBF_INSN_CFCKUGE, SEM_FN_NAME (frvbf,cfckuge) },
28674  { FRVBF_INSN_CFCKUG, SEM_FN_NAME (frvbf,cfckug) },
28675  { FRVBF_INSN_CFCKLE, SEM_FN_NAME (frvbf,cfckle) },
28676  { FRVBF_INSN_CFCKGT, SEM_FN_NAME (frvbf,cfckgt) },
28677  { FRVBF_INSN_CFCKULE, SEM_FN_NAME (frvbf,cfckule) },
28678  { FRVBF_INSN_CFCKU, SEM_FN_NAME (frvbf,cfcku) },
28679  { FRVBF_INSN_CFCKO, SEM_FN_NAME (frvbf,cfcko) },
28680  { FRVBF_INSN_CJMPL, SEM_FN_NAME (frvbf,cjmpl) },
28681  { FRVBF_INSN_CCALLL, SEM_FN_NAME (frvbf,ccalll) },
28682  { FRVBF_INSN_ICI, SEM_FN_NAME (frvbf,ici) },
28683  { FRVBF_INSN_DCI, SEM_FN_NAME (frvbf,dci) },
28684  { FRVBF_INSN_ICEI, SEM_FN_NAME (frvbf,icei) },
28685  { FRVBF_INSN_DCEI, SEM_FN_NAME (frvbf,dcei) },
28686  { FRVBF_INSN_DCF, SEM_FN_NAME (frvbf,dcf) },
28687  { FRVBF_INSN_DCEF, SEM_FN_NAME (frvbf,dcef) },
28688  { FRVBF_INSN_WITLB, SEM_FN_NAME (frvbf,witlb) },
28689  { FRVBF_INSN_WDTLB, SEM_FN_NAME (frvbf,wdtlb) },
28690  { FRVBF_INSN_ITLBI, SEM_FN_NAME (frvbf,itlbi) },
28691  { FRVBF_INSN_DTLBI, SEM_FN_NAME (frvbf,dtlbi) },
28692  { FRVBF_INSN_ICPL, SEM_FN_NAME (frvbf,icpl) },
28693  { FRVBF_INSN_DCPL, SEM_FN_NAME (frvbf,dcpl) },
28694  { FRVBF_INSN_ICUL, SEM_FN_NAME (frvbf,icul) },
28695  { FRVBF_INSN_DCUL, SEM_FN_NAME (frvbf,dcul) },
28696  { FRVBF_INSN_BAR, SEM_FN_NAME (frvbf,bar) },
28697  { FRVBF_INSN_MEMBAR, SEM_FN_NAME (frvbf,membar) },
28698  { FRVBF_INSN_LRAI, SEM_FN_NAME (frvbf,lrai) },
28699  { FRVBF_INSN_LRAD, SEM_FN_NAME (frvbf,lrad) },
28700  { FRVBF_INSN_TLBPR, SEM_FN_NAME (frvbf,tlbpr) },
28701  { FRVBF_INSN_COP1, SEM_FN_NAME (frvbf,cop1) },
28702  { FRVBF_INSN_COP2, SEM_FN_NAME (frvbf,cop2) },
28703  { FRVBF_INSN_CLRGR, SEM_FN_NAME (frvbf,clrgr) },
28704  { FRVBF_INSN_CLRFR, SEM_FN_NAME (frvbf,clrfr) },
28705  { FRVBF_INSN_CLRGA, SEM_FN_NAME (frvbf,clrga) },
28706  { FRVBF_INSN_CLRFA, SEM_FN_NAME (frvbf,clrfa) },
28707  { FRVBF_INSN_COMMITGR, SEM_FN_NAME (frvbf,commitgr) },
28708  { FRVBF_INSN_COMMITFR, SEM_FN_NAME (frvbf,commitfr) },
28709  { FRVBF_INSN_COMMITGA, SEM_FN_NAME (frvbf,commitga) },
28710  { FRVBF_INSN_COMMITFA, SEM_FN_NAME (frvbf,commitfa) },
28711  { FRVBF_INSN_FITOS, SEM_FN_NAME (frvbf,fitos) },
28712  { FRVBF_INSN_FSTOI, SEM_FN_NAME (frvbf,fstoi) },
28713  { FRVBF_INSN_FITOD, SEM_FN_NAME (frvbf,fitod) },
28714  { FRVBF_INSN_FDTOI, SEM_FN_NAME (frvbf,fdtoi) },
28715  { FRVBF_INSN_FDITOS, SEM_FN_NAME (frvbf,fditos) },
28716  { FRVBF_INSN_FDSTOI, SEM_FN_NAME (frvbf,fdstoi) },
28717  { FRVBF_INSN_NFDITOS, SEM_FN_NAME (frvbf,nfditos) },
28718  { FRVBF_INSN_NFDSTOI, SEM_FN_NAME (frvbf,nfdstoi) },
28719  { FRVBF_INSN_CFITOS, SEM_FN_NAME (frvbf,cfitos) },
28720  { FRVBF_INSN_CFSTOI, SEM_FN_NAME (frvbf,cfstoi) },
28721  { FRVBF_INSN_NFITOS, SEM_FN_NAME (frvbf,nfitos) },
28722  { FRVBF_INSN_NFSTOI, SEM_FN_NAME (frvbf,nfstoi) },
28723  { FRVBF_INSN_FMOVS, SEM_FN_NAME (frvbf,fmovs) },
28724  { FRVBF_INSN_FMOVD, SEM_FN_NAME (frvbf,fmovd) },
28725  { FRVBF_INSN_FDMOVS, SEM_FN_NAME (frvbf,fdmovs) },
28726  { FRVBF_INSN_CFMOVS, SEM_FN_NAME (frvbf,cfmovs) },
28727  { FRVBF_INSN_FNEGS, SEM_FN_NAME (frvbf,fnegs) },
28728  { FRVBF_INSN_FNEGD, SEM_FN_NAME (frvbf,fnegd) },
28729  { FRVBF_INSN_FDNEGS, SEM_FN_NAME (frvbf,fdnegs) },
28730  { FRVBF_INSN_CFNEGS, SEM_FN_NAME (frvbf,cfnegs) },
28731  { FRVBF_INSN_FABSS, SEM_FN_NAME (frvbf,fabss) },
28732  { FRVBF_INSN_FABSD, SEM_FN_NAME (frvbf,fabsd) },
28733  { FRVBF_INSN_FDABSS, SEM_FN_NAME (frvbf,fdabss) },
28734  { FRVBF_INSN_CFABSS, SEM_FN_NAME (frvbf,cfabss) },
28735  { FRVBF_INSN_FSQRTS, SEM_FN_NAME (frvbf,fsqrts) },
28736  { FRVBF_INSN_FDSQRTS, SEM_FN_NAME (frvbf,fdsqrts) },
28737  { FRVBF_INSN_NFDSQRTS, SEM_FN_NAME (frvbf,nfdsqrts) },
28738  { FRVBF_INSN_FSQRTD, SEM_FN_NAME (frvbf,fsqrtd) },
28739  { FRVBF_INSN_CFSQRTS, SEM_FN_NAME (frvbf,cfsqrts) },
28740  { FRVBF_INSN_NFSQRTS, SEM_FN_NAME (frvbf,nfsqrts) },
28741  { FRVBF_INSN_FADDS, SEM_FN_NAME (frvbf,fadds) },
28742  { FRVBF_INSN_FSUBS, SEM_FN_NAME (frvbf,fsubs) },
28743  { FRVBF_INSN_FMULS, SEM_FN_NAME (frvbf,fmuls) },
28744  { FRVBF_INSN_FDIVS, SEM_FN_NAME (frvbf,fdivs) },
28745  { FRVBF_INSN_FADDD, SEM_FN_NAME (frvbf,faddd) },
28746  { FRVBF_INSN_FSUBD, SEM_FN_NAME (frvbf,fsubd) },
28747  { FRVBF_INSN_FMULD, SEM_FN_NAME (frvbf,fmuld) },
28748  { FRVBF_INSN_FDIVD, SEM_FN_NAME (frvbf,fdivd) },
28749  { FRVBF_INSN_CFADDS, SEM_FN_NAME (frvbf,cfadds) },
28750  { FRVBF_INSN_CFSUBS, SEM_FN_NAME (frvbf,cfsubs) },
28751  { FRVBF_INSN_CFMULS, SEM_FN_NAME (frvbf,cfmuls) },
28752  { FRVBF_INSN_CFDIVS, SEM_FN_NAME (frvbf,cfdivs) },
28753  { FRVBF_INSN_NFADDS, SEM_FN_NAME (frvbf,nfadds) },
28754  { FRVBF_INSN_NFSUBS, SEM_FN_NAME (frvbf,nfsubs) },
28755  { FRVBF_INSN_NFMULS, SEM_FN_NAME (frvbf,nfmuls) },
28756  { FRVBF_INSN_NFDIVS, SEM_FN_NAME (frvbf,nfdivs) },
28757  { FRVBF_INSN_FCMPS, SEM_FN_NAME (frvbf,fcmps) },
28758  { FRVBF_INSN_FCMPD, SEM_FN_NAME (frvbf,fcmpd) },
28759  { FRVBF_INSN_CFCMPS, SEM_FN_NAME (frvbf,cfcmps) },
28760  { FRVBF_INSN_FDCMPS, SEM_FN_NAME (frvbf,fdcmps) },
28761  { FRVBF_INSN_FMADDS, SEM_FN_NAME (frvbf,fmadds) },
28762  { FRVBF_INSN_FMSUBS, SEM_FN_NAME (frvbf,fmsubs) },
28763  { FRVBF_INSN_FMADDD, SEM_FN_NAME (frvbf,fmaddd) },
28764  { FRVBF_INSN_FMSUBD, SEM_FN_NAME (frvbf,fmsubd) },
28765  { FRVBF_INSN_FDMADDS, SEM_FN_NAME (frvbf,fdmadds) },
28766  { FRVBF_INSN_NFDMADDS, SEM_FN_NAME (frvbf,nfdmadds) },
28767  { FRVBF_INSN_CFMADDS, SEM_FN_NAME (frvbf,cfmadds) },
28768  { FRVBF_INSN_CFMSUBS, SEM_FN_NAME (frvbf,cfmsubs) },
28769  { FRVBF_INSN_NFMADDS, SEM_FN_NAME (frvbf,nfmadds) },
28770  { FRVBF_INSN_NFMSUBS, SEM_FN_NAME (frvbf,nfmsubs) },
28771  { FRVBF_INSN_FMAS, SEM_FN_NAME (frvbf,fmas) },
28772  { FRVBF_INSN_FMSS, SEM_FN_NAME (frvbf,fmss) },
28773  { FRVBF_INSN_FDMAS, SEM_FN_NAME (frvbf,fdmas) },
28774  { FRVBF_INSN_FDMSS, SEM_FN_NAME (frvbf,fdmss) },
28775  { FRVBF_INSN_NFDMAS, SEM_FN_NAME (frvbf,nfdmas) },
28776  { FRVBF_INSN_NFDMSS, SEM_FN_NAME (frvbf,nfdmss) },
28777  { FRVBF_INSN_CFMAS, SEM_FN_NAME (frvbf,cfmas) },
28778  { FRVBF_INSN_CFMSS, SEM_FN_NAME (frvbf,cfmss) },
28779  { FRVBF_INSN_FMAD, SEM_FN_NAME (frvbf,fmad) },
28780  { FRVBF_INSN_FMSD, SEM_FN_NAME (frvbf,fmsd) },
28781  { FRVBF_INSN_NFMAS, SEM_FN_NAME (frvbf,nfmas) },
28782  { FRVBF_INSN_NFMSS, SEM_FN_NAME (frvbf,nfmss) },
28783  { FRVBF_INSN_FDADDS, SEM_FN_NAME (frvbf,fdadds) },
28784  { FRVBF_INSN_FDSUBS, SEM_FN_NAME (frvbf,fdsubs) },
28785  { FRVBF_INSN_FDMULS, SEM_FN_NAME (frvbf,fdmuls) },
28786  { FRVBF_INSN_FDDIVS, SEM_FN_NAME (frvbf,fddivs) },
28787  { FRVBF_INSN_FDSADS, SEM_FN_NAME (frvbf,fdsads) },
28788  { FRVBF_INSN_FDMULCS, SEM_FN_NAME (frvbf,fdmulcs) },
28789  { FRVBF_INSN_NFDMULCS, SEM_FN_NAME (frvbf,nfdmulcs) },
28790  { FRVBF_INSN_NFDADDS, SEM_FN_NAME (frvbf,nfdadds) },
28791  { FRVBF_INSN_NFDSUBS, SEM_FN_NAME (frvbf,nfdsubs) },
28792  { FRVBF_INSN_NFDMULS, SEM_FN_NAME (frvbf,nfdmuls) },
28793  { FRVBF_INSN_NFDDIVS, SEM_FN_NAME (frvbf,nfddivs) },
28794  { FRVBF_INSN_NFDSADS, SEM_FN_NAME (frvbf,nfdsads) },
28795  { FRVBF_INSN_NFDCMPS, SEM_FN_NAME (frvbf,nfdcmps) },
28796  { FRVBF_INSN_MHSETLOS, SEM_FN_NAME (frvbf,mhsetlos) },
28797  { FRVBF_INSN_MHSETHIS, SEM_FN_NAME (frvbf,mhsethis) },
28798  { FRVBF_INSN_MHDSETS, SEM_FN_NAME (frvbf,mhdsets) },
28799  { FRVBF_INSN_MHSETLOH, SEM_FN_NAME (frvbf,mhsetloh) },
28800  { FRVBF_INSN_MHSETHIH, SEM_FN_NAME (frvbf,mhsethih) },
28801  { FRVBF_INSN_MHDSETH, SEM_FN_NAME (frvbf,mhdseth) },
28802  { FRVBF_INSN_MAND, SEM_FN_NAME (frvbf,mand) },
28803  { FRVBF_INSN_MOR, SEM_FN_NAME (frvbf,mor) },
28804  { FRVBF_INSN_MXOR, SEM_FN_NAME (frvbf,mxor) },
28805  { FRVBF_INSN_CMAND, SEM_FN_NAME (frvbf,cmand) },
28806  { FRVBF_INSN_CMOR, SEM_FN_NAME (frvbf,cmor) },
28807  { FRVBF_INSN_CMXOR, SEM_FN_NAME (frvbf,cmxor) },
28808  { FRVBF_INSN_MNOT, SEM_FN_NAME (frvbf,mnot) },
28809  { FRVBF_INSN_CMNOT, SEM_FN_NAME (frvbf,cmnot) },
28810  { FRVBF_INSN_MROTLI, SEM_FN_NAME (frvbf,mrotli) },
28811  { FRVBF_INSN_MROTRI, SEM_FN_NAME (frvbf,mrotri) },
28812  { FRVBF_INSN_MWCUT, SEM_FN_NAME (frvbf,mwcut) },
28813  { FRVBF_INSN_MWCUTI, SEM_FN_NAME (frvbf,mwcuti) },
28814  { FRVBF_INSN_MCUT, SEM_FN_NAME (frvbf,mcut) },
28815  { FRVBF_INSN_MCUTI, SEM_FN_NAME (frvbf,mcuti) },
28816  { FRVBF_INSN_MCUTSS, SEM_FN_NAME (frvbf,mcutss) },
28817  { FRVBF_INSN_MCUTSSI, SEM_FN_NAME (frvbf,mcutssi) },
28818  { FRVBF_INSN_MDCUTSSI, SEM_FN_NAME (frvbf,mdcutssi) },
28819  { FRVBF_INSN_MAVEH, SEM_FN_NAME (frvbf,maveh) },
28820  { FRVBF_INSN_MSLLHI, SEM_FN_NAME (frvbf,msllhi) },
28821  { FRVBF_INSN_MSRLHI, SEM_FN_NAME (frvbf,msrlhi) },
28822  { FRVBF_INSN_MSRAHI, SEM_FN_NAME (frvbf,msrahi) },
28823  { FRVBF_INSN_MDROTLI, SEM_FN_NAME (frvbf,mdrotli) },
28824  { FRVBF_INSN_MCPLHI, SEM_FN_NAME (frvbf,mcplhi) },
28825  { FRVBF_INSN_MCPLI, SEM_FN_NAME (frvbf,mcpli) },
28826  { FRVBF_INSN_MSATHS, SEM_FN_NAME (frvbf,msaths) },
28827  { FRVBF_INSN_MQSATHS, SEM_FN_NAME (frvbf,mqsaths) },
28828  { FRVBF_INSN_MSATHU, SEM_FN_NAME (frvbf,msathu) },
28829  { FRVBF_INSN_MCMPSH, SEM_FN_NAME (frvbf,mcmpsh) },
28830  { FRVBF_INSN_MCMPUH, SEM_FN_NAME (frvbf,mcmpuh) },
28831  { FRVBF_INSN_MABSHS, SEM_FN_NAME (frvbf,mabshs) },
28832  { FRVBF_INSN_MADDHSS, SEM_FN_NAME (frvbf,maddhss) },
28833  { FRVBF_INSN_MADDHUS, SEM_FN_NAME (frvbf,maddhus) },
28834  { FRVBF_INSN_MSUBHSS, SEM_FN_NAME (frvbf,msubhss) },
28835  { FRVBF_INSN_MSUBHUS, SEM_FN_NAME (frvbf,msubhus) },
28836  { FRVBF_INSN_CMADDHSS, SEM_FN_NAME (frvbf,cmaddhss) },
28837  { FRVBF_INSN_CMADDHUS, SEM_FN_NAME (frvbf,cmaddhus) },
28838  { FRVBF_INSN_CMSUBHSS, SEM_FN_NAME (frvbf,cmsubhss) },
28839  { FRVBF_INSN_CMSUBHUS, SEM_FN_NAME (frvbf,cmsubhus) },
28840  { FRVBF_INSN_MQADDHSS, SEM_FN_NAME (frvbf,mqaddhss) },
28841  { FRVBF_INSN_MQADDHUS, SEM_FN_NAME (frvbf,mqaddhus) },
28842  { FRVBF_INSN_MQSUBHSS, SEM_FN_NAME (frvbf,mqsubhss) },
28843  { FRVBF_INSN_MQSUBHUS, SEM_FN_NAME (frvbf,mqsubhus) },
28844  { FRVBF_INSN_CMQADDHSS, SEM_FN_NAME (frvbf,cmqaddhss) },
28845  { FRVBF_INSN_CMQADDHUS, SEM_FN_NAME (frvbf,cmqaddhus) },
28846  { FRVBF_INSN_CMQSUBHSS, SEM_FN_NAME (frvbf,cmqsubhss) },
28847  { FRVBF_INSN_CMQSUBHUS, SEM_FN_NAME (frvbf,cmqsubhus) },
28848  { FRVBF_INSN_MQLCLRHS, SEM_FN_NAME (frvbf,mqlclrhs) },
28849  { FRVBF_INSN_MQLMTHS, SEM_FN_NAME (frvbf,mqlmths) },
28850  { FRVBF_INSN_MQSLLHI, SEM_FN_NAME (frvbf,mqsllhi) },
28851  { FRVBF_INSN_MQSRAHI, SEM_FN_NAME (frvbf,mqsrahi) },
28852  { FRVBF_INSN_MADDACCS, SEM_FN_NAME (frvbf,maddaccs) },
28853  { FRVBF_INSN_MSUBACCS, SEM_FN_NAME (frvbf,msubaccs) },
28854  { FRVBF_INSN_MDADDACCS, SEM_FN_NAME (frvbf,mdaddaccs) },
28855  { FRVBF_INSN_MDSUBACCS, SEM_FN_NAME (frvbf,mdsubaccs) },
28856  { FRVBF_INSN_MASACCS, SEM_FN_NAME (frvbf,masaccs) },
28857  { FRVBF_INSN_MDASACCS, SEM_FN_NAME (frvbf,mdasaccs) },
28858  { FRVBF_INSN_MMULHS, SEM_FN_NAME (frvbf,mmulhs) },
28859  { FRVBF_INSN_MMULHU, SEM_FN_NAME (frvbf,mmulhu) },
28860  { FRVBF_INSN_MMULXHS, SEM_FN_NAME (frvbf,mmulxhs) },
28861  { FRVBF_INSN_MMULXHU, SEM_FN_NAME (frvbf,mmulxhu) },
28862  { FRVBF_INSN_CMMULHS, SEM_FN_NAME (frvbf,cmmulhs) },
28863  { FRVBF_INSN_CMMULHU, SEM_FN_NAME (frvbf,cmmulhu) },
28864  { FRVBF_INSN_MQMULHS, SEM_FN_NAME (frvbf,mqmulhs) },
28865  { FRVBF_INSN_MQMULHU, SEM_FN_NAME (frvbf,mqmulhu) },
28866  { FRVBF_INSN_MQMULXHS, SEM_FN_NAME (frvbf,mqmulxhs) },
28867  { FRVBF_INSN_MQMULXHU, SEM_FN_NAME (frvbf,mqmulxhu) },
28868  { FRVBF_INSN_CMQMULHS, SEM_FN_NAME (frvbf,cmqmulhs) },
28869  { FRVBF_INSN_CMQMULHU, SEM_FN_NAME (frvbf,cmqmulhu) },
28870  { FRVBF_INSN_MMACHS, SEM_FN_NAME (frvbf,mmachs) },
28871  { FRVBF_INSN_MMACHU, SEM_FN_NAME (frvbf,mmachu) },
28872  { FRVBF_INSN_MMRDHS, SEM_FN_NAME (frvbf,mmrdhs) },
28873  { FRVBF_INSN_MMRDHU, SEM_FN_NAME (frvbf,mmrdhu) },
28874  { FRVBF_INSN_CMMACHS, SEM_FN_NAME (frvbf,cmmachs) },
28875  { FRVBF_INSN_CMMACHU, SEM_FN_NAME (frvbf,cmmachu) },
28876  { FRVBF_INSN_MQMACHS, SEM_FN_NAME (frvbf,mqmachs) },
28877  { FRVBF_INSN_MQMACHU, SEM_FN_NAME (frvbf,mqmachu) },
28878  { FRVBF_INSN_CMQMACHS, SEM_FN_NAME (frvbf,cmqmachs) },
28879  { FRVBF_INSN_CMQMACHU, SEM_FN_NAME (frvbf,cmqmachu) },
28880  { FRVBF_INSN_MQXMACHS, SEM_FN_NAME (frvbf,mqxmachs) },
28881  { FRVBF_INSN_MQXMACXHS, SEM_FN_NAME (frvbf,mqxmacxhs) },
28882  { FRVBF_INSN_MQMACXHS, SEM_FN_NAME (frvbf,mqmacxhs) },
28883  { FRVBF_INSN_MCPXRS, SEM_FN_NAME (frvbf,mcpxrs) },
28884  { FRVBF_INSN_MCPXRU, SEM_FN_NAME (frvbf,mcpxru) },
28885  { FRVBF_INSN_MCPXIS, SEM_FN_NAME (frvbf,mcpxis) },
28886  { FRVBF_INSN_MCPXIU, SEM_FN_NAME (frvbf,mcpxiu) },
28887  { FRVBF_INSN_CMCPXRS, SEM_FN_NAME (frvbf,cmcpxrs) },
28888  { FRVBF_INSN_CMCPXRU, SEM_FN_NAME (frvbf,cmcpxru) },
28889  { FRVBF_INSN_CMCPXIS, SEM_FN_NAME (frvbf,cmcpxis) },
28890  { FRVBF_INSN_CMCPXIU, SEM_FN_NAME (frvbf,cmcpxiu) },
28891  { FRVBF_INSN_MQCPXRS, SEM_FN_NAME (frvbf,mqcpxrs) },
28892  { FRVBF_INSN_MQCPXRU, SEM_FN_NAME (frvbf,mqcpxru) },
28893  { FRVBF_INSN_MQCPXIS, SEM_FN_NAME (frvbf,mqcpxis) },
28894  { FRVBF_INSN_MQCPXIU, SEM_FN_NAME (frvbf,mqcpxiu) },
28895  { FRVBF_INSN_MEXPDHW, SEM_FN_NAME (frvbf,mexpdhw) },
28896  { FRVBF_INSN_CMEXPDHW, SEM_FN_NAME (frvbf,cmexpdhw) },
28897  { FRVBF_INSN_MEXPDHD, SEM_FN_NAME (frvbf,mexpdhd) },
28898  { FRVBF_INSN_CMEXPDHD, SEM_FN_NAME (frvbf,cmexpdhd) },
28899  { FRVBF_INSN_MPACKH, SEM_FN_NAME (frvbf,mpackh) },
28900  { FRVBF_INSN_MDPACKH, SEM_FN_NAME (frvbf,mdpackh) },
28901  { FRVBF_INSN_MUNPACKH, SEM_FN_NAME (frvbf,munpackh) },
28902  { FRVBF_INSN_MDUNPACKH, SEM_FN_NAME (frvbf,mdunpackh) },
28903  { FRVBF_INSN_MBTOH, SEM_FN_NAME (frvbf,mbtoh) },
28904  { FRVBF_INSN_CMBTOH, SEM_FN_NAME (frvbf,cmbtoh) },
28905  { FRVBF_INSN_MHTOB, SEM_FN_NAME (frvbf,mhtob) },
28906  { FRVBF_INSN_CMHTOB, SEM_FN_NAME (frvbf,cmhtob) },
28907  { FRVBF_INSN_MBTOHE, SEM_FN_NAME (frvbf,mbtohe) },
28908  { FRVBF_INSN_CMBTOHE, SEM_FN_NAME (frvbf,cmbtohe) },
28909  { FRVBF_INSN_MNOP, SEM_FN_NAME (frvbf,mnop) },
28910  { FRVBF_INSN_MCLRACC_0, SEM_FN_NAME (frvbf,mclracc_0) },
28911  { FRVBF_INSN_MCLRACC_1, SEM_FN_NAME (frvbf,mclracc_1) },
28912  { FRVBF_INSN_MRDACC, SEM_FN_NAME (frvbf,mrdacc) },
28913  { FRVBF_INSN_MRDACCG, SEM_FN_NAME (frvbf,mrdaccg) },
28914  { FRVBF_INSN_MWTACC, SEM_FN_NAME (frvbf,mwtacc) },
28915  { FRVBF_INSN_MWTACCG, SEM_FN_NAME (frvbf,mwtaccg) },
28916  { FRVBF_INSN_MCOP1, SEM_FN_NAME (frvbf,mcop1) },
28917  { FRVBF_INSN_MCOP2, SEM_FN_NAME (frvbf,mcop2) },
28918  { FRVBF_INSN_FNOP, SEM_FN_NAME (frvbf,fnop) },
28919  { 0, 0 }
28920};
28921
28922/* Add the semantic fns to IDESC_TABLE.  */
28923
28924void
28925SEM_FN_NAME (frvbf,init_idesc_table) (SIM_CPU *current_cpu)
28926{
28927  IDESC *idesc_table = CPU_IDESC (current_cpu);
28928  const struct sem_fn_desc *sf;
28929  int mach_num = MACH_NUM (CPU_MACH (current_cpu));
28930
28931  for (sf = &sem_fns[0]; sf->fn != 0; ++sf)
28932    {
28933      const CGEN_INSN *insn = idesc_table[sf->index].idata;
28934      int valid_p = (CGEN_INSN_VIRTUAL_P (insn)
28935		     || CGEN_INSN_MACH_HAS_P (insn, mach_num));
28936#if FAST_P
28937      if (valid_p)
28938	idesc_table[sf->index].sem_fast = sf->fn;
28939      else
28940	idesc_table[sf->index].sem_fast = SEM_FN_NAME (frvbf,x_invalid);
28941#else
28942      if (valid_p)
28943	idesc_table[sf->index].sem_full = sf->fn;
28944      else
28945	idesc_table[sf->index].sem_full = SEM_FN_NAME (frvbf,x_invalid);
28946#endif
28947    }
28948}
28949
28950