Regenerate cgen-derived files.
[platform/upstream/binutils.git] / sim / frv / sem.c
1 /* Simulator instruction semantics for frvbf.
2
3 THIS FILE IS MACHINE GENERATED WITH CGEN.
4
5 Copyright 1996-2010 Free Software Foundation, Inc.
6
7 This file is part of the GNU simulators.
8
9    This file is free software; you can redistribute it and/or modify
10    it under the terms of the GNU General Public License as published by
11    the Free Software Foundation; either version 3, or (at your option)
12    any later version.
13
14    It is distributed in the hope that it will be useful, but WITHOUT
15    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
16    or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
17    License for more details.
18
19    You should have received a copy of the GNU General Public License along
20    with this program; if not, write to the Free Software Foundation, Inc.,
21    51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
22
23 */
24
25 #define WANT_CPU frvbf
26 #define WANT_CPU_FRVBF
27
28 #include "sim-main.h"
29 #include "cgen-mem.h"
30 #include "cgen-ops.h"
31
32 #undef GET_ATTR
33 #define GET_ATTR(cpu, num, attr) CGEN_ATTR_VALUE (NULL, abuf->idesc->attrs, CGEN_INSN_##attr)
34
35 /* This is used so that we can compile two copies of the semantic code,
36    one with full feature support and one without that runs fast(er).
37    FAST_P, when desired, is defined on the command line, -DFAST_P=1.  */
38 #if FAST_P
39 #define SEM_FN_NAME(cpu,fn) XCONCAT3 (cpu,_semf_,fn)
40 #undef TRACE_RESULT
41 #define TRACE_RESULT(cpu, abuf, name, type, val)
42 #else
43 #define SEM_FN_NAME(cpu,fn) XCONCAT3 (cpu,_sem_,fn)
44 #endif
45
46 /* x-invalid: --invalid-- */
47
48 static SEM_PC
49 SEM_FN_NAME (frvbf,x_invalid) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
50 {
51 #define FLD(f) abuf->fields.sfmt_empty.f
52   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
53   int UNUSED written = 0;
54   IADDR UNUSED pc = abuf->addr;
55   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 0);
56
57   {
58     /* Update the recorded pc in the cpu state struct.
59        Only necessary for WITH_SCACHE case, but to avoid the
60        conditional compilation ....  */
61     SET_H_PC (pc);
62     /* Virtual insns have zero size.  Overwrite vpc with address of next insn
63        using the default-insn-bitsize spec.  When executing insns in parallel
64        we may want to queue the fault and continue execution.  */
65     vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
66     vpc = sim_engine_invalid_insn (current_cpu, pc, vpc);
67   }
68
69   return vpc;
70 #undef FLD
71 }
72
73 /* x-after: --after-- */
74
75 static SEM_PC
76 SEM_FN_NAME (frvbf,x_after) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
77 {
78 #define FLD(f) abuf->fields.sfmt_empty.f
79   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
80   int UNUSED written = 0;
81   IADDR UNUSED pc = abuf->addr;
82   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 0);
83
84   {
85 #if WITH_SCACHE_PBB_FRVBF
86     frvbf_pbb_after (current_cpu, sem_arg);
87 #endif
88   }
89
90   return vpc;
91 #undef FLD
92 }
93
94 /* x-before: --before-- */
95
96 static SEM_PC
97 SEM_FN_NAME (frvbf,x_before) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
98 {
99 #define FLD(f) abuf->fields.sfmt_empty.f
100   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
101   int UNUSED written = 0;
102   IADDR UNUSED pc = abuf->addr;
103   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 0);
104
105   {
106 #if WITH_SCACHE_PBB_FRVBF
107     frvbf_pbb_before (current_cpu, sem_arg);
108 #endif
109   }
110
111   return vpc;
112 #undef FLD
113 }
114
115 /* x-cti-chain: --cti-chain-- */
116
117 static SEM_PC
118 SEM_FN_NAME (frvbf,x_cti_chain) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
119 {
120 #define FLD(f) abuf->fields.sfmt_empty.f
121   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
122   int UNUSED written = 0;
123   IADDR UNUSED pc = abuf->addr;
124   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 0);
125
126   {
127 #if WITH_SCACHE_PBB_FRVBF
128 #ifdef DEFINE_SWITCH
129     vpc = frvbf_pbb_cti_chain (current_cpu, sem_arg,
130                                pbb_br_type, pbb_br_npc);
131     BREAK (sem);
132 #else
133     /* FIXME: Allow provision of explicit ifmt spec in insn spec.  */
134     vpc = frvbf_pbb_cti_chain (current_cpu, sem_arg,
135                                CPU_PBB_BR_TYPE (current_cpu),
136                                CPU_PBB_BR_NPC (current_cpu));
137 #endif
138 #endif
139   }
140
141   return vpc;
142 #undef FLD
143 }
144
145 /* x-chain: --chain-- */
146
147 static SEM_PC
148 SEM_FN_NAME (frvbf,x_chain) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
149 {
150 #define FLD(f) abuf->fields.sfmt_empty.f
151   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
152   int UNUSED written = 0;
153   IADDR UNUSED pc = abuf->addr;
154   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 0);
155
156   {
157 #if WITH_SCACHE_PBB_FRVBF
158     vpc = frvbf_pbb_chain (current_cpu, sem_arg);
159 #ifdef DEFINE_SWITCH
160     BREAK (sem);
161 #endif
162 #endif
163   }
164
165   return vpc;
166 #undef FLD
167 }
168
169 /* x-begin: --begin-- */
170
171 static SEM_PC
172 SEM_FN_NAME (frvbf,x_begin) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
173 {
174 #define FLD(f) abuf->fields.sfmt_empty.f
175   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
176   int UNUSED written = 0;
177   IADDR UNUSED pc = abuf->addr;
178   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 0);
179
180   {
181 #if WITH_SCACHE_PBB_FRVBF
182 #if defined DEFINE_SWITCH || defined FAST_P
183     /* In the switch case FAST_P is a constant, allowing several optimizations
184        in any called inline functions.  */
185     vpc = frvbf_pbb_begin (current_cpu, FAST_P);
186 #else
187 #if 0 /* cgen engine can't handle dynamic fast/full switching yet.  */
188     vpc = frvbf_pbb_begin (current_cpu, STATE_RUN_FAST_P (CPU_STATE (current_cpu)));
189 #else
190     vpc = frvbf_pbb_begin (current_cpu, 0);
191 #endif
192 #endif
193 #endif
194   }
195
196   return vpc;
197 #undef FLD
198 }
199
200 /* add: add$pack $GRi,$GRj,$GRk */
201
202 static SEM_PC
203 SEM_FN_NAME (frvbf,add) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
204 {
205 #define FLD(f) abuf->fields.sfmt_addcc.f
206   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
207   int UNUSED written = 0;
208   IADDR UNUSED pc = abuf->addr;
209   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
210
211   {
212     SI opval = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
213     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
214     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
215   }
216
217   return vpc;
218 #undef FLD
219 }
220
221 /* sub: sub$pack $GRi,$GRj,$GRk */
222
223 static SEM_PC
224 SEM_FN_NAME (frvbf,sub) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
225 {
226 #define FLD(f) abuf->fields.sfmt_addcc.f
227   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
228   int UNUSED written = 0;
229   IADDR UNUSED pc = abuf->addr;
230   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
231
232   {
233     SI opval = SUBSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
234     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
235     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
236   }
237
238   return vpc;
239 #undef FLD
240 }
241
242 /* and: and$pack $GRi,$GRj,$GRk */
243
244 static SEM_PC
245 SEM_FN_NAME (frvbf,and) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
246 {
247 #define FLD(f) abuf->fields.sfmt_addcc.f
248   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
249   int UNUSED written = 0;
250   IADDR UNUSED pc = abuf->addr;
251   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
252
253   {
254     SI opval = ANDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
255     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
256     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
257   }
258
259   return vpc;
260 #undef FLD
261 }
262
263 /* or: or$pack $GRi,$GRj,$GRk */
264
265 static SEM_PC
266 SEM_FN_NAME (frvbf,or) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
267 {
268 #define FLD(f) abuf->fields.sfmt_addcc.f
269   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
270   int UNUSED written = 0;
271   IADDR UNUSED pc = abuf->addr;
272   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
273
274   {
275     SI opval = ORSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
276     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
277     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
278   }
279
280   return vpc;
281 #undef FLD
282 }
283
284 /* xor: xor$pack $GRi,$GRj,$GRk */
285
286 static SEM_PC
287 SEM_FN_NAME (frvbf,xor) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
288 {
289 #define FLD(f) abuf->fields.sfmt_addcc.f
290   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
291   int UNUSED written = 0;
292   IADDR UNUSED pc = abuf->addr;
293   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
294
295   {
296     SI opval = XORSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
297     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
298     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
299   }
300
301   return vpc;
302 #undef FLD
303 }
304
305 /* not: not$pack $GRj,$GRk */
306
307 static SEM_PC
308 SEM_FN_NAME (frvbf,not) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
309 {
310 #define FLD(f) abuf->fields.sfmt_scutss.f
311   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
312   int UNUSED written = 0;
313   IADDR UNUSED pc = abuf->addr;
314   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
315
316   {
317     SI opval = INVSI (GET_H_GR (FLD (f_GRj)));
318     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
319     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
320   }
321
322   return vpc;
323 #undef FLD
324 }
325
326 /* sdiv: sdiv$pack $GRi,$GRj,$GRk */
327
328 static SEM_PC
329 SEM_FN_NAME (frvbf,sdiv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
330 {
331 #define FLD(f) abuf->fields.sfmt_addcc.f
332   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
333   int UNUSED written = 0;
334   IADDR UNUSED pc = abuf->addr;
335   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
336
337 {
338 frvbf_signed_integer_divide (current_cpu, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), FLD (f_GRk), 0);
339 ; /*clobber*/
340 }
341
342   return vpc;
343 #undef FLD
344 }
345
346 /* nsdiv: nsdiv$pack $GRi,$GRj,$GRk */
347
348 static SEM_PC
349 SEM_FN_NAME (frvbf,nsdiv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
350 {
351 #define FLD(f) abuf->fields.sfmt_addcc.f
352   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
353   int UNUSED written = 0;
354   IADDR UNUSED pc = abuf->addr;
355   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
356
357 {
358 frvbf_signed_integer_divide (current_cpu, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), FLD (f_GRk), 1);
359 ; /*clobber*/
360 }
361
362   return vpc;
363 #undef FLD
364 }
365
366 /* udiv: udiv$pack $GRi,$GRj,$GRk */
367
368 static SEM_PC
369 SEM_FN_NAME (frvbf,udiv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
370 {
371 #define FLD(f) abuf->fields.sfmt_addcc.f
372   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
373   int UNUSED written = 0;
374   IADDR UNUSED pc = abuf->addr;
375   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
376
377 {
378 frvbf_unsigned_integer_divide (current_cpu, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), FLD (f_GRk), 0);
379 ; /*clobber*/
380 }
381
382   return vpc;
383 #undef FLD
384 }
385
386 /* nudiv: nudiv$pack $GRi,$GRj,$GRk */
387
388 static SEM_PC
389 SEM_FN_NAME (frvbf,nudiv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
390 {
391 #define FLD(f) abuf->fields.sfmt_addcc.f
392   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
393   int UNUSED written = 0;
394   IADDR UNUSED pc = abuf->addr;
395   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
396
397 {
398 frvbf_unsigned_integer_divide (current_cpu, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), FLD (f_GRk), 1);
399 ; /*clobber*/
400 }
401
402   return vpc;
403 #undef FLD
404 }
405
406 /* smul: smul$pack $GRi,$GRj,$GRdoublek */
407
408 static SEM_PC
409 SEM_FN_NAME (frvbf,smul) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
410 {
411 #define FLD(f) abuf->fields.sfmt_smulcc.f
412   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
413   int UNUSED written = 0;
414   IADDR UNUSED pc = abuf->addr;
415   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
416
417   {
418     DI opval = MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi))), EXTSIDI (GET_H_GR (FLD (f_GRj))));
419     sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
420     TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
421   }
422
423   return vpc;
424 #undef FLD
425 }
426
427 /* umul: umul$pack $GRi,$GRj,$GRdoublek */
428
429 static SEM_PC
430 SEM_FN_NAME (frvbf,umul) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
431 {
432 #define FLD(f) abuf->fields.sfmt_smulcc.f
433   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
434   int UNUSED written = 0;
435   IADDR UNUSED pc = abuf->addr;
436   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
437
438   {
439     DI opval = MULDI (ZEXTSIDI (GET_H_GR (FLD (f_GRi))), ZEXTSIDI (GET_H_GR (FLD (f_GRj))));
440     sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
441     TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
442   }
443
444   return vpc;
445 #undef FLD
446 }
447
448 /* smu: smu$pack $GRi,$GRj */
449
450 static SEM_PC
451 SEM_FN_NAME (frvbf,smu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
452 {
453 #define FLD(f) abuf->fields.sfmt_smass.f
454   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
455   int UNUSED written = 0;
456   IADDR UNUSED pc = abuf->addr;
457   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
458
459   {
460     DI opval = MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi))), EXTSIDI (GET_H_GR (FLD (f_GRj))));
461     sim_queue_fn_di_write (current_cpu, frvbf_h_iacc0_set, ((UINT) 0), opval);
462     TRACE_RESULT (current_cpu, abuf, "iacc0", 'D', opval);
463   }
464
465   return vpc;
466 #undef FLD
467 }
468
469 /* smass: smass$pack $GRi,$GRj */
470
471 static SEM_PC
472 SEM_FN_NAME (frvbf,smass) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
473 {
474 #define FLD(f) abuf->fields.sfmt_smass.f
475   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
476   int UNUSED written = 0;
477   IADDR UNUSED pc = abuf->addr;
478   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
479
480   {
481     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 (MAKEDI (2147483647, 0xffffffff), 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 (MAKEDI (0x80000000, 0), 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))))));
482     sim_queue_fn_di_write (current_cpu, frvbf_h_iacc0_set, ((UINT) 0), opval);
483     TRACE_RESULT (current_cpu, abuf, "iacc0", 'D', opval);
484   }
485
486   return vpc;
487 #undef FLD
488 }
489
490 /* smsss: smsss$pack $GRi,$GRj */
491
492 static SEM_PC
493 SEM_FN_NAME (frvbf,smsss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
494 {
495 #define FLD(f) abuf->fields.sfmt_smass.f
496   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
497   int UNUSED written = 0;
498   IADDR UNUSED pc = abuf->addr;
499   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
500
501   {
502     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 (MAKEDI (2147483647, 0xffffffff), 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 (MAKEDI (0x80000000, 0), 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))))));
503     sim_queue_fn_di_write (current_cpu, frvbf_h_iacc0_set, ((UINT) 0), opval);
504     TRACE_RESULT (current_cpu, abuf, "iacc0", 'D', opval);
505   }
506
507   return vpc;
508 #undef FLD
509 }
510
511 /* sll: sll$pack $GRi,$GRj,$GRk */
512
513 static SEM_PC
514 SEM_FN_NAME (frvbf,sll) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
515 {
516 #define FLD(f) abuf->fields.sfmt_addcc.f
517   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
518   int UNUSED written = 0;
519   IADDR UNUSED pc = abuf->addr;
520   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
521
522   {
523     SI opval = SLLSI (GET_H_GR (FLD (f_GRi)), ANDSI (GET_H_GR (FLD (f_GRj)), 31));
524     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
525     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
526   }
527
528   return vpc;
529 #undef FLD
530 }
531
532 /* srl: srl$pack $GRi,$GRj,$GRk */
533
534 static SEM_PC
535 SEM_FN_NAME (frvbf,srl) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
536 {
537 #define FLD(f) abuf->fields.sfmt_addcc.f
538   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
539   int UNUSED written = 0;
540   IADDR UNUSED pc = abuf->addr;
541   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
542
543   {
544     SI opval = SRLSI (GET_H_GR (FLD (f_GRi)), ANDSI (GET_H_GR (FLD (f_GRj)), 31));
545     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
546     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
547   }
548
549   return vpc;
550 #undef FLD
551 }
552
553 /* sra: sra$pack $GRi,$GRj,$GRk */
554
555 static SEM_PC
556 SEM_FN_NAME (frvbf,sra) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
557 {
558 #define FLD(f) abuf->fields.sfmt_addcc.f
559   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
560   int UNUSED written = 0;
561   IADDR UNUSED pc = abuf->addr;
562   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
563
564   {
565     SI opval = SRASI (GET_H_GR (FLD (f_GRi)), ANDSI (GET_H_GR (FLD (f_GRj)), 31));
566     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
567     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
568   }
569
570   return vpc;
571 #undef FLD
572 }
573
574 /* slass: slass$pack $GRi,$GRj,$GRk */
575
576 static SEM_PC
577 SEM_FN_NAME (frvbf,slass) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
578 {
579 #define FLD(f) abuf->fields.sfmt_addcc.f
580   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
581   int UNUSED written = 0;
582   IADDR UNUSED pc = abuf->addr;
583   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
584
585   {
586     SI opval = frvbf_shift_left_arith_saturate (current_cpu, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
587     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
588     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
589   }
590
591   return vpc;
592 #undef FLD
593 }
594
595 /* scutss: scutss$pack $GRj,$GRk */
596
597 static SEM_PC
598 SEM_FN_NAME (frvbf,scutss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
599 {
600 #define FLD(f) abuf->fields.sfmt_scutss.f
601   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
602   int UNUSED written = 0;
603   IADDR UNUSED pc = abuf->addr;
604   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
605
606   {
607     SI opval = frvbf_iacc_cut (current_cpu, GET_H_IACC0 (((UINT) 0)), GET_H_GR (FLD (f_GRj)));
608     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
609     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
610   }
611
612   return vpc;
613 #undef FLD
614 }
615
616 /* scan: scan$pack $GRi,$GRj,$GRk */
617
618 static SEM_PC
619 SEM_FN_NAME (frvbf,scan) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
620 {
621 #define FLD(f) abuf->fields.sfmt_addcc.f
622   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
623   int UNUSED written = 0;
624   IADDR UNUSED pc = abuf->addr;
625   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
626
627 {
628   SI tmp_tmp1;
629   SI tmp_tmp2;
630   tmp_tmp1 = GET_H_GR (FLD (f_GRi));
631   tmp_tmp2 = SRASI (GET_H_GR (FLD (f_GRj)), 1);
632   {
633     SI opval = frvbf_scan_result (current_cpu, XORSI (tmp_tmp1, tmp_tmp2));
634     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
635     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
636   }
637 }
638
639   return vpc;
640 #undef FLD
641 }
642
643 /* cadd: cadd$pack $GRi,$GRj,$GRk,$CCi,$cond */
644
645 static SEM_PC
646 SEM_FN_NAME (frvbf,cadd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
647 {
648 #define FLD(f) abuf->fields.sfmt_cswap.f
649   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
650   int UNUSED written = 0;
651   IADDR UNUSED pc = abuf->addr;
652   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
653
654 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
655   {
656     SI opval = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
657     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
658     written |= (1 << 4);
659     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
660   }
661 }
662
663   abuf->written = written;
664   return vpc;
665 #undef FLD
666 }
667
668 /* csub: csub$pack $GRi,$GRj,$GRk,$CCi,$cond */
669
670 static SEM_PC
671 SEM_FN_NAME (frvbf,csub) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
672 {
673 #define FLD(f) abuf->fields.sfmt_cswap.f
674   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
675   int UNUSED written = 0;
676   IADDR UNUSED pc = abuf->addr;
677   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
678
679 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
680   {
681     SI opval = SUBSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
682     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
683     written |= (1 << 4);
684     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
685   }
686 }
687
688   abuf->written = written;
689   return vpc;
690 #undef FLD
691 }
692
693 /* cand: cand$pack $GRi,$GRj,$GRk,$CCi,$cond */
694
695 static SEM_PC
696 SEM_FN_NAME (frvbf,cand) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
697 {
698 #define FLD(f) abuf->fields.sfmt_cswap.f
699   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
700   int UNUSED written = 0;
701   IADDR UNUSED pc = abuf->addr;
702   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
703
704 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
705   {
706     SI opval = ANDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
707     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
708     written |= (1 << 4);
709     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
710   }
711 }
712
713   abuf->written = written;
714   return vpc;
715 #undef FLD
716 }
717
718 /* cor: cor$pack $GRi,$GRj,$GRk,$CCi,$cond */
719
720 static SEM_PC
721 SEM_FN_NAME (frvbf,cor) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
722 {
723 #define FLD(f) abuf->fields.sfmt_cswap.f
724   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
725   int UNUSED written = 0;
726   IADDR UNUSED pc = abuf->addr;
727   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
728
729 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
730   {
731     SI opval = ORSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
732     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
733     written |= (1 << 4);
734     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
735   }
736 }
737
738   abuf->written = written;
739   return vpc;
740 #undef FLD
741 }
742
743 /* cxor: cxor$pack $GRi,$GRj,$GRk,$CCi,$cond */
744
745 static SEM_PC
746 SEM_FN_NAME (frvbf,cxor) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
747 {
748 #define FLD(f) abuf->fields.sfmt_cswap.f
749   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
750   int UNUSED written = 0;
751   IADDR UNUSED pc = abuf->addr;
752   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
753
754 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
755   {
756     SI opval = XORSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
757     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
758     written |= (1 << 4);
759     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
760   }
761 }
762
763   abuf->written = written;
764   return vpc;
765 #undef FLD
766 }
767
768 /* cnot: cnot$pack $GRj,$GRk,$CCi,$cond */
769
770 static SEM_PC
771 SEM_FN_NAME (frvbf,cnot) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
772 {
773 #define FLD(f) abuf->fields.sfmt_cswap.f
774   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
775   int UNUSED written = 0;
776   IADDR UNUSED pc = abuf->addr;
777   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
778
779 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
780   {
781     SI opval = INVSI (GET_H_GR (FLD (f_GRj)));
782     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
783     written |= (1 << 3);
784     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
785   }
786 }
787
788   abuf->written = written;
789   return vpc;
790 #undef FLD
791 }
792
793 /* csmul: csmul$pack $GRi,$GRj,$GRdoublek,$CCi,$cond */
794
795 static SEM_PC
796 SEM_FN_NAME (frvbf,csmul) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
797 {
798 #define FLD(f) abuf->fields.sfmt_clddu.f
799   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
800   int UNUSED written = 0;
801   IADDR UNUSED pc = abuf->addr;
802   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
803
804 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
805   {
806     DI opval = MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi))), EXTSIDI (GET_H_GR (FLD (f_GRj))));
807     sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
808     written |= (1 << 4);
809     TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
810   }
811 }
812
813   abuf->written = written;
814   return vpc;
815 #undef FLD
816 }
817
818 /* csdiv: csdiv$pack $GRi,$GRj,$GRk,$CCi,$cond */
819
820 static SEM_PC
821 SEM_FN_NAME (frvbf,csdiv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
822 {
823 #define FLD(f) abuf->fields.sfmt_cswap.f
824   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
825   int UNUSED written = 0;
826   IADDR UNUSED pc = abuf->addr;
827   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
828
829 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
830 {
831 frvbf_signed_integer_divide (current_cpu, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), FLD (f_GRk), 0);
832 ; /*clobber*/
833 }
834 }
835
836   abuf->written = written;
837   return vpc;
838 #undef FLD
839 }
840
841 /* cudiv: cudiv$pack $GRi,$GRj,$GRk,$CCi,$cond */
842
843 static SEM_PC
844 SEM_FN_NAME (frvbf,cudiv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
845 {
846 #define FLD(f) abuf->fields.sfmt_cswap.f
847   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
848   int UNUSED written = 0;
849   IADDR UNUSED pc = abuf->addr;
850   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
851
852 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
853 {
854 frvbf_unsigned_integer_divide (current_cpu, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), FLD (f_GRk), 0);
855 ; /*clobber*/
856 }
857 }
858
859   abuf->written = written;
860   return vpc;
861 #undef FLD
862 }
863
864 /* csll: csll$pack $GRi,$GRj,$GRk,$CCi,$cond */
865
866 static SEM_PC
867 SEM_FN_NAME (frvbf,csll) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
868 {
869 #define FLD(f) abuf->fields.sfmt_cswap.f
870   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
871   int UNUSED written = 0;
872   IADDR UNUSED pc = abuf->addr;
873   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
874
875 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
876   {
877     SI opval = SLLSI (GET_H_GR (FLD (f_GRi)), ANDSI (GET_H_GR (FLD (f_GRj)), 31));
878     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
879     written |= (1 << 4);
880     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
881   }
882 }
883
884   abuf->written = written;
885   return vpc;
886 #undef FLD
887 }
888
889 /* csrl: csrl$pack $GRi,$GRj,$GRk,$CCi,$cond */
890
891 static SEM_PC
892 SEM_FN_NAME (frvbf,csrl) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
893 {
894 #define FLD(f) abuf->fields.sfmt_cswap.f
895   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
896   int UNUSED written = 0;
897   IADDR UNUSED pc = abuf->addr;
898   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
899
900 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
901   {
902     SI opval = SRLSI (GET_H_GR (FLD (f_GRi)), ANDSI (GET_H_GR (FLD (f_GRj)), 31));
903     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
904     written |= (1 << 4);
905     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
906   }
907 }
908
909   abuf->written = written;
910   return vpc;
911 #undef FLD
912 }
913
914 /* csra: csra$pack $GRi,$GRj,$GRk,$CCi,$cond */
915
916 static SEM_PC
917 SEM_FN_NAME (frvbf,csra) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
918 {
919 #define FLD(f) abuf->fields.sfmt_cswap.f
920   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
921   int UNUSED written = 0;
922   IADDR UNUSED pc = abuf->addr;
923   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
924
925 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
926   {
927     SI opval = SRASI (GET_H_GR (FLD (f_GRi)), ANDSI (GET_H_GR (FLD (f_GRj)), 31));
928     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
929     written |= (1 << 4);
930     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
931   }
932 }
933
934   abuf->written = written;
935   return vpc;
936 #undef FLD
937 }
938
939 /* cscan: cscan$pack $GRi,$GRj,$GRk,$CCi,$cond */
940
941 static SEM_PC
942 SEM_FN_NAME (frvbf,cscan) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
943 {
944 #define FLD(f) abuf->fields.sfmt_cswap.f
945   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
946   int UNUSED written = 0;
947   IADDR UNUSED pc = abuf->addr;
948   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
949
950 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
951 {
952   SI tmp_tmp1;
953   SI tmp_tmp2;
954   tmp_tmp1 = GET_H_GR (FLD (f_GRi));
955   tmp_tmp2 = SRASI (GET_H_GR (FLD (f_GRj)), 1);
956   {
957     SI opval = frvbf_scan_result (current_cpu, XORSI (tmp_tmp1, tmp_tmp2));
958     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
959     written |= (1 << 4);
960     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
961   }
962 }
963 }
964
965   abuf->written = written;
966   return vpc;
967 #undef FLD
968 }
969
970 /* addcc: addcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
971
972 static SEM_PC
973 SEM_FN_NAME (frvbf,addcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
974 {
975 #define FLD(f) abuf->fields.sfmt_addcc.f
976   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
977   int UNUSED written = 0;
978   IADDR UNUSED pc = abuf->addr;
979   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
980
981 {
982   BI tmp_tmp;
983   QI tmp_cc;
984   SI tmp_result;
985   tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
986   tmp_tmp = ADDOFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), 0);
987 if (EQBI (tmp_tmp, 0)) {
988   tmp_cc = ANDQI (tmp_cc, 13);
989 } else {
990   tmp_cc = ORQI (tmp_cc, 2);
991 }
992   tmp_tmp = ADDCFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), 0);
993 if (EQBI (tmp_tmp, 0)) {
994   tmp_cc = ANDQI (tmp_cc, 14);
995 } else {
996   tmp_cc = ORQI (tmp_cc, 1);
997 }
998   tmp_result = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
999 if (EQSI (tmp_result, 0)) {
1000   tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
1001 } else {
1002 if (LTSI (tmp_result, 0)) {
1003   tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
1004 } else {
1005   tmp_cc = ANDQI (tmp_cc, 3);
1006 }
1007 }
1008   {
1009     SI opval = tmp_result;
1010     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1011     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1012   }
1013   {
1014     UQI opval = tmp_cc;
1015     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1016     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1017   }
1018 }
1019
1020   return vpc;
1021 #undef FLD
1022 }
1023
1024 /* subcc: subcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
1025
1026 static SEM_PC
1027 SEM_FN_NAME (frvbf,subcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1028 {
1029 #define FLD(f) abuf->fields.sfmt_addcc.f
1030   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1031   int UNUSED written = 0;
1032   IADDR UNUSED pc = abuf->addr;
1033   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1034
1035 {
1036   BI tmp_tmp;
1037   QI tmp_cc;
1038   SI tmp_result;
1039   tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
1040   tmp_tmp = SUBOFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), 0);
1041 if (EQBI (tmp_tmp, 0)) {
1042   tmp_cc = ANDQI (tmp_cc, 13);
1043 } else {
1044   tmp_cc = ORQI (tmp_cc, 2);
1045 }
1046   tmp_tmp = SUBCFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), 0);
1047 if (EQBI (tmp_tmp, 0)) {
1048   tmp_cc = ANDQI (tmp_cc, 14);
1049 } else {
1050   tmp_cc = ORQI (tmp_cc, 1);
1051 }
1052   tmp_result = SUBSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
1053 if (EQSI (tmp_result, 0)) {
1054   tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
1055 } else {
1056 if (LTSI (tmp_result, 0)) {
1057   tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
1058 } else {
1059   tmp_cc = ANDQI (tmp_cc, 3);
1060 }
1061 }
1062   {
1063     SI opval = tmp_result;
1064     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1065     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1066   }
1067   {
1068     UQI opval = tmp_cc;
1069     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1070     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1071   }
1072 }
1073
1074   return vpc;
1075 #undef FLD
1076 }
1077
1078 /* andcc: andcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
1079
1080 static SEM_PC
1081 SEM_FN_NAME (frvbf,andcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1082 {
1083 #define FLD(f) abuf->fields.sfmt_addcc.f
1084   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1085   int UNUSED written = 0;
1086   IADDR UNUSED pc = abuf->addr;
1087   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1088
1089 {
1090   SI tmp_tmp;
1091   tmp_tmp = ANDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
1092   {
1093     SI opval = tmp_tmp;
1094     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1095     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1096   }
1097 if (EQSI (tmp_tmp, 0)) {
1098   {
1099     UQI opval = ORQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 7), 4);
1100     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1101     written |= (1 << 4);
1102     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1103   }
1104 } else {
1105 if (LTSI (tmp_tmp, 0)) {
1106   {
1107     UQI opval = ORQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 11), 8);
1108     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1109     written |= (1 << 4);
1110     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1111   }
1112 } else {
1113   {
1114     UQI opval = ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 3);
1115     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1116     written |= (1 << 4);
1117     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1118   }
1119 }
1120 }
1121 }
1122
1123   abuf->written = written;
1124   return vpc;
1125 #undef FLD
1126 }
1127
1128 /* orcc: orcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
1129
1130 static SEM_PC
1131 SEM_FN_NAME (frvbf,orcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1132 {
1133 #define FLD(f) abuf->fields.sfmt_addcc.f
1134   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1135   int UNUSED written = 0;
1136   IADDR UNUSED pc = abuf->addr;
1137   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1138
1139 {
1140   SI tmp_tmp;
1141   tmp_tmp = ORSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
1142   {
1143     SI opval = tmp_tmp;
1144     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1145     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1146   }
1147 if (EQSI (tmp_tmp, 0)) {
1148   {
1149     UQI opval = ORQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 7), 4);
1150     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1151     written |= (1 << 4);
1152     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1153   }
1154 } else {
1155 if (LTSI (tmp_tmp, 0)) {
1156   {
1157     UQI opval = ORQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 11), 8);
1158     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1159     written |= (1 << 4);
1160     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1161   }
1162 } else {
1163   {
1164     UQI opval = ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 3);
1165     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1166     written |= (1 << 4);
1167     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1168   }
1169 }
1170 }
1171 }
1172
1173   abuf->written = written;
1174   return vpc;
1175 #undef FLD
1176 }
1177
1178 /* xorcc: xorcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
1179
1180 static SEM_PC
1181 SEM_FN_NAME (frvbf,xorcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1182 {
1183 #define FLD(f) abuf->fields.sfmt_addcc.f
1184   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1185   int UNUSED written = 0;
1186   IADDR UNUSED pc = abuf->addr;
1187   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1188
1189 {
1190   SI tmp_tmp;
1191   tmp_tmp = XORSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
1192   {
1193     SI opval = tmp_tmp;
1194     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1195     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1196   }
1197 if (EQSI (tmp_tmp, 0)) {
1198   {
1199     UQI opval = ORQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 7), 4);
1200     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1201     written |= (1 << 4);
1202     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1203   }
1204 } else {
1205 if (LTSI (tmp_tmp, 0)) {
1206   {
1207     UQI opval = ORQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 11), 8);
1208     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1209     written |= (1 << 4);
1210     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1211   }
1212 } else {
1213   {
1214     UQI opval = ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 3);
1215     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1216     written |= (1 << 4);
1217     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1218   }
1219 }
1220 }
1221 }
1222
1223   abuf->written = written;
1224   return vpc;
1225 #undef FLD
1226 }
1227
1228 /* sllcc: sllcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
1229
1230 static SEM_PC
1231 SEM_FN_NAME (frvbf,sllcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1232 {
1233 #define FLD(f) abuf->fields.sfmt_addcc.f
1234   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1235   int UNUSED written = 0;
1236   IADDR UNUSED pc = abuf->addr;
1237   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1238
1239 {
1240   SI tmp_shift;
1241   SI tmp_tmp;
1242   QI tmp_cc;
1243   tmp_shift = ANDSI (GET_H_GR (FLD (f_GRj)), 31);
1244   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)]));
1245   tmp_tmp = SLLSI (GET_H_GR (FLD (f_GRi)), tmp_shift);
1246   {
1247     SI opval = tmp_tmp;
1248     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1249     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1250   }
1251 if (EQSI (tmp_tmp, 0)) {
1252   tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
1253 } else {
1254 if (LTSI (tmp_tmp, 0)) {
1255   tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
1256 } else {
1257   tmp_cc = ANDQI (tmp_cc, 3);
1258 }
1259 }
1260   {
1261     UQI opval = tmp_cc;
1262     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1263     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1264   }
1265 }
1266
1267   return vpc;
1268 #undef FLD
1269 }
1270
1271 /* srlcc: srlcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
1272
1273 static SEM_PC
1274 SEM_FN_NAME (frvbf,srlcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1275 {
1276 #define FLD(f) abuf->fields.sfmt_addcc.f
1277   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1278   int UNUSED written = 0;
1279   IADDR UNUSED pc = abuf->addr;
1280   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1281
1282 {
1283   SI tmp_shift;
1284   SI tmp_tmp;
1285   QI tmp_cc;
1286   tmp_shift = ANDSI (GET_H_GR (FLD (f_GRj)), 31);
1287   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)]));
1288   tmp_tmp = SRLSI (GET_H_GR (FLD (f_GRi)), tmp_shift);
1289   {
1290     SI opval = tmp_tmp;
1291     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1292     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1293   }
1294 if (EQSI (tmp_tmp, 0)) {
1295   tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
1296 } else {
1297 if (LTSI (tmp_tmp, 0)) {
1298   tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
1299 } else {
1300   tmp_cc = ANDQI (tmp_cc, 3);
1301 }
1302 }
1303   {
1304     UQI opval = tmp_cc;
1305     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1306     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1307   }
1308 }
1309
1310   return vpc;
1311 #undef FLD
1312 }
1313
1314 /* sracc: sracc$pack $GRi,$GRj,$GRk,$ICCi_1 */
1315
1316 static SEM_PC
1317 SEM_FN_NAME (frvbf,sracc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1318 {
1319 #define FLD(f) abuf->fields.sfmt_addcc.f
1320   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1321   int UNUSED written = 0;
1322   IADDR UNUSED pc = abuf->addr;
1323   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1324
1325 {
1326   SI tmp_shift;
1327   SI tmp_tmp;
1328   QI tmp_cc;
1329   tmp_shift = ANDSI (GET_H_GR (FLD (f_GRj)), 31);
1330   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)]));
1331   tmp_tmp = SRASI (GET_H_GR (FLD (f_GRi)), tmp_shift);
1332   {
1333     SI opval = tmp_tmp;
1334     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1335     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1336   }
1337 if (EQSI (tmp_tmp, 0)) {
1338   tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
1339 } else {
1340 if (LTSI (tmp_tmp, 0)) {
1341   tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
1342 } else {
1343   tmp_cc = ANDQI (tmp_cc, 3);
1344 }
1345 }
1346   {
1347     UQI opval = tmp_cc;
1348     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1349     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1350   }
1351 }
1352
1353   return vpc;
1354 #undef FLD
1355 }
1356
1357 /* smulcc: smulcc$pack $GRi,$GRj,$GRdoublek,$ICCi_1 */
1358
1359 static SEM_PC
1360 SEM_FN_NAME (frvbf,smulcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1361 {
1362 #define FLD(f) abuf->fields.sfmt_smulcc.f
1363   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1364   int UNUSED written = 0;
1365   IADDR UNUSED pc = abuf->addr;
1366   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1367
1368 {
1369   DI tmp_tmp;
1370   QI tmp_cc;
1371   tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
1372   tmp_tmp = MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi))), EXTSIDI (GET_H_GR (FLD (f_GRj))));
1373 if (EQDI (SRLDI (tmp_tmp, 63), 0)) {
1374   tmp_cc = ANDQI (tmp_cc, 7);
1375 } else {
1376   tmp_cc = ORQI (tmp_cc, 8);
1377 }
1378 if (EQBI (EQDI (tmp_tmp, 0), 0)) {
1379   tmp_cc = ANDQI (tmp_cc, 11);
1380 } else {
1381   tmp_cc = ORQI (tmp_cc, 4);
1382 }
1383   {
1384     DI opval = tmp_tmp;
1385     sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
1386     TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
1387   }
1388   {
1389     UQI opval = tmp_cc;
1390     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1391     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1392   }
1393 }
1394
1395   return vpc;
1396 #undef FLD
1397 }
1398
1399 /* umulcc: umulcc$pack $GRi,$GRj,$GRdoublek,$ICCi_1 */
1400
1401 static SEM_PC
1402 SEM_FN_NAME (frvbf,umulcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1403 {
1404 #define FLD(f) abuf->fields.sfmt_smulcc.f
1405   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1406   int UNUSED written = 0;
1407   IADDR UNUSED pc = abuf->addr;
1408   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1409
1410 {
1411   DI tmp_tmp;
1412   QI tmp_cc;
1413   tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
1414   tmp_tmp = MULDI (ZEXTSIDI (GET_H_GR (FLD (f_GRi))), ZEXTSIDI (GET_H_GR (FLD (f_GRj))));
1415 if (EQDI (SRLDI (tmp_tmp, 63), 0)) {
1416   tmp_cc = ANDQI (tmp_cc, 7);
1417 } else {
1418   tmp_cc = ORQI (tmp_cc, 8);
1419 }
1420 if (EQBI (EQDI (tmp_tmp, 0), 0)) {
1421   tmp_cc = ANDQI (tmp_cc, 11);
1422 } else {
1423   tmp_cc = ORQI (tmp_cc, 4);
1424 }
1425   {
1426     DI opval = tmp_tmp;
1427     sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
1428     TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
1429   }
1430   {
1431     UQI opval = tmp_cc;
1432     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1433     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1434   }
1435 }
1436
1437   return vpc;
1438 #undef FLD
1439 }
1440
1441 /* caddcc: caddcc$pack $GRi,$GRj,$GRk,$CCi,$cond */
1442
1443 static SEM_PC
1444 SEM_FN_NAME (frvbf,caddcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1445 {
1446 #define FLD(f) abuf->fields.sfmt_caddcc.f
1447   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1448   int UNUSED written = 0;
1449   IADDR UNUSED pc = abuf->addr;
1450   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1451
1452 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
1453 {
1454   BI tmp_tmp;
1455   QI tmp_cc;
1456   SI tmp_result;
1457   tmp_cc = CPU (h_iccr[ANDSI (FLD (f_CCi), 3)]);
1458   tmp_tmp = ADDOFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), 0);
1459 if (EQBI (tmp_tmp, 0)) {
1460   tmp_cc = ANDQI (tmp_cc, 13);
1461 } else {
1462   tmp_cc = ORQI (tmp_cc, 2);
1463 }
1464   tmp_tmp = ADDCFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), 0);
1465 if (EQBI (tmp_tmp, 0)) {
1466   tmp_cc = ANDQI (tmp_cc, 14);
1467 } else {
1468   tmp_cc = ORQI (tmp_cc, 1);
1469 }
1470   tmp_result = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
1471 if (EQSI (tmp_result, 0)) {
1472   tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
1473 } else {
1474 if (LTSI (tmp_result, 0)) {
1475   tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
1476 } else {
1477   tmp_cc = ANDQI (tmp_cc, 3);
1478 }
1479 }
1480   {
1481     SI opval = tmp_result;
1482     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1483     written |= (1 << 6);
1484     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1485   }
1486   {
1487     UQI opval = tmp_cc;
1488     sim_queue_qi_write (current_cpu, & CPU (h_iccr[ANDSI (FLD (f_CCi), 3)]), opval);
1489     written |= (1 << 7);
1490     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1491   }
1492 }
1493 }
1494
1495   abuf->written = written;
1496   return vpc;
1497 #undef FLD
1498 }
1499
1500 /* csubcc: csubcc$pack $GRi,$GRj,$GRk,$CCi,$cond */
1501
1502 static SEM_PC
1503 SEM_FN_NAME (frvbf,csubcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1504 {
1505 #define FLD(f) abuf->fields.sfmt_caddcc.f
1506   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1507   int UNUSED written = 0;
1508   IADDR UNUSED pc = abuf->addr;
1509   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1510
1511 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
1512 {
1513   BI tmp_tmp;
1514   QI tmp_cc;
1515   SI tmp_result;
1516   tmp_cc = CPU (h_iccr[ANDSI (FLD (f_CCi), 3)]);
1517   tmp_tmp = SUBOFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), 0);
1518 if (EQBI (tmp_tmp, 0)) {
1519   tmp_cc = ANDQI (tmp_cc, 13);
1520 } else {
1521   tmp_cc = ORQI (tmp_cc, 2);
1522 }
1523   tmp_tmp = SUBCFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), 0);
1524 if (EQBI (tmp_tmp, 0)) {
1525   tmp_cc = ANDQI (tmp_cc, 14);
1526 } else {
1527   tmp_cc = ORQI (tmp_cc, 1);
1528 }
1529   tmp_result = SUBSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
1530 if (EQSI (tmp_result, 0)) {
1531   tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
1532 } else {
1533 if (LTSI (tmp_result, 0)) {
1534   tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
1535 } else {
1536   tmp_cc = ANDQI (tmp_cc, 3);
1537 }
1538 }
1539   {
1540     SI opval = tmp_result;
1541     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1542     written |= (1 << 6);
1543     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1544   }
1545   {
1546     UQI opval = tmp_cc;
1547     sim_queue_qi_write (current_cpu, & CPU (h_iccr[ANDSI (FLD (f_CCi), 3)]), opval);
1548     written |= (1 << 7);
1549     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1550   }
1551 }
1552 }
1553
1554   abuf->written = written;
1555   return vpc;
1556 #undef FLD
1557 }
1558
1559 /* csmulcc: csmulcc$pack $GRi,$GRj,$GRdoublek,$CCi,$cond */
1560
1561 static SEM_PC
1562 SEM_FN_NAME (frvbf,csmulcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1563 {
1564 #define FLD(f) abuf->fields.sfmt_csmulcc.f
1565   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1566   int UNUSED written = 0;
1567   IADDR UNUSED pc = abuf->addr;
1568   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1569
1570 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
1571 {
1572   DI tmp_tmp;
1573   QI tmp_cc;
1574   tmp_cc = CPU (h_iccr[ANDSI (FLD (f_CCi), 3)]);
1575   tmp_tmp = MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi))), EXTSIDI (GET_H_GR (FLD (f_GRj))));
1576 if (EQDI (SRLDI (tmp_tmp, 63), 0)) {
1577   tmp_cc = ANDQI (tmp_cc, 7);
1578 } else {
1579   tmp_cc = ORQI (tmp_cc, 8);
1580 }
1581 if (EQBI (EQDI (tmp_tmp, 0), 0)) {
1582   tmp_cc = ANDQI (tmp_cc, 11);
1583 } else {
1584   tmp_cc = ORQI (tmp_cc, 4);
1585 }
1586   {
1587     DI opval = tmp_tmp;
1588     sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
1589     written |= (1 << 6);
1590     TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
1591   }
1592   {
1593     UQI opval = tmp_cc;
1594     sim_queue_qi_write (current_cpu, & CPU (h_iccr[ANDSI (FLD (f_CCi), 3)]), opval);
1595     written |= (1 << 7);
1596     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1597   }
1598 }
1599 }
1600
1601   abuf->written = written;
1602   return vpc;
1603 #undef FLD
1604 }
1605
1606 /* candcc: candcc$pack $GRi,$GRj,$GRk,$CCi,$cond */
1607
1608 static SEM_PC
1609 SEM_FN_NAME (frvbf,candcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1610 {
1611 #define FLD(f) abuf->fields.sfmt_caddcc.f
1612   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1613   int UNUSED written = 0;
1614   IADDR UNUSED pc = abuf->addr;
1615   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1616
1617 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
1618 {
1619   SI tmp_tmp;
1620   tmp_tmp = ANDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
1621   {
1622     SI opval = tmp_tmp;
1623     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1624     written |= (1 << 6);
1625     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1626   }
1627 if (EQSI (tmp_tmp, 0)) {
1628   {
1629     UQI opval = ORQI (ANDQI (CPU (h_iccr[ANDSI (FLD (f_CCi), 3)]), 7), 4);
1630     sim_queue_qi_write (current_cpu, & CPU (h_iccr[ANDSI (FLD (f_CCi), 3)]), opval);
1631     written |= (1 << 7);
1632     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1633   }
1634 } else {
1635 if (LTSI (tmp_tmp, 0)) {
1636   {
1637     UQI opval = ORQI (ANDQI (CPU (h_iccr[ANDSI (FLD (f_CCi), 3)]), 11), 8);
1638     sim_queue_qi_write (current_cpu, & CPU (h_iccr[ANDSI (FLD (f_CCi), 3)]), opval);
1639     written |= (1 << 7);
1640     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1641   }
1642 } else {
1643   {
1644     UQI opval = ANDQI (CPU (h_iccr[ANDSI (FLD (f_CCi), 3)]), 3);
1645     sim_queue_qi_write (current_cpu, & CPU (h_iccr[ANDSI (FLD (f_CCi), 3)]), opval);
1646     written |= (1 << 7);
1647     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1648   }
1649 }
1650 }
1651 }
1652 }
1653
1654   abuf->written = written;
1655   return vpc;
1656 #undef FLD
1657 }
1658
1659 /* corcc: corcc$pack $GRi,$GRj,$GRk,$CCi,$cond */
1660
1661 static SEM_PC
1662 SEM_FN_NAME (frvbf,corcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1663 {
1664 #define FLD(f) abuf->fields.sfmt_caddcc.f
1665   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1666   int UNUSED written = 0;
1667   IADDR UNUSED pc = abuf->addr;
1668   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1669
1670 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
1671 {
1672   SI tmp_tmp;
1673   tmp_tmp = ORSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
1674   {
1675     SI opval = tmp_tmp;
1676     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1677     written |= (1 << 6);
1678     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1679   }
1680 if (EQSI (tmp_tmp, 0)) {
1681   {
1682     UQI opval = ORQI (ANDQI (CPU (h_iccr[ANDSI (FLD (f_CCi), 3)]), 7), 4);
1683     sim_queue_qi_write (current_cpu, & CPU (h_iccr[ANDSI (FLD (f_CCi), 3)]), opval);
1684     written |= (1 << 7);
1685     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1686   }
1687 } else {
1688 if (LTSI (tmp_tmp, 0)) {
1689   {
1690     UQI opval = ORQI (ANDQI (CPU (h_iccr[ANDSI (FLD (f_CCi), 3)]), 11), 8);
1691     sim_queue_qi_write (current_cpu, & CPU (h_iccr[ANDSI (FLD (f_CCi), 3)]), opval);
1692     written |= (1 << 7);
1693     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1694   }
1695 } else {
1696   {
1697     UQI opval = ANDQI (CPU (h_iccr[ANDSI (FLD (f_CCi), 3)]), 3);
1698     sim_queue_qi_write (current_cpu, & CPU (h_iccr[ANDSI (FLD (f_CCi), 3)]), opval);
1699     written |= (1 << 7);
1700     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1701   }
1702 }
1703 }
1704 }
1705 }
1706
1707   abuf->written = written;
1708   return vpc;
1709 #undef FLD
1710 }
1711
1712 /* cxorcc: cxorcc$pack $GRi,$GRj,$GRk,$CCi,$cond */
1713
1714 static SEM_PC
1715 SEM_FN_NAME (frvbf,cxorcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1716 {
1717 #define FLD(f) abuf->fields.sfmt_caddcc.f
1718   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1719   int UNUSED written = 0;
1720   IADDR UNUSED pc = abuf->addr;
1721   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1722
1723 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
1724 {
1725   SI tmp_tmp;
1726   tmp_tmp = XORSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
1727   {
1728     SI opval = tmp_tmp;
1729     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1730     written |= (1 << 6);
1731     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1732   }
1733 if (EQSI (tmp_tmp, 0)) {
1734   {
1735     UQI opval = ORQI (ANDQI (CPU (h_iccr[ANDSI (FLD (f_CCi), 3)]), 7), 4);
1736     sim_queue_qi_write (current_cpu, & CPU (h_iccr[ANDSI (FLD (f_CCi), 3)]), opval);
1737     written |= (1 << 7);
1738     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1739   }
1740 } else {
1741 if (LTSI (tmp_tmp, 0)) {
1742   {
1743     UQI opval = ORQI (ANDQI (CPU (h_iccr[ANDSI (FLD (f_CCi), 3)]), 11), 8);
1744     sim_queue_qi_write (current_cpu, & CPU (h_iccr[ANDSI (FLD (f_CCi), 3)]), opval);
1745     written |= (1 << 7);
1746     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1747   }
1748 } else {
1749   {
1750     UQI opval = ANDQI (CPU (h_iccr[ANDSI (FLD (f_CCi), 3)]), 3);
1751     sim_queue_qi_write (current_cpu, & CPU (h_iccr[ANDSI (FLD (f_CCi), 3)]), opval);
1752     written |= (1 << 7);
1753     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1754   }
1755 }
1756 }
1757 }
1758 }
1759
1760   abuf->written = written;
1761   return vpc;
1762 #undef FLD
1763 }
1764
1765 /* csllcc: csllcc$pack $GRi,$GRj,$GRk,$CCi,$cond */
1766
1767 static SEM_PC
1768 SEM_FN_NAME (frvbf,csllcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1769 {
1770 #define FLD(f) abuf->fields.sfmt_caddcc.f
1771   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1772   int UNUSED written = 0;
1773   IADDR UNUSED pc = abuf->addr;
1774   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1775
1776 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
1777 {
1778   SI tmp_shift;
1779   SI tmp_tmp;
1780   QI tmp_cc;
1781   tmp_shift = ANDSI (GET_H_GR (FLD (f_GRj)), 31);
1782   tmp_cc = frvbf_set_icc_for_shift_left (current_cpu, GET_H_GR (FLD (f_GRi)), tmp_shift, CPU (h_iccr[ANDSI (FLD (f_CCi), 3)]));
1783   tmp_tmp = SLLSI (GET_H_GR (FLD (f_GRi)), tmp_shift);
1784   {
1785     SI opval = tmp_tmp;
1786     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1787     written |= (1 << 6);
1788     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1789   }
1790 if (EQSI (tmp_tmp, 0)) {
1791   tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
1792 } else {
1793 if (LTSI (tmp_tmp, 0)) {
1794   tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
1795 } else {
1796   tmp_cc = ANDQI (tmp_cc, 3);
1797 }
1798 }
1799   {
1800     UQI opval = tmp_cc;
1801     sim_queue_qi_write (current_cpu, & CPU (h_iccr[ANDSI (FLD (f_CCi), 3)]), opval);
1802     written |= (1 << 7);
1803     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1804   }
1805 }
1806 }
1807
1808   abuf->written = written;
1809   return vpc;
1810 #undef FLD
1811 }
1812
1813 /* csrlcc: csrlcc$pack $GRi,$GRj,$GRk,$CCi,$cond */
1814
1815 static SEM_PC
1816 SEM_FN_NAME (frvbf,csrlcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1817 {
1818 #define FLD(f) abuf->fields.sfmt_caddcc.f
1819   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1820   int UNUSED written = 0;
1821   IADDR UNUSED pc = abuf->addr;
1822   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1823
1824 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
1825 {
1826   SI tmp_shift;
1827   SI tmp_tmp;
1828   QI tmp_cc;
1829   tmp_shift = ANDSI (GET_H_GR (FLD (f_GRj)), 31);
1830   tmp_cc = frvbf_set_icc_for_shift_right (current_cpu, GET_H_GR (FLD (f_GRi)), tmp_shift, CPU (h_iccr[ANDSI (FLD (f_CCi), 3)]));
1831   tmp_tmp = SRLSI (GET_H_GR (FLD (f_GRi)), tmp_shift);
1832   {
1833     SI opval = tmp_tmp;
1834     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1835     written |= (1 << 6);
1836     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1837   }
1838 if (EQSI (tmp_tmp, 0)) {
1839   tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
1840 } else {
1841 if (LTSI (tmp_tmp, 0)) {
1842   tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
1843 } else {
1844   tmp_cc = ANDQI (tmp_cc, 3);
1845 }
1846 }
1847   {
1848     UQI opval = tmp_cc;
1849     sim_queue_qi_write (current_cpu, & CPU (h_iccr[ANDSI (FLD (f_CCi), 3)]), opval);
1850     written |= (1 << 7);
1851     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1852   }
1853 }
1854 }
1855
1856   abuf->written = written;
1857   return vpc;
1858 #undef FLD
1859 }
1860
1861 /* csracc: csracc$pack $GRi,$GRj,$GRk,$CCi,$cond */
1862
1863 static SEM_PC
1864 SEM_FN_NAME (frvbf,csracc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1865 {
1866 #define FLD(f) abuf->fields.sfmt_caddcc.f
1867   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1868   int UNUSED written = 0;
1869   IADDR UNUSED pc = abuf->addr;
1870   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1871
1872 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
1873 {
1874   SI tmp_shift;
1875   SI tmp_tmp;
1876   QI tmp_cc;
1877   tmp_shift = ANDSI (GET_H_GR (FLD (f_GRj)), 31);
1878   tmp_cc = frvbf_set_icc_for_shift_right (current_cpu, GET_H_GR (FLD (f_GRi)), tmp_shift, CPU (h_iccr[ANDSI (FLD (f_CCi), 3)]));
1879   tmp_tmp = SRASI (GET_H_GR (FLD (f_GRi)), tmp_shift);
1880   {
1881     SI opval = tmp_tmp;
1882     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1883     written |= (1 << 6);
1884     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1885   }
1886 if (EQSI (tmp_tmp, 0)) {
1887   tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
1888 } else {
1889 if (LTSI (tmp_tmp, 0)) {
1890   tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
1891 } else {
1892   tmp_cc = ANDQI (tmp_cc, 3);
1893 }
1894 }
1895   {
1896     UQI opval = tmp_cc;
1897     sim_queue_qi_write (current_cpu, & CPU (h_iccr[ANDSI (FLD (f_CCi), 3)]), opval);
1898     written |= (1 << 7);
1899     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1900   }
1901 }
1902 }
1903
1904   abuf->written = written;
1905   return vpc;
1906 #undef FLD
1907 }
1908
1909 /* addx: addx$pack $GRi,$GRj,$GRk,$ICCi_1 */
1910
1911 static SEM_PC
1912 SEM_FN_NAME (frvbf,addx) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1913 {
1914 #define FLD(f) abuf->fields.sfmt_addcc.f
1915   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1916   int UNUSED written = 0;
1917   IADDR UNUSED pc = abuf->addr;
1918   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1919
1920   {
1921     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)));
1922     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1923     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1924   }
1925
1926   return vpc;
1927 #undef FLD
1928 }
1929
1930 /* subx: subx$pack $GRi,$GRj,$GRk,$ICCi_1 */
1931
1932 static SEM_PC
1933 SEM_FN_NAME (frvbf,subx) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1934 {
1935 #define FLD(f) abuf->fields.sfmt_addcc.f
1936   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1937   int UNUSED written = 0;
1938   IADDR UNUSED pc = abuf->addr;
1939   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1940
1941   {
1942     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)));
1943     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1944     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1945   }
1946
1947   return vpc;
1948 #undef FLD
1949 }
1950
1951 /* addxcc: addxcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
1952
1953 static SEM_PC
1954 SEM_FN_NAME (frvbf,addxcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1955 {
1956 #define FLD(f) abuf->fields.sfmt_addcc.f
1957   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1958   int UNUSED written = 0;
1959   IADDR UNUSED pc = abuf->addr;
1960   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1961
1962 {
1963   SI tmp_tmp;
1964   QI tmp_cc;
1965   tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
1966   tmp_tmp = ADDCSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), TRUNCQIBI (ANDQI (tmp_cc, 1)));
1967 if (EQBI (ADDOFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), TRUNCQIBI (ANDQI (tmp_cc, 1))), 0)) {
1968   tmp_cc = ANDQI (tmp_cc, 13);
1969 } else {
1970   tmp_cc = ORQI (tmp_cc, 2);
1971 }
1972 if (EQBI (ADDCFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), TRUNCQIBI (ANDQI (tmp_cc, 1))), 0)) {
1973   tmp_cc = ANDQI (tmp_cc, 14);
1974 } else {
1975   tmp_cc = ORQI (tmp_cc, 1);
1976 }
1977 if (EQSI (tmp_tmp, 0)) {
1978   tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
1979 } else {
1980 if (LTSI (tmp_tmp, 0)) {
1981   tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
1982 } else {
1983   tmp_cc = ANDQI (tmp_cc, 3);
1984 }
1985 }
1986   {
1987     SI opval = tmp_tmp;
1988     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1989     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1990   }
1991   {
1992     UQI opval = tmp_cc;
1993     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1994     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1995   }
1996 }
1997
1998   return vpc;
1999 #undef FLD
2000 }
2001
2002 /* subxcc: subxcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
2003
2004 static SEM_PC
2005 SEM_FN_NAME (frvbf,subxcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2006 {
2007 #define FLD(f) abuf->fields.sfmt_addcc.f
2008   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2009   int UNUSED written = 0;
2010   IADDR UNUSED pc = abuf->addr;
2011   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2012
2013 {
2014   SI tmp_tmp;
2015   QI tmp_cc;
2016   tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
2017   tmp_tmp = SUBCSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), TRUNCQIBI (ANDQI (tmp_cc, 1)));
2018 if (EQBI (SUBOFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), TRUNCQIBI (ANDQI (tmp_cc, 1))), 0)) {
2019   tmp_cc = ANDQI (tmp_cc, 13);
2020 } else {
2021   tmp_cc = ORQI (tmp_cc, 2);
2022 }
2023 if (EQBI (SUBCFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), TRUNCQIBI (ANDQI (tmp_cc, 1))), 0)) {
2024   tmp_cc = ANDQI (tmp_cc, 14);
2025 } else {
2026   tmp_cc = ORQI (tmp_cc, 1);
2027 }
2028 if (EQSI (tmp_tmp, 0)) {
2029   tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
2030 } else {
2031 if (LTSI (tmp_tmp, 0)) {
2032   tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
2033 } else {
2034   tmp_cc = ANDQI (tmp_cc, 3);
2035 }
2036 }
2037   {
2038     SI opval = tmp_tmp;
2039     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2040     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2041   }
2042   {
2043     UQI opval = tmp_cc;
2044     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2045     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2046   }
2047 }
2048
2049   return vpc;
2050 #undef FLD
2051 }
2052
2053 /* addss: addss$pack $GRi,$GRj,$GRk */
2054
2055 static SEM_PC
2056 SEM_FN_NAME (frvbf,addss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2057 {
2058 #define FLD(f) abuf->fields.sfmt_addcc.f
2059   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2060   int UNUSED written = 0;
2061   IADDR UNUSED pc = abuf->addr;
2062   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2063
2064 {
2065   {
2066     SI opval = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
2067     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2068     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2069   }
2070 if (ADDOFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), 0)) {
2071   {
2072     SI opval = (GTSI (GET_H_GR (FLD (f_GRi)), 0)) ? (2147483647) : (LTSI (GET_H_GR (FLD (f_GRi)), 0)) ? (0x80000000) : (0);
2073     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2074     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2075   }
2076 }
2077 }
2078
2079   return vpc;
2080 #undef FLD
2081 }
2082
2083 /* subss: subss$pack $GRi,$GRj,$GRk */
2084
2085 static SEM_PC
2086 SEM_FN_NAME (frvbf,subss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2087 {
2088 #define FLD(f) abuf->fields.sfmt_addcc.f
2089   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2090   int UNUSED written = 0;
2091   IADDR UNUSED pc = abuf->addr;
2092   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2093
2094 {
2095   {
2096     SI opval = SUBSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
2097     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2098     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2099   }
2100 if (SUBOFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), 0)) {
2101   {
2102     SI opval = (GTSI (GET_H_GR (FLD (f_GRi)), 0)) ? (2147483647) : (LTSI (GET_H_GR (FLD (f_GRi)), 0)) ? (0x80000000) : (0);
2103     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2104     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2105   }
2106 }
2107 }
2108
2109   return vpc;
2110 #undef FLD
2111 }
2112
2113 /* addi: addi$pack $GRi,$s12,$GRk */
2114
2115 static SEM_PC
2116 SEM_FN_NAME (frvbf,addi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2117 {
2118 #define FLD(f) abuf->fields.sfmt_swapi.f
2119   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2120   int UNUSED written = 0;
2121   IADDR UNUSED pc = abuf->addr;
2122   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2123
2124   {
2125     SI opval = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
2126     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2127     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2128   }
2129
2130   return vpc;
2131 #undef FLD
2132 }
2133
2134 /* subi: subi$pack $GRi,$s12,$GRk */
2135
2136 static SEM_PC
2137 SEM_FN_NAME (frvbf,subi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2138 {
2139 #define FLD(f) abuf->fields.sfmt_swapi.f
2140   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2141   int UNUSED written = 0;
2142   IADDR UNUSED pc = abuf->addr;
2143   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2144
2145   {
2146     SI opval = SUBSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
2147     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2148     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2149   }
2150
2151   return vpc;
2152 #undef FLD
2153 }
2154
2155 /* andi: andi$pack $GRi,$s12,$GRk */
2156
2157 static SEM_PC
2158 SEM_FN_NAME (frvbf,andi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2159 {
2160 #define FLD(f) abuf->fields.sfmt_swapi.f
2161   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2162   int UNUSED written = 0;
2163   IADDR UNUSED pc = abuf->addr;
2164   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2165
2166   {
2167     SI opval = ANDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
2168     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2169     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2170   }
2171
2172   return vpc;
2173 #undef FLD
2174 }
2175
2176 /* ori: ori$pack $GRi,$s12,$GRk */
2177
2178 static SEM_PC
2179 SEM_FN_NAME (frvbf,ori) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2180 {
2181 #define FLD(f) abuf->fields.sfmt_swapi.f
2182   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2183   int UNUSED written = 0;
2184   IADDR UNUSED pc = abuf->addr;
2185   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2186
2187   {
2188     SI opval = ORSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
2189     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2190     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2191   }
2192
2193   return vpc;
2194 #undef FLD
2195 }
2196
2197 /* xori: xori$pack $GRi,$s12,$GRk */
2198
2199 static SEM_PC
2200 SEM_FN_NAME (frvbf,xori) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2201 {
2202 #define FLD(f) abuf->fields.sfmt_swapi.f
2203   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2204   int UNUSED written = 0;
2205   IADDR UNUSED pc = abuf->addr;
2206   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2207
2208   {
2209     SI opval = XORSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
2210     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2211     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2212   }
2213
2214   return vpc;
2215 #undef FLD
2216 }
2217
2218 /* sdivi: sdivi$pack $GRi,$s12,$GRk */
2219
2220 static SEM_PC
2221 SEM_FN_NAME (frvbf,sdivi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2222 {
2223 #define FLD(f) abuf->fields.sfmt_swapi.f
2224   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2225   int UNUSED written = 0;
2226   IADDR UNUSED pc = abuf->addr;
2227   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2228
2229 {
2230 frvbf_signed_integer_divide (current_cpu, GET_H_GR (FLD (f_GRi)), FLD (f_d12), FLD (f_GRk), 0);
2231 ; /*clobber*/
2232 }
2233
2234   return vpc;
2235 #undef FLD
2236 }
2237
2238 /* nsdivi: nsdivi$pack $GRi,$s12,$GRk */
2239
2240 static SEM_PC
2241 SEM_FN_NAME (frvbf,nsdivi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2242 {
2243 #define FLD(f) abuf->fields.sfmt_swapi.f
2244   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2245   int UNUSED written = 0;
2246   IADDR UNUSED pc = abuf->addr;
2247   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2248
2249 {
2250 frvbf_signed_integer_divide (current_cpu, GET_H_GR (FLD (f_GRi)), FLD (f_d12), FLD (f_GRk), 1);
2251 ; /*clobber*/
2252 }
2253
2254   return vpc;
2255 #undef FLD
2256 }
2257
2258 /* udivi: udivi$pack $GRi,$s12,$GRk */
2259
2260 static SEM_PC
2261 SEM_FN_NAME (frvbf,udivi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2262 {
2263 #define FLD(f) abuf->fields.sfmt_swapi.f
2264   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2265   int UNUSED written = 0;
2266   IADDR UNUSED pc = abuf->addr;
2267   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2268
2269 {
2270 frvbf_unsigned_integer_divide (current_cpu, GET_H_GR (FLD (f_GRi)), FLD (f_d12), FLD (f_GRk), 0);
2271 ; /*clobber*/
2272 }
2273
2274   return vpc;
2275 #undef FLD
2276 }
2277
2278 /* nudivi: nudivi$pack $GRi,$s12,$GRk */
2279
2280 static SEM_PC
2281 SEM_FN_NAME (frvbf,nudivi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2282 {
2283 #define FLD(f) abuf->fields.sfmt_swapi.f
2284   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2285   int UNUSED written = 0;
2286   IADDR UNUSED pc = abuf->addr;
2287   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2288
2289 {
2290 frvbf_unsigned_integer_divide (current_cpu, GET_H_GR (FLD (f_GRi)), FLD (f_d12), FLD (f_GRk), 1);
2291 ; /*clobber*/
2292 }
2293
2294   return vpc;
2295 #undef FLD
2296 }
2297
2298 /* smuli: smuli$pack $GRi,$s12,$GRdoublek */
2299
2300 static SEM_PC
2301 SEM_FN_NAME (frvbf,smuli) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2302 {
2303 #define FLD(f) abuf->fields.sfmt_smuli.f
2304   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2305   int UNUSED written = 0;
2306   IADDR UNUSED pc = abuf->addr;
2307   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2308
2309   {
2310     DI opval = MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi))), EXTSIDI (FLD (f_d12)));
2311     sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
2312     TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
2313   }
2314
2315   return vpc;
2316 #undef FLD
2317 }
2318
2319 /* umuli: umuli$pack $GRi,$s12,$GRdoublek */
2320
2321 static SEM_PC
2322 SEM_FN_NAME (frvbf,umuli) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2323 {
2324 #define FLD(f) abuf->fields.sfmt_smuli.f
2325   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2326   int UNUSED written = 0;
2327   IADDR UNUSED pc = abuf->addr;
2328   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2329
2330   {
2331     DI opval = MULDI (ZEXTSIDI (GET_H_GR (FLD (f_GRi))), ZEXTSIDI (FLD (f_d12)));
2332     sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
2333     TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
2334   }
2335
2336   return vpc;
2337 #undef FLD
2338 }
2339
2340 /* slli: slli$pack $GRi,$s12,$GRk */
2341
2342 static SEM_PC
2343 SEM_FN_NAME (frvbf,slli) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2344 {
2345 #define FLD(f) abuf->fields.sfmt_swapi.f
2346   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2347   int UNUSED written = 0;
2348   IADDR UNUSED pc = abuf->addr;
2349   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2350
2351   {
2352     SI opval = SLLSI (GET_H_GR (FLD (f_GRi)), ANDSI (FLD (f_d12), 31));
2353     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2354     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2355   }
2356
2357   return vpc;
2358 #undef FLD
2359 }
2360
2361 /* srli: srli$pack $GRi,$s12,$GRk */
2362
2363 static SEM_PC
2364 SEM_FN_NAME (frvbf,srli) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2365 {
2366 #define FLD(f) abuf->fields.sfmt_swapi.f
2367   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2368   int UNUSED written = 0;
2369   IADDR UNUSED pc = abuf->addr;
2370   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2371
2372   {
2373     SI opval = SRLSI (GET_H_GR (FLD (f_GRi)), ANDSI (FLD (f_d12), 31));
2374     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2375     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2376   }
2377
2378   return vpc;
2379 #undef FLD
2380 }
2381
2382 /* srai: srai$pack $GRi,$s12,$GRk */
2383
2384 static SEM_PC
2385 SEM_FN_NAME (frvbf,srai) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2386 {
2387 #define FLD(f) abuf->fields.sfmt_swapi.f
2388   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2389   int UNUSED written = 0;
2390   IADDR UNUSED pc = abuf->addr;
2391   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2392
2393   {
2394     SI opval = SRASI (GET_H_GR (FLD (f_GRi)), ANDSI (FLD (f_d12), 31));
2395     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2396     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2397   }
2398
2399   return vpc;
2400 #undef FLD
2401 }
2402
2403 /* scani: scani$pack $GRi,$s12,$GRk */
2404
2405 static SEM_PC
2406 SEM_FN_NAME (frvbf,scani) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2407 {
2408 #define FLD(f) abuf->fields.sfmt_swapi.f
2409   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2410   int UNUSED written = 0;
2411   IADDR UNUSED pc = abuf->addr;
2412   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2413
2414 {
2415   SI tmp_tmp1;
2416   SI tmp_tmp2;
2417   tmp_tmp1 = GET_H_GR (FLD (f_GRi));
2418   tmp_tmp2 = SRASI (FLD (f_d12), 1);
2419   {
2420     SI opval = frvbf_scan_result (current_cpu, XORSI (tmp_tmp1, tmp_tmp2));
2421     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2422     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2423   }
2424 }
2425
2426   return vpc;
2427 #undef FLD
2428 }
2429
2430 /* addicc: addicc$pack $GRi,$s10,$GRk,$ICCi_1 */
2431
2432 static SEM_PC
2433 SEM_FN_NAME (frvbf,addicc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2434 {
2435 #define FLD(f) abuf->fields.sfmt_addicc.f
2436   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2437   int UNUSED written = 0;
2438   IADDR UNUSED pc = abuf->addr;
2439   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2440
2441 {
2442   BI tmp_tmp;
2443   QI tmp_cc;
2444   SI tmp_result;
2445   tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
2446   tmp_tmp = ADDOFSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), 0);
2447 if (EQBI (tmp_tmp, 0)) {
2448   tmp_cc = ANDQI (tmp_cc, 13);
2449 } else {
2450   tmp_cc = ORQI (tmp_cc, 2);
2451 }
2452   tmp_tmp = ADDCFSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), 0);
2453 if (EQBI (tmp_tmp, 0)) {
2454   tmp_cc = ANDQI (tmp_cc, 14);
2455 } else {
2456   tmp_cc = ORQI (tmp_cc, 1);
2457 }
2458   tmp_result = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10));
2459 if (EQSI (tmp_result, 0)) {
2460   tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
2461 } else {
2462 if (LTSI (tmp_result, 0)) {
2463   tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
2464 } else {
2465   tmp_cc = ANDQI (tmp_cc, 3);
2466 }
2467 }
2468   {
2469     SI opval = tmp_result;
2470     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2471     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2472   }
2473   {
2474     UQI opval = tmp_cc;
2475     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2476     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2477   }
2478 }
2479
2480   return vpc;
2481 #undef FLD
2482 }
2483
2484 /* subicc: subicc$pack $GRi,$s10,$GRk,$ICCi_1 */
2485
2486 static SEM_PC
2487 SEM_FN_NAME (frvbf,subicc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2488 {
2489 #define FLD(f) abuf->fields.sfmt_addicc.f
2490   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2491   int UNUSED written = 0;
2492   IADDR UNUSED pc = abuf->addr;
2493   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2494
2495 {
2496   BI tmp_tmp;
2497   QI tmp_cc;
2498   SI tmp_result;
2499   tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
2500   tmp_tmp = SUBOFSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), 0);
2501 if (EQBI (tmp_tmp, 0)) {
2502   tmp_cc = ANDQI (tmp_cc, 13);
2503 } else {
2504   tmp_cc = ORQI (tmp_cc, 2);
2505 }
2506   tmp_tmp = SUBCFSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), 0);
2507 if (EQBI (tmp_tmp, 0)) {
2508   tmp_cc = ANDQI (tmp_cc, 14);
2509 } else {
2510   tmp_cc = ORQI (tmp_cc, 1);
2511 }
2512   tmp_result = SUBSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10));
2513 if (EQSI (tmp_result, 0)) {
2514   tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
2515 } else {
2516 if (LTSI (tmp_result, 0)) {
2517   tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
2518 } else {
2519   tmp_cc = ANDQI (tmp_cc, 3);
2520 }
2521 }
2522   {
2523     SI opval = tmp_result;
2524     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2525     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2526   }
2527   {
2528     UQI opval = tmp_cc;
2529     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2530     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2531   }
2532 }
2533
2534   return vpc;
2535 #undef FLD
2536 }
2537
2538 /* andicc: andicc$pack $GRi,$s10,$GRk,$ICCi_1 */
2539
2540 static SEM_PC
2541 SEM_FN_NAME (frvbf,andicc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2542 {
2543 #define FLD(f) abuf->fields.sfmt_addicc.f
2544   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2545   int UNUSED written = 0;
2546   IADDR UNUSED pc = abuf->addr;
2547   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2548
2549 {
2550   SI tmp_tmp;
2551   tmp_tmp = ANDSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10));
2552   {
2553     SI opval = tmp_tmp;
2554     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2555     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2556   }
2557 if (EQSI (tmp_tmp, 0)) {
2558   {
2559     UQI opval = ORQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 7), 4);
2560     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2561     written |= (1 << 4);
2562     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2563   }
2564 } else {
2565 if (LTSI (tmp_tmp, 0)) {
2566   {
2567     UQI opval = ORQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 11), 8);
2568     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2569     written |= (1 << 4);
2570     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2571   }
2572 } else {
2573   {
2574     UQI opval = ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 3);
2575     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2576     written |= (1 << 4);
2577     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2578   }
2579 }
2580 }
2581 }
2582
2583   abuf->written = written;
2584   return vpc;
2585 #undef FLD
2586 }
2587
2588 /* oricc: oricc$pack $GRi,$s10,$GRk,$ICCi_1 */
2589
2590 static SEM_PC
2591 SEM_FN_NAME (frvbf,oricc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2592 {
2593 #define FLD(f) abuf->fields.sfmt_addicc.f
2594   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2595   int UNUSED written = 0;
2596   IADDR UNUSED pc = abuf->addr;
2597   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2598
2599 {
2600   SI tmp_tmp;
2601   tmp_tmp = ORSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10));
2602   {
2603     SI opval = tmp_tmp;
2604     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2605     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2606   }
2607 if (EQSI (tmp_tmp, 0)) {
2608   {
2609     UQI opval = ORQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 7), 4);
2610     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2611     written |= (1 << 4);
2612     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2613   }
2614 } else {
2615 if (LTSI (tmp_tmp, 0)) {
2616   {
2617     UQI opval = ORQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 11), 8);
2618     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2619     written |= (1 << 4);
2620     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2621   }
2622 } else {
2623   {
2624     UQI opval = ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 3);
2625     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2626     written |= (1 << 4);
2627     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2628   }
2629 }
2630 }
2631 }
2632
2633   abuf->written = written;
2634   return vpc;
2635 #undef FLD
2636 }
2637
2638 /* xoricc: xoricc$pack $GRi,$s10,$GRk,$ICCi_1 */
2639
2640 static SEM_PC
2641 SEM_FN_NAME (frvbf,xoricc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2642 {
2643 #define FLD(f) abuf->fields.sfmt_addicc.f
2644   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2645   int UNUSED written = 0;
2646   IADDR UNUSED pc = abuf->addr;
2647   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2648
2649 {
2650   SI tmp_tmp;
2651   tmp_tmp = XORSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10));
2652   {
2653     SI opval = tmp_tmp;
2654     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2655     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2656   }
2657 if (EQSI (tmp_tmp, 0)) {
2658   {
2659     UQI opval = ORQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 7), 4);
2660     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2661     written |= (1 << 4);
2662     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2663   }
2664 } else {
2665 if (LTSI (tmp_tmp, 0)) {
2666   {
2667     UQI opval = ORQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 11), 8);
2668     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2669     written |= (1 << 4);
2670     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2671   }
2672 } else {
2673   {
2674     UQI opval = ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 3);
2675     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2676     written |= (1 << 4);
2677     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2678   }
2679 }
2680 }
2681 }
2682
2683   abuf->written = written;
2684   return vpc;
2685 #undef FLD
2686 }
2687
2688 /* smulicc: smulicc$pack $GRi,$s10,$GRdoublek,$ICCi_1 */
2689
2690 static SEM_PC
2691 SEM_FN_NAME (frvbf,smulicc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2692 {
2693 #define FLD(f) abuf->fields.sfmt_smulicc.f
2694   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2695   int UNUSED written = 0;
2696   IADDR UNUSED pc = abuf->addr;
2697   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2698
2699 {
2700   DI tmp_tmp;
2701   QI tmp_cc;
2702   tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
2703   tmp_tmp = MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi))), EXTSIDI (FLD (f_s10)));
2704 if (EQDI (SRLDI (tmp_tmp, 63), 0)) {
2705   tmp_cc = ANDQI (tmp_cc, 7);
2706 } else {
2707   tmp_cc = ORQI (tmp_cc, 8);
2708 }
2709 if (EQBI (EQDI (tmp_tmp, 0), 0)) {
2710   tmp_cc = ANDQI (tmp_cc, 11);
2711 } else {
2712   tmp_cc = ORQI (tmp_cc, 4);
2713 }
2714   {
2715     DI opval = tmp_tmp;
2716     sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
2717     TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
2718   }
2719   {
2720     UQI opval = tmp_cc;
2721     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2722     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2723   }
2724 }
2725
2726   return vpc;
2727 #undef FLD
2728 }
2729
2730 /* umulicc: umulicc$pack $GRi,$s10,$GRdoublek,$ICCi_1 */
2731
2732 static SEM_PC
2733 SEM_FN_NAME (frvbf,umulicc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2734 {
2735 #define FLD(f) abuf->fields.sfmt_smulicc.f
2736   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2737   int UNUSED written = 0;
2738   IADDR UNUSED pc = abuf->addr;
2739   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2740
2741 {
2742   DI tmp_tmp;
2743   QI tmp_cc;
2744   tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
2745   tmp_tmp = MULDI (ZEXTSIDI (GET_H_GR (FLD (f_GRi))), ZEXTSIDI (FLD (f_s10)));
2746 if (EQDI (SRLDI (tmp_tmp, 63), 0)) {
2747   tmp_cc = ANDQI (tmp_cc, 7);
2748 } else {
2749   tmp_cc = ORQI (tmp_cc, 8);
2750 }
2751 if (EQBI (EQDI (tmp_tmp, 0), 0)) {
2752   tmp_cc = ANDQI (tmp_cc, 11);
2753 } else {
2754   tmp_cc = ORQI (tmp_cc, 4);
2755 }
2756   {
2757     DI opval = tmp_tmp;
2758     sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
2759     TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
2760   }
2761   {
2762     UQI opval = tmp_cc;
2763     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2764     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2765   }
2766 }
2767
2768   return vpc;
2769 #undef FLD
2770 }
2771
2772 /* sllicc: sllicc$pack $GRi,$s10,$GRk,$ICCi_1 */
2773
2774 static SEM_PC
2775 SEM_FN_NAME (frvbf,sllicc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2776 {
2777 #define FLD(f) abuf->fields.sfmt_addicc.f
2778   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2779   int UNUSED written = 0;
2780   IADDR UNUSED pc = abuf->addr;
2781   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2782
2783 {
2784   SI tmp_shift;
2785   SI tmp_tmp;
2786   QI tmp_cc;
2787   tmp_shift = ANDSI (FLD (f_s10), 31);
2788   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)]));
2789   tmp_tmp = SLLSI (GET_H_GR (FLD (f_GRi)), tmp_shift);
2790   {
2791     SI opval = tmp_tmp;
2792     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2793     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2794   }
2795 if (EQSI (tmp_tmp, 0)) {
2796   tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
2797 } else {
2798 if (LTSI (tmp_tmp, 0)) {
2799   tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
2800 } else {
2801   tmp_cc = ANDQI (tmp_cc, 3);
2802 }
2803 }
2804   {
2805     UQI opval = tmp_cc;
2806     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2807     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2808   }
2809 }
2810
2811   return vpc;
2812 #undef FLD
2813 }
2814
2815 /* srlicc: srlicc$pack $GRi,$s10,$GRk,$ICCi_1 */
2816
2817 static SEM_PC
2818 SEM_FN_NAME (frvbf,srlicc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2819 {
2820 #define FLD(f) abuf->fields.sfmt_addicc.f
2821   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2822   int UNUSED written = 0;
2823   IADDR UNUSED pc = abuf->addr;
2824   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2825
2826 {
2827   SI tmp_shift;
2828   SI tmp_tmp;
2829   QI tmp_cc;
2830   tmp_shift = ANDSI (FLD (f_s10), 31);
2831   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)]));
2832   tmp_tmp = SRLSI (GET_H_GR (FLD (f_GRi)), tmp_shift);
2833   {
2834     SI opval = tmp_tmp;
2835     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2836     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2837   }
2838 if (EQSI (tmp_tmp, 0)) {
2839   tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
2840 } else {
2841 if (LTSI (tmp_tmp, 0)) {
2842   tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
2843 } else {
2844   tmp_cc = ANDQI (tmp_cc, 3);
2845 }
2846 }
2847   {
2848     UQI opval = tmp_cc;
2849     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2850     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2851   }
2852 }
2853
2854   return vpc;
2855 #undef FLD
2856 }
2857
2858 /* sraicc: sraicc$pack $GRi,$s10,$GRk,$ICCi_1 */
2859
2860 static SEM_PC
2861 SEM_FN_NAME (frvbf,sraicc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2862 {
2863 #define FLD(f) abuf->fields.sfmt_addicc.f
2864   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2865   int UNUSED written = 0;
2866   IADDR UNUSED pc = abuf->addr;
2867   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2868
2869 {
2870   SI tmp_shift;
2871   SI tmp_tmp;
2872   QI tmp_cc;
2873   tmp_shift = ANDSI (FLD (f_s10), 31);
2874   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)]));
2875   tmp_tmp = SRASI (GET_H_GR (FLD (f_GRi)), tmp_shift);
2876   {
2877     SI opval = tmp_tmp;
2878     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2879     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2880   }
2881 if (EQSI (tmp_tmp, 0)) {
2882   tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
2883 } else {
2884 if (LTSI (tmp_tmp, 0)) {
2885   tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
2886 } else {
2887   tmp_cc = ANDQI (tmp_cc, 3);
2888 }
2889 }
2890   {
2891     UQI opval = tmp_cc;
2892     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2893     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2894   }
2895 }
2896
2897   return vpc;
2898 #undef FLD
2899 }
2900
2901 /* addxi: addxi$pack $GRi,$s10,$GRk,$ICCi_1 */
2902
2903 static SEM_PC
2904 SEM_FN_NAME (frvbf,addxi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2905 {
2906 #define FLD(f) abuf->fields.sfmt_addicc.f
2907   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2908   int UNUSED written = 0;
2909   IADDR UNUSED pc = abuf->addr;
2910   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2911
2912   {
2913     SI opval = ADDCSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 1)));
2914     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2915     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2916   }
2917
2918   return vpc;
2919 #undef FLD
2920 }
2921
2922 /* subxi: subxi$pack $GRi,$s10,$GRk,$ICCi_1 */
2923
2924 static SEM_PC
2925 SEM_FN_NAME (frvbf,subxi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2926 {
2927 #define FLD(f) abuf->fields.sfmt_addicc.f
2928   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2929   int UNUSED written = 0;
2930   IADDR UNUSED pc = abuf->addr;
2931   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2932
2933   {
2934     SI opval = SUBCSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 1)));
2935     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2936     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2937   }
2938
2939   return vpc;
2940 #undef FLD
2941 }
2942
2943 /* addxicc: addxicc$pack $GRi,$s10,$GRk,$ICCi_1 */
2944
2945 static SEM_PC
2946 SEM_FN_NAME (frvbf,addxicc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2947 {
2948 #define FLD(f) abuf->fields.sfmt_addicc.f
2949   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2950   int UNUSED written = 0;
2951   IADDR UNUSED pc = abuf->addr;
2952   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2953
2954 {
2955   SI tmp_tmp;
2956   QI tmp_cc;
2957   tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
2958   tmp_tmp = ADDCSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), TRUNCQIBI (ANDQI (tmp_cc, 1)));
2959 if (EQBI (ADDOFSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), TRUNCQIBI (ANDQI (tmp_cc, 1))), 0)) {
2960   tmp_cc = ANDQI (tmp_cc, 13);
2961 } else {
2962   tmp_cc = ORQI (tmp_cc, 2);
2963 }
2964 if (EQBI (ADDCFSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), TRUNCQIBI (ANDQI (tmp_cc, 1))), 0)) {
2965   tmp_cc = ANDQI (tmp_cc, 14);
2966 } else {
2967   tmp_cc = ORQI (tmp_cc, 1);
2968 }
2969 if (EQSI (tmp_tmp, 0)) {
2970   tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
2971 } else {
2972 if (LTSI (tmp_tmp, 0)) {
2973   tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
2974 } else {
2975   tmp_cc = ANDQI (tmp_cc, 3);
2976 }
2977 }
2978   {
2979     SI opval = tmp_tmp;
2980     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2981     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2982   }
2983   {
2984     UQI opval = tmp_cc;
2985     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2986     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2987   }
2988 }
2989
2990   return vpc;
2991 #undef FLD
2992 }
2993
2994 /* subxicc: subxicc$pack $GRi,$s10,$GRk,$ICCi_1 */
2995
2996 static SEM_PC
2997 SEM_FN_NAME (frvbf,subxicc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2998 {
2999 #define FLD(f) abuf->fields.sfmt_addicc.f
3000   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3001   int UNUSED written = 0;
3002   IADDR UNUSED pc = abuf->addr;
3003   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3004
3005 {
3006   SI tmp_tmp;
3007   QI tmp_cc;
3008   tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
3009   tmp_tmp = SUBCSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), TRUNCQIBI (ANDQI (tmp_cc, 1)));
3010 if (EQBI (SUBOFSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), TRUNCQIBI (ANDQI (tmp_cc, 1))), 0)) {
3011   tmp_cc = ANDQI (tmp_cc, 13);
3012 } else {
3013   tmp_cc = ORQI (tmp_cc, 2);
3014 }
3015 if (EQBI (SUBCFSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), TRUNCQIBI (ANDQI (tmp_cc, 1))), 0)) {
3016   tmp_cc = ANDQI (tmp_cc, 14);
3017 } else {
3018   tmp_cc = ORQI (tmp_cc, 1);
3019 }
3020 if (EQSI (tmp_tmp, 0)) {
3021   tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
3022 } else {
3023 if (LTSI (tmp_tmp, 0)) {
3024   tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
3025 } else {
3026   tmp_cc = ANDQI (tmp_cc, 3);
3027 }
3028 }
3029   {
3030     SI opval = tmp_tmp;
3031     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3032     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3033   }
3034   {
3035     UQI opval = tmp_cc;
3036     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
3037     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
3038   }
3039 }
3040
3041   return vpc;
3042 #undef FLD
3043 }
3044
3045 /* cmpb: cmpb$pack $GRi,$GRj,$ICCi_1 */
3046
3047 static SEM_PC
3048 SEM_FN_NAME (frvbf,cmpb) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3049 {
3050 #define FLD(f) abuf->fields.sfmt_smulcc.f
3051   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3052   int UNUSED written = 0;
3053   IADDR UNUSED pc = abuf->addr;
3054   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3055
3056 {
3057   QI tmp_cc;
3058 if (EQBI (EQSI (ANDSI (GET_H_GR (FLD (f_GRi)), 0xff000000), ANDSI (GET_H_GR (FLD (f_GRj)), 0xff000000)), 0)) {
3059   tmp_cc = ANDQI (tmp_cc, 7);
3060 } else {
3061   tmp_cc = ORQI (tmp_cc, 8);
3062 }
3063 if (EQBI (EQSI (ANDSI (GET_H_GR (FLD (f_GRi)), 16711680), ANDSI (GET_H_GR (FLD (f_GRj)), 16711680)), 0)) {
3064   tmp_cc = ANDQI (tmp_cc, 11);
3065 } else {
3066   tmp_cc = ORQI (tmp_cc, 4);
3067 }
3068 if (EQBI (EQSI (ANDSI (GET_H_GR (FLD (f_GRi)), 65280), ANDSI (GET_H_GR (FLD (f_GRj)), 65280)), 0)) {
3069   tmp_cc = ANDQI (tmp_cc, 13);
3070 } else {
3071   tmp_cc = ORQI (tmp_cc, 2);
3072 }
3073 if (EQBI (EQSI (ANDSI (GET_H_GR (FLD (f_GRi)), 255), ANDSI (GET_H_GR (FLD (f_GRj)), 255)), 0)) {
3074   tmp_cc = ANDQI (tmp_cc, 14);
3075 } else {
3076   tmp_cc = ORQI (tmp_cc, 1);
3077 }
3078   {
3079     UQI opval = tmp_cc;
3080     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
3081     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
3082   }
3083 }
3084
3085   return vpc;
3086 #undef FLD
3087 }
3088
3089 /* cmpba: cmpba$pack $GRi,$GRj,$ICCi_1 */
3090
3091 static SEM_PC
3092 SEM_FN_NAME (frvbf,cmpba) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3093 {
3094 #define FLD(f) abuf->fields.sfmt_smulcc.f
3095   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3096   int UNUSED written = 0;
3097   IADDR UNUSED pc = abuf->addr;
3098   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3099
3100 {
3101   QI tmp_cc;
3102   tmp_cc = 0;
3103 if (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)) {
3104   tmp_cc = ANDQI (tmp_cc, 14);
3105 } else {
3106   tmp_cc = ORQI (tmp_cc, 1);
3107 }
3108   {
3109     UQI opval = tmp_cc;
3110     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
3111     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
3112   }
3113 }
3114
3115   return vpc;
3116 #undef FLD
3117 }
3118
3119 /* setlo: setlo$pack $ulo16,$GRklo */
3120
3121 static SEM_PC
3122 SEM_FN_NAME (frvbf,setlo) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3123 {
3124 #define FLD(f) abuf->fields.sfmt_setlo.f
3125   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3126   int UNUSED written = 0;
3127   IADDR UNUSED pc = abuf->addr;
3128   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3129
3130   {
3131     UHI opval = FLD (f_u16);
3132     sim_queue_fn_hi_write (current_cpu, frvbf_h_gr_lo_set, FLD (f_GRk), opval);
3133     TRACE_RESULT (current_cpu, abuf, "gr_lo", 'x', opval);
3134   }
3135
3136   return vpc;
3137 #undef FLD
3138 }
3139
3140 /* sethi: sethi$pack $uhi16,$GRkhi */
3141
3142 static SEM_PC
3143 SEM_FN_NAME (frvbf,sethi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3144 {
3145 #define FLD(f) abuf->fields.sfmt_sethi.f
3146   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3147   int UNUSED written = 0;
3148   IADDR UNUSED pc = abuf->addr;
3149   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3150
3151   {
3152     UHI opval = FLD (f_u16);
3153     sim_queue_fn_hi_write (current_cpu, frvbf_h_gr_hi_set, FLD (f_GRk), opval);
3154     TRACE_RESULT (current_cpu, abuf, "gr_hi", 'x', opval);
3155   }
3156
3157   return vpc;
3158 #undef FLD
3159 }
3160
3161 /* setlos: setlos$pack $slo16,$GRk */
3162
3163 static SEM_PC
3164 SEM_FN_NAME (frvbf,setlos) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3165 {
3166 #define FLD(f) abuf->fields.sfmt_setlos.f
3167   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3168   int UNUSED written = 0;
3169   IADDR UNUSED pc = abuf->addr;
3170   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3171
3172   {
3173     SI opval = FLD (f_s16);
3174     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3175     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3176   }
3177
3178   return vpc;
3179 #undef FLD
3180 }
3181
3182 /* ldsb: ldsb$pack @($GRi,$GRj),$GRk */
3183
3184 static SEM_PC
3185 SEM_FN_NAME (frvbf,ldsb) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3186 {
3187 #define FLD(f) abuf->fields.sfmt_addcc.f
3188   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3189   int UNUSED written = 0;
3190   IADDR UNUSED pc = abuf->addr;
3191   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3192
3193   {
3194     SI opval = frvbf_read_mem_QI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3195     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3196     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3197   }
3198
3199   return vpc;
3200 #undef FLD
3201 }
3202
3203 /* ldub: ldub$pack @($GRi,$GRj),$GRk */
3204
3205 static SEM_PC
3206 SEM_FN_NAME (frvbf,ldub) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3207 {
3208 #define FLD(f) abuf->fields.sfmt_addcc.f
3209   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3210   int UNUSED written = 0;
3211   IADDR UNUSED pc = abuf->addr;
3212   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3213
3214   {
3215     SI opval = frvbf_read_mem_UQI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3216     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3217     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3218   }
3219
3220   return vpc;
3221 #undef FLD
3222 }
3223
3224 /* ldsh: ldsh$pack @($GRi,$GRj),$GRk */
3225
3226 static SEM_PC
3227 SEM_FN_NAME (frvbf,ldsh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3228 {
3229 #define FLD(f) abuf->fields.sfmt_addcc.f
3230   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3231   int UNUSED written = 0;
3232   IADDR UNUSED pc = abuf->addr;
3233   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3234
3235   {
3236     SI opval = frvbf_read_mem_HI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3237     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3238     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3239   }
3240
3241   return vpc;
3242 #undef FLD
3243 }
3244
3245 /* lduh: lduh$pack @($GRi,$GRj),$GRk */
3246
3247 static SEM_PC
3248 SEM_FN_NAME (frvbf,lduh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3249 {
3250 #define FLD(f) abuf->fields.sfmt_addcc.f
3251   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3252   int UNUSED written = 0;
3253   IADDR UNUSED pc = abuf->addr;
3254   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3255
3256   {
3257     SI opval = frvbf_read_mem_UHI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3258     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3259     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3260   }
3261
3262   return vpc;
3263 #undef FLD
3264 }
3265
3266 /* ld: ld$pack $ldann($GRi,$GRj),$GRk */
3267
3268 static SEM_PC
3269 SEM_FN_NAME (frvbf,ld) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3270 {
3271 #define FLD(f) abuf->fields.sfmt_addcc.f
3272   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3273   int UNUSED written = 0;
3274   IADDR UNUSED pc = abuf->addr;
3275   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3276
3277   {
3278     SI opval = frvbf_read_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3279     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3280     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3281   }
3282
3283   return vpc;
3284 #undef FLD
3285 }
3286
3287 /* ldbf: ldbf$pack @($GRi,$GRj),$FRintk */
3288
3289 static SEM_PC
3290 SEM_FN_NAME (frvbf,ldbf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3291 {
3292 #define FLD(f) abuf->fields.sfmt_cldbfu.f
3293   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3294   int UNUSED written = 0;
3295   IADDR UNUSED pc = abuf->addr;
3296   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3297
3298   {
3299     SI opval = frvbf_read_mem_UQI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3300     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
3301     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
3302   }
3303
3304   return vpc;
3305 #undef FLD
3306 }
3307
3308 /* ldhf: ldhf$pack @($GRi,$GRj),$FRintk */
3309
3310 static SEM_PC
3311 SEM_FN_NAME (frvbf,ldhf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3312 {
3313 #define FLD(f) abuf->fields.sfmt_cldbfu.f
3314   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3315   int UNUSED written = 0;
3316   IADDR UNUSED pc = abuf->addr;
3317   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3318
3319   {
3320     SI opval = frvbf_read_mem_UHI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3321     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
3322     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
3323   }
3324
3325   return vpc;
3326 #undef FLD
3327 }
3328
3329 /* ldf: ldf$pack @($GRi,$GRj),$FRintk */
3330
3331 static SEM_PC
3332 SEM_FN_NAME (frvbf,ldf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3333 {
3334 #define FLD(f) abuf->fields.sfmt_cldbfu.f
3335   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3336   int UNUSED written = 0;
3337   IADDR UNUSED pc = abuf->addr;
3338   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3339
3340   {
3341     SI opval = frvbf_read_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3342     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
3343     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
3344   }
3345
3346   return vpc;
3347 #undef FLD
3348 }
3349
3350 /* ldc: ldc$pack @($GRi,$GRj),$CPRk */
3351
3352 static SEM_PC
3353 SEM_FN_NAME (frvbf,ldc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3354 {
3355 #define FLD(f) abuf->fields.sfmt_ldcu.f
3356   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3357   int UNUSED written = 0;
3358   IADDR UNUSED pc = abuf->addr;
3359   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3360
3361   {
3362     SI opval = frvbf_read_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3363     sim_queue_si_write (current_cpu, & CPU (h_cpr[FLD (f_CPRk)]), opval);
3364     TRACE_RESULT (current_cpu, abuf, "cpr", 'x', opval);
3365   }
3366
3367   return vpc;
3368 #undef FLD
3369 }
3370
3371 /* nldsb: nldsb$pack @($GRi,$GRj),$GRk */
3372
3373 static SEM_PC
3374 SEM_FN_NAME (frvbf,nldsb) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3375 {
3376 #define FLD(f) abuf->fields.sfmt_addcc.f
3377   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3378   int UNUSED written = 0;
3379   IADDR UNUSED pc = abuf->addr;
3380   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3381
3382 {
3383   BI tmp_do_op;
3384   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 1, 0);
3385 if (tmp_do_op) {
3386   {
3387     SI opval = frvbf_read_mem_QI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3388     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3389     written |= (1 << 6);
3390     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3391   }
3392 }
3393 }
3394
3395   abuf->written = written;
3396   return vpc;
3397 #undef FLD
3398 }
3399
3400 /* nldub: nldub$pack @($GRi,$GRj),$GRk */
3401
3402 static SEM_PC
3403 SEM_FN_NAME (frvbf,nldub) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3404 {
3405 #define FLD(f) abuf->fields.sfmt_addcc.f
3406   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3407   int UNUSED written = 0;
3408   IADDR UNUSED pc = abuf->addr;
3409   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3410
3411 {
3412   BI tmp_do_op;
3413   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 0, 0);
3414 if (tmp_do_op) {
3415   {
3416     SI opval = frvbf_read_mem_UQI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3417     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3418     written |= (1 << 6);
3419     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3420   }
3421 }
3422 }
3423
3424   abuf->written = written;
3425   return vpc;
3426 #undef FLD
3427 }
3428
3429 /* nldsh: nldsh$pack @($GRi,$GRj),$GRk */
3430
3431 static SEM_PC
3432 SEM_FN_NAME (frvbf,nldsh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3433 {
3434 #define FLD(f) abuf->fields.sfmt_addcc.f
3435   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3436   int UNUSED written = 0;
3437   IADDR UNUSED pc = abuf->addr;
3438   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3439
3440 {
3441   BI tmp_do_op;
3442   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 3, 0);
3443 if (tmp_do_op) {
3444   {
3445     SI opval = frvbf_read_mem_HI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3446     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3447     written |= (1 << 6);
3448     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3449   }
3450 }
3451 }
3452
3453   abuf->written = written;
3454   return vpc;
3455 #undef FLD
3456 }
3457
3458 /* nlduh: nlduh$pack @($GRi,$GRj),$GRk */
3459
3460 static SEM_PC
3461 SEM_FN_NAME (frvbf,nlduh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3462 {
3463 #define FLD(f) abuf->fields.sfmt_addcc.f
3464   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3465   int UNUSED written = 0;
3466   IADDR UNUSED pc = abuf->addr;
3467   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3468
3469 {
3470   BI tmp_do_op;
3471   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 2, 0);
3472 if (tmp_do_op) {
3473   {
3474     SI opval = frvbf_read_mem_UHI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3475     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3476     written |= (1 << 6);
3477     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3478   }
3479 }
3480 }
3481
3482   abuf->written = written;
3483   return vpc;
3484 #undef FLD
3485 }
3486
3487 /* nld: nld$pack @($GRi,$GRj),$GRk */
3488
3489 static SEM_PC
3490 SEM_FN_NAME (frvbf,nld) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3491 {
3492 #define FLD(f) abuf->fields.sfmt_addcc.f
3493   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3494   int UNUSED written = 0;
3495   IADDR UNUSED pc = abuf->addr;
3496   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3497
3498 {
3499   BI tmp_do_op;
3500   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 4, 0);
3501 if (tmp_do_op) {
3502   {
3503     SI opval = frvbf_read_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3504     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3505     written |= (1 << 6);
3506     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3507   }
3508 }
3509 }
3510
3511   abuf->written = written;
3512   return vpc;
3513 #undef FLD
3514 }
3515
3516 /* nldbf: nldbf$pack @($GRi,$GRj),$FRintk */
3517
3518 static SEM_PC
3519 SEM_FN_NAME (frvbf,nldbf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3520 {
3521 #define FLD(f) abuf->fields.sfmt_cldbfu.f
3522   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3523   int UNUSED written = 0;
3524   IADDR UNUSED pc = abuf->addr;
3525   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3526
3527 {
3528   BI tmp_do_op;
3529   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_FRk), 0, 0, 1);
3530 if (tmp_do_op) {
3531   {
3532     SI opval = frvbf_read_mem_UQI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3533     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
3534     written |= (1 << 6);
3535     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
3536   }
3537 }
3538 }
3539
3540   abuf->written = written;
3541   return vpc;
3542 #undef FLD
3543 }
3544
3545 /* nldhf: nldhf$pack @($GRi,$GRj),$FRintk */
3546
3547 static SEM_PC
3548 SEM_FN_NAME (frvbf,nldhf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3549 {
3550 #define FLD(f) abuf->fields.sfmt_cldbfu.f
3551   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3552   int UNUSED written = 0;
3553   IADDR UNUSED pc = abuf->addr;
3554   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3555
3556 {
3557   BI tmp_do_op;
3558   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_FRk), 0, 2, 1);
3559 if (tmp_do_op) {
3560   {
3561     SI opval = frvbf_read_mem_UHI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3562     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
3563     written |= (1 << 6);
3564     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
3565   }
3566 }
3567 }
3568
3569   abuf->written = written;
3570   return vpc;
3571 #undef FLD
3572 }
3573
3574 /* nldf: nldf$pack @($GRi,$GRj),$FRintk */
3575
3576 static SEM_PC
3577 SEM_FN_NAME (frvbf,nldf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3578 {
3579 #define FLD(f) abuf->fields.sfmt_cldbfu.f
3580   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3581   int UNUSED written = 0;
3582   IADDR UNUSED pc = abuf->addr;
3583   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3584
3585 {
3586   BI tmp_do_op;
3587   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_FRk), 0, 4, 1);
3588 if (tmp_do_op) {
3589   {
3590     SI opval = frvbf_read_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3591     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
3592     written |= (1 << 6);
3593     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
3594   }
3595 }
3596 }
3597
3598   abuf->written = written;
3599   return vpc;
3600 #undef FLD
3601 }
3602
3603 /* ldd: ldd$pack $lddann($GRi,$GRj),$GRdoublek */
3604
3605 static SEM_PC
3606 SEM_FN_NAME (frvbf,ldd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3607 {
3608 #define FLD(f) abuf->fields.sfmt_smulcc.f
3609   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3610   int UNUSED written = 0;
3611   IADDR UNUSED pc = abuf->addr;
3612   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3613
3614 {
3615   SI tmp_address;
3616 if (NESI (FLD (f_GRk), 0)) {
3617 {
3618   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3619   {
3620     DI opval = frvbf_read_mem_DI (current_cpu, pc, tmp_address);
3621     sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
3622     written |= (1 << 4);
3623     TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
3624   }
3625 }
3626 }
3627 }
3628
3629   abuf->written = written;
3630   return vpc;
3631 #undef FLD
3632 }
3633
3634 /* lddf: lddf$pack @($GRi,$GRj),$FRdoublek */
3635
3636 static SEM_PC
3637 SEM_FN_NAME (frvbf,lddf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3638 {
3639 #define FLD(f) abuf->fields.sfmt_clddfu.f
3640   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3641   int UNUSED written = 0;
3642   IADDR UNUSED pc = abuf->addr;
3643   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3644
3645 {
3646   SI tmp_address;
3647 {
3648   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3649   {
3650     DF opval = frvbf_read_mem_DF (current_cpu, pc, tmp_address);
3651     sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
3652     TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
3653   }
3654 }
3655 }
3656
3657   return vpc;
3658 #undef FLD
3659 }
3660
3661 /* lddc: lddc$pack @($GRi,$GRj),$CPRdoublek */
3662
3663 static SEM_PC
3664 SEM_FN_NAME (frvbf,lddc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3665 {
3666 #define FLD(f) abuf->fields.sfmt_lddcu.f
3667   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3668   int UNUSED written = 0;
3669   IADDR UNUSED pc = abuf->addr;
3670   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3671
3672 {
3673   SI tmp_address;
3674 {
3675   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3676   {
3677     DI opval = frvbf_read_mem_DI (current_cpu, pc, tmp_address);
3678     sim_queue_fn_di_write (current_cpu, frvbf_h_cpr_double_set, FLD (f_CPRk), opval);
3679     TRACE_RESULT (current_cpu, abuf, "cpr_double", 'D', opval);
3680   }
3681 }
3682 }
3683
3684   return vpc;
3685 #undef FLD
3686 }
3687
3688 /* nldd: nldd$pack @($GRi,$GRj),$GRdoublek */
3689
3690 static SEM_PC
3691 SEM_FN_NAME (frvbf,nldd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3692 {
3693 #define FLD(f) abuf->fields.sfmt_smulcc.f
3694   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3695   int UNUSED written = 0;
3696   IADDR UNUSED pc = abuf->addr;
3697   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3698
3699 {
3700   SI tmp_address;
3701 {
3702   BI tmp_do_op;
3703   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 5, 0);
3704 if (tmp_do_op) {
3705 if (NESI (FLD (f_GRk), 0)) {
3706 {
3707   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3708   {
3709     DI opval = frvbf_read_mem_DI (current_cpu, pc, tmp_address);
3710     sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
3711     written |= (1 << 6);
3712     TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
3713   }
3714 }
3715 }
3716 }
3717 }
3718 }
3719
3720   abuf->written = written;
3721   return vpc;
3722 #undef FLD
3723 }
3724
3725 /* nlddf: nlddf$pack @($GRi,$GRj),$FRdoublek */
3726
3727 static SEM_PC
3728 SEM_FN_NAME (frvbf,nlddf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3729 {
3730 #define FLD(f) abuf->fields.sfmt_clddfu.f
3731   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3732   int UNUSED written = 0;
3733   IADDR UNUSED pc = abuf->addr;
3734   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3735
3736 {
3737   SI tmp_address;
3738 {
3739   BI tmp_do_op;
3740   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_FRk), 0, 5, 1);
3741 if (tmp_do_op) {
3742 {
3743   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3744   {
3745     DF opval = frvbf_read_mem_DF (current_cpu, pc, tmp_address);
3746     sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
3747     written |= (1 << 6);
3748     TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
3749   }
3750 }
3751 }
3752 }
3753 }
3754
3755   abuf->written = written;
3756   return vpc;
3757 #undef FLD
3758 }
3759
3760 /* ldq: ldq$pack @($GRi,$GRj),$GRk */
3761
3762 static SEM_PC
3763 SEM_FN_NAME (frvbf,ldq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3764 {
3765 #define FLD(f) abuf->fields.sfmt_smulcc.f
3766   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3767   int UNUSED written = 0;
3768   IADDR UNUSED pc = abuf->addr;
3769   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3770
3771 {
3772   SI tmp_address;
3773 {
3774   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3775 frvbf_load_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
3776 }
3777 }
3778
3779   return vpc;
3780 #undef FLD
3781 }
3782
3783 /* ldqf: ldqf$pack @($GRi,$GRj),$FRintk */
3784
3785 static SEM_PC
3786 SEM_FN_NAME (frvbf,ldqf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3787 {
3788 #define FLD(f) abuf->fields.sfmt_cstdfu.f
3789   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3790   int UNUSED written = 0;
3791   IADDR UNUSED pc = abuf->addr;
3792   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3793
3794 {
3795   SI tmp_address;
3796 {
3797   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3798 frvbf_load_quad_FRint (current_cpu, pc, tmp_address, FLD (f_FRk));
3799 }
3800 }
3801
3802   return vpc;
3803 #undef FLD
3804 }
3805
3806 /* ldqc: ldqc$pack @($GRi,$GRj),$CPRk */
3807
3808 static SEM_PC
3809 SEM_FN_NAME (frvbf,ldqc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3810 {
3811 #define FLD(f) abuf->fields.sfmt_stdcu.f
3812   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3813   int UNUSED written = 0;
3814   IADDR UNUSED pc = abuf->addr;
3815   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3816
3817 {
3818   SI tmp_address;
3819 {
3820   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3821 frvbf_load_quad_CPR (current_cpu, pc, tmp_address, FLD (f_CPRk));
3822 }
3823 }
3824
3825   return vpc;
3826 #undef FLD
3827 }
3828
3829 /* nldq: nldq$pack @($GRi,$GRj),$GRk */
3830
3831 static SEM_PC
3832 SEM_FN_NAME (frvbf,nldq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3833 {
3834 #define FLD(f) abuf->fields.sfmt_smulcc.f
3835   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3836   int UNUSED written = 0;
3837   IADDR UNUSED pc = abuf->addr;
3838   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3839
3840 {
3841   SI tmp_address;
3842 {
3843   BI tmp_do_op;
3844   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 6, 0);
3845 if (tmp_do_op) {
3846 {
3847   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3848 frvbf_load_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
3849 }
3850 }
3851 }
3852 }
3853
3854   return vpc;
3855 #undef FLD
3856 }
3857
3858 /* nldqf: nldqf$pack @($GRi,$GRj),$FRintk */
3859
3860 static SEM_PC
3861 SEM_FN_NAME (frvbf,nldqf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3862 {
3863 #define FLD(f) abuf->fields.sfmt_cstdfu.f
3864   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3865   int UNUSED written = 0;
3866   IADDR UNUSED pc = abuf->addr;
3867   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3868
3869 {
3870   SI tmp_address;
3871 {
3872   BI tmp_do_op;
3873   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_FRk), 0, 6, 1);
3874 if (tmp_do_op) {
3875 {
3876   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3877 frvbf_load_quad_FRint (current_cpu, pc, tmp_address, FLD (f_FRk));
3878 }
3879 }
3880 }
3881 }
3882
3883   return vpc;
3884 #undef FLD
3885 }
3886
3887 /* ldsbu: ldsbu$pack @($GRi,$GRj),$GRk */
3888
3889 static SEM_PC
3890 SEM_FN_NAME (frvbf,ldsbu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3891 {
3892 #define FLD(f) abuf->fields.sfmt_cldsbu.f
3893   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3894   int UNUSED written = 0;
3895   IADDR UNUSED pc = abuf->addr;
3896   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3897
3898 {
3899   USI tmp_address;
3900   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3901   {
3902     SI opval = frvbf_read_mem_QI (current_cpu, pc, tmp_address);
3903     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3904     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3905   }
3906 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
3907 {
3908   {
3909     SI opval = tmp_address;
3910     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
3911     written |= (1 << 5);
3912     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3913   }
3914 frvbf_force_update (current_cpu);
3915 }
3916 }
3917 }
3918
3919   abuf->written = written;
3920   return vpc;
3921 #undef FLD
3922 }
3923
3924 /* ldubu: ldubu$pack @($GRi,$GRj),$GRk */
3925
3926 static SEM_PC
3927 SEM_FN_NAME (frvbf,ldubu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3928 {
3929 #define FLD(f) abuf->fields.sfmt_cldsbu.f
3930   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3931   int UNUSED written = 0;
3932   IADDR UNUSED pc = abuf->addr;
3933   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3934
3935 {
3936   USI tmp_address;
3937   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3938   {
3939     SI opval = frvbf_read_mem_UQI (current_cpu, pc, tmp_address);
3940     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3941     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3942   }
3943 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
3944 {
3945   {
3946     SI opval = tmp_address;
3947     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
3948     written |= (1 << 5);
3949     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3950   }
3951 frvbf_force_update (current_cpu);
3952 }
3953 }
3954 }
3955
3956   abuf->written = written;
3957   return vpc;
3958 #undef FLD
3959 }
3960
3961 /* ldshu: ldshu$pack @($GRi,$GRj),$GRk */
3962
3963 static SEM_PC
3964 SEM_FN_NAME (frvbf,ldshu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3965 {
3966 #define FLD(f) abuf->fields.sfmt_cldsbu.f
3967   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3968   int UNUSED written = 0;
3969   IADDR UNUSED pc = abuf->addr;
3970   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3971
3972 {
3973   USI tmp_address;
3974   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3975   {
3976     SI opval = frvbf_read_mem_HI (current_cpu, pc, tmp_address);
3977     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3978     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3979   }
3980 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
3981 {
3982   {
3983     SI opval = tmp_address;
3984     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
3985     written |= (1 << 5);
3986     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3987   }
3988 frvbf_force_update (current_cpu);
3989 }
3990 }
3991 }
3992
3993   abuf->written = written;
3994   return vpc;
3995 #undef FLD
3996 }
3997
3998 /* lduhu: lduhu$pack @($GRi,$GRj),$GRk */
3999
4000 static SEM_PC
4001 SEM_FN_NAME (frvbf,lduhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4002 {
4003 #define FLD(f) abuf->fields.sfmt_cldsbu.f
4004   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4005   int UNUSED written = 0;
4006   IADDR UNUSED pc = abuf->addr;
4007   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4008
4009 {
4010   USI tmp_address;
4011   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4012   {
4013     SI opval = frvbf_read_mem_UHI (current_cpu, pc, tmp_address);
4014     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
4015     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4016   }
4017 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
4018 {
4019   {
4020     SI opval = tmp_address;
4021     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4022     written |= (1 << 5);
4023     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4024   }
4025 frvbf_force_update (current_cpu);
4026 }
4027 }
4028 }
4029
4030   abuf->written = written;
4031   return vpc;
4032 #undef FLD
4033 }
4034
4035 /* ldu: ldu$pack @($GRi,$GRj),$GRk */
4036
4037 static SEM_PC
4038 SEM_FN_NAME (frvbf,ldu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4039 {
4040 #define FLD(f) abuf->fields.sfmt_cldsbu.f
4041   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4042   int UNUSED written = 0;
4043   IADDR UNUSED pc = abuf->addr;
4044   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4045
4046 {
4047   USI tmp_address;
4048   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4049   {
4050     SI opval = frvbf_read_mem_SI (current_cpu, pc, tmp_address);
4051     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
4052     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4053   }
4054 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
4055 {
4056   {
4057     SI opval = tmp_address;
4058     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4059     written |= (1 << 5);
4060     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4061   }
4062 frvbf_force_update (current_cpu);
4063 }
4064 }
4065 }
4066
4067   abuf->written = written;
4068   return vpc;
4069 #undef FLD
4070 }
4071
4072 /* nldsbu: nldsbu$pack @($GRi,$GRj),$GRk */
4073
4074 static SEM_PC
4075 SEM_FN_NAME (frvbf,nldsbu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4076 {
4077 #define FLD(f) abuf->fields.sfmt_cldsbu.f
4078   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4079   int UNUSED written = 0;
4080   IADDR UNUSED pc = abuf->addr;
4081   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4082
4083 {
4084   BI tmp_do_op;
4085   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 1, 0);
4086 if (tmp_do_op) {
4087 {
4088   USI tmp_address;
4089   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4090   {
4091     SI opval = frvbf_read_mem_QI (current_cpu, pc, tmp_address);
4092     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
4093     written |= (1 << 7);
4094     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4095   }
4096 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
4097 {
4098   {
4099     SI opval = tmp_address;
4100     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4101     written |= (1 << 6);
4102     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4103   }
4104 frvbf_force_update (current_cpu);
4105 }
4106 }
4107 }
4108 }
4109 }
4110
4111   abuf->written = written;
4112   return vpc;
4113 #undef FLD
4114 }
4115
4116 /* nldubu: nldubu$pack @($GRi,$GRj),$GRk */
4117
4118 static SEM_PC
4119 SEM_FN_NAME (frvbf,nldubu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4120 {
4121 #define FLD(f) abuf->fields.sfmt_cldsbu.f
4122   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4123   int UNUSED written = 0;
4124   IADDR UNUSED pc = abuf->addr;
4125   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4126
4127 {
4128   BI tmp_do_op;
4129   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 0, 0);
4130 if (tmp_do_op) {
4131 {
4132   USI tmp_address;
4133   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4134   {
4135     SI opval = frvbf_read_mem_UQI (current_cpu, pc, tmp_address);
4136     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
4137     written |= (1 << 7);
4138     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4139   }
4140 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
4141 {
4142   {
4143     SI opval = tmp_address;
4144     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4145     written |= (1 << 6);
4146     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4147   }
4148 frvbf_force_update (current_cpu);
4149 }
4150 }
4151 }
4152 }
4153 }
4154
4155   abuf->written = written;
4156   return vpc;
4157 #undef FLD
4158 }
4159
4160 /* nldshu: nldshu$pack @($GRi,$GRj),$GRk */
4161
4162 static SEM_PC
4163 SEM_FN_NAME (frvbf,nldshu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4164 {
4165 #define FLD(f) abuf->fields.sfmt_cldsbu.f
4166   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4167   int UNUSED written = 0;
4168   IADDR UNUSED pc = abuf->addr;
4169   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4170
4171 {
4172   BI tmp_do_op;
4173   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 3, 0);
4174 if (tmp_do_op) {
4175 {
4176   USI tmp_address;
4177   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4178   {
4179     SI opval = frvbf_read_mem_HI (current_cpu, pc, tmp_address);
4180     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
4181     written |= (1 << 7);
4182     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4183   }
4184 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
4185 {
4186   {
4187     SI opval = tmp_address;
4188     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4189     written |= (1 << 6);
4190     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4191   }
4192 frvbf_force_update (current_cpu);
4193 }
4194 }
4195 }
4196 }
4197 }
4198
4199   abuf->written = written;
4200   return vpc;
4201 #undef FLD
4202 }
4203
4204 /* nlduhu: nlduhu$pack @($GRi,$GRj),$GRk */
4205
4206 static SEM_PC
4207 SEM_FN_NAME (frvbf,nlduhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4208 {
4209 #define FLD(f) abuf->fields.sfmt_cldsbu.f
4210   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4211   int UNUSED written = 0;
4212   IADDR UNUSED pc = abuf->addr;
4213   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4214
4215 {
4216   BI tmp_do_op;
4217   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 2, 0);
4218 if (tmp_do_op) {
4219 {
4220   USI tmp_address;
4221   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4222   {
4223     SI opval = frvbf_read_mem_UHI (current_cpu, pc, tmp_address);
4224     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
4225     written |= (1 << 7);
4226     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4227   }
4228 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
4229 {
4230   {
4231     SI opval = tmp_address;
4232     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4233     written |= (1 << 6);
4234     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4235   }
4236 frvbf_force_update (current_cpu);
4237 }
4238 }
4239 }
4240 }
4241 }
4242
4243   abuf->written = written;
4244   return vpc;
4245 #undef FLD
4246 }
4247
4248 /* nldu: nldu$pack @($GRi,$GRj),$GRk */
4249
4250 static SEM_PC
4251 SEM_FN_NAME (frvbf,nldu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4252 {
4253 #define FLD(f) abuf->fields.sfmt_cldsbu.f
4254   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4255   int UNUSED written = 0;
4256   IADDR UNUSED pc = abuf->addr;
4257   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4258
4259 {
4260   BI tmp_do_op;
4261   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 4, 0);
4262 if (tmp_do_op) {
4263 {
4264   USI tmp_address;
4265   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4266   {
4267     SI opval = frvbf_read_mem_SI (current_cpu, pc, tmp_address);
4268     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
4269     written |= (1 << 7);
4270     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4271   }
4272 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
4273 {
4274   {
4275     SI opval = tmp_address;
4276     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4277     written |= (1 << 6);
4278     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4279   }
4280 frvbf_force_update (current_cpu);
4281 }
4282 }
4283 }
4284 }
4285 }
4286
4287   abuf->written = written;
4288   return vpc;
4289 #undef FLD
4290 }
4291
4292 /* ldbfu: ldbfu$pack @($GRi,$GRj),$FRintk */
4293
4294 static SEM_PC
4295 SEM_FN_NAME (frvbf,ldbfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4296 {
4297 #define FLD(f) abuf->fields.sfmt_cldbfu.f
4298   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4299   int UNUSED written = 0;
4300   IADDR UNUSED pc = abuf->addr;
4301   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4302
4303 {
4304   USI tmp_address;
4305   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4306   {
4307     SI opval = frvbf_read_mem_UQI (current_cpu, pc, tmp_address);
4308     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
4309     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
4310   }
4311   {
4312     SI opval = tmp_address;
4313     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4314     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4315   }
4316 frvbf_force_update (current_cpu);
4317 }
4318
4319   return vpc;
4320 #undef FLD
4321 }
4322
4323 /* ldhfu: ldhfu$pack @($GRi,$GRj),$FRintk */
4324
4325 static SEM_PC
4326 SEM_FN_NAME (frvbf,ldhfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4327 {
4328 #define FLD(f) abuf->fields.sfmt_cldbfu.f
4329   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4330   int UNUSED written = 0;
4331   IADDR UNUSED pc = abuf->addr;
4332   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4333
4334 {
4335   USI tmp_address;
4336   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4337   {
4338     SI opval = frvbf_read_mem_UHI (current_cpu, pc, tmp_address);
4339     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
4340     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
4341   }
4342   {
4343     SI opval = tmp_address;
4344     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4345     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4346   }
4347 frvbf_force_update (current_cpu);
4348 }
4349
4350   return vpc;
4351 #undef FLD
4352 }
4353
4354 /* ldfu: ldfu$pack @($GRi,$GRj),$FRintk */
4355
4356 static SEM_PC
4357 SEM_FN_NAME (frvbf,ldfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4358 {
4359 #define FLD(f) abuf->fields.sfmt_cldbfu.f
4360   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4361   int UNUSED written = 0;
4362   IADDR UNUSED pc = abuf->addr;
4363   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4364
4365 {
4366   USI tmp_address;
4367   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4368   {
4369     SI opval = frvbf_read_mem_SI (current_cpu, pc, tmp_address);
4370     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
4371     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
4372   }
4373   {
4374     SI opval = tmp_address;
4375     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4376     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4377   }
4378 frvbf_force_update (current_cpu);
4379 }
4380
4381   return vpc;
4382 #undef FLD
4383 }
4384
4385 /* ldcu: ldcu$pack @($GRi,$GRj),$CPRk */
4386
4387 static SEM_PC
4388 SEM_FN_NAME (frvbf,ldcu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4389 {
4390 #define FLD(f) abuf->fields.sfmt_ldcu.f
4391   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4392   int UNUSED written = 0;
4393   IADDR UNUSED pc = abuf->addr;
4394   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4395
4396 {
4397   USI tmp_address;
4398   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4399   {
4400     SI opval = frvbf_read_mem_SI (current_cpu, pc, tmp_address);
4401     sim_queue_si_write (current_cpu, & CPU (h_cpr[FLD (f_CPRk)]), opval);
4402     TRACE_RESULT (current_cpu, abuf, "cpr", 'x', opval);
4403   }
4404   {
4405     SI opval = tmp_address;
4406     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4407     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4408   }
4409 frvbf_force_update (current_cpu);
4410 }
4411
4412   return vpc;
4413 #undef FLD
4414 }
4415
4416 /* nldbfu: nldbfu$pack @($GRi,$GRj),$FRintk */
4417
4418 static SEM_PC
4419 SEM_FN_NAME (frvbf,nldbfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4420 {
4421 #define FLD(f) abuf->fields.sfmt_cldbfu.f
4422   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4423   int UNUSED written = 0;
4424   IADDR UNUSED pc = abuf->addr;
4425   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4426
4427 {
4428   BI tmp_do_op;
4429   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_FRk), 0, 0, 1);
4430 if (tmp_do_op) {
4431 {
4432   USI tmp_address;
4433   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4434   {
4435     SI opval = frvbf_read_mem_UQI (current_cpu, pc, tmp_address);
4436     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
4437     written |= (1 << 6);
4438     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
4439   }
4440   {
4441     SI opval = tmp_address;
4442     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4443     written |= (1 << 7);
4444     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4445   }
4446 frvbf_force_update (current_cpu);
4447 }
4448 }
4449 }
4450
4451   abuf->written = written;
4452   return vpc;
4453 #undef FLD
4454 }
4455
4456 /* nldhfu: nldhfu$pack @($GRi,$GRj),$FRintk */
4457
4458 static SEM_PC
4459 SEM_FN_NAME (frvbf,nldhfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4460 {
4461 #define FLD(f) abuf->fields.sfmt_cldbfu.f
4462   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4463   int UNUSED written = 0;
4464   IADDR UNUSED pc = abuf->addr;
4465   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4466
4467 {
4468   BI tmp_do_op;
4469   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_FRk), 0, 2, 1);
4470 if (tmp_do_op) {
4471 {
4472   USI tmp_address;
4473   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4474   {
4475     SI opval = frvbf_read_mem_UHI (current_cpu, pc, tmp_address);
4476     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
4477     written |= (1 << 6);
4478     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
4479   }
4480   {
4481     SI opval = tmp_address;
4482     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4483     written |= (1 << 7);
4484     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4485   }
4486 frvbf_force_update (current_cpu);
4487 }
4488 }
4489 }
4490
4491   abuf->written = written;
4492   return vpc;
4493 #undef FLD
4494 }
4495
4496 /* nldfu: nldfu$pack @($GRi,$GRj),$FRintk */
4497
4498 static SEM_PC
4499 SEM_FN_NAME (frvbf,nldfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4500 {
4501 #define FLD(f) abuf->fields.sfmt_cldbfu.f
4502   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4503   int UNUSED written = 0;
4504   IADDR UNUSED pc = abuf->addr;
4505   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4506
4507 {
4508   BI tmp_do_op;
4509   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_FRk), 0, 4, 1);
4510 if (tmp_do_op) {
4511 {
4512   USI tmp_address;
4513   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4514   {
4515     SI opval = frvbf_read_mem_SI (current_cpu, pc, tmp_address);
4516     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
4517     written |= (1 << 6);
4518     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
4519   }
4520   {
4521     SI opval = tmp_address;
4522     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4523     written |= (1 << 7);
4524     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4525   }
4526 frvbf_force_update (current_cpu);
4527 }
4528 }
4529 }
4530
4531   abuf->written = written;
4532   return vpc;
4533 #undef FLD
4534 }
4535
4536 /* lddu: lddu$pack @($GRi,$GRj),$GRdoublek */
4537
4538 static SEM_PC
4539 SEM_FN_NAME (frvbf,lddu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4540 {
4541 #define FLD(f) abuf->fields.sfmt_clddu.f
4542   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4543   int UNUSED written = 0;
4544   IADDR UNUSED pc = abuf->addr;
4545   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4546
4547 {
4548   SI tmp_address;
4549 if (NESI (FLD (f_GRk), 0)) {
4550 {
4551   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4552   {
4553     DI opval = frvbf_read_mem_DI (current_cpu, pc, tmp_address);
4554     sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
4555     written |= (1 << 5);
4556     TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
4557   }
4558 }
4559 }
4560 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
4561 {
4562   {
4563     SI opval = tmp_address;
4564     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4565     written |= (1 << 6);
4566     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4567   }
4568 frvbf_force_update (current_cpu);
4569 }
4570 }
4571 }
4572
4573   abuf->written = written;
4574   return vpc;
4575 #undef FLD
4576 }
4577
4578 /* nlddu: nlddu$pack @($GRi,$GRj),$GRdoublek */
4579
4580 static SEM_PC
4581 SEM_FN_NAME (frvbf,nlddu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4582 {
4583 #define FLD(f) abuf->fields.sfmt_clddu.f
4584   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4585   int UNUSED written = 0;
4586   IADDR UNUSED pc = abuf->addr;
4587   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4588
4589 {
4590   BI tmp_do_op;
4591   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 5, 0);
4592 if (tmp_do_op) {
4593 {
4594   SI tmp_address;
4595 if (NESI (FLD (f_GRk), 0)) {
4596 {
4597   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4598   {
4599     DI opval = frvbf_read_mem_DI (current_cpu, pc, tmp_address);
4600     sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
4601     written |= (1 << 6);
4602     TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
4603   }
4604 }
4605 }
4606 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
4607 {
4608   {
4609     SI opval = tmp_address;
4610     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4611     written |= (1 << 7);
4612     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4613   }
4614 frvbf_force_update (current_cpu);
4615 }
4616 }
4617 }
4618 }
4619 }
4620
4621   abuf->written = written;
4622   return vpc;
4623 #undef FLD
4624 }
4625
4626 /* lddfu: lddfu$pack @($GRi,$GRj),$FRdoublek */
4627
4628 static SEM_PC
4629 SEM_FN_NAME (frvbf,lddfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4630 {
4631 #define FLD(f) abuf->fields.sfmt_clddfu.f
4632   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4633   int UNUSED written = 0;
4634   IADDR UNUSED pc = abuf->addr;
4635   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4636
4637 {
4638   SI tmp_address;
4639 {
4640   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4641   {
4642     DF opval = frvbf_read_mem_DF (current_cpu, pc, tmp_address);
4643     sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
4644     TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
4645   }
4646 }
4647   {
4648     SI opval = tmp_address;
4649     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4650     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4651   }
4652 frvbf_force_update (current_cpu);
4653 }
4654
4655   return vpc;
4656 #undef FLD
4657 }
4658
4659 /* lddcu: lddcu$pack @($GRi,$GRj),$CPRdoublek */
4660
4661 static SEM_PC
4662 SEM_FN_NAME (frvbf,lddcu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4663 {
4664 #define FLD(f) abuf->fields.sfmt_lddcu.f
4665   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4666   int UNUSED written = 0;
4667   IADDR UNUSED pc = abuf->addr;
4668   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4669
4670 {
4671   SI tmp_address;
4672 {
4673   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4674   {
4675     DI opval = frvbf_read_mem_DI (current_cpu, pc, tmp_address);
4676     sim_queue_fn_di_write (current_cpu, frvbf_h_cpr_double_set, FLD (f_CPRk), opval);
4677     TRACE_RESULT (current_cpu, abuf, "cpr_double", 'D', opval);
4678   }
4679 }
4680   {
4681     SI opval = tmp_address;
4682     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4683     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4684   }
4685 frvbf_force_update (current_cpu);
4686 }
4687
4688   return vpc;
4689 #undef FLD
4690 }
4691
4692 /* nlddfu: nlddfu$pack @($GRi,$GRj),$FRdoublek */
4693
4694 static SEM_PC
4695 SEM_FN_NAME (frvbf,nlddfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4696 {
4697 #define FLD(f) abuf->fields.sfmt_clddfu.f
4698   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4699   int UNUSED written = 0;
4700   IADDR UNUSED pc = abuf->addr;
4701   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4702
4703 {
4704   BI tmp_do_op;
4705   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_FRk), 0, 5, 1);
4706 if (tmp_do_op) {
4707 {
4708   SI tmp_address;
4709 {
4710   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4711   {
4712     DF opval = frvbf_read_mem_DF (current_cpu, pc, tmp_address);
4713     sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
4714     written |= (1 << 6);
4715     TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
4716   }
4717 }
4718   {
4719     SI opval = tmp_address;
4720     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4721     written |= (1 << 7);
4722     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4723   }
4724 frvbf_force_update (current_cpu);
4725 }
4726 }
4727 }
4728
4729   abuf->written = written;
4730   return vpc;
4731 #undef FLD
4732 }
4733
4734 /* ldqu: ldqu$pack @($GRi,$GRj),$GRk */
4735
4736 static SEM_PC
4737 SEM_FN_NAME (frvbf,ldqu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4738 {
4739 #define FLD(f) abuf->fields.sfmt_cstdu.f
4740   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4741   int UNUSED written = 0;
4742   IADDR UNUSED pc = abuf->addr;
4743   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4744
4745 {
4746   SI tmp_address;
4747 {
4748   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4749 frvbf_load_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
4750 }
4751 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
4752 {
4753   {
4754     SI opval = tmp_address;
4755     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4756     written |= (1 << 5);
4757     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4758   }
4759 frvbf_force_update (current_cpu);
4760 }
4761 }
4762 }
4763
4764   abuf->written = written;
4765   return vpc;
4766 #undef FLD
4767 }
4768
4769 /* nldqu: nldqu$pack @($GRi,$GRj),$GRk */
4770
4771 static SEM_PC
4772 SEM_FN_NAME (frvbf,nldqu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4773 {
4774 #define FLD(f) abuf->fields.sfmt_cstdu.f
4775   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4776   int UNUSED written = 0;
4777   IADDR UNUSED pc = abuf->addr;
4778   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4779
4780 {
4781   BI tmp_do_op;
4782   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 6, 0);
4783 if (tmp_do_op) {
4784 {
4785   SI tmp_address;
4786 {
4787   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4788 frvbf_load_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
4789 }
4790 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
4791 {
4792   {
4793     SI opval = tmp_address;
4794     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4795     written |= (1 << 6);
4796     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4797   }
4798 frvbf_force_update (current_cpu);
4799 }
4800 }
4801 }
4802 }
4803 }
4804
4805   abuf->written = written;
4806   return vpc;
4807 #undef FLD
4808 }
4809
4810 /* ldqfu: ldqfu$pack @($GRi,$GRj),$FRintk */
4811
4812 static SEM_PC
4813 SEM_FN_NAME (frvbf,ldqfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4814 {
4815 #define FLD(f) abuf->fields.sfmt_cstdfu.f
4816   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4817   int UNUSED written = 0;
4818   IADDR UNUSED pc = abuf->addr;
4819   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4820
4821 {
4822   SI tmp_address;
4823 {
4824   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4825 frvbf_load_quad_FRint (current_cpu, pc, tmp_address, FLD (f_FRk));
4826 }
4827   {
4828     SI opval = tmp_address;
4829     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4830     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4831   }
4832 frvbf_force_update (current_cpu);
4833 }
4834
4835   return vpc;
4836 #undef FLD
4837 }
4838
4839 /* ldqcu: ldqcu$pack @($GRi,$GRj),$CPRk */
4840
4841 static SEM_PC
4842 SEM_FN_NAME (frvbf,ldqcu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4843 {
4844 #define FLD(f) abuf->fields.sfmt_stdcu.f
4845   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4846   int UNUSED written = 0;
4847   IADDR UNUSED pc = abuf->addr;
4848   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4849
4850 {
4851   SI tmp_address;
4852 {
4853   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4854 frvbf_load_quad_CPR (current_cpu, pc, tmp_address, FLD (f_CPRk));
4855 }
4856   {
4857     SI opval = tmp_address;
4858     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4859     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4860   }
4861 frvbf_force_update (current_cpu);
4862 }
4863
4864   return vpc;
4865 #undef FLD
4866 }
4867
4868 /* nldqfu: nldqfu$pack @($GRi,$GRj),$FRintk */
4869
4870 static SEM_PC
4871 SEM_FN_NAME (frvbf,nldqfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4872 {
4873 #define FLD(f) abuf->fields.sfmt_cstdfu.f
4874   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4875   int UNUSED written = 0;
4876   IADDR UNUSED pc = abuf->addr;
4877   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4878
4879 {
4880   BI tmp_do_op;
4881   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_FRk), 0, 6, 1);
4882 if (tmp_do_op) {
4883 {
4884   SI tmp_address;
4885 {
4886   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4887 frvbf_load_quad_FRint (current_cpu, pc, tmp_address, FLD (f_FRk));
4888 }
4889   {
4890     SI opval = tmp_address;
4891     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4892     written |= (1 << 6);
4893     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4894   }
4895 frvbf_force_update (current_cpu);
4896 }
4897 }
4898 }
4899
4900   abuf->written = written;
4901   return vpc;
4902 #undef FLD
4903 }
4904
4905 /* ldsbi: ldsbi$pack @($GRi,$d12),$GRk */
4906
4907 static SEM_PC
4908 SEM_FN_NAME (frvbf,ldsbi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4909 {
4910 #define FLD(f) abuf->fields.sfmt_swapi.f
4911   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4912   int UNUSED written = 0;
4913   IADDR UNUSED pc = abuf->addr;
4914   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4915
4916   {
4917     SI opval = frvbf_read_mem_QI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
4918     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
4919     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4920   }
4921
4922   return vpc;
4923 #undef FLD
4924 }
4925
4926 /* ldshi: ldshi$pack @($GRi,$d12),$GRk */
4927
4928 static SEM_PC
4929 SEM_FN_NAME (frvbf,ldshi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4930 {
4931 #define FLD(f) abuf->fields.sfmt_swapi.f
4932   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4933   int UNUSED written = 0;
4934   IADDR UNUSED pc = abuf->addr;
4935   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4936
4937   {
4938     SI opval = frvbf_read_mem_HI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
4939     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
4940     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4941   }
4942
4943   return vpc;
4944 #undef FLD
4945 }
4946
4947 /* ldi: ldi$pack @($GRi,$d12),$GRk */
4948
4949 static SEM_PC
4950 SEM_FN_NAME (frvbf,ldi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4951 {
4952 #define FLD(f) abuf->fields.sfmt_swapi.f
4953   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4954   int UNUSED written = 0;
4955   IADDR UNUSED pc = abuf->addr;
4956   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4957
4958   {
4959     SI opval = frvbf_read_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
4960     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
4961     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4962   }
4963
4964   return vpc;
4965 #undef FLD
4966 }
4967
4968 /* ldubi: ldubi$pack @($GRi,$d12),$GRk */
4969
4970 static SEM_PC
4971 SEM_FN_NAME (frvbf,ldubi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4972 {
4973 #define FLD(f) abuf->fields.sfmt_swapi.f
4974   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4975   int UNUSED written = 0;
4976   IADDR UNUSED pc = abuf->addr;
4977   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4978
4979   {
4980     SI opval = frvbf_read_mem_UQI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
4981     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
4982     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4983   }
4984
4985   return vpc;
4986 #undef FLD
4987 }
4988
4989 /* lduhi: lduhi$pack @($GRi,$d12),$GRk */
4990
4991 static SEM_PC
4992 SEM_FN_NAME (frvbf,lduhi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4993 {
4994 #define FLD(f) abuf->fields.sfmt_swapi.f
4995   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4996   int UNUSED written = 0;
4997   IADDR UNUSED pc = abuf->addr;
4998   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4999
5000   {
5001     SI opval = frvbf_read_mem_UHI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
5002     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
5003     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5004   }
5005
5006   return vpc;
5007 #undef FLD
5008 }
5009
5010 /* ldbfi: ldbfi$pack @($GRi,$d12),$FRintk */
5011
5012 static SEM_PC
5013 SEM_FN_NAME (frvbf,ldbfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5014 {
5015 #define FLD(f) abuf->fields.sfmt_ldbfi.f
5016   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5017   int UNUSED written = 0;
5018   IADDR UNUSED pc = abuf->addr;
5019   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5020
5021   {
5022     SI opval = frvbf_read_mem_UQI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
5023     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
5024     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
5025   }
5026
5027   return vpc;
5028 #undef FLD
5029 }
5030
5031 /* ldhfi: ldhfi$pack @($GRi,$d12),$FRintk */
5032
5033 static SEM_PC
5034 SEM_FN_NAME (frvbf,ldhfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5035 {
5036 #define FLD(f) abuf->fields.sfmt_ldbfi.f
5037   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5038   int UNUSED written = 0;
5039   IADDR UNUSED pc = abuf->addr;
5040   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5041
5042   {
5043     SI opval = frvbf_read_mem_UHI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
5044     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
5045     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
5046   }
5047
5048   return vpc;
5049 #undef FLD
5050 }
5051
5052 /* ldfi: ldfi$pack @($GRi,$d12),$FRintk */
5053
5054 static SEM_PC
5055 SEM_FN_NAME (frvbf,ldfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5056 {
5057 #define FLD(f) abuf->fields.sfmt_ldbfi.f
5058   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5059   int UNUSED written = 0;
5060   IADDR UNUSED pc = abuf->addr;
5061   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5062
5063   {
5064     SI opval = frvbf_read_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
5065     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
5066     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
5067   }
5068
5069   return vpc;
5070 #undef FLD
5071 }
5072
5073 /* nldsbi: nldsbi$pack @($GRi,$d12),$GRk */
5074
5075 static SEM_PC
5076 SEM_FN_NAME (frvbf,nldsbi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5077 {
5078 #define FLD(f) abuf->fields.sfmt_swapi.f
5079   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5080   int UNUSED written = 0;
5081   IADDR UNUSED pc = abuf->addr;
5082   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5083
5084 {
5085   BI tmp_do_op;
5086   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), -1, FLD (f_GRk), FLD (f_d12), 1, 0);
5087 if (tmp_do_op) {
5088   {
5089     SI opval = frvbf_read_mem_QI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
5090     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
5091     written |= (1 << 5);
5092     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5093   }
5094 }
5095 }
5096
5097   abuf->written = written;
5098   return vpc;
5099 #undef FLD
5100 }
5101
5102 /* nldubi: nldubi$pack @($GRi,$d12),$GRk */
5103
5104 static SEM_PC
5105 SEM_FN_NAME (frvbf,nldubi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5106 {
5107 #define FLD(f) abuf->fields.sfmt_swapi.f
5108   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5109   int UNUSED written = 0;
5110   IADDR UNUSED pc = abuf->addr;
5111   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5112
5113 {
5114   BI tmp_do_op;
5115   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), -1, FLD (f_GRk), FLD (f_d12), 0, 0);
5116 if (tmp_do_op) {
5117   {
5118     SI opval = frvbf_read_mem_UQI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
5119     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
5120     written |= (1 << 5);
5121     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5122   }
5123 }
5124 }
5125
5126   abuf->written = written;
5127   return vpc;
5128 #undef FLD
5129 }
5130
5131 /* nldshi: nldshi$pack @($GRi,$d12),$GRk */
5132
5133 static SEM_PC
5134 SEM_FN_NAME (frvbf,nldshi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5135 {
5136 #define FLD(f) abuf->fields.sfmt_swapi.f
5137   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5138   int UNUSED written = 0;
5139   IADDR UNUSED pc = abuf->addr;
5140   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5141
5142 {
5143   BI tmp_do_op;
5144   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), -1, FLD (f_GRk), FLD (f_d12), 3, 0);
5145 if (tmp_do_op) {
5146   {
5147     SI opval = frvbf_read_mem_HI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
5148     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
5149     written |= (1 << 5);
5150     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5151   }
5152 }
5153 }
5154
5155   abuf->written = written;
5156   return vpc;
5157 #undef FLD
5158 }
5159
5160 /* nlduhi: nlduhi$pack @($GRi,$d12),$GRk */
5161
5162 static SEM_PC
5163 SEM_FN_NAME (frvbf,nlduhi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5164 {
5165 #define FLD(f) abuf->fields.sfmt_swapi.f
5166   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5167   int UNUSED written = 0;
5168   IADDR UNUSED pc = abuf->addr;
5169   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5170
5171 {
5172   BI tmp_do_op;
5173   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), -1, FLD (f_GRk), FLD (f_d12), 2, 0);
5174 if (tmp_do_op) {
5175   {
5176     SI opval = frvbf_read_mem_UHI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
5177     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
5178     written |= (1 << 5);
5179     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5180   }
5181 }
5182 }
5183
5184   abuf->written = written;
5185   return vpc;
5186 #undef FLD
5187 }
5188
5189 /* nldi: nldi$pack @($GRi,$d12),$GRk */
5190
5191 static SEM_PC
5192 SEM_FN_NAME (frvbf,nldi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5193 {
5194 #define FLD(f) abuf->fields.sfmt_swapi.f
5195   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5196   int UNUSED written = 0;
5197   IADDR UNUSED pc = abuf->addr;
5198   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5199
5200 {
5201   BI tmp_do_op;
5202   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), -1, FLD (f_GRk), FLD (f_d12), 4, 0);
5203 if (tmp_do_op) {
5204   {
5205     SI opval = frvbf_read_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
5206     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
5207     written |= (1 << 5);
5208     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5209   }
5210 }
5211 }
5212
5213   abuf->written = written;
5214   return vpc;
5215 #undef FLD
5216 }
5217
5218 /* nldbfi: nldbfi$pack @($GRi,$d12),$FRintk */
5219
5220 static SEM_PC
5221 SEM_FN_NAME (frvbf,nldbfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5222 {
5223 #define FLD(f) abuf->fields.sfmt_ldbfi.f
5224   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5225   int UNUSED written = 0;
5226   IADDR UNUSED pc = abuf->addr;
5227   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5228
5229 {
5230   BI tmp_do_op;
5231   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), -1, FLD (f_FRk), FLD (f_d12), 0, 1);
5232 if (tmp_do_op) {
5233   {
5234     SI opval = frvbf_read_mem_UQI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
5235     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
5236     written |= (1 << 5);
5237     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
5238   }
5239 }
5240 }
5241
5242   abuf->written = written;
5243   return vpc;
5244 #undef FLD
5245 }
5246
5247 /* nldhfi: nldhfi$pack @($GRi,$d12),$FRintk */
5248
5249 static SEM_PC
5250 SEM_FN_NAME (frvbf,nldhfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5251 {
5252 #define FLD(f) abuf->fields.sfmt_ldbfi.f
5253   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5254   int UNUSED written = 0;
5255   IADDR UNUSED pc = abuf->addr;
5256   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5257
5258 {
5259   BI tmp_do_op;
5260   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), -1, FLD (f_FRk), FLD (f_d12), 2, 1);
5261 if (tmp_do_op) {
5262   {
5263     SI opval = frvbf_read_mem_UHI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
5264     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
5265     written |= (1 << 5);
5266     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
5267   }
5268 }
5269 }
5270
5271   abuf->written = written;
5272   return vpc;
5273 #undef FLD
5274 }
5275
5276 /* nldfi: nldfi$pack @($GRi,$d12),$FRintk */
5277
5278 static SEM_PC
5279 SEM_FN_NAME (frvbf,nldfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5280 {
5281 #define FLD(f) abuf->fields.sfmt_ldbfi.f
5282   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5283   int UNUSED written = 0;
5284   IADDR UNUSED pc = abuf->addr;
5285   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5286
5287 {
5288   BI tmp_do_op;
5289   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), -1, FLD (f_FRk), FLD (f_d12), 4, 1);
5290 if (tmp_do_op) {
5291   {
5292     SI opval = frvbf_read_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
5293     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
5294     written |= (1 << 5);
5295     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
5296   }
5297 }
5298 }
5299
5300   abuf->written = written;
5301   return vpc;
5302 #undef FLD
5303 }
5304
5305 /* lddi: lddi$pack @($GRi,$d12),$GRdoublek */
5306
5307 static SEM_PC
5308 SEM_FN_NAME (frvbf,lddi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5309 {
5310 #define FLD(f) abuf->fields.sfmt_smuli.f
5311   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5312   int UNUSED written = 0;
5313   IADDR UNUSED pc = abuf->addr;
5314   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5315
5316 {
5317   SI tmp_address;
5318 if (NESI (FLD (f_GRk), 0)) {
5319 {
5320   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
5321   {
5322     DI opval = frvbf_read_mem_DI (current_cpu, pc, tmp_address);
5323     sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
5324     written |= (1 << 4);
5325     TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
5326   }
5327 }
5328 }
5329 }
5330
5331   abuf->written = written;
5332   return vpc;
5333 #undef FLD
5334 }
5335
5336 /* lddfi: lddfi$pack @($GRi,$d12),$FRdoublek */
5337
5338 static SEM_PC
5339 SEM_FN_NAME (frvbf,lddfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5340 {
5341 #define FLD(f) abuf->fields.sfmt_lddfi.f
5342   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5343   int UNUSED written = 0;
5344   IADDR UNUSED pc = abuf->addr;
5345   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5346
5347 {
5348   SI tmp_address;
5349 {
5350   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
5351   {
5352     DF opval = frvbf_read_mem_DF (current_cpu, pc, tmp_address);
5353     sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
5354     TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
5355   }
5356 }
5357 }
5358
5359   return vpc;
5360 #undef FLD
5361 }
5362
5363 /* nlddi: nlddi$pack @($GRi,$d12),$GRdoublek */
5364
5365 static SEM_PC
5366 SEM_FN_NAME (frvbf,nlddi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5367 {
5368 #define FLD(f) abuf->fields.sfmt_smuli.f
5369   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5370   int UNUSED written = 0;
5371   IADDR UNUSED pc = abuf->addr;
5372   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5373
5374 {
5375   SI tmp_address;
5376 {
5377   BI tmp_do_op;
5378   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), -1, FLD (f_GRk), FLD (f_d12), 5, 0);
5379 if (tmp_do_op) {
5380 if (NESI (FLD (f_GRk), 0)) {
5381 {
5382   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
5383   {
5384     DI opval = frvbf_read_mem_DI (current_cpu, pc, tmp_address);
5385     sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
5386     written |= (1 << 5);
5387     TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
5388   }
5389 }
5390 }
5391 }
5392 }
5393 }
5394
5395   abuf->written = written;
5396   return vpc;
5397 #undef FLD
5398 }
5399
5400 /* nlddfi: nlddfi$pack @($GRi,$d12),$FRdoublek */
5401
5402 static SEM_PC
5403 SEM_FN_NAME (frvbf,nlddfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5404 {
5405 #define FLD(f) abuf->fields.sfmt_lddfi.f
5406   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5407   int UNUSED written = 0;
5408   IADDR UNUSED pc = abuf->addr;
5409   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5410
5411 {
5412   SI tmp_address;
5413 {
5414   BI tmp_do_op;
5415   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), -1, FLD (f_FRk), FLD (f_d12), 5, 1);
5416 if (tmp_do_op) {
5417 {
5418   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
5419   {
5420     DF opval = frvbf_read_mem_DF (current_cpu, pc, tmp_address);
5421     sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
5422     written |= (1 << 5);
5423     TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
5424   }
5425 }
5426 }
5427 }
5428 }
5429
5430   abuf->written = written;
5431   return vpc;
5432 #undef FLD
5433 }
5434
5435 /* ldqi: ldqi$pack @($GRi,$d12),$GRk */
5436
5437 static SEM_PC
5438 SEM_FN_NAME (frvbf,ldqi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5439 {
5440 #define FLD(f) abuf->fields.sfmt_stdi.f
5441   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5442   int UNUSED written = 0;
5443   IADDR UNUSED pc = abuf->addr;
5444   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5445
5446 {
5447   SI tmp_address;
5448 {
5449   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
5450 frvbf_load_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
5451 }
5452 }
5453
5454   return vpc;
5455 #undef FLD
5456 }
5457
5458 /* ldqfi: ldqfi$pack @($GRi,$d12),$FRintk */
5459
5460 static SEM_PC
5461 SEM_FN_NAME (frvbf,ldqfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5462 {
5463 #define FLD(f) abuf->fields.sfmt_stdfi.f
5464   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5465   int UNUSED written = 0;
5466   IADDR UNUSED pc = abuf->addr;
5467   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5468
5469 {
5470   SI tmp_address;
5471 {
5472   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
5473 frvbf_load_quad_FRint (current_cpu, pc, tmp_address, FLD (f_FRk));
5474 }
5475 }
5476
5477   return vpc;
5478 #undef FLD
5479 }
5480
5481 /* nldqfi: nldqfi$pack @($GRi,$d12),$FRintk */
5482
5483 static SEM_PC
5484 SEM_FN_NAME (frvbf,nldqfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5485 {
5486 #define FLD(f) abuf->fields.sfmt_stdfi.f
5487   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5488   int UNUSED written = 0;
5489   IADDR UNUSED pc = abuf->addr;
5490   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5491
5492 {
5493   SI tmp_address;
5494 {
5495   BI tmp_do_op;
5496   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), -1, FLD (f_FRk), FLD (f_d12), 6, 1);
5497 if (tmp_do_op) {
5498 {
5499   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
5500 frvbf_load_quad_FRint (current_cpu, pc, tmp_address, FLD (f_FRk));
5501 }
5502 }
5503 }
5504 }
5505
5506   return vpc;
5507 #undef FLD
5508 }
5509
5510 /* stb: stb$pack $GRk,@($GRi,$GRj) */
5511
5512 static SEM_PC
5513 SEM_FN_NAME (frvbf,stb) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5514 {
5515 #define FLD(f) abuf->fields.sfmt_cswap.f
5516   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5517   int UNUSED written = 0;
5518   IADDR UNUSED pc = abuf->addr;
5519   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5520
5521 frvbf_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)));
5522
5523   return vpc;
5524 #undef FLD
5525 }
5526
5527 /* sth: sth$pack $GRk,@($GRi,$GRj) */
5528
5529 static SEM_PC
5530 SEM_FN_NAME (frvbf,sth) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5531 {
5532 #define FLD(f) abuf->fields.sfmt_cswap.f
5533   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5534   int UNUSED written = 0;
5535   IADDR UNUSED pc = abuf->addr;
5536   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5537
5538 frvbf_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)));
5539
5540   return vpc;
5541 #undef FLD
5542 }
5543
5544 /* st: st$pack $GRk,@($GRi,$GRj) */
5545
5546 static SEM_PC
5547 SEM_FN_NAME (frvbf,st) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5548 {
5549 #define FLD(f) abuf->fields.sfmt_cswap.f
5550   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5551   int UNUSED written = 0;
5552   IADDR UNUSED pc = abuf->addr;
5553   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5554
5555 frvbf_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)));
5556
5557   return vpc;
5558 #undef FLD
5559 }
5560
5561 /* stbf: stbf$pack $FRintk,@($GRi,$GRj) */
5562
5563 static SEM_PC
5564 SEM_FN_NAME (frvbf,stbf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5565 {
5566 #define FLD(f) abuf->fields.sfmt_cstbfu.f
5567   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5568   int UNUSED written = 0;
5569   IADDR UNUSED pc = abuf->addr;
5570   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5571
5572 frvbf_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)));
5573
5574   return vpc;
5575 #undef FLD
5576 }
5577
5578 /* sthf: sthf$pack $FRintk,@($GRi,$GRj) */
5579
5580 static SEM_PC
5581 SEM_FN_NAME (frvbf,sthf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5582 {
5583 #define FLD(f) abuf->fields.sfmt_cstbfu.f
5584   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5585   int UNUSED written = 0;
5586   IADDR UNUSED pc = abuf->addr;
5587   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5588
5589 frvbf_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)));
5590
5591   return vpc;
5592 #undef FLD
5593 }
5594
5595 /* stf: stf$pack $FRintk,@($GRi,$GRj) */
5596
5597 static SEM_PC
5598 SEM_FN_NAME (frvbf,stf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5599 {
5600 #define FLD(f) abuf->fields.sfmt_cstbfu.f
5601   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5602   int UNUSED written = 0;
5603   IADDR UNUSED pc = abuf->addr;
5604   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5605
5606 frvbf_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)));
5607
5608   return vpc;
5609 #undef FLD
5610 }
5611
5612 /* stc: stc$pack $CPRk,@($GRi,$GRj) */
5613
5614 static SEM_PC
5615 SEM_FN_NAME (frvbf,stc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5616 {
5617 #define FLD(f) abuf->fields.sfmt_stcu.f
5618   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5619   int UNUSED written = 0;
5620   IADDR UNUSED pc = abuf->addr;
5621   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5622
5623 frvbf_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)]));
5624
5625   return vpc;
5626 #undef FLD
5627 }
5628
5629 /* std: std$pack $GRdoublek,@($GRi,$GRj) */
5630
5631 static SEM_PC
5632 SEM_FN_NAME (frvbf,std) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5633 {
5634 #define FLD(f) abuf->fields.sfmt_cstdu.f
5635   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5636   int UNUSED written = 0;
5637   IADDR UNUSED pc = abuf->addr;
5638   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5639
5640 {
5641   SI tmp_address;
5642 {
5643   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5644 frvbf_write_mem_DI (current_cpu, pc, tmp_address, GET_H_GR_DOUBLE (FLD (f_GRk)));
5645 }
5646 }
5647
5648   return vpc;
5649 #undef FLD
5650 }
5651
5652 /* stdf: stdf$pack $FRdoublek,@($GRi,$GRj) */
5653
5654 static SEM_PC
5655 SEM_FN_NAME (frvbf,stdf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5656 {
5657 #define FLD(f) abuf->fields.sfmt_cstdfu.f
5658   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5659   int UNUSED written = 0;
5660   IADDR UNUSED pc = abuf->addr;
5661   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5662
5663 {
5664   SI tmp_address;
5665 {
5666   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5667 frvbf_write_mem_DF (current_cpu, pc, tmp_address, GET_H_FR_DOUBLE (FLD (f_FRk)));
5668 }
5669 }
5670
5671   return vpc;
5672 #undef FLD
5673 }
5674
5675 /* stdc: stdc$pack $CPRdoublek,@($GRi,$GRj) */
5676
5677 static SEM_PC
5678 SEM_FN_NAME (frvbf,stdc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5679 {
5680 #define FLD(f) abuf->fields.sfmt_stdcu.f
5681   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5682   int UNUSED written = 0;
5683   IADDR UNUSED pc = abuf->addr;
5684   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5685
5686 {
5687   SI tmp_address;
5688 {
5689   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5690 frvbf_write_mem_DI (current_cpu, pc, tmp_address, GET_H_CPR_DOUBLE (FLD (f_CPRk)));
5691 }
5692 }
5693
5694   return vpc;
5695 #undef FLD
5696 }
5697
5698 /* stq: stq$pack $GRk,@($GRi,$GRj) */
5699
5700 static SEM_PC
5701 SEM_FN_NAME (frvbf,stq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5702 {
5703 #define FLD(f) abuf->fields.sfmt_smulcc.f
5704   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5705   int UNUSED written = 0;
5706   IADDR UNUSED pc = abuf->addr;
5707   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5708
5709 {
5710   SI tmp_address;
5711 {
5712   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5713 frvbf_store_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
5714 }
5715 }
5716
5717   return vpc;
5718 #undef FLD
5719 }
5720
5721 /* stqf: stqf$pack $FRintk,@($GRi,$GRj) */
5722
5723 static SEM_PC
5724 SEM_FN_NAME (frvbf,stqf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5725 {
5726 #define FLD(f) abuf->fields.sfmt_cstdfu.f
5727   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5728   int UNUSED written = 0;
5729   IADDR UNUSED pc = abuf->addr;
5730   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5731
5732 {
5733   SI tmp_address;
5734 {
5735   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5736 frvbf_store_quad_FRint (current_cpu, pc, tmp_address, FLD (f_FRk));
5737 }
5738 }
5739
5740   return vpc;
5741 #undef FLD
5742 }
5743
5744 /* stqc: stqc$pack $CPRk,@($GRi,$GRj) */
5745
5746 static SEM_PC
5747 SEM_FN_NAME (frvbf,stqc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5748 {
5749 #define FLD(f) abuf->fields.sfmt_stdcu.f
5750   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5751   int UNUSED written = 0;
5752   IADDR UNUSED pc = abuf->addr;
5753   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5754
5755 {
5756   SI tmp_address;
5757 {
5758   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5759 frvbf_store_quad_CPR (current_cpu, pc, tmp_address, FLD (f_CPRk));
5760 }
5761 }
5762
5763   return vpc;
5764 #undef FLD
5765 }
5766
5767 /* stbu: stbu$pack $GRk,@($GRi,$GRj) */
5768
5769 static SEM_PC
5770 SEM_FN_NAME (frvbf,stbu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5771 {
5772 #define FLD(f) abuf->fields.sfmt_cstbu.f
5773   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5774   int UNUSED written = 0;
5775   IADDR UNUSED pc = abuf->addr;
5776   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5777
5778 {
5779   USI tmp_address;
5780   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5781 frvbf_write_mem_QI (current_cpu, pc, tmp_address, GET_H_GR (FLD (f_GRk)));
5782   {
5783     SI opval = tmp_address;
5784     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
5785     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5786   }
5787 }
5788
5789   return vpc;
5790 #undef FLD
5791 }
5792
5793 /* sthu: sthu$pack $GRk,@($GRi,$GRj) */
5794
5795 static SEM_PC
5796 SEM_FN_NAME (frvbf,sthu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5797 {
5798 #define FLD(f) abuf->fields.sfmt_cstbu.f
5799   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5800   int UNUSED written = 0;
5801   IADDR UNUSED pc = abuf->addr;
5802   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5803
5804 {
5805   USI tmp_address;
5806   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5807 frvbf_write_mem_HI (current_cpu, pc, tmp_address, GET_H_GR (FLD (f_GRk)));
5808   {
5809     SI opval = tmp_address;
5810     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
5811     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5812   }
5813 }
5814
5815   return vpc;
5816 #undef FLD
5817 }
5818
5819 /* stu: stu$pack $GRk,@($GRi,$GRj) */
5820
5821 static SEM_PC
5822 SEM_FN_NAME (frvbf,stu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5823 {
5824 #define FLD(f) abuf->fields.sfmt_cstbu.f
5825   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5826   int UNUSED written = 0;
5827   IADDR UNUSED pc = abuf->addr;
5828   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5829
5830 {
5831   USI tmp_address;
5832   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5833 frvbf_write_mem_WI (current_cpu, pc, tmp_address, GET_H_GR (FLD (f_GRk)));
5834   {
5835     SI opval = tmp_address;
5836     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
5837     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5838   }
5839 }
5840
5841   return vpc;
5842 #undef FLD
5843 }
5844
5845 /* stbfu: stbfu$pack $FRintk,@($GRi,$GRj) */
5846
5847 static SEM_PC
5848 SEM_FN_NAME (frvbf,stbfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5849 {
5850 #define FLD(f) abuf->fields.sfmt_cstbfu.f
5851   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5852   int UNUSED written = 0;
5853   IADDR UNUSED pc = abuf->addr;
5854   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5855
5856 {
5857   USI tmp_address;
5858   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5859 frvbf_write_mem_QI (current_cpu, pc, tmp_address, GET_H_FR_INT (FLD (f_FRk)));
5860   {
5861     SI opval = tmp_address;
5862     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
5863     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5864   }
5865 }
5866
5867   return vpc;
5868 #undef FLD
5869 }
5870
5871 /* sthfu: sthfu$pack $FRintk,@($GRi,$GRj) */
5872
5873 static SEM_PC
5874 SEM_FN_NAME (frvbf,sthfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5875 {
5876 #define FLD(f) abuf->fields.sfmt_cstbfu.f
5877   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5878   int UNUSED written = 0;
5879   IADDR UNUSED pc = abuf->addr;
5880   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5881
5882 {
5883   USI tmp_address;
5884   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5885 frvbf_write_mem_HI (current_cpu, pc, tmp_address, GET_H_FR_INT (FLD (f_FRk)));
5886   {
5887     SI opval = tmp_address;
5888     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
5889     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5890   }
5891 }
5892
5893   return vpc;
5894 #undef FLD
5895 }
5896
5897 /* stfu: stfu$pack $FRintk,@($GRi,$GRj) */
5898
5899 static SEM_PC
5900 SEM_FN_NAME (frvbf,stfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5901 {
5902 #define FLD(f) abuf->fields.sfmt_cstbfu.f
5903   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5904   int UNUSED written = 0;
5905   IADDR UNUSED pc = abuf->addr;
5906   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5907
5908 {
5909   USI tmp_address;
5910   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5911 frvbf_write_mem_SI (current_cpu, pc, tmp_address, GET_H_FR_INT (FLD (f_FRk)));
5912   {
5913     SI opval = tmp_address;
5914     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
5915     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5916   }
5917 }
5918
5919   return vpc;
5920 #undef FLD
5921 }
5922
5923 /* stcu: stcu$pack $CPRk,@($GRi,$GRj) */
5924
5925 static SEM_PC
5926 SEM_FN_NAME (frvbf,stcu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5927 {
5928 #define FLD(f) abuf->fields.sfmt_stcu.f
5929   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5930   int UNUSED written = 0;
5931   IADDR UNUSED pc = abuf->addr;
5932   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5933
5934 {
5935   USI tmp_address;
5936   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5937 frvbf_write_mem_SI (current_cpu, pc, tmp_address, CPU (h_cpr[FLD (f_CPRk)]));
5938   {
5939     SI opval = tmp_address;
5940     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
5941     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5942   }
5943 }
5944
5945   return vpc;
5946 #undef FLD
5947 }
5948
5949 /* stdu: stdu$pack $GRdoublek,@($GRi,$GRj) */
5950
5951 static SEM_PC
5952 SEM_FN_NAME (frvbf,stdu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5953 {
5954 #define FLD(f) abuf->fields.sfmt_cstdu.f
5955   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5956   int UNUSED written = 0;
5957   IADDR UNUSED pc = abuf->addr;
5958   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5959
5960 {
5961   SI tmp_address;
5962 {
5963   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5964 frvbf_write_mem_DI (current_cpu, pc, tmp_address, GET_H_GR_DOUBLE (FLD (f_GRk)));
5965 }
5966   {
5967     SI opval = tmp_address;
5968     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
5969     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5970   }
5971 }
5972
5973   return vpc;
5974 #undef FLD
5975 }
5976
5977 /* stdfu: stdfu$pack $FRdoublek,@($GRi,$GRj) */
5978
5979 static SEM_PC
5980 SEM_FN_NAME (frvbf,stdfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5981 {
5982 #define FLD(f) abuf->fields.sfmt_cstdfu.f
5983   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5984   int UNUSED written = 0;
5985   IADDR UNUSED pc = abuf->addr;
5986   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5987
5988 {
5989   SI tmp_address;
5990 {
5991   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5992 frvbf_write_mem_DF (current_cpu, pc, tmp_address, GET_H_FR_DOUBLE (FLD (f_FRk)));
5993 }
5994   {
5995     SI opval = tmp_address;
5996     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
5997     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5998   }
5999 }
6000
6001   return vpc;
6002 #undef FLD
6003 }
6004
6005 /* stdcu: stdcu$pack $CPRdoublek,@($GRi,$GRj) */
6006
6007 static SEM_PC
6008 SEM_FN_NAME (frvbf,stdcu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6009 {
6010 #define FLD(f) abuf->fields.sfmt_stdcu.f
6011   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6012   int UNUSED written = 0;
6013   IADDR UNUSED pc = abuf->addr;
6014   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6015
6016 {
6017   SI tmp_address;
6018 {
6019   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6020 frvbf_write_mem_DI (current_cpu, pc, tmp_address, GET_H_CPR_DOUBLE (FLD (f_CPRk)));
6021 }
6022   {
6023     SI opval = tmp_address;
6024     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6025     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6026   }
6027 }
6028
6029   return vpc;
6030 #undef FLD
6031 }
6032
6033 /* stqu: stqu$pack $GRk,@($GRi,$GRj) */
6034
6035 static SEM_PC
6036 SEM_FN_NAME (frvbf,stqu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6037 {
6038 #define FLD(f) abuf->fields.sfmt_cstdu.f
6039   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6040   int UNUSED written = 0;
6041   IADDR UNUSED pc = abuf->addr;
6042   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6043
6044 {
6045   SI tmp_address;
6046 {
6047   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6048 frvbf_store_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
6049 }
6050   {
6051     SI opval = tmp_address;
6052     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6053     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6054   }
6055 }
6056
6057   return vpc;
6058 #undef FLD
6059 }
6060
6061 /* stqfu: stqfu$pack $FRintk,@($GRi,$GRj) */
6062
6063 static SEM_PC
6064 SEM_FN_NAME (frvbf,stqfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6065 {
6066 #define FLD(f) abuf->fields.sfmt_cstdfu.f
6067   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6068   int UNUSED written = 0;
6069   IADDR UNUSED pc = abuf->addr;
6070   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6071
6072 {
6073   SI tmp_address;
6074 {
6075   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6076 frvbf_store_quad_FRint (current_cpu, pc, tmp_address, FLD (f_FRk));
6077 }
6078   {
6079     SI opval = tmp_address;
6080     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6081     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6082   }
6083 }
6084
6085   return vpc;
6086 #undef FLD
6087 }
6088
6089 /* stqcu: stqcu$pack $CPRk,@($GRi,$GRj) */
6090
6091 static SEM_PC
6092 SEM_FN_NAME (frvbf,stqcu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6093 {
6094 #define FLD(f) abuf->fields.sfmt_stdcu.f
6095   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6096   int UNUSED written = 0;
6097   IADDR UNUSED pc = abuf->addr;
6098   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6099
6100 {
6101   SI tmp_address;
6102 {
6103   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6104 frvbf_store_quad_CPR (current_cpu, pc, tmp_address, FLD (f_CPRk));
6105 }
6106   {
6107     SI opval = tmp_address;
6108     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6109     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6110   }
6111 }
6112
6113   return vpc;
6114 #undef FLD
6115 }
6116
6117 /* cldsb: cldsb$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6118
6119 static SEM_PC
6120 SEM_FN_NAME (frvbf,cldsb) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6121 {
6122 #define FLD(f) abuf->fields.sfmt_cswap.f
6123   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6124   int UNUSED written = 0;
6125   IADDR UNUSED pc = abuf->addr;
6126   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6127
6128 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6129   {
6130     SI opval = frvbf_read_mem_QI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
6131     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
6132     written |= (1 << 5);
6133     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6134   }
6135 }
6136
6137   abuf->written = written;
6138   return vpc;
6139 #undef FLD
6140 }
6141
6142 /* cldub: cldub$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6143
6144 static SEM_PC
6145 SEM_FN_NAME (frvbf,cldub) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6146 {
6147 #define FLD(f) abuf->fields.sfmt_cswap.f
6148   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6149   int UNUSED written = 0;
6150   IADDR UNUSED pc = abuf->addr;
6151   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6152
6153 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6154   {
6155     SI opval = frvbf_read_mem_UQI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
6156     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
6157     written |= (1 << 5);
6158     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6159   }
6160 }
6161
6162   abuf->written = written;
6163   return vpc;
6164 #undef FLD
6165 }
6166
6167 /* cldsh: cldsh$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6168
6169 static SEM_PC
6170 SEM_FN_NAME (frvbf,cldsh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6171 {
6172 #define FLD(f) abuf->fields.sfmt_cswap.f
6173   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6174   int UNUSED written = 0;
6175   IADDR UNUSED pc = abuf->addr;
6176   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6177
6178 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6179   {
6180     SI opval = frvbf_read_mem_HI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
6181     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
6182     written |= (1 << 5);
6183     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6184   }
6185 }
6186
6187   abuf->written = written;
6188   return vpc;
6189 #undef FLD
6190 }
6191
6192 /* clduh: clduh$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6193
6194 static SEM_PC
6195 SEM_FN_NAME (frvbf,clduh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6196 {
6197 #define FLD(f) abuf->fields.sfmt_cswap.f
6198   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6199   int UNUSED written = 0;
6200   IADDR UNUSED pc = abuf->addr;
6201   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6202
6203 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6204   {
6205     SI opval = frvbf_read_mem_UHI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
6206     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
6207     written |= (1 << 5);
6208     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6209   }
6210 }
6211
6212   abuf->written = written;
6213   return vpc;
6214 #undef FLD
6215 }
6216
6217 /* cld: cld$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6218
6219 static SEM_PC
6220 SEM_FN_NAME (frvbf,cld) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6221 {
6222 #define FLD(f) abuf->fields.sfmt_cswap.f
6223   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6224   int UNUSED written = 0;
6225   IADDR UNUSED pc = abuf->addr;
6226   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6227
6228 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6229   {
6230     SI opval = frvbf_read_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
6231     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
6232     written |= (1 << 5);
6233     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6234   }
6235 }
6236
6237   abuf->written = written;
6238   return vpc;
6239 #undef FLD
6240 }
6241
6242 /* cldbf: cldbf$pack @($GRi,$GRj),$FRintk,$CCi,$cond */
6243
6244 static SEM_PC
6245 SEM_FN_NAME (frvbf,cldbf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6246 {
6247 #define FLD(f) abuf->fields.sfmt_cldbfu.f
6248   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6249   int UNUSED written = 0;
6250   IADDR UNUSED pc = abuf->addr;
6251   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6252
6253 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6254   {
6255     SI opval = frvbf_read_mem_UQI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
6256     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
6257     written |= (1 << 5);
6258     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
6259   }
6260 }
6261
6262   abuf->written = written;
6263   return vpc;
6264 #undef FLD
6265 }
6266
6267 /* cldhf: cldhf$pack @($GRi,$GRj),$FRintk,$CCi,$cond */
6268
6269 static SEM_PC
6270 SEM_FN_NAME (frvbf,cldhf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6271 {
6272 #define FLD(f) abuf->fields.sfmt_cldbfu.f
6273   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6274   int UNUSED written = 0;
6275   IADDR UNUSED pc = abuf->addr;
6276   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6277
6278 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6279   {
6280     SI opval = frvbf_read_mem_UHI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
6281     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
6282     written |= (1 << 5);
6283     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
6284   }
6285 }
6286
6287   abuf->written = written;
6288   return vpc;
6289 #undef FLD
6290 }
6291
6292 /* cldf: cldf$pack @($GRi,$GRj),$FRintk,$CCi,$cond */
6293
6294 static SEM_PC
6295 SEM_FN_NAME (frvbf,cldf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6296 {
6297 #define FLD(f) abuf->fields.sfmt_cldbfu.f
6298   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6299   int UNUSED written = 0;
6300   IADDR UNUSED pc = abuf->addr;
6301   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6302
6303 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6304   {
6305     SI opval = frvbf_read_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
6306     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
6307     written |= (1 << 5);
6308     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
6309   }
6310 }
6311
6312   abuf->written = written;
6313   return vpc;
6314 #undef FLD
6315 }
6316
6317 /* cldd: cldd$pack @($GRi,$GRj),$GRdoublek,$CCi,$cond */
6318
6319 static SEM_PC
6320 SEM_FN_NAME (frvbf,cldd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6321 {
6322 #define FLD(f) abuf->fields.sfmt_clddu.f
6323   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6324   int UNUSED written = 0;
6325   IADDR UNUSED pc = abuf->addr;
6326   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6327
6328 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6329 {
6330   SI tmp_address;
6331 if (NESI (FLD (f_GRk), 0)) {
6332 {
6333   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6334   {
6335     DI opval = frvbf_read_mem_DI (current_cpu, pc, tmp_address);
6336     sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
6337     written |= (1 << 6);
6338     TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
6339   }
6340 }
6341 }
6342 }
6343 }
6344
6345   abuf->written = written;
6346   return vpc;
6347 #undef FLD
6348 }
6349
6350 /* clddf: clddf$pack @($GRi,$GRj),$FRdoublek,$CCi,$cond */
6351
6352 static SEM_PC
6353 SEM_FN_NAME (frvbf,clddf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6354 {
6355 #define FLD(f) abuf->fields.sfmt_clddfu.f
6356   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6357   int UNUSED written = 0;
6358   IADDR UNUSED pc = abuf->addr;
6359   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6360
6361 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6362 {
6363   SI tmp_address;
6364 {
6365   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6366   {
6367     DF opval = frvbf_read_mem_DF (current_cpu, pc, tmp_address);
6368     sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
6369     written |= (1 << 5);
6370     TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
6371   }
6372 }
6373 }
6374 }
6375
6376   abuf->written = written;
6377   return vpc;
6378 #undef FLD
6379 }
6380
6381 /* cldq: cldq$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6382
6383 static SEM_PC
6384 SEM_FN_NAME (frvbf,cldq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6385 {
6386 #define FLD(f) abuf->fields.sfmt_cswap.f
6387   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6388   int UNUSED written = 0;
6389   IADDR UNUSED pc = abuf->addr;
6390   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6391
6392 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6393 {
6394   SI tmp_address;
6395 {
6396   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6397 frvbf_load_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
6398 }
6399 }
6400 }
6401
6402   return vpc;
6403 #undef FLD
6404 }
6405
6406 /* cldsbu: cldsbu$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6407
6408 static SEM_PC
6409 SEM_FN_NAME (frvbf,cldsbu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6410 {
6411 #define FLD(f) abuf->fields.sfmt_cldsbu.f
6412   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6413   int UNUSED written = 0;
6414   IADDR UNUSED pc = abuf->addr;
6415   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6416
6417 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6418 {
6419   SI tmp_address;
6420   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6421   {
6422     SI opval = frvbf_read_mem_QI (current_cpu, pc, tmp_address);
6423     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
6424     written |= (1 << 8);
6425     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6426   }
6427 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
6428   {
6429     SI opval = tmp_address;
6430     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6431     written |= (1 << 7);
6432     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6433   }
6434 }
6435 }
6436 }
6437
6438   abuf->written = written;
6439   return vpc;
6440 #undef FLD
6441 }
6442
6443 /* cldubu: cldubu$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6444
6445 static SEM_PC
6446 SEM_FN_NAME (frvbf,cldubu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6447 {
6448 #define FLD(f) abuf->fields.sfmt_cldsbu.f
6449   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6450   int UNUSED written = 0;
6451   IADDR UNUSED pc = abuf->addr;
6452   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6453
6454 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6455 {
6456   SI tmp_address;
6457   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6458   {
6459     SI opval = frvbf_read_mem_UQI (current_cpu, pc, tmp_address);
6460     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
6461     written |= (1 << 8);
6462     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6463   }
6464 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
6465   {
6466     SI opval = tmp_address;
6467     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6468     written |= (1 << 7);
6469     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6470   }
6471 }
6472 }
6473 }
6474
6475   abuf->written = written;
6476   return vpc;
6477 #undef FLD
6478 }
6479
6480 /* cldshu: cldshu$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6481
6482 static SEM_PC
6483 SEM_FN_NAME (frvbf,cldshu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6484 {
6485 #define FLD(f) abuf->fields.sfmt_cldsbu.f
6486   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6487   int UNUSED written = 0;
6488   IADDR UNUSED pc = abuf->addr;
6489   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6490
6491 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6492 {
6493   SI tmp_address;
6494   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6495   {
6496     SI opval = frvbf_read_mem_HI (current_cpu, pc, tmp_address);
6497     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
6498     written |= (1 << 8);
6499     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6500   }
6501 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
6502   {
6503     SI opval = tmp_address;
6504     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6505     written |= (1 << 7);
6506     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6507   }
6508 }
6509 }
6510 }
6511
6512   abuf->written = written;
6513   return vpc;
6514 #undef FLD
6515 }
6516
6517 /* clduhu: clduhu$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6518
6519 static SEM_PC
6520 SEM_FN_NAME (frvbf,clduhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6521 {
6522 #define FLD(f) abuf->fields.sfmt_cldsbu.f
6523   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6524   int UNUSED written = 0;
6525   IADDR UNUSED pc = abuf->addr;
6526   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6527
6528 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6529 {
6530   SI tmp_address;
6531   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6532   {
6533     SI opval = frvbf_read_mem_UHI (current_cpu, pc, tmp_address);
6534     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
6535     written |= (1 << 8);
6536     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6537   }
6538 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
6539   {
6540     SI opval = tmp_address;
6541     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6542     written |= (1 << 7);
6543     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6544   }
6545 }
6546 }
6547 }
6548
6549   abuf->written = written;
6550   return vpc;
6551 #undef FLD
6552 }
6553
6554 /* cldu: cldu$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6555
6556 static SEM_PC
6557 SEM_FN_NAME (frvbf,cldu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6558 {
6559 #define FLD(f) abuf->fields.sfmt_cldsbu.f
6560   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6561   int UNUSED written = 0;
6562   IADDR UNUSED pc = abuf->addr;
6563   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6564
6565 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6566 {
6567   SI tmp_address;
6568   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6569   {
6570     SI opval = frvbf_read_mem_SI (current_cpu, pc, tmp_address);
6571     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
6572     written |= (1 << 8);
6573     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6574   }
6575 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
6576   {
6577     SI opval = tmp_address;
6578     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6579     written |= (1 << 7);
6580     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6581   }
6582 }
6583 }
6584 }
6585
6586   abuf->written = written;
6587   return vpc;
6588 #undef FLD
6589 }
6590
6591 /* cldbfu: cldbfu$pack @($GRi,$GRj),$FRintk,$CCi,$cond */
6592
6593 static SEM_PC
6594 SEM_FN_NAME (frvbf,cldbfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6595 {
6596 #define FLD(f) abuf->fields.sfmt_cldbfu.f
6597   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6598   int UNUSED written = 0;
6599   IADDR UNUSED pc = abuf->addr;
6600   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6601
6602 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6603 {
6604   SI tmp_address;
6605   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6606   {
6607     SI opval = frvbf_read_mem_UQI (current_cpu, pc, tmp_address);
6608     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
6609     written |= (1 << 5);
6610     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
6611   }
6612   {
6613     SI opval = tmp_address;
6614     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6615     written |= (1 << 6);
6616     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6617   }
6618 }
6619 }
6620
6621   abuf->written = written;
6622   return vpc;
6623 #undef FLD
6624 }
6625
6626 /* cldhfu: cldhfu$pack @($GRi,$GRj),$FRintk,$CCi,$cond */
6627
6628 static SEM_PC
6629 SEM_FN_NAME (frvbf,cldhfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6630 {
6631 #define FLD(f) abuf->fields.sfmt_cldbfu.f
6632   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6633   int UNUSED written = 0;
6634   IADDR UNUSED pc = abuf->addr;
6635   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6636
6637 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6638 {
6639   SI tmp_address;
6640   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6641   {
6642     SI opval = frvbf_read_mem_UHI (current_cpu, pc, tmp_address);
6643     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
6644     written |= (1 << 5);
6645     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
6646   }
6647   {
6648     SI opval = tmp_address;
6649     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6650     written |= (1 << 6);
6651     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6652   }
6653 }
6654 }
6655
6656   abuf->written = written;
6657   return vpc;
6658 #undef FLD
6659 }
6660
6661 /* cldfu: cldfu$pack @($GRi,$GRj),$FRintk,$CCi,$cond */
6662
6663 static SEM_PC
6664 SEM_FN_NAME (frvbf,cldfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6665 {
6666 #define FLD(f) abuf->fields.sfmt_cldbfu.f
6667   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6668   int UNUSED written = 0;
6669   IADDR UNUSED pc = abuf->addr;
6670   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6671
6672 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6673 {
6674   SI tmp_address;
6675   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6676   {
6677     SI opval = frvbf_read_mem_SI (current_cpu, pc, tmp_address);
6678     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
6679     written |= (1 << 5);
6680     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
6681   }
6682   {
6683     SI opval = tmp_address;
6684     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6685     written |= (1 << 6);
6686     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6687   }
6688 }
6689 }
6690
6691   abuf->written = written;
6692   return vpc;
6693 #undef FLD
6694 }
6695
6696 /* clddu: clddu$pack @($GRi,$GRj),$GRdoublek,$CCi,$cond */
6697
6698 static SEM_PC
6699 SEM_FN_NAME (frvbf,clddu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6700 {
6701 #define FLD(f) abuf->fields.sfmt_clddu.f
6702   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6703   int UNUSED written = 0;
6704   IADDR UNUSED pc = abuf->addr;
6705   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6706
6707 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6708 {
6709   SI tmp_address;
6710 if (NESI (FLD (f_GRk), 0)) {
6711 {
6712   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6713   {
6714     DI opval = frvbf_read_mem_DI (current_cpu, pc, tmp_address);
6715     sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
6716     written |= (1 << 7);
6717     TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
6718   }
6719 }
6720 }
6721 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
6722   {
6723     SI opval = tmp_address;
6724     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6725     written |= (1 << 8);
6726     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6727   }
6728 }
6729 }
6730 }
6731
6732   abuf->written = written;
6733   return vpc;
6734 #undef FLD
6735 }
6736
6737 /* clddfu: clddfu$pack @($GRi,$GRj),$FRdoublek,$CCi,$cond */
6738
6739 static SEM_PC
6740 SEM_FN_NAME (frvbf,clddfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6741 {
6742 #define FLD(f) abuf->fields.sfmt_clddfu.f
6743   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6744   int UNUSED written = 0;
6745   IADDR UNUSED pc = abuf->addr;
6746   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6747
6748 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6749 {
6750   SI tmp_address;
6751 {
6752   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6753   {
6754     DF opval = frvbf_read_mem_DF (current_cpu, pc, tmp_address);
6755     sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
6756     written |= (1 << 5);
6757     TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
6758   }
6759 }
6760   {
6761     SI opval = tmp_address;
6762     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6763     written |= (1 << 6);
6764     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6765   }
6766 }
6767 }
6768
6769   abuf->written = written;
6770   return vpc;
6771 #undef FLD
6772 }
6773
6774 /* cldqu: cldqu$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6775
6776 static SEM_PC
6777 SEM_FN_NAME (frvbf,cldqu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6778 {
6779 #define FLD(f) abuf->fields.sfmt_cstdu.f
6780   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6781   int UNUSED written = 0;
6782   IADDR UNUSED pc = abuf->addr;
6783   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6784
6785 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6786 {
6787   SI tmp_address;
6788 {
6789   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6790 frvbf_load_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
6791 }
6792 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
6793   {
6794     SI opval = tmp_address;
6795     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6796     written |= (1 << 7);
6797     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6798   }
6799 }
6800 }
6801 }
6802
6803   abuf->written = written;
6804   return vpc;
6805 #undef FLD
6806 }
6807
6808 /* cstb: cstb$pack $GRk,@($GRi,$GRj),$CCi,$cond */
6809
6810 static SEM_PC
6811 SEM_FN_NAME (frvbf,cstb) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6812 {
6813 #define FLD(f) abuf->fields.sfmt_cswap.f
6814   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6815   int UNUSED written = 0;
6816   IADDR UNUSED pc = abuf->addr;
6817   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6818
6819 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6820 frvbf_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)));
6821 }
6822
6823   return vpc;
6824 #undef FLD
6825 }
6826
6827 /* csth: csth$pack $GRk,@($GRi,$GRj),$CCi,$cond */
6828
6829 static SEM_PC
6830 SEM_FN_NAME (frvbf,csth) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6831 {
6832 #define FLD(f) abuf->fields.sfmt_cswap.f
6833   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6834   int UNUSED written = 0;
6835   IADDR UNUSED pc = abuf->addr;
6836   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6837
6838 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6839 frvbf_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)));
6840 }
6841
6842   return vpc;
6843 #undef FLD
6844 }
6845
6846 /* cst: cst$pack $GRk,@($GRi,$GRj),$CCi,$cond */
6847
6848 static SEM_PC
6849 SEM_FN_NAME (frvbf,cst) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6850 {
6851 #define FLD(f) abuf->fields.sfmt_cswap.f
6852   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6853   int UNUSED written = 0;
6854   IADDR UNUSED pc = abuf->addr;
6855   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6856
6857 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6858 frvbf_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)));
6859 }
6860
6861   return vpc;
6862 #undef FLD
6863 }
6864
6865 /* cstbf: cstbf$pack $FRintk,@($GRi,$GRj),$CCi,$cond */
6866
6867 static SEM_PC
6868 SEM_FN_NAME (frvbf,cstbf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6869 {
6870 #define FLD(f) abuf->fields.sfmt_cstbfu.f
6871   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6872   int UNUSED written = 0;
6873   IADDR UNUSED pc = abuf->addr;
6874   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6875
6876 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6877 frvbf_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)));
6878 }
6879
6880   return vpc;
6881 #undef FLD
6882 }
6883
6884 /* csthf: csthf$pack $FRintk,@($GRi,$GRj),$CCi,$cond */
6885
6886 static SEM_PC
6887 SEM_FN_NAME (frvbf,csthf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6888 {
6889 #define FLD(f) abuf->fields.sfmt_cstbfu.f
6890   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6891   int UNUSED written = 0;
6892   IADDR UNUSED pc = abuf->addr;
6893   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6894
6895 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6896 frvbf_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)));
6897 }
6898
6899   return vpc;
6900 #undef FLD
6901 }
6902
6903 /* cstf: cstf$pack $FRintk,@($GRi,$GRj),$CCi,$cond */
6904
6905 static SEM_PC
6906 SEM_FN_NAME (frvbf,cstf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6907 {
6908 #define FLD(f) abuf->fields.sfmt_cstbfu.f
6909   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6910   int UNUSED written = 0;
6911   IADDR UNUSED pc = abuf->addr;
6912   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6913
6914 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6915 frvbf_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)));
6916 }
6917
6918   return vpc;
6919 #undef FLD
6920 }
6921
6922 /* cstd: cstd$pack $GRdoublek,@($GRi,$GRj),$CCi,$cond */
6923
6924 static SEM_PC
6925 SEM_FN_NAME (frvbf,cstd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6926 {
6927 #define FLD(f) abuf->fields.sfmt_cstdu.f
6928   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6929   int UNUSED written = 0;
6930   IADDR UNUSED pc = abuf->addr;
6931   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6932
6933 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6934 {
6935   SI tmp_address;
6936 {
6937   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6938 frvbf_write_mem_DI (current_cpu, pc, tmp_address, GET_H_GR_DOUBLE (FLD (f_GRk)));
6939 }
6940 }
6941 }
6942
6943   return vpc;
6944 #undef FLD
6945 }
6946
6947 /* cstdf: cstdf$pack $FRdoublek,@($GRi,$GRj),$CCi,$cond */
6948
6949 static SEM_PC
6950 SEM_FN_NAME (frvbf,cstdf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6951 {
6952 #define FLD(f) abuf->fields.sfmt_cstdfu.f
6953   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6954   int UNUSED written = 0;
6955   IADDR UNUSED pc = abuf->addr;
6956   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6957
6958 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6959 {
6960   SI tmp_address;
6961 {
6962   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6963 frvbf_write_mem_DF (current_cpu, pc, tmp_address, GET_H_FR_DOUBLE (FLD (f_FRk)));
6964 }
6965 }
6966 }
6967
6968   return vpc;
6969 #undef FLD
6970 }
6971
6972 /* cstq: cstq$pack $GRk,@($GRi,$GRj),$CCi,$cond */
6973
6974 static SEM_PC
6975 SEM_FN_NAME (frvbf,cstq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6976 {
6977 #define FLD(f) abuf->fields.sfmt_cswap.f
6978   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6979   int UNUSED written = 0;
6980   IADDR UNUSED pc = abuf->addr;
6981   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6982
6983 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6984 {
6985   SI tmp_address;
6986 {
6987   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6988 frvbf_store_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
6989 }
6990 }
6991 }
6992
6993   return vpc;
6994 #undef FLD
6995 }
6996
6997 /* cstbu: cstbu$pack $GRk,@($GRi,$GRj),$CCi,$cond */
6998
6999 static SEM_PC
7000 SEM_FN_NAME (frvbf,cstbu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7001 {
7002 #define FLD(f) abuf->fields.sfmt_cstbu.f
7003   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7004   int UNUSED written = 0;
7005   IADDR UNUSED pc = abuf->addr;
7006   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7007
7008 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7009 {
7010   SI tmp_address;
7011   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7012 frvbf_write_mem_QI (current_cpu, pc, tmp_address, GET_H_GR (FLD (f_GRk)));
7013   {
7014     SI opval = tmp_address;
7015     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
7016     written |= (1 << 6);
7017     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7018   }
7019 }
7020 }
7021
7022   abuf->written = written;
7023   return vpc;
7024 #undef FLD
7025 }
7026
7027 /* csthu: csthu$pack $GRk,@($GRi,$GRj),$CCi,$cond */
7028
7029 static SEM_PC
7030 SEM_FN_NAME (frvbf,csthu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7031 {
7032 #define FLD(f) abuf->fields.sfmt_cstbu.f
7033   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7034   int UNUSED written = 0;
7035   IADDR UNUSED pc = abuf->addr;
7036   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7037
7038 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7039 {
7040   SI tmp_address;
7041   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7042 frvbf_write_mem_HI (current_cpu, pc, tmp_address, GET_H_GR (FLD (f_GRk)));
7043   {
7044     SI opval = tmp_address;
7045     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
7046     written |= (1 << 6);
7047     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7048   }
7049 }
7050 }
7051
7052   abuf->written = written;
7053   return vpc;
7054 #undef FLD
7055 }
7056
7057 /* cstu: cstu$pack $GRk,@($GRi,$GRj),$CCi,$cond */
7058
7059 static SEM_PC
7060 SEM_FN_NAME (frvbf,cstu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7061 {
7062 #define FLD(f) abuf->fields.sfmt_cstbu.f
7063   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7064   int UNUSED written = 0;
7065   IADDR UNUSED pc = abuf->addr;
7066   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7067
7068 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7069 {
7070   SI tmp_address;
7071   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7072 frvbf_write_mem_SI (current_cpu, pc, tmp_address, GET_H_GR (FLD (f_GRk)));
7073   {
7074     SI opval = tmp_address;
7075     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
7076     written |= (1 << 6);
7077     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7078   }
7079 }
7080 }
7081
7082   abuf->written = written;
7083   return vpc;
7084 #undef FLD
7085 }
7086
7087 /* cstbfu: cstbfu$pack $FRintk,@($GRi,$GRj),$CCi,$cond */
7088
7089 static SEM_PC
7090 SEM_FN_NAME (frvbf,cstbfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7091 {
7092 #define FLD(f) abuf->fields.sfmt_cstbfu.f
7093   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7094   int UNUSED written = 0;
7095   IADDR UNUSED pc = abuf->addr;
7096   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7097
7098 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7099 {
7100   SI tmp_address;
7101   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7102 frvbf_write_mem_QI (current_cpu, pc, tmp_address, GET_H_FR_INT (FLD (f_FRk)));
7103   {
7104     SI opval = tmp_address;
7105     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
7106     written |= (1 << 6);
7107     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7108   }
7109 }
7110 }
7111
7112   abuf->written = written;
7113   return vpc;
7114 #undef FLD
7115 }
7116
7117 /* csthfu: csthfu$pack $FRintk,@($GRi,$GRj),$CCi,$cond */
7118
7119 static SEM_PC
7120 SEM_FN_NAME (frvbf,csthfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7121 {
7122 #define FLD(f) abuf->fields.sfmt_cstbfu.f
7123   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7124   int UNUSED written = 0;
7125   IADDR UNUSED pc = abuf->addr;
7126   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7127
7128 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7129 {
7130   SI tmp_address;
7131   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7132 frvbf_write_mem_HI (current_cpu, pc, tmp_address, GET_H_FR_INT (FLD (f_FRk)));
7133   {
7134     SI opval = tmp_address;
7135     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
7136     written |= (1 << 6);
7137     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7138   }
7139 }
7140 }
7141
7142   abuf->written = written;
7143   return vpc;
7144 #undef FLD
7145 }
7146
7147 /* cstfu: cstfu$pack $FRintk,@($GRi,$GRj),$CCi,$cond */
7148
7149 static SEM_PC
7150 SEM_FN_NAME (frvbf,cstfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7151 {
7152 #define FLD(f) abuf->fields.sfmt_cstbfu.f
7153   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7154   int UNUSED written = 0;
7155   IADDR UNUSED pc = abuf->addr;
7156   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7157
7158 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7159 {
7160   SI tmp_address;
7161   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7162 frvbf_write_mem_SI (current_cpu, pc, tmp_address, GET_H_FR_INT (FLD (f_FRk)));
7163   {
7164     SI opval = tmp_address;
7165     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
7166     written |= (1 << 6);
7167     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7168   }
7169 }
7170 }
7171
7172   abuf->written = written;
7173   return vpc;
7174 #undef FLD
7175 }
7176
7177 /* cstdu: cstdu$pack $GRdoublek,@($GRi,$GRj),$CCi,$cond */
7178
7179 static SEM_PC
7180 SEM_FN_NAME (frvbf,cstdu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7181 {
7182 #define FLD(f) abuf->fields.sfmt_cstdu.f
7183   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7184   int UNUSED written = 0;
7185   IADDR UNUSED pc = abuf->addr;
7186   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7187
7188 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7189 {
7190   SI tmp_address;
7191 {
7192   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7193 frvbf_write_mem_DI (current_cpu, pc, tmp_address, GET_H_GR_DOUBLE (FLD (f_GRk)));
7194 }
7195   {
7196     SI opval = tmp_address;
7197     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
7198     written |= (1 << 6);
7199     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7200   }
7201 }
7202 }
7203
7204   abuf->written = written;
7205   return vpc;
7206 #undef FLD
7207 }
7208
7209 /* cstdfu: cstdfu$pack $FRdoublek,@($GRi,$GRj),$CCi,$cond */
7210
7211 static SEM_PC
7212 SEM_FN_NAME (frvbf,cstdfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7213 {
7214 #define FLD(f) abuf->fields.sfmt_cstdfu.f
7215   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7216   int UNUSED written = 0;
7217   IADDR UNUSED pc = abuf->addr;
7218   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7219
7220 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7221 {
7222   SI tmp_address;
7223 {
7224   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7225 frvbf_write_mem_DF (current_cpu, pc, tmp_address, GET_H_FR_DOUBLE (FLD (f_FRk)));
7226 }
7227   {
7228     SI opval = tmp_address;
7229     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
7230     written |= (1 << 6);
7231     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7232   }
7233 }
7234 }
7235
7236   abuf->written = written;
7237   return vpc;
7238 #undef FLD
7239 }
7240
7241 /* stbi: stbi$pack $GRk,@($GRi,$d12) */
7242
7243 static SEM_PC
7244 SEM_FN_NAME (frvbf,stbi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7245 {
7246 #define FLD(f) abuf->fields.sfmt_swapi.f
7247   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7248   int UNUSED written = 0;
7249   IADDR UNUSED pc = abuf->addr;
7250   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7251
7252 frvbf_write_mem_QI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)), GET_H_GR (FLD (f_GRk)));
7253
7254   return vpc;
7255 #undef FLD
7256 }
7257
7258 /* sthi: sthi$pack $GRk,@($GRi,$d12) */
7259
7260 static SEM_PC
7261 SEM_FN_NAME (frvbf,sthi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7262 {
7263 #define FLD(f) abuf->fields.sfmt_swapi.f
7264   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7265   int UNUSED written = 0;
7266   IADDR UNUSED pc = abuf->addr;
7267   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7268
7269 frvbf_write_mem_HI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)), GET_H_GR (FLD (f_GRk)));
7270
7271   return vpc;
7272 #undef FLD
7273 }
7274
7275 /* sti: sti$pack $GRk,@($GRi,$d12) */
7276
7277 static SEM_PC
7278 SEM_FN_NAME (frvbf,sti) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7279 {
7280 #define FLD(f) abuf->fields.sfmt_swapi.f
7281   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7282   int UNUSED written = 0;
7283   IADDR UNUSED pc = abuf->addr;
7284   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7285
7286 frvbf_write_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)), GET_H_GR (FLD (f_GRk)));
7287
7288   return vpc;
7289 #undef FLD
7290 }
7291
7292 /* stbfi: stbfi$pack $FRintk,@($GRi,$d12) */
7293
7294 static SEM_PC
7295 SEM_FN_NAME (frvbf,stbfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7296 {
7297 #define FLD(f) abuf->fields.sfmt_stbfi.f
7298   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7299   int UNUSED written = 0;
7300   IADDR UNUSED pc = abuf->addr;
7301   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7302
7303 frvbf_write_mem_QI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)), GET_H_FR_INT (FLD (f_FRk)));
7304
7305   return vpc;
7306 #undef FLD
7307 }
7308
7309 /* sthfi: sthfi$pack $FRintk,@($GRi,$d12) */
7310
7311 static SEM_PC
7312 SEM_FN_NAME (frvbf,sthfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7313 {
7314 #define FLD(f) abuf->fields.sfmt_stbfi.f
7315   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7316   int UNUSED written = 0;
7317   IADDR UNUSED pc = abuf->addr;
7318   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7319
7320 frvbf_write_mem_HI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)), GET_H_FR_INT (FLD (f_FRk)));
7321
7322   return vpc;
7323 #undef FLD
7324 }
7325
7326 /* stfi: stfi$pack $FRintk,@($GRi,$d12) */
7327
7328 static SEM_PC
7329 SEM_FN_NAME (frvbf,stfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7330 {
7331 #define FLD(f) abuf->fields.sfmt_stbfi.f
7332   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7333   int UNUSED written = 0;
7334   IADDR UNUSED pc = abuf->addr;
7335   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7336
7337 frvbf_write_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)), GET_H_FR_INT (FLD (f_FRk)));
7338
7339   return vpc;
7340 #undef FLD
7341 }
7342
7343 /* stdi: stdi$pack $GRdoublek,@($GRi,$d12) */
7344
7345 static SEM_PC
7346 SEM_FN_NAME (frvbf,stdi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7347 {
7348 #define FLD(f) abuf->fields.sfmt_stdi.f
7349   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7350   int UNUSED written = 0;
7351   IADDR UNUSED pc = abuf->addr;
7352   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7353
7354 {
7355   SI tmp_address;
7356 {
7357   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
7358 frvbf_write_mem_DI (current_cpu, pc, tmp_address, GET_H_GR_DOUBLE (FLD (f_GRk)));
7359 }
7360 }
7361
7362   return vpc;
7363 #undef FLD
7364 }
7365
7366 /* stdfi: stdfi$pack $FRdoublek,@($GRi,$d12) */
7367
7368 static SEM_PC
7369 SEM_FN_NAME (frvbf,stdfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7370 {
7371 #define FLD(f) abuf->fields.sfmt_stdfi.f
7372   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7373   int UNUSED written = 0;
7374   IADDR UNUSED pc = abuf->addr;
7375   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7376
7377 {
7378   SI tmp_address;
7379 {
7380   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
7381 frvbf_write_mem_DF (current_cpu, pc, tmp_address, GET_H_FR_DOUBLE (FLD (f_FRk)));
7382 }
7383 }
7384
7385   return vpc;
7386 #undef FLD
7387 }
7388
7389 /* stqi: stqi$pack $GRk,@($GRi,$d12) */
7390
7391 static SEM_PC
7392 SEM_FN_NAME (frvbf,stqi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7393 {
7394 #define FLD(f) abuf->fields.sfmt_stdi.f
7395   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7396   int UNUSED written = 0;
7397   IADDR UNUSED pc = abuf->addr;
7398   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7399
7400 {
7401   SI tmp_address;
7402 {
7403   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
7404 frvbf_store_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
7405 }
7406 }
7407
7408   return vpc;
7409 #undef FLD
7410 }
7411
7412 /* stqfi: stqfi$pack $FRintk,@($GRi,$d12) */
7413
7414 static SEM_PC
7415 SEM_FN_NAME (frvbf,stqfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7416 {
7417 #define FLD(f) abuf->fields.sfmt_stdfi.f
7418   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7419   int UNUSED written = 0;
7420   IADDR UNUSED pc = abuf->addr;
7421   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7422
7423 {
7424   SI tmp_address;
7425 {
7426   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
7427 frvbf_store_quad_FRint (current_cpu, pc, tmp_address, FLD (f_FRk));
7428 }
7429 }
7430
7431   return vpc;
7432 #undef FLD
7433 }
7434
7435 /* swap: swap$pack @($GRi,$GRj),$GRk */
7436
7437 static SEM_PC
7438 SEM_FN_NAME (frvbf,swap) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7439 {
7440 #define FLD(f) abuf->fields.sfmt_cswap.f
7441   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7442   int UNUSED written = 0;
7443   IADDR UNUSED pc = abuf->addr;
7444   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7445
7446 {
7447   SI tmp_tmp;
7448   SI tmp_address;
7449   tmp_tmp = GET_H_GR (FLD (f_GRk));
7450   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7451 frvbf_check_swap_address (current_cpu, tmp_address);
7452   {
7453     SI opval = frvbf_read_mem_WI (current_cpu, pc, tmp_address);
7454     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
7455     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7456   }
7457 frvbf_write_mem_WI (current_cpu, pc, tmp_address, tmp_tmp);
7458 }
7459
7460   return vpc;
7461 #undef FLD
7462 }
7463
7464 /* swapi: swapi$pack @($GRi,$d12),$GRk */
7465
7466 static SEM_PC
7467 SEM_FN_NAME (frvbf,swapi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7468 {
7469 #define FLD(f) abuf->fields.sfmt_swapi.f
7470   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7471   int UNUSED written = 0;
7472   IADDR UNUSED pc = abuf->addr;
7473   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7474
7475 {
7476   SI tmp_tmp;
7477   SI tmp_address;
7478   tmp_tmp = GET_H_GR (FLD (f_GRk));
7479   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
7480 frvbf_check_swap_address (current_cpu, tmp_address);
7481   {
7482     SI opval = frvbf_read_mem_WI (current_cpu, pc, tmp_address);
7483     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
7484     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7485   }
7486 frvbf_write_mem_WI (current_cpu, pc, tmp_address, tmp_tmp);
7487 }
7488
7489   return vpc;
7490 #undef FLD
7491 }
7492
7493 /* cswap: cswap$pack @($GRi,$GRj),$GRk,$CCi,$cond */
7494
7495 static SEM_PC
7496 SEM_FN_NAME (frvbf,cswap) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7497 {
7498 #define FLD(f) abuf->fields.sfmt_cswap.f
7499   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7500   int UNUSED written = 0;
7501   IADDR UNUSED pc = abuf->addr;
7502   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7503
7504 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7505 {
7506   SI tmp_tmp;
7507   SI tmp_address;
7508   tmp_tmp = GET_H_GR (FLD (f_GRk));
7509   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7510 frvbf_check_swap_address (current_cpu, tmp_address);
7511   {
7512     SI opval = frvbf_read_mem_WI (current_cpu, pc, tmp_address);
7513     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
7514     written |= (1 << 6);
7515     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7516   }
7517 frvbf_write_mem_WI (current_cpu, pc, tmp_address, tmp_tmp);
7518 }
7519 }
7520
7521   abuf->written = written;
7522   return vpc;
7523 #undef FLD
7524 }
7525
7526 /* movgf: movgf$pack $GRj,$FRintk */
7527
7528 static SEM_PC
7529 SEM_FN_NAME (frvbf,movgf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7530 {
7531 #define FLD(f) abuf->fields.sfmt_cmovgfd.f
7532   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7533   int UNUSED written = 0;
7534   IADDR UNUSED pc = abuf->addr;
7535   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7536
7537   {
7538     SI opval = GET_H_GR (FLD (f_GRj));
7539     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
7540     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7541   }
7542
7543   return vpc;
7544 #undef FLD
7545 }
7546
7547 /* movfg: movfg$pack $FRintk,$GRj */
7548
7549 static SEM_PC
7550 SEM_FN_NAME (frvbf,movfg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7551 {
7552 #define FLD(f) abuf->fields.sfmt_cmovfgd.f
7553   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7554   int UNUSED written = 0;
7555   IADDR UNUSED pc = abuf->addr;
7556   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7557
7558   {
7559     SI opval = GET_H_FR_INT (FLD (f_FRk));
7560     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRj), opval);
7561     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7562   }
7563
7564   return vpc;
7565 #undef FLD
7566 }
7567
7568 /* movgfd: movgfd$pack $GRj,$FRintk */
7569
7570 static SEM_PC
7571 SEM_FN_NAME (frvbf,movgfd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7572 {
7573 #define FLD(f) abuf->fields.sfmt_cmovgfd.f
7574   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7575   int UNUSED written = 0;
7576   IADDR UNUSED pc = abuf->addr;
7577   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7578
7579 if (EQSI (FLD (f_GRj), 0)) {
7580 {
7581   {
7582     SI opval = 0;
7583     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
7584     written |= (1 << 4);
7585     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7586   }
7587   {
7588     USI opval = 0;
7589     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ADDSI (FLD (f_FRk), 1), opval);
7590     written |= (1 << 5);
7591     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7592   }
7593 }
7594 } else {
7595 {
7596   {
7597     SI opval = GET_H_GR (FLD (f_GRj));
7598     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
7599     written |= (1 << 4);
7600     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7601   }
7602   {
7603     USI opval = GET_H_GR (ADDSI (FLD (f_GRj), 1));
7604     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ADDSI (FLD (f_FRk), 1), opval);
7605     written |= (1 << 5);
7606     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7607   }
7608 }
7609 }
7610
7611   abuf->written = written;
7612   return vpc;
7613 #undef FLD
7614 }
7615
7616 /* movfgd: movfgd$pack $FRintk,$GRj */
7617
7618 static SEM_PC
7619 SEM_FN_NAME (frvbf,movfgd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7620 {
7621 #define FLD(f) abuf->fields.sfmt_cmovfgd.f
7622   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7623   int UNUSED written = 0;
7624   IADDR UNUSED pc = abuf->addr;
7625   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7626
7627 if (NESI (FLD (f_GRj), 0)) {
7628 {
7629   {
7630     SI opval = GET_H_FR_INT (FLD (f_FRk));
7631     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRj), opval);
7632     written |= (1 << 4);
7633     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7634   }
7635   {
7636     USI opval = GET_H_FR_INT (ADDSI (FLD (f_FRk), 1));
7637     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, ADDSI (FLD (f_GRj), 1), opval);
7638     written |= (1 << 5);
7639     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7640   }
7641 }
7642 }
7643
7644   abuf->written = written;
7645   return vpc;
7646 #undef FLD
7647 }
7648
7649 /* movgfq: movgfq$pack $GRj,$FRintk */
7650
7651 static SEM_PC
7652 SEM_FN_NAME (frvbf,movgfq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7653 {
7654 #define FLD(f) abuf->fields.sfmt_movgfq.f
7655   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7656   int UNUSED written = 0;
7657   IADDR UNUSED pc = abuf->addr;
7658   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7659
7660 if (EQSI (FLD (f_GRj), 0)) {
7661 {
7662   {
7663     SI opval = 0;
7664     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
7665     written |= (1 << 6);
7666     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7667   }
7668   {
7669     USI opval = 0;
7670     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ADDSI (FLD (f_FRk), 1), opval);
7671     written |= (1 << 7);
7672     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7673   }
7674   {
7675     USI opval = 0;
7676     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ADDSI (FLD (f_FRk), 2), opval);
7677     written |= (1 << 8);
7678     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7679   }
7680   {
7681     USI opval = 0;
7682     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ADDSI (FLD (f_FRk), 3), opval);
7683     written |= (1 << 9);
7684     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7685   }
7686 }
7687 } else {
7688 {
7689   {
7690     SI opval = GET_H_GR (FLD (f_GRj));
7691     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
7692     written |= (1 << 6);
7693     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7694   }
7695   {
7696     USI opval = GET_H_GR (ADDSI (FLD (f_GRj), 1));
7697     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ADDSI (FLD (f_FRk), 1), opval);
7698     written |= (1 << 7);
7699     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7700   }
7701   {
7702     USI opval = GET_H_GR (ADDSI (FLD (f_GRj), 2));
7703     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ADDSI (FLD (f_FRk), 2), opval);
7704     written |= (1 << 8);
7705     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7706   }
7707   {
7708     USI opval = GET_H_GR (ADDSI (FLD (f_GRj), 3));
7709     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ADDSI (FLD (f_FRk), 3), opval);
7710     written |= (1 << 9);
7711     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7712   }
7713 }
7714 }
7715
7716   abuf->written = written;
7717   return vpc;
7718 #undef FLD
7719 }
7720
7721 /* movfgq: movfgq$pack $FRintk,$GRj */
7722
7723 static SEM_PC
7724 SEM_FN_NAME (frvbf,movfgq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7725 {
7726 #define FLD(f) abuf->fields.sfmt_movfgq.f
7727   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7728   int UNUSED written = 0;
7729   IADDR UNUSED pc = abuf->addr;
7730   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7731
7732 if (NESI (FLD (f_GRj), 0)) {
7733 {
7734   {
7735     SI opval = GET_H_FR_INT (FLD (f_FRk));
7736     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRj), opval);
7737     written |= (1 << 6);
7738     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7739   }
7740   {
7741     USI opval = GET_H_FR_INT (ADDSI (FLD (f_FRk), 1));
7742     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, ADDSI (FLD (f_GRj), 1), opval);
7743     written |= (1 << 7);
7744     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7745   }
7746   {
7747     USI opval = GET_H_FR_INT (ADDSI (FLD (f_FRk), 2));
7748     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, ADDSI (FLD (f_GRj), 2), opval);
7749     written |= (1 << 8);
7750     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7751   }
7752   {
7753     USI opval = GET_H_FR_INT (ADDSI (FLD (f_FRk), 3));
7754     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, ADDSI (FLD (f_GRj), 3), opval);
7755     written |= (1 << 9);
7756     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7757   }
7758 }
7759 }
7760
7761   abuf->written = written;
7762   return vpc;
7763 #undef FLD
7764 }
7765
7766 /* cmovgf: cmovgf$pack $GRj,$FRintk,$CCi,$cond */
7767
7768 static SEM_PC
7769 SEM_FN_NAME (frvbf,cmovgf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7770 {
7771 #define FLD(f) abuf->fields.sfmt_cmovgfd.f
7772   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7773   int UNUSED written = 0;
7774   IADDR UNUSED pc = abuf->addr;
7775   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7776
7777 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7778   {
7779     SI opval = GET_H_GR (FLD (f_GRj));
7780     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
7781     written |= (1 << 3);
7782     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7783   }
7784 }
7785
7786   abuf->written = written;
7787   return vpc;
7788 #undef FLD
7789 }
7790
7791 /* cmovfg: cmovfg$pack $FRintk,$GRj,$CCi,$cond */
7792
7793 static SEM_PC
7794 SEM_FN_NAME (frvbf,cmovfg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7795 {
7796 #define FLD(f) abuf->fields.sfmt_cmovfgd.f
7797   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7798   int UNUSED written = 0;
7799   IADDR UNUSED pc = abuf->addr;
7800   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7801
7802 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7803   {
7804     SI opval = GET_H_FR_INT (FLD (f_FRk));
7805     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRj), opval);
7806     written |= (1 << 3);
7807     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7808   }
7809 }
7810
7811   abuf->written = written;
7812   return vpc;
7813 #undef FLD
7814 }
7815
7816 /* cmovgfd: cmovgfd$pack $GRj,$FRintk,$CCi,$cond */
7817
7818 static SEM_PC
7819 SEM_FN_NAME (frvbf,cmovgfd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7820 {
7821 #define FLD(f) abuf->fields.sfmt_cmovgfd.f
7822   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7823   int UNUSED written = 0;
7824   IADDR UNUSED pc = abuf->addr;
7825   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7826
7827 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7828 if (EQSI (FLD (f_GRj), 0)) {
7829 {
7830   {
7831     SI opval = 0;
7832     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
7833     written |= (1 << 6);
7834     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7835   }
7836   {
7837     USI opval = 0;
7838     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ADDSI (FLD (f_FRk), 1), opval);
7839     written |= (1 << 7);
7840     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7841   }
7842 }
7843 } else {
7844 {
7845   {
7846     SI opval = GET_H_GR (FLD (f_GRj));
7847     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
7848     written |= (1 << 6);
7849     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7850   }
7851   {
7852     USI opval = GET_H_GR (ADDSI (FLD (f_GRj), 1));
7853     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ADDSI (FLD (f_FRk), 1), opval);
7854     written |= (1 << 7);
7855     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7856   }
7857 }
7858 }
7859 }
7860
7861   abuf->written = written;
7862   return vpc;
7863 #undef FLD
7864 }
7865
7866 /* cmovfgd: cmovfgd$pack $FRintk,$GRj,$CCi,$cond */
7867
7868 static SEM_PC
7869 SEM_FN_NAME (frvbf,cmovfgd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7870 {
7871 #define FLD(f) abuf->fields.sfmt_cmovfgd.f
7872   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7873   int UNUSED written = 0;
7874   IADDR UNUSED pc = abuf->addr;
7875   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7876
7877 if (ANDIF (NESI (FLD (f_GRj), 0), EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2)))) {
7878 {
7879   {
7880     SI opval = GET_H_FR_INT (FLD (f_FRk));
7881     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRj), opval);
7882     written |= (1 << 6);
7883     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7884   }
7885   {
7886     USI opval = GET_H_FR_INT (ADDSI (FLD (f_FRk), 1));
7887     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, ADDSI (FLD (f_GRj), 1), opval);
7888     written |= (1 << 7);
7889     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7890   }
7891 }
7892 }
7893
7894   abuf->written = written;
7895   return vpc;
7896 #undef FLD
7897 }
7898
7899 /* movgs: movgs$pack $GRj,$spr */
7900
7901 static SEM_PC
7902 SEM_FN_NAME (frvbf,movgs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7903 {
7904 #define FLD(f) abuf->fields.sfmt_movgs.f
7905   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7906   int UNUSED written = 0;
7907   IADDR UNUSED pc = abuf->addr;
7908   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7909
7910   {
7911     USI opval = GET_H_GR (FLD (f_GRj));
7912     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, FLD (f_spr), opval);
7913     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
7914   }
7915
7916   return vpc;
7917 #undef FLD
7918 }
7919
7920 /* movsg: movsg$pack $spr,$GRj */
7921
7922 static SEM_PC
7923 SEM_FN_NAME (frvbf,movsg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7924 {
7925 #define FLD(f) abuf->fields.sfmt_movsg.f
7926   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7927   int UNUSED written = 0;
7928   IADDR UNUSED pc = abuf->addr;
7929   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7930
7931   {
7932     SI opval = GET_H_SPR (FLD (f_spr));
7933     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRj), opval);
7934     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7935   }
7936
7937   return vpc;
7938 #undef FLD
7939 }
7940
7941 /* bra: bra$pack $hint_taken$label16 */
7942
7943 static SEM_PC
7944 SEM_FN_NAME (frvbf,bra) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7945 {
7946 #define FLD(f) abuf->fields.sfmt_fbne.f
7947   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7948   int UNUSED written = 0;
7949   IADDR UNUSED pc = abuf->addr;
7950   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7951
7952 {
7953 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
7954   {
7955     USI opval = FLD (i_label16);
7956     sim_queue_pc_write (current_cpu, opval);
7957     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
7958   }
7959 }
7960
7961   return vpc;
7962 #undef FLD
7963 }
7964
7965 /* bno: bno$pack$hint_not_taken */
7966
7967 static SEM_PC
7968 SEM_FN_NAME (frvbf,bno) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7969 {
7970 #define FLD(f) abuf->fields.sfmt_fbne.f
7971   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7972   int UNUSED written = 0;
7973   IADDR UNUSED pc = abuf->addr;
7974   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7975
7976 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
7977
7978   return vpc;
7979 #undef FLD
7980 }
7981
7982 /* beq: beq$pack $ICCi_2,$hint,$label16 */
7983
7984 static SEM_PC
7985 SEM_FN_NAME (frvbf,beq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7986 {
7987 #define FLD(f) abuf->fields.sfmt_beq.f
7988   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7989   int UNUSED written = 0;
7990   IADDR UNUSED pc = abuf->addr;
7991   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7992
7993 {
7994 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
7995 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2))) {
7996   {
7997     USI opval = FLD (i_label16);
7998     sim_queue_pc_write (current_cpu, opval);
7999     written |= (1 << 3);
8000     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8001   }
8002 }
8003 }
8004
8005   abuf->written = written;
8006   return vpc;
8007 #undef FLD
8008 }
8009
8010 /* bne: bne$pack $ICCi_2,$hint,$label16 */
8011
8012 static SEM_PC
8013 SEM_FN_NAME (frvbf,bne) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8014 {
8015 #define FLD(f) abuf->fields.sfmt_beq.f
8016   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8017   int UNUSED written = 0;
8018   IADDR UNUSED pc = abuf->addr;
8019   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8020
8021 {
8022 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8023 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)))) {
8024   {
8025     USI opval = FLD (i_label16);
8026     sim_queue_pc_write (current_cpu, opval);
8027     written |= (1 << 3);
8028     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8029   }
8030 }
8031 }
8032
8033   abuf->written = written;
8034   return vpc;
8035 #undef FLD
8036 }
8037
8038 /* ble: ble$pack $ICCi_2,$hint,$label16 */
8039
8040 static SEM_PC
8041 SEM_FN_NAME (frvbf,ble) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8042 {
8043 #define FLD(f) abuf->fields.sfmt_beq.f
8044   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8045   int UNUSED written = 0;
8046   IADDR UNUSED pc = abuf->addr;
8047   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8048
8049 {
8050 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8051 if (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))))) {
8052   {
8053     USI opval = FLD (i_label16);
8054     sim_queue_pc_write (current_cpu, opval);
8055     written |= (1 << 3);
8056     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8057   }
8058 }
8059 }
8060
8061   abuf->written = written;
8062   return vpc;
8063 #undef FLD
8064 }
8065
8066 /* bgt: bgt$pack $ICCi_2,$hint,$label16 */
8067
8068 static SEM_PC
8069 SEM_FN_NAME (frvbf,bgt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8070 {
8071 #define FLD(f) abuf->fields.sfmt_beq.f
8072   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8073   int UNUSED written = 0;
8074   IADDR UNUSED pc = abuf->addr;
8075   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8076
8077 {
8078 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8079 if (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)))))) {
8080   {
8081     USI opval = FLD (i_label16);
8082     sim_queue_pc_write (current_cpu, opval);
8083     written |= (1 << 3);
8084     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8085   }
8086 }
8087 }
8088
8089   abuf->written = written;
8090   return vpc;
8091 #undef FLD
8092 }
8093
8094 /* blt: blt$pack $ICCi_2,$hint,$label16 */
8095
8096 static SEM_PC
8097 SEM_FN_NAME (frvbf,blt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8098 {
8099 #define FLD(f) abuf->fields.sfmt_beq.f
8100   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8101   int UNUSED written = 0;
8102   IADDR UNUSED pc = abuf->addr;
8103   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8104
8105 {
8106 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8107 if (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)))) {
8108   {
8109     USI opval = FLD (i_label16);
8110     sim_queue_pc_write (current_cpu, opval);
8111     written |= (1 << 3);
8112     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8113   }
8114 }
8115 }
8116
8117   abuf->written = written;
8118   return vpc;
8119 #undef FLD
8120 }
8121
8122 /* bge: bge$pack $ICCi_2,$hint,$label16 */
8123
8124 static SEM_PC
8125 SEM_FN_NAME (frvbf,bge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8126 {
8127 #define FLD(f) abuf->fields.sfmt_beq.f
8128   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8129   int UNUSED written = 0;
8130   IADDR UNUSED pc = abuf->addr;
8131   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8132
8133 {
8134 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8135 if (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))))) {
8136   {
8137     USI opval = FLD (i_label16);
8138     sim_queue_pc_write (current_cpu, opval);
8139     written |= (1 << 3);
8140     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8141   }
8142 }
8143 }
8144
8145   abuf->written = written;
8146   return vpc;
8147 #undef FLD
8148 }
8149
8150 /* bls: bls$pack $ICCi_2,$hint,$label16 */
8151
8152 static SEM_PC
8153 SEM_FN_NAME (frvbf,bls) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8154 {
8155 #define FLD(f) abuf->fields.sfmt_beq.f
8156   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8157   int UNUSED written = 0;
8158   IADDR UNUSED pc = abuf->addr;
8159   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8160
8161 {
8162 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8163 if (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)))) {
8164   {
8165     USI opval = FLD (i_label16);
8166     sim_queue_pc_write (current_cpu, opval);
8167     written |= (1 << 3);
8168     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8169   }
8170 }
8171 }
8172
8173   abuf->written = written;
8174   return vpc;
8175 #undef FLD
8176 }
8177
8178 /* bhi: bhi$pack $ICCi_2,$hint,$label16 */
8179
8180 static SEM_PC
8181 SEM_FN_NAME (frvbf,bhi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8182 {
8183 #define FLD(f) abuf->fields.sfmt_beq.f
8184   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8185   int UNUSED written = 0;
8186   IADDR UNUSED pc = abuf->addr;
8187   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8188
8189 {
8190 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8191 if (NOTBI (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2))))) {
8192   {
8193     USI opval = FLD (i_label16);
8194     sim_queue_pc_write (current_cpu, opval);
8195     written |= (1 << 3);
8196     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8197   }
8198 }
8199 }
8200
8201   abuf->written = written;
8202   return vpc;
8203 #undef FLD
8204 }
8205
8206 /* bc: bc$pack $ICCi_2,$hint,$label16 */
8207
8208 static SEM_PC
8209 SEM_FN_NAME (frvbf,bc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8210 {
8211 #define FLD(f) abuf->fields.sfmt_beq.f
8212   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8213   int UNUSED written = 0;
8214   IADDR UNUSED pc = abuf->addr;
8215   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8216
8217 {
8218 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8219 if (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1))) {
8220   {
8221     USI opval = FLD (i_label16);
8222     sim_queue_pc_write (current_cpu, opval);
8223     written |= (1 << 3);
8224     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8225   }
8226 }
8227 }
8228
8229   abuf->written = written;
8230   return vpc;
8231 #undef FLD
8232 }
8233
8234 /* bnc: bnc$pack $ICCi_2,$hint,$label16 */
8235
8236 static SEM_PC
8237 SEM_FN_NAME (frvbf,bnc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8238 {
8239 #define FLD(f) abuf->fields.sfmt_beq.f
8240   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8241   int UNUSED written = 0;
8242   IADDR UNUSED pc = abuf->addr;
8243   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8244
8245 {
8246 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8247 if (NOTBI (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)))) {
8248   {
8249     USI opval = FLD (i_label16);
8250     sim_queue_pc_write (current_cpu, opval);
8251     written |= (1 << 3);
8252     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8253   }
8254 }
8255 }
8256
8257   abuf->written = written;
8258   return vpc;
8259 #undef FLD
8260 }
8261
8262 /* bn: bn$pack $ICCi_2,$hint,$label16 */
8263
8264 static SEM_PC
8265 SEM_FN_NAME (frvbf,bn) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8266 {
8267 #define FLD(f) abuf->fields.sfmt_beq.f
8268   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8269   int UNUSED written = 0;
8270   IADDR UNUSED pc = abuf->addr;
8271   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8272
8273 {
8274 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8275 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3))) {
8276   {
8277     USI opval = FLD (i_label16);
8278     sim_queue_pc_write (current_cpu, opval);
8279     written |= (1 << 3);
8280     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8281   }
8282 }
8283 }
8284
8285   abuf->written = written;
8286   return vpc;
8287 #undef FLD
8288 }
8289
8290 /* bp: bp$pack $ICCi_2,$hint,$label16 */
8291
8292 static SEM_PC
8293 SEM_FN_NAME (frvbf,bp) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8294 {
8295 #define FLD(f) abuf->fields.sfmt_beq.f
8296   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8297   int UNUSED written = 0;
8298   IADDR UNUSED pc = abuf->addr;
8299   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8300
8301 {
8302 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8303 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3)))) {
8304   {
8305     USI opval = FLD (i_label16);
8306     sim_queue_pc_write (current_cpu, opval);
8307     written |= (1 << 3);
8308     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8309   }
8310 }
8311 }
8312
8313   abuf->written = written;
8314   return vpc;
8315 #undef FLD
8316 }
8317
8318 /* bv: bv$pack $ICCi_2,$hint,$label16 */
8319
8320 static SEM_PC
8321 SEM_FN_NAME (frvbf,bv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8322 {
8323 #define FLD(f) abuf->fields.sfmt_beq.f
8324   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8325   int UNUSED written = 0;
8326   IADDR UNUSED pc = abuf->addr;
8327   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8328
8329 {
8330 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8331 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1))) {
8332   {
8333     USI opval = FLD (i_label16);
8334     sim_queue_pc_write (current_cpu, opval);
8335     written |= (1 << 3);
8336     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8337   }
8338 }
8339 }
8340
8341   abuf->written = written;
8342   return vpc;
8343 #undef FLD
8344 }
8345
8346 /* bnv: bnv$pack $ICCi_2,$hint,$label16 */
8347
8348 static SEM_PC
8349 SEM_FN_NAME (frvbf,bnv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8350 {
8351 #define FLD(f) abuf->fields.sfmt_beq.f
8352   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8353   int UNUSED written = 0;
8354   IADDR UNUSED pc = abuf->addr;
8355   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8356
8357 {
8358 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8359 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1)))) {
8360   {
8361     USI opval = FLD (i_label16);
8362     sim_queue_pc_write (current_cpu, opval);
8363     written |= (1 << 3);
8364     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8365   }
8366 }
8367 }
8368
8369   abuf->written = written;
8370   return vpc;
8371 #undef FLD
8372 }
8373
8374 /* fbra: fbra$pack $hint_taken$label16 */
8375
8376 static SEM_PC
8377 SEM_FN_NAME (frvbf,fbra) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8378 {
8379 #define FLD(f) abuf->fields.sfmt_fbne.f
8380   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8381   int UNUSED written = 0;
8382   IADDR UNUSED pc = abuf->addr;
8383   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8384
8385 {
8386 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8387   {
8388     USI opval = FLD (i_label16);
8389     sim_queue_pc_write (current_cpu, opval);
8390     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8391   }
8392 }
8393
8394   return vpc;
8395 #undef FLD
8396 }
8397
8398 /* fbno: fbno$pack$hint_not_taken */
8399
8400 static SEM_PC
8401 SEM_FN_NAME (frvbf,fbno) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8402 {
8403 #define FLD(f) abuf->fields.sfmt_fbne.f
8404   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8405   int UNUSED written = 0;
8406   IADDR UNUSED pc = abuf->addr;
8407   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8408
8409 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8410
8411   return vpc;
8412 #undef FLD
8413 }
8414
8415 /* fbne: fbne$pack $FCCi_2,$hint,$label16 */
8416
8417 static SEM_PC
8418 SEM_FN_NAME (frvbf,fbne) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8419 {
8420 #define FLD(f) abuf->fields.sfmt_fbne.f
8421   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8422   int UNUSED written = 0;
8423   IADDR UNUSED pc = abuf->addr;
8424   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8425
8426 {
8427 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8428 if (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))))) {
8429   {
8430     USI opval = FLD (i_label16);
8431     sim_queue_pc_write (current_cpu, opval);
8432     written |= (1 << 3);
8433     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8434   }
8435 }
8436 }
8437
8438   abuf->written = written;
8439   return vpc;
8440 #undef FLD
8441 }
8442
8443 /* fbeq: fbeq$pack $FCCi_2,$hint,$label16 */
8444
8445 static SEM_PC
8446 SEM_FN_NAME (frvbf,fbeq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8447 {
8448 #define FLD(f) abuf->fields.sfmt_fbne.f
8449   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8450   int UNUSED written = 0;
8451   IADDR UNUSED pc = abuf->addr;
8452   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8453
8454 {
8455 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8456 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3))) {
8457   {
8458     USI opval = FLD (i_label16);
8459     sim_queue_pc_write (current_cpu, opval);
8460     written |= (1 << 3);
8461     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8462   }
8463 }
8464 }
8465
8466   abuf->written = written;
8467   return vpc;
8468 #undef FLD
8469 }
8470
8471 /* fblg: fblg$pack $FCCi_2,$hint,$label16 */
8472
8473 static SEM_PC
8474 SEM_FN_NAME (frvbf,fblg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8475 {
8476 #define FLD(f) abuf->fields.sfmt_fbne.f
8477   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8478   int UNUSED written = 0;
8479   IADDR UNUSED pc = abuf->addr;
8480   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8481
8482 {
8483 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8484 if (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)))) {
8485   {
8486     USI opval = FLD (i_label16);
8487     sim_queue_pc_write (current_cpu, opval);
8488     written |= (1 << 3);
8489     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8490   }
8491 }
8492 }
8493
8494   abuf->written = written;
8495   return vpc;
8496 #undef FLD
8497 }
8498
8499 /* fbue: fbue$pack $FCCi_2,$hint,$label16 */
8500
8501 static SEM_PC
8502 SEM_FN_NAME (frvbf,fbue) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8503 {
8504 #define FLD(f) abuf->fields.sfmt_fbne.f
8505   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8506   int UNUSED written = 0;
8507   IADDR UNUSED pc = abuf->addr;
8508   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8509
8510 {
8511 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8512 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
8513   {
8514     USI opval = FLD (i_label16);
8515     sim_queue_pc_write (current_cpu, opval);
8516     written |= (1 << 3);
8517     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8518   }
8519 }
8520 }
8521
8522   abuf->written = written;
8523   return vpc;
8524 #undef FLD
8525 }
8526
8527 /* fbul: fbul$pack $FCCi_2,$hint,$label16 */
8528
8529 static SEM_PC
8530 SEM_FN_NAME (frvbf,fbul) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8531 {
8532 #define FLD(f) abuf->fields.sfmt_fbne.f
8533   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8534   int UNUSED written = 0;
8535   IADDR UNUSED pc = abuf->addr;
8536   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8537
8538 {
8539 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8540 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
8541   {
8542     USI opval = FLD (i_label16);
8543     sim_queue_pc_write (current_cpu, opval);
8544     written |= (1 << 3);
8545     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8546   }
8547 }
8548 }
8549
8550   abuf->written = written;
8551   return vpc;
8552 #undef FLD
8553 }
8554
8555 /* fbge: fbge$pack $FCCi_2,$hint,$label16 */
8556
8557 static SEM_PC
8558 SEM_FN_NAME (frvbf,fbge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8559 {
8560 #define FLD(f) abuf->fields.sfmt_fbne.f
8561   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8562   int UNUSED written = 0;
8563   IADDR UNUSED pc = abuf->addr;
8564   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8565
8566 {
8567 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8568 if (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)))) {
8569   {
8570     USI opval = FLD (i_label16);
8571     sim_queue_pc_write (current_cpu, opval);
8572     written |= (1 << 3);
8573     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8574   }
8575 }
8576 }
8577
8578   abuf->written = written;
8579   return vpc;
8580 #undef FLD
8581 }
8582
8583 /* fblt: fblt$pack $FCCi_2,$hint,$label16 */
8584
8585 static SEM_PC
8586 SEM_FN_NAME (frvbf,fblt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8587 {
8588 #define FLD(f) abuf->fields.sfmt_fbne.f
8589   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8590   int UNUSED written = 0;
8591   IADDR UNUSED pc = abuf->addr;
8592   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8593
8594 {
8595 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8596 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2))) {
8597   {
8598     USI opval = FLD (i_label16);
8599     sim_queue_pc_write (current_cpu, opval);
8600     written |= (1 << 3);
8601     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8602   }
8603 }
8604 }
8605
8606   abuf->written = written;
8607   return vpc;
8608 #undef FLD
8609 }
8610
8611 /* fbuge: fbuge$pack $FCCi_2,$hint,$label16 */
8612
8613 static SEM_PC
8614 SEM_FN_NAME (frvbf,fbuge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8615 {
8616 #define FLD(f) abuf->fields.sfmt_fbne.f
8617   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8618   int UNUSED written = 0;
8619   IADDR UNUSED pc = abuf->addr;
8620   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8621
8622 {
8623 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8624 if (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))))) {
8625   {
8626     USI opval = FLD (i_label16);
8627     sim_queue_pc_write (current_cpu, opval);
8628     written |= (1 << 3);
8629     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8630   }
8631 }
8632 }
8633
8634   abuf->written = written;
8635   return vpc;
8636 #undef FLD
8637 }
8638
8639 /* fbug: fbug$pack $FCCi_2,$hint,$label16 */
8640
8641 static SEM_PC
8642 SEM_FN_NAME (frvbf,fbug) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8643 {
8644 #define FLD(f) abuf->fields.sfmt_fbne.f
8645   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8646   int UNUSED written = 0;
8647   IADDR UNUSED pc = abuf->addr;
8648   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8649
8650 {
8651 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8652 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
8653   {
8654     USI opval = FLD (i_label16);
8655     sim_queue_pc_write (current_cpu, opval);
8656     written |= (1 << 3);
8657     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8658   }
8659 }
8660 }
8661
8662   abuf->written = written;
8663   return vpc;
8664 #undef FLD
8665 }
8666
8667 /* fble: fble$pack $FCCi_2,$hint,$label16 */
8668
8669 static SEM_PC
8670 SEM_FN_NAME (frvbf,fble) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8671 {
8672 #define FLD(f) abuf->fields.sfmt_fbne.f
8673   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8674   int UNUSED written = 0;
8675   IADDR UNUSED pc = abuf->addr;
8676   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8677
8678 {
8679 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8680 if (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)))) {
8681   {
8682     USI opval = FLD (i_label16);
8683     sim_queue_pc_write (current_cpu, opval);
8684     written |= (1 << 3);
8685     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8686   }
8687 }
8688 }
8689
8690   abuf->written = written;
8691   return vpc;
8692 #undef FLD
8693 }
8694
8695 /* fbgt: fbgt$pack $FCCi_2,$hint,$label16 */
8696
8697 static SEM_PC
8698 SEM_FN_NAME (frvbf,fbgt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8699 {
8700 #define FLD(f) abuf->fields.sfmt_fbne.f
8701   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8702   int UNUSED written = 0;
8703   IADDR UNUSED pc = abuf->addr;
8704   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8705
8706 {
8707 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8708 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1))) {
8709   {
8710     USI opval = FLD (i_label16);
8711     sim_queue_pc_write (current_cpu, opval);
8712     written |= (1 << 3);
8713     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8714   }
8715 }
8716 }
8717
8718   abuf->written = written;
8719   return vpc;
8720 #undef FLD
8721 }
8722
8723 /* fbule: fbule$pack $FCCi_2,$hint,$label16 */
8724
8725 static SEM_PC
8726 SEM_FN_NAME (frvbf,fbule) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8727 {
8728 #define FLD(f) abuf->fields.sfmt_fbne.f
8729   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8730   int UNUSED written = 0;
8731   IADDR UNUSED pc = abuf->addr;
8732   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8733
8734 {
8735 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8736 if (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))))) {
8737   {
8738     USI opval = FLD (i_label16);
8739     sim_queue_pc_write (current_cpu, opval);
8740     written |= (1 << 3);
8741     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8742   }
8743 }
8744 }
8745
8746   abuf->written = written;
8747   return vpc;
8748 #undef FLD
8749 }
8750
8751 /* fbu: fbu$pack $FCCi_2,$hint,$label16 */
8752
8753 static SEM_PC
8754 SEM_FN_NAME (frvbf,fbu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8755 {
8756 #define FLD(f) abuf->fields.sfmt_fbne.f
8757   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8758   int UNUSED written = 0;
8759   IADDR UNUSED pc = abuf->addr;
8760   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8761
8762 {
8763 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8764 if (TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1))) {
8765   {
8766     USI opval = FLD (i_label16);
8767     sim_queue_pc_write (current_cpu, opval);
8768     written |= (1 << 3);
8769     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8770   }
8771 }
8772 }
8773
8774   abuf->written = written;
8775   return vpc;
8776 #undef FLD
8777 }
8778
8779 /* fbo: fbo$pack $FCCi_2,$hint,$label16 */
8780
8781 static SEM_PC
8782 SEM_FN_NAME (frvbf,fbo) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8783 {
8784 #define FLD(f) abuf->fields.sfmt_fbne.f
8785   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8786   int UNUSED written = 0;
8787   IADDR UNUSED pc = abuf->addr;
8788   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8789
8790 {
8791 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8792 if (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))))) {
8793   {
8794     USI opval = FLD (i_label16);
8795     sim_queue_pc_write (current_cpu, opval);
8796     written |= (1 << 3);
8797     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8798   }
8799 }
8800 }
8801
8802   abuf->written = written;
8803   return vpc;
8804 #undef FLD
8805 }
8806
8807 /* bctrlr: bctrlr$pack $ccond,$hint */
8808
8809 static SEM_PC
8810 SEM_FN_NAME (frvbf,bctrlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8811 {
8812 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
8813   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8814   int UNUSED written = 0;
8815   IADDR UNUSED pc = abuf->addr;
8816   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8817
8818 {
8819 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
8820 {
8821   SI tmp_tmp;
8822   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
8823   {
8824     USI opval = tmp_tmp;
8825     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
8826     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
8827   }
8828 if (EQSI (FLD (f_ccond), 0)) {
8829 if (NESI (tmp_tmp, 0)) {
8830   {
8831     USI opval = GET_H_SPR (((UINT) 272));
8832     sim_queue_pc_write (current_cpu, opval);
8833     written |= (1 << 5);
8834     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8835   }
8836 }
8837 } else {
8838 if (EQSI (tmp_tmp, 0)) {
8839   {
8840     USI opval = GET_H_SPR (((UINT) 272));
8841     sim_queue_pc_write (current_cpu, opval);
8842     written |= (1 << 5);
8843     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8844   }
8845 }
8846 }
8847 }
8848 }
8849
8850   abuf->written = written;
8851   return vpc;
8852 #undef FLD
8853 }
8854
8855 /* bralr: bralr$pack$hint_taken */
8856
8857 static SEM_PC
8858 SEM_FN_NAME (frvbf,bralr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8859 {
8860 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
8861   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8862   int UNUSED written = 0;
8863   IADDR UNUSED pc = abuf->addr;
8864   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8865
8866 {
8867 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
8868   {
8869     USI opval = GET_H_SPR (((UINT) 272));
8870     sim_queue_pc_write (current_cpu, opval);
8871     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8872   }
8873 }
8874
8875   return vpc;
8876 #undef FLD
8877 }
8878
8879 /* bnolr: bnolr$pack$hint_not_taken */
8880
8881 static SEM_PC
8882 SEM_FN_NAME (frvbf,bnolr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8883 {
8884 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
8885   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8886   int UNUSED written = 0;
8887   IADDR UNUSED pc = abuf->addr;
8888   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8889
8890 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
8891
8892   return vpc;
8893 #undef FLD
8894 }
8895
8896 /* beqlr: beqlr$pack $ICCi_2,$hint */
8897
8898 static SEM_PC
8899 SEM_FN_NAME (frvbf,beqlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8900 {
8901 #define FLD(f) abuf->fields.sfmt_bceqlr.f
8902   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8903   int UNUSED written = 0;
8904   IADDR UNUSED pc = abuf->addr;
8905   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8906
8907 {
8908 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
8909 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2))) {
8910   {
8911     USI opval = GET_H_SPR (((UINT) 272));
8912     sim_queue_pc_write (current_cpu, opval);
8913     written |= (1 << 3);
8914     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8915   }
8916 }
8917 }
8918
8919   abuf->written = written;
8920   return vpc;
8921 #undef FLD
8922 }
8923
8924 /* bnelr: bnelr$pack $ICCi_2,$hint */
8925
8926 static SEM_PC
8927 SEM_FN_NAME (frvbf,bnelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8928 {
8929 #define FLD(f) abuf->fields.sfmt_bceqlr.f
8930   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8931   int UNUSED written = 0;
8932   IADDR UNUSED pc = abuf->addr;
8933   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8934
8935 {
8936 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
8937 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)))) {
8938   {
8939     USI opval = GET_H_SPR (((UINT) 272));
8940     sim_queue_pc_write (current_cpu, opval);
8941     written |= (1 << 3);
8942     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8943   }
8944 }
8945 }
8946
8947   abuf->written = written;
8948   return vpc;
8949 #undef FLD
8950 }
8951
8952 /* blelr: blelr$pack $ICCi_2,$hint */
8953
8954 static SEM_PC
8955 SEM_FN_NAME (frvbf,blelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8956 {
8957 #define FLD(f) abuf->fields.sfmt_bceqlr.f
8958   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8959   int UNUSED written = 0;
8960   IADDR UNUSED pc = abuf->addr;
8961   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8962
8963 {
8964 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
8965 if (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))))) {
8966   {
8967     USI opval = GET_H_SPR (((UINT) 272));
8968     sim_queue_pc_write (current_cpu, opval);
8969     written |= (1 << 3);
8970     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8971   }
8972 }
8973 }
8974
8975   abuf->written = written;
8976   return vpc;
8977 #undef FLD
8978 }
8979
8980 /* bgtlr: bgtlr$pack $ICCi_2,$hint */
8981
8982 static SEM_PC
8983 SEM_FN_NAME (frvbf,bgtlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8984 {
8985 #define FLD(f) abuf->fields.sfmt_bceqlr.f
8986   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8987   int UNUSED written = 0;
8988   IADDR UNUSED pc = abuf->addr;
8989   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8990
8991 {
8992 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
8993 if (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)))))) {
8994   {
8995     USI opval = GET_H_SPR (((UINT) 272));
8996     sim_queue_pc_write (current_cpu, opval);
8997     written |= (1 << 3);
8998     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8999   }
9000 }
9001 }
9002
9003   abuf->written = written;
9004   return vpc;
9005 #undef FLD
9006 }
9007
9008 /* bltlr: bltlr$pack $ICCi_2,$hint */
9009
9010 static SEM_PC
9011 SEM_FN_NAME (frvbf,bltlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9012 {
9013 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9014   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9015   int UNUSED written = 0;
9016   IADDR UNUSED pc = abuf->addr;
9017   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9018
9019 {
9020 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9021 if (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)))) {
9022   {
9023     USI opval = GET_H_SPR (((UINT) 272));
9024     sim_queue_pc_write (current_cpu, opval);
9025     written |= (1 << 3);
9026     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9027   }
9028 }
9029 }
9030
9031   abuf->written = written;
9032   return vpc;
9033 #undef FLD
9034 }
9035
9036 /* bgelr: bgelr$pack $ICCi_2,$hint */
9037
9038 static SEM_PC
9039 SEM_FN_NAME (frvbf,bgelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9040 {
9041 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9042   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9043   int UNUSED written = 0;
9044   IADDR UNUSED pc = abuf->addr;
9045   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9046
9047 {
9048 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9049 if (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))))) {
9050   {
9051     USI opval = GET_H_SPR (((UINT) 272));
9052     sim_queue_pc_write (current_cpu, opval);
9053     written |= (1 << 3);
9054     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9055   }
9056 }
9057 }
9058
9059   abuf->written = written;
9060   return vpc;
9061 #undef FLD
9062 }
9063
9064 /* blslr: blslr$pack $ICCi_2,$hint */
9065
9066 static SEM_PC
9067 SEM_FN_NAME (frvbf,blslr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9068 {
9069 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9070   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9071   int UNUSED written = 0;
9072   IADDR UNUSED pc = abuf->addr;
9073   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9074
9075 {
9076 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9077 if (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)))) {
9078   {
9079     USI opval = GET_H_SPR (((UINT) 272));
9080     sim_queue_pc_write (current_cpu, opval);
9081     written |= (1 << 3);
9082     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9083   }
9084 }
9085 }
9086
9087   abuf->written = written;
9088   return vpc;
9089 #undef FLD
9090 }
9091
9092 /* bhilr: bhilr$pack $ICCi_2,$hint */
9093
9094 static SEM_PC
9095 SEM_FN_NAME (frvbf,bhilr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9096 {
9097 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9098   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9099   int UNUSED written = 0;
9100   IADDR UNUSED pc = abuf->addr;
9101   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9102
9103 {
9104 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9105 if (NOTBI (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2))))) {
9106   {
9107     USI opval = GET_H_SPR (((UINT) 272));
9108     sim_queue_pc_write (current_cpu, opval);
9109     written |= (1 << 3);
9110     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9111   }
9112 }
9113 }
9114
9115   abuf->written = written;
9116   return vpc;
9117 #undef FLD
9118 }
9119
9120 /* bclr: bclr$pack $ICCi_2,$hint */
9121
9122 static SEM_PC
9123 SEM_FN_NAME (frvbf,bclr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9124 {
9125 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9126   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9127   int UNUSED written = 0;
9128   IADDR UNUSED pc = abuf->addr;
9129   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9130
9131 {
9132 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9133 if (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1))) {
9134   {
9135     USI opval = GET_H_SPR (((UINT) 272));
9136     sim_queue_pc_write (current_cpu, opval);
9137     written |= (1 << 3);
9138     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9139   }
9140 }
9141 }
9142
9143   abuf->written = written;
9144   return vpc;
9145 #undef FLD
9146 }
9147
9148 /* bnclr: bnclr$pack $ICCi_2,$hint */
9149
9150 static SEM_PC
9151 SEM_FN_NAME (frvbf,bnclr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9152 {
9153 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9154   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9155   int UNUSED written = 0;
9156   IADDR UNUSED pc = abuf->addr;
9157   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9158
9159 {
9160 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9161 if (NOTBI (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)))) {
9162   {
9163     USI opval = GET_H_SPR (((UINT) 272));
9164     sim_queue_pc_write (current_cpu, opval);
9165     written |= (1 << 3);
9166     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9167   }
9168 }
9169 }
9170
9171   abuf->written = written;
9172   return vpc;
9173 #undef FLD
9174 }
9175
9176 /* bnlr: bnlr$pack $ICCi_2,$hint */
9177
9178 static SEM_PC
9179 SEM_FN_NAME (frvbf,bnlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9180 {
9181 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9182   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9183   int UNUSED written = 0;
9184   IADDR UNUSED pc = abuf->addr;
9185   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9186
9187 {
9188 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9189 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3))) {
9190   {
9191     USI opval = GET_H_SPR (((UINT) 272));
9192     sim_queue_pc_write (current_cpu, opval);
9193     written |= (1 << 3);
9194     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9195   }
9196 }
9197 }
9198
9199   abuf->written = written;
9200   return vpc;
9201 #undef FLD
9202 }
9203
9204 /* bplr: bplr$pack $ICCi_2,$hint */
9205
9206 static SEM_PC
9207 SEM_FN_NAME (frvbf,bplr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9208 {
9209 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9210   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9211   int UNUSED written = 0;
9212   IADDR UNUSED pc = abuf->addr;
9213   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9214
9215 {
9216 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9217 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3)))) {
9218   {
9219     USI opval = GET_H_SPR (((UINT) 272));
9220     sim_queue_pc_write (current_cpu, opval);
9221     written |= (1 << 3);
9222     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9223   }
9224 }
9225 }
9226
9227   abuf->written = written;
9228   return vpc;
9229 #undef FLD
9230 }
9231
9232 /* bvlr: bvlr$pack $ICCi_2,$hint */
9233
9234 static SEM_PC
9235 SEM_FN_NAME (frvbf,bvlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9236 {
9237 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9238   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9239   int UNUSED written = 0;
9240   IADDR UNUSED pc = abuf->addr;
9241   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9242
9243 {
9244 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9245 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1))) {
9246   {
9247     USI opval = GET_H_SPR (((UINT) 272));
9248     sim_queue_pc_write (current_cpu, opval);
9249     written |= (1 << 3);
9250     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9251   }
9252 }
9253 }
9254
9255   abuf->written = written;
9256   return vpc;
9257 #undef FLD
9258 }
9259
9260 /* bnvlr: bnvlr$pack $ICCi_2,$hint */
9261
9262 static SEM_PC
9263 SEM_FN_NAME (frvbf,bnvlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9264 {
9265 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9266   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9267   int UNUSED written = 0;
9268   IADDR UNUSED pc = abuf->addr;
9269   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9270
9271 {
9272 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9273 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1)))) {
9274   {
9275     USI opval = GET_H_SPR (((UINT) 272));
9276     sim_queue_pc_write (current_cpu, opval);
9277     written |= (1 << 3);
9278     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9279   }
9280 }
9281 }
9282
9283   abuf->written = written;
9284   return vpc;
9285 #undef FLD
9286 }
9287
9288 /* fbralr: fbralr$pack$hint_taken */
9289
9290 static SEM_PC
9291 SEM_FN_NAME (frvbf,fbralr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9292 {
9293 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9294   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9295   int UNUSED written = 0;
9296   IADDR UNUSED pc = abuf->addr;
9297   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9298
9299 {
9300 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9301   {
9302     USI opval = GET_H_SPR (((UINT) 272));
9303     sim_queue_pc_write (current_cpu, opval);
9304     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9305   }
9306 }
9307
9308   return vpc;
9309 #undef FLD
9310 }
9311
9312 /* fbnolr: fbnolr$pack$hint_not_taken */
9313
9314 static SEM_PC
9315 SEM_FN_NAME (frvbf,fbnolr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9316 {
9317 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9318   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9319   int UNUSED written = 0;
9320   IADDR UNUSED pc = abuf->addr;
9321   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9322
9323 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9324
9325   return vpc;
9326 #undef FLD
9327 }
9328
9329 /* fbeqlr: fbeqlr$pack $FCCi_2,$hint */
9330
9331 static SEM_PC
9332 SEM_FN_NAME (frvbf,fbeqlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9333 {
9334 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9335   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9336   int UNUSED written = 0;
9337   IADDR UNUSED pc = abuf->addr;
9338   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9339
9340 {
9341 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9342 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3))) {
9343   {
9344     USI opval = GET_H_SPR (((UINT) 272));
9345     sim_queue_pc_write (current_cpu, opval);
9346     written |= (1 << 3);
9347     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9348   }
9349 }
9350 }
9351
9352   abuf->written = written;
9353   return vpc;
9354 #undef FLD
9355 }
9356
9357 /* fbnelr: fbnelr$pack $FCCi_2,$hint */
9358
9359 static SEM_PC
9360 SEM_FN_NAME (frvbf,fbnelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9361 {
9362 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9363   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9364   int UNUSED written = 0;
9365   IADDR UNUSED pc = abuf->addr;
9366   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9367
9368 {
9369 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9370 if (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))))) {
9371   {
9372     USI opval = GET_H_SPR (((UINT) 272));
9373     sim_queue_pc_write (current_cpu, opval);
9374     written |= (1 << 3);
9375     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9376   }
9377 }
9378 }
9379
9380   abuf->written = written;
9381   return vpc;
9382 #undef FLD
9383 }
9384
9385 /* fblglr: fblglr$pack $FCCi_2,$hint */
9386
9387 static SEM_PC
9388 SEM_FN_NAME (frvbf,fblglr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9389 {
9390 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9391   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9392   int UNUSED written = 0;
9393   IADDR UNUSED pc = abuf->addr;
9394   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9395
9396 {
9397 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9398 if (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)))) {
9399   {
9400     USI opval = GET_H_SPR (((UINT) 272));
9401     sim_queue_pc_write (current_cpu, opval);
9402     written |= (1 << 3);
9403     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9404   }
9405 }
9406 }
9407
9408   abuf->written = written;
9409   return vpc;
9410 #undef FLD
9411 }
9412
9413 /* fbuelr: fbuelr$pack $FCCi_2,$hint */
9414
9415 static SEM_PC
9416 SEM_FN_NAME (frvbf,fbuelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9417 {
9418 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9419   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9420   int UNUSED written = 0;
9421   IADDR UNUSED pc = abuf->addr;
9422   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9423
9424 {
9425 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9426 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
9427   {
9428     USI opval = GET_H_SPR (((UINT) 272));
9429     sim_queue_pc_write (current_cpu, opval);
9430     written |= (1 << 3);
9431     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9432   }
9433 }
9434 }
9435
9436   abuf->written = written;
9437   return vpc;
9438 #undef FLD
9439 }
9440
9441 /* fbullr: fbullr$pack $FCCi_2,$hint */
9442
9443 static SEM_PC
9444 SEM_FN_NAME (frvbf,fbullr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9445 {
9446 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9447   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9448   int UNUSED written = 0;
9449   IADDR UNUSED pc = abuf->addr;
9450   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9451
9452 {
9453 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9454 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
9455   {
9456     USI opval = GET_H_SPR (((UINT) 272));
9457     sim_queue_pc_write (current_cpu, opval);
9458     written |= (1 << 3);
9459     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9460   }
9461 }
9462 }
9463
9464   abuf->written = written;
9465   return vpc;
9466 #undef FLD
9467 }
9468
9469 /* fbgelr: fbgelr$pack $FCCi_2,$hint */
9470
9471 static SEM_PC
9472 SEM_FN_NAME (frvbf,fbgelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9473 {
9474 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9475   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9476   int UNUSED written = 0;
9477   IADDR UNUSED pc = abuf->addr;
9478   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9479
9480 {
9481 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9482 if (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)))) {
9483   {
9484     USI opval = GET_H_SPR (((UINT) 272));
9485     sim_queue_pc_write (current_cpu, opval);
9486     written |= (1 << 3);
9487     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9488   }
9489 }
9490 }
9491
9492   abuf->written = written;
9493   return vpc;
9494 #undef FLD
9495 }
9496
9497 /* fbltlr: fbltlr$pack $FCCi_2,$hint */
9498
9499 static SEM_PC
9500 SEM_FN_NAME (frvbf,fbltlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9501 {
9502 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9503   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9504   int UNUSED written = 0;
9505   IADDR UNUSED pc = abuf->addr;
9506   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9507
9508 {
9509 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9510 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2))) {
9511   {
9512     USI opval = GET_H_SPR (((UINT) 272));
9513     sim_queue_pc_write (current_cpu, opval);
9514     written |= (1 << 3);
9515     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9516   }
9517 }
9518 }
9519
9520   abuf->written = written;
9521   return vpc;
9522 #undef FLD
9523 }
9524
9525 /* fbugelr: fbugelr$pack $FCCi_2,$hint */
9526
9527 static SEM_PC
9528 SEM_FN_NAME (frvbf,fbugelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9529 {
9530 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9531   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9532   int UNUSED written = 0;
9533   IADDR UNUSED pc = abuf->addr;
9534   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9535
9536 {
9537 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9538 if (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))))) {
9539   {
9540     USI opval = GET_H_SPR (((UINT) 272));
9541     sim_queue_pc_write (current_cpu, opval);
9542     written |= (1 << 3);
9543     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9544   }
9545 }
9546 }
9547
9548   abuf->written = written;
9549   return vpc;
9550 #undef FLD
9551 }
9552
9553 /* fbuglr: fbuglr$pack $FCCi_2,$hint */
9554
9555 static SEM_PC
9556 SEM_FN_NAME (frvbf,fbuglr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9557 {
9558 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9559   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9560   int UNUSED written = 0;
9561   IADDR UNUSED pc = abuf->addr;
9562   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9563
9564 {
9565 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9566 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
9567   {
9568     USI opval = GET_H_SPR (((UINT) 272));
9569     sim_queue_pc_write (current_cpu, opval);
9570     written |= (1 << 3);
9571     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9572   }
9573 }
9574 }
9575
9576   abuf->written = written;
9577   return vpc;
9578 #undef FLD
9579 }
9580
9581 /* fblelr: fblelr$pack $FCCi_2,$hint */
9582
9583 static SEM_PC
9584 SEM_FN_NAME (frvbf,fblelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9585 {
9586 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9587   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9588   int UNUSED written = 0;
9589   IADDR UNUSED pc = abuf->addr;
9590   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9591
9592 {
9593 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9594 if (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)))) {
9595   {
9596     USI opval = GET_H_SPR (((UINT) 272));
9597     sim_queue_pc_write (current_cpu, opval);
9598     written |= (1 << 3);
9599     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9600   }
9601 }
9602 }
9603
9604   abuf->written = written;
9605   return vpc;
9606 #undef FLD
9607 }
9608
9609 /* fbgtlr: fbgtlr$pack $FCCi_2,$hint */
9610
9611 static SEM_PC
9612 SEM_FN_NAME (frvbf,fbgtlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9613 {
9614 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9615   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9616   int UNUSED written = 0;
9617   IADDR UNUSED pc = abuf->addr;
9618   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9619
9620 {
9621 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9622 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1))) {
9623   {
9624     USI opval = GET_H_SPR (((UINT) 272));
9625     sim_queue_pc_write (current_cpu, opval);
9626     written |= (1 << 3);
9627     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9628   }
9629 }
9630 }
9631
9632   abuf->written = written;
9633   return vpc;
9634 #undef FLD
9635 }
9636
9637 /* fbulelr: fbulelr$pack $FCCi_2,$hint */
9638
9639 static SEM_PC
9640 SEM_FN_NAME (frvbf,fbulelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9641 {
9642 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9643   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9644   int UNUSED written = 0;
9645   IADDR UNUSED pc = abuf->addr;
9646   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9647
9648 {
9649 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9650 if (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))))) {
9651   {
9652     USI opval = GET_H_SPR (((UINT) 272));
9653     sim_queue_pc_write (current_cpu, opval);
9654     written |= (1 << 3);
9655     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9656   }
9657 }
9658 }
9659
9660   abuf->written = written;
9661   return vpc;
9662 #undef FLD
9663 }
9664
9665 /* fbulr: fbulr$pack $FCCi_2,$hint */
9666
9667 static SEM_PC
9668 SEM_FN_NAME (frvbf,fbulr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9669 {
9670 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9671   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9672   int UNUSED written = 0;
9673   IADDR UNUSED pc = abuf->addr;
9674   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9675
9676 {
9677 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9678 if (TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1))) {
9679   {
9680     USI opval = GET_H_SPR (((UINT) 272));
9681     sim_queue_pc_write (current_cpu, opval);
9682     written |= (1 << 3);
9683     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9684   }
9685 }
9686 }
9687
9688   abuf->written = written;
9689   return vpc;
9690 #undef FLD
9691 }
9692
9693 /* fbolr: fbolr$pack $FCCi_2,$hint */
9694
9695 static SEM_PC
9696 SEM_FN_NAME (frvbf,fbolr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9697 {
9698 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9699   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9700   int UNUSED written = 0;
9701   IADDR UNUSED pc = abuf->addr;
9702   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9703
9704 {
9705 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9706 if (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))))) {
9707   {
9708     USI opval = GET_H_SPR (((UINT) 272));
9709     sim_queue_pc_write (current_cpu, opval);
9710     written |= (1 << 3);
9711     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9712   }
9713 }
9714 }
9715
9716   abuf->written = written;
9717   return vpc;
9718 #undef FLD
9719 }
9720
9721 /* bcralr: bcralr$pack $ccond$hint_taken */
9722
9723 static SEM_PC
9724 SEM_FN_NAME (frvbf,bcralr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9725 {
9726 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9727   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9728   int UNUSED written = 0;
9729   IADDR UNUSED pc = abuf->addr;
9730   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9731
9732 {
9733 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9734 {
9735   SI tmp_tmp;
9736   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
9737   {
9738     USI opval = tmp_tmp;
9739     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
9740     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
9741   }
9742 if (EQSI (FLD (f_ccond), 0)) {
9743 if (NESI (tmp_tmp, 0)) {
9744   {
9745     USI opval = GET_H_SPR (((UINT) 272));
9746     sim_queue_pc_write (current_cpu, opval);
9747     written |= (1 << 5);
9748     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9749   }
9750 }
9751 } else {
9752 if (EQSI (tmp_tmp, 0)) {
9753   {
9754     USI opval = GET_H_SPR (((UINT) 272));
9755     sim_queue_pc_write (current_cpu, opval);
9756     written |= (1 << 5);
9757     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9758   }
9759 }
9760 }
9761 }
9762 }
9763
9764   abuf->written = written;
9765   return vpc;
9766 #undef FLD
9767 }
9768
9769 /* bcnolr: bcnolr$pack$hint_not_taken */
9770
9771 static SEM_PC
9772 SEM_FN_NAME (frvbf,bcnolr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9773 {
9774 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9775   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9776   int UNUSED written = 0;
9777   IADDR UNUSED pc = abuf->addr;
9778   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9779
9780 {
9781 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9782 {
9783   SI tmp_tmp;
9784   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
9785   {
9786     USI opval = tmp_tmp;
9787     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
9788     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
9789   }
9790 ((void) 0); /*nop*/
9791 }
9792 }
9793
9794   return vpc;
9795 #undef FLD
9796 }
9797
9798 /* bceqlr: bceqlr$pack $ICCi_2,$ccond,$hint */
9799
9800 static SEM_PC
9801 SEM_FN_NAME (frvbf,bceqlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9802 {
9803 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9804   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9805   int UNUSED written = 0;
9806   IADDR UNUSED pc = abuf->addr;
9807   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9808
9809 {
9810 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9811 {
9812   SI tmp_tmp;
9813   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
9814   {
9815     USI opval = tmp_tmp;
9816     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
9817     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
9818   }
9819 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2))) {
9820 if (EQSI (FLD (f_ccond), 0)) {
9821 if (NESI (tmp_tmp, 0)) {
9822   {
9823     USI opval = GET_H_SPR (((UINT) 272));
9824     sim_queue_pc_write (current_cpu, opval);
9825     written |= (1 << 6);
9826     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9827   }
9828 }
9829 } else {
9830 if (EQSI (tmp_tmp, 0)) {
9831   {
9832     USI opval = GET_H_SPR (((UINT) 272));
9833     sim_queue_pc_write (current_cpu, opval);
9834     written |= (1 << 6);
9835     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9836   }
9837 }
9838 }
9839 }
9840 }
9841 }
9842
9843   abuf->written = written;
9844   return vpc;
9845 #undef FLD
9846 }
9847
9848 /* bcnelr: bcnelr$pack $ICCi_2,$ccond,$hint */
9849
9850 static SEM_PC
9851 SEM_FN_NAME (frvbf,bcnelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9852 {
9853 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9854   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9855   int UNUSED written = 0;
9856   IADDR UNUSED pc = abuf->addr;
9857   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9858
9859 {
9860 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9861 {
9862   SI tmp_tmp;
9863   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
9864   {
9865     USI opval = tmp_tmp;
9866     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
9867     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
9868   }
9869 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)))) {
9870 if (EQSI (FLD (f_ccond), 0)) {
9871 if (NESI (tmp_tmp, 0)) {
9872   {
9873     USI opval = GET_H_SPR (((UINT) 272));
9874     sim_queue_pc_write (current_cpu, opval);
9875     written |= (1 << 6);
9876     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9877   }
9878 }
9879 } else {
9880 if (EQSI (tmp_tmp, 0)) {
9881   {
9882     USI opval = GET_H_SPR (((UINT) 272));
9883     sim_queue_pc_write (current_cpu, opval);
9884     written |= (1 << 6);
9885     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9886   }
9887 }
9888 }
9889 }
9890 }
9891 }
9892
9893   abuf->written = written;
9894   return vpc;
9895 #undef FLD
9896 }
9897
9898 /* bclelr: bclelr$pack $ICCi_2,$ccond,$hint */
9899
9900 static SEM_PC
9901 SEM_FN_NAME (frvbf,bclelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9902 {
9903 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9904   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9905   int UNUSED written = 0;
9906   IADDR UNUSED pc = abuf->addr;
9907   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9908
9909 {
9910 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9911 {
9912   SI tmp_tmp;
9913   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
9914   {
9915     USI opval = tmp_tmp;
9916     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
9917     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
9918   }
9919 if (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))))) {
9920 if (EQSI (FLD (f_ccond), 0)) {
9921 if (NESI (tmp_tmp, 0)) {
9922   {
9923     USI opval = GET_H_SPR (((UINT) 272));
9924     sim_queue_pc_write (current_cpu, opval);
9925     written |= (1 << 6);
9926     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9927   }
9928 }
9929 } else {
9930 if (EQSI (tmp_tmp, 0)) {
9931   {
9932     USI opval = GET_H_SPR (((UINT) 272));
9933     sim_queue_pc_write (current_cpu, opval);
9934     written |= (1 << 6);
9935     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9936   }
9937 }
9938 }
9939 }
9940 }
9941 }
9942
9943   abuf->written = written;
9944   return vpc;
9945 #undef FLD
9946 }
9947
9948 /* bcgtlr: bcgtlr$pack $ICCi_2,$ccond,$hint */
9949
9950 static SEM_PC
9951 SEM_FN_NAME (frvbf,bcgtlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9952 {
9953 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9954   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9955   int UNUSED written = 0;
9956   IADDR UNUSED pc = abuf->addr;
9957   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9958
9959 {
9960 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9961 {
9962   SI tmp_tmp;
9963   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
9964   {
9965     USI opval = tmp_tmp;
9966     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
9967     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
9968   }
9969 if (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)))))) {
9970 if (EQSI (FLD (f_ccond), 0)) {
9971 if (NESI (tmp_tmp, 0)) {
9972   {
9973     USI opval = GET_H_SPR (((UINT) 272));
9974     sim_queue_pc_write (current_cpu, opval);
9975     written |= (1 << 6);
9976     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9977   }
9978 }
9979 } else {
9980 if (EQSI (tmp_tmp, 0)) {
9981   {
9982     USI opval = GET_H_SPR (((UINT) 272));
9983     sim_queue_pc_write (current_cpu, opval);
9984     written |= (1 << 6);
9985     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9986   }
9987 }
9988 }
9989 }
9990 }
9991 }
9992
9993   abuf->written = written;
9994   return vpc;
9995 #undef FLD
9996 }
9997
9998 /* bcltlr: bcltlr$pack $ICCi_2,$ccond,$hint */
9999
10000 static SEM_PC
10001 SEM_FN_NAME (frvbf,bcltlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10002 {
10003 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10004   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10005   int UNUSED written = 0;
10006   IADDR UNUSED pc = abuf->addr;
10007   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10008
10009 {
10010 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10011 {
10012   SI tmp_tmp;
10013   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10014   {
10015     USI opval = tmp_tmp;
10016     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10017     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10018   }
10019 if (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)))) {
10020 if (EQSI (FLD (f_ccond), 0)) {
10021 if (NESI (tmp_tmp, 0)) {
10022   {
10023     USI opval = GET_H_SPR (((UINT) 272));
10024     sim_queue_pc_write (current_cpu, opval);
10025     written |= (1 << 6);
10026     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10027   }
10028 }
10029 } else {
10030 if (EQSI (tmp_tmp, 0)) {
10031   {
10032     USI opval = GET_H_SPR (((UINT) 272));
10033     sim_queue_pc_write (current_cpu, opval);
10034     written |= (1 << 6);
10035     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10036   }
10037 }
10038 }
10039 }
10040 }
10041 }
10042
10043   abuf->written = written;
10044   return vpc;
10045 #undef FLD
10046 }
10047
10048 /* bcgelr: bcgelr$pack $ICCi_2,$ccond,$hint */
10049
10050 static SEM_PC
10051 SEM_FN_NAME (frvbf,bcgelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10052 {
10053 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10054   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10055   int UNUSED written = 0;
10056   IADDR UNUSED pc = abuf->addr;
10057   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10058
10059 {
10060 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10061 {
10062   SI tmp_tmp;
10063   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10064   {
10065     USI opval = tmp_tmp;
10066     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10067     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10068   }
10069 if (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))))) {
10070 if (EQSI (FLD (f_ccond), 0)) {
10071 if (NESI (tmp_tmp, 0)) {
10072   {
10073     USI opval = GET_H_SPR (((UINT) 272));
10074     sim_queue_pc_write (current_cpu, opval);
10075     written |= (1 << 6);
10076     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10077   }
10078 }
10079 } else {
10080 if (EQSI (tmp_tmp, 0)) {
10081   {
10082     USI opval = GET_H_SPR (((UINT) 272));
10083     sim_queue_pc_write (current_cpu, opval);
10084     written |= (1 << 6);
10085     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10086   }
10087 }
10088 }
10089 }
10090 }
10091 }
10092
10093   abuf->written = written;
10094   return vpc;
10095 #undef FLD
10096 }
10097
10098 /* bclslr: bclslr$pack $ICCi_2,$ccond,$hint */
10099
10100 static SEM_PC
10101 SEM_FN_NAME (frvbf,bclslr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10102 {
10103 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10104   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10105   int UNUSED written = 0;
10106   IADDR UNUSED pc = abuf->addr;
10107   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10108
10109 {
10110 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10111 {
10112   SI tmp_tmp;
10113   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10114   {
10115     USI opval = tmp_tmp;
10116     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10117     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10118   }
10119 if (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)))) {
10120 if (EQSI (FLD (f_ccond), 0)) {
10121 if (NESI (tmp_tmp, 0)) {
10122   {
10123     USI opval = GET_H_SPR (((UINT) 272));
10124     sim_queue_pc_write (current_cpu, opval);
10125     written |= (1 << 6);
10126     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10127   }
10128 }
10129 } else {
10130 if (EQSI (tmp_tmp, 0)) {
10131   {
10132     USI opval = GET_H_SPR (((UINT) 272));
10133     sim_queue_pc_write (current_cpu, opval);
10134     written |= (1 << 6);
10135     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10136   }
10137 }
10138 }
10139 }
10140 }
10141 }
10142
10143   abuf->written = written;
10144   return vpc;
10145 #undef FLD
10146 }
10147
10148 /* bchilr: bchilr$pack $ICCi_2,$ccond,$hint */
10149
10150 static SEM_PC
10151 SEM_FN_NAME (frvbf,bchilr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10152 {
10153 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10154   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10155   int UNUSED written = 0;
10156   IADDR UNUSED pc = abuf->addr;
10157   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10158
10159 {
10160 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10161 {
10162   SI tmp_tmp;
10163   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10164   {
10165     USI opval = tmp_tmp;
10166     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10167     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10168   }
10169 if (NOTBI (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2))))) {
10170 if (EQSI (FLD (f_ccond), 0)) {
10171 if (NESI (tmp_tmp, 0)) {
10172   {
10173     USI opval = GET_H_SPR (((UINT) 272));
10174     sim_queue_pc_write (current_cpu, opval);
10175     written |= (1 << 6);
10176     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10177   }
10178 }
10179 } else {
10180 if (EQSI (tmp_tmp, 0)) {
10181   {
10182     USI opval = GET_H_SPR (((UINT) 272));
10183     sim_queue_pc_write (current_cpu, opval);
10184     written |= (1 << 6);
10185     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10186   }
10187 }
10188 }
10189 }
10190 }
10191 }
10192
10193   abuf->written = written;
10194   return vpc;
10195 #undef FLD
10196 }
10197
10198 /* bcclr: bcclr$pack $ICCi_2,$ccond,$hint */
10199
10200 static SEM_PC
10201 SEM_FN_NAME (frvbf,bcclr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10202 {
10203 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10204   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10205   int UNUSED written = 0;
10206   IADDR UNUSED pc = abuf->addr;
10207   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10208
10209 {
10210 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10211 {
10212   SI tmp_tmp;
10213   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10214   {
10215     USI opval = tmp_tmp;
10216     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10217     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10218   }
10219 if (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1))) {
10220 if (EQSI (FLD (f_ccond), 0)) {
10221 if (NESI (tmp_tmp, 0)) {
10222   {
10223     USI opval = GET_H_SPR (((UINT) 272));
10224     sim_queue_pc_write (current_cpu, opval);
10225     written |= (1 << 6);
10226     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10227   }
10228 }
10229 } else {
10230 if (EQSI (tmp_tmp, 0)) {
10231   {
10232     USI opval = GET_H_SPR (((UINT) 272));
10233     sim_queue_pc_write (current_cpu, opval);
10234     written |= (1 << 6);
10235     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10236   }
10237 }
10238 }
10239 }
10240 }
10241 }
10242
10243   abuf->written = written;
10244   return vpc;
10245 #undef FLD
10246 }
10247
10248 /* bcnclr: bcnclr$pack $ICCi_2,$ccond,$hint */
10249
10250 static SEM_PC
10251 SEM_FN_NAME (frvbf,bcnclr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10252 {
10253 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10254   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10255   int UNUSED written = 0;
10256   IADDR UNUSED pc = abuf->addr;
10257   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10258
10259 {
10260 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10261 {
10262   SI tmp_tmp;
10263   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10264   {
10265     USI opval = tmp_tmp;
10266     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10267     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10268   }
10269 if (NOTBI (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)))) {
10270 if (EQSI (FLD (f_ccond), 0)) {
10271 if (NESI (tmp_tmp, 0)) {
10272   {
10273     USI opval = GET_H_SPR (((UINT) 272));
10274     sim_queue_pc_write (current_cpu, opval);
10275     written |= (1 << 6);
10276     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10277   }
10278 }
10279 } else {
10280 if (EQSI (tmp_tmp, 0)) {
10281   {
10282     USI opval = GET_H_SPR (((UINT) 272));
10283     sim_queue_pc_write (current_cpu, opval);
10284     written |= (1 << 6);
10285     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10286   }
10287 }
10288 }
10289 }
10290 }
10291 }
10292
10293   abuf->written = written;
10294   return vpc;
10295 #undef FLD
10296 }
10297
10298 /* bcnlr: bcnlr$pack $ICCi_2,$ccond,$hint */
10299
10300 static SEM_PC
10301 SEM_FN_NAME (frvbf,bcnlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10302 {
10303 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10304   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10305   int UNUSED written = 0;
10306   IADDR UNUSED pc = abuf->addr;
10307   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10308
10309 {
10310 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10311 {
10312   SI tmp_tmp;
10313   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10314   {
10315     USI opval = tmp_tmp;
10316     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10317     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10318   }
10319 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3))) {
10320 if (EQSI (FLD (f_ccond), 0)) {
10321 if (NESI (tmp_tmp, 0)) {
10322   {
10323     USI opval = GET_H_SPR (((UINT) 272));
10324     sim_queue_pc_write (current_cpu, opval);
10325     written |= (1 << 6);
10326     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10327   }
10328 }
10329 } else {
10330 if (EQSI (tmp_tmp, 0)) {
10331   {
10332     USI opval = GET_H_SPR (((UINT) 272));
10333     sim_queue_pc_write (current_cpu, opval);
10334     written |= (1 << 6);
10335     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10336   }
10337 }
10338 }
10339 }
10340 }
10341 }
10342
10343   abuf->written = written;
10344   return vpc;
10345 #undef FLD
10346 }
10347
10348 /* bcplr: bcplr$pack $ICCi_2,$ccond,$hint */
10349
10350 static SEM_PC
10351 SEM_FN_NAME (frvbf,bcplr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10352 {
10353 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10354   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10355   int UNUSED written = 0;
10356   IADDR UNUSED pc = abuf->addr;
10357   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10358
10359 {
10360 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10361 {
10362   SI tmp_tmp;
10363   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10364   {
10365     USI opval = tmp_tmp;
10366     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10367     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10368   }
10369 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3)))) {
10370 if (EQSI (FLD (f_ccond), 0)) {
10371 if (NESI (tmp_tmp, 0)) {
10372   {
10373     USI opval = GET_H_SPR (((UINT) 272));
10374     sim_queue_pc_write (current_cpu, opval);
10375     written |= (1 << 6);
10376     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10377   }
10378 }
10379 } else {
10380 if (EQSI (tmp_tmp, 0)) {
10381   {
10382     USI opval = GET_H_SPR (((UINT) 272));
10383     sim_queue_pc_write (current_cpu, opval);
10384     written |= (1 << 6);
10385     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10386   }
10387 }
10388 }
10389 }
10390 }
10391 }
10392
10393   abuf->written = written;
10394   return vpc;
10395 #undef FLD
10396 }
10397
10398 /* bcvlr: bcvlr$pack $ICCi_2,$ccond,$hint */
10399
10400 static SEM_PC
10401 SEM_FN_NAME (frvbf,bcvlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10402 {
10403 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10404   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10405   int UNUSED written = 0;
10406   IADDR UNUSED pc = abuf->addr;
10407   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10408
10409 {
10410 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10411 {
10412   SI tmp_tmp;
10413   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10414   {
10415     USI opval = tmp_tmp;
10416     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10417     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10418   }
10419 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1))) {
10420 if (EQSI (FLD (f_ccond), 0)) {
10421 if (NESI (tmp_tmp, 0)) {
10422   {
10423     USI opval = GET_H_SPR (((UINT) 272));
10424     sim_queue_pc_write (current_cpu, opval);
10425     written |= (1 << 6);
10426     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10427   }
10428 }
10429 } else {
10430 if (EQSI (tmp_tmp, 0)) {
10431   {
10432     USI opval = GET_H_SPR (((UINT) 272));
10433     sim_queue_pc_write (current_cpu, opval);
10434     written |= (1 << 6);
10435     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10436   }
10437 }
10438 }
10439 }
10440 }
10441 }
10442
10443   abuf->written = written;
10444   return vpc;
10445 #undef FLD
10446 }
10447
10448 /* bcnvlr: bcnvlr$pack $ICCi_2,$ccond,$hint */
10449
10450 static SEM_PC
10451 SEM_FN_NAME (frvbf,bcnvlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10452 {
10453 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10454   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10455   int UNUSED written = 0;
10456   IADDR UNUSED pc = abuf->addr;
10457   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10458
10459 {
10460 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10461 {
10462   SI tmp_tmp;
10463   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10464   {
10465     USI opval = tmp_tmp;
10466     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10467     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10468   }
10469 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1)))) {
10470 if (EQSI (FLD (f_ccond), 0)) {
10471 if (NESI (tmp_tmp, 0)) {
10472   {
10473     USI opval = GET_H_SPR (((UINT) 272));
10474     sim_queue_pc_write (current_cpu, opval);
10475     written |= (1 << 6);
10476     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10477   }
10478 }
10479 } else {
10480 if (EQSI (tmp_tmp, 0)) {
10481   {
10482     USI opval = GET_H_SPR (((UINT) 272));
10483     sim_queue_pc_write (current_cpu, opval);
10484     written |= (1 << 6);
10485     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10486   }
10487 }
10488 }
10489 }
10490 }
10491 }
10492
10493   abuf->written = written;
10494   return vpc;
10495 #undef FLD
10496 }
10497
10498 /* fcbralr: fcbralr$pack $ccond$hint_taken */
10499
10500 static SEM_PC
10501 SEM_FN_NAME (frvbf,fcbralr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10502 {
10503 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10504   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10505   int UNUSED written = 0;
10506   IADDR UNUSED pc = abuf->addr;
10507   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10508
10509 {
10510 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10511 {
10512   SI tmp_tmp;
10513   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10514   {
10515     USI opval = tmp_tmp;
10516     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10517     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10518   }
10519 if (EQSI (FLD (f_ccond), 0)) {
10520 if (NESI (tmp_tmp, 0)) {
10521   {
10522     USI opval = GET_H_SPR (((UINT) 272));
10523     sim_queue_pc_write (current_cpu, opval);
10524     written |= (1 << 5);
10525     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10526   }
10527 }
10528 } else {
10529 if (EQSI (tmp_tmp, 0)) {
10530   {
10531     USI opval = GET_H_SPR (((UINT) 272));
10532     sim_queue_pc_write (current_cpu, opval);
10533     written |= (1 << 5);
10534     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10535   }
10536 }
10537 }
10538 }
10539 }
10540
10541   abuf->written = written;
10542   return vpc;
10543 #undef FLD
10544 }
10545
10546 /* fcbnolr: fcbnolr$pack$hint_not_taken */
10547
10548 static SEM_PC
10549 SEM_FN_NAME (frvbf,fcbnolr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10550 {
10551 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10552   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10553   int UNUSED written = 0;
10554   IADDR UNUSED pc = abuf->addr;
10555   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10556
10557 {
10558 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10559 {
10560   SI tmp_tmp;
10561   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10562   {
10563     USI opval = tmp_tmp;
10564     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10565     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10566   }
10567 ((void) 0); /*nop*/
10568 }
10569 }
10570
10571   return vpc;
10572 #undef FLD
10573 }
10574
10575 /* fcbeqlr: fcbeqlr$pack $FCCi_2,$ccond,$hint */
10576
10577 static SEM_PC
10578 SEM_FN_NAME (frvbf,fcbeqlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10579 {
10580 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10581   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10582   int UNUSED written = 0;
10583   IADDR UNUSED pc = abuf->addr;
10584   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10585
10586 {
10587 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10588 {
10589   SI tmp_tmp;
10590   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10591   {
10592     USI opval = tmp_tmp;
10593     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10594     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10595   }
10596 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3))) {
10597 if (EQSI (FLD (f_ccond), 0)) {
10598 if (NESI (tmp_tmp, 0)) {
10599   {
10600     USI opval = GET_H_SPR (((UINT) 272));
10601     sim_queue_pc_write (current_cpu, opval);
10602     written |= (1 << 6);
10603     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10604   }
10605 }
10606 } else {
10607 if (EQSI (tmp_tmp, 0)) {
10608   {
10609     USI opval = GET_H_SPR (((UINT) 272));
10610     sim_queue_pc_write (current_cpu, opval);
10611     written |= (1 << 6);
10612     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10613   }
10614 }
10615 }
10616 }
10617 }
10618 }
10619
10620   abuf->written = written;
10621   return vpc;
10622 #undef FLD
10623 }
10624
10625 /* fcbnelr: fcbnelr$pack $FCCi_2,$ccond,$hint */
10626
10627 static SEM_PC
10628 SEM_FN_NAME (frvbf,fcbnelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10629 {
10630 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10631   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10632   int UNUSED written = 0;
10633   IADDR UNUSED pc = abuf->addr;
10634   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10635
10636 {
10637 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10638 {
10639   SI tmp_tmp;
10640   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10641   {
10642     USI opval = tmp_tmp;
10643     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10644     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10645   }
10646 if (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))))) {
10647 if (EQSI (FLD (f_ccond), 0)) {
10648 if (NESI (tmp_tmp, 0)) {
10649   {
10650     USI opval = GET_H_SPR (((UINT) 272));
10651     sim_queue_pc_write (current_cpu, opval);
10652     written |= (1 << 6);
10653     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10654   }
10655 }
10656 } else {
10657 if (EQSI (tmp_tmp, 0)) {
10658   {
10659     USI opval = GET_H_SPR (((UINT) 272));
10660     sim_queue_pc_write (current_cpu, opval);
10661     written |= (1 << 6);
10662     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10663   }
10664 }
10665 }
10666 }
10667 }
10668 }
10669
10670   abuf->written = written;
10671   return vpc;
10672 #undef FLD
10673 }
10674
10675 /* fcblglr: fcblglr$pack $FCCi_2,$ccond,$hint */
10676
10677 static SEM_PC
10678 SEM_FN_NAME (frvbf,fcblglr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10679 {
10680 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10681   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10682   int UNUSED written = 0;
10683   IADDR UNUSED pc = abuf->addr;
10684   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10685
10686 {
10687 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10688 {
10689   SI tmp_tmp;
10690   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10691   {
10692     USI opval = tmp_tmp;
10693     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10694     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10695   }
10696 if (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)))) {
10697 if (EQSI (FLD (f_ccond), 0)) {
10698 if (NESI (tmp_tmp, 0)) {
10699   {
10700     USI opval = GET_H_SPR (((UINT) 272));
10701     sim_queue_pc_write (current_cpu, opval);
10702     written |= (1 << 6);
10703     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10704   }
10705 }
10706 } else {
10707 if (EQSI (tmp_tmp, 0)) {
10708   {
10709     USI opval = GET_H_SPR (((UINT) 272));
10710     sim_queue_pc_write (current_cpu, opval);
10711     written |= (1 << 6);
10712     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10713   }
10714 }
10715 }
10716 }
10717 }
10718 }
10719
10720   abuf->written = written;
10721   return vpc;
10722 #undef FLD
10723 }
10724
10725 /* fcbuelr: fcbuelr$pack $FCCi_2,$ccond,$hint */
10726
10727 static SEM_PC
10728 SEM_FN_NAME (frvbf,fcbuelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10729 {
10730 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10731   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10732   int UNUSED written = 0;
10733   IADDR UNUSED pc = abuf->addr;
10734   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10735
10736 {
10737 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10738 {
10739   SI tmp_tmp;
10740   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10741   {
10742     USI opval = tmp_tmp;
10743     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10744     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10745   }
10746 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
10747 if (EQSI (FLD (f_ccond), 0)) {
10748 if (NESI (tmp_tmp, 0)) {
10749   {
10750     USI opval = GET_H_SPR (((UINT) 272));
10751     sim_queue_pc_write (current_cpu, opval);
10752     written |= (1 << 6);
10753     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10754   }
10755 }
10756 } else {
10757 if (EQSI (tmp_tmp, 0)) {
10758   {
10759     USI opval = GET_H_SPR (((UINT) 272));
10760     sim_queue_pc_write (current_cpu, opval);
10761     written |= (1 << 6);
10762     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10763   }
10764 }
10765 }
10766 }
10767 }
10768 }
10769
10770   abuf->written = written;
10771   return vpc;
10772 #undef FLD
10773 }
10774
10775 /* fcbullr: fcbullr$pack $FCCi_2,$ccond,$hint */
10776
10777 static SEM_PC
10778 SEM_FN_NAME (frvbf,fcbullr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10779 {
10780 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10781   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10782   int UNUSED written = 0;
10783   IADDR UNUSED pc = abuf->addr;
10784   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10785
10786 {
10787 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10788 {
10789   SI tmp_tmp;
10790   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10791   {
10792     USI opval = tmp_tmp;
10793     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10794     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10795   }
10796 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
10797 if (EQSI (FLD (f_ccond), 0)) {
10798 if (NESI (tmp_tmp, 0)) {
10799   {
10800     USI opval = GET_H_SPR (((UINT) 272));
10801     sim_queue_pc_write (current_cpu, opval);
10802     written |= (1 << 6);
10803     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10804   }
10805 }
10806 } else {
10807 if (EQSI (tmp_tmp, 0)) {
10808   {
10809     USI opval = GET_H_SPR (((UINT) 272));
10810     sim_queue_pc_write (current_cpu, opval);
10811     written |= (1 << 6);
10812     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10813   }
10814 }
10815 }
10816 }
10817 }
10818 }
10819
10820   abuf->written = written;
10821   return vpc;
10822 #undef FLD
10823 }
10824
10825 /* fcbgelr: fcbgelr$pack $FCCi_2,$ccond,$hint */
10826
10827 static SEM_PC
10828 SEM_FN_NAME (frvbf,fcbgelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10829 {
10830 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10831   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10832   int UNUSED written = 0;
10833   IADDR UNUSED pc = abuf->addr;
10834   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10835
10836 {
10837 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10838 {
10839   SI tmp_tmp;
10840   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10841   {
10842     USI opval = tmp_tmp;
10843     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10844     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10845   }
10846 if (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)))) {
10847 if (EQSI (FLD (f_ccond), 0)) {
10848 if (NESI (tmp_tmp, 0)) {
10849   {
10850     USI opval = GET_H_SPR (((UINT) 272));
10851     sim_queue_pc_write (current_cpu, opval);
10852     written |= (1 << 6);
10853     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10854   }
10855 }
10856 } else {
10857 if (EQSI (tmp_tmp, 0)) {
10858   {
10859     USI opval = GET_H_SPR (((UINT) 272));
10860     sim_queue_pc_write (current_cpu, opval);
10861     written |= (1 << 6);
10862     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10863   }
10864 }
10865 }
10866 }
10867 }
10868 }
10869
10870   abuf->written = written;
10871   return vpc;
10872 #undef FLD
10873 }
10874
10875 /* fcbltlr: fcbltlr$pack $FCCi_2,$ccond,$hint */
10876
10877 static SEM_PC
10878 SEM_FN_NAME (frvbf,fcbltlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10879 {
10880 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10881   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10882   int UNUSED written = 0;
10883   IADDR UNUSED pc = abuf->addr;
10884   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10885
10886 {
10887 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10888 {
10889   SI tmp_tmp;
10890   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10891   {
10892     USI opval = tmp_tmp;
10893     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10894     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10895   }
10896 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2))) {
10897 if (EQSI (FLD (f_ccond), 0)) {
10898 if (NESI (tmp_tmp, 0)) {
10899   {
10900     USI opval = GET_H_SPR (((UINT) 272));
10901     sim_queue_pc_write (current_cpu, opval);
10902     written |= (1 << 6);
10903     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10904   }
10905 }
10906 } else {
10907 if (EQSI (tmp_tmp, 0)) {
10908   {
10909     USI opval = GET_H_SPR (((UINT) 272));
10910     sim_queue_pc_write (current_cpu, opval);
10911     written |= (1 << 6);
10912     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10913   }
10914 }
10915 }
10916 }
10917 }
10918 }
10919
10920   abuf->written = written;
10921   return vpc;
10922 #undef FLD
10923 }
10924
10925 /* fcbugelr: fcbugelr$pack $FCCi_2,$ccond,$hint */
10926
10927 static SEM_PC
10928 SEM_FN_NAME (frvbf,fcbugelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10929 {
10930 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10931   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10932   int UNUSED written = 0;
10933   IADDR UNUSED pc = abuf->addr;
10934   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10935
10936 {
10937 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10938 {
10939   SI tmp_tmp;
10940   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10941   {
10942     USI opval = tmp_tmp;
10943     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10944     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10945   }
10946 if (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))))) {
10947 if (EQSI (FLD (f_ccond), 0)) {
10948 if (NESI (tmp_tmp, 0)) {
10949   {
10950     USI opval = GET_H_SPR (((UINT) 272));
10951     sim_queue_pc_write (current_cpu, opval);
10952     written |= (1 << 6);
10953     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10954   }
10955 }
10956 } else {
10957 if (EQSI (tmp_tmp, 0)) {
10958   {
10959     USI opval = GET_H_SPR (((UINT) 272));
10960     sim_queue_pc_write (current_cpu, opval);
10961     written |= (1 << 6);
10962     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10963   }
10964 }
10965 }
10966 }
10967 }
10968 }
10969
10970   abuf->written = written;
10971   return vpc;
10972 #undef FLD
10973 }
10974
10975 /* fcbuglr: fcbuglr$pack $FCCi_2,$ccond,$hint */
10976
10977 static SEM_PC
10978 SEM_FN_NAME (frvbf,fcbuglr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10979 {
10980 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10981   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10982   int UNUSED written = 0;
10983   IADDR UNUSED pc = abuf->addr;
10984   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10985
10986 {
10987 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10988 {
10989   SI tmp_tmp;
10990   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10991   {
10992     USI opval = tmp_tmp;
10993     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10994     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10995   }
10996 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
10997 if (EQSI (FLD (f_ccond), 0)) {
10998 if (NESI (tmp_tmp, 0)) {
10999   {
11000     USI opval = GET_H_SPR (((UINT) 272));
11001     sim_queue_pc_write (current_cpu, opval);
11002     written |= (1 << 6);
11003     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11004   }
11005 }
11006 } else {
11007 if (EQSI (tmp_tmp, 0)) {
11008   {
11009     USI opval = GET_H_SPR (((UINT) 272));
11010     sim_queue_pc_write (current_cpu, opval);
11011     written |= (1 << 6);
11012     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11013   }
11014 }
11015 }
11016 }
11017 }
11018 }
11019
11020   abuf->written = written;
11021   return vpc;
11022 #undef FLD
11023 }
11024
11025 /* fcblelr: fcblelr$pack $FCCi_2,$ccond,$hint */
11026
11027 static SEM_PC
11028 SEM_FN_NAME (frvbf,fcblelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11029 {
11030 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
11031   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11032   int UNUSED written = 0;
11033   IADDR UNUSED pc = abuf->addr;
11034   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11035
11036 {
11037 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
11038 {
11039   SI tmp_tmp;
11040   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
11041   {
11042     USI opval = tmp_tmp;
11043     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
11044     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
11045   }
11046 if (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)))) {
11047 if (EQSI (FLD (f_ccond), 0)) {
11048 if (NESI (tmp_tmp, 0)) {
11049   {
11050     USI opval = GET_H_SPR (((UINT) 272));
11051     sim_queue_pc_write (current_cpu, opval);
11052     written |= (1 << 6);
11053     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11054   }
11055 }
11056 } else {
11057 if (EQSI (tmp_tmp, 0)) {
11058   {
11059     USI opval = GET_H_SPR (((UINT) 272));
11060     sim_queue_pc_write (current_cpu, opval);
11061     written |= (1 << 6);
11062     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11063   }
11064 }
11065 }
11066 }
11067 }
11068 }
11069
11070   abuf->written = written;
11071   return vpc;
11072 #undef FLD
11073 }
11074
11075 /* fcbgtlr: fcbgtlr$pack $FCCi_2,$ccond,$hint */
11076
11077 static SEM_PC
11078 SEM_FN_NAME (frvbf,fcbgtlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11079 {
11080 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
11081   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11082   int UNUSED written = 0;
11083   IADDR UNUSED pc = abuf->addr;
11084   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11085
11086 {
11087 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
11088 {
11089   SI tmp_tmp;
11090   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
11091   {
11092     USI opval = tmp_tmp;
11093     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
11094     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
11095   }
11096 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1))) {
11097 if (EQSI (FLD (f_ccond), 0)) {
11098 if (NESI (tmp_tmp, 0)) {
11099   {
11100     USI opval = GET_H_SPR (((UINT) 272));
11101     sim_queue_pc_write (current_cpu, opval);
11102     written |= (1 << 6);
11103     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11104   }
11105 }
11106 } else {
11107 if (EQSI (tmp_tmp, 0)) {
11108   {
11109     USI opval = GET_H_SPR (((UINT) 272));
11110     sim_queue_pc_write (current_cpu, opval);
11111     written |= (1 << 6);
11112     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11113   }
11114 }
11115 }
11116 }
11117 }
11118 }
11119
11120   abuf->written = written;
11121   return vpc;
11122 #undef FLD
11123 }
11124
11125 /* fcbulelr: fcbulelr$pack $FCCi_2,$ccond,$hint */
11126
11127 static SEM_PC
11128 SEM_FN_NAME (frvbf,fcbulelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11129 {
11130 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
11131   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11132   int UNUSED written = 0;
11133   IADDR UNUSED pc = abuf->addr;
11134   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11135
11136 {
11137 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
11138 {
11139   SI tmp_tmp;
11140   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
11141   {
11142     USI opval = tmp_tmp;
11143     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
11144     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
11145   }
11146 if (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))))) {
11147 if (EQSI (FLD (f_ccond), 0)) {
11148 if (NESI (tmp_tmp, 0)) {
11149   {
11150     USI opval = GET_H_SPR (((UINT) 272));
11151     sim_queue_pc_write (current_cpu, opval);
11152     written |= (1 << 6);
11153     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11154   }
11155 }
11156 } else {
11157 if (EQSI (tmp_tmp, 0)) {
11158   {
11159     USI opval = GET_H_SPR (((UINT) 272));
11160     sim_queue_pc_write (current_cpu, opval);
11161     written |= (1 << 6);
11162     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11163   }
11164 }
11165 }
11166 }
11167 }
11168 }
11169
11170   abuf->written = written;
11171   return vpc;
11172 #undef FLD
11173 }
11174
11175 /* fcbulr: fcbulr$pack $FCCi_2,$ccond,$hint */
11176
11177 static SEM_PC
11178 SEM_FN_NAME (frvbf,fcbulr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11179 {
11180 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
11181   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11182   int UNUSED written = 0;
11183   IADDR UNUSED pc = abuf->addr;
11184   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11185
11186 {
11187 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
11188 {
11189   SI tmp_tmp;
11190   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
11191   {
11192     USI opval = tmp_tmp;
11193     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
11194     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
11195   }
11196 if (TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1))) {
11197 if (EQSI (FLD (f_ccond), 0)) {
11198 if (NESI (tmp_tmp, 0)) {
11199   {
11200     USI opval = GET_H_SPR (((UINT) 272));
11201     sim_queue_pc_write (current_cpu, opval);
11202     written |= (1 << 6);
11203     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11204   }
11205 }
11206 } else {
11207 if (EQSI (tmp_tmp, 0)) {
11208   {
11209     USI opval = GET_H_SPR (((UINT) 272));
11210     sim_queue_pc_write (current_cpu, opval);
11211     written |= (1 << 6);
11212     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11213   }
11214 }
11215 }
11216 }
11217 }
11218 }
11219
11220   abuf->written = written;
11221   return vpc;
11222 #undef FLD
11223 }
11224
11225 /* fcbolr: fcbolr$pack $FCCi_2,$ccond,$hint */
11226
11227 static SEM_PC
11228 SEM_FN_NAME (frvbf,fcbolr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11229 {
11230 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
11231   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11232   int UNUSED written = 0;
11233   IADDR UNUSED pc = abuf->addr;
11234   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11235
11236 {
11237 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
11238 {
11239   SI tmp_tmp;
11240   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
11241   {
11242     USI opval = tmp_tmp;
11243     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
11244     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
11245   }
11246 if (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))))) {
11247 if (EQSI (FLD (f_ccond), 0)) {
11248 if (NESI (tmp_tmp, 0)) {
11249   {
11250     USI opval = GET_H_SPR (((UINT) 272));
11251     sim_queue_pc_write (current_cpu, opval);
11252     written |= (1 << 6);
11253     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11254   }
11255 }
11256 } else {
11257 if (EQSI (tmp_tmp, 0)) {
11258   {
11259     USI opval = GET_H_SPR (((UINT) 272));
11260     sim_queue_pc_write (current_cpu, opval);
11261     written |= (1 << 6);
11262     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11263   }
11264 }
11265 }
11266 }
11267 }
11268 }
11269
11270   abuf->written = written;
11271   return vpc;
11272 #undef FLD
11273 }
11274
11275 /* jmpl: jmpl$pack @($GRi,$GRj) */
11276
11277 static SEM_PC
11278 SEM_FN_NAME (frvbf,jmpl) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11279 {
11280 #define FLD(f) abuf->fields.sfmt_cjmpl.f
11281   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11282   int UNUSED written = 0;
11283   IADDR UNUSED pc = abuf->addr;
11284   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11285
11286 {
11287 if (EQSI (FLD (f_LI), 1)) {
11288 frvbf_set_write_next_vliw_addr_to_LR (current_cpu, 1);
11289 }
11290   {
11291     USI opval = ANDSI (ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), 0xfffffffc);
11292     sim_queue_pc_write (current_cpu, opval);
11293     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11294   }
11295 frvbf_model_branch (current_cpu, pc, 2);
11296 }
11297
11298   return vpc;
11299 #undef FLD
11300 }
11301
11302 /* calll: calll$pack $callann($GRi,$GRj) */
11303
11304 static SEM_PC
11305 SEM_FN_NAME (frvbf,calll) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11306 {
11307 #define FLD(f) abuf->fields.sfmt_cjmpl.f
11308   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11309   int UNUSED written = 0;
11310   IADDR UNUSED pc = abuf->addr;
11311   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11312
11313 {
11314 if (EQSI (FLD (f_LI), 1)) {
11315 frvbf_set_write_next_vliw_addr_to_LR (current_cpu, 1);
11316 }
11317   {
11318     USI opval = ANDSI (ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), 0xfffffffc);
11319     sim_queue_pc_write (current_cpu, opval);
11320     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11321   }
11322 frvbf_model_branch (current_cpu, pc, 2);
11323 }
11324
11325   return vpc;
11326 #undef FLD
11327 }
11328
11329 /* jmpil: jmpil$pack @($GRi,$s12) */
11330
11331 static SEM_PC
11332 SEM_FN_NAME (frvbf,jmpil) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11333 {
11334 #define FLD(f) abuf->fields.sfmt_jmpil.f
11335   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11336   int UNUSED written = 0;
11337   IADDR UNUSED pc = abuf->addr;
11338   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11339
11340 {
11341 if (EQSI (FLD (f_LI), 1)) {
11342 frvbf_set_write_next_vliw_addr_to_LR (current_cpu, 1);
11343 }
11344   {
11345     USI opval = ANDSI (ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)), 0xfffffffc);
11346     sim_queue_pc_write (current_cpu, opval);
11347     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11348   }
11349 frvbf_model_branch (current_cpu, pc, 2);
11350 }
11351
11352   return vpc;
11353 #undef FLD
11354 }
11355
11356 /* callil: callil$pack @($GRi,$s12) */
11357
11358 static SEM_PC
11359 SEM_FN_NAME (frvbf,callil) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11360 {
11361 #define FLD(f) abuf->fields.sfmt_jmpil.f
11362   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11363   int UNUSED written = 0;
11364   IADDR UNUSED pc = abuf->addr;
11365   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11366
11367 {
11368 if (EQSI (FLD (f_LI), 1)) {
11369 frvbf_set_write_next_vliw_addr_to_LR (current_cpu, 1);
11370 }
11371   {
11372     USI opval = ANDSI (ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)), 0xfffffffc);
11373     sim_queue_pc_write (current_cpu, opval);
11374     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11375   }
11376 frvbf_model_branch (current_cpu, pc, 2);
11377 }
11378
11379   return vpc;
11380 #undef FLD
11381 }
11382
11383 /* call: call$pack $label24 */
11384
11385 static SEM_PC
11386 SEM_FN_NAME (frvbf,call) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11387 {
11388 #define FLD(f) abuf->fields.sfmt_call.f
11389   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11390   int UNUSED written = 0;
11391   IADDR UNUSED pc = abuf->addr;
11392   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11393
11394 {
11395 frvbf_set_write_next_vliw_addr_to_LR (current_cpu, 1);
11396   {
11397     USI opval = FLD (i_label24);
11398     sim_queue_pc_write (current_cpu, opval);
11399     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11400   }
11401 frvbf_model_branch (current_cpu, pc, 2);
11402 }
11403
11404   return vpc;
11405 #undef FLD
11406 }
11407
11408 /* rett: rett$pack $debug */
11409
11410 static SEM_PC
11411 SEM_FN_NAME (frvbf,rett) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11412 {
11413 #define FLD(f) abuf->fields.sfmt_rett.f
11414   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11415   int UNUSED written = 0;
11416   IADDR UNUSED pc = abuf->addr;
11417   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11418
11419 {
11420   {
11421     USI opval = frv_rett (current_cpu, pc, FLD (f_debug));
11422     sim_queue_pc_write (current_cpu, opval);
11423     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11424   }
11425 frvbf_model_branch (current_cpu, pc, 2);
11426 }
11427
11428   return vpc;
11429 #undef FLD
11430 }
11431
11432 /* rei: rei$pack $eir */
11433
11434 static SEM_PC
11435 SEM_FN_NAME (frvbf,rei) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11436 {
11437 #define FLD(f) abuf->fields.sfmt_empty.f
11438   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11439   int UNUSED written = 0;
11440   IADDR UNUSED pc = abuf->addr;
11441   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11442
11443 ((void) 0); /*nop*/
11444
11445   return vpc;
11446 #undef FLD
11447 }
11448
11449 /* tra: tra$pack $GRi,$GRj */
11450
11451 static SEM_PC
11452 SEM_FN_NAME (frvbf,tra) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11453 {
11454 #define FLD(f) abuf->fields.sfmt_ftne.f
11455   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11456   int UNUSED written = 0;
11457   IADDR UNUSED pc = abuf->addr;
11458   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11459
11460 {
11461 ; /*clobber*/
11462 ; /*clobber*/
11463 ; /*clobber*/
11464 ; /*clobber*/
11465 if (NEBI (CPU (h_psr_esr), 0)) {
11466 {
11467 ; /*clobber*/
11468 ; /*clobber*/
11469 ; /*clobber*/
11470 ; /*clobber*/
11471 }
11472 }
11473 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11474 }
11475
11476   abuf->written = written;
11477   return vpc;
11478 #undef FLD
11479 }
11480
11481 /* tno: tno$pack */
11482
11483 static SEM_PC
11484 SEM_FN_NAME (frvbf,tno) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11485 {
11486 #define FLD(f) abuf->fields.sfmt_empty.f
11487   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11488   int UNUSED written = 0;
11489   IADDR UNUSED pc = abuf->addr;
11490   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11491
11492 ((void) 0); /*nop*/
11493
11494   return vpc;
11495 #undef FLD
11496 }
11497
11498 /* teq: teq$pack $ICCi_2,$GRi,$GRj */
11499
11500 static SEM_PC
11501 SEM_FN_NAME (frvbf,teq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11502 {
11503 #define FLD(f) abuf->fields.sfmt_teq.f
11504   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11505   int UNUSED written = 0;
11506   IADDR UNUSED pc = abuf->addr;
11507   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11508
11509 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2))) {
11510 {
11511 ; /*clobber*/
11512 ; /*clobber*/
11513 ; /*clobber*/
11514 ; /*clobber*/
11515 if (NEBI (CPU (h_psr_esr), 0)) {
11516 {
11517 ; /*clobber*/
11518 ; /*clobber*/
11519 ; /*clobber*/
11520 ; /*clobber*/
11521 }
11522 }
11523 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11524 }
11525 }
11526
11527   abuf->written = written;
11528   return vpc;
11529 #undef FLD
11530 }
11531
11532 /* tne: tne$pack $ICCi_2,$GRi,$GRj */
11533
11534 static SEM_PC
11535 SEM_FN_NAME (frvbf,tne) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11536 {
11537 #define FLD(f) abuf->fields.sfmt_teq.f
11538   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11539   int UNUSED written = 0;
11540   IADDR UNUSED pc = abuf->addr;
11541   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11542
11543 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)))) {
11544 {
11545 ; /*clobber*/
11546 ; /*clobber*/
11547 ; /*clobber*/
11548 ; /*clobber*/
11549 if (NEBI (CPU (h_psr_esr), 0)) {
11550 {
11551 ; /*clobber*/
11552 ; /*clobber*/
11553 ; /*clobber*/
11554 ; /*clobber*/
11555 }
11556 }
11557 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11558 }
11559 }
11560
11561   abuf->written = written;
11562   return vpc;
11563 #undef FLD
11564 }
11565
11566 /* tle: tle$pack $ICCi_2,$GRi,$GRj */
11567
11568 static SEM_PC
11569 SEM_FN_NAME (frvbf,tle) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11570 {
11571 #define FLD(f) abuf->fields.sfmt_teq.f
11572   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11573   int UNUSED written = 0;
11574   IADDR UNUSED pc = abuf->addr;
11575   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11576
11577 if (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))))) {
11578 {
11579 ; /*clobber*/
11580 ; /*clobber*/
11581 ; /*clobber*/
11582 ; /*clobber*/
11583 if (NEBI (CPU (h_psr_esr), 0)) {
11584 {
11585 ; /*clobber*/
11586 ; /*clobber*/
11587 ; /*clobber*/
11588 ; /*clobber*/
11589 }
11590 }
11591 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11592 }
11593 }
11594
11595   abuf->written = written;
11596   return vpc;
11597 #undef FLD
11598 }
11599
11600 /* tgt: tgt$pack $ICCi_2,$GRi,$GRj */
11601
11602 static SEM_PC
11603 SEM_FN_NAME (frvbf,tgt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11604 {
11605 #define FLD(f) abuf->fields.sfmt_teq.f
11606   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11607   int UNUSED written = 0;
11608   IADDR UNUSED pc = abuf->addr;
11609   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11610
11611 if (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)))))) {
11612 {
11613 ; /*clobber*/
11614 ; /*clobber*/
11615 ; /*clobber*/
11616 ; /*clobber*/
11617 if (NEBI (CPU (h_psr_esr), 0)) {
11618 {
11619 ; /*clobber*/
11620 ; /*clobber*/
11621 ; /*clobber*/
11622 ; /*clobber*/
11623 }
11624 }
11625 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11626 }
11627 }
11628
11629   abuf->written = written;
11630   return vpc;
11631 #undef FLD
11632 }
11633
11634 /* tlt: tlt$pack $ICCi_2,$GRi,$GRj */
11635
11636 static SEM_PC
11637 SEM_FN_NAME (frvbf,tlt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11638 {
11639 #define FLD(f) abuf->fields.sfmt_teq.f
11640   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11641   int UNUSED written = 0;
11642   IADDR UNUSED pc = abuf->addr;
11643   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11644
11645 if (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)))) {
11646 {
11647 ; /*clobber*/
11648 ; /*clobber*/
11649 ; /*clobber*/
11650 ; /*clobber*/
11651 if (NEBI (CPU (h_psr_esr), 0)) {
11652 {
11653 ; /*clobber*/
11654 ; /*clobber*/
11655 ; /*clobber*/
11656 ; /*clobber*/
11657 }
11658 }
11659 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11660 }
11661 }
11662
11663   abuf->written = written;
11664   return vpc;
11665 #undef FLD
11666 }
11667
11668 /* tge: tge$pack $ICCi_2,$GRi,$GRj */
11669
11670 static SEM_PC
11671 SEM_FN_NAME (frvbf,tge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11672 {
11673 #define FLD(f) abuf->fields.sfmt_teq.f
11674   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11675   int UNUSED written = 0;
11676   IADDR UNUSED pc = abuf->addr;
11677   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11678
11679 if (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))))) {
11680 {
11681 ; /*clobber*/
11682 ; /*clobber*/
11683 ; /*clobber*/
11684 ; /*clobber*/
11685 if (NEBI (CPU (h_psr_esr), 0)) {
11686 {
11687 ; /*clobber*/
11688 ; /*clobber*/
11689 ; /*clobber*/
11690 ; /*clobber*/
11691 }
11692 }
11693 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11694 }
11695 }
11696
11697   abuf->written = written;
11698   return vpc;
11699 #undef FLD
11700 }
11701
11702 /* tls: tls$pack $ICCi_2,$GRi,$GRj */
11703
11704 static SEM_PC
11705 SEM_FN_NAME (frvbf,tls) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11706 {
11707 #define FLD(f) abuf->fields.sfmt_teq.f
11708   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11709   int UNUSED written = 0;
11710   IADDR UNUSED pc = abuf->addr;
11711   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11712
11713 if (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)))) {
11714 {
11715 ; /*clobber*/
11716 ; /*clobber*/
11717 ; /*clobber*/
11718 ; /*clobber*/
11719 if (NEBI (CPU (h_psr_esr), 0)) {
11720 {
11721 ; /*clobber*/
11722 ; /*clobber*/
11723 ; /*clobber*/
11724 ; /*clobber*/
11725 }
11726 }
11727 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11728 }
11729 }
11730
11731   abuf->written = written;
11732   return vpc;
11733 #undef FLD
11734 }
11735
11736 /* thi: thi$pack $ICCi_2,$GRi,$GRj */
11737
11738 static SEM_PC
11739 SEM_FN_NAME (frvbf,thi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11740 {
11741 #define FLD(f) abuf->fields.sfmt_teq.f
11742   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11743   int UNUSED written = 0;
11744   IADDR UNUSED pc = abuf->addr;
11745   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11746
11747 if (NOTBI (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2))))) {
11748 {
11749 ; /*clobber*/
11750 ; /*clobber*/
11751 ; /*clobber*/
11752 ; /*clobber*/
11753 if (NEBI (CPU (h_psr_esr), 0)) {
11754 {
11755 ; /*clobber*/
11756 ; /*clobber*/
11757 ; /*clobber*/
11758 ; /*clobber*/
11759 }
11760 }
11761 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11762 }
11763 }
11764
11765   abuf->written = written;
11766   return vpc;
11767 #undef FLD
11768 }
11769
11770 /* tc: tc$pack $ICCi_2,$GRi,$GRj */
11771
11772 static SEM_PC
11773 SEM_FN_NAME (frvbf,tc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11774 {
11775 #define FLD(f) abuf->fields.sfmt_teq.f
11776   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11777   int UNUSED written = 0;
11778   IADDR UNUSED pc = abuf->addr;
11779   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11780
11781 if (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1))) {
11782 {
11783 ; /*clobber*/
11784 ; /*clobber*/
11785 ; /*clobber*/
11786 ; /*clobber*/
11787 if (NEBI (CPU (h_psr_esr), 0)) {
11788 {
11789 ; /*clobber*/
11790 ; /*clobber*/
11791 ; /*clobber*/
11792 ; /*clobber*/
11793 }
11794 }
11795 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11796 }
11797 }
11798
11799   abuf->written = written;
11800   return vpc;
11801 #undef FLD
11802 }
11803
11804 /* tnc: tnc$pack $ICCi_2,$GRi,$GRj */
11805
11806 static SEM_PC
11807 SEM_FN_NAME (frvbf,tnc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11808 {
11809 #define FLD(f) abuf->fields.sfmt_teq.f
11810   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11811   int UNUSED written = 0;
11812   IADDR UNUSED pc = abuf->addr;
11813   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11814
11815 if (NOTBI (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)))) {
11816 {
11817 ; /*clobber*/
11818 ; /*clobber*/
11819 ; /*clobber*/
11820 ; /*clobber*/
11821 if (NEBI (CPU (h_psr_esr), 0)) {
11822 {
11823 ; /*clobber*/
11824 ; /*clobber*/
11825 ; /*clobber*/
11826 ; /*clobber*/
11827 }
11828 }
11829 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11830 }
11831 }
11832
11833   abuf->written = written;
11834   return vpc;
11835 #undef FLD
11836 }
11837
11838 /* tn: tn$pack $ICCi_2,$GRi,$GRj */
11839
11840 static SEM_PC
11841 SEM_FN_NAME (frvbf,tn) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11842 {
11843 #define FLD(f) abuf->fields.sfmt_teq.f
11844   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11845   int UNUSED written = 0;
11846   IADDR UNUSED pc = abuf->addr;
11847   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11848
11849 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3))) {
11850 {
11851 ; /*clobber*/
11852 ; /*clobber*/
11853 ; /*clobber*/
11854 ; /*clobber*/
11855 if (NEBI (CPU (h_psr_esr), 0)) {
11856 {
11857 ; /*clobber*/
11858 ; /*clobber*/
11859 ; /*clobber*/
11860 ; /*clobber*/
11861 }
11862 }
11863 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11864 }
11865 }
11866
11867   abuf->written = written;
11868   return vpc;
11869 #undef FLD
11870 }
11871
11872 /* tp: tp$pack $ICCi_2,$GRi,$GRj */
11873
11874 static SEM_PC
11875 SEM_FN_NAME (frvbf,tp) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11876 {
11877 #define FLD(f) abuf->fields.sfmt_teq.f
11878   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11879   int UNUSED written = 0;
11880   IADDR UNUSED pc = abuf->addr;
11881   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11882
11883 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3)))) {
11884 {
11885 ; /*clobber*/
11886 ; /*clobber*/
11887 ; /*clobber*/
11888 ; /*clobber*/
11889 if (NEBI (CPU (h_psr_esr), 0)) {
11890 {
11891 ; /*clobber*/
11892 ; /*clobber*/
11893 ; /*clobber*/
11894 ; /*clobber*/
11895 }
11896 }
11897 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11898 }
11899 }
11900
11901   abuf->written = written;
11902   return vpc;
11903 #undef FLD
11904 }
11905
11906 /* tv: tv$pack $ICCi_2,$GRi,$GRj */
11907
11908 static SEM_PC
11909 SEM_FN_NAME (frvbf,tv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11910 {
11911 #define FLD(f) abuf->fields.sfmt_teq.f
11912   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11913   int UNUSED written = 0;
11914   IADDR UNUSED pc = abuf->addr;
11915   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11916
11917 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1))) {
11918 {
11919 ; /*clobber*/
11920 ; /*clobber*/
11921 ; /*clobber*/
11922 ; /*clobber*/
11923 if (NEBI (CPU (h_psr_esr), 0)) {
11924 {
11925 ; /*clobber*/
11926 ; /*clobber*/
11927 ; /*clobber*/
11928 ; /*clobber*/
11929 }
11930 }
11931 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11932 }
11933 }
11934
11935   abuf->written = written;
11936   return vpc;
11937 #undef FLD
11938 }
11939
11940 /* tnv: tnv$pack $ICCi_2,$GRi,$GRj */
11941
11942 static SEM_PC
11943 SEM_FN_NAME (frvbf,tnv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11944 {
11945 #define FLD(f) abuf->fields.sfmt_teq.f
11946   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11947   int UNUSED written = 0;
11948   IADDR UNUSED pc = abuf->addr;
11949   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11950
11951 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1)))) {
11952 {
11953 ; /*clobber*/
11954 ; /*clobber*/
11955 ; /*clobber*/
11956 ; /*clobber*/
11957 if (NEBI (CPU (h_psr_esr), 0)) {
11958 {
11959 ; /*clobber*/
11960 ; /*clobber*/
11961 ; /*clobber*/
11962 ; /*clobber*/
11963 }
11964 }
11965 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11966 }
11967 }
11968
11969   abuf->written = written;
11970   return vpc;
11971 #undef FLD
11972 }
11973
11974 /* ftra: ftra$pack $GRi,$GRj */
11975
11976 static SEM_PC
11977 SEM_FN_NAME (frvbf,ftra) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11978 {
11979 #define FLD(f) abuf->fields.sfmt_ftne.f
11980   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11981   int UNUSED written = 0;
11982   IADDR UNUSED pc = abuf->addr;
11983   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11984
11985 {
11986 ; /*clobber*/
11987 ; /*clobber*/
11988 ; /*clobber*/
11989 ; /*clobber*/
11990 if (NEBI (CPU (h_psr_esr), 0)) {
11991 {
11992 ; /*clobber*/
11993 ; /*clobber*/
11994 ; /*clobber*/
11995 ; /*clobber*/
11996 }
11997 }
11998 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11999 }
12000
12001   abuf->written = written;
12002   return vpc;
12003 #undef FLD
12004 }
12005
12006 /* ftno: ftno$pack */
12007
12008 static SEM_PC
12009 SEM_FN_NAME (frvbf,ftno) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12010 {
12011 #define FLD(f) abuf->fields.sfmt_empty.f
12012   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12013   int UNUSED written = 0;
12014   IADDR UNUSED pc = abuf->addr;
12015   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12016
12017 ((void) 0); /*nop*/
12018
12019   return vpc;
12020 #undef FLD
12021 }
12022
12023 /* ftne: ftne$pack $FCCi_2,$GRi,$GRj */
12024
12025 static SEM_PC
12026 SEM_FN_NAME (frvbf,ftne) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12027 {
12028 #define FLD(f) abuf->fields.sfmt_ftne.f
12029   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12030   int UNUSED written = 0;
12031   IADDR UNUSED pc = abuf->addr;
12032   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12033
12034 if (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))))) {
12035 {
12036 ; /*clobber*/
12037 ; /*clobber*/
12038 ; /*clobber*/
12039 ; /*clobber*/
12040 if (NEBI (CPU (h_psr_esr), 0)) {
12041 {
12042 ; /*clobber*/
12043 ; /*clobber*/
12044 ; /*clobber*/
12045 ; /*clobber*/
12046 }
12047 }
12048 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12049 }
12050 }
12051
12052   abuf->written = written;
12053   return vpc;
12054 #undef FLD
12055 }
12056
12057 /* fteq: fteq$pack $FCCi_2,$GRi,$GRj */
12058
12059 static SEM_PC
12060 SEM_FN_NAME (frvbf,fteq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12061 {
12062 #define FLD(f) abuf->fields.sfmt_ftne.f
12063   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12064   int UNUSED written = 0;
12065   IADDR UNUSED pc = abuf->addr;
12066   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12067
12068 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3))) {
12069 {
12070 ; /*clobber*/
12071 ; /*clobber*/
12072 ; /*clobber*/
12073 ; /*clobber*/
12074 if (NEBI (CPU (h_psr_esr), 0)) {
12075 {
12076 ; /*clobber*/
12077 ; /*clobber*/
12078 ; /*clobber*/
12079 ; /*clobber*/
12080 }
12081 }
12082 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12083 }
12084 }
12085
12086   abuf->written = written;
12087   return vpc;
12088 #undef FLD
12089 }
12090
12091 /* ftlg: ftlg$pack $FCCi_2,$GRi,$GRj */
12092
12093 static SEM_PC
12094 SEM_FN_NAME (frvbf,ftlg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12095 {
12096 #define FLD(f) abuf->fields.sfmt_ftne.f
12097   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12098   int UNUSED written = 0;
12099   IADDR UNUSED pc = abuf->addr;
12100   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12101
12102 if (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)))) {
12103 {
12104 ; /*clobber*/
12105 ; /*clobber*/
12106 ; /*clobber*/
12107 ; /*clobber*/
12108 if (NEBI (CPU (h_psr_esr), 0)) {
12109 {
12110 ; /*clobber*/
12111 ; /*clobber*/
12112 ; /*clobber*/
12113 ; /*clobber*/
12114 }
12115 }
12116 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12117 }
12118 }
12119
12120   abuf->written = written;
12121   return vpc;
12122 #undef FLD
12123 }
12124
12125 /* ftue: ftue$pack $FCCi_2,$GRi,$GRj */
12126
12127 static SEM_PC
12128 SEM_FN_NAME (frvbf,ftue) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12129 {
12130 #define FLD(f) abuf->fields.sfmt_ftne.f
12131   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12132   int UNUSED written = 0;
12133   IADDR UNUSED pc = abuf->addr;
12134   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12135
12136 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
12137 {
12138 ; /*clobber*/
12139 ; /*clobber*/
12140 ; /*clobber*/
12141 ; /*clobber*/
12142 if (NEBI (CPU (h_psr_esr), 0)) {
12143 {
12144 ; /*clobber*/
12145 ; /*clobber*/
12146 ; /*clobber*/
12147 ; /*clobber*/
12148 }
12149 }
12150 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12151 }
12152 }
12153
12154   abuf->written = written;
12155   return vpc;
12156 #undef FLD
12157 }
12158
12159 /* ftul: ftul$pack $FCCi_2,$GRi,$GRj */
12160
12161 static SEM_PC
12162 SEM_FN_NAME (frvbf,ftul) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12163 {
12164 #define FLD(f) abuf->fields.sfmt_ftne.f
12165   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12166   int UNUSED written = 0;
12167   IADDR UNUSED pc = abuf->addr;
12168   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12169
12170 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
12171 {
12172 ; /*clobber*/
12173 ; /*clobber*/
12174 ; /*clobber*/
12175 ; /*clobber*/
12176 if (NEBI (CPU (h_psr_esr), 0)) {
12177 {
12178 ; /*clobber*/
12179 ; /*clobber*/
12180 ; /*clobber*/
12181 ; /*clobber*/
12182 }
12183 }
12184 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12185 }
12186 }
12187
12188   abuf->written = written;
12189   return vpc;
12190 #undef FLD
12191 }
12192
12193 /* ftge: ftge$pack $FCCi_2,$GRi,$GRj */
12194
12195 static SEM_PC
12196 SEM_FN_NAME (frvbf,ftge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12197 {
12198 #define FLD(f) abuf->fields.sfmt_ftne.f
12199   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12200   int UNUSED written = 0;
12201   IADDR UNUSED pc = abuf->addr;
12202   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12203
12204 if (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)))) {
12205 {
12206 ; /*clobber*/
12207 ; /*clobber*/
12208 ; /*clobber*/
12209 ; /*clobber*/
12210 if (NEBI (CPU (h_psr_esr), 0)) {
12211 {
12212 ; /*clobber*/
12213 ; /*clobber*/
12214 ; /*clobber*/
12215 ; /*clobber*/
12216 }
12217 }
12218 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12219 }
12220 }
12221
12222   abuf->written = written;
12223   return vpc;
12224 #undef FLD
12225 }
12226
12227 /* ftlt: ftlt$pack $FCCi_2,$GRi,$GRj */
12228
12229 static SEM_PC
12230 SEM_FN_NAME (frvbf,ftlt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12231 {
12232 #define FLD(f) abuf->fields.sfmt_ftne.f
12233   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12234   int UNUSED written = 0;
12235   IADDR UNUSED pc = abuf->addr;
12236   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12237
12238 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2))) {
12239 {
12240 ; /*clobber*/
12241 ; /*clobber*/
12242 ; /*clobber*/
12243 ; /*clobber*/
12244 if (NEBI (CPU (h_psr_esr), 0)) {
12245 {
12246 ; /*clobber*/
12247 ; /*clobber*/
12248 ; /*clobber*/
12249 ; /*clobber*/
12250 }
12251 }
12252 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12253 }
12254 }
12255
12256   abuf->written = written;
12257   return vpc;
12258 #undef FLD
12259 }
12260
12261 /* ftuge: ftuge$pack $FCCi_2,$GRi,$GRj */
12262
12263 static SEM_PC
12264 SEM_FN_NAME (frvbf,ftuge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12265 {
12266 #define FLD(f) abuf->fields.sfmt_ftne.f
12267   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12268   int UNUSED written = 0;
12269   IADDR UNUSED pc = abuf->addr;
12270   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12271
12272 if (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))))) {
12273 {
12274 ; /*clobber*/
12275 ; /*clobber*/
12276 ; /*clobber*/
12277 ; /*clobber*/
12278 if (NEBI (CPU (h_psr_esr), 0)) {
12279 {
12280 ; /*clobber*/
12281 ; /*clobber*/
12282 ; /*clobber*/
12283 ; /*clobber*/
12284 }
12285 }
12286 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12287 }
12288 }
12289
12290   abuf->written = written;
12291   return vpc;
12292 #undef FLD
12293 }
12294
12295 /* ftug: ftug$pack $FCCi_2,$GRi,$GRj */
12296
12297 static SEM_PC
12298 SEM_FN_NAME (frvbf,ftug) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12299 {
12300 #define FLD(f) abuf->fields.sfmt_ftne.f
12301   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12302   int UNUSED written = 0;
12303   IADDR UNUSED pc = abuf->addr;
12304   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12305
12306 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
12307 {
12308 ; /*clobber*/
12309 ; /*clobber*/
12310 ; /*clobber*/
12311 ; /*clobber*/
12312 if (NEBI (CPU (h_psr_esr), 0)) {
12313 {
12314 ; /*clobber*/
12315 ; /*clobber*/
12316 ; /*clobber*/
12317 ; /*clobber*/
12318 }
12319 }
12320 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12321 }
12322 }
12323
12324   abuf->written = written;
12325   return vpc;
12326 #undef FLD
12327 }
12328
12329 /* ftle: ftle$pack $FCCi_2,$GRi,$GRj */
12330
12331 static SEM_PC
12332 SEM_FN_NAME (frvbf,ftle) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12333 {
12334 #define FLD(f) abuf->fields.sfmt_ftne.f
12335   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12336   int UNUSED written = 0;
12337   IADDR UNUSED pc = abuf->addr;
12338   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12339
12340 if (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)))) {
12341 {
12342 ; /*clobber*/
12343 ; /*clobber*/
12344 ; /*clobber*/
12345 ; /*clobber*/
12346 if (NEBI (CPU (h_psr_esr), 0)) {
12347 {
12348 ; /*clobber*/
12349 ; /*clobber*/
12350 ; /*clobber*/
12351 ; /*clobber*/
12352 }
12353 }
12354 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12355 }
12356 }
12357
12358   abuf->written = written;
12359   return vpc;
12360 #undef FLD
12361 }
12362
12363 /* ftgt: ftgt$pack $FCCi_2,$GRi,$GRj */
12364
12365 static SEM_PC
12366 SEM_FN_NAME (frvbf,ftgt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12367 {
12368 #define FLD(f) abuf->fields.sfmt_ftne.f
12369   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12370   int UNUSED written = 0;
12371   IADDR UNUSED pc = abuf->addr;
12372   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12373
12374 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1))) {
12375 {
12376 ; /*clobber*/
12377 ; /*clobber*/
12378 ; /*clobber*/
12379 ; /*clobber*/
12380 if (NEBI (CPU (h_psr_esr), 0)) {
12381 {
12382 ; /*clobber*/
12383 ; /*clobber*/
12384 ; /*clobber*/
12385 ; /*clobber*/
12386 }
12387 }
12388 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12389 }
12390 }
12391
12392   abuf->written = written;
12393   return vpc;
12394 #undef FLD
12395 }
12396
12397 /* ftule: ftule$pack $FCCi_2,$GRi,$GRj */
12398
12399 static SEM_PC
12400 SEM_FN_NAME (frvbf,ftule) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12401 {
12402 #define FLD(f) abuf->fields.sfmt_ftne.f
12403   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12404   int UNUSED written = 0;
12405   IADDR UNUSED pc = abuf->addr;
12406   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12407
12408 if (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))))) {
12409 {
12410 ; /*clobber*/
12411 ; /*clobber*/
12412 ; /*clobber*/
12413 ; /*clobber*/
12414 if (NEBI (CPU (h_psr_esr), 0)) {
12415 {
12416 ; /*clobber*/
12417 ; /*clobber*/
12418 ; /*clobber*/
12419 ; /*clobber*/
12420 }
12421 }
12422 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12423 }
12424 }
12425
12426   abuf->written = written;
12427   return vpc;
12428 #undef FLD
12429 }
12430
12431 /* ftu: ftu$pack $FCCi_2,$GRi,$GRj */
12432
12433 static SEM_PC
12434 SEM_FN_NAME (frvbf,ftu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12435 {
12436 #define FLD(f) abuf->fields.sfmt_ftne.f
12437   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12438   int UNUSED written = 0;
12439   IADDR UNUSED pc = abuf->addr;
12440   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12441
12442 if (TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1))) {
12443 {
12444 ; /*clobber*/
12445 ; /*clobber*/
12446 ; /*clobber*/
12447 ; /*clobber*/
12448 if (NEBI (CPU (h_psr_esr), 0)) {
12449 {
12450 ; /*clobber*/
12451 ; /*clobber*/
12452 ; /*clobber*/
12453 ; /*clobber*/
12454 }
12455 }
12456 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12457 }
12458 }
12459
12460   abuf->written = written;
12461   return vpc;
12462 #undef FLD
12463 }
12464
12465 /* fto: fto$pack $FCCi_2,$GRi,$GRj */
12466
12467 static SEM_PC
12468 SEM_FN_NAME (frvbf,fto) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12469 {
12470 #define FLD(f) abuf->fields.sfmt_ftne.f
12471   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12472   int UNUSED written = 0;
12473   IADDR UNUSED pc = abuf->addr;
12474   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12475
12476 if (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))))) {
12477 {
12478 ; /*clobber*/
12479 ; /*clobber*/
12480 ; /*clobber*/
12481 ; /*clobber*/
12482 if (NEBI (CPU (h_psr_esr), 0)) {
12483 {
12484 ; /*clobber*/
12485 ; /*clobber*/
12486 ; /*clobber*/
12487 ; /*clobber*/
12488 }
12489 }
12490 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12491 }
12492 }
12493
12494   abuf->written = written;
12495   return vpc;
12496 #undef FLD
12497 }
12498
12499 /* tira: tira$pack $GRi,$s12 */
12500
12501 static SEM_PC
12502 SEM_FN_NAME (frvbf,tira) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12503 {
12504 #define FLD(f) abuf->fields.sfmt_ftine.f
12505   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12506   int UNUSED written = 0;
12507   IADDR UNUSED pc = abuf->addr;
12508   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12509
12510 {
12511 ; /*clobber*/
12512 ; /*clobber*/
12513 ; /*clobber*/
12514 ; /*clobber*/
12515 if (NEBI (CPU (h_psr_esr), 0)) {
12516 {
12517 ; /*clobber*/
12518 ; /*clobber*/
12519 ; /*clobber*/
12520 ; /*clobber*/
12521 }
12522 }
12523 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12524 }
12525
12526   abuf->written = written;
12527   return vpc;
12528 #undef FLD
12529 }
12530
12531 /* tino: tino$pack */
12532
12533 static SEM_PC
12534 SEM_FN_NAME (frvbf,tino) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12535 {
12536 #define FLD(f) abuf->fields.sfmt_empty.f
12537   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12538   int UNUSED written = 0;
12539   IADDR UNUSED pc = abuf->addr;
12540   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12541
12542 ((void) 0); /*nop*/
12543
12544   return vpc;
12545 #undef FLD
12546 }
12547
12548 /* tieq: tieq$pack $ICCi_2,$GRi,$s12 */
12549
12550 static SEM_PC
12551 SEM_FN_NAME (frvbf,tieq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12552 {
12553 #define FLD(f) abuf->fields.sfmt_tieq.f
12554   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12555   int UNUSED written = 0;
12556   IADDR UNUSED pc = abuf->addr;
12557   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12558
12559 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2))) {
12560 {
12561 ; /*clobber*/
12562 ; /*clobber*/
12563 ; /*clobber*/
12564 ; /*clobber*/
12565 if (NEBI (CPU (h_psr_esr), 0)) {
12566 {
12567 ; /*clobber*/
12568 ; /*clobber*/
12569 ; /*clobber*/
12570 ; /*clobber*/
12571 }
12572 }
12573 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12574 }
12575 }
12576
12577   abuf->written = written;
12578   return vpc;
12579 #undef FLD
12580 }
12581
12582 /* tine: tine$pack $ICCi_2,$GRi,$s12 */
12583
12584 static SEM_PC
12585 SEM_FN_NAME (frvbf,tine) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12586 {
12587 #define FLD(f) abuf->fields.sfmt_tieq.f
12588   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12589   int UNUSED written = 0;
12590   IADDR UNUSED pc = abuf->addr;
12591   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12592
12593 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)))) {
12594 {
12595 ; /*clobber*/
12596 ; /*clobber*/
12597 ; /*clobber*/
12598 ; /*clobber*/
12599 if (NEBI (CPU (h_psr_esr), 0)) {
12600 {
12601 ; /*clobber*/
12602 ; /*clobber*/
12603 ; /*clobber*/
12604 ; /*clobber*/
12605 }
12606 }
12607 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12608 }
12609 }
12610
12611   abuf->written = written;
12612   return vpc;
12613 #undef FLD
12614 }
12615
12616 /* tile: tile$pack $ICCi_2,$GRi,$s12 */
12617
12618 static SEM_PC
12619 SEM_FN_NAME (frvbf,tile) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12620 {
12621 #define FLD(f) abuf->fields.sfmt_tieq.f
12622   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12623   int UNUSED written = 0;
12624   IADDR UNUSED pc = abuf->addr;
12625   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12626
12627 if (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))))) {
12628 {
12629 ; /*clobber*/
12630 ; /*clobber*/
12631 ; /*clobber*/
12632 ; /*clobber*/
12633 if (NEBI (CPU (h_psr_esr), 0)) {
12634 {
12635 ; /*clobber*/
12636 ; /*clobber*/
12637 ; /*clobber*/
12638 ; /*clobber*/
12639 }
12640 }
12641 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12642 }
12643 }
12644
12645   abuf->written = written;
12646   return vpc;
12647 #undef FLD
12648 }
12649
12650 /* tigt: tigt$pack $ICCi_2,$GRi,$s12 */
12651
12652 static SEM_PC
12653 SEM_FN_NAME (frvbf,tigt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12654 {
12655 #define FLD(f) abuf->fields.sfmt_tieq.f
12656   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12657   int UNUSED written = 0;
12658   IADDR UNUSED pc = abuf->addr;
12659   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12660
12661 if (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)))))) {
12662 {
12663 ; /*clobber*/
12664 ; /*clobber*/
12665 ; /*clobber*/
12666 ; /*clobber*/
12667 if (NEBI (CPU (h_psr_esr), 0)) {
12668 {
12669 ; /*clobber*/
12670 ; /*clobber*/
12671 ; /*clobber*/
12672 ; /*clobber*/
12673 }
12674 }
12675 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12676 }
12677 }
12678
12679   abuf->written = written;
12680   return vpc;
12681 #undef FLD
12682 }
12683
12684 /* tilt: tilt$pack $ICCi_2,$GRi,$s12 */
12685
12686 static SEM_PC
12687 SEM_FN_NAME (frvbf,tilt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12688 {
12689 #define FLD(f) abuf->fields.sfmt_tieq.f
12690   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12691   int UNUSED written = 0;
12692   IADDR UNUSED pc = abuf->addr;
12693   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12694
12695 if (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)))) {
12696 {
12697 ; /*clobber*/
12698 ; /*clobber*/
12699 ; /*clobber*/
12700 ; /*clobber*/
12701 if (NEBI (CPU (h_psr_esr), 0)) {
12702 {
12703 ; /*clobber*/
12704 ; /*clobber*/
12705 ; /*clobber*/
12706 ; /*clobber*/
12707 }
12708 }
12709 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12710 }
12711 }
12712
12713   abuf->written = written;
12714   return vpc;
12715 #undef FLD
12716 }
12717
12718 /* tige: tige$pack $ICCi_2,$GRi,$s12 */
12719
12720 static SEM_PC
12721 SEM_FN_NAME (frvbf,tige) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12722 {
12723 #define FLD(f) abuf->fields.sfmt_tieq.f
12724   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12725   int UNUSED written = 0;
12726   IADDR UNUSED pc = abuf->addr;
12727   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12728
12729 if (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))))) {
12730 {
12731 ; /*clobber*/
12732 ; /*clobber*/
12733 ; /*clobber*/
12734 ; /*clobber*/
12735 if (NEBI (CPU (h_psr_esr), 0)) {
12736 {
12737 ; /*clobber*/
12738 ; /*clobber*/
12739 ; /*clobber*/
12740 ; /*clobber*/
12741 }
12742 }
12743 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12744 }
12745 }
12746
12747   abuf->written = written;
12748   return vpc;
12749 #undef FLD
12750 }
12751
12752 /* tils: tils$pack $ICCi_2,$GRi,$s12 */
12753
12754 static SEM_PC
12755 SEM_FN_NAME (frvbf,tils) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12756 {
12757 #define FLD(f) abuf->fields.sfmt_tieq.f
12758   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12759   int UNUSED written = 0;
12760   IADDR UNUSED pc = abuf->addr;
12761   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12762
12763 if (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)))) {
12764 {
12765 ; /*clobber*/
12766 ; /*clobber*/
12767 ; /*clobber*/
12768 ; /*clobber*/
12769 if (NEBI (CPU (h_psr_esr), 0)) {
12770 {
12771 ; /*clobber*/
12772 ; /*clobber*/
12773 ; /*clobber*/
12774 ; /*clobber*/
12775 }
12776 }
12777 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12778 }
12779 }
12780
12781   abuf->written = written;
12782   return vpc;
12783 #undef FLD
12784 }
12785
12786 /* tihi: tihi$pack $ICCi_2,$GRi,$s12 */
12787
12788 static SEM_PC
12789 SEM_FN_NAME (frvbf,tihi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12790 {
12791 #define FLD(f) abuf->fields.sfmt_tieq.f
12792   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12793   int UNUSED written = 0;
12794   IADDR UNUSED pc = abuf->addr;
12795   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12796
12797 if (NOTBI (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2))))) {
12798 {
12799 ; /*clobber*/
12800 ; /*clobber*/
12801 ; /*clobber*/
12802 ; /*clobber*/
12803 if (NEBI (CPU (h_psr_esr), 0)) {
12804 {
12805 ; /*clobber*/
12806 ; /*clobber*/
12807 ; /*clobber*/
12808 ; /*clobber*/
12809 }
12810 }
12811 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12812 }
12813 }
12814
12815   abuf->written = written;
12816   return vpc;
12817 #undef FLD
12818 }
12819
12820 /* tic: tic$pack $ICCi_2,$GRi,$s12 */
12821
12822 static SEM_PC
12823 SEM_FN_NAME (frvbf,tic) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12824 {
12825 #define FLD(f) abuf->fields.sfmt_tieq.f
12826   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12827   int UNUSED written = 0;
12828   IADDR UNUSED pc = abuf->addr;
12829   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12830
12831 if (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1))) {
12832 {
12833 ; /*clobber*/
12834 ; /*clobber*/
12835 ; /*clobber*/
12836 ; /*clobber*/
12837 if (NEBI (CPU (h_psr_esr), 0)) {
12838 {
12839 ; /*clobber*/
12840 ; /*clobber*/
12841 ; /*clobber*/
12842 ; /*clobber*/
12843 }
12844 }
12845 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12846 }
12847 }
12848
12849   abuf->written = written;
12850   return vpc;
12851 #undef FLD
12852 }
12853
12854 /* tinc: tinc$pack $ICCi_2,$GRi,$s12 */
12855
12856 static SEM_PC
12857 SEM_FN_NAME (frvbf,tinc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12858 {
12859 #define FLD(f) abuf->fields.sfmt_tieq.f
12860   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12861   int UNUSED written = 0;
12862   IADDR UNUSED pc = abuf->addr;
12863   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12864
12865 if (NOTBI (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)))) {
12866 {
12867 ; /*clobber*/
12868 ; /*clobber*/
12869 ; /*clobber*/
12870 ; /*clobber*/
12871 if (NEBI (CPU (h_psr_esr), 0)) {
12872 {
12873 ; /*clobber*/
12874 ; /*clobber*/
12875 ; /*clobber*/
12876 ; /*clobber*/
12877 }
12878 }
12879 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12880 }
12881 }
12882
12883   abuf->written = written;
12884   return vpc;
12885 #undef FLD
12886 }
12887
12888 /* tin: tin$pack $ICCi_2,$GRi,$s12 */
12889
12890 static SEM_PC
12891 SEM_FN_NAME (frvbf,tin) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12892 {
12893 #define FLD(f) abuf->fields.sfmt_tieq.f
12894   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12895   int UNUSED written = 0;
12896   IADDR UNUSED pc = abuf->addr;
12897   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12898
12899 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3))) {
12900 {
12901 ; /*clobber*/
12902 ; /*clobber*/
12903 ; /*clobber*/
12904 ; /*clobber*/
12905 if (NEBI (CPU (h_psr_esr), 0)) {
12906 {
12907 ; /*clobber*/
12908 ; /*clobber*/
12909 ; /*clobber*/
12910 ; /*clobber*/
12911 }
12912 }
12913 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12914 }
12915 }
12916
12917   abuf->written = written;
12918   return vpc;
12919 #undef FLD
12920 }
12921
12922 /* tip: tip$pack $ICCi_2,$GRi,$s12 */
12923
12924 static SEM_PC
12925 SEM_FN_NAME (frvbf,tip) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12926 {
12927 #define FLD(f) abuf->fields.sfmt_tieq.f
12928   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12929   int UNUSED written = 0;
12930   IADDR UNUSED pc = abuf->addr;
12931   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12932
12933 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3)))) {
12934 {
12935 ; /*clobber*/
12936 ; /*clobber*/
12937 ; /*clobber*/
12938 ; /*clobber*/
12939 if (NEBI (CPU (h_psr_esr), 0)) {
12940 {
12941 ; /*clobber*/
12942 ; /*clobber*/
12943 ; /*clobber*/
12944 ; /*clobber*/
12945 }
12946 }
12947 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12948 }
12949 }
12950
12951   abuf->written = written;
12952   return vpc;
12953 #undef FLD
12954 }
12955
12956 /* tiv: tiv$pack $ICCi_2,$GRi,$s12 */
12957
12958 static SEM_PC
12959 SEM_FN_NAME (frvbf,tiv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12960 {
12961 #define FLD(f) abuf->fields.sfmt_tieq.f
12962   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12963   int UNUSED written = 0;
12964   IADDR UNUSED pc = abuf->addr;
12965   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12966
12967 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1))) {
12968 {
12969 ; /*clobber*/
12970 ; /*clobber*/
12971 ; /*clobber*/
12972 ; /*clobber*/
12973 if (NEBI (CPU (h_psr_esr), 0)) {
12974 {
12975 ; /*clobber*/
12976 ; /*clobber*/
12977 ; /*clobber*/
12978 ; /*clobber*/
12979 }
12980 }
12981 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12982 }
12983 }
12984
12985   abuf->written = written;
12986   return vpc;
12987 #undef FLD
12988 }
12989
12990 /* tinv: tinv$pack $ICCi_2,$GRi,$s12 */
12991
12992 static SEM_PC
12993 SEM_FN_NAME (frvbf,tinv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12994 {
12995 #define FLD(f) abuf->fields.sfmt_tieq.f
12996   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12997   int UNUSED written = 0;
12998   IADDR UNUSED pc = abuf->addr;
12999   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13000
13001 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1)))) {
13002 {
13003 ; /*clobber*/
13004 ; /*clobber*/
13005 ; /*clobber*/
13006 ; /*clobber*/
13007 if (NEBI (CPU (h_psr_esr), 0)) {
13008 {
13009 ; /*clobber*/
13010 ; /*clobber*/
13011 ; /*clobber*/
13012 ; /*clobber*/
13013 }
13014 }
13015 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13016 }
13017 }
13018
13019   abuf->written = written;
13020   return vpc;
13021 #undef FLD
13022 }
13023
13024 /* ftira: ftira$pack $GRi,$s12 */
13025
13026 static SEM_PC
13027 SEM_FN_NAME (frvbf,ftira) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13028 {
13029 #define FLD(f) abuf->fields.sfmt_ftine.f
13030   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13031   int UNUSED written = 0;
13032   IADDR UNUSED pc = abuf->addr;
13033   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13034
13035 {
13036 ; /*clobber*/
13037 ; /*clobber*/
13038 ; /*clobber*/
13039 ; /*clobber*/
13040 if (NEBI (CPU (h_psr_esr), 0)) {
13041 {
13042 ; /*clobber*/
13043 ; /*clobber*/
13044 ; /*clobber*/
13045 ; /*clobber*/
13046 }
13047 }
13048 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13049 }
13050
13051   abuf->written = written;
13052   return vpc;
13053 #undef FLD
13054 }
13055
13056 /* ftino: ftino$pack */
13057
13058 static SEM_PC
13059 SEM_FN_NAME (frvbf,ftino) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13060 {
13061 #define FLD(f) abuf->fields.sfmt_empty.f
13062   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13063   int UNUSED written = 0;
13064   IADDR UNUSED pc = abuf->addr;
13065   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13066
13067 ((void) 0); /*nop*/
13068
13069   return vpc;
13070 #undef FLD
13071 }
13072
13073 /* ftine: ftine$pack $FCCi_2,$GRi,$s12 */
13074
13075 static SEM_PC
13076 SEM_FN_NAME (frvbf,ftine) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13077 {
13078 #define FLD(f) abuf->fields.sfmt_ftine.f
13079   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13080   int UNUSED written = 0;
13081   IADDR UNUSED pc = abuf->addr;
13082   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13083
13084 if (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))))) {
13085 {
13086 ; /*clobber*/
13087 ; /*clobber*/
13088 ; /*clobber*/
13089 ; /*clobber*/
13090 if (NEBI (CPU (h_psr_esr), 0)) {
13091 {
13092 ; /*clobber*/
13093 ; /*clobber*/
13094 ; /*clobber*/
13095 ; /*clobber*/
13096 }
13097 }
13098 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13099 }
13100 }
13101
13102   abuf->written = written;
13103   return vpc;
13104 #undef FLD
13105 }
13106
13107 /* ftieq: ftieq$pack $FCCi_2,$GRi,$s12 */
13108
13109 static SEM_PC
13110 SEM_FN_NAME (frvbf,ftieq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13111 {
13112 #define FLD(f) abuf->fields.sfmt_ftine.f
13113   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13114   int UNUSED written = 0;
13115   IADDR UNUSED pc = abuf->addr;
13116   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13117
13118 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3))) {
13119 {
13120 ; /*clobber*/
13121 ; /*clobber*/
13122 ; /*clobber*/
13123 ; /*clobber*/
13124 if (NEBI (CPU (h_psr_esr), 0)) {
13125 {
13126 ; /*clobber*/
13127 ; /*clobber*/
13128 ; /*clobber*/
13129 ; /*clobber*/
13130 }
13131 }
13132 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13133 }
13134 }
13135
13136   abuf->written = written;
13137   return vpc;
13138 #undef FLD
13139 }
13140
13141 /* ftilg: ftilg$pack $FCCi_2,$GRi,$s12 */
13142
13143 static SEM_PC
13144 SEM_FN_NAME (frvbf,ftilg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13145 {
13146 #define FLD(f) abuf->fields.sfmt_ftine.f
13147   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13148   int UNUSED written = 0;
13149   IADDR UNUSED pc = abuf->addr;
13150   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13151
13152 if (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)))) {
13153 {
13154 ; /*clobber*/
13155 ; /*clobber*/
13156 ; /*clobber*/
13157 ; /*clobber*/
13158 if (NEBI (CPU (h_psr_esr), 0)) {
13159 {
13160 ; /*clobber*/
13161 ; /*clobber*/
13162 ; /*clobber*/
13163 ; /*clobber*/
13164 }
13165 }
13166 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13167 }
13168 }
13169
13170   abuf->written = written;
13171   return vpc;
13172 #undef FLD
13173 }
13174
13175 /* ftiue: ftiue$pack $FCCi_2,$GRi,$s12 */
13176
13177 static SEM_PC
13178 SEM_FN_NAME (frvbf,ftiue) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13179 {
13180 #define FLD(f) abuf->fields.sfmt_ftine.f
13181   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13182   int UNUSED written = 0;
13183   IADDR UNUSED pc = abuf->addr;
13184   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13185
13186 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
13187 {
13188 ; /*clobber*/
13189 ; /*clobber*/
13190 ; /*clobber*/
13191 ; /*clobber*/
13192 if (NEBI (CPU (h_psr_esr), 0)) {
13193 {
13194 ; /*clobber*/
13195 ; /*clobber*/
13196 ; /*clobber*/
13197 ; /*clobber*/
13198 }
13199 }
13200 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13201 }
13202 }
13203
13204   abuf->written = written;
13205   return vpc;
13206 #undef FLD
13207 }
13208
13209 /* ftiul: ftiul$pack $FCCi_2,$GRi,$s12 */
13210
13211 static SEM_PC
13212 SEM_FN_NAME (frvbf,ftiul) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13213 {
13214 #define FLD(f) abuf->fields.sfmt_ftine.f
13215   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13216   int UNUSED written = 0;
13217   IADDR UNUSED pc = abuf->addr;
13218   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13219
13220 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
13221 {
13222 ; /*clobber*/
13223 ; /*clobber*/
13224 ; /*clobber*/
13225 ; /*clobber*/
13226 if (NEBI (CPU (h_psr_esr), 0)) {
13227 {
13228 ; /*clobber*/
13229 ; /*clobber*/
13230 ; /*clobber*/
13231 ; /*clobber*/
13232 }
13233 }
13234 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13235 }
13236 }
13237
13238   abuf->written = written;
13239   return vpc;
13240 #undef FLD
13241 }
13242
13243 /* ftige: ftige$pack $FCCi_2,$GRi,$s12 */
13244
13245 static SEM_PC
13246 SEM_FN_NAME (frvbf,ftige) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13247 {
13248 #define FLD(f) abuf->fields.sfmt_ftine.f
13249   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13250   int UNUSED written = 0;
13251   IADDR UNUSED pc = abuf->addr;
13252   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13253
13254 if (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)))) {
13255 {
13256 ; /*clobber*/
13257 ; /*clobber*/
13258 ; /*clobber*/
13259 ; /*clobber*/
13260 if (NEBI (CPU (h_psr_esr), 0)) {
13261 {
13262 ; /*clobber*/
13263 ; /*clobber*/
13264 ; /*clobber*/
13265 ; /*clobber*/
13266 }
13267 }
13268 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13269 }
13270 }
13271
13272   abuf->written = written;
13273   return vpc;
13274 #undef FLD
13275 }
13276
13277 /* ftilt: ftilt$pack $FCCi_2,$GRi,$s12 */
13278
13279 static SEM_PC
13280 SEM_FN_NAME (frvbf,ftilt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13281 {
13282 #define FLD(f) abuf->fields.sfmt_ftine.f
13283   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13284   int UNUSED written = 0;
13285   IADDR UNUSED pc = abuf->addr;
13286   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13287
13288 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2))) {
13289 {
13290 ; /*clobber*/
13291 ; /*clobber*/
13292 ; /*clobber*/
13293 ; /*clobber*/
13294 if (NEBI (CPU (h_psr_esr), 0)) {
13295 {
13296 ; /*clobber*/
13297 ; /*clobber*/
13298 ; /*clobber*/
13299 ; /*clobber*/
13300 }
13301 }
13302 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13303 }
13304 }
13305
13306   abuf->written = written;
13307   return vpc;
13308 #undef FLD
13309 }
13310
13311 /* ftiuge: ftiuge$pack $FCCi_2,$GRi,$s12 */
13312
13313 static SEM_PC
13314 SEM_FN_NAME (frvbf,ftiuge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13315 {
13316 #define FLD(f) abuf->fields.sfmt_ftine.f
13317   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13318   int UNUSED written = 0;
13319   IADDR UNUSED pc = abuf->addr;
13320   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13321
13322 if (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))))) {
13323 {
13324 ; /*clobber*/
13325 ; /*clobber*/
13326 ; /*clobber*/
13327 ; /*clobber*/
13328 if (NEBI (CPU (h_psr_esr), 0)) {
13329 {
13330 ; /*clobber*/
13331 ; /*clobber*/
13332 ; /*clobber*/
13333 ; /*clobber*/
13334 }
13335 }
13336 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13337 }
13338 }
13339
13340   abuf->written = written;
13341   return vpc;
13342 #undef FLD
13343 }
13344
13345 /* ftiug: ftiug$pack $FCCi_2,$GRi,$s12 */
13346
13347 static SEM_PC
13348 SEM_FN_NAME (frvbf,ftiug) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13349 {
13350 #define FLD(f) abuf->fields.sfmt_ftine.f
13351   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13352   int UNUSED written = 0;
13353   IADDR UNUSED pc = abuf->addr;
13354   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13355
13356 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
13357 {
13358 ; /*clobber*/
13359 ; /*clobber*/
13360 ; /*clobber*/
13361 ; /*clobber*/
13362 if (NEBI (CPU (h_psr_esr), 0)) {
13363 {
13364 ; /*clobber*/
13365 ; /*clobber*/
13366 ; /*clobber*/
13367 ; /*clobber*/
13368 }
13369 }
13370 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13371 }
13372 }
13373
13374   abuf->written = written;
13375   return vpc;
13376 #undef FLD
13377 }
13378
13379 /* ftile: ftile$pack $FCCi_2,$GRi,$s12 */
13380
13381 static SEM_PC
13382 SEM_FN_NAME (frvbf,ftile) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13383 {
13384 #define FLD(f) abuf->fields.sfmt_ftine.f
13385   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13386   int UNUSED written = 0;
13387   IADDR UNUSED pc = abuf->addr;
13388   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13389
13390 if (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)))) {
13391 {
13392 ; /*clobber*/
13393 ; /*clobber*/
13394 ; /*clobber*/
13395 ; /*clobber*/
13396 if (NEBI (CPU (h_psr_esr), 0)) {
13397 {
13398 ; /*clobber*/
13399 ; /*clobber*/
13400 ; /*clobber*/
13401 ; /*clobber*/
13402 }
13403 }
13404 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13405 }
13406 }
13407
13408   abuf->written = written;
13409   return vpc;
13410 #undef FLD
13411 }
13412
13413 /* ftigt: ftigt$pack $FCCi_2,$GRi,$s12 */
13414
13415 static SEM_PC
13416 SEM_FN_NAME (frvbf,ftigt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13417 {
13418 #define FLD(f) abuf->fields.sfmt_ftine.f
13419   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13420   int UNUSED written = 0;
13421   IADDR UNUSED pc = abuf->addr;
13422   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13423
13424 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1))) {
13425 {
13426 ; /*clobber*/
13427 ; /*clobber*/
13428 ; /*clobber*/
13429 ; /*clobber*/
13430 if (NEBI (CPU (h_psr_esr), 0)) {
13431 {
13432 ; /*clobber*/
13433 ; /*clobber*/
13434 ; /*clobber*/
13435 ; /*clobber*/
13436 }
13437 }
13438 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13439 }
13440 }
13441
13442   abuf->written = written;
13443   return vpc;
13444 #undef FLD
13445 }
13446
13447 /* ftiule: ftiule$pack $FCCi_2,$GRi,$s12 */
13448
13449 static SEM_PC
13450 SEM_FN_NAME (frvbf,ftiule) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13451 {
13452 #define FLD(f) abuf->fields.sfmt_ftine.f
13453   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13454   int UNUSED written = 0;
13455   IADDR UNUSED pc = abuf->addr;
13456   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13457
13458 if (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))))) {
13459 {
13460 ; /*clobber*/
13461 ; /*clobber*/
13462 ; /*clobber*/
13463 ; /*clobber*/
13464 if (NEBI (CPU (h_psr_esr), 0)) {
13465 {
13466 ; /*clobber*/
13467 ; /*clobber*/
13468 ; /*clobber*/
13469 ; /*clobber*/
13470 }
13471 }
13472 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13473 }
13474 }
13475
13476   abuf->written = written;
13477   return vpc;
13478 #undef FLD
13479 }
13480
13481 /* ftiu: ftiu$pack $FCCi_2,$GRi,$s12 */
13482
13483 static SEM_PC
13484 SEM_FN_NAME (frvbf,ftiu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13485 {
13486 #define FLD(f) abuf->fields.sfmt_ftine.f
13487   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13488   int UNUSED written = 0;
13489   IADDR UNUSED pc = abuf->addr;
13490   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13491
13492 if (TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1))) {
13493 {
13494 ; /*clobber*/
13495 ; /*clobber*/
13496 ; /*clobber*/
13497 ; /*clobber*/
13498 if (NEBI (CPU (h_psr_esr), 0)) {
13499 {
13500 ; /*clobber*/
13501 ; /*clobber*/
13502 ; /*clobber*/
13503 ; /*clobber*/
13504 }
13505 }
13506 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13507 }
13508 }
13509
13510   abuf->written = written;
13511   return vpc;
13512 #undef FLD
13513 }
13514
13515 /* ftio: ftio$pack $FCCi_2,$GRi,$s12 */
13516
13517 static SEM_PC
13518 SEM_FN_NAME (frvbf,ftio) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13519 {
13520 #define FLD(f) abuf->fields.sfmt_ftine.f
13521   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13522   int UNUSED written = 0;
13523   IADDR UNUSED pc = abuf->addr;
13524   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13525
13526 if (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))))) {
13527 {
13528 ; /*clobber*/
13529 ; /*clobber*/
13530 ; /*clobber*/
13531 ; /*clobber*/
13532 if (NEBI (CPU (h_psr_esr), 0)) {
13533 {
13534 ; /*clobber*/
13535 ; /*clobber*/
13536 ; /*clobber*/
13537 ; /*clobber*/
13538 }
13539 }
13540 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13541 }
13542 }
13543
13544   abuf->written = written;
13545   return vpc;
13546 #undef FLD
13547 }
13548
13549 /* break: break$pack */
13550
13551 static SEM_PC
13552 SEM_FN_NAME (frvbf,break) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13553 {
13554 #define FLD(f) abuf->fields.sfmt_break.f
13555   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13556   int UNUSED written = 0;
13557   IADDR UNUSED pc = abuf->addr;
13558   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13559
13560 {
13561 ; /*clobber*/
13562 ; /*clobber*/
13563 ; /*clobber*/
13564 ; /*clobber*/
13565 ; /*clobber*/
13566 ; /*clobber*/
13567 frv_break (current_cpu);
13568 }
13569
13570   return vpc;
13571 #undef FLD
13572 }
13573
13574 /* mtrap: mtrap$pack */
13575
13576 static SEM_PC
13577 SEM_FN_NAME (frvbf,mtrap) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13578 {
13579 #define FLD(f) abuf->fields.sfmt_empty.f
13580   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13581   int UNUSED written = 0;
13582   IADDR UNUSED pc = abuf->addr;
13583   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13584
13585 frv_mtrap (current_cpu);
13586
13587   return vpc;
13588 #undef FLD
13589 }
13590
13591 /* andcr: andcr$pack $CRi,$CRj,$CRk */
13592
13593 static SEM_PC
13594 SEM_FN_NAME (frvbf,andcr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13595 {
13596 #define FLD(f) abuf->fields.sfmt_andcr.f
13597   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13598   int UNUSED written = 0;
13599   IADDR UNUSED pc = abuf->addr;
13600   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13601
13602   {
13603     UQI opval = frvbf_cr_logic (current_cpu, 0, CPU (h_cccr[FLD (f_CRi)]), CPU (h_cccr[FLD (f_CRj)]));
13604     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRk)]), opval);
13605     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13606   }
13607
13608   return vpc;
13609 #undef FLD
13610 }
13611
13612 /* orcr: orcr$pack $CRi,$CRj,$CRk */
13613
13614 static SEM_PC
13615 SEM_FN_NAME (frvbf,orcr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13616 {
13617 #define FLD(f) abuf->fields.sfmt_andcr.f
13618   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13619   int UNUSED written = 0;
13620   IADDR UNUSED pc = abuf->addr;
13621   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13622
13623   {
13624     UQI opval = frvbf_cr_logic (current_cpu, 1, CPU (h_cccr[FLD (f_CRi)]), CPU (h_cccr[FLD (f_CRj)]));
13625     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRk)]), opval);
13626     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13627   }
13628
13629   return vpc;
13630 #undef FLD
13631 }
13632
13633 /* xorcr: xorcr$pack $CRi,$CRj,$CRk */
13634
13635 static SEM_PC
13636 SEM_FN_NAME (frvbf,xorcr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13637 {
13638 #define FLD(f) abuf->fields.sfmt_andcr.f
13639   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13640   int UNUSED written = 0;
13641   IADDR UNUSED pc = abuf->addr;
13642   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13643
13644   {
13645     UQI opval = frvbf_cr_logic (current_cpu, 2, CPU (h_cccr[FLD (f_CRi)]), CPU (h_cccr[FLD (f_CRj)]));
13646     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRk)]), opval);
13647     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13648   }
13649
13650   return vpc;
13651 #undef FLD
13652 }
13653
13654 /* nandcr: nandcr$pack $CRi,$CRj,$CRk */
13655
13656 static SEM_PC
13657 SEM_FN_NAME (frvbf,nandcr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13658 {
13659 #define FLD(f) abuf->fields.sfmt_andcr.f
13660   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13661   int UNUSED written = 0;
13662   IADDR UNUSED pc = abuf->addr;
13663   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13664
13665   {
13666     UQI opval = frvbf_cr_logic (current_cpu, 3, CPU (h_cccr[FLD (f_CRi)]), CPU (h_cccr[FLD (f_CRj)]));
13667     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRk)]), opval);
13668     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13669   }
13670
13671   return vpc;
13672 #undef FLD
13673 }
13674
13675 /* norcr: norcr$pack $CRi,$CRj,$CRk */
13676
13677 static SEM_PC
13678 SEM_FN_NAME (frvbf,norcr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13679 {
13680 #define FLD(f) abuf->fields.sfmt_andcr.f
13681   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13682   int UNUSED written = 0;
13683   IADDR UNUSED pc = abuf->addr;
13684   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13685
13686   {
13687     UQI opval = frvbf_cr_logic (current_cpu, 4, CPU (h_cccr[FLD (f_CRi)]), CPU (h_cccr[FLD (f_CRj)]));
13688     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRk)]), opval);
13689     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13690   }
13691
13692   return vpc;
13693 #undef FLD
13694 }
13695
13696 /* andncr: andncr$pack $CRi,$CRj,$CRk */
13697
13698 static SEM_PC
13699 SEM_FN_NAME (frvbf,andncr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13700 {
13701 #define FLD(f) abuf->fields.sfmt_andcr.f
13702   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13703   int UNUSED written = 0;
13704   IADDR UNUSED pc = abuf->addr;
13705   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13706
13707   {
13708     UQI opval = frvbf_cr_logic (current_cpu, 5, CPU (h_cccr[FLD (f_CRi)]), CPU (h_cccr[FLD (f_CRj)]));
13709     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRk)]), opval);
13710     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13711   }
13712
13713   return vpc;
13714 #undef FLD
13715 }
13716
13717 /* orncr: orncr$pack $CRi,$CRj,$CRk */
13718
13719 static SEM_PC
13720 SEM_FN_NAME (frvbf,orncr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13721 {
13722 #define FLD(f) abuf->fields.sfmt_andcr.f
13723   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13724   int UNUSED written = 0;
13725   IADDR UNUSED pc = abuf->addr;
13726   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13727
13728   {
13729     UQI opval = frvbf_cr_logic (current_cpu, 6, CPU (h_cccr[FLD (f_CRi)]), CPU (h_cccr[FLD (f_CRj)]));
13730     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRk)]), opval);
13731     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13732   }
13733
13734   return vpc;
13735 #undef FLD
13736 }
13737
13738 /* nandncr: nandncr$pack $CRi,$CRj,$CRk */
13739
13740 static SEM_PC
13741 SEM_FN_NAME (frvbf,nandncr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13742 {
13743 #define FLD(f) abuf->fields.sfmt_andcr.f
13744   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13745   int UNUSED written = 0;
13746   IADDR UNUSED pc = abuf->addr;
13747   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13748
13749   {
13750     UQI opval = frvbf_cr_logic (current_cpu, 7, CPU (h_cccr[FLD (f_CRi)]), CPU (h_cccr[FLD (f_CRj)]));
13751     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRk)]), opval);
13752     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13753   }
13754
13755   return vpc;
13756 #undef FLD
13757 }
13758
13759 /* norncr: norncr$pack $CRi,$CRj,$CRk */
13760
13761 static SEM_PC
13762 SEM_FN_NAME (frvbf,norncr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13763 {
13764 #define FLD(f) abuf->fields.sfmt_andcr.f
13765   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13766   int UNUSED written = 0;
13767   IADDR UNUSED pc = abuf->addr;
13768   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13769
13770   {
13771     UQI opval = frvbf_cr_logic (current_cpu, 8, CPU (h_cccr[FLD (f_CRi)]), CPU (h_cccr[FLD (f_CRj)]));
13772     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRk)]), opval);
13773     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13774   }
13775
13776   return vpc;
13777 #undef FLD
13778 }
13779
13780 /* notcr: notcr$pack $CRj,$CRk */
13781
13782 static SEM_PC
13783 SEM_FN_NAME (frvbf,notcr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13784 {
13785 #define FLD(f) abuf->fields.sfmt_andcr.f
13786   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13787   int UNUSED written = 0;
13788   IADDR UNUSED pc = abuf->addr;
13789   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13790
13791   {
13792     UQI opval = XORQI (CPU (h_cccr[FLD (f_CRj)]), 1);
13793     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRk)]), opval);
13794     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13795   }
13796
13797   return vpc;
13798 #undef FLD
13799 }
13800
13801 /* ckra: ckra$pack $CRj_int */
13802
13803 static SEM_PC
13804 SEM_FN_NAME (frvbf,ckra) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13805 {
13806 #define FLD(f) abuf->fields.sfmt_cckeq.f
13807   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13808   int UNUSED written = 0;
13809   IADDR UNUSED pc = abuf->addr;
13810   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13811
13812   {
13813     UQI opval = 3;
13814     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
13815     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13816   }
13817
13818   return vpc;
13819 #undef FLD
13820 }
13821
13822 /* ckno: ckno$pack $CRj_int */
13823
13824 static SEM_PC
13825 SEM_FN_NAME (frvbf,ckno) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13826 {
13827 #define FLD(f) abuf->fields.sfmt_cckeq.f
13828   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13829   int UNUSED written = 0;
13830   IADDR UNUSED pc = abuf->addr;
13831   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13832
13833   {
13834     UQI opval = 2;
13835     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
13836     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13837   }
13838
13839   return vpc;
13840 #undef FLD
13841 }
13842
13843 /* ckeq: ckeq$pack $ICCi_3,$CRj_int */
13844
13845 static SEM_PC
13846 SEM_FN_NAME (frvbf,ckeq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13847 {
13848 #define FLD(f) abuf->fields.sfmt_cckeq.f
13849   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13850   int UNUSED written = 0;
13851   IADDR UNUSED pc = abuf->addr;
13852   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13853
13854 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 4), 2))) {
13855   {
13856     UQI opval = 3;
13857     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
13858     written |= (1 << 1);
13859     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13860   }
13861 } else {
13862   {
13863     UQI opval = 2;
13864     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
13865     written |= (1 << 1);
13866     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13867   }
13868 }
13869
13870   abuf->written = written;
13871   return vpc;
13872 #undef FLD
13873 }
13874
13875 /* ckne: ckne$pack $ICCi_3,$CRj_int */
13876
13877 static SEM_PC
13878 SEM_FN_NAME (frvbf,ckne) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13879 {
13880 #define FLD(f) abuf->fields.sfmt_cckeq.f
13881   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13882   int UNUSED written = 0;
13883   IADDR UNUSED pc = abuf->addr;
13884   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13885
13886 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 4), 2)))) {
13887   {
13888     UQI opval = 3;
13889     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
13890     written |= (1 << 1);
13891     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13892   }
13893 } else {
13894   {
13895     UQI opval = 2;
13896     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
13897     written |= (1 << 1);
13898     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13899   }
13900 }
13901
13902   abuf->written = written;
13903   return vpc;
13904 #undef FLD
13905 }
13906
13907 /* ckle: ckle$pack $ICCi_3,$CRj_int */
13908
13909 static SEM_PC
13910 SEM_FN_NAME (frvbf,ckle) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13911 {
13912 #define FLD(f) abuf->fields.sfmt_cckeq.f
13913   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13914   int UNUSED written = 0;
13915   IADDR UNUSED pc = abuf->addr;
13916   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13917
13918 if (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))))) {
13919   {
13920     UQI opval = 3;
13921     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
13922     written |= (1 << 1);
13923     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13924   }
13925 } else {
13926   {
13927     UQI opval = 2;
13928     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
13929     written |= (1 << 1);
13930     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13931   }
13932 }
13933
13934   abuf->written = written;
13935   return vpc;
13936 #undef FLD
13937 }
13938
13939 /* ckgt: ckgt$pack $ICCi_3,$CRj_int */
13940
13941 static SEM_PC
13942 SEM_FN_NAME (frvbf,ckgt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13943 {
13944 #define FLD(f) abuf->fields.sfmt_cckeq.f
13945   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13946   int UNUSED written = 0;
13947   IADDR UNUSED pc = abuf->addr;
13948   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13949
13950 if (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)))))) {
13951   {
13952     UQI opval = 3;
13953     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
13954     written |= (1 << 1);
13955     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13956   }
13957 } else {
13958   {
13959     UQI opval = 2;
13960     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
13961     written |= (1 << 1);
13962     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13963   }
13964 }
13965
13966   abuf->written = written;
13967   return vpc;
13968 #undef FLD
13969 }
13970
13971 /* cklt: cklt$pack $ICCi_3,$CRj_int */
13972
13973 static SEM_PC
13974 SEM_FN_NAME (frvbf,cklt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13975 {
13976 #define FLD(f) abuf->fields.sfmt_cckeq.f
13977   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13978   int UNUSED written = 0;
13979   IADDR UNUSED pc = abuf->addr;
13980   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13981
13982 if (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)))) {
13983   {
13984     UQI opval = 3;
13985     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
13986     written |= (1 << 1);
13987     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13988   }
13989 } else {
13990   {
13991     UQI opval = 2;
13992     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
13993     written |= (1 << 1);
13994     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13995   }
13996 }
13997
13998   abuf->written = written;
13999   return vpc;
14000 #undef FLD
14001 }
14002
14003 /* ckge: ckge$pack $ICCi_3,$CRj_int */
14004
14005 static SEM_PC
14006 SEM_FN_NAME (frvbf,ckge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14007 {
14008 #define FLD(f) abuf->fields.sfmt_cckeq.f
14009   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14010   int UNUSED written = 0;
14011   IADDR UNUSED pc = abuf->addr;
14012   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14013
14014 if (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))))) {
14015   {
14016     UQI opval = 3;
14017     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14018     written |= (1 << 1);
14019     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14020   }
14021 } else {
14022   {
14023     UQI opval = 2;
14024     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14025     written |= (1 << 1);
14026     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14027   }
14028 }
14029
14030   abuf->written = written;
14031   return vpc;
14032 #undef FLD
14033 }
14034
14035 /* ckls: ckls$pack $ICCi_3,$CRj_int */
14036
14037 static SEM_PC
14038 SEM_FN_NAME (frvbf,ckls) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14039 {
14040 #define FLD(f) abuf->fields.sfmt_cckeq.f
14041   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14042   int UNUSED written = 0;
14043   IADDR UNUSED pc = abuf->addr;
14044   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14045
14046 if (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 4), 2)))) {
14047   {
14048     UQI opval = 3;
14049     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14050     written |= (1 << 1);
14051     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14052   }
14053 } else {
14054   {
14055     UQI opval = 2;
14056     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14057     written |= (1 << 1);
14058     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14059   }
14060 }
14061
14062   abuf->written = written;
14063   return vpc;
14064 #undef FLD
14065 }
14066
14067 /* ckhi: ckhi$pack $ICCi_3,$CRj_int */
14068
14069 static SEM_PC
14070 SEM_FN_NAME (frvbf,ckhi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14071 {
14072 #define FLD(f) abuf->fields.sfmt_cckeq.f
14073   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14074   int UNUSED written = 0;
14075   IADDR UNUSED pc = abuf->addr;
14076   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14077
14078 if (NOTBI (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 4), 2))))) {
14079   {
14080     UQI opval = 3;
14081     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14082     written |= (1 << 1);
14083     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14084   }
14085 } else {
14086   {
14087     UQI opval = 2;
14088     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14089     written |= (1 << 1);
14090     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14091   }
14092 }
14093
14094   abuf->written = written;
14095   return vpc;
14096 #undef FLD
14097 }
14098
14099 /* ckc: ckc$pack $ICCi_3,$CRj_int */
14100
14101 static SEM_PC
14102 SEM_FN_NAME (frvbf,ckc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14103 {
14104 #define FLD(f) abuf->fields.sfmt_cckeq.f
14105   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14106   int UNUSED written = 0;
14107   IADDR UNUSED pc = abuf->addr;
14108   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14109
14110 if (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 1))) {
14111   {
14112     UQI opval = 3;
14113     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14114     written |= (1 << 1);
14115     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14116   }
14117 } else {
14118   {
14119     UQI opval = 2;
14120     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14121     written |= (1 << 1);
14122     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14123   }
14124 }
14125
14126   abuf->written = written;
14127   return vpc;
14128 #undef FLD
14129 }
14130
14131 /* cknc: cknc$pack $ICCi_3,$CRj_int */
14132
14133 static SEM_PC
14134 SEM_FN_NAME (frvbf,cknc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14135 {
14136 #define FLD(f) abuf->fields.sfmt_cckeq.f
14137   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14138   int UNUSED written = 0;
14139   IADDR UNUSED pc = abuf->addr;
14140   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14141
14142 if (NOTBI (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 1)))) {
14143   {
14144     UQI opval = 3;
14145     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14146     written |= (1 << 1);
14147     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14148   }
14149 } else {
14150   {
14151     UQI opval = 2;
14152     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14153     written |= (1 << 1);
14154     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14155   }
14156 }
14157
14158   abuf->written = written;
14159   return vpc;
14160 #undef FLD
14161 }
14162
14163 /* ckn: ckn$pack $ICCi_3,$CRj_int */
14164
14165 static SEM_PC
14166 SEM_FN_NAME (frvbf,ckn) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14167 {
14168 #define FLD(f) abuf->fields.sfmt_cckeq.f
14169   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14170   int UNUSED written = 0;
14171   IADDR UNUSED pc = abuf->addr;
14172   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14173
14174 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 8), 3))) {
14175   {
14176     UQI opval = 3;
14177     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14178     written |= (1 << 1);
14179     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14180   }
14181 } else {
14182   {
14183     UQI opval = 2;
14184     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14185     written |= (1 << 1);
14186     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14187   }
14188 }
14189
14190   abuf->written = written;
14191   return vpc;
14192 #undef FLD
14193 }
14194
14195 /* ckp: ckp$pack $ICCi_3,$CRj_int */
14196
14197 static SEM_PC
14198 SEM_FN_NAME (frvbf,ckp) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14199 {
14200 #define FLD(f) abuf->fields.sfmt_cckeq.f
14201   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14202   int UNUSED written = 0;
14203   IADDR UNUSED pc = abuf->addr;
14204   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14205
14206 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 8), 3)))) {
14207   {
14208     UQI opval = 3;
14209     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14210     written |= (1 << 1);
14211     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14212   }
14213 } else {
14214   {
14215     UQI opval = 2;
14216     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14217     written |= (1 << 1);
14218     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14219   }
14220 }
14221
14222   abuf->written = written;
14223   return vpc;
14224 #undef FLD
14225 }
14226
14227 /* ckv: ckv$pack $ICCi_3,$CRj_int */
14228
14229 static SEM_PC
14230 SEM_FN_NAME (frvbf,ckv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14231 {
14232 #define FLD(f) abuf->fields.sfmt_cckeq.f
14233   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14234   int UNUSED written = 0;
14235   IADDR UNUSED pc = abuf->addr;
14236   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14237
14238 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 2), 1))) {
14239   {
14240     UQI opval = 3;
14241     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14242     written |= (1 << 1);
14243     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14244   }
14245 } else {
14246   {
14247     UQI opval = 2;
14248     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14249     written |= (1 << 1);
14250     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14251   }
14252 }
14253
14254   abuf->written = written;
14255   return vpc;
14256 #undef FLD
14257 }
14258
14259 /* cknv: cknv$pack $ICCi_3,$CRj_int */
14260
14261 static SEM_PC
14262 SEM_FN_NAME (frvbf,cknv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14263 {
14264 #define FLD(f) abuf->fields.sfmt_cckeq.f
14265   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14266   int UNUSED written = 0;
14267   IADDR UNUSED pc = abuf->addr;
14268   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14269
14270 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 2), 1)))) {
14271   {
14272     UQI opval = 3;
14273     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14274     written |= (1 << 1);
14275     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14276   }
14277 } else {
14278   {
14279     UQI opval = 2;
14280     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14281     written |= (1 << 1);
14282     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14283   }
14284 }
14285
14286   abuf->written = written;
14287   return vpc;
14288 #undef FLD
14289 }
14290
14291 /* fckra: fckra$pack $CRj_float */
14292
14293 static SEM_PC
14294 SEM_FN_NAME (frvbf,fckra) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14295 {
14296 #define FLD(f) abuf->fields.sfmt_cfckne.f
14297   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14298   int UNUSED written = 0;
14299   IADDR UNUSED pc = abuf->addr;
14300   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14301
14302   {
14303     UQI opval = 3;
14304     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14305     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14306   }
14307
14308   return vpc;
14309 #undef FLD
14310 }
14311
14312 /* fckno: fckno$pack $CRj_float */
14313
14314 static SEM_PC
14315 SEM_FN_NAME (frvbf,fckno) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14316 {
14317 #define FLD(f) abuf->fields.sfmt_cfckne.f
14318   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14319   int UNUSED written = 0;
14320   IADDR UNUSED pc = abuf->addr;
14321   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14322
14323   {
14324     UQI opval = 2;
14325     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14326     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14327   }
14328
14329   return vpc;
14330 #undef FLD
14331 }
14332
14333 /* fckne: fckne$pack $FCCi_3,$CRj_float */
14334
14335 static SEM_PC
14336 SEM_FN_NAME (frvbf,fckne) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14337 {
14338 #define FLD(f) abuf->fields.sfmt_cfckne.f
14339   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14340   int UNUSED written = 0;
14341   IADDR UNUSED pc = abuf->addr;
14342   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14343
14344 if (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))))) {
14345   {
14346     UQI opval = 3;
14347     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14348     written |= (1 << 1);
14349     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14350   }
14351 } else {
14352   {
14353     UQI opval = 2;
14354     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14355     written |= (1 << 1);
14356     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14357   }
14358 }
14359
14360   abuf->written = written;
14361   return vpc;
14362 #undef FLD
14363 }
14364
14365 /* fckeq: fckeq$pack $FCCi_3,$CRj_float */
14366
14367 static SEM_PC
14368 SEM_FN_NAME (frvbf,fckeq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14369 {
14370 #define FLD(f) abuf->fields.sfmt_cfckne.f
14371   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14372   int UNUSED written = 0;
14373   IADDR UNUSED pc = abuf->addr;
14374   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14375
14376 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 8), 3))) {
14377   {
14378     UQI opval = 3;
14379     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14380     written |= (1 << 1);
14381     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14382   }
14383 } else {
14384   {
14385     UQI opval = 2;
14386     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14387     written |= (1 << 1);
14388     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14389   }
14390 }
14391
14392   abuf->written = written;
14393   return vpc;
14394 #undef FLD
14395 }
14396
14397 /* fcklg: fcklg$pack $FCCi_3,$CRj_float */
14398
14399 static SEM_PC
14400 SEM_FN_NAME (frvbf,fcklg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14401 {
14402 #define FLD(f) abuf->fields.sfmt_cfckne.f
14403   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14404   int UNUSED written = 0;
14405   IADDR UNUSED pc = abuf->addr;
14406   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14407
14408 if (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)))) {
14409   {
14410     UQI opval = 3;
14411     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14412     written |= (1 << 1);
14413     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14414   }
14415 } else {
14416   {
14417     UQI opval = 2;
14418     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14419     written |= (1 << 1);
14420     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14421   }
14422 }
14423
14424   abuf->written = written;
14425   return vpc;
14426 #undef FLD
14427 }
14428
14429 /* fckue: fckue$pack $FCCi_3,$CRj_float */
14430
14431 static SEM_PC
14432 SEM_FN_NAME (frvbf,fckue) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14433 {
14434 #define FLD(f) abuf->fields.sfmt_cfckne.f
14435   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14436   int UNUSED written = 0;
14437   IADDR UNUSED pc = abuf->addr;
14438   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14439
14440 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 8), 3)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 1)))) {
14441   {
14442     UQI opval = 3;
14443     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14444     written |= (1 << 1);
14445     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14446   }
14447 } else {
14448   {
14449     UQI opval = 2;
14450     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14451     written |= (1 << 1);
14452     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14453   }
14454 }
14455
14456   abuf->written = written;
14457   return vpc;
14458 #undef FLD
14459 }
14460
14461 /* fckul: fckul$pack $FCCi_3,$CRj_float */
14462
14463 static SEM_PC
14464 SEM_FN_NAME (frvbf,fckul) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14465 {
14466 #define FLD(f) abuf->fields.sfmt_cfckne.f
14467   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14468   int UNUSED written = 0;
14469   IADDR UNUSED pc = abuf->addr;
14470   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14471
14472 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 4), 2)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 1)))) {
14473   {
14474     UQI opval = 3;
14475     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14476     written |= (1 << 1);
14477     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14478   }
14479 } else {
14480   {
14481     UQI opval = 2;
14482     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14483     written |= (1 << 1);
14484     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14485   }
14486 }
14487
14488   abuf->written = written;
14489   return vpc;
14490 #undef FLD
14491 }
14492
14493 /* fckge: fckge$pack $FCCi_3,$CRj_float */
14494
14495 static SEM_PC
14496 SEM_FN_NAME (frvbf,fckge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14497 {
14498 #define FLD(f) abuf->fields.sfmt_cfckne.f
14499   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14500   int UNUSED written = 0;
14501   IADDR UNUSED pc = abuf->addr;
14502   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14503
14504 if (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)))) {
14505   {
14506     UQI opval = 3;
14507     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14508     written |= (1 << 1);
14509     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14510   }
14511 } else {
14512   {
14513     UQI opval = 2;
14514     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14515     written |= (1 << 1);
14516     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14517   }
14518 }
14519
14520   abuf->written = written;
14521   return vpc;
14522 #undef FLD
14523 }
14524
14525 /* fcklt: fcklt$pack $FCCi_3,$CRj_float */
14526
14527 static SEM_PC
14528 SEM_FN_NAME (frvbf,fcklt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14529 {
14530 #define FLD(f) abuf->fields.sfmt_cfckne.f
14531   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14532   int UNUSED written = 0;
14533   IADDR UNUSED pc = abuf->addr;
14534   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14535
14536 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 4), 2))) {
14537   {
14538     UQI opval = 3;
14539     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14540     written |= (1 << 1);
14541     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14542   }
14543 } else {
14544   {
14545     UQI opval = 2;
14546     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14547     written |= (1 << 1);
14548     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14549   }
14550 }
14551
14552   abuf->written = written;
14553   return vpc;
14554 #undef FLD
14555 }
14556
14557 /* fckuge: fckuge$pack $FCCi_3,$CRj_float */
14558
14559 static SEM_PC
14560 SEM_FN_NAME (frvbf,fckuge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14561 {
14562 #define FLD(f) abuf->fields.sfmt_cfckne.f
14563   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14564   int UNUSED written = 0;
14565   IADDR UNUSED pc = abuf->addr;
14566   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14567
14568 if (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))))) {
14569   {
14570     UQI opval = 3;
14571     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14572     written |= (1 << 1);
14573     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14574   }
14575 } else {
14576   {
14577     UQI opval = 2;
14578     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14579     written |= (1 << 1);
14580     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14581   }
14582 }
14583
14584   abuf->written = written;
14585   return vpc;
14586 #undef FLD
14587 }
14588
14589 /* fckug: fckug$pack $FCCi_3,$CRj_float */
14590
14591 static SEM_PC
14592 SEM_FN_NAME (frvbf,fckug) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14593 {
14594 #define FLD(f) abuf->fields.sfmt_cfckne.f
14595   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14596   int UNUSED written = 0;
14597   IADDR UNUSED pc = abuf->addr;
14598   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14599
14600 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 1)))) {
14601   {
14602     UQI opval = 3;
14603     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14604     written |= (1 << 1);
14605     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14606   }
14607 } else {
14608   {
14609     UQI opval = 2;
14610     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14611     written |= (1 << 1);
14612     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14613   }
14614 }
14615
14616   abuf->written = written;
14617   return vpc;
14618 #undef FLD
14619 }
14620
14621 /* fckle: fckle$pack $FCCi_3,$CRj_float */
14622
14623 static SEM_PC
14624 SEM_FN_NAME (frvbf,fckle) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14625 {
14626 #define FLD(f) abuf->fields.sfmt_cfckne.f
14627   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14628   int UNUSED written = 0;
14629   IADDR UNUSED pc = abuf->addr;
14630   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14631
14632 if (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)))) {
14633   {
14634     UQI opval = 3;
14635     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14636     written |= (1 << 1);
14637     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14638   }
14639 } else {
14640   {
14641     UQI opval = 2;
14642     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14643     written |= (1 << 1);
14644     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14645   }
14646 }
14647
14648   abuf->written = written;
14649   return vpc;
14650 #undef FLD
14651 }
14652
14653 /* fckgt: fckgt$pack $FCCi_3,$CRj_float */
14654
14655 static SEM_PC
14656 SEM_FN_NAME (frvbf,fckgt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14657 {
14658 #define FLD(f) abuf->fields.sfmt_cfckne.f
14659   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14660   int UNUSED written = 0;
14661   IADDR UNUSED pc = abuf->addr;
14662   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14663
14664 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 2), 1))) {
14665   {
14666     UQI opval = 3;
14667     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14668     written |= (1 << 1);
14669     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14670   }
14671 } else {
14672   {
14673     UQI opval = 2;
14674     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14675     written |= (1 << 1);
14676     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14677   }
14678 }
14679
14680   abuf->written = written;
14681   return vpc;
14682 #undef FLD
14683 }
14684
14685 /* fckule: fckule$pack $FCCi_3,$CRj_float */
14686
14687 static SEM_PC
14688 SEM_FN_NAME (frvbf,fckule) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14689 {
14690 #define FLD(f) abuf->fields.sfmt_cfckne.f
14691   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14692   int UNUSED written = 0;
14693   IADDR UNUSED pc = abuf->addr;
14694   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14695
14696 if (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))))) {
14697   {
14698     UQI opval = 3;
14699     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14700     written |= (1 << 1);
14701     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14702   }
14703 } else {
14704   {
14705     UQI opval = 2;
14706     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14707     written |= (1 << 1);
14708     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14709   }
14710 }
14711
14712   abuf->written = written;
14713   return vpc;
14714 #undef FLD
14715 }
14716
14717 /* fcku: fcku$pack $FCCi_3,$CRj_float */
14718
14719 static SEM_PC
14720 SEM_FN_NAME (frvbf,fcku) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14721 {
14722 #define FLD(f) abuf->fields.sfmt_cfckne.f
14723   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14724   int UNUSED written = 0;
14725   IADDR UNUSED pc = abuf->addr;
14726   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14727
14728 if (TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 1))) {
14729   {
14730     UQI opval = 3;
14731     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14732     written |= (1 << 1);
14733     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14734   }
14735 } else {
14736   {
14737     UQI opval = 2;
14738     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14739     written |= (1 << 1);
14740     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14741   }
14742 }
14743
14744   abuf->written = written;
14745   return vpc;
14746 #undef FLD
14747 }
14748
14749 /* fcko: fcko$pack $FCCi_3,$CRj_float */
14750
14751 static SEM_PC
14752 SEM_FN_NAME (frvbf,fcko) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14753 {
14754 #define FLD(f) abuf->fields.sfmt_cfckne.f
14755   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14756   int UNUSED written = 0;
14757   IADDR UNUSED pc = abuf->addr;
14758   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14759
14760 if (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))))) {
14761   {
14762     UQI opval = 3;
14763     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14764     written |= (1 << 1);
14765     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14766   }
14767 } else {
14768   {
14769     UQI opval = 2;
14770     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14771     written |= (1 << 1);
14772     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14773   }
14774 }
14775
14776   abuf->written = written;
14777   return vpc;
14778 #undef FLD
14779 }
14780
14781 /* cckra: cckra$pack $CRj_int,$CCi,$cond */
14782
14783 static SEM_PC
14784 SEM_FN_NAME (frvbf,cckra) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14785 {
14786 #define FLD(f) abuf->fields.sfmt_cckeq.f
14787   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14788   int UNUSED written = 0;
14789   IADDR UNUSED pc = abuf->addr;
14790   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14791
14792 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
14793   {
14794     UQI opval = 3;
14795     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14796     written |= (1 << 2);
14797     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14798   }
14799 } else {
14800   {
14801     UQI opval = 0;
14802     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14803     written |= (1 << 2);
14804     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14805   }
14806 }
14807
14808   abuf->written = written;
14809   return vpc;
14810 #undef FLD
14811 }
14812
14813 /* cckno: cckno$pack $CRj_int,$CCi,$cond */
14814
14815 static SEM_PC
14816 SEM_FN_NAME (frvbf,cckno) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14817 {
14818 #define FLD(f) abuf->fields.sfmt_cckeq.f
14819   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14820   int UNUSED written = 0;
14821   IADDR UNUSED pc = abuf->addr;
14822   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14823
14824 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
14825   {
14826     UQI opval = 2;
14827     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14828     written |= (1 << 2);
14829     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14830   }
14831 } else {
14832   {
14833     UQI opval = 0;
14834     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14835     written |= (1 << 2);
14836     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14837   }
14838 }
14839
14840   abuf->written = written;
14841   return vpc;
14842 #undef FLD
14843 }
14844
14845 /* cckeq: cckeq$pack $ICCi_3,$CRj_int,$CCi,$cond */
14846
14847 static SEM_PC
14848 SEM_FN_NAME (frvbf,cckeq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14849 {
14850 #define FLD(f) abuf->fields.sfmt_cckeq.f
14851   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14852   int UNUSED written = 0;
14853   IADDR UNUSED pc = abuf->addr;
14854   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14855
14856 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
14857 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 4), 2))) {
14858   {
14859     UQI opval = 3;
14860     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14861     written |= (1 << 3);
14862     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14863   }
14864 } else {
14865   {
14866     UQI opval = 2;
14867     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14868     written |= (1 << 3);
14869     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14870   }
14871 }
14872 } else {
14873   {
14874     UQI opval = 0;
14875     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14876     written |= (1 << 3);
14877     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14878   }
14879 }
14880
14881   abuf->written = written;
14882   return vpc;
14883 #undef FLD
14884 }
14885
14886 /* cckne: cckne$pack $ICCi_3,$CRj_int,$CCi,$cond */
14887
14888 static SEM_PC
14889 SEM_FN_NAME (frvbf,cckne) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14890 {
14891 #define FLD(f) abuf->fields.sfmt_cckeq.f
14892   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14893   int UNUSED written = 0;
14894   IADDR UNUSED pc = abuf->addr;
14895   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14896
14897 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
14898 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 4), 2)))) {
14899   {
14900     UQI opval = 3;
14901     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14902     written |= (1 << 3);
14903     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14904   }
14905 } else {
14906   {
14907     UQI opval = 2;
14908     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14909     written |= (1 << 3);
14910     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14911   }
14912 }
14913 } else {
14914   {
14915     UQI opval = 0;
14916     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14917     written |= (1 << 3);
14918     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14919   }
14920 }
14921
14922   abuf->written = written;
14923   return vpc;
14924 #undef FLD
14925 }
14926
14927 /* cckle: cckle$pack $ICCi_3,$CRj_int,$CCi,$cond */
14928
14929 static SEM_PC
14930 SEM_FN_NAME (frvbf,cckle) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14931 {
14932 #define FLD(f) abuf->fields.sfmt_cckeq.f
14933   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14934   int UNUSED written = 0;
14935   IADDR UNUSED pc = abuf->addr;
14936   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14937
14938 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
14939 if (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))))) {
14940   {
14941     UQI opval = 3;
14942     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14943     written |= (1 << 3);
14944     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14945   }
14946 } else {
14947   {
14948     UQI opval = 2;
14949     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14950     written |= (1 << 3);
14951     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14952   }
14953 }
14954 } else {
14955   {
14956     UQI opval = 0;
14957     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14958     written |= (1 << 3);
14959     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14960   }
14961 }
14962
14963   abuf->written = written;
14964   return vpc;
14965 #undef FLD
14966 }
14967
14968 /* cckgt: cckgt$pack $ICCi_3,$CRj_int,$CCi,$cond */
14969
14970 static SEM_PC
14971 SEM_FN_NAME (frvbf,cckgt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14972 {
14973 #define FLD(f) abuf->fields.sfmt_cckeq.f
14974   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14975   int UNUSED written = 0;
14976   IADDR UNUSED pc = abuf->addr;
14977   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14978
14979 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
14980 if (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)))))) {
14981   {
14982     UQI opval = 3;
14983     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14984     written |= (1 << 3);
14985     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14986   }
14987 } else {
14988   {
14989     UQI opval = 2;
14990     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14991     written |= (1 << 3);
14992     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14993   }
14994 }
14995 } else {
14996   {
14997     UQI opval = 0;
14998     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14999     written |= (1 << 3);
15000     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15001   }
15002 }
15003
15004   abuf->written = written;
15005   return vpc;
15006 #undef FLD
15007 }
15008
15009 /* ccklt: ccklt$pack $ICCi_3,$CRj_int,$CCi,$cond */
15010
15011 static SEM_PC
15012 SEM_FN_NAME (frvbf,ccklt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15013 {
15014 #define FLD(f) abuf->fields.sfmt_cckeq.f
15015   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15016   int UNUSED written = 0;
15017   IADDR UNUSED pc = abuf->addr;
15018   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15019
15020 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15021 if (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)))) {
15022   {
15023     UQI opval = 3;
15024     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15025     written |= (1 << 3);
15026     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15027   }
15028 } else {
15029   {
15030     UQI opval = 2;
15031     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15032     written |= (1 << 3);
15033     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15034   }
15035 }
15036 } else {
15037   {
15038     UQI opval = 0;
15039     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15040     written |= (1 << 3);
15041     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15042   }
15043 }
15044
15045   abuf->written = written;
15046   return vpc;
15047 #undef FLD
15048 }
15049
15050 /* cckge: cckge$pack $ICCi_3,$CRj_int,$CCi,$cond */
15051
15052 static SEM_PC
15053 SEM_FN_NAME (frvbf,cckge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15054 {
15055 #define FLD(f) abuf->fields.sfmt_cckeq.f
15056   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15057   int UNUSED written = 0;
15058   IADDR UNUSED pc = abuf->addr;
15059   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15060
15061 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15062 if (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))))) {
15063   {
15064     UQI opval = 3;
15065     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15066     written |= (1 << 3);
15067     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15068   }
15069 } else {
15070   {
15071     UQI opval = 2;
15072     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15073     written |= (1 << 3);
15074     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15075   }
15076 }
15077 } else {
15078   {
15079     UQI opval = 0;
15080     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15081     written |= (1 << 3);
15082     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15083   }
15084 }
15085
15086   abuf->written = written;
15087   return vpc;
15088 #undef FLD
15089 }
15090
15091 /* cckls: cckls$pack $ICCi_3,$CRj_int,$CCi,$cond */
15092
15093 static SEM_PC
15094 SEM_FN_NAME (frvbf,cckls) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15095 {
15096 #define FLD(f) abuf->fields.sfmt_cckeq.f
15097   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15098   int UNUSED written = 0;
15099   IADDR UNUSED pc = abuf->addr;
15100   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15101
15102 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15103 if (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 4), 2)))) {
15104   {
15105     UQI opval = 3;
15106     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15107     written |= (1 << 3);
15108     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15109   }
15110 } else {
15111   {
15112     UQI opval = 2;
15113     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15114     written |= (1 << 3);
15115     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15116   }
15117 }
15118 } else {
15119   {
15120     UQI opval = 0;
15121     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15122     written |= (1 << 3);
15123     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15124   }
15125 }
15126
15127   abuf->written = written;
15128   return vpc;
15129 #undef FLD
15130 }
15131
15132 /* cckhi: cckhi$pack $ICCi_3,$CRj_int,$CCi,$cond */
15133
15134 static SEM_PC
15135 SEM_FN_NAME (frvbf,cckhi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15136 {
15137 #define FLD(f) abuf->fields.sfmt_cckeq.f
15138   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15139   int UNUSED written = 0;
15140   IADDR UNUSED pc = abuf->addr;
15141   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15142
15143 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15144 if (NOTBI (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 4), 2))))) {
15145   {
15146     UQI opval = 3;
15147     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15148     written |= (1 << 3);
15149     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15150   }
15151 } else {
15152   {
15153     UQI opval = 2;
15154     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15155     written |= (1 << 3);
15156     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15157   }
15158 }
15159 } else {
15160   {
15161     UQI opval = 0;
15162     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15163     written |= (1 << 3);
15164     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15165   }
15166 }
15167
15168   abuf->written = written;
15169   return vpc;
15170 #undef FLD
15171 }
15172
15173 /* cckc: cckc$pack $ICCi_3,$CRj_int,$CCi,$cond */
15174
15175 static SEM_PC
15176 SEM_FN_NAME (frvbf,cckc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15177 {
15178 #define FLD(f) abuf->fields.sfmt_cckeq.f
15179   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15180   int UNUSED written = 0;
15181   IADDR UNUSED pc = abuf->addr;
15182   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15183
15184 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15185 if (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 1))) {
15186   {
15187     UQI opval = 3;
15188     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15189     written |= (1 << 3);
15190     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15191   }
15192 } else {
15193   {
15194     UQI opval = 2;
15195     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15196     written |= (1 << 3);
15197     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15198   }
15199 }
15200 } else {
15201   {
15202     UQI opval = 0;
15203     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15204     written |= (1 << 3);
15205     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15206   }
15207 }
15208
15209   abuf->written = written;
15210   return vpc;
15211 #undef FLD
15212 }
15213
15214 /* ccknc: ccknc$pack $ICCi_3,$CRj_int,$CCi,$cond */
15215
15216 static SEM_PC
15217 SEM_FN_NAME (frvbf,ccknc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15218 {
15219 #define FLD(f) abuf->fields.sfmt_cckeq.f
15220   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15221   int UNUSED written = 0;
15222   IADDR UNUSED pc = abuf->addr;
15223   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15224
15225 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15226 if (NOTBI (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 1)))) {
15227   {
15228     UQI opval = 3;
15229     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15230     written |= (1 << 3);
15231     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15232   }
15233 } else {
15234   {
15235     UQI opval = 2;
15236     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15237     written |= (1 << 3);
15238     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15239   }
15240 }
15241 } else {
15242   {
15243     UQI opval = 0;
15244     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15245     written |= (1 << 3);
15246     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15247   }
15248 }
15249
15250   abuf->written = written;
15251   return vpc;
15252 #undef FLD
15253 }
15254
15255 /* cckn: cckn$pack $ICCi_3,$CRj_int,$CCi,$cond */
15256
15257 static SEM_PC
15258 SEM_FN_NAME (frvbf,cckn) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15259 {
15260 #define FLD(f) abuf->fields.sfmt_cckeq.f
15261   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15262   int UNUSED written = 0;
15263   IADDR UNUSED pc = abuf->addr;
15264   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15265
15266 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15267 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 8), 3))) {
15268   {
15269     UQI opval = 3;
15270     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15271     written |= (1 << 3);
15272     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15273   }
15274 } else {
15275   {
15276     UQI opval = 2;
15277     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15278     written |= (1 << 3);
15279     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15280   }
15281 }
15282 } else {
15283   {
15284     UQI opval = 0;
15285     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15286     written |= (1 << 3);
15287     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15288   }
15289 }
15290
15291   abuf->written = written;
15292   return vpc;
15293 #undef FLD
15294 }
15295
15296 /* cckp: cckp$pack $ICCi_3,$CRj_int,$CCi,$cond */
15297
15298 static SEM_PC
15299 SEM_FN_NAME (frvbf,cckp) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15300 {
15301 #define FLD(f) abuf->fields.sfmt_cckeq.f
15302   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15303   int UNUSED written = 0;
15304   IADDR UNUSED pc = abuf->addr;
15305   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15306
15307 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15308 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 8), 3)))) {
15309   {
15310     UQI opval = 3;
15311     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15312     written |= (1 << 3);
15313     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15314   }
15315 } else {
15316   {
15317     UQI opval = 2;
15318     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15319     written |= (1 << 3);
15320     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15321   }
15322 }
15323 } else {
15324   {
15325     UQI opval = 0;
15326     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15327     written |= (1 << 3);
15328     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15329   }
15330 }
15331
15332   abuf->written = written;
15333   return vpc;
15334 #undef FLD
15335 }
15336
15337 /* cckv: cckv$pack $ICCi_3,$CRj_int,$CCi,$cond */
15338
15339 static SEM_PC
15340 SEM_FN_NAME (frvbf,cckv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15341 {
15342 #define FLD(f) abuf->fields.sfmt_cckeq.f
15343   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15344   int UNUSED written = 0;
15345   IADDR UNUSED pc = abuf->addr;
15346   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15347
15348 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15349 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 2), 1))) {
15350   {
15351     UQI opval = 3;
15352     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15353     written |= (1 << 3);
15354     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15355   }
15356 } else {
15357   {
15358     UQI opval = 2;
15359     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15360     written |= (1 << 3);
15361     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15362   }
15363 }
15364 } else {
15365   {
15366     UQI opval = 0;
15367     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15368     written |= (1 << 3);
15369     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15370   }
15371 }
15372
15373   abuf->written = written;
15374   return vpc;
15375 #undef FLD
15376 }
15377
15378 /* ccknv: ccknv$pack $ICCi_3,$CRj_int,$CCi,$cond */
15379
15380 static SEM_PC
15381 SEM_FN_NAME (frvbf,ccknv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15382 {
15383 #define FLD(f) abuf->fields.sfmt_cckeq.f
15384   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15385   int UNUSED written = 0;
15386   IADDR UNUSED pc = abuf->addr;
15387   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15388
15389 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15390 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 2), 1)))) {
15391   {
15392     UQI opval = 3;
15393     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15394     written |= (1 << 3);
15395     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15396   }
15397 } else {
15398   {
15399     UQI opval = 2;
15400     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15401     written |= (1 << 3);
15402     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15403   }
15404 }
15405 } else {
15406   {
15407     UQI opval = 0;
15408     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15409     written |= (1 << 3);
15410     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15411   }
15412 }
15413
15414   abuf->written = written;
15415   return vpc;
15416 #undef FLD
15417 }
15418
15419 /* cfckra: cfckra$pack $CRj_float,$CCi,$cond */
15420
15421 static SEM_PC
15422 SEM_FN_NAME (frvbf,cfckra) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15423 {
15424 #define FLD(f) abuf->fields.sfmt_cfckne.f
15425   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15426   int UNUSED written = 0;
15427   IADDR UNUSED pc = abuf->addr;
15428   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15429
15430 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15431   {
15432     UQI opval = 3;
15433     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15434     written |= (1 << 2);
15435     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15436   }
15437 } else {
15438   {
15439     UQI opval = 0;
15440     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15441     written |= (1 << 2);
15442     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15443   }
15444 }
15445
15446   abuf->written = written;
15447   return vpc;
15448 #undef FLD
15449 }
15450
15451 /* cfckno: cfckno$pack $CRj_float,$CCi,$cond */
15452
15453 static SEM_PC
15454 SEM_FN_NAME (frvbf,cfckno) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15455 {
15456 #define FLD(f) abuf->fields.sfmt_cfckne.f
15457   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15458   int UNUSED written = 0;
15459   IADDR UNUSED pc = abuf->addr;
15460   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15461
15462 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15463   {
15464     UQI opval = 2;
15465     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15466     written |= (1 << 2);
15467     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15468   }
15469 } else {
15470   {
15471     UQI opval = 0;
15472     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15473     written |= (1 << 2);
15474     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15475   }
15476 }
15477
15478   abuf->written = written;
15479   return vpc;
15480 #undef FLD
15481 }
15482
15483 /* cfckne: cfckne$pack $FCCi_3,$CRj_float,$CCi,$cond */
15484
15485 static SEM_PC
15486 SEM_FN_NAME (frvbf,cfckne) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15487 {
15488 #define FLD(f) abuf->fields.sfmt_cfckne.f
15489   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15490   int UNUSED written = 0;
15491   IADDR UNUSED pc = abuf->addr;
15492   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15493
15494 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15495 if (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))))) {
15496   {
15497     UQI opval = 3;
15498     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15499     written |= (1 << 3);
15500     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15501   }
15502 } else {
15503   {
15504     UQI opval = 2;
15505     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15506     written |= (1 << 3);
15507     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15508   }
15509 }
15510 } else {
15511   {
15512     UQI opval = 0;
15513     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15514     written |= (1 << 3);
15515     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15516   }
15517 }
15518
15519   abuf->written = written;
15520   return vpc;
15521 #undef FLD
15522 }
15523
15524 /* cfckeq: cfckeq$pack $FCCi_3,$CRj_float,$CCi,$cond */
15525
15526 static SEM_PC
15527 SEM_FN_NAME (frvbf,cfckeq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15528 {
15529 #define FLD(f) abuf->fields.sfmt_cfckne.f
15530   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15531   int UNUSED written = 0;
15532   IADDR UNUSED pc = abuf->addr;
15533   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15534
15535 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15536 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 8), 3))) {
15537   {
15538     UQI opval = 3;
15539     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15540     written |= (1 << 3);
15541     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15542   }
15543 } else {
15544   {
15545     UQI opval = 2;
15546     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15547     written |= (1 << 3);
15548     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15549   }
15550 }
15551 } else {
15552   {
15553     UQI opval = 0;
15554     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15555     written |= (1 << 3);
15556     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15557   }
15558 }
15559
15560   abuf->written = written;
15561   return vpc;
15562 #undef FLD
15563 }
15564
15565 /* cfcklg: cfcklg$pack $FCCi_3,$CRj_float,$CCi,$cond */
15566
15567 static SEM_PC
15568 SEM_FN_NAME (frvbf,cfcklg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15569 {
15570 #define FLD(f) abuf->fields.sfmt_cfckne.f
15571   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15572   int UNUSED written = 0;
15573   IADDR UNUSED pc = abuf->addr;
15574   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15575
15576 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15577 if (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)))) {
15578   {
15579     UQI opval = 3;
15580     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15581     written |= (1 << 3);
15582     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15583   }
15584 } else {
15585   {
15586     UQI opval = 2;
15587     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15588     written |= (1 << 3);
15589     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15590   }
15591 }
15592 } else {
15593   {
15594     UQI opval = 0;
15595     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15596     written |= (1 << 3);
15597     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15598   }
15599 }
15600
15601   abuf->written = written;
15602   return vpc;
15603 #undef FLD
15604 }
15605
15606 /* cfckue: cfckue$pack $FCCi_3,$CRj_float,$CCi,$cond */
15607
15608 static SEM_PC
15609 SEM_FN_NAME (frvbf,cfckue) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15610 {
15611 #define FLD(f) abuf->fields.sfmt_cfckne.f
15612   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15613   int UNUSED written = 0;
15614   IADDR UNUSED pc = abuf->addr;
15615   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15616
15617 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15618 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 8), 3)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 1)))) {
15619   {
15620     UQI opval = 3;
15621     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15622     written |= (1 << 3);
15623     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15624   }
15625 } else {
15626   {
15627     UQI opval = 2;
15628     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15629     written |= (1 << 3);
15630     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15631   }
15632 }
15633 } else {
15634   {
15635     UQI opval = 0;
15636     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15637     written |= (1 << 3);
15638     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15639   }
15640 }
15641
15642   abuf->written = written;
15643   return vpc;
15644 #undef FLD
15645 }
15646
15647 /* cfckul: cfckul$pack $FCCi_3,$CRj_float,$CCi,$cond */
15648
15649 static SEM_PC
15650 SEM_FN_NAME (frvbf,cfckul) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15651 {
15652 #define FLD(f) abuf->fields.sfmt_cfckne.f
15653   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15654   int UNUSED written = 0;
15655   IADDR UNUSED pc = abuf->addr;
15656   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15657
15658 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15659 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 4), 2)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 1)))) {
15660   {
15661     UQI opval = 3;
15662     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15663     written |= (1 << 3);
15664     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15665   }
15666 } else {
15667   {
15668     UQI opval = 2;
15669     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15670     written |= (1 << 3);
15671     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15672   }
15673 }
15674 } else {
15675   {
15676     UQI opval = 0;
15677     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15678     written |= (1 << 3);
15679     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15680   }
15681 }
15682
15683   abuf->written = written;
15684   return vpc;
15685 #undef FLD
15686 }
15687
15688 /* cfckge: cfckge$pack $FCCi_3,$CRj_float,$CCi,$cond */
15689
15690 static SEM_PC
15691 SEM_FN_NAME (frvbf,cfckge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15692 {
15693 #define FLD(f) abuf->fields.sfmt_cfckne.f
15694   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15695   int UNUSED written = 0;
15696   IADDR UNUSED pc = abuf->addr;
15697   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15698
15699 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15700 if (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)))) {
15701   {
15702     UQI opval = 3;
15703     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15704     written |= (1 << 3);
15705     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15706   }
15707 } else {
15708   {
15709     UQI opval = 2;
15710     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15711     written |= (1 << 3);
15712     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15713   }
15714 }
15715 } else {
15716   {
15717     UQI opval = 0;
15718     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15719     written |= (1 << 3);
15720     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15721   }
15722 }
15723
15724   abuf->written = written;
15725   return vpc;
15726 #undef FLD
15727 }
15728
15729 /* cfcklt: cfcklt$pack $FCCi_3,$CRj_float,$CCi,$cond */
15730
15731 static SEM_PC
15732 SEM_FN_NAME (frvbf,cfcklt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15733 {
15734 #define FLD(f) abuf->fields.sfmt_cfckne.f
15735   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15736   int UNUSED written = 0;
15737   IADDR UNUSED pc = abuf->addr;
15738   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15739
15740 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15741 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 4), 2))) {
15742   {
15743     UQI opval = 3;
15744     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15745     written |= (1 << 3);
15746     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15747   }
15748 } else {
15749   {
15750     UQI opval = 2;
15751     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15752     written |= (1 << 3);
15753     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15754   }
15755 }
15756 } else {
15757   {
15758     UQI opval = 0;
15759     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15760     written |= (1 << 3);
15761     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15762   }
15763 }
15764
15765   abuf->written = written;
15766   return vpc;
15767 #undef FLD
15768 }
15769
15770 /* cfckuge: cfckuge$pack $FCCi_3,$CRj_float,$CCi,$cond */
15771
15772 static SEM_PC
15773 SEM_FN_NAME (frvbf,cfckuge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15774 {
15775 #define FLD(f) abuf->fields.sfmt_cfckne.f
15776   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15777   int UNUSED written = 0;
15778   IADDR UNUSED pc = abuf->addr;
15779   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15780
15781 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15782 if (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))))) {
15783   {
15784     UQI opval = 3;
15785     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15786     written |= (1 << 3);
15787     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15788   }
15789 } else {
15790   {
15791     UQI opval = 2;
15792     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15793     written |= (1 << 3);
15794     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15795   }
15796 }
15797 } else {
15798   {
15799     UQI opval = 0;
15800     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15801     written |= (1 << 3);
15802     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15803   }
15804 }
15805
15806   abuf->written = written;
15807   return vpc;
15808 #undef FLD
15809 }
15810
15811 /* cfckug: cfckug$pack $FCCi_3,$CRj_float,$CCi,$cond */
15812
15813 static SEM_PC
15814 SEM_FN_NAME (frvbf,cfckug) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15815 {
15816 #define FLD(f) abuf->fields.sfmt_cfckne.f
15817   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15818   int UNUSED written = 0;
15819   IADDR UNUSED pc = abuf->addr;
15820   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15821
15822 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15823 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 1)))) {
15824   {
15825     UQI opval = 3;
15826     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15827     written |= (1 << 3);
15828     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15829   }
15830 } else {
15831   {
15832     UQI opval = 2;
15833     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15834     written |= (1 << 3);
15835     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15836   }
15837 }
15838 } else {
15839   {
15840     UQI opval = 0;
15841     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15842     written |= (1 << 3);
15843     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15844   }
15845 }
15846
15847   abuf->written = written;
15848   return vpc;
15849 #undef FLD
15850 }
15851
15852 /* cfckle: cfckle$pack $FCCi_3,$CRj_float,$CCi,$cond */
15853
15854 static SEM_PC
15855 SEM_FN_NAME (frvbf,cfckle) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15856 {
15857 #define FLD(f) abuf->fields.sfmt_cfckne.f
15858   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15859   int UNUSED written = 0;
15860   IADDR UNUSED pc = abuf->addr;
15861   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15862
15863 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15864 if (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)))) {
15865   {
15866     UQI opval = 3;
15867     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15868     written |= (1 << 3);
15869     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15870   }
15871 } else {
15872   {
15873     UQI opval = 2;
15874     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15875     written |= (1 << 3);
15876     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15877   }
15878 }
15879 } else {
15880   {
15881     UQI opval = 0;
15882     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15883     written |= (1 << 3);
15884     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15885   }
15886 }
15887
15888   abuf->written = written;
15889   return vpc;
15890 #undef FLD
15891 }
15892
15893 /* cfckgt: cfckgt$pack $FCCi_3,$CRj_float,$CCi,$cond */
15894
15895 static SEM_PC
15896 SEM_FN_NAME (frvbf,cfckgt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15897 {
15898 #define FLD(f) abuf->fields.sfmt_cfckne.f
15899   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15900   int UNUSED written = 0;
15901   IADDR UNUSED pc = abuf->addr;
15902   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15903
15904 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15905 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 2), 1))) {
15906   {
15907     UQI opval = 3;
15908     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15909     written |= (1 << 3);
15910     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15911   }
15912 } else {
15913   {
15914     UQI opval = 2;
15915     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15916     written |= (1 << 3);
15917     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15918   }
15919 }
15920 } else {
15921   {
15922     UQI opval = 0;
15923     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15924     written |= (1 << 3);
15925     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15926   }
15927 }
15928
15929   abuf->written = written;
15930   return vpc;
15931 #undef FLD
15932 }
15933
15934 /* cfckule: cfckule$pack $FCCi_3,$CRj_float,$CCi,$cond */
15935
15936 static SEM_PC
15937 SEM_FN_NAME (frvbf,cfckule) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15938 {
15939 #define FLD(f) abuf->fields.sfmt_cfckne.f
15940   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15941   int UNUSED written = 0;
15942   IADDR UNUSED pc = abuf->addr;
15943   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15944
15945 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15946 if (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))))) {
15947   {
15948     UQI opval = 3;
15949     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15950     written |= (1 << 3);
15951     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15952   }
15953 } else {
15954   {
15955     UQI opval = 2;
15956     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15957     written |= (1 << 3);
15958     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15959   }
15960 }
15961 } else {
15962   {
15963     UQI opval = 0;
15964     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15965     written |= (1 << 3);
15966     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15967   }
15968 }
15969
15970   abuf->written = written;
15971   return vpc;
15972 #undef FLD
15973 }
15974
15975 /* cfcku: cfcku$pack $FCCi_3,$CRj_float,$CCi,$cond */
15976
15977 static SEM_PC
15978 SEM_FN_NAME (frvbf,cfcku) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15979 {
15980 #define FLD(f) abuf->fields.sfmt_cfckne.f
15981   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15982   int UNUSED written = 0;
15983   IADDR UNUSED pc = abuf->addr;
15984   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15985
15986 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15987 if (TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 1))) {
15988   {
15989     UQI opval = 3;
15990     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15991     written |= (1 << 3);
15992     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15993   }
15994 } else {
15995   {
15996     UQI opval = 2;
15997     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15998     written |= (1 << 3);
15999     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
16000   }
16001 }
16002 } else {
16003   {
16004     UQI opval = 0;
16005     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
16006     written |= (1 << 3);
16007     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
16008   }
16009 }
16010
16011   abuf->written = written;
16012   return vpc;
16013 #undef FLD
16014 }
16015
16016 /* cfcko: cfcko$pack $FCCi_3,$CRj_float,$CCi,$cond */
16017
16018 static SEM_PC
16019 SEM_FN_NAME (frvbf,cfcko) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16020 {
16021 #define FLD(f) abuf->fields.sfmt_cfckne.f
16022   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16023   int UNUSED written = 0;
16024   IADDR UNUSED pc = abuf->addr;
16025   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16026
16027 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
16028 if (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))))) {
16029   {
16030     UQI opval = 3;
16031     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
16032     written |= (1 << 3);
16033     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
16034   }
16035 } else {
16036   {
16037     UQI opval = 2;
16038     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
16039     written |= (1 << 3);
16040     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
16041   }
16042 }
16043 } else {
16044   {
16045     UQI opval = 0;
16046     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
16047     written |= (1 << 3);
16048     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
16049   }
16050 }
16051
16052   abuf->written = written;
16053   return vpc;
16054 #undef FLD
16055 }
16056
16057 /* cjmpl: cjmpl$pack @($GRi,$GRj),$CCi,$cond */
16058
16059 static SEM_PC
16060 SEM_FN_NAME (frvbf,cjmpl) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16061 {
16062 #define FLD(f) abuf->fields.sfmt_cjmpl.f
16063   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16064   int UNUSED written = 0;
16065   IADDR UNUSED pc = abuf->addr;
16066   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16067
16068 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
16069 {
16070 if (EQSI (FLD (f_LI), 1)) {
16071 frvbf_set_write_next_vliw_addr_to_LR (current_cpu, 1);
16072 }
16073   {
16074     USI opval = ANDSI (ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), 0xfffffffc);
16075     sim_queue_pc_write (current_cpu, opval);
16076     written |= (1 << 6);
16077     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
16078   }
16079 frvbf_model_branch (current_cpu, pc, 2);
16080 }
16081 }
16082
16083   abuf->written = written;
16084   return vpc;
16085 #undef FLD
16086 }
16087
16088 /* ccalll: ccalll$pack @($GRi,$GRj),$CCi,$cond */
16089
16090 static SEM_PC
16091 SEM_FN_NAME (frvbf,ccalll) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16092 {
16093 #define FLD(f) abuf->fields.sfmt_cjmpl.f
16094   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16095   int UNUSED written = 0;
16096   IADDR UNUSED pc = abuf->addr;
16097   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16098
16099 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
16100 {
16101 if (EQSI (FLD (f_LI), 1)) {
16102 frvbf_set_write_next_vliw_addr_to_LR (current_cpu, 1);
16103 }
16104   {
16105     USI opval = ANDSI (ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), 0xfffffffc);
16106     sim_queue_pc_write (current_cpu, opval);
16107     written |= (1 << 6);
16108     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
16109   }
16110 frvbf_model_branch (current_cpu, pc, 2);
16111 }
16112 }
16113
16114   abuf->written = written;
16115   return vpc;
16116 #undef FLD
16117 }
16118
16119 /* ici: ici$pack @($GRi,$GRj) */
16120
16121 static SEM_PC
16122 SEM_FN_NAME (frvbf,ici) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16123 {
16124 #define FLD(f) abuf->fields.sfmt_icpl.f
16125   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16126   int UNUSED written = 0;
16127   IADDR UNUSED pc = abuf->addr;
16128   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16129
16130 frvbf_insn_cache_invalidate (current_cpu, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), 0);
16131
16132   return vpc;
16133 #undef FLD
16134 }
16135
16136 /* dci: dci$pack @($GRi,$GRj) */
16137
16138 static SEM_PC
16139 SEM_FN_NAME (frvbf,dci) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16140 {
16141 #define FLD(f) abuf->fields.sfmt_icpl.f
16142   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16143   int UNUSED written = 0;
16144   IADDR UNUSED pc = abuf->addr;
16145   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16146
16147 frvbf_data_cache_invalidate (current_cpu, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), 0);
16148
16149   return vpc;
16150 #undef FLD
16151 }
16152
16153 /* icei: icei$pack @($GRi,$GRj),$ae */
16154
16155 static SEM_PC
16156 SEM_FN_NAME (frvbf,icei) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16157 {
16158 #define FLD(f) abuf->fields.sfmt_icei.f
16159   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16160   int UNUSED written = 0;
16161   IADDR UNUSED pc = abuf->addr;
16162   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16163
16164 if (EQSI (FLD (f_ae), 0)) {
16165 frvbf_insn_cache_invalidate (current_cpu, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), -1);
16166 } else {
16167 frvbf_insn_cache_invalidate (current_cpu, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), FLD (f_ae));
16168 }
16169
16170   return vpc;
16171 #undef FLD
16172 }
16173
16174 /* dcei: dcei$pack @($GRi,$GRj),$ae */
16175
16176 static SEM_PC
16177 SEM_FN_NAME (frvbf,dcei) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16178 {
16179 #define FLD(f) abuf->fields.sfmt_icei.f
16180   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16181   int UNUSED written = 0;
16182   IADDR UNUSED pc = abuf->addr;
16183   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16184
16185 if (EQSI (FLD (f_ae), 0)) {
16186 frvbf_data_cache_invalidate (current_cpu, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), -1);
16187 } else {
16188 frvbf_data_cache_invalidate (current_cpu, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), FLD (f_ae));
16189 }
16190
16191   return vpc;
16192 #undef FLD
16193 }
16194
16195 /* dcf: dcf$pack @($GRi,$GRj) */
16196
16197 static SEM_PC
16198 SEM_FN_NAME (frvbf,dcf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16199 {
16200 #define FLD(f) abuf->fields.sfmt_icpl.f
16201   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16202   int UNUSED written = 0;
16203   IADDR UNUSED pc = abuf->addr;
16204   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16205
16206 frvbf_data_cache_flush (current_cpu, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), 0);
16207
16208   return vpc;
16209 #undef FLD
16210 }
16211
16212 /* dcef: dcef$pack @($GRi,$GRj),$ae */
16213
16214 static SEM_PC
16215 SEM_FN_NAME (frvbf,dcef) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16216 {
16217 #define FLD(f) abuf->fields.sfmt_icei.f
16218   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16219   int UNUSED written = 0;
16220   IADDR UNUSED pc = abuf->addr;
16221   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16222
16223 if (EQSI (FLD (f_ae), 0)) {
16224 frvbf_data_cache_flush (current_cpu, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), -1);
16225 } else {
16226 frvbf_data_cache_flush (current_cpu, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), FLD (f_ae));
16227 }
16228
16229   return vpc;
16230 #undef FLD
16231 }
16232
16233 /* witlb: witlb$pack $GRk,@($GRi,$GRj) */
16234
16235 static SEM_PC
16236 SEM_FN_NAME (frvbf,witlb) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16237 {
16238 #define FLD(f) abuf->fields.sfmt_empty.f
16239   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16240   int UNUSED written = 0;
16241   IADDR UNUSED pc = abuf->addr;
16242   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16243
16244 ((void) 0); /*nop*/
16245
16246   return vpc;
16247 #undef FLD
16248 }
16249
16250 /* wdtlb: wdtlb$pack $GRk,@($GRi,$GRj) */
16251
16252 static SEM_PC
16253 SEM_FN_NAME (frvbf,wdtlb) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16254 {
16255 #define FLD(f) abuf->fields.sfmt_empty.f
16256   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16257   int UNUSED written = 0;
16258   IADDR UNUSED pc = abuf->addr;
16259   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16260
16261 ((void) 0); /*nop*/
16262
16263   return vpc;
16264 #undef FLD
16265 }
16266
16267 /* itlbi: itlbi$pack @($GRi,$GRj) */
16268
16269 static SEM_PC
16270 SEM_FN_NAME (frvbf,itlbi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16271 {
16272 #define FLD(f) abuf->fields.sfmt_empty.f
16273   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16274   int UNUSED written = 0;
16275   IADDR UNUSED pc = abuf->addr;
16276   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16277
16278 ((void) 0); /*nop*/
16279
16280   return vpc;
16281 #undef FLD
16282 }
16283
16284 /* dtlbi: dtlbi$pack @($GRi,$GRj) */
16285
16286 static SEM_PC
16287 SEM_FN_NAME (frvbf,dtlbi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16288 {
16289 #define FLD(f) abuf->fields.sfmt_empty.f
16290   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16291   int UNUSED written = 0;
16292   IADDR UNUSED pc = abuf->addr;
16293   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16294
16295 ((void) 0); /*nop*/
16296
16297   return vpc;
16298 #undef FLD
16299 }
16300
16301 /* icpl: icpl$pack $GRi,$GRj,$lock */
16302
16303 static SEM_PC
16304 SEM_FN_NAME (frvbf,icpl) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16305 {
16306 #define FLD(f) abuf->fields.sfmt_icpl.f
16307   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16308   int UNUSED written = 0;
16309   IADDR UNUSED pc = abuf->addr;
16310   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16311
16312 frvbf_insn_cache_preload (current_cpu, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), FLD (f_lock));
16313
16314   return vpc;
16315 #undef FLD
16316 }
16317
16318 /* dcpl: dcpl$pack $GRi,$GRj,$lock */
16319
16320 static SEM_PC
16321 SEM_FN_NAME (frvbf,dcpl) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16322 {
16323 #define FLD(f) abuf->fields.sfmt_icpl.f
16324   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16325   int UNUSED written = 0;
16326   IADDR UNUSED pc = abuf->addr;
16327   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16328
16329 frvbf_data_cache_preload (current_cpu, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), FLD (f_lock));
16330
16331   return vpc;
16332 #undef FLD
16333 }
16334
16335 /* icul: icul$pack $GRi */
16336
16337 static SEM_PC
16338 SEM_FN_NAME (frvbf,icul) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16339 {
16340 #define FLD(f) abuf->fields.sfmt_jmpil.f
16341   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16342   int UNUSED written = 0;
16343   IADDR UNUSED pc = abuf->addr;
16344   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16345
16346 frvbf_insn_cache_unlock (current_cpu, GET_H_GR (FLD (f_GRi)));
16347
16348   return vpc;
16349 #undef FLD
16350 }
16351
16352 /* dcul: dcul$pack $GRi */
16353
16354 static SEM_PC
16355 SEM_FN_NAME (frvbf,dcul) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16356 {
16357 #define FLD(f) abuf->fields.sfmt_jmpil.f
16358   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16359   int UNUSED written = 0;
16360   IADDR UNUSED pc = abuf->addr;
16361   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16362
16363 frvbf_data_cache_unlock (current_cpu, GET_H_GR (FLD (f_GRi)));
16364
16365   return vpc;
16366 #undef FLD
16367 }
16368
16369 /* bar: bar$pack */
16370
16371 static SEM_PC
16372 SEM_FN_NAME (frvbf,bar) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16373 {
16374 #define FLD(f) abuf->fields.sfmt_empty.f
16375   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16376   int UNUSED written = 0;
16377   IADDR UNUSED pc = abuf->addr;
16378   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16379
16380 ((void) 0); /*nop*/
16381
16382   return vpc;
16383 #undef FLD
16384 }
16385
16386 /* membar: membar$pack */
16387
16388 static SEM_PC
16389 SEM_FN_NAME (frvbf,membar) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16390 {
16391 #define FLD(f) abuf->fields.sfmt_empty.f
16392   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16393   int UNUSED written = 0;
16394   IADDR UNUSED pc = abuf->addr;
16395   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16396
16397 ((void) 0); /*nop*/
16398
16399   return vpc;
16400 #undef FLD
16401 }
16402
16403 /* lrai: lrai$pack $GRi,$GRk,$LRAE,$LRAD,$LRAS */
16404
16405 static SEM_PC
16406 SEM_FN_NAME (frvbf,lrai) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16407 {
16408 #define FLD(f) abuf->fields.sfmt_empty.f
16409   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16410   int UNUSED written = 0;
16411   IADDR UNUSED pc = abuf->addr;
16412   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16413
16414 ((void) 0); /*nop*/
16415
16416   return vpc;
16417 #undef FLD
16418 }
16419
16420 /* lrad: lrad$pack $GRi,$GRk,$LRAE,$LRAD,$LRAS */
16421
16422 static SEM_PC
16423 SEM_FN_NAME (frvbf,lrad) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16424 {
16425 #define FLD(f) abuf->fields.sfmt_empty.f
16426   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16427   int UNUSED written = 0;
16428   IADDR UNUSED pc = abuf->addr;
16429   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16430
16431 ((void) 0); /*nop*/
16432
16433   return vpc;
16434 #undef FLD
16435 }
16436
16437 /* tlbpr: tlbpr$pack $GRi,$GRj,$TLBPRopx,$TLBPRL */
16438
16439 static SEM_PC
16440 SEM_FN_NAME (frvbf,tlbpr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16441 {
16442 #define FLD(f) abuf->fields.sfmt_empty.f
16443   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16444   int UNUSED written = 0;
16445   IADDR UNUSED pc = abuf->addr;
16446   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16447
16448 ((void) 0); /*nop*/
16449
16450   return vpc;
16451 #undef FLD
16452 }
16453
16454 /* cop1: cop1$pack $s6_1,$CPRi,$CPRj,$CPRk */
16455
16456 static SEM_PC
16457 SEM_FN_NAME (frvbf,cop1) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16458 {
16459 #define FLD(f) abuf->fields.sfmt_empty.f
16460   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16461   int UNUSED written = 0;
16462   IADDR UNUSED pc = abuf->addr;
16463   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16464
16465 ((void) 0); /*nop*/
16466
16467   return vpc;
16468 #undef FLD
16469 }
16470
16471 /* cop2: cop2$pack $s6_1,$CPRi,$CPRj,$CPRk */
16472
16473 static SEM_PC
16474 SEM_FN_NAME (frvbf,cop2) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16475 {
16476 #define FLD(f) abuf->fields.sfmt_empty.f
16477   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16478   int UNUSED written = 0;
16479   IADDR UNUSED pc = abuf->addr;
16480   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16481
16482 ((void) 0); /*nop*/
16483
16484   return vpc;
16485 #undef FLD
16486 }
16487
16488 /* clrgr: clrgr$pack $GRk */
16489
16490 static SEM_PC
16491 SEM_FN_NAME (frvbf,clrgr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16492 {
16493 #define FLD(f) abuf->fields.sfmt_swapi.f
16494   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16495   int UNUSED written = 0;
16496   IADDR UNUSED pc = abuf->addr;
16497   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16498
16499 {
16500 frv_ref_SI (GET_H_GR (FLD (f_GRk)));
16501 frvbf_clear_ne_flags (current_cpu, FLD (f_GRk), 0);
16502 }
16503
16504   return vpc;
16505 #undef FLD
16506 }
16507
16508 /* clrfr: clrfr$pack $FRk */
16509
16510 static SEM_PC
16511 SEM_FN_NAME (frvbf,clrfr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16512 {
16513 #define FLD(f) abuf->fields.sfmt_cfmadds.f
16514   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16515   int UNUSED written = 0;
16516   IADDR UNUSED pc = abuf->addr;
16517   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16518
16519 {
16520 frv_ref_SI (GET_H_FR (FLD (f_FRk)));
16521 frvbf_clear_ne_flags (current_cpu, FLD (f_FRk), 1);
16522 }
16523
16524   return vpc;
16525 #undef FLD
16526 }
16527
16528 /* clrga: clrga$pack */
16529
16530 static SEM_PC
16531 SEM_FN_NAME (frvbf,clrga) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16532 {
16533 #define FLD(f) abuf->fields.sfmt_empty.f
16534   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16535   int UNUSED written = 0;
16536   IADDR UNUSED pc = abuf->addr;
16537   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16538
16539 frvbf_clear_ne_flags (current_cpu, -1, 0);
16540
16541   return vpc;
16542 #undef FLD
16543 }
16544
16545 /* clrfa: clrfa$pack */
16546
16547 static SEM_PC
16548 SEM_FN_NAME (frvbf,clrfa) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16549 {
16550 #define FLD(f) abuf->fields.sfmt_empty.f
16551   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16552   int UNUSED written = 0;
16553   IADDR UNUSED pc = abuf->addr;
16554   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16555
16556 frvbf_clear_ne_flags (current_cpu, -1, 1);
16557
16558   return vpc;
16559 #undef FLD
16560 }
16561
16562 /* commitgr: commitgr$pack $GRk */
16563
16564 static SEM_PC
16565 SEM_FN_NAME (frvbf,commitgr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16566 {
16567 #define FLD(f) abuf->fields.sfmt_setlos.f
16568   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16569   int UNUSED written = 0;
16570   IADDR UNUSED pc = abuf->addr;
16571   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16572
16573 frvbf_commit (current_cpu, FLD (f_GRk), 0);
16574
16575   return vpc;
16576 #undef FLD
16577 }
16578
16579 /* commitfr: commitfr$pack $FRk */
16580
16581 static SEM_PC
16582 SEM_FN_NAME (frvbf,commitfr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16583 {
16584 #define FLD(f) abuf->fields.sfmt_mhsethis.f
16585   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16586   int UNUSED written = 0;
16587   IADDR UNUSED pc = abuf->addr;
16588   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16589
16590 frvbf_commit (current_cpu, FLD (f_FRk), 1);
16591
16592   return vpc;
16593 #undef FLD
16594 }
16595
16596 /* commitga: commitga$pack */
16597
16598 static SEM_PC
16599 SEM_FN_NAME (frvbf,commitga) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16600 {
16601 #define FLD(f) abuf->fields.sfmt_empty.f
16602   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16603   int UNUSED written = 0;
16604   IADDR UNUSED pc = abuf->addr;
16605   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16606
16607 frvbf_commit (current_cpu, -1, 0);
16608
16609   return vpc;
16610 #undef FLD
16611 }
16612
16613 /* commitfa: commitfa$pack */
16614
16615 static SEM_PC
16616 SEM_FN_NAME (frvbf,commitfa) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16617 {
16618 #define FLD(f) abuf->fields.sfmt_empty.f
16619   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16620   int UNUSED written = 0;
16621   IADDR UNUSED pc = abuf->addr;
16622   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16623
16624 frvbf_commit (current_cpu, -1, 1);
16625
16626   return vpc;
16627 #undef FLD
16628 }
16629
16630 /* fitos: fitos$pack $FRintj,$FRk */
16631
16632 static SEM_PC
16633 SEM_FN_NAME (frvbf,fitos) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16634 {
16635 #define FLD(f) abuf->fields.sfmt_fditos.f
16636   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16637   int UNUSED written = 0;
16638   IADDR UNUSED pc = abuf->addr;
16639   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16640
16641   {
16642     SF opval = CGEN_CPU_FPU (current_cpu)->ops->floatsisf (CGEN_CPU_FPU (current_cpu), FPCONV_DEFAULT, GET_H_FR_INT (FLD (f_FRj)));
16643     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
16644     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
16645   }
16646
16647   return vpc;
16648 #undef FLD
16649 }
16650
16651 /* fstoi: fstoi$pack $FRj,$FRintk */
16652
16653 static SEM_PC
16654 SEM_FN_NAME (frvbf,fstoi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16655 {
16656 #define FLD(f) abuf->fields.sfmt_fdstoi.f
16657   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16658   int UNUSED written = 0;
16659   IADDR UNUSED pc = abuf->addr;
16660   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16661
16662   {
16663     SI opval = CGEN_CPU_FPU (current_cpu)->ops->fixsfsi (CGEN_CPU_FPU (current_cpu), FPCONV_DEFAULT, GET_H_FR (FLD (f_FRj)));
16664     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
16665     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
16666   }
16667
16668   return vpc;
16669 #undef FLD
16670 }
16671
16672 /* fitod: fitod$pack $FRintj,$FRdoublek */
16673
16674 static SEM_PC
16675 SEM_FN_NAME (frvbf,fitod) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16676 {
16677 #define FLD(f) abuf->fields.sfmt_fitod.f
16678   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16679   int UNUSED written = 0;
16680   IADDR UNUSED pc = abuf->addr;
16681   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16682
16683   {
16684     DF opval = CGEN_CPU_FPU (current_cpu)->ops->floatsidf (CGEN_CPU_FPU (current_cpu), FPCONV_DEFAULT, GET_H_FR_INT (FLD (f_FRj)));
16685     sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
16686     TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
16687   }
16688
16689   return vpc;
16690 #undef FLD
16691 }
16692
16693 /* fdtoi: fdtoi$pack $FRdoublej,$FRintk */
16694
16695 static SEM_PC
16696 SEM_FN_NAME (frvbf,fdtoi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16697 {
16698 #define FLD(f) abuf->fields.sfmt_fdtoi.f
16699   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16700   int UNUSED written = 0;
16701   IADDR UNUSED pc = abuf->addr;
16702   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16703
16704   {
16705     SI opval = CGEN_CPU_FPU (current_cpu)->ops->fixdfsi (CGEN_CPU_FPU (current_cpu), FPCONV_DEFAULT, GET_H_FR_DOUBLE (FLD (f_FRj)));
16706     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
16707     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
16708   }
16709
16710   return vpc;
16711 #undef FLD
16712 }
16713
16714 /* fditos: fditos$pack $FRintj,$FRk */
16715
16716 static SEM_PC
16717 SEM_FN_NAME (frvbf,fditos) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16718 {
16719 #define FLD(f) abuf->fields.sfmt_fditos.f
16720   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16721   int UNUSED written = 0;
16722   IADDR UNUSED pc = abuf->addr;
16723   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16724
16725 {
16726   {
16727     SF opval = CGEN_CPU_FPU (current_cpu)->ops->floatsisf (CGEN_CPU_FPU (current_cpu), FPCONV_DEFAULT, GET_H_FR_INT (FLD (f_FRj)));
16728     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
16729     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
16730   }
16731   {
16732     SF opval = CGEN_CPU_FPU (current_cpu)->ops->floatsisf (CGEN_CPU_FPU (current_cpu), FPCONV_DEFAULT, GET_H_FR_INT (ADDSI (FLD (f_FRj), 1)));
16733     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ADDSI (FLD (f_FRk), 1), opval);
16734     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
16735   }
16736 }
16737
16738   return vpc;
16739 #undef FLD
16740 }
16741
16742 /* fdstoi: fdstoi$pack $FRj,$FRintk */
16743
16744 static SEM_PC
16745 SEM_FN_NAME (frvbf,fdstoi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16746 {
16747 #define FLD(f) abuf->fields.sfmt_fdstoi.f
16748   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16749   int UNUSED written = 0;
16750   IADDR UNUSED pc = abuf->addr;
16751   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16752
16753 {
16754   {
16755     SI opval = CGEN_CPU_FPU (current_cpu)->ops->fixsfsi (CGEN_CPU_FPU (current_cpu), FPCONV_DEFAULT, GET_H_FR (FLD (f_FRj)));
16756     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
16757     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
16758   }
16759   {
16760     USI opval = CGEN_CPU_FPU (current_cpu)->ops->fixsfsi (CGEN_CPU_FPU (current_cpu), FPCONV_DEFAULT, GET_H_FR (ADDSI (FLD (f_FRj), 1)));
16761     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ADDSI (FLD (f_FRk), 1), opval);
16762     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
16763   }
16764 }
16765
16766   return vpc;
16767 #undef FLD
16768 }
16769
16770 /* nfditos: nfditos$pack $FRintj,$FRk */
16771
16772 static SEM_PC
16773 SEM_FN_NAME (frvbf,nfditos) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16774 {
16775 #define FLD(f) abuf->fields.sfmt_fditos.f
16776   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16777   int UNUSED written = 0;
16778   IADDR UNUSED pc = abuf->addr;
16779   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16780
16781 {
16782 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
16783   {
16784     SF opval = CGEN_CPU_FPU (current_cpu)->ops->floatsisf (CGEN_CPU_FPU (current_cpu), FPCONV_DEFAULT, GET_H_FR_INT (FLD (f_FRj)));
16785     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
16786     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
16787   }
16788 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
16789   {
16790     SF opval = CGEN_CPU_FPU (current_cpu)->ops->floatsisf (CGEN_CPU_FPU (current_cpu), FPCONV_DEFAULT, GET_H_FR_INT (ADDSI (FLD (f_FRj), 1)));
16791     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ADDSI (FLD (f_FRk), 1), opval);
16792     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
16793   }
16794 }
16795
16796   return vpc;
16797 #undef FLD
16798 }
16799
16800 /* nfdstoi: nfdstoi$pack $FRj,$FRintk */
16801
16802 static SEM_PC
16803 SEM_FN_NAME (frvbf,nfdstoi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16804 {
16805 #define FLD(f) abuf->fields.sfmt_fdstoi.f
16806   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16807   int UNUSED written = 0;
16808   IADDR UNUSED pc = abuf->addr;
16809   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16810
16811 {
16812 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
16813   {
16814     SI opval = CGEN_CPU_FPU (current_cpu)->ops->fixsfsi (CGEN_CPU_FPU (current_cpu), FPCONV_DEFAULT, GET_H_FR (FLD (f_FRj)));
16815     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
16816     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
16817   }
16818 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
16819   {
16820     USI opval = CGEN_CPU_FPU (current_cpu)->ops->fixsfsi (CGEN_CPU_FPU (current_cpu), FPCONV_DEFAULT, GET_H_FR (ADDSI (FLD (f_FRj), 1)));
16821     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ADDSI (FLD (f_FRk), 1), opval);
16822     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
16823   }
16824 }
16825
16826   return vpc;
16827 #undef FLD
16828 }
16829
16830 /* cfitos: cfitos$pack $FRintj,$FRk,$CCi,$cond */
16831
16832 static SEM_PC
16833 SEM_FN_NAME (frvbf,cfitos) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16834 {
16835 #define FLD(f) abuf->fields.sfmt_cfitos.f
16836   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16837   int UNUSED written = 0;
16838   IADDR UNUSED pc = abuf->addr;
16839   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16840
16841 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
16842   {
16843     SF opval = CGEN_CPU_FPU (current_cpu)->ops->floatsisf (CGEN_CPU_FPU (current_cpu), FPCONV_DEFAULT, GET_H_FR_INT (FLD (f_FRj)));
16844     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
16845     written |= (1 << 3);
16846     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
16847   }
16848 }
16849
16850   abuf->written = written;
16851   return vpc;
16852 #undef FLD
16853 }
16854
16855 /* cfstoi: cfstoi$pack $FRj,$FRintk,$CCi,$cond */
16856
16857 static SEM_PC
16858 SEM_FN_NAME (frvbf,cfstoi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16859 {
16860 #define FLD(f) abuf->fields.sfmt_cfstoi.f
16861   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16862   int UNUSED written = 0;
16863   IADDR UNUSED pc = abuf->addr;
16864   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16865
16866 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
16867   {
16868     SI opval = CGEN_CPU_FPU (current_cpu)->ops->fixsfsi (CGEN_CPU_FPU (current_cpu), FPCONV_DEFAULT, GET_H_FR (FLD (f_FRj)));
16869     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
16870     written |= (1 << 3);
16871     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
16872   }
16873 }
16874
16875   abuf->written = written;
16876   return vpc;
16877 #undef FLD
16878 }
16879
16880 /* nfitos: nfitos$pack $FRintj,$FRk */
16881
16882 static SEM_PC
16883 SEM_FN_NAME (frvbf,nfitos) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16884 {
16885 #define FLD(f) abuf->fields.sfmt_fditos.f
16886   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16887   int UNUSED written = 0;
16888   IADDR UNUSED pc = abuf->addr;
16889   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16890
16891 {
16892 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
16893   {
16894     SF opval = CGEN_CPU_FPU (current_cpu)->ops->floatsisf (CGEN_CPU_FPU (current_cpu), FPCONV_DEFAULT, GET_H_FR_INT (FLD (f_FRj)));
16895     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
16896     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
16897   }
16898 }
16899
16900   return vpc;
16901 #undef FLD
16902 }
16903
16904 /* nfstoi: nfstoi$pack $FRj,$FRintk */
16905
16906 static SEM_PC
16907 SEM_FN_NAME (frvbf,nfstoi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16908 {
16909 #define FLD(f) abuf->fields.sfmt_fdstoi.f
16910   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16911   int UNUSED written = 0;
16912   IADDR UNUSED pc = abuf->addr;
16913   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16914
16915 {
16916 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
16917   {
16918     SI opval = CGEN_CPU_FPU (current_cpu)->ops->fixsfsi (CGEN_CPU_FPU (current_cpu), FPCONV_DEFAULT, GET_H_FR (FLD (f_FRj)));
16919     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
16920     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
16921   }
16922 }
16923
16924   return vpc;
16925 #undef FLD
16926 }
16927
16928 /* fmovs: fmovs$pack $FRj,$FRk */
16929
16930 static SEM_PC
16931 SEM_FN_NAME (frvbf,fmovs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16932 {
16933 #define FLD(f) abuf->fields.sfmt_cfmadds.f
16934   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16935   int UNUSED written = 0;
16936   IADDR UNUSED pc = abuf->addr;
16937   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16938
16939   {
16940     SF opval = GET_H_FR (FLD (f_FRj));
16941     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
16942     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
16943   }
16944
16945   return vpc;
16946 #undef FLD
16947 }
16948
16949 /* fmovd: fmovd$pack $FRdoublej,$FRdoublek */
16950
16951 static SEM_PC
16952 SEM_FN_NAME (frvbf,fmovd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16953 {
16954 #define FLD(f) abuf->fields.sfmt_fmaddd.f
16955   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16956   int UNUSED written = 0;
16957   IADDR UNUSED pc = abuf->addr;
16958   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16959
16960   {
16961     DF opval = GET_H_FR_DOUBLE (FLD (f_FRj));
16962     sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
16963     TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
16964   }
16965
16966   return vpc;
16967 #undef FLD
16968 }
16969
16970 /* fdmovs: fdmovs$pack $FRj,$FRk */
16971
16972 static SEM_PC
16973 SEM_FN_NAME (frvbf,fdmovs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16974 {
16975 #define FLD(f) abuf->fields.sfmt_fdmadds.f
16976   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16977   int UNUSED written = 0;
16978   IADDR UNUSED pc = abuf->addr;
16979   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16980
16981 {
16982   {
16983     SF opval = GET_H_FR (FLD (f_FRj));
16984     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
16985     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
16986   }
16987   {
16988     SF opval = GET_H_FR (ADDSI (FLD (f_FRj), 1));
16989     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ADDSI (FLD (f_FRk), 1), opval);
16990     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
16991   }
16992 }
16993
16994   return vpc;
16995 #undef FLD
16996 }
16997
16998 /* cfmovs: cfmovs$pack $FRj,$FRk,$CCi,$cond */
16999
17000 static SEM_PC
17001 SEM_FN_NAME (frvbf,cfmovs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17002 {
17003 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17004   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17005   int UNUSED written = 0;
17006   IADDR UNUSED pc = abuf->addr;
17007   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17008
17009 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
17010   {
17011     SF opval = GET_H_FR (FLD (f_FRj));
17012     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17013     written |= (1 << 3);
17014     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17015   }
17016 }
17017
17018   abuf->written = written;
17019   return vpc;
17020 #undef FLD
17021 }
17022
17023 /* fnegs: fnegs$pack $FRj,$FRk */
17024
17025 static SEM_PC
17026 SEM_FN_NAME (frvbf,fnegs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17027 {
17028 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17029   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17030   int UNUSED written = 0;
17031   IADDR UNUSED pc = abuf->addr;
17032   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17033
17034   {
17035     SF opval = CGEN_CPU_FPU (current_cpu)->ops->negsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17036     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17037     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17038   }
17039
17040   return vpc;
17041 #undef FLD
17042 }
17043
17044 /* fnegd: fnegd$pack $FRdoublej,$FRdoublek */
17045
17046 static SEM_PC
17047 SEM_FN_NAME (frvbf,fnegd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17048 {
17049 #define FLD(f) abuf->fields.sfmt_fmaddd.f
17050   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17051   int UNUSED written = 0;
17052   IADDR UNUSED pc = abuf->addr;
17053   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17054
17055   {
17056     DF opval = CGEN_CPU_FPU (current_cpu)->ops->negdf (CGEN_CPU_FPU (current_cpu), GET_H_FR_DOUBLE (FLD (f_FRj)));
17057     sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
17058     TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
17059   }
17060
17061   return vpc;
17062 #undef FLD
17063 }
17064
17065 /* fdnegs: fdnegs$pack $FRj,$FRk */
17066
17067 static SEM_PC
17068 SEM_FN_NAME (frvbf,fdnegs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17069 {
17070 #define FLD(f) abuf->fields.sfmt_fdmadds.f
17071   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17072   int UNUSED written = 0;
17073   IADDR UNUSED pc = abuf->addr;
17074   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17075
17076 {
17077   {
17078     SF opval = CGEN_CPU_FPU (current_cpu)->ops->negsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17079     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17080     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17081   }
17082   {
17083     SF opval = CGEN_CPU_FPU (current_cpu)->ops->negsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (ADDSI (FLD (f_FRj), 1)));
17084     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ADDSI (FLD (f_FRk), 1), opval);
17085     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17086   }
17087 }
17088
17089   return vpc;
17090 #undef FLD
17091 }
17092
17093 /* cfnegs: cfnegs$pack $FRj,$FRk,$CCi,$cond */
17094
17095 static SEM_PC
17096 SEM_FN_NAME (frvbf,cfnegs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17097 {
17098 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17099   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17100   int UNUSED written = 0;
17101   IADDR UNUSED pc = abuf->addr;
17102   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17103
17104 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
17105   {
17106     SF opval = CGEN_CPU_FPU (current_cpu)->ops->negsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17107     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17108     written |= (1 << 3);
17109     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17110   }
17111 }
17112
17113   abuf->written = written;
17114   return vpc;
17115 #undef FLD
17116 }
17117
17118 /* fabss: fabss$pack $FRj,$FRk */
17119
17120 static SEM_PC
17121 SEM_FN_NAME (frvbf,fabss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17122 {
17123 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17124   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17125   int UNUSED written = 0;
17126   IADDR UNUSED pc = abuf->addr;
17127   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17128
17129   {
17130     SF opval = CGEN_CPU_FPU (current_cpu)->ops->abssf (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17131     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17132     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17133   }
17134
17135   return vpc;
17136 #undef FLD
17137 }
17138
17139 /* fabsd: fabsd$pack $FRdoublej,$FRdoublek */
17140
17141 static SEM_PC
17142 SEM_FN_NAME (frvbf,fabsd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17143 {
17144 #define FLD(f) abuf->fields.sfmt_fmaddd.f
17145   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17146   int UNUSED written = 0;
17147   IADDR UNUSED pc = abuf->addr;
17148   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17149
17150   {
17151     DF opval = CGEN_CPU_FPU (current_cpu)->ops->absdf (CGEN_CPU_FPU (current_cpu), GET_H_FR_DOUBLE (FLD (f_FRj)));
17152     sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
17153     TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
17154   }
17155
17156   return vpc;
17157 #undef FLD
17158 }
17159
17160 /* fdabss: fdabss$pack $FRj,$FRk */
17161
17162 static SEM_PC
17163 SEM_FN_NAME (frvbf,fdabss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17164 {
17165 #define FLD(f) abuf->fields.sfmt_fdmadds.f
17166   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17167   int UNUSED written = 0;
17168   IADDR UNUSED pc = abuf->addr;
17169   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17170
17171 {
17172   {
17173     SF opval = CGEN_CPU_FPU (current_cpu)->ops->abssf (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17174     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17175     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17176   }
17177   {
17178     SF opval = CGEN_CPU_FPU (current_cpu)->ops->abssf (CGEN_CPU_FPU (current_cpu), GET_H_FR (ADDSI (FLD (f_FRj), 1)));
17179     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ADDSI (FLD (f_FRk), 1), opval);
17180     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17181   }
17182 }
17183
17184   return vpc;
17185 #undef FLD
17186 }
17187
17188 /* cfabss: cfabss$pack $FRj,$FRk,$CCi,$cond */
17189
17190 static SEM_PC
17191 SEM_FN_NAME (frvbf,cfabss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17192 {
17193 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17194   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17195   int UNUSED written = 0;
17196   IADDR UNUSED pc = abuf->addr;
17197   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17198
17199 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
17200   {
17201     SF opval = CGEN_CPU_FPU (current_cpu)->ops->abssf (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17202     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17203     written |= (1 << 3);
17204     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17205   }
17206 }
17207
17208   abuf->written = written;
17209   return vpc;
17210 #undef FLD
17211 }
17212
17213 /* fsqrts: fsqrts$pack $FRj,$FRk */
17214
17215 static SEM_PC
17216 SEM_FN_NAME (frvbf,fsqrts) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17217 {
17218 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17219   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17220   int UNUSED written = 0;
17221   IADDR UNUSED pc = abuf->addr;
17222   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17223
17224   {
17225     SF opval = CGEN_CPU_FPU (current_cpu)->ops->sqrtsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17226     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17227     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17228   }
17229
17230   return vpc;
17231 #undef FLD
17232 }
17233
17234 /* fdsqrts: fdsqrts$pack $FRj,$FRk */
17235
17236 static SEM_PC
17237 SEM_FN_NAME (frvbf,fdsqrts) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17238 {
17239 #define FLD(f) abuf->fields.sfmt_fdmadds.f
17240   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17241   int UNUSED written = 0;
17242   IADDR UNUSED pc = abuf->addr;
17243   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17244
17245 {
17246   {
17247     SF opval = CGEN_CPU_FPU (current_cpu)->ops->sqrtsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17248     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17249     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17250   }
17251   {
17252     SF opval = CGEN_CPU_FPU (current_cpu)->ops->sqrtsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (ADDSI (FLD (f_FRj), 1)));
17253     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ADDSI (FLD (f_FRk), 1), opval);
17254     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17255   }
17256 }
17257
17258   return vpc;
17259 #undef FLD
17260 }
17261
17262 /* nfdsqrts: nfdsqrts$pack $FRj,$FRk */
17263
17264 static SEM_PC
17265 SEM_FN_NAME (frvbf,nfdsqrts) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17266 {
17267 #define FLD(f) abuf->fields.sfmt_fdmadds.f
17268   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17269   int UNUSED written = 0;
17270   IADDR UNUSED pc = abuf->addr;
17271   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17272
17273 {
17274 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
17275   {
17276     SF opval = CGEN_CPU_FPU (current_cpu)->ops->sqrtsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17277     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17278     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17279   }
17280 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
17281   {
17282     SF opval = CGEN_CPU_FPU (current_cpu)->ops->sqrtsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (ADDSI (FLD (f_FRj), 1)));
17283     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ADDSI (FLD (f_FRk), 1), opval);
17284     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17285   }
17286 }
17287
17288   return vpc;
17289 #undef FLD
17290 }
17291
17292 /* fsqrtd: fsqrtd$pack $FRdoublej,$FRdoublek */
17293
17294 static SEM_PC
17295 SEM_FN_NAME (frvbf,fsqrtd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17296 {
17297 #define FLD(f) abuf->fields.sfmt_fmaddd.f
17298   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17299   int UNUSED written = 0;
17300   IADDR UNUSED pc = abuf->addr;
17301   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17302
17303   {
17304     DF opval = CGEN_CPU_FPU (current_cpu)->ops->sqrtdf (CGEN_CPU_FPU (current_cpu), GET_H_FR_DOUBLE (FLD (f_FRj)));
17305     sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
17306     TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
17307   }
17308
17309   return vpc;
17310 #undef FLD
17311 }
17312
17313 /* cfsqrts: cfsqrts$pack $FRj,$FRk,$CCi,$cond */
17314
17315 static SEM_PC
17316 SEM_FN_NAME (frvbf,cfsqrts) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17317 {
17318 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17319   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17320   int UNUSED written = 0;
17321   IADDR UNUSED pc = abuf->addr;
17322   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17323
17324 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
17325   {
17326     SF opval = CGEN_CPU_FPU (current_cpu)->ops->sqrtsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17327     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17328     written |= (1 << 3);
17329     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17330   }
17331 }
17332
17333   abuf->written = written;
17334   return vpc;
17335 #undef FLD
17336 }
17337
17338 /* nfsqrts: nfsqrts$pack $FRj,$FRk */
17339
17340 static SEM_PC
17341 SEM_FN_NAME (frvbf,nfsqrts) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17342 {
17343 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17344   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17345   int UNUSED written = 0;
17346   IADDR UNUSED pc = abuf->addr;
17347   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17348
17349 {
17350 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
17351   {
17352     SF opval = CGEN_CPU_FPU (current_cpu)->ops->sqrtsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17353     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17354     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17355   }
17356 }
17357
17358   return vpc;
17359 #undef FLD
17360 }
17361
17362 /* fadds: fadds$pack $FRi,$FRj,$FRk */
17363
17364 static SEM_PC
17365 SEM_FN_NAME (frvbf,fadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17366 {
17367 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17368   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17369   int UNUSED written = 0;
17370   IADDR UNUSED pc = abuf->addr;
17371   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17372
17373   {
17374     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)));
17375     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17376     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17377   }
17378
17379   return vpc;
17380 #undef FLD
17381 }
17382
17383 /* fsubs: fsubs$pack $FRi,$FRj,$FRk */
17384
17385 static SEM_PC
17386 SEM_FN_NAME (frvbf,fsubs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17387 {
17388 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17389   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17390   int UNUSED written = 0;
17391   IADDR UNUSED pc = abuf->addr;
17392   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17393
17394   {
17395     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)));
17396     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17397     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17398   }
17399
17400   return vpc;
17401 #undef FLD
17402 }
17403
17404 /* fmuls: fmuls$pack $FRi,$FRj,$FRk */
17405
17406 static SEM_PC
17407 SEM_FN_NAME (frvbf,fmuls) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17408 {
17409 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17410   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17411   int UNUSED written = 0;
17412   IADDR UNUSED pc = abuf->addr;
17413   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17414
17415   {
17416     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)));
17417     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17418     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17419   }
17420
17421   return vpc;
17422 #undef FLD
17423 }
17424
17425 /* fdivs: fdivs$pack $FRi,$FRj,$FRk */
17426
17427 static SEM_PC
17428 SEM_FN_NAME (frvbf,fdivs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17429 {
17430 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17431   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17432   int UNUSED written = 0;
17433   IADDR UNUSED pc = abuf->addr;
17434   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17435
17436   {
17437     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)));
17438     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17439     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17440   }
17441
17442   return vpc;
17443 #undef FLD
17444 }
17445
17446 /* faddd: faddd$pack $FRdoublei,$FRdoublej,$FRdoublek */
17447
17448 static SEM_PC
17449 SEM_FN_NAME (frvbf,faddd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17450 {
17451 #define FLD(f) abuf->fields.sfmt_fmaddd.f
17452   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17453   int UNUSED written = 0;
17454   IADDR UNUSED pc = abuf->addr;
17455   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17456
17457   {
17458     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)));
17459     sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
17460     TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
17461   }
17462
17463   return vpc;
17464 #undef FLD
17465 }
17466
17467 /* fsubd: fsubd$pack $FRdoublei,$FRdoublej,$FRdoublek */
17468
17469 static SEM_PC
17470 SEM_FN_NAME (frvbf,fsubd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17471 {
17472 #define FLD(f) abuf->fields.sfmt_fmaddd.f
17473   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17474   int UNUSED written = 0;
17475   IADDR UNUSED pc = abuf->addr;
17476   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17477
17478   {
17479     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)));
17480     sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
17481     TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
17482   }
17483
17484   return vpc;
17485 #undef FLD
17486 }
17487
17488 /* fmuld: fmuld$pack $FRdoublei,$FRdoublej,$FRdoublek */
17489
17490 static SEM_PC
17491 SEM_FN_NAME (frvbf,fmuld) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17492 {
17493 #define FLD(f) abuf->fields.sfmt_fmaddd.f
17494   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17495   int UNUSED written = 0;
17496   IADDR UNUSED pc = abuf->addr;
17497   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17498
17499   {
17500     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)));
17501     sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
17502     TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
17503   }
17504
17505   return vpc;
17506 #undef FLD
17507 }
17508
17509 /* fdivd: fdivd$pack $FRdoublei,$FRdoublej,$FRdoublek */
17510
17511 static SEM_PC
17512 SEM_FN_NAME (frvbf,fdivd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17513 {
17514 #define FLD(f) abuf->fields.sfmt_fmaddd.f
17515   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17516   int UNUSED written = 0;
17517   IADDR UNUSED pc = abuf->addr;
17518   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17519
17520   {
17521     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)));
17522     sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
17523     TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
17524   }
17525
17526   return vpc;
17527 #undef FLD
17528 }
17529
17530 /* cfadds: cfadds$pack $FRi,$FRj,$FRk,$CCi,$cond */
17531
17532 static SEM_PC
17533 SEM_FN_NAME (frvbf,cfadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17534 {
17535 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17536   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17537   int UNUSED written = 0;
17538   IADDR UNUSED pc = abuf->addr;
17539   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17540
17541 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
17542   {
17543     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)));
17544     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17545     written |= (1 << 4);
17546     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17547   }
17548 }
17549
17550   abuf->written = written;
17551   return vpc;
17552 #undef FLD
17553 }
17554
17555 /* cfsubs: cfsubs$pack $FRi,$FRj,$FRk,$CCi,$cond */
17556
17557 static SEM_PC
17558 SEM_FN_NAME (frvbf,cfsubs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17559 {
17560 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17561   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17562   int UNUSED written = 0;
17563   IADDR UNUSED pc = abuf->addr;
17564   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17565
17566 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
17567   {
17568     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)));
17569     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17570     written |= (1 << 4);
17571     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17572   }
17573 }
17574
17575   abuf->written = written;
17576   return vpc;
17577 #undef FLD
17578 }
17579
17580 /* cfmuls: cfmuls$pack $FRi,$FRj,$FRk,$CCi,$cond */
17581
17582 static SEM_PC
17583 SEM_FN_NAME (frvbf,cfmuls) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17584 {
17585 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17586   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17587   int UNUSED written = 0;
17588   IADDR UNUSED pc = abuf->addr;
17589   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17590
17591 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
17592   {
17593     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)));
17594     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17595     written |= (1 << 4);
17596     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17597   }
17598 }
17599
17600   abuf->written = written;
17601   return vpc;
17602 #undef FLD
17603 }
17604
17605 /* cfdivs: cfdivs$pack $FRi,$FRj,$FRk,$CCi,$cond */
17606
17607 static SEM_PC
17608 SEM_FN_NAME (frvbf,cfdivs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17609 {
17610 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17611   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17612   int UNUSED written = 0;
17613   IADDR UNUSED pc = abuf->addr;
17614   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17615
17616 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
17617   {
17618     SF opval = CGEN_CPU_FPU (current_cpu)->ops->divsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)));
17619     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17620     written |= (1 << 4);
17621     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17622   }
17623 }
17624
17625   abuf->written = written;
17626   return vpc;
17627 #undef FLD
17628 }
17629
17630 /* nfadds: nfadds$pack $FRi,$FRj,$FRk */
17631
17632 static SEM_PC
17633 SEM_FN_NAME (frvbf,nfadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17634 {
17635 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17636   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17637   int UNUSED written = 0;
17638   IADDR UNUSED pc = abuf->addr;
17639   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17640
17641 {
17642 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
17643   {
17644     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)));
17645     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17646     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17647   }
17648 }
17649
17650   return vpc;
17651 #undef FLD
17652 }
17653
17654 /* nfsubs: nfsubs$pack $FRi,$FRj,$FRk */
17655
17656 static SEM_PC
17657 SEM_FN_NAME (frvbf,nfsubs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17658 {
17659 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17660   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17661   int UNUSED written = 0;
17662   IADDR UNUSED pc = abuf->addr;
17663   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17664
17665 {
17666 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
17667   {
17668     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)));
17669     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17670     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17671   }
17672 }
17673
17674   return vpc;
17675 #undef FLD
17676 }
17677
17678 /* nfmuls: nfmuls$pack $FRi,$FRj,$FRk */
17679
17680 static SEM_PC
17681 SEM_FN_NAME (frvbf,nfmuls) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17682 {
17683 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17684   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17685   int UNUSED written = 0;
17686   IADDR UNUSED pc = abuf->addr;
17687   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17688
17689 {
17690 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
17691   {
17692     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)));
17693     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17694     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17695   }
17696 }
17697
17698   return vpc;
17699 #undef FLD
17700 }
17701
17702 /* nfdivs: nfdivs$pack $FRi,$FRj,$FRk */
17703
17704 static SEM_PC
17705 SEM_FN_NAME (frvbf,nfdivs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17706 {
17707 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17708   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17709   int UNUSED written = 0;
17710   IADDR UNUSED pc = abuf->addr;
17711   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17712
17713 {
17714 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
17715   {
17716     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)));
17717     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17718     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17719   }
17720 }
17721
17722   return vpc;
17723 #undef FLD
17724 }
17725
17726 /* fcmps: fcmps$pack $FRi,$FRj,$FCCi_2 */
17727
17728 static SEM_PC
17729 SEM_FN_NAME (frvbf,fcmps) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17730 {
17731 #define FLD(f) abuf->fields.sfmt_cfcmps.f
17732   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17733   int UNUSED written = 0;
17734   IADDR UNUSED pc = abuf->addr;
17735   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17736
17737 if (CGEN_CPU_FPU (current_cpu)->ops->gtsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)))) {
17738   {
17739     UQI opval = 2;
17740     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17741     written |= (1 << 2);
17742     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17743   }
17744 } else {
17745 if (CGEN_CPU_FPU (current_cpu)->ops->eqsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)))) {
17746   {
17747     UQI opval = 8;
17748     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17749     written |= (1 << 2);
17750     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17751   }
17752 } else {
17753 if (CGEN_CPU_FPU (current_cpu)->ops->ltsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)))) {
17754   {
17755     UQI opval = 4;
17756     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17757     written |= (1 << 2);
17758     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17759   }
17760 } else {
17761   {
17762     UQI opval = 1;
17763     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17764     written |= (1 << 2);
17765     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17766   }
17767 }
17768 }
17769 }
17770
17771   abuf->written = written;
17772   return vpc;
17773 #undef FLD
17774 }
17775
17776 /* fcmpd: fcmpd$pack $FRdoublei,$FRdoublej,$FCCi_2 */
17777
17778 static SEM_PC
17779 SEM_FN_NAME (frvbf,fcmpd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17780 {
17781 #define FLD(f) abuf->fields.sfmt_fcmpd.f
17782   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17783   int UNUSED written = 0;
17784   IADDR UNUSED pc = abuf->addr;
17785   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17786
17787 if (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)))) {
17788   {
17789     UQI opval = 2;
17790     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17791     written |= (1 << 2);
17792     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17793   }
17794 } else {
17795 if (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)))) {
17796   {
17797     UQI opval = 8;
17798     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17799     written |= (1 << 2);
17800     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17801   }
17802 } else {
17803 if (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)))) {
17804   {
17805     UQI opval = 4;
17806     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17807     written |= (1 << 2);
17808     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17809   }
17810 } else {
17811   {
17812     UQI opval = 1;
17813     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17814     written |= (1 << 2);
17815     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17816   }
17817 }
17818 }
17819 }
17820
17821   abuf->written = written;
17822   return vpc;
17823 #undef FLD
17824 }
17825
17826 /* cfcmps: cfcmps$pack $FRi,$FRj,$FCCi_2,$CCi,$cond */
17827
17828 static SEM_PC
17829 SEM_FN_NAME (frvbf,cfcmps) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17830 {
17831 #define FLD(f) abuf->fields.sfmt_cfcmps.f
17832   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17833   int UNUSED written = 0;
17834   IADDR UNUSED pc = abuf->addr;
17835   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17836
17837 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
17838 if (CGEN_CPU_FPU (current_cpu)->ops->gtsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)))) {
17839   {
17840     UQI opval = 2;
17841     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17842     written |= (1 << 4);
17843     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17844   }
17845 } else {
17846 if (CGEN_CPU_FPU (current_cpu)->ops->eqsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)))) {
17847   {
17848     UQI opval = 8;
17849     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17850     written |= (1 << 4);
17851     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17852   }
17853 } else {
17854 if (CGEN_CPU_FPU (current_cpu)->ops->ltsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)))) {
17855   {
17856     UQI opval = 4;
17857     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17858     written |= (1 << 4);
17859     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17860   }
17861 } else {
17862   {
17863     UQI opval = 1;
17864     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17865     written |= (1 << 4);
17866     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17867   }
17868 }
17869 }
17870 }
17871 }
17872
17873   abuf->written = written;
17874   return vpc;
17875 #undef FLD
17876 }
17877
17878 /* fdcmps: fdcmps$pack $FRi,$FRj,$FCCi_2 */
17879
17880 static SEM_PC
17881 SEM_FN_NAME (frvbf,fdcmps) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17882 {
17883 #define FLD(f) abuf->fields.sfmt_nfdcmps.f
17884   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17885   int UNUSED written = 0;
17886   IADDR UNUSED pc = abuf->addr;
17887   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17888
17889 {
17890 if (CGEN_CPU_FPU (current_cpu)->ops->gtsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)))) {
17891   {
17892     UQI opval = 2;
17893     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17894     written |= (1 << 7);
17895     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17896   }
17897 } else {
17898 if (CGEN_CPU_FPU (current_cpu)->ops->eqsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)))) {
17899   {
17900     UQI opval = 8;
17901     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17902     written |= (1 << 7);
17903     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17904   }
17905 } else {
17906 if (CGEN_CPU_FPU (current_cpu)->ops->ltsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)))) {
17907   {
17908     UQI opval = 4;
17909     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17910     written |= (1 << 7);
17911     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17912   }
17913 } else {
17914   {
17915     UQI opval = 1;
17916     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17917     written |= (1 << 7);
17918     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17919   }
17920 }
17921 }
17922 }
17923 if (CGEN_CPU_FPU (current_cpu)->ops->gtsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (ADDSI (FLD (f_FRi), 1)), GET_H_FR (ADDSI (FLD (f_FRj), 1)))) {
17924   {
17925     UQI opval = 2;
17926     sim_queue_qi_write (current_cpu, & CPU (h_fccr[ADDSI (FLD (f_FCCi_2), 1)]), opval);
17927     written |= (1 << 8);
17928     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17929   }
17930 } else {
17931 if (CGEN_CPU_FPU (current_cpu)->ops->eqsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (ADDSI (FLD (f_FRi), 1)), GET_H_FR (ADDSI (FLD (f_FRj), 1)))) {
17932   {
17933     UQI opval = 8;
17934     sim_queue_qi_write (current_cpu, & CPU (h_fccr[ADDSI (FLD (f_FCCi_2), 1)]), opval);
17935     written |= (1 << 8);
17936     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17937   }
17938 } else {
17939 if (CGEN_CPU_FPU (current_cpu)->ops->ltsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (ADDSI (FLD (f_FRi), 1)), GET_H_FR (ADDSI (FLD (f_FRj), 1)))) {
17940   {
17941     UQI opval = 4;
17942     sim_queue_qi_write (current_cpu, & CPU (h_fccr[ADDSI (FLD (f_FCCi_2), 1)]), opval);
17943     written |= (1 << 8);
17944     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17945   }
17946 } else {
17947   {
17948     UQI opval = 1;
17949     sim_queue_qi_write (current_cpu, & CPU (h_fccr[ADDSI (FLD (f_FCCi_2), 1)]), opval);
17950     written |= (1 << 8);
17951     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17952   }
17953 }
17954 }
17955 }
17956 }
17957
17958   abuf->written = written;
17959   return vpc;
17960 #undef FLD
17961 }
17962
17963 /* fmadds: fmadds$pack $FRi,$FRj,$FRk */
17964
17965 static SEM_PC
17966 SEM_FN_NAME (frvbf,fmadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17967 {
17968 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17969   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17970   int UNUSED written = 0;
17971   IADDR UNUSED pc = abuf->addr;
17972   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17973
17974   {
17975     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)));
17976     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17977     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17978   }
17979
17980   return vpc;
17981 #undef FLD
17982 }
17983
17984 /* fmsubs: fmsubs$pack $FRi,$FRj,$FRk */
17985
17986 static SEM_PC
17987 SEM_FN_NAME (frvbf,fmsubs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17988 {
17989 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17990   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17991   int UNUSED written = 0;
17992   IADDR UNUSED pc = abuf->addr;
17993   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17994
17995   {
17996     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)));
17997     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17998     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17999   }
18000
18001   return vpc;
18002 #undef FLD
18003 }
18004
18005 /* fmaddd: fmaddd$pack $FRdoublei,$FRdoublej,$FRdoublek */
18006
18007 static SEM_PC
18008 SEM_FN_NAME (frvbf,fmaddd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18009 {
18010 #define FLD(f) abuf->fields.sfmt_fmaddd.f
18011   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18012   int UNUSED written = 0;
18013   IADDR UNUSED pc = abuf->addr;
18014   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18015
18016   {
18017     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)));
18018     sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
18019     TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
18020   }
18021
18022   return vpc;
18023 #undef FLD
18024 }
18025
18026 /* fmsubd: fmsubd$pack $FRdoublei,$FRdoublej,$FRdoublek */
18027
18028 static SEM_PC
18029 SEM_FN_NAME (frvbf,fmsubd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18030 {
18031 #define FLD(f) abuf->fields.sfmt_fmaddd.f
18032   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18033   int UNUSED written = 0;
18034   IADDR UNUSED pc = abuf->addr;
18035   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18036
18037   {
18038     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)));
18039     sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
18040     TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
18041   }
18042
18043   return vpc;
18044 #undef FLD
18045 }
18046
18047 /* fdmadds: fdmadds$pack $FRi,$FRj,$FRk */
18048
18049 static SEM_PC
18050 SEM_FN_NAME (frvbf,fdmadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18051 {
18052 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18053   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18054   int UNUSED written = 0;
18055   IADDR UNUSED pc = abuf->addr;
18056   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18057
18058 {
18059   {
18060     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)));
18061     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18062     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18063   }
18064   {
18065     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 (ADDSI (FLD (f_FRi), 1)), GET_H_FR (ADDSI (FLD (f_FRj), 1))), GET_H_FR (ADDSI (FLD (f_FRk), 1)));
18066     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ADDSI (FLD (f_FRk), 1), opval);
18067     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18068   }
18069 }
18070
18071   return vpc;
18072 #undef FLD
18073 }
18074
18075 /* nfdmadds: nfdmadds$pack $FRi,$FRj,$FRk */
18076
18077 static SEM_PC
18078 SEM_FN_NAME (frvbf,nfdmadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18079 {
18080 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18081   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18082   int UNUSED written = 0;
18083   IADDR UNUSED pc = abuf->addr;
18084   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18085
18086 {
18087 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18088   {
18089     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)));
18090     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18091     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18092   }
18093 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18094   {
18095     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 (ADDSI (FLD (f_FRi), 1)), GET_H_FR (ADDSI (FLD (f_FRj), 1))), GET_H_FR (ADDSI (FLD (f_FRk), 1)));
18096     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ADDSI (FLD (f_FRk), 1), opval);
18097     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18098   }
18099 }
18100
18101   return vpc;
18102 #undef FLD
18103 }
18104
18105 /* cfmadds: cfmadds$pack $FRi,$FRj,$FRk,$CCi,$cond */
18106
18107 static SEM_PC
18108 SEM_FN_NAME (frvbf,cfmadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18109 {
18110 #define FLD(f) abuf->fields.sfmt_cfmadds.f
18111   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18112   int UNUSED written = 0;
18113   IADDR UNUSED pc = abuf->addr;
18114   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18115
18116 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
18117   {
18118     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)));
18119     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18120     written |= (1 << 5);
18121     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18122   }
18123 }
18124
18125   abuf->written = written;
18126   return vpc;
18127 #undef FLD
18128 }
18129
18130 /* cfmsubs: cfmsubs$pack $FRi,$FRj,$FRk,$CCi,$cond */
18131
18132 static SEM_PC
18133 SEM_FN_NAME (frvbf,cfmsubs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18134 {
18135 #define FLD(f) abuf->fields.sfmt_cfmadds.f
18136   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18137   int UNUSED written = 0;
18138   IADDR UNUSED pc = abuf->addr;
18139   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18140
18141 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
18142   {
18143     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)));
18144     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18145     written |= (1 << 5);
18146     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18147   }
18148 }
18149
18150   abuf->written = written;
18151   return vpc;
18152 #undef FLD
18153 }
18154
18155 /* nfmadds: nfmadds$pack $FRi,$FRj,$FRk */
18156
18157 static SEM_PC
18158 SEM_FN_NAME (frvbf,nfmadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18159 {
18160 #define FLD(f) abuf->fields.sfmt_cfmadds.f
18161   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18162   int UNUSED written = 0;
18163   IADDR UNUSED pc = abuf->addr;
18164   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18165
18166 {
18167 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18168   {
18169     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)));
18170     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18171     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18172   }
18173 }
18174
18175   return vpc;
18176 #undef FLD
18177 }
18178
18179 /* nfmsubs: nfmsubs$pack $FRi,$FRj,$FRk */
18180
18181 static SEM_PC
18182 SEM_FN_NAME (frvbf,nfmsubs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18183 {
18184 #define FLD(f) abuf->fields.sfmt_cfmadds.f
18185   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18186   int UNUSED written = 0;
18187   IADDR UNUSED pc = abuf->addr;
18188   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18189
18190 {
18191 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18192   {
18193     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)));
18194     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18195     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18196   }
18197 }
18198
18199   return vpc;
18200 #undef FLD
18201 }
18202
18203 /* fmas: fmas$pack $FRi,$FRj,$FRk */
18204
18205 static SEM_PC
18206 SEM_FN_NAME (frvbf,fmas) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18207 {
18208 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18209   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18210   int UNUSED written = 0;
18211   IADDR UNUSED pc = abuf->addr;
18212   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18213
18214 {
18215   {
18216     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)));
18217     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18218     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18219   }
18220   {
18221     SF opval = CGEN_CPU_FPU (current_cpu)->ops->addsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (ADDSI (FLD (f_FRi), 1)), GET_H_FR (ADDSI (FLD (f_FRj), 1)));
18222     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ADDSI (FLD (f_FRk), 1), opval);
18223     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18224   }
18225 }
18226
18227   return vpc;
18228 #undef FLD
18229 }
18230
18231 /* fmss: fmss$pack $FRi,$FRj,$FRk */
18232
18233 static SEM_PC
18234 SEM_FN_NAME (frvbf,fmss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18235 {
18236 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18237   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18238   int UNUSED written = 0;
18239   IADDR UNUSED pc = abuf->addr;
18240   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18241
18242 {
18243   {
18244     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)));
18245     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18246     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18247   }
18248   {
18249     SF opval = CGEN_CPU_FPU (current_cpu)->ops->subsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (ADDSI (FLD (f_FRi), 1)), GET_H_FR (ADDSI (FLD (f_FRj), 1)));
18250     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ADDSI (FLD (f_FRk), 1), opval);
18251     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18252   }
18253 }
18254
18255   return vpc;
18256 #undef FLD
18257 }
18258
18259 /* fdmas: fdmas$pack $FRi,$FRj,$FRk */
18260
18261 static SEM_PC
18262 SEM_FN_NAME (frvbf,fdmas) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18263 {
18264 #define FLD(f) abuf->fields.sfmt_fdmas.f
18265   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18266   int UNUSED written = 0;
18267   IADDR UNUSED pc = abuf->addr;
18268   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18269
18270 {
18271   {
18272     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)));
18273     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18274     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18275   }
18276   {
18277     SF opval = CGEN_CPU_FPU (current_cpu)->ops->addsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (ADDSI (FLD (f_FRi), 1)), GET_H_FR (ADDSI (FLD (f_FRj), 1)));
18278     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ADDSI (FLD (f_FRk), 1), opval);
18279     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18280   }
18281   {
18282     SF opval = CGEN_CPU_FPU (current_cpu)->ops->mulsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (ADDSI (FLD (f_FRi), 2)), GET_H_FR (ADDSI (FLD (f_FRj), 2)));
18283     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ADDSI (FLD (f_FRk), 2), opval);
18284     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18285   }
18286   {
18287     SF opval = CGEN_CPU_FPU (current_cpu)->ops->addsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (ADDSI (FLD (f_FRi), 3)), GET_H_FR (ADDSI (FLD (f_FRj), 3)));
18288     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ADDSI (FLD (f_FRk), 3), opval);
18289     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18290   }
18291 }
18292
18293   return vpc;
18294 #undef FLD
18295 }
18296
18297 /* fdmss: fdmss$pack $FRi,$FRj,$FRk */
18298
18299 static SEM_PC
18300 SEM_FN_NAME (frvbf,fdmss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18301 {
18302 #define FLD(f) abuf->fields.sfmt_fdmas.f
18303   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18304   int UNUSED written = 0;
18305   IADDR UNUSED pc = abuf->addr;
18306   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18307
18308 {
18309   {
18310     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)));
18311     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18312     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18313   }
18314   {
18315     SF opval = CGEN_CPU_FPU (current_cpu)->ops->subsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (ADDSI (FLD (f_FRi), 1)), GET_H_FR (ADDSI (FLD (f_FRj), 1)));
18316     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ADDSI (FLD (f_FRk), 1), opval);
18317     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18318   }
18319   {
18320     SF opval = CGEN_CPU_FPU (current_cpu)->ops->mulsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (ADDSI (FLD (f_FRi), 2)), GET_H_FR (ADDSI (FLD (f_FRj), 2)));
18321     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ADDSI (FLD (f_FRk), 2), opval);
18322     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18323   }
18324   {
18325     SF opval = CGEN_CPU_FPU (current_cpu)->ops->subsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (ADDSI (FLD (f_FRi), 3)), GET_H_FR (ADDSI (FLD (f_FRj), 3)));
18326     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ADDSI (FLD (f_FRk), 3), opval);
18327     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18328   }
18329 }
18330
18331   return vpc;
18332 #undef FLD
18333 }
18334
18335 /* nfdmas: nfdmas$pack $FRi,$FRj,$FRk */
18336
18337 static SEM_PC
18338 SEM_FN_NAME (frvbf,nfdmas) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18339 {
18340 #define FLD(f) abuf->fields.sfmt_fdmas.f
18341   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18342   int UNUSED written = 0;
18343   IADDR UNUSED pc = abuf->addr;
18344   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18345
18346 {
18347 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18348 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18349 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 2));
18350 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 3));
18351   {
18352     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)));
18353     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18354     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18355   }
18356   {
18357     SF opval = CGEN_CPU_FPU (current_cpu)->ops->addsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (ADDSI (FLD (f_FRi), 1)), GET_H_FR (ADDSI (FLD (f_FRj), 1)));
18358     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ADDSI (FLD (f_FRk), 1), opval);
18359     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18360   }
18361   {
18362     SF opval = CGEN_CPU_FPU (current_cpu)->ops->mulsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (ADDSI (FLD (f_FRi), 2)), GET_H_FR (ADDSI (FLD (f_FRj), 2)));
18363     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ADDSI (FLD (f_FRk), 2), opval);
18364     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18365   }
18366   {
18367     SF opval = CGEN_CPU_FPU (current_cpu)->ops->addsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (ADDSI (FLD (f_FRi), 3)), GET_H_FR (ADDSI (FLD (f_FRj), 3)));
18368     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ADDSI (FLD (f_FRk), 3), opval);
18369     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18370   }
18371 }
18372
18373   return vpc;
18374 #undef FLD
18375 }
18376
18377 /* nfdmss: nfdmss$pack $FRi,$FRj,$FRk */
18378
18379 static SEM_PC
18380 SEM_FN_NAME (frvbf,nfdmss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18381 {
18382 #define FLD(f) abuf->fields.sfmt_fdmas.f
18383   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18384   int UNUSED written = 0;
18385   IADDR UNUSED pc = abuf->addr;
18386   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18387
18388 {
18389 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18390 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18391 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 2));
18392 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 3));
18393   {
18394     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)));
18395     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18396     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18397   }
18398   {
18399     SF opval = CGEN_CPU_FPU (current_cpu)->ops->subsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (ADDSI (FLD (f_FRi), 1)), GET_H_FR (ADDSI (FLD (f_FRj), 1)));
18400     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ADDSI (FLD (f_FRk), 1), opval);
18401     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18402   }
18403   {
18404     SF opval = CGEN_CPU_FPU (current_cpu)->ops->mulsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (ADDSI (FLD (f_FRi), 2)), GET_H_FR (ADDSI (FLD (f_FRj), 2)));
18405     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ADDSI (FLD (f_FRk), 2), opval);
18406     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18407   }
18408   {
18409     SF opval = CGEN_CPU_FPU (current_cpu)->ops->subsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (ADDSI (FLD (f_FRi), 3)), GET_H_FR (ADDSI (FLD (f_FRj), 3)));
18410     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ADDSI (FLD (f_FRk), 3), opval);
18411     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18412   }
18413 }
18414
18415   return vpc;
18416 #undef FLD
18417 }
18418
18419 /* cfmas: cfmas$pack $FRi,$FRj,$FRk,$CCi,$cond */
18420
18421 static SEM_PC
18422 SEM_FN_NAME (frvbf,cfmas) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18423 {
18424 #define FLD(f) abuf->fields.sfmt_cfmas.f
18425   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18426   int UNUSED written = 0;
18427   IADDR UNUSED pc = abuf->addr;
18428   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18429
18430 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
18431 {
18432   {
18433     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)));
18434     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18435     written |= (1 << 9);
18436     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18437   }
18438   {
18439     SF opval = CGEN_CPU_FPU (current_cpu)->ops->addsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (ADDSI (FLD (f_FRi), 1)), GET_H_FR (ADDSI (FLD (f_FRj), 1)));
18440     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ADDSI (FLD (f_FRk), 1), opval);
18441     written |= (1 << 10);
18442     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18443   }
18444 }
18445 }
18446
18447   abuf->written = written;
18448   return vpc;
18449 #undef FLD
18450 }
18451
18452 /* cfmss: cfmss$pack $FRi,$FRj,$FRk,$CCi,$cond */
18453
18454 static SEM_PC
18455 SEM_FN_NAME (frvbf,cfmss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18456 {
18457 #define FLD(f) abuf->fields.sfmt_cfmas.f
18458   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18459   int UNUSED written = 0;
18460   IADDR UNUSED pc = abuf->addr;
18461   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18462
18463 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
18464 {
18465   {
18466     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)));
18467     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18468     written |= (1 << 9);
18469     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18470   }
18471   {
18472     SF opval = CGEN_CPU_FPU (current_cpu)->ops->subsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (ADDSI (FLD (f_FRi), 1)), GET_H_FR (ADDSI (FLD (f_FRj), 1)));
18473     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ADDSI (FLD (f_FRk), 1), opval);
18474     written |= (1 << 10);
18475     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18476   }
18477 }
18478 }
18479
18480   abuf->written = written;
18481   return vpc;
18482 #undef FLD
18483 }
18484
18485 /* fmad: fmad$pack $FRi,$FRj,$FRk */
18486
18487 static SEM_PC
18488 SEM_FN_NAME (frvbf,fmad) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18489 {
18490 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18491   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18492   int UNUSED written = 0;
18493   IADDR UNUSED pc = abuf->addr;
18494   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18495
18496 {
18497   {
18498     SF opval = CGEN_CPU_FPU (current_cpu)->ops->ftruncdfsf (CGEN_CPU_FPU (current_cpu), FPCONV_DEFAULT, CGEN_CPU_FPU (current_cpu)->ops->muldf (CGEN_CPU_FPU (current_cpu), CGEN_CPU_FPU (current_cpu)->ops->fextsfdf (CGEN_CPU_FPU (current_cpu), FPCONV_DEFAULT, GET_H_FR (FLD (f_FRi))), CGEN_CPU_FPU (current_cpu)->ops->fextsfdf (CGEN_CPU_FPU (current_cpu), FPCONV_DEFAULT, GET_H_FR (FLD (f_FRj)))));
18499     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18500     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18501   }
18502   {
18503     SF opval = CGEN_CPU_FPU (current_cpu)->ops->ftruncdfsf (CGEN_CPU_FPU (current_cpu), FPCONV_DEFAULT, CGEN_CPU_FPU (current_cpu)->ops->adddf (CGEN_CPU_FPU (current_cpu), CGEN_CPU_FPU (current_cpu)->ops->fextsfdf (CGEN_CPU_FPU (current_cpu), FPCONV_DEFAULT, GET_H_FR (ADDSI (FLD (f_FRi), 1))), CGEN_CPU_FPU (current_cpu)->ops->fextsfdf (CGEN_CPU_FPU (current_cpu), FPCONV_DEFAULT, GET_H_FR (ADDSI (FLD (f_FRj), 1)))));
18504     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ADDSI (FLD (f_FRk), 1), opval);
18505     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18506   }
18507 }
18508
18509   return vpc;
18510 #undef FLD
18511 }
18512
18513 /* fmsd: fmsd$pack $FRi,$FRj,$FRk */
18514
18515 static SEM_PC
18516 SEM_FN_NAME (frvbf,fmsd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18517 {
18518 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18519   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18520   int UNUSED written = 0;
18521   IADDR UNUSED pc = abuf->addr;
18522   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18523
18524 {
18525   {
18526     SF opval = CGEN_CPU_FPU (current_cpu)->ops->ftruncdfsf (CGEN_CPU_FPU (current_cpu), FPCONV_DEFAULT, CGEN_CPU_FPU (current_cpu)->ops->muldf (CGEN_CPU_FPU (current_cpu), CGEN_CPU_FPU (current_cpu)->ops->fextsfdf (CGEN_CPU_FPU (current_cpu), FPCONV_DEFAULT, GET_H_FR (FLD (f_FRi))), CGEN_CPU_FPU (current_cpu)->ops->fextsfdf (CGEN_CPU_FPU (current_cpu), FPCONV_DEFAULT, GET_H_FR (FLD (f_FRj)))));
18527     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18528     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18529   }
18530   {
18531     SF opval = CGEN_CPU_FPU (current_cpu)->ops->ftruncdfsf (CGEN_CPU_FPU (current_cpu), FPCONV_DEFAULT, CGEN_CPU_FPU (current_cpu)->ops->subdf (CGEN_CPU_FPU (current_cpu), CGEN_CPU_FPU (current_cpu)->ops->fextsfdf (CGEN_CPU_FPU (current_cpu), FPCONV_DEFAULT, GET_H_FR (ADDSI (FLD (f_FRi), 1))), CGEN_CPU_FPU (current_cpu)->ops->fextsfdf (CGEN_CPU_FPU (current_cpu), FPCONV_DEFAULT, GET_H_FR (ADDSI (FLD (f_FRj), 1)))));
18532     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ADDSI (FLD (f_FRk), 1), opval);
18533     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18534   }
18535 }
18536
18537   return vpc;
18538 #undef FLD
18539 }
18540
18541 /* nfmas: nfmas$pack $FRi,$FRj,$FRk */
18542
18543 static SEM_PC
18544 SEM_FN_NAME (frvbf,nfmas) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18545 {
18546 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18547   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18548   int UNUSED written = 0;
18549   IADDR UNUSED pc = abuf->addr;
18550   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18551
18552 {
18553 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18554   {
18555     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)));
18556     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18557     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18558   }
18559 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18560   {
18561     SF opval = CGEN_CPU_FPU (current_cpu)->ops->addsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (ADDSI (FLD (f_FRi), 1)), GET_H_FR (ADDSI (FLD (f_FRj), 1)));
18562     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ADDSI (FLD (f_FRk), 1), opval);
18563     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18564   }
18565 }
18566
18567   return vpc;
18568 #undef FLD
18569 }
18570
18571 /* nfmss: nfmss$pack $FRi,$FRj,$FRk */
18572
18573 static SEM_PC
18574 SEM_FN_NAME (frvbf,nfmss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18575 {
18576 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18577   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18578   int UNUSED written = 0;
18579   IADDR UNUSED pc = abuf->addr;
18580   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18581
18582 {
18583 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18584   {
18585     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)));
18586     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18587     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18588   }
18589 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18590   {
18591     SF opval = CGEN_CPU_FPU (current_cpu)->ops->subsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (ADDSI (FLD (f_FRi), 1)), GET_H_FR (ADDSI (FLD (f_FRj), 1)));
18592     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ADDSI (FLD (f_FRk), 1), opval);
18593     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18594   }
18595 }
18596
18597   return vpc;
18598 #undef FLD
18599 }
18600
18601 /* fdadds: fdadds$pack $FRi,$FRj,$FRk */
18602
18603 static SEM_PC
18604 SEM_FN_NAME (frvbf,fdadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18605 {
18606 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18607   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18608   int UNUSED written = 0;
18609   IADDR UNUSED pc = abuf->addr;
18610   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18611
18612 {
18613   {
18614     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)));
18615     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18616     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18617   }
18618   {
18619     SF opval = CGEN_CPU_FPU (current_cpu)->ops->addsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (ADDSI (FLD (f_FRi), 1)), GET_H_FR (ADDSI (FLD (f_FRj), 1)));
18620     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ADDSI (FLD (f_FRk), 1), opval);
18621     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18622   }
18623 }
18624
18625   return vpc;
18626 #undef FLD
18627 }
18628
18629 /* fdsubs: fdsubs$pack $FRi,$FRj,$FRk */
18630
18631 static SEM_PC
18632 SEM_FN_NAME (frvbf,fdsubs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18633 {
18634 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18635   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18636   int UNUSED written = 0;
18637   IADDR UNUSED pc = abuf->addr;
18638   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18639
18640 {
18641   {
18642     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)));
18643     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18644     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18645   }
18646   {
18647     SF opval = CGEN_CPU_FPU (current_cpu)->ops->subsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (ADDSI (FLD (f_FRi), 1)), GET_H_FR (ADDSI (FLD (f_FRj), 1)));
18648     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ADDSI (FLD (f_FRk), 1), opval);
18649     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18650   }
18651 }
18652
18653   return vpc;
18654 #undef FLD
18655 }
18656
18657 /* fdmuls: fdmuls$pack $FRi,$FRj,$FRk */
18658
18659 static SEM_PC
18660 SEM_FN_NAME (frvbf,fdmuls) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18661 {
18662 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18663   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18664   int UNUSED written = 0;
18665   IADDR UNUSED pc = abuf->addr;
18666   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18667
18668 {
18669   {
18670     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)));
18671     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18672     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18673   }
18674   {
18675     SF opval = CGEN_CPU_FPU (current_cpu)->ops->mulsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (ADDSI (FLD (f_FRi), 1)), GET_H_FR (ADDSI (FLD (f_FRj), 1)));
18676     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ADDSI (FLD (f_FRk), 1), opval);
18677     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18678   }
18679 }
18680
18681   return vpc;
18682 #undef FLD
18683 }
18684
18685 /* fddivs: fddivs$pack $FRi,$FRj,$FRk */
18686
18687 static SEM_PC
18688 SEM_FN_NAME (frvbf,fddivs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18689 {
18690 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18691   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18692   int UNUSED written = 0;
18693   IADDR UNUSED pc = abuf->addr;
18694   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18695
18696 {
18697   {
18698     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)));
18699     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18700     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18701   }
18702   {
18703     SF opval = CGEN_CPU_FPU (current_cpu)->ops->divsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (ADDSI (FLD (f_FRi), 1)), GET_H_FR (ADDSI (FLD (f_FRj), 1)));
18704     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ADDSI (FLD (f_FRk), 1), opval);
18705     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18706   }
18707 }
18708
18709   return vpc;
18710 #undef FLD
18711 }
18712
18713 /* fdsads: fdsads$pack $FRi,$FRj,$FRk */
18714
18715 static SEM_PC
18716 SEM_FN_NAME (frvbf,fdsads) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18717 {
18718 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18719   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18720   int UNUSED written = 0;
18721   IADDR UNUSED pc = abuf->addr;
18722   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18723
18724 {
18725   {
18726     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)));
18727     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18728     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18729   }
18730   {
18731     SF opval = CGEN_CPU_FPU (current_cpu)->ops->subsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (ADDSI (FLD (f_FRi), 1)), GET_H_FR (ADDSI (FLD (f_FRj), 1)));
18732     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ADDSI (FLD (f_FRk), 1), opval);
18733     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18734   }
18735 }
18736
18737   return vpc;
18738 #undef FLD
18739 }
18740
18741 /* fdmulcs: fdmulcs$pack $FRi,$FRj,$FRk */
18742
18743 static SEM_PC
18744 SEM_FN_NAME (frvbf,fdmulcs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18745 {
18746 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18747   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18748   int UNUSED written = 0;
18749   IADDR UNUSED pc = abuf->addr;
18750   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18751
18752 {
18753   {
18754     SF opval = CGEN_CPU_FPU (current_cpu)->ops->mulsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (ADDSI (FLD (f_FRj), 1)));
18755     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18756     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18757   }
18758   {
18759     SF opval = CGEN_CPU_FPU (current_cpu)->ops->mulsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (ADDSI (FLD (f_FRi), 1)), GET_H_FR (FLD (f_FRj)));
18760     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ADDSI (FLD (f_FRk), 1), opval);
18761     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18762   }
18763 }
18764
18765   return vpc;
18766 #undef FLD
18767 }
18768
18769 /* nfdmulcs: nfdmulcs$pack $FRi,$FRj,$FRk */
18770
18771 static SEM_PC
18772 SEM_FN_NAME (frvbf,nfdmulcs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18773 {
18774 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18775   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18776   int UNUSED written = 0;
18777   IADDR UNUSED pc = abuf->addr;
18778   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18779
18780 {
18781 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18782   {
18783     SF opval = CGEN_CPU_FPU (current_cpu)->ops->mulsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (ADDSI (FLD (f_FRj), 1)));
18784     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18785     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18786   }
18787 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18788   {
18789     SF opval = CGEN_CPU_FPU (current_cpu)->ops->mulsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (ADDSI (FLD (f_FRi), 1)), GET_H_FR (FLD (f_FRj)));
18790     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ADDSI (FLD (f_FRk), 1), opval);
18791     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18792   }
18793 }
18794
18795   return vpc;
18796 #undef FLD
18797 }
18798
18799 /* nfdadds: nfdadds$pack $FRi,$FRj,$FRk */
18800
18801 static SEM_PC
18802 SEM_FN_NAME (frvbf,nfdadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18803 {
18804 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18805   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18806   int UNUSED written = 0;
18807   IADDR UNUSED pc = abuf->addr;
18808   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18809
18810 {
18811 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18812   {
18813     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)));
18814     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18815     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18816   }
18817 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18818   {
18819     SF opval = CGEN_CPU_FPU (current_cpu)->ops->addsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (ADDSI (FLD (f_FRi), 1)), GET_H_FR (ADDSI (FLD (f_FRj), 1)));
18820     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ADDSI (FLD (f_FRk), 1), opval);
18821     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18822   }
18823 }
18824
18825   return vpc;
18826 #undef FLD
18827 }
18828
18829 /* nfdsubs: nfdsubs$pack $FRi,$FRj,$FRk */
18830
18831 static SEM_PC
18832 SEM_FN_NAME (frvbf,nfdsubs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18833 {
18834 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18835   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18836   int UNUSED written = 0;
18837   IADDR UNUSED pc = abuf->addr;
18838   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18839
18840 {
18841 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18842   {
18843     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)));
18844     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18845     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18846   }
18847 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18848   {
18849     SF opval = CGEN_CPU_FPU (current_cpu)->ops->subsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (ADDSI (FLD (f_FRi), 1)), GET_H_FR (ADDSI (FLD (f_FRj), 1)));
18850     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ADDSI (FLD (f_FRk), 1), opval);
18851     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18852   }
18853 }
18854
18855   return vpc;
18856 #undef FLD
18857 }
18858
18859 /* nfdmuls: nfdmuls$pack $FRi,$FRj,$FRk */
18860
18861 static SEM_PC
18862 SEM_FN_NAME (frvbf,nfdmuls) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18863 {
18864 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18865   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18866   int UNUSED written = 0;
18867   IADDR UNUSED pc = abuf->addr;
18868   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18869
18870 {
18871 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18872   {
18873     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)));
18874     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18875     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18876   }
18877 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18878   {
18879     SF opval = CGEN_CPU_FPU (current_cpu)->ops->mulsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (ADDSI (FLD (f_FRi), 1)), GET_H_FR (ADDSI (FLD (f_FRj), 1)));
18880     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ADDSI (FLD (f_FRk), 1), opval);
18881     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18882   }
18883 }
18884
18885   return vpc;
18886 #undef FLD
18887 }
18888
18889 /* nfddivs: nfddivs$pack $FRi,$FRj,$FRk */
18890
18891 static SEM_PC
18892 SEM_FN_NAME (frvbf,nfddivs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18893 {
18894 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18895   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18896   int UNUSED written = 0;
18897   IADDR UNUSED pc = abuf->addr;
18898   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18899
18900 {
18901 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18902   {
18903     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)));
18904     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18905     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18906   }
18907 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18908   {
18909     SF opval = CGEN_CPU_FPU (current_cpu)->ops->divsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (ADDSI (FLD (f_FRi), 1)), GET_H_FR (ADDSI (FLD (f_FRj), 1)));
18910     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ADDSI (FLD (f_FRk), 1), opval);
18911     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18912   }
18913 }
18914
18915   return vpc;
18916 #undef FLD
18917 }
18918
18919 /* nfdsads: nfdsads$pack $FRi,$FRj,$FRk */
18920
18921 static SEM_PC
18922 SEM_FN_NAME (frvbf,nfdsads) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18923 {
18924 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18925   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18926   int UNUSED written = 0;
18927   IADDR UNUSED pc = abuf->addr;
18928   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18929
18930 {
18931 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18932   {
18933     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)));
18934     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18935     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18936   }
18937 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18938   {
18939     SF opval = CGEN_CPU_FPU (current_cpu)->ops->subsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (ADDSI (FLD (f_FRi), 1)), GET_H_FR (ADDSI (FLD (f_FRj), 1)));
18940     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ADDSI (FLD (f_FRk), 1), opval);
18941     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18942   }
18943 }
18944
18945   return vpc;
18946 #undef FLD
18947 }
18948
18949 /* nfdcmps: nfdcmps$pack $FRi,$FRj,$FCCi_2 */
18950
18951 static SEM_PC
18952 SEM_FN_NAME (frvbf,nfdcmps) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18953 {
18954 #define FLD(f) abuf->fields.sfmt_nfdcmps.f
18955   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18956   int UNUSED written = 0;
18957   IADDR UNUSED pc = abuf->addr;
18958   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18959
18960 {
18961 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18962 if (CGEN_CPU_FPU (current_cpu)->ops->gtsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)))) {
18963   {
18964     UQI opval = 2;
18965     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
18966     written |= (1 << 8);
18967     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
18968   }
18969 } else {
18970 if (CGEN_CPU_FPU (current_cpu)->ops->eqsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)))) {
18971   {
18972     UQI opval = 8;
18973     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
18974     written |= (1 << 8);
18975     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
18976   }
18977 } else {
18978 if (CGEN_CPU_FPU (current_cpu)->ops->ltsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)))) {
18979   {
18980     UQI opval = 4;
18981     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
18982     written |= (1 << 8);
18983     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
18984   }
18985 } else {
18986   {
18987     UQI opval = 1;
18988     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
18989     written |= (1 << 8);
18990     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
18991   }
18992 }
18993 }
18994 }
18995 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18996 if (CGEN_CPU_FPU (current_cpu)->ops->gtsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (ADDSI (FLD (f_FRi), 1)), GET_H_FR (ADDSI (FLD (f_FRj), 1)))) {
18997   {
18998     UQI opval = 2;
18999     sim_queue_qi_write (current_cpu, & CPU (h_fccr[ADDSI (FLD (f_FCCi_2), 1)]), opval);
19000     written |= (1 << 9);
19001     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
19002   }
19003 } else {
19004 if (CGEN_CPU_FPU (current_cpu)->ops->eqsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (ADDSI (FLD (f_FRi), 1)), GET_H_FR (ADDSI (FLD (f_FRj), 1)))) {
19005   {
19006     UQI opval = 8;
19007     sim_queue_qi_write (current_cpu, & CPU (h_fccr[ADDSI (FLD (f_FCCi_2), 1)]), opval);
19008     written |= (1 << 9);
19009     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
19010   }
19011 } else {
19012 if (CGEN_CPU_FPU (current_cpu)->ops->ltsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (ADDSI (FLD (f_FRi), 1)), GET_H_FR (ADDSI (FLD (f_FRj), 1)))) {
19013   {
19014     UQI opval = 4;
19015     sim_queue_qi_write (current_cpu, & CPU (h_fccr[ADDSI (FLD (f_FCCi_2), 1)]), opval);
19016     written |= (1 << 9);
19017     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
19018   }
19019 } else {
19020   {
19021     UQI opval = 1;
19022     sim_queue_qi_write (current_cpu, & CPU (h_fccr[ADDSI (FLD (f_FCCi_2), 1)]), opval);
19023     written |= (1 << 9);
19024     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
19025   }
19026 }
19027 }
19028 }
19029 }
19030
19031   abuf->written = written;
19032   return vpc;
19033 #undef FLD
19034 }
19035
19036 /* mhsetlos: mhsetlos$pack $u12,$FRklo */
19037
19038 static SEM_PC
19039 SEM_FN_NAME (frvbf,mhsetlos) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19040 {
19041 #define FLD(f) abuf->fields.sfmt_mhsetlos.f
19042   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19043   int UNUSED written = 0;
19044   IADDR UNUSED pc = abuf->addr;
19045   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19046
19047   {
19048     UHI opval = FLD (f_u12);
19049     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, FLD (f_FRk), opval);
19050     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19051   }
19052
19053   return vpc;
19054 #undef FLD
19055 }
19056
19057 /* mhsethis: mhsethis$pack $u12,$FRkhi */
19058
19059 static SEM_PC
19060 SEM_FN_NAME (frvbf,mhsethis) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19061 {
19062 #define FLD(f) abuf->fields.sfmt_mhsethis.f
19063   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19064   int UNUSED written = 0;
19065   IADDR UNUSED pc = abuf->addr;
19066   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19067
19068   {
19069     UHI opval = FLD (f_u12);
19070     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, FLD (f_FRk), opval);
19071     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19072   }
19073
19074   return vpc;
19075 #undef FLD
19076 }
19077
19078 /* mhdsets: mhdsets$pack $u12,$FRintk */
19079
19080 static SEM_PC
19081 SEM_FN_NAME (frvbf,mhdsets) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19082 {
19083 #define FLD(f) abuf->fields.sfmt_mhdsets.f
19084   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19085   int UNUSED written = 0;
19086   IADDR UNUSED pc = abuf->addr;
19087   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19088
19089 {
19090   {
19091     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
19092     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19093     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19094   }
19095   {
19096     UHI opval = FLD (f_u12);
19097     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
19098     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19099   }
19100   {
19101     UHI opval = FLD (f_u12);
19102     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
19103     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19104   }
19105 }
19106
19107   return vpc;
19108 #undef FLD
19109 }
19110
19111 /* mhsetloh: mhsetloh$pack $s5,$FRklo */
19112
19113 static SEM_PC
19114 SEM_FN_NAME (frvbf,mhsetloh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19115 {
19116 #define FLD(f) abuf->fields.sfmt_mhsetloh.f
19117   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19118   int UNUSED written = 0;
19119   IADDR UNUSED pc = abuf->addr;
19120   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19121
19122 {
19123   HI tmp_tmp;
19124   tmp_tmp = GET_H_FR_LO (FLD (f_FRk));
19125   tmp_tmp = ANDHI (tmp_tmp, 2047);
19126   tmp_tmp = ORHI (tmp_tmp, SLLSI (ANDSI (FLD (f_s5), 31), 11));
19127   {
19128     UHI opval = tmp_tmp;
19129     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, FLD (f_FRk), opval);
19130     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19131   }
19132 }
19133
19134   return vpc;
19135 #undef FLD
19136 }
19137
19138 /* mhsethih: mhsethih$pack $s5,$FRkhi */
19139
19140 static SEM_PC
19141 SEM_FN_NAME (frvbf,mhsethih) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19142 {
19143 #define FLD(f) abuf->fields.sfmt_mhsethih.f
19144   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19145   int UNUSED written = 0;
19146   IADDR UNUSED pc = abuf->addr;
19147   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19148
19149 {
19150   HI tmp_tmp;
19151   tmp_tmp = GET_H_FR_HI (FLD (f_FRk));
19152   tmp_tmp = ANDHI (tmp_tmp, 2047);
19153   tmp_tmp = ORHI (tmp_tmp, SLLSI (ANDSI (FLD (f_s5), 31), 11));
19154   {
19155     UHI opval = tmp_tmp;
19156     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, FLD (f_FRk), opval);
19157     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19158   }
19159 }
19160
19161   return vpc;
19162 #undef FLD
19163 }
19164
19165 /* mhdseth: mhdseth$pack $s5,$FRintk */
19166
19167 static SEM_PC
19168 SEM_FN_NAME (frvbf,mhdseth) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19169 {
19170 #define FLD(f) abuf->fields.sfmt_mhdseth.f
19171   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19172   int UNUSED written = 0;
19173   IADDR UNUSED pc = abuf->addr;
19174   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19175
19176 {
19177   {
19178     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
19179     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19180     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19181   }
19182 {
19183   HI tmp_tmp;
19184   tmp_tmp = GET_H_FR_HI (ADDSI (FLD (f_FRk), 0));
19185   tmp_tmp = ANDHI (tmp_tmp, 2047);
19186   tmp_tmp = ORHI (tmp_tmp, SLLSI (ANDSI (FLD (f_s5), 31), 11));
19187   {
19188     UHI opval = tmp_tmp;
19189     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
19190     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19191   }
19192 }
19193 {
19194   HI tmp_tmp;
19195   tmp_tmp = GET_H_FR_LO (ADDSI (FLD (f_FRk), 0));
19196   tmp_tmp = ANDHI (tmp_tmp, 2047);
19197   tmp_tmp = ORHI (tmp_tmp, SLLSI (ANDSI (FLD (f_s5), 31), 11));
19198   {
19199     UHI opval = tmp_tmp;
19200     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
19201     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19202   }
19203 }
19204 }
19205
19206   return vpc;
19207 #undef FLD
19208 }
19209
19210 /* mand: mand$pack $FRinti,$FRintj,$FRintk */
19211
19212 static SEM_PC
19213 SEM_FN_NAME (frvbf,mand) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19214 {
19215 #define FLD(f) abuf->fields.sfmt_mwcut.f
19216   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19217   int UNUSED written = 0;
19218   IADDR UNUSED pc = abuf->addr;
19219   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19220
19221   {
19222     SI opval = ANDSI (GET_H_FR_INT (FLD (f_FRi)), GET_H_FR_INT (FLD (f_FRj)));
19223     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19224     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19225   }
19226
19227   return vpc;
19228 #undef FLD
19229 }
19230
19231 /* mor: mor$pack $FRinti,$FRintj,$FRintk */
19232
19233 static SEM_PC
19234 SEM_FN_NAME (frvbf,mor) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19235 {
19236 #define FLD(f) abuf->fields.sfmt_mwcut.f
19237   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19238   int UNUSED written = 0;
19239   IADDR UNUSED pc = abuf->addr;
19240   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19241
19242   {
19243     SI opval = ORSI (GET_H_FR_INT (FLD (f_FRi)), GET_H_FR_INT (FLD (f_FRj)));
19244     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19245     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19246   }
19247
19248   return vpc;
19249 #undef FLD
19250 }
19251
19252 /* mxor: mxor$pack $FRinti,$FRintj,$FRintk */
19253
19254 static SEM_PC
19255 SEM_FN_NAME (frvbf,mxor) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19256 {
19257 #define FLD(f) abuf->fields.sfmt_mwcut.f
19258   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19259   int UNUSED written = 0;
19260   IADDR UNUSED pc = abuf->addr;
19261   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19262
19263   {
19264     SI opval = XORSI (GET_H_FR_INT (FLD (f_FRi)), GET_H_FR_INT (FLD (f_FRj)));
19265     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19266     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19267   }
19268
19269   return vpc;
19270 #undef FLD
19271 }
19272
19273 /* cmand: cmand$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
19274
19275 static SEM_PC
19276 SEM_FN_NAME (frvbf,cmand) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19277 {
19278 #define FLD(f) abuf->fields.sfmt_cmand.f
19279   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19280   int UNUSED written = 0;
19281   IADDR UNUSED pc = abuf->addr;
19282   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19283
19284 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
19285   {
19286     SI opval = ANDSI (GET_H_FR_INT (FLD (f_FRi)), GET_H_FR_INT (FLD (f_FRj)));
19287     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19288     written |= (1 << 4);
19289     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19290   }
19291 }
19292
19293   abuf->written = written;
19294   return vpc;
19295 #undef FLD
19296 }
19297
19298 /* cmor: cmor$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
19299
19300 static SEM_PC
19301 SEM_FN_NAME (frvbf,cmor) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19302 {
19303 #define FLD(f) abuf->fields.sfmt_cmand.f
19304   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19305   int UNUSED written = 0;
19306   IADDR UNUSED pc = abuf->addr;
19307   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19308
19309 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
19310   {
19311     SI opval = ORSI (GET_H_FR_INT (FLD (f_FRi)), GET_H_FR_INT (FLD (f_FRj)));
19312     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19313     written |= (1 << 4);
19314     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19315   }
19316 }
19317
19318   abuf->written = written;
19319   return vpc;
19320 #undef FLD
19321 }
19322
19323 /* cmxor: cmxor$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
19324
19325 static SEM_PC
19326 SEM_FN_NAME (frvbf,cmxor) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19327 {
19328 #define FLD(f) abuf->fields.sfmt_cmand.f
19329   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19330   int UNUSED written = 0;
19331   IADDR UNUSED pc = abuf->addr;
19332   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19333
19334 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
19335   {
19336     SI opval = XORSI (GET_H_FR_INT (FLD (f_FRi)), GET_H_FR_INT (FLD (f_FRj)));
19337     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19338     written |= (1 << 4);
19339     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19340   }
19341 }
19342
19343   abuf->written = written;
19344   return vpc;
19345 #undef FLD
19346 }
19347
19348 /* mnot: mnot$pack $FRintj,$FRintk */
19349
19350 static SEM_PC
19351 SEM_FN_NAME (frvbf,mnot) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19352 {
19353 #define FLD(f) abuf->fields.sfmt_mcut.f
19354   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19355   int UNUSED written = 0;
19356   IADDR UNUSED pc = abuf->addr;
19357   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19358
19359   {
19360     SI opval = INVSI (GET_H_FR_INT (FLD (f_FRj)));
19361     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19362     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19363   }
19364
19365   return vpc;
19366 #undef FLD
19367 }
19368
19369 /* cmnot: cmnot$pack $FRintj,$FRintk,$CCi,$cond */
19370
19371 static SEM_PC
19372 SEM_FN_NAME (frvbf,cmnot) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19373 {
19374 #define FLD(f) abuf->fields.sfmt_cmand.f
19375   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19376   int UNUSED written = 0;
19377   IADDR UNUSED pc = abuf->addr;
19378   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19379
19380 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
19381   {
19382     SI opval = INVSI (GET_H_FR_INT (FLD (f_FRj)));
19383     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19384     written |= (1 << 3);
19385     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19386   }
19387 }
19388
19389   abuf->written = written;
19390   return vpc;
19391 #undef FLD
19392 }
19393
19394 /* mrotli: mrotli$pack $FRinti,$u6,$FRintk */
19395
19396 static SEM_PC
19397 SEM_FN_NAME (frvbf,mrotli) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19398 {
19399 #define FLD(f) abuf->fields.sfmt_mwcuti.f
19400   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19401   int UNUSED written = 0;
19402   IADDR UNUSED pc = abuf->addr;
19403   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19404
19405   {
19406     SI opval = ROLSI (GET_H_FR_INT (FLD (f_FRi)), ANDSI (FLD (f_u6), 31));
19407     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19408     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19409   }
19410
19411   return vpc;
19412 #undef FLD
19413 }
19414
19415 /* mrotri: mrotri$pack $FRinti,$u6,$FRintk */
19416
19417 static SEM_PC
19418 SEM_FN_NAME (frvbf,mrotri) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19419 {
19420 #define FLD(f) abuf->fields.sfmt_mwcuti.f
19421   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19422   int UNUSED written = 0;
19423   IADDR UNUSED pc = abuf->addr;
19424   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19425
19426   {
19427     SI opval = RORSI (GET_H_FR_INT (FLD (f_FRi)), ANDSI (FLD (f_u6), 31));
19428     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19429     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19430   }
19431
19432   return vpc;
19433 #undef FLD
19434 }
19435
19436 /* mwcut: mwcut$pack $FRinti,$FRintj,$FRintk */
19437
19438 static SEM_PC
19439 SEM_FN_NAME (frvbf,mwcut) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19440 {
19441 #define FLD(f) abuf->fields.sfmt_mwcut.f
19442   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19443   int UNUSED written = 0;
19444   IADDR UNUSED pc = abuf->addr;
19445   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19446
19447   {
19448     SI opval = frvbf_cut (current_cpu, GET_H_FR_INT (FLD (f_FRi)), GET_H_FR_INT (ADDSI (FLD (f_FRi), 1)), GET_H_FR_INT (FLD (f_FRj)));
19449     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19450     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19451   }
19452
19453   return vpc;
19454 #undef FLD
19455 }
19456
19457 /* mwcuti: mwcuti$pack $FRinti,$u6,$FRintk */
19458
19459 static SEM_PC
19460 SEM_FN_NAME (frvbf,mwcuti) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19461 {
19462 #define FLD(f) abuf->fields.sfmt_mwcuti.f
19463   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19464   int UNUSED written = 0;
19465   IADDR UNUSED pc = abuf->addr;
19466   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19467
19468   {
19469     SI opval = frvbf_cut (current_cpu, GET_H_FR_INT (FLD (f_FRi)), GET_H_FR_INT (ADDSI (FLD (f_FRi), 1)), FLD (f_u6));
19470     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19471     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19472   }
19473
19474   return vpc;
19475 #undef FLD
19476 }
19477
19478 /* mcut: mcut$pack $ACC40Si,$FRintj,$FRintk */
19479
19480 static SEM_PC
19481 SEM_FN_NAME (frvbf,mcut) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19482 {
19483 #define FLD(f) abuf->fields.sfmt_mcut.f
19484   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19485   int UNUSED written = 0;
19486   IADDR UNUSED pc = abuf->addr;
19487   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19488
19489   {
19490     SI opval = frvbf_media_cut (current_cpu, GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_FR_INT (FLD (f_FRj)));
19491     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19492     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19493   }
19494
19495   return vpc;
19496 #undef FLD
19497 }
19498
19499 /* mcuti: mcuti$pack $ACC40Si,$s6,$FRintk */
19500
19501 static SEM_PC
19502 SEM_FN_NAME (frvbf,mcuti) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19503 {
19504 #define FLD(f) abuf->fields.sfmt_mcuti.f
19505   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19506   int UNUSED written = 0;
19507   IADDR UNUSED pc = abuf->addr;
19508   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19509
19510   {
19511     SI opval = frvbf_media_cut (current_cpu, GET_H_ACC40S (FLD (f_ACC40Si)), FLD (f_s6));
19512     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19513     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19514   }
19515
19516   return vpc;
19517 #undef FLD
19518 }
19519
19520 /* mcutss: mcutss$pack $ACC40Si,$FRintj,$FRintk */
19521
19522 static SEM_PC
19523 SEM_FN_NAME (frvbf,mcutss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19524 {
19525 #define FLD(f) abuf->fields.sfmt_mcut.f
19526   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19527   int UNUSED written = 0;
19528   IADDR UNUSED pc = abuf->addr;
19529   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19530
19531   {
19532     SI opval = frvbf_media_cut_ss (current_cpu, GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_FR_INT (FLD (f_FRj)));
19533     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19534     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19535   }
19536
19537   return vpc;
19538 #undef FLD
19539 }
19540
19541 /* mcutssi: mcutssi$pack $ACC40Si,$s6,$FRintk */
19542
19543 static SEM_PC
19544 SEM_FN_NAME (frvbf,mcutssi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19545 {
19546 #define FLD(f) abuf->fields.sfmt_mcuti.f
19547   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19548   int UNUSED written = 0;
19549   IADDR UNUSED pc = abuf->addr;
19550   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19551
19552   {
19553     SI opval = frvbf_media_cut_ss (current_cpu, GET_H_ACC40S (FLD (f_ACC40Si)), FLD (f_s6));
19554     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19555     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19556   }
19557
19558   return vpc;
19559 #undef FLD
19560 }
19561
19562 /* mdcutssi: mdcutssi$pack $ACC40Si,$s6,$FRintkeven */
19563
19564 static SEM_PC
19565 SEM_FN_NAME (frvbf,mdcutssi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19566 {
19567 #define FLD(f) abuf->fields.sfmt_mdcutssi.f
19568   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19569   int UNUSED written = 0;
19570   IADDR UNUSED pc = abuf->addr;
19571   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19572
19573 if (ANDSI (FLD (f_ACC40Si), SUBSI (2, 1))) {
19574 frvbf_media_acc_not_aligned (current_cpu);
19575 } else {
19576 if (ANDSI (FLD (f_FRk), SUBSI (2, 1))) {
19577 frvbf_media_register_not_aligned (current_cpu);
19578 } else {
19579 {
19580   {
19581     SI opval = frvbf_media_cut_ss (current_cpu, GET_H_ACC40S (FLD (f_ACC40Si)), FLD (f_s6));
19582     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19583     written |= (1 << 5);
19584     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19585   }
19586   {
19587     USI opval = frvbf_media_cut_ss (current_cpu, GET_H_ACC40S (ADDSI (FLD (f_ACC40Si), 1)), FLD (f_s6));
19588     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ADDSI (FLD (f_FRk), 1), opval);
19589     written |= (1 << 6);
19590     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19591   }
19592 }
19593 }
19594 }
19595
19596   abuf->written = written;
19597   return vpc;
19598 #undef FLD
19599 }
19600
19601 /* maveh: maveh$pack $FRinti,$FRintj,$FRintk */
19602
19603 static SEM_PC
19604 SEM_FN_NAME (frvbf,maveh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19605 {
19606 #define FLD(f) abuf->fields.sfmt_mwcut.f
19607   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19608   int UNUSED written = 0;
19609   IADDR UNUSED pc = abuf->addr;
19610   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19611
19612   {
19613     SI opval = frvbf_media_average (current_cpu, GET_H_FR_INT (FLD (f_FRi)), GET_H_FR_INT (FLD (f_FRj)));
19614     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19615     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19616   }
19617
19618   return vpc;
19619 #undef FLD
19620 }
19621
19622 /* msllhi: msllhi$pack $FRinti,$u6,$FRintk */
19623
19624 static SEM_PC
19625 SEM_FN_NAME (frvbf,msllhi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19626 {
19627 #define FLD(f) abuf->fields.sfmt_msllhi.f
19628   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19629   int UNUSED written = 0;
19630   IADDR UNUSED pc = abuf->addr;
19631   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19632
19633 {
19634   {
19635     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRi)));
19636     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRi), opval);
19637     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19638   }
19639   {
19640     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
19641     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19642     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19643   }
19644   {
19645     UHI opval = SLLHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), ANDSI (FLD (f_u6), 15));
19646     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
19647     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19648   }
19649   {
19650     UHI opval = SLLHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), ANDSI (FLD (f_u6), 15));
19651     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
19652     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19653   }
19654 }
19655
19656   return vpc;
19657 #undef FLD
19658 }
19659
19660 /* msrlhi: msrlhi$pack $FRinti,$u6,$FRintk */
19661
19662 static SEM_PC
19663 SEM_FN_NAME (frvbf,msrlhi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19664 {
19665 #define FLD(f) abuf->fields.sfmt_msllhi.f
19666   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19667   int UNUSED written = 0;
19668   IADDR UNUSED pc = abuf->addr;
19669   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19670
19671 {
19672   {
19673     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRi)));
19674     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRi), opval);
19675     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19676   }
19677   {
19678     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
19679     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19680     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19681   }
19682   {
19683     UHI opval = SRLHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), ANDSI (FLD (f_u6), 15));
19684     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
19685     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19686   }
19687   {
19688     UHI opval = SRLHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), ANDSI (FLD (f_u6), 15));
19689     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
19690     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19691   }
19692 }
19693
19694   return vpc;
19695 #undef FLD
19696 }
19697
19698 /* msrahi: msrahi$pack $FRinti,$u6,$FRintk */
19699
19700 static SEM_PC
19701 SEM_FN_NAME (frvbf,msrahi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19702 {
19703 #define FLD(f) abuf->fields.sfmt_msllhi.f
19704   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19705   int UNUSED written = 0;
19706   IADDR UNUSED pc = abuf->addr;
19707   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19708
19709 {
19710   {
19711     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRi)));
19712     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRi), opval);
19713     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19714   }
19715   {
19716     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
19717     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19718     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19719   }
19720   {
19721     UHI opval = SRAHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), ANDSI (FLD (f_u6), 15));
19722     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
19723     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19724   }
19725   {
19726     UHI opval = SRAHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), ANDSI (FLD (f_u6), 15));
19727     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
19728     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19729   }
19730 }
19731
19732   return vpc;
19733 #undef FLD
19734 }
19735
19736 /* mdrotli: mdrotli$pack $FRintieven,$s6,$FRintkeven */
19737
19738 static SEM_PC
19739 SEM_FN_NAME (frvbf,mdrotli) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19740 {
19741 #define FLD(f) abuf->fields.sfmt_mdrotli.f
19742   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19743   int UNUSED written = 0;
19744   IADDR UNUSED pc = abuf->addr;
19745   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19746
19747 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1)))) {
19748 frvbf_media_register_not_aligned (current_cpu);
19749 } else {
19750 {
19751   {
19752     SI opval = ROLSI (GET_H_FR_INT (FLD (f_FRi)), ANDSI (FLD (f_s6), 31));
19753     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19754     written |= (1 << 5);
19755     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19756   }
19757   {
19758     USI opval = ROLSI (GET_H_FR_INT (ADDSI (FLD (f_FRi), 1)), ANDSI (FLD (f_s6), 31));
19759     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ADDSI (FLD (f_FRk), 1), opval);
19760     written |= (1 << 6);
19761     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19762   }
19763 }
19764 }
19765
19766   abuf->written = written;
19767   return vpc;
19768 #undef FLD
19769 }
19770
19771 /* mcplhi: mcplhi$pack $FRinti,$u6,$FRintk */
19772
19773 static SEM_PC
19774 SEM_FN_NAME (frvbf,mcplhi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19775 {
19776 #define FLD(f) abuf->fields.sfmt_mcplhi.f
19777   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19778   int UNUSED written = 0;
19779   IADDR UNUSED pc = abuf->addr;
19780   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19781
19782 {
19783   HI tmp_arg1;
19784   HI tmp_arg2;
19785   HI tmp_shift;
19786   {
19787     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRi)));
19788     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRi), opval);
19789     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19790   }
19791   {
19792     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
19793     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19794     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19795   }
19796   tmp_shift = ANDSI (FLD (f_u6), 15);
19797   tmp_arg1 = SLLHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), tmp_shift);
19798 if (NEHI (tmp_shift, 0)) {
19799 {
19800   tmp_arg2 = GET_H_FR_HI (ADDSI (FLD (f_FRi), 1));
19801   tmp_arg2 = SRLHI (SLLHI (tmp_arg2, SUBSI (15, tmp_shift)), SUBSI (15, tmp_shift));
19802   tmp_arg1 = ORHI (tmp_arg1, tmp_arg2);
19803 }
19804 }
19805   {
19806     UHI opval = tmp_arg1;
19807     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
19808     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19809   }
19810 }
19811
19812   return vpc;
19813 #undef FLD
19814 }
19815
19816 /* mcpli: mcpli$pack $FRinti,$u6,$FRintk */
19817
19818 static SEM_PC
19819 SEM_FN_NAME (frvbf,mcpli) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19820 {
19821 #define FLD(f) abuf->fields.sfmt_mwcuti.f
19822   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19823   int UNUSED written = 0;
19824   IADDR UNUSED pc = abuf->addr;
19825   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19826
19827 {
19828   SI tmp_tmp;
19829   SI tmp_shift;
19830   tmp_shift = ANDSI (FLD (f_u6), 31);
19831   tmp_tmp = SLLSI (GET_H_FR_INT (FLD (f_FRi)), tmp_shift);
19832 if (NESI (tmp_shift, 0)) {
19833 {
19834   SI tmp_tmp1;
19835   tmp_tmp1 = SRLSI (SLLSI (GET_H_FR_INT (ADDSI (FLD (f_FRi), 1)), SUBSI (31, tmp_shift)), SUBSI (31, tmp_shift));
19836   tmp_tmp = ORSI (tmp_tmp, tmp_tmp1);
19837 }
19838 }
19839   {
19840     SI opval = tmp_tmp;
19841     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19842     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19843   }
19844 }
19845
19846   return vpc;
19847 #undef FLD
19848 }
19849
19850 /* msaths: msaths$pack $FRinti,$FRintj,$FRintk */
19851
19852 static SEM_PC
19853 SEM_FN_NAME (frvbf,msaths) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19854 {
19855 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
19856   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19857   int UNUSED written = 0;
19858   IADDR UNUSED pc = abuf->addr;
19859   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19860
19861 {
19862   HI tmp_argihi;
19863   HI tmp_argilo;
19864   HI tmp_argjhi;
19865   HI tmp_argjlo;
19866 {
19867   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
19868   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
19869   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
19870   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
19871 }
19872 if (GTHI (tmp_argihi, tmp_argjhi)) {
19873   {
19874     UHI opval = tmp_argjhi;
19875     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
19876     written |= (1 << 9);
19877     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19878   }
19879 } else {
19880 if (LTHI (tmp_argihi, INVHI (tmp_argjhi))) {
19881   {
19882     UHI opval = INVHI (tmp_argjhi);
19883     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
19884     written |= (1 << 9);
19885     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19886   }
19887 } else {
19888   {
19889     UHI opval = tmp_argihi;
19890     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
19891     written |= (1 << 9);
19892     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19893   }
19894 }
19895 }
19896 if (GTHI (tmp_argilo, tmp_argjlo)) {
19897   {
19898     UHI opval = tmp_argjlo;
19899     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
19900     written |= (1 << 10);
19901     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19902   }
19903 } else {
19904 if (LTHI (tmp_argilo, INVHI (tmp_argjlo))) {
19905   {
19906     UHI opval = INVHI (tmp_argjlo);
19907     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
19908     written |= (1 << 10);
19909     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19910   }
19911 } else {
19912   {
19913     UHI opval = tmp_argilo;
19914     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
19915     written |= (1 << 10);
19916     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19917   }
19918 }
19919 }
19920 }
19921
19922   abuf->written = written;
19923   return vpc;
19924 #undef FLD
19925 }
19926
19927 /* mqsaths: mqsaths$pack $FRintieven,$FRintjeven,$FRintkeven */
19928
19929 static SEM_PC
19930 SEM_FN_NAME (frvbf,mqsaths) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19931 {
19932 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
19933   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19934   int UNUSED written = 0;
19935   IADDR UNUSED pc = abuf->addr;
19936   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19937
19938 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
19939 frvbf_media_register_not_aligned (current_cpu);
19940 } else {
19941 {
19942   HI tmp_argihi;
19943   HI tmp_argilo;
19944   HI tmp_argjhi;
19945   HI tmp_argjlo;
19946   {
19947     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
19948     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19949     written |= (1 << 14);
19950     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19951   }
19952 {
19953   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
19954   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
19955   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
19956   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
19957 }
19958 if (GTHI (tmp_argihi, tmp_argjhi)) {
19959   {
19960     UHI opval = tmp_argjhi;
19961     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
19962     written |= (1 << 15);
19963     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19964   }
19965 } else {
19966 if (LTHI (tmp_argihi, INVHI (tmp_argjhi))) {
19967   {
19968     UHI opval = INVHI (tmp_argjhi);
19969     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
19970     written |= (1 << 15);
19971     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19972   }
19973 } else {
19974   {
19975     UHI opval = tmp_argihi;
19976     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
19977     written |= (1 << 15);
19978     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19979   }
19980 }
19981 }
19982 if (GTHI (tmp_argilo, tmp_argjlo)) {
19983   {
19984     UHI opval = tmp_argjlo;
19985     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
19986     written |= (1 << 17);
19987     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19988   }
19989 } else {
19990 if (LTHI (tmp_argilo, INVHI (tmp_argjlo))) {
19991   {
19992     UHI opval = INVHI (tmp_argjlo);
19993     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
19994     written |= (1 << 17);
19995     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19996   }
19997 } else {
19998   {
19999     UHI opval = tmp_argilo;
20000     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
20001     written |= (1 << 17);
20002     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20003   }
20004 }
20005 }
20006 {
20007   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20008   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20009   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20010   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20011 }
20012 if (GTHI (tmp_argihi, tmp_argjhi)) {
20013   {
20014     UHI opval = tmp_argjhi;
20015     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 1), opval);
20016     written |= (1 << 16);
20017     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20018   }
20019 } else {
20020 if (LTHI (tmp_argihi, INVHI (tmp_argjhi))) {
20021   {
20022     UHI opval = INVHI (tmp_argjhi);
20023     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 1), opval);
20024     written |= (1 << 16);
20025     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20026   }
20027 } else {
20028   {
20029     UHI opval = tmp_argihi;
20030     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 1), opval);
20031     written |= (1 << 16);
20032     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20033   }
20034 }
20035 }
20036 if (GTHI (tmp_argilo, tmp_argjlo)) {
20037   {
20038     UHI opval = tmp_argjlo;
20039     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 1), opval);
20040     written |= (1 << 18);
20041     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20042   }
20043 } else {
20044 if (LTHI (tmp_argilo, INVHI (tmp_argjlo))) {
20045   {
20046     UHI opval = INVHI (tmp_argjlo);
20047     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 1), opval);
20048     written |= (1 << 18);
20049     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20050   }
20051 } else {
20052   {
20053     UHI opval = tmp_argilo;
20054     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 1), opval);
20055     written |= (1 << 18);
20056     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20057   }
20058 }
20059 }
20060 }
20061 }
20062
20063   abuf->written = written;
20064   return vpc;
20065 #undef FLD
20066 }
20067
20068 /* msathu: msathu$pack $FRinti,$FRintj,$FRintk */
20069
20070 static SEM_PC
20071 SEM_FN_NAME (frvbf,msathu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20072 {
20073 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
20074   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20075   int UNUSED written = 0;
20076   IADDR UNUSED pc = abuf->addr;
20077   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20078
20079 {
20080   UHI tmp_argihi;
20081   UHI tmp_argilo;
20082   UHI tmp_argjhi;
20083   UHI tmp_argjlo;
20084 {
20085   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20086   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20087   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20088   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20089 }
20090 if (GTUHI (tmp_argihi, tmp_argjhi)) {
20091   {
20092     UHI opval = tmp_argjhi;
20093     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
20094     written |= (1 << 9);
20095     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20096   }
20097 } else {
20098   {
20099     UHI opval = tmp_argihi;
20100     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
20101     written |= (1 << 9);
20102     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20103   }
20104 }
20105 if (GTUHI (tmp_argilo, tmp_argjlo)) {
20106   {
20107     UHI opval = tmp_argjlo;
20108     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
20109     written |= (1 << 10);
20110     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20111   }
20112 } else {
20113   {
20114     UHI opval = tmp_argilo;
20115     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
20116     written |= (1 << 10);
20117     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20118   }
20119 }
20120 }
20121
20122   abuf->written = written;
20123   return vpc;
20124 #undef FLD
20125 }
20126
20127 /* mcmpsh: mcmpsh$pack $FRinti,$FRintj,$FCCk */
20128
20129 static SEM_PC
20130 SEM_FN_NAME (frvbf,mcmpsh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20131 {
20132 #define FLD(f) abuf->fields.sfmt_mcmpsh.f
20133   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20134   int UNUSED written = 0;
20135   IADDR UNUSED pc = abuf->addr;
20136   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20137
20138 if (ANDSI (FLD (f_FCCk), SUBSI (2, 1))) {
20139 frvbf_media_cr_not_aligned (current_cpu);
20140 } else {
20141 {
20142   HI tmp_argihi;
20143   HI tmp_argilo;
20144   HI tmp_argjhi;
20145   HI tmp_argjlo;
20146 {
20147   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20148   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20149   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20150   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20151 }
20152 if (GTHI (tmp_argihi, tmp_argjhi)) {
20153   {
20154     UQI opval = 2;
20155     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCk)]), opval);
20156     written |= (1 << 9);
20157     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20158   }
20159 } else {
20160 if (EQHI (tmp_argihi, tmp_argjhi)) {
20161   {
20162     UQI opval = 8;
20163     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCk)]), opval);
20164     written |= (1 << 9);
20165     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20166   }
20167 } else {
20168 if (LTHI (tmp_argihi, tmp_argjhi)) {
20169   {
20170     UQI opval = 4;
20171     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCk)]), opval);
20172     written |= (1 << 9);
20173     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20174   }
20175 } else {
20176   {
20177     UQI opval = 1;
20178     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCk)]), opval);
20179     written |= (1 << 9);
20180     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20181   }
20182 }
20183 }
20184 }
20185 if (GTHI (tmp_argilo, tmp_argjlo)) {
20186   {
20187     UQI opval = 2;
20188     sim_queue_qi_write (current_cpu, & CPU (h_fccr[ADDSI (FLD (f_FCCk), 1)]), opval);
20189     written |= (1 << 10);
20190     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20191   }
20192 } else {
20193 if (EQHI (tmp_argilo, tmp_argjlo)) {
20194   {
20195     UQI opval = 8;
20196     sim_queue_qi_write (current_cpu, & CPU (h_fccr[ADDSI (FLD (f_FCCk), 1)]), opval);
20197     written |= (1 << 10);
20198     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20199   }
20200 } else {
20201 if (LTHI (tmp_argilo, tmp_argjlo)) {
20202   {
20203     UQI opval = 4;
20204     sim_queue_qi_write (current_cpu, & CPU (h_fccr[ADDSI (FLD (f_FCCk), 1)]), opval);
20205     written |= (1 << 10);
20206     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20207   }
20208 } else {
20209   {
20210     UQI opval = 1;
20211     sim_queue_qi_write (current_cpu, & CPU (h_fccr[ADDSI (FLD (f_FCCk), 1)]), opval);
20212     written |= (1 << 10);
20213     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20214   }
20215 }
20216 }
20217 }
20218 }
20219 }
20220
20221   abuf->written = written;
20222   return vpc;
20223 #undef FLD
20224 }
20225
20226 /* mcmpuh: mcmpuh$pack $FRinti,$FRintj,$FCCk */
20227
20228 static SEM_PC
20229 SEM_FN_NAME (frvbf,mcmpuh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20230 {
20231 #define FLD(f) abuf->fields.sfmt_mcmpsh.f
20232   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20233   int UNUSED written = 0;
20234   IADDR UNUSED pc = abuf->addr;
20235   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20236
20237 if (ANDSI (FLD (f_FCCk), SUBSI (2, 1))) {
20238 frvbf_media_cr_not_aligned (current_cpu);
20239 } else {
20240 {
20241   UHI tmp_argihi;
20242   UHI tmp_argilo;
20243   UHI tmp_argjhi;
20244   UHI tmp_argjlo;
20245 {
20246   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20247   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20248   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20249   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20250 }
20251 if (GTUHI (tmp_argihi, tmp_argjhi)) {
20252   {
20253     UQI opval = 2;
20254     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCk)]), opval);
20255     written |= (1 << 9);
20256     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20257   }
20258 } else {
20259 if (EQHI (tmp_argihi, tmp_argjhi)) {
20260   {
20261     UQI opval = 8;
20262     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCk)]), opval);
20263     written |= (1 << 9);
20264     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20265   }
20266 } else {
20267 if (LTUHI (tmp_argihi, tmp_argjhi)) {
20268   {
20269     UQI opval = 4;
20270     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCk)]), opval);
20271     written |= (1 << 9);
20272     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20273   }
20274 } else {
20275   {
20276     UQI opval = 1;
20277     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCk)]), opval);
20278     written |= (1 << 9);
20279     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20280   }
20281 }
20282 }
20283 }
20284 if (GTUHI (tmp_argilo, tmp_argjlo)) {
20285   {
20286     UQI opval = 2;
20287     sim_queue_qi_write (current_cpu, & CPU (h_fccr[ADDSI (FLD (f_FCCk), 1)]), opval);
20288     written |= (1 << 10);
20289     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20290   }
20291 } else {
20292 if (EQHI (tmp_argilo, tmp_argjlo)) {
20293   {
20294     UQI opval = 8;
20295     sim_queue_qi_write (current_cpu, & CPU (h_fccr[ADDSI (FLD (f_FCCk), 1)]), opval);
20296     written |= (1 << 10);
20297     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20298   }
20299 } else {
20300 if (LTUHI (tmp_argilo, tmp_argjlo)) {
20301   {
20302     UQI opval = 4;
20303     sim_queue_qi_write (current_cpu, & CPU (h_fccr[ADDSI (FLD (f_FCCk), 1)]), opval);
20304     written |= (1 << 10);
20305     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20306   }
20307 } else {
20308   {
20309     UQI opval = 1;
20310     sim_queue_qi_write (current_cpu, & CPU (h_fccr[ADDSI (FLD (f_FCCk), 1)]), opval);
20311     written |= (1 << 10);
20312     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20313   }
20314 }
20315 }
20316 }
20317 }
20318 }
20319
20320   abuf->written = written;
20321   return vpc;
20322 #undef FLD
20323 }
20324
20325 /* mabshs: mabshs$pack $FRintj,$FRintk */
20326
20327 static SEM_PC
20328 SEM_FN_NAME (frvbf,mabshs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20329 {
20330 #define FLD(f) abuf->fields.sfmt_mabshs.f
20331   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20332   int UNUSED written = 0;
20333   IADDR UNUSED pc = abuf->addr;
20334   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20335
20336 {
20337   HI tmp_arghi;
20338   HI tmp_arglo;
20339   {
20340     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRj)));
20341     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRj), opval);
20342     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
20343   }
20344   {
20345     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
20346     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
20347     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
20348   }
20349   tmp_arghi = GET_H_FR_HI (ADDSI (FLD (f_FRj), 0));
20350   tmp_arglo = GET_H_FR_LO (ADDSI (FLD (f_FRj), 0));
20351 if (GTDI (ABSDI (EXTHIDI (tmp_arghi)), 32767)) {
20352 {
20353   {
20354     UHI opval = 32767;
20355     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
20356     written |= (1 << 8);
20357     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20358   }
20359 frvbf_media_overflow (current_cpu, 8);
20360 }
20361 } else {
20362 if (LTDI (ABSDI (EXTHIDI (tmp_arghi)), -32768)) {
20363 {
20364   {
20365     UHI opval = -32768;
20366     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
20367     written |= (1 << 8);
20368     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20369   }
20370 frvbf_media_overflow (current_cpu, 8);
20371 }
20372 } else {
20373   {
20374     UHI opval = ABSDI (EXTHIDI (tmp_arghi));
20375     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
20376     written |= (1 << 8);
20377     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20378   }
20379 }
20380 }
20381 if (GTDI (ABSDI (EXTHIDI (tmp_arglo)), 32767)) {
20382 {
20383   {
20384     UHI opval = 32767;
20385     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
20386     written |= (1 << 9);
20387     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20388   }
20389 frvbf_media_overflow (current_cpu, 4);
20390 }
20391 } else {
20392 if (LTDI (ABSDI (EXTHIDI (tmp_arglo)), -32768)) {
20393 {
20394   {
20395     UHI opval = -32768;
20396     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
20397     written |= (1 << 9);
20398     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20399   }
20400 frvbf_media_overflow (current_cpu, 4);
20401 }
20402 } else {
20403   {
20404     UHI opval = ABSDI (EXTHIDI (tmp_arglo));
20405     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
20406     written |= (1 << 9);
20407     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20408   }
20409 }
20410 }
20411 }
20412
20413   abuf->written = written;
20414   return vpc;
20415 #undef FLD
20416 }
20417
20418 /* maddhss: maddhss$pack $FRinti,$FRintj,$FRintk */
20419
20420 static SEM_PC
20421 SEM_FN_NAME (frvbf,maddhss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20422 {
20423 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
20424   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20425   int UNUSED written = 0;
20426   IADDR UNUSED pc = abuf->addr;
20427   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20428
20429 {
20430   HI tmp_argihi;
20431   HI tmp_argilo;
20432   HI tmp_argjhi;
20433   HI tmp_argjlo;
20434 {
20435   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20436   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20437   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20438   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20439 }
20440 {
20441   DI tmp_tmp;
20442   tmp_tmp = ADDDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
20443 if (GTDI (tmp_tmp, 32767)) {
20444 {
20445   {
20446     UHI opval = 32767;
20447     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
20448     written |= (1 << 9);
20449     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20450   }
20451 frvbf_media_overflow (current_cpu, 8);
20452 }
20453 } else {
20454 if (LTDI (tmp_tmp, -32768)) {
20455 {
20456   {
20457     UHI opval = -32768;
20458     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
20459     written |= (1 << 9);
20460     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20461   }
20462 frvbf_media_overflow (current_cpu, 8);
20463 }
20464 } else {
20465   {
20466     UHI opval = tmp_tmp;
20467     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
20468     written |= (1 << 9);
20469     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20470   }
20471 }
20472 }
20473 }
20474 {
20475   DI tmp_tmp;
20476   tmp_tmp = ADDDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
20477 if (GTDI (tmp_tmp, 32767)) {
20478 {
20479   {
20480     UHI opval = 32767;
20481     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
20482     written |= (1 << 10);
20483     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20484   }
20485 frvbf_media_overflow (current_cpu, 4);
20486 }
20487 } else {
20488 if (LTDI (tmp_tmp, -32768)) {
20489 {
20490   {
20491     UHI opval = -32768;
20492     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
20493     written |= (1 << 10);
20494     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20495   }
20496 frvbf_media_overflow (current_cpu, 4);
20497 }
20498 } else {
20499   {
20500     UHI opval = tmp_tmp;
20501     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
20502     written |= (1 << 10);
20503     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20504   }
20505 }
20506 }
20507 }
20508 }
20509
20510   abuf->written = written;
20511   return vpc;
20512 #undef FLD
20513 }
20514
20515 /* maddhus: maddhus$pack $FRinti,$FRintj,$FRintk */
20516
20517 static SEM_PC
20518 SEM_FN_NAME (frvbf,maddhus) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20519 {
20520 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
20521   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20522   int UNUSED written = 0;
20523   IADDR UNUSED pc = abuf->addr;
20524   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20525
20526 {
20527   UHI tmp_argihi;
20528   UHI tmp_argilo;
20529   UHI tmp_argjhi;
20530   UHI tmp_argjlo;
20531 {
20532   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20533   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20534   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20535   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20536 }
20537 {
20538   DI tmp_tmp;
20539   tmp_tmp = ADDDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
20540 if (GTDI (tmp_tmp, 65535)) {
20541 {
20542   {
20543     UHI opval = 65535;
20544     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
20545     written |= (1 << 9);
20546     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20547   }
20548 frvbf_media_overflow (current_cpu, 8);
20549 }
20550 } else {
20551 if (LTDI (tmp_tmp, 0)) {
20552 {
20553   {
20554     UHI opval = 0;
20555     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
20556     written |= (1 << 9);
20557     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20558   }
20559 frvbf_media_overflow (current_cpu, 8);
20560 }
20561 } else {
20562   {
20563     UHI opval = tmp_tmp;
20564     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
20565     written |= (1 << 9);
20566     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20567   }
20568 }
20569 }
20570 }
20571 {
20572   DI tmp_tmp;
20573   tmp_tmp = ADDDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
20574 if (GTDI (tmp_tmp, 65535)) {
20575 {
20576   {
20577     UHI opval = 65535;
20578     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
20579     written |= (1 << 10);
20580     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20581   }
20582 frvbf_media_overflow (current_cpu, 4);
20583 }
20584 } else {
20585 if (LTDI (tmp_tmp, 0)) {
20586 {
20587   {
20588     UHI opval = 0;
20589     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
20590     written |= (1 << 10);
20591     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20592   }
20593 frvbf_media_overflow (current_cpu, 4);
20594 }
20595 } else {
20596   {
20597     UHI opval = tmp_tmp;
20598     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
20599     written |= (1 << 10);
20600     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20601   }
20602 }
20603 }
20604 }
20605 }
20606
20607   abuf->written = written;
20608   return vpc;
20609 #undef FLD
20610 }
20611
20612 /* msubhss: msubhss$pack $FRinti,$FRintj,$FRintk */
20613
20614 static SEM_PC
20615 SEM_FN_NAME (frvbf,msubhss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20616 {
20617 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
20618   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20619   int UNUSED written = 0;
20620   IADDR UNUSED pc = abuf->addr;
20621   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20622
20623 {
20624   HI tmp_argihi;
20625   HI tmp_argilo;
20626   HI tmp_argjhi;
20627   HI tmp_argjlo;
20628 {
20629   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20630   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20631   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20632   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20633 }
20634 {
20635   DI tmp_tmp;
20636   tmp_tmp = SUBDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
20637 if (GTDI (tmp_tmp, 32767)) {
20638 {
20639   {
20640     UHI opval = 32767;
20641     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
20642     written |= (1 << 9);
20643     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20644   }
20645 frvbf_media_overflow (current_cpu, 8);
20646 }
20647 } else {
20648 if (LTDI (tmp_tmp, -32768)) {
20649 {
20650   {
20651     UHI opval = -32768;
20652     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
20653     written |= (1 << 9);
20654     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20655   }
20656 frvbf_media_overflow (current_cpu, 8);
20657 }
20658 } else {
20659   {
20660     UHI opval = tmp_tmp;
20661     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
20662     written |= (1 << 9);
20663     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20664   }
20665 }
20666 }
20667 }
20668 {
20669   DI tmp_tmp;
20670   tmp_tmp = SUBDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
20671 if (GTDI (tmp_tmp, 32767)) {
20672 {
20673   {
20674     UHI opval = 32767;
20675     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
20676     written |= (1 << 10);
20677     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20678   }
20679 frvbf_media_overflow (current_cpu, 4);
20680 }
20681 } else {
20682 if (LTDI (tmp_tmp, -32768)) {
20683 {
20684   {
20685     UHI opval = -32768;
20686     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
20687     written |= (1 << 10);
20688     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20689   }
20690 frvbf_media_overflow (current_cpu, 4);
20691 }
20692 } else {
20693   {
20694     UHI opval = tmp_tmp;
20695     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
20696     written |= (1 << 10);
20697     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20698   }
20699 }
20700 }
20701 }
20702 }
20703
20704   abuf->written = written;
20705   return vpc;
20706 #undef FLD
20707 }
20708
20709 /* msubhus: msubhus$pack $FRinti,$FRintj,$FRintk */
20710
20711 static SEM_PC
20712 SEM_FN_NAME (frvbf,msubhus) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20713 {
20714 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
20715   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20716   int UNUSED written = 0;
20717   IADDR UNUSED pc = abuf->addr;
20718   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20719
20720 {
20721   UHI tmp_argihi;
20722   UHI tmp_argilo;
20723   UHI tmp_argjhi;
20724   UHI tmp_argjlo;
20725 {
20726   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20727   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20728   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20729   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20730 }
20731 {
20732   DI tmp_tmp;
20733   tmp_tmp = SUBDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
20734 if (GTDI (tmp_tmp, 65535)) {
20735 {
20736   {
20737     UHI opval = 65535;
20738     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
20739     written |= (1 << 9);
20740     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20741   }
20742 frvbf_media_overflow (current_cpu, 8);
20743 }
20744 } else {
20745 if (LTDI (tmp_tmp, 0)) {
20746 {
20747   {
20748     UHI opval = 0;
20749     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
20750     written |= (1 << 9);
20751     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20752   }
20753 frvbf_media_overflow (current_cpu, 8);
20754 }
20755 } else {
20756   {
20757     UHI opval = tmp_tmp;
20758     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
20759     written |= (1 << 9);
20760     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20761   }
20762 }
20763 }
20764 }
20765 {
20766   DI tmp_tmp;
20767   tmp_tmp = SUBDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
20768 if (GTDI (tmp_tmp, 65535)) {
20769 {
20770   {
20771     UHI opval = 65535;
20772     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
20773     written |= (1 << 10);
20774     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20775   }
20776 frvbf_media_overflow (current_cpu, 4);
20777 }
20778 } else {
20779 if (LTDI (tmp_tmp, 0)) {
20780 {
20781   {
20782     UHI opval = 0;
20783     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
20784     written |= (1 << 10);
20785     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20786   }
20787 frvbf_media_overflow (current_cpu, 4);
20788 }
20789 } else {
20790   {
20791     UHI opval = tmp_tmp;
20792     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
20793     written |= (1 << 10);
20794     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20795   }
20796 }
20797 }
20798 }
20799 }
20800
20801   abuf->written = written;
20802   return vpc;
20803 #undef FLD
20804 }
20805
20806 /* cmaddhss: cmaddhss$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
20807
20808 static SEM_PC
20809 SEM_FN_NAME (frvbf,cmaddhss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20810 {
20811 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
20812   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20813   int UNUSED written = 0;
20814   IADDR UNUSED pc = abuf->addr;
20815   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20816
20817 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
20818 {
20819   HI tmp_argihi;
20820   HI tmp_argilo;
20821   HI tmp_argjhi;
20822   HI tmp_argjlo;
20823 {
20824   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20825   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20826   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20827   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20828 }
20829 {
20830   DI tmp_tmp;
20831   tmp_tmp = ADDDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
20832 if (GTDI (tmp_tmp, 32767)) {
20833 {
20834   {
20835     UHI opval = 32767;
20836     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
20837     written |= (1 << 11);
20838     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20839   }
20840 frvbf_media_overflow (current_cpu, 8);
20841 }
20842 } else {
20843 if (LTDI (tmp_tmp, -32768)) {
20844 {
20845   {
20846     UHI opval = -32768;
20847     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
20848     written |= (1 << 11);
20849     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20850   }
20851 frvbf_media_overflow (current_cpu, 8);
20852 }
20853 } else {
20854   {
20855     UHI opval = tmp_tmp;
20856     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
20857     written |= (1 << 11);
20858     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20859   }
20860 }
20861 }
20862 }
20863 {
20864   DI tmp_tmp;
20865   tmp_tmp = ADDDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
20866 if (GTDI (tmp_tmp, 32767)) {
20867 {
20868   {
20869     UHI opval = 32767;
20870     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
20871     written |= (1 << 12);
20872     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20873   }
20874 frvbf_media_overflow (current_cpu, 4);
20875 }
20876 } else {
20877 if (LTDI (tmp_tmp, -32768)) {
20878 {
20879   {
20880     UHI opval = -32768;
20881     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
20882     written |= (1 << 12);
20883     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20884   }
20885 frvbf_media_overflow (current_cpu, 4);
20886 }
20887 } else {
20888   {
20889     UHI opval = tmp_tmp;
20890     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
20891     written |= (1 << 12);
20892     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20893   }
20894 }
20895 }
20896 }
20897 }
20898 }
20899
20900   abuf->written = written;
20901   return vpc;
20902 #undef FLD
20903 }
20904
20905 /* cmaddhus: cmaddhus$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
20906
20907 static SEM_PC
20908 SEM_FN_NAME (frvbf,cmaddhus) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20909 {
20910 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
20911   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20912   int UNUSED written = 0;
20913   IADDR UNUSED pc = abuf->addr;
20914   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20915
20916 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
20917 {
20918   UHI tmp_argihi;
20919   UHI tmp_argilo;
20920   UHI tmp_argjhi;
20921   UHI tmp_argjlo;
20922 {
20923   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20924   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20925   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20926   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20927 }
20928 {
20929   DI tmp_tmp;
20930   tmp_tmp = ADDDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
20931 if (GTDI (tmp_tmp, 65535)) {
20932 {
20933   {
20934     UHI opval = 65535;
20935     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
20936     written |= (1 << 11);
20937     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20938   }
20939 frvbf_media_overflow (current_cpu, 8);
20940 }
20941 } else {
20942 if (LTDI (tmp_tmp, 0)) {
20943 {
20944   {
20945     UHI opval = 0;
20946     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
20947     written |= (1 << 11);
20948     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20949   }
20950 frvbf_media_overflow (current_cpu, 8);
20951 }
20952 } else {
20953   {
20954     UHI opval = tmp_tmp;
20955     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
20956     written |= (1 << 11);
20957     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20958   }
20959 }
20960 }
20961 }
20962 {
20963   DI tmp_tmp;
20964   tmp_tmp = ADDDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
20965 if (GTDI (tmp_tmp, 65535)) {
20966 {
20967   {
20968     UHI opval = 65535;
20969     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
20970     written |= (1 << 12);
20971     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20972   }
20973 frvbf_media_overflow (current_cpu, 4);
20974 }
20975 } else {
20976 if (LTDI (tmp_tmp, 0)) {
20977 {
20978   {
20979     UHI opval = 0;
20980     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
20981     written |= (1 << 12);
20982     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20983   }
20984 frvbf_media_overflow (current_cpu, 4);
20985 }
20986 } else {
20987   {
20988     UHI opval = tmp_tmp;
20989     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
20990     written |= (1 << 12);
20991     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20992   }
20993 }
20994 }
20995 }
20996 }
20997 }
20998
20999   abuf->written = written;
21000   return vpc;
21001 #undef FLD
21002 }
21003
21004 /* cmsubhss: cmsubhss$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
21005
21006 static SEM_PC
21007 SEM_FN_NAME (frvbf,cmsubhss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
21008 {
21009 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
21010   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
21011   int UNUSED written = 0;
21012   IADDR UNUSED pc = abuf->addr;
21013   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
21014
21015 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
21016 {
21017   HI tmp_argihi;
21018   HI tmp_argilo;
21019   HI tmp_argjhi;
21020   HI tmp_argjlo;
21021 {
21022   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21023   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21024   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21025   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21026 }
21027 {
21028   DI tmp_tmp;
21029   tmp_tmp = SUBDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
21030 if (GTDI (tmp_tmp, 32767)) {
21031 {
21032   {
21033     UHI opval = 32767;
21034     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
21035     written |= (1 << 11);
21036     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21037   }
21038 frvbf_media_overflow (current_cpu, 8);
21039 }
21040 } else {
21041 if (LTDI (tmp_tmp, -32768)) {
21042 {
21043   {
21044     UHI opval = -32768;
21045     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
21046     written |= (1 << 11);
21047     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21048   }
21049 frvbf_media_overflow (current_cpu, 8);
21050 }
21051 } else {
21052   {
21053     UHI opval = tmp_tmp;
21054     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
21055     written |= (1 << 11);
21056     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21057   }
21058 }
21059 }
21060 }
21061 {
21062   DI tmp_tmp;
21063   tmp_tmp = SUBDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
21064 if (GTDI (tmp_tmp, 32767)) {
21065 {
21066   {
21067     UHI opval = 32767;
21068     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
21069     written |= (1 << 12);
21070     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21071   }
21072 frvbf_media_overflow (current_cpu, 4);
21073 }
21074 } else {
21075 if (LTDI (tmp_tmp, -32768)) {
21076 {
21077   {
21078     UHI opval = -32768;
21079     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
21080     written |= (1 << 12);
21081     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21082   }
21083 frvbf_media_overflow (current_cpu, 4);
21084 }
21085 } else {
21086   {
21087     UHI opval = tmp_tmp;
21088     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
21089     written |= (1 << 12);
21090     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21091   }
21092 }
21093 }
21094 }
21095 }
21096 }
21097
21098   abuf->written = written;
21099   return vpc;
21100 #undef FLD
21101 }
21102
21103 /* cmsubhus: cmsubhus$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
21104
21105 static SEM_PC
21106 SEM_FN_NAME (frvbf,cmsubhus) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
21107 {
21108 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
21109   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
21110   int UNUSED written = 0;
21111   IADDR UNUSED pc = abuf->addr;
21112   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
21113
21114 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
21115 {
21116   UHI tmp_argihi;
21117   UHI tmp_argilo;
21118   UHI tmp_argjhi;
21119   UHI tmp_argjlo;
21120 {
21121   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21122   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21123   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21124   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21125 }
21126 {
21127   DI tmp_tmp;
21128   tmp_tmp = SUBDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
21129 if (GTDI (tmp_tmp, 65535)) {
21130 {
21131   {
21132     UHI opval = 65535;
21133     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
21134     written |= (1 << 11);
21135     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21136   }
21137 frvbf_media_overflow (current_cpu, 8);
21138 }
21139 } else {
21140 if (LTDI (tmp_tmp, 0)) {
21141 {
21142   {
21143     UHI opval = 0;
21144     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
21145     written |= (1 << 11);
21146     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21147   }
21148 frvbf_media_overflow (current_cpu, 8);
21149 }
21150 } else {
21151   {
21152     UHI opval = tmp_tmp;
21153     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
21154     written |= (1 << 11);
21155     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21156   }
21157 }
21158 }
21159 }
21160 {
21161   DI tmp_tmp;
21162   tmp_tmp = SUBDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
21163 if (GTDI (tmp_tmp, 65535)) {
21164 {
21165   {
21166     UHI opval = 65535;
21167     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
21168     written |= (1 << 12);
21169     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21170   }
21171 frvbf_media_overflow (current_cpu, 4);
21172 }
21173 } else {
21174 if (LTDI (tmp_tmp, 0)) {
21175 {
21176   {
21177     UHI opval = 0;
21178     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
21179     written |= (1 << 12);
21180     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21181   }
21182 frvbf_media_overflow (current_cpu, 4);
21183 }
21184 } else {
21185   {
21186     UHI opval = tmp_tmp;
21187     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
21188     written |= (1 << 12);
21189     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21190   }
21191 }
21192 }
21193 }
21194 }
21195 }
21196
21197   abuf->written = written;
21198   return vpc;
21199 #undef FLD
21200 }
21201
21202 /* mqaddhss: mqaddhss$pack $FRintieven,$FRintjeven,$FRintkeven */
21203
21204 static SEM_PC
21205 SEM_FN_NAME (frvbf,mqaddhss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
21206 {
21207 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
21208   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
21209   int UNUSED written = 0;
21210   IADDR UNUSED pc = abuf->addr;
21211   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
21212
21213 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
21214 frvbf_media_register_not_aligned (current_cpu);
21215 } else {
21216 {
21217   HI tmp_argihi;
21218   HI tmp_argilo;
21219   HI tmp_argjhi;
21220   HI tmp_argjlo;
21221   {
21222     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
21223     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
21224     written |= (1 << 14);
21225     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
21226   }
21227 {
21228   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21229   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21230   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21231   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21232 }
21233 {
21234   DI tmp_tmp;
21235   tmp_tmp = ADDDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
21236 if (GTDI (tmp_tmp, 32767)) {
21237 {
21238   {
21239     UHI opval = 32767;
21240     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
21241     written |= (1 << 15);
21242     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21243   }
21244 frvbf_media_overflow (current_cpu, 8);
21245 }
21246 } else {
21247 if (LTDI (tmp_tmp, -32768)) {
21248 {
21249   {
21250     UHI opval = -32768;
21251     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
21252     written |= (1 << 15);
21253     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21254   }
21255 frvbf_media_overflow (current_cpu, 8);
21256 }
21257 } else {
21258   {
21259     UHI opval = tmp_tmp;
21260     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
21261     written |= (1 << 15);
21262     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21263   }
21264 }
21265 }
21266 }
21267 {
21268   DI tmp_tmp;
21269   tmp_tmp = ADDDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
21270 if (GTDI (tmp_tmp, 32767)) {
21271 {
21272   {
21273     UHI opval = 32767;
21274     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
21275     written |= (1 << 17);
21276     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21277   }
21278 frvbf_media_overflow (current_cpu, 4);
21279 }
21280 } else {
21281 if (LTDI (tmp_tmp, -32768)) {
21282 {
21283   {
21284     UHI opval = -32768;
21285     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
21286     written |= (1 << 17);
21287     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21288   }
21289 frvbf_media_overflow (current_cpu, 4);
21290 }
21291 } else {
21292   {
21293     UHI opval = tmp_tmp;
21294     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
21295     written |= (1 << 17);
21296     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21297   }
21298 }
21299 }
21300 }
21301 {
21302   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21303   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21304   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21305   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21306 }
21307 {
21308   DI tmp_tmp;
21309   tmp_tmp = ADDDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
21310 if (GTDI (tmp_tmp, 32767)) {
21311 {
21312   {
21313     UHI opval = 32767;
21314     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 1), opval);
21315     written |= (1 << 16);
21316     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21317   }
21318 frvbf_media_overflow (current_cpu, 2);
21319 }
21320 } else {
21321 if (LTDI (tmp_tmp, -32768)) {
21322 {
21323   {
21324     UHI opval = -32768;
21325     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 1), opval);
21326     written |= (1 << 16);
21327     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21328   }
21329 frvbf_media_overflow (current_cpu, 2);
21330 }
21331 } else {
21332   {
21333     UHI opval = tmp_tmp;
21334     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 1), opval);
21335     written |= (1 << 16);
21336     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21337   }
21338 }
21339 }
21340 }
21341 {
21342   DI tmp_tmp;
21343   tmp_tmp = ADDDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
21344 if (GTDI (tmp_tmp, 32767)) {
21345 {
21346   {
21347     UHI opval = 32767;
21348     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 1), opval);
21349     written |= (1 << 18);
21350     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21351   }
21352 frvbf_media_overflow (current_cpu, 1);
21353 }
21354 } else {
21355 if (LTDI (tmp_tmp, -32768)) {
21356 {
21357   {
21358     UHI opval = -32768;
21359     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 1), opval);
21360     written |= (1 << 18);
21361     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21362   }
21363 frvbf_media_overflow (current_cpu, 1);
21364 }
21365 } else {
21366   {
21367     UHI opval = tmp_tmp;
21368     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 1), opval);
21369     written |= (1 << 18);
21370     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21371   }
21372 }
21373 }
21374 }
21375 }
21376 }
21377
21378   abuf->written = written;
21379   return vpc;
21380 #undef FLD
21381 }
21382
21383 /* mqaddhus: mqaddhus$pack $FRintieven,$FRintjeven,$FRintkeven */
21384
21385 static SEM_PC
21386 SEM_FN_NAME (frvbf,mqaddhus) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
21387 {
21388 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
21389   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
21390   int UNUSED written = 0;
21391   IADDR UNUSED pc = abuf->addr;
21392   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
21393
21394 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
21395 frvbf_media_register_not_aligned (current_cpu);
21396 } else {
21397 {
21398   UHI tmp_argihi;
21399   UHI tmp_argilo;
21400   UHI tmp_argjhi;
21401   UHI tmp_argjlo;
21402   {
21403     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
21404     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
21405     written |= (1 << 14);
21406     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
21407   }
21408 {
21409   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21410   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21411   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21412   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21413 }
21414 {
21415   DI tmp_tmp;
21416   tmp_tmp = ADDDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
21417 if (GTDI (tmp_tmp, 65535)) {
21418 {
21419   {
21420     UHI opval = 65535;
21421     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
21422     written |= (1 << 15);
21423     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21424   }
21425 frvbf_media_overflow (current_cpu, 8);
21426 }
21427 } else {
21428 if (LTDI (tmp_tmp, 0)) {
21429 {
21430   {
21431     UHI opval = 0;
21432     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
21433     written |= (1 << 15);
21434     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21435   }
21436 frvbf_media_overflow (current_cpu, 8);
21437 }
21438 } else {
21439   {
21440     UHI opval = tmp_tmp;
21441     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
21442     written |= (1 << 15);
21443     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21444   }
21445 }
21446 }
21447 }
21448 {
21449   DI tmp_tmp;
21450   tmp_tmp = ADDDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
21451 if (GTDI (tmp_tmp, 65535)) {
21452 {
21453   {
21454     UHI opval = 65535;
21455     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
21456     written |= (1 << 17);
21457     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21458   }
21459 frvbf_media_overflow (current_cpu, 4);
21460 }
21461 } else {
21462 if (LTDI (tmp_tmp, 0)) {
21463 {
21464   {
21465     UHI opval = 0;
21466     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
21467     written |= (1 << 17);
21468     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21469   }
21470 frvbf_media_overflow (current_cpu, 4);
21471 }
21472 } else {
21473   {
21474     UHI opval = tmp_tmp;
21475     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
21476     written |= (1 << 17);
21477     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21478   }
21479 }
21480 }
21481 }
21482 {
21483   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21484   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21485   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21486   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21487 }
21488 {
21489   DI tmp_tmp;
21490   tmp_tmp = ADDDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
21491 if (GTDI (tmp_tmp, 65535)) {
21492 {
21493   {
21494     UHI opval = 65535;
21495     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 1), opval);
21496     written |= (1 << 16);
21497     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21498   }
21499 frvbf_media_overflow (current_cpu, 2);
21500 }
21501 } else {
21502 if (LTDI (tmp_tmp, 0)) {
21503 {
21504   {
21505     UHI opval = 0;
21506     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 1), opval);
21507     written |= (1 << 16);
21508     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21509   }
21510 frvbf_media_overflow (current_cpu, 2);
21511 }
21512 } else {
21513   {
21514     UHI opval = tmp_tmp;
21515     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 1), opval);
21516     written |= (1 << 16);
21517     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21518   }
21519 }
21520 }
21521 }
21522 {
21523   DI tmp_tmp;
21524   tmp_tmp = ADDDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
21525 if (GTDI (tmp_tmp, 65535)) {
21526 {
21527   {
21528     UHI opval = 65535;
21529     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 1), opval);
21530     written |= (1 << 18);
21531     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21532   }
21533 frvbf_media_overflow (current_cpu, 1);
21534 }
21535 } else {
21536 if (LTDI (tmp_tmp, 0)) {
21537 {
21538   {
21539     UHI opval = 0;
21540     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 1), opval);
21541     written |= (1 << 18);
21542     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21543   }
21544 frvbf_media_overflow (current_cpu, 1);
21545 }
21546 } else {
21547   {
21548     UHI opval = tmp_tmp;
21549     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 1), opval);
21550     written |= (1 << 18);
21551     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21552   }
21553 }
21554 }
21555 }
21556 }
21557 }
21558
21559   abuf->written = written;
21560   return vpc;
21561 #undef FLD
21562 }
21563
21564 /* mqsubhss: mqsubhss$pack $FRintieven,$FRintjeven,$FRintkeven */
21565
21566 static SEM_PC
21567 SEM_FN_NAME (frvbf,mqsubhss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
21568 {
21569 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
21570   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
21571   int UNUSED written = 0;
21572   IADDR UNUSED pc = abuf->addr;
21573   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
21574
21575 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
21576 frvbf_media_register_not_aligned (current_cpu);
21577 } else {
21578 {
21579   HI tmp_argihi;
21580   HI tmp_argilo;
21581   HI tmp_argjhi;
21582   HI tmp_argjlo;
21583   {
21584     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
21585     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
21586     written |= (1 << 14);
21587     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
21588   }
21589 {
21590   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21591   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21592   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21593   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21594 }
21595 {
21596   DI tmp_tmp;
21597   tmp_tmp = SUBDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
21598 if (GTDI (tmp_tmp, 32767)) {
21599 {
21600   {
21601     UHI opval = 32767;
21602     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
21603     written |= (1 << 15);
21604     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21605   }
21606 frvbf_media_overflow (current_cpu, 8);
21607 }
21608 } else {
21609 if (LTDI (tmp_tmp, -32768)) {
21610 {
21611   {
21612     UHI opval = -32768;
21613     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
21614     written |= (1 << 15);
21615     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21616   }
21617 frvbf_media_overflow (current_cpu, 8);
21618 }
21619 } else {
21620   {
21621     UHI opval = tmp_tmp;
21622     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
21623     written |= (1 << 15);
21624     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21625   }
21626 }
21627 }
21628 }
21629 {
21630   DI tmp_tmp;
21631   tmp_tmp = SUBDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
21632 if (GTDI (tmp_tmp, 32767)) {
21633 {
21634   {
21635     UHI opval = 32767;
21636     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
21637     written |= (1 << 17);
21638     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21639   }
21640 frvbf_media_overflow (current_cpu, 4);
21641 }
21642 } else {
21643 if (LTDI (tmp_tmp, -32768)) {
21644 {
21645   {
21646     UHI opval = -32768;
21647     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
21648     written |= (1 << 17);
21649     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21650   }
21651 frvbf_media_overflow (current_cpu, 4);
21652 }
21653 } else {
21654   {
21655     UHI opval = tmp_tmp;
21656     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
21657     written |= (1 << 17);
21658     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21659   }
21660 }
21661 }
21662 }
21663 {
21664   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21665   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21666   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21667   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21668 }
21669 {
21670   DI tmp_tmp;
21671   tmp_tmp = SUBDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
21672 if (GTDI (tmp_tmp, 32767)) {
21673 {
21674   {
21675     UHI opval = 32767;
21676     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 1), opval);
21677     written |= (1 << 16);
21678     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21679   }
21680 frvbf_media_overflow (current_cpu, 2);
21681 }
21682 } else {
21683 if (LTDI (tmp_tmp, -32768)) {
21684 {
21685   {
21686     UHI opval = -32768;
21687     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 1), opval);
21688     written |= (1 << 16);
21689     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21690   }
21691 frvbf_media_overflow (current_cpu, 2);
21692 }
21693 } else {
21694   {
21695     UHI opval = tmp_tmp;
21696     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 1), opval);
21697     written |= (1 << 16);
21698     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21699   }
21700 }
21701 }
21702 }
21703 {
21704   DI tmp_tmp;
21705   tmp_tmp = SUBDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
21706 if (GTDI (tmp_tmp, 32767)) {
21707 {
21708   {
21709     UHI opval = 32767;
21710     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 1), opval);
21711     written |= (1 << 18);
21712     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21713   }
21714 frvbf_media_overflow (current_cpu, 1);
21715 }
21716 } else {
21717 if (LTDI (tmp_tmp, -32768)) {
21718 {
21719   {
21720     UHI opval = -32768;
21721     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 1), opval);
21722     written |= (1 << 18);
21723     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21724   }
21725 frvbf_media_overflow (current_cpu, 1);
21726 }
21727 } else {
21728   {
21729     UHI opval = tmp_tmp;
21730     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 1), opval);
21731     written |= (1 << 18);
21732     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21733   }
21734 }
21735 }
21736 }
21737 }
21738 }
21739
21740   abuf->written = written;
21741   return vpc;
21742 #undef FLD
21743 }
21744
21745 /* mqsubhus: mqsubhus$pack $FRintieven,$FRintjeven,$FRintkeven */
21746
21747 static SEM_PC
21748 SEM_FN_NAME (frvbf,mqsubhus) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
21749 {
21750 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
21751   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
21752   int UNUSED written = 0;
21753   IADDR UNUSED pc = abuf->addr;
21754   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
21755
21756 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
21757 frvbf_media_register_not_aligned (current_cpu);
21758 } else {
21759 {
21760   UHI tmp_argihi;
21761   UHI tmp_argilo;
21762   UHI tmp_argjhi;
21763   UHI tmp_argjlo;
21764   {
21765     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
21766     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
21767     written |= (1 << 14);
21768     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
21769   }
21770 {
21771   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21772   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21773   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21774   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21775 }
21776 {
21777   DI tmp_tmp;
21778   tmp_tmp = SUBDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
21779 if (GTDI (tmp_tmp, 65535)) {
21780 {
21781   {
21782     UHI opval = 65535;
21783     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
21784     written |= (1 << 15);
21785     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21786   }
21787 frvbf_media_overflow (current_cpu, 8);
21788 }
21789 } else {
21790 if (LTDI (tmp_tmp, 0)) {
21791 {
21792   {
21793     UHI opval = 0;
21794     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
21795     written |= (1 << 15);
21796     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21797   }
21798 frvbf_media_overflow (current_cpu, 8);
21799 }
21800 } else {
21801   {
21802     UHI opval = tmp_tmp;
21803     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
21804     written |= (1 << 15);
21805     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21806   }
21807 }
21808 }
21809 }
21810 {
21811   DI tmp_tmp;
21812   tmp_tmp = SUBDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
21813 if (GTDI (tmp_tmp, 65535)) {
21814 {
21815   {
21816     UHI opval = 65535;
21817     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
21818     written |= (1 << 17);
21819     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21820   }
21821 frvbf_media_overflow (current_cpu, 4);
21822 }
21823 } else {
21824 if (LTDI (tmp_tmp, 0)) {
21825 {
21826   {
21827     UHI opval = 0;
21828     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
21829     written |= (1 << 17);
21830     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21831   }
21832 frvbf_media_overflow (current_cpu, 4);
21833 }
21834 } else {
21835   {
21836     UHI opval = tmp_tmp;
21837     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
21838     written |= (1 << 17);
21839     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21840   }
21841 }
21842 }
21843 }
21844 {
21845   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21846   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21847   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21848   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21849 }
21850 {
21851   DI tmp_tmp;
21852   tmp_tmp = SUBDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
21853 if (GTDI (tmp_tmp, 65535)) {
21854 {
21855   {
21856     UHI opval = 65535;
21857     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 1), opval);
21858     written |= (1 << 16);
21859     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21860   }
21861 frvbf_media_overflow (current_cpu, 2);
21862 }
21863 } else {
21864 if (LTDI (tmp_tmp, 0)) {
21865 {
21866   {
21867     UHI opval = 0;
21868     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 1), opval);
21869     written |= (1 << 16);
21870     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21871   }
21872 frvbf_media_overflow (current_cpu, 2);
21873 }
21874 } else {
21875   {
21876     UHI opval = tmp_tmp;
21877     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 1), opval);
21878     written |= (1 << 16);
21879     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21880   }
21881 }
21882 }
21883 }
21884 {
21885   DI tmp_tmp;
21886   tmp_tmp = SUBDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
21887 if (GTDI (tmp_tmp, 65535)) {
21888 {
21889   {
21890     UHI opval = 65535;
21891     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 1), opval);
21892     written |= (1 << 18);
21893     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21894   }
21895 frvbf_media_overflow (current_cpu, 1);
21896 }
21897 } else {
21898 if (LTDI (tmp_tmp, 0)) {
21899 {
21900   {
21901     UHI opval = 0;
21902     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 1), opval);
21903     written |= (1 << 18);
21904     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21905   }
21906 frvbf_media_overflow (current_cpu, 1);
21907 }
21908 } else {
21909   {
21910     UHI opval = tmp_tmp;
21911     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 1), opval);
21912     written |= (1 << 18);
21913     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21914   }
21915 }
21916 }
21917 }
21918 }
21919 }
21920
21921   abuf->written = written;
21922   return vpc;
21923 #undef FLD
21924 }
21925
21926 /* cmqaddhss: cmqaddhss$pack $FRintieven,$FRintjeven,$FRintkeven,$CCi,$cond */
21927
21928 static SEM_PC
21929 SEM_FN_NAME (frvbf,cmqaddhss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
21930 {
21931 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
21932   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
21933   int UNUSED written = 0;
21934   IADDR UNUSED pc = abuf->addr;
21935   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
21936
21937 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
21938 frvbf_media_register_not_aligned (current_cpu);
21939 } else {
21940 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
21941 {
21942   HI tmp_argihi;
21943   HI tmp_argilo;
21944   HI tmp_argjhi;
21945   HI tmp_argjlo;
21946   {
21947     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
21948     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
21949     written |= (1 << 16);
21950     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
21951   }
21952 {
21953   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21954   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21955   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21956   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21957 }
21958 {
21959   DI tmp_tmp;
21960   tmp_tmp = ADDDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
21961 if (GTDI (tmp_tmp, 32767)) {
21962 {
21963   {
21964     UHI opval = 32767;
21965     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
21966     written |= (1 << 17);
21967     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21968   }
21969 frvbf_media_overflow (current_cpu, 8);
21970 }
21971 } else {
21972 if (LTDI (tmp_tmp, -32768)) {
21973 {
21974   {
21975     UHI opval = -32768;
21976     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
21977     written |= (1 << 17);
21978     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21979   }
21980 frvbf_media_overflow (current_cpu, 8);
21981 }
21982 } else {
21983   {
21984     UHI opval = tmp_tmp;
21985     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
21986     written |= (1 << 17);
21987     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21988   }
21989 }
21990 }
21991 }
21992 {
21993   DI tmp_tmp;
21994   tmp_tmp = ADDDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
21995 if (GTDI (tmp_tmp, 32767)) {
21996 {
21997   {
21998     UHI opval = 32767;
21999     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
22000     written |= (1 << 19);
22001     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22002   }
22003 frvbf_media_overflow (current_cpu, 4);
22004 }
22005 } else {
22006 if (LTDI (tmp_tmp, -32768)) {
22007 {
22008   {
22009     UHI opval = -32768;
22010     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
22011     written |= (1 << 19);
22012     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22013   }
22014 frvbf_media_overflow (current_cpu, 4);
22015 }
22016 } else {
22017   {
22018     UHI opval = tmp_tmp;
22019     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
22020     written |= (1 << 19);
22021     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22022   }
22023 }
22024 }
22025 }
22026 {
22027   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22028   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22029   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22030   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22031 }
22032 {
22033   DI tmp_tmp;
22034   tmp_tmp = ADDDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
22035 if (GTDI (tmp_tmp, 32767)) {
22036 {
22037   {
22038     UHI opval = 32767;
22039     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 1), opval);
22040     written |= (1 << 18);
22041     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22042   }
22043 frvbf_media_overflow (current_cpu, 2);
22044 }
22045 } else {
22046 if (LTDI (tmp_tmp, -32768)) {
22047 {
22048   {
22049     UHI opval = -32768;
22050     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 1), opval);
22051     written |= (1 << 18);
22052     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22053   }
22054 frvbf_media_overflow (current_cpu, 2);
22055 }
22056 } else {
22057   {
22058     UHI opval = tmp_tmp;
22059     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 1), opval);
22060     written |= (1 << 18);
22061     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22062   }
22063 }
22064 }
22065 }
22066 {
22067   DI tmp_tmp;
22068   tmp_tmp = ADDDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
22069 if (GTDI (tmp_tmp, 32767)) {
22070 {
22071   {
22072     UHI opval = 32767;
22073     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 1), opval);
22074     written |= (1 << 20);
22075     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22076   }
22077 frvbf_media_overflow (current_cpu, 1);
22078 }
22079 } else {
22080 if (LTDI (tmp_tmp, -32768)) {
22081 {
22082   {
22083     UHI opval = -32768;
22084     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 1), opval);
22085     written |= (1 << 20);
22086     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22087   }
22088 frvbf_media_overflow (current_cpu, 1);
22089 }
22090 } else {
22091   {
22092     UHI opval = tmp_tmp;
22093     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 1), opval);
22094     written |= (1 << 20);
22095     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22096   }
22097 }
22098 }
22099 }
22100 }
22101 }
22102 }
22103
22104   abuf->written = written;
22105   return vpc;
22106 #undef FLD
22107 }
22108
22109 /* cmqaddhus: cmqaddhus$pack $FRintieven,$FRintjeven,$FRintkeven,$CCi,$cond */
22110
22111 static SEM_PC
22112 SEM_FN_NAME (frvbf,cmqaddhus) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
22113 {
22114 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
22115   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
22116   int UNUSED written = 0;
22117   IADDR UNUSED pc = abuf->addr;
22118   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
22119
22120 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
22121 frvbf_media_register_not_aligned (current_cpu);
22122 } else {
22123 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
22124 {
22125   UHI tmp_argihi;
22126   UHI tmp_argilo;
22127   UHI tmp_argjhi;
22128   UHI tmp_argjlo;
22129   {
22130     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
22131     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
22132     written |= (1 << 16);
22133     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
22134   }
22135 {
22136   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22137   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22138   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22139   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22140 }
22141 {
22142   DI tmp_tmp;
22143   tmp_tmp = ADDDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
22144 if (GTDI (tmp_tmp, 65535)) {
22145 {
22146   {
22147     UHI opval = 65535;
22148     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
22149     written |= (1 << 17);
22150     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22151   }
22152 frvbf_media_overflow (current_cpu, 8);
22153 }
22154 } else {
22155 if (LTDI (tmp_tmp, 0)) {
22156 {
22157   {
22158     UHI opval = 0;
22159     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
22160     written |= (1 << 17);
22161     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22162   }
22163 frvbf_media_overflow (current_cpu, 8);
22164 }
22165 } else {
22166   {
22167     UHI opval = tmp_tmp;
22168     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
22169     written |= (1 << 17);
22170     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22171   }
22172 }
22173 }
22174 }
22175 {
22176   DI tmp_tmp;
22177   tmp_tmp = ADDDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
22178 if (GTDI (tmp_tmp, 65535)) {
22179 {
22180   {
22181     UHI opval = 65535;
22182     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
22183     written |= (1 << 19);
22184     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22185   }
22186 frvbf_media_overflow (current_cpu, 4);
22187 }
22188 } else {
22189 if (LTDI (tmp_tmp, 0)) {
22190 {
22191   {
22192     UHI opval = 0;
22193     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
22194     written |= (1 << 19);
22195     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22196   }
22197 frvbf_media_overflow (current_cpu, 4);
22198 }
22199 } else {
22200   {
22201     UHI opval = tmp_tmp;
22202     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
22203     written |= (1 << 19);
22204     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22205   }
22206 }
22207 }
22208 }
22209 {
22210   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22211   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22212   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22213   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22214 }
22215 {
22216   DI tmp_tmp;
22217   tmp_tmp = ADDDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
22218 if (GTDI (tmp_tmp, 65535)) {
22219 {
22220   {
22221     UHI opval = 65535;
22222     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 1), opval);
22223     written |= (1 << 18);
22224     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22225   }
22226 frvbf_media_overflow (current_cpu, 2);
22227 }
22228 } else {
22229 if (LTDI (tmp_tmp, 0)) {
22230 {
22231   {
22232     UHI opval = 0;
22233     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 1), opval);
22234     written |= (1 << 18);
22235     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22236   }
22237 frvbf_media_overflow (current_cpu, 2);
22238 }
22239 } else {
22240   {
22241     UHI opval = tmp_tmp;
22242     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 1), opval);
22243     written |= (1 << 18);
22244     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22245   }
22246 }
22247 }
22248 }
22249 {
22250   DI tmp_tmp;
22251   tmp_tmp = ADDDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
22252 if (GTDI (tmp_tmp, 65535)) {
22253 {
22254   {
22255     UHI opval = 65535;
22256     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 1), opval);
22257     written |= (1 << 20);
22258     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22259   }
22260 frvbf_media_overflow (current_cpu, 1);
22261 }
22262 } else {
22263 if (LTDI (tmp_tmp, 0)) {
22264 {
22265   {
22266     UHI opval = 0;
22267     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 1), opval);
22268     written |= (1 << 20);
22269     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22270   }
22271 frvbf_media_overflow (current_cpu, 1);
22272 }
22273 } else {
22274   {
22275     UHI opval = tmp_tmp;
22276     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 1), opval);
22277     written |= (1 << 20);
22278     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22279   }
22280 }
22281 }
22282 }
22283 }
22284 }
22285 }
22286
22287   abuf->written = written;
22288   return vpc;
22289 #undef FLD
22290 }
22291
22292 /* cmqsubhss: cmqsubhss$pack $FRintieven,$FRintjeven,$FRintkeven,$CCi,$cond */
22293
22294 static SEM_PC
22295 SEM_FN_NAME (frvbf,cmqsubhss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
22296 {
22297 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
22298   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
22299   int UNUSED written = 0;
22300   IADDR UNUSED pc = abuf->addr;
22301   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
22302
22303 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
22304 frvbf_media_register_not_aligned (current_cpu);
22305 } else {
22306 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
22307 {
22308   HI tmp_argihi;
22309   HI tmp_argilo;
22310   HI tmp_argjhi;
22311   HI tmp_argjlo;
22312   {
22313     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
22314     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
22315     written |= (1 << 16);
22316     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
22317   }
22318 {
22319   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22320   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22321   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22322   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22323 }
22324 {
22325   DI tmp_tmp;
22326   tmp_tmp = SUBDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
22327 if (GTDI (tmp_tmp, 32767)) {
22328 {
22329   {
22330     UHI opval = 32767;
22331     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
22332     written |= (1 << 17);
22333     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22334   }
22335 frvbf_media_overflow (current_cpu, 8);
22336 }
22337 } else {
22338 if (LTDI (tmp_tmp, -32768)) {
22339 {
22340   {
22341     UHI opval = -32768;
22342     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
22343     written |= (1 << 17);
22344     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22345   }
22346 frvbf_media_overflow (current_cpu, 8);
22347 }
22348 } else {
22349   {
22350     UHI opval = tmp_tmp;
22351     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
22352     written |= (1 << 17);
22353     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22354   }
22355 }
22356 }
22357 }
22358 {
22359   DI tmp_tmp;
22360   tmp_tmp = SUBDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
22361 if (GTDI (tmp_tmp, 32767)) {
22362 {
22363   {
22364     UHI opval = 32767;
22365     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
22366     written |= (1 << 19);
22367     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22368   }
22369 frvbf_media_overflow (current_cpu, 4);
22370 }
22371 } else {
22372 if (LTDI (tmp_tmp, -32768)) {
22373 {
22374   {
22375     UHI opval = -32768;
22376     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
22377     written |= (1 << 19);
22378     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22379   }
22380 frvbf_media_overflow (current_cpu, 4);
22381 }
22382 } else {
22383   {
22384     UHI opval = tmp_tmp;
22385     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
22386     written |= (1 << 19);
22387     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22388   }
22389 }
22390 }
22391 }
22392 {
22393   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22394   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22395   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22396   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22397 }
22398 {
22399   DI tmp_tmp;
22400   tmp_tmp = SUBDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
22401 if (GTDI (tmp_tmp, 32767)) {
22402 {
22403   {
22404     UHI opval = 32767;
22405     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 1), opval);
22406     written |= (1 << 18);
22407     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22408   }
22409 frvbf_media_overflow (current_cpu, 2);
22410 }
22411 } else {
22412 if (LTDI (tmp_tmp, -32768)) {
22413 {
22414   {
22415     UHI opval = -32768;
22416     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 1), opval);
22417     written |= (1 << 18);
22418     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22419   }
22420 frvbf_media_overflow (current_cpu, 2);
22421 }
22422 } else {
22423   {
22424     UHI opval = tmp_tmp;
22425     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 1), opval);
22426     written |= (1 << 18);
22427     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22428   }
22429 }
22430 }
22431 }
22432 {
22433   DI tmp_tmp;
22434   tmp_tmp = SUBDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
22435 if (GTDI (tmp_tmp, 32767)) {
22436 {
22437   {
22438     UHI opval = 32767;
22439     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 1), opval);
22440     written |= (1 << 20);
22441     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22442   }
22443 frvbf_media_overflow (current_cpu, 1);
22444 }
22445 } else {
22446 if (LTDI (tmp_tmp, -32768)) {
22447 {
22448   {
22449     UHI opval = -32768;
22450     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 1), opval);
22451     written |= (1 << 20);
22452     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22453   }
22454 frvbf_media_overflow (current_cpu, 1);
22455 }
22456 } else {
22457   {
22458     UHI opval = tmp_tmp;
22459     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 1), opval);
22460     written |= (1 << 20);
22461     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22462   }
22463 }
22464 }
22465 }
22466 }
22467 }
22468 }
22469
22470   abuf->written = written;
22471   return vpc;
22472 #undef FLD
22473 }
22474
22475 /* cmqsubhus: cmqsubhus$pack $FRintieven,$FRintjeven,$FRintkeven,$CCi,$cond */
22476
22477 static SEM_PC
22478 SEM_FN_NAME (frvbf,cmqsubhus) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
22479 {
22480 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
22481   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
22482   int UNUSED written = 0;
22483   IADDR UNUSED pc = abuf->addr;
22484   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
22485
22486 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
22487 frvbf_media_register_not_aligned (current_cpu);
22488 } else {
22489 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
22490 {
22491   UHI tmp_argihi;
22492   UHI tmp_argilo;
22493   UHI tmp_argjhi;
22494   UHI tmp_argjlo;
22495   {
22496     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
22497     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
22498     written |= (1 << 16);
22499     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
22500   }
22501 {
22502   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22503   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22504   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22505   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22506 }
22507 {
22508   DI tmp_tmp;
22509   tmp_tmp = SUBDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
22510 if (GTDI (tmp_tmp, 65535)) {
22511 {
22512   {
22513     UHI opval = 65535;
22514     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
22515     written |= (1 << 17);
22516     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22517   }
22518 frvbf_media_overflow (current_cpu, 8);
22519 }
22520 } else {
22521 if (LTDI (tmp_tmp, 0)) {
22522 {
22523   {
22524     UHI opval = 0;
22525     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
22526     written |= (1 << 17);
22527     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22528   }
22529 frvbf_media_overflow (current_cpu, 8);
22530 }
22531 } else {
22532   {
22533     UHI opval = tmp_tmp;
22534     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
22535     written |= (1 << 17);
22536     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22537   }
22538 }
22539 }
22540 }
22541 {
22542   DI tmp_tmp;
22543   tmp_tmp = SUBDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
22544 if (GTDI (tmp_tmp, 65535)) {
22545 {
22546   {
22547     UHI opval = 65535;
22548     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
22549     written |= (1 << 19);
22550     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22551   }
22552 frvbf_media_overflow (current_cpu, 4);
22553 }
22554 } else {
22555 if (LTDI (tmp_tmp, 0)) {
22556 {
22557   {
22558     UHI opval = 0;
22559     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
22560     written |= (1 << 19);
22561     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22562   }
22563 frvbf_media_overflow (current_cpu, 4);
22564 }
22565 } else {
22566   {
22567     UHI opval = tmp_tmp;
22568     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
22569     written |= (1 << 19);
22570     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22571   }
22572 }
22573 }
22574 }
22575 {
22576   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22577   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22578   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22579   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22580 }
22581 {
22582   DI tmp_tmp;
22583   tmp_tmp = SUBDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
22584 if (GTDI (tmp_tmp, 65535)) {
22585 {
22586   {
22587     UHI opval = 65535;
22588     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 1), opval);
22589     written |= (1 << 18);
22590     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22591   }
22592 frvbf_media_overflow (current_cpu, 2);
22593 }
22594 } else {
22595 if (LTDI (tmp_tmp, 0)) {
22596 {
22597   {
22598     UHI opval = 0;
22599     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 1), opval);
22600     written |= (1 << 18);
22601     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22602   }
22603 frvbf_media_overflow (current_cpu, 2);
22604 }
22605 } else {
22606   {
22607     UHI opval = tmp_tmp;
22608     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 1), opval);
22609     written |= (1 << 18);
22610     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22611   }
22612 }
22613 }
22614 }
22615 {
22616   DI tmp_tmp;
22617   tmp_tmp = SUBDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
22618 if (GTDI (tmp_tmp, 65535)) {
22619 {
22620   {
22621     UHI opval = 65535;
22622     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 1), opval);
22623     written |= (1 << 20);
22624     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22625   }
22626 frvbf_media_overflow (current_cpu, 1);
22627 }
22628 } else {
22629 if (LTDI (tmp_tmp, 0)) {
22630 {
22631   {
22632     UHI opval = 0;
22633     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 1), opval);
22634     written |= (1 << 20);
22635     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22636   }
22637 frvbf_media_overflow (current_cpu, 1);
22638 }
22639 } else {
22640   {
22641     UHI opval = tmp_tmp;
22642     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 1), opval);
22643     written |= (1 << 20);
22644     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22645   }
22646 }
22647 }
22648 }
22649 }
22650 }
22651 }
22652
22653   abuf->written = written;
22654   return vpc;
22655 #undef FLD
22656 }
22657
22658 /* mqlclrhs: mqlclrhs$pack $FRintieven,$FRintjeven,$FRintkeven */
22659
22660 static SEM_PC
22661 SEM_FN_NAME (frvbf,mqlclrhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
22662 {
22663 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
22664   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
22665   int UNUSED written = 0;
22666   IADDR UNUSED pc = abuf->addr;
22667   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
22668
22669 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
22670 frvbf_media_register_not_aligned (current_cpu);
22671 } else {
22672 {
22673   HI tmp_a1;
22674   HI tmp_a2;
22675   HI tmp_a3;
22676   HI tmp_a4;
22677   HI tmp_b1;
22678   HI tmp_b2;
22679   HI tmp_b3;
22680   HI tmp_b4;
22681   {
22682     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
22683     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
22684     written |= (1 << 14);
22685     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
22686   }
22687 {
22688   tmp_a1 = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22689   tmp_a2 = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22690   tmp_b1 = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22691   tmp_b2 = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22692 }
22693 {
22694   tmp_a3 = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22695   tmp_a4 = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22696   tmp_b3 = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22697   tmp_b4 = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22698 }
22699   {
22700     UHI opval = (LEUHI (ABSHI (tmp_a1), ABSHI (tmp_b1))) ? (0) : (LEHI (0, tmp_b1)) ? (tmp_a1) : (EQHI (tmp_a1, -32768)) ? (32767) : (NEGHI (tmp_a1));
22701     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
22702     written |= (1 << 15);
22703     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22704   }
22705   {
22706     UHI opval = (LEUHI (ABSHI (tmp_a2), ABSHI (tmp_b2))) ? (0) : (LEHI (0, tmp_b2)) ? (tmp_a2) : (EQHI (tmp_a2, -32768)) ? (32767) : (NEGHI (tmp_a2));
22707     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
22708     written |= (1 << 17);
22709     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22710   }
22711   {
22712     UHI opval = (LEUHI (ABSHI (tmp_a3), ABSHI (tmp_b3))) ? (0) : (LEHI (0, tmp_b3)) ? (tmp_a3) : (EQHI (tmp_a3, -32768)) ? (32767) : (NEGHI (tmp_a3));
22713     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 1), opval);
22714     written |= (1 << 16);
22715     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22716   }
22717   {
22718     UHI opval = (LEUHI (ABSHI (tmp_a4), ABSHI (tmp_b4))) ? (0) : (LEHI (0, tmp_b4)) ? (tmp_a4) : (EQHI (tmp_a4, -32768)) ? (32767) : (NEGHI (tmp_a4));
22719     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 1), opval);
22720     written |= (1 << 18);
22721     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22722   }
22723 }
22724 }
22725
22726   abuf->written = written;
22727   return vpc;
22728 #undef FLD
22729 }
22730
22731 /* mqlmths: mqlmths$pack $FRintieven,$FRintjeven,$FRintkeven */
22732
22733 static SEM_PC
22734 SEM_FN_NAME (frvbf,mqlmths) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
22735 {
22736 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
22737   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
22738   int UNUSED written = 0;
22739   IADDR UNUSED pc = abuf->addr;
22740   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
22741
22742 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
22743 frvbf_media_register_not_aligned (current_cpu);
22744 } else {
22745 {
22746   HI tmp_a1;
22747   HI tmp_a2;
22748   HI tmp_a3;
22749   HI tmp_a4;
22750   HI tmp_b1;
22751   HI tmp_b2;
22752   HI tmp_b3;
22753   HI tmp_b4;
22754   {
22755     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
22756     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
22757     written |= (1 << 14);
22758     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
22759   }
22760 {
22761   tmp_a1 = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22762   tmp_a2 = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22763   tmp_b1 = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22764   tmp_b2 = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22765 }
22766 {
22767   tmp_a3 = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22768   tmp_a4 = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22769   tmp_b3 = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22770   tmp_b4 = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22771 }
22772   {
22773     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));
22774     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
22775     written |= (1 << 15);
22776     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22777   }
22778   {
22779     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));
22780     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
22781     written |= (1 << 17);
22782     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22783   }
22784   {
22785     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));
22786     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 1), opval);
22787     written |= (1 << 16);
22788     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22789   }
22790   {
22791     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));
22792     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 1), opval);
22793     written |= (1 << 18);
22794     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22795   }
22796 }
22797 }
22798
22799   abuf->written = written;
22800   return vpc;
22801 #undef FLD
22802 }
22803
22804 /* mqsllhi: mqsllhi$pack $FRintieven,$u6,$FRintkeven */
22805
22806 static SEM_PC
22807 SEM_FN_NAME (frvbf,mqsllhi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
22808 {
22809 #define FLD(f) abuf->fields.sfmt_mqsllhi.f
22810   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
22811   int UNUSED written = 0;
22812   IADDR UNUSED pc = abuf->addr;
22813   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
22814
22815 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1)))) {
22816 frvbf_media_register_not_aligned (current_cpu);
22817 } else {
22818 {
22819   {
22820     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRi)));
22821     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRi), opval);
22822     written |= (1 << 9);
22823     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
22824   }
22825   {
22826     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
22827     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
22828     written |= (1 << 10);
22829     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
22830   }
22831   {
22832     UHI opval = SLLHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), ANDSI (FLD (f_u6), 15));
22833     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
22834     written |= (1 << 11);
22835     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22836   }
22837   {
22838     UHI opval = SLLHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), ANDSI (FLD (f_u6), 15));
22839     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
22840     written |= (1 << 13);
22841     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22842   }
22843   {
22844     UHI opval = SLLHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 1)), ANDSI (FLD (f_u6), 15));
22845     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 1), opval);
22846     written |= (1 << 12);
22847     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22848   }
22849   {
22850     UHI opval = SLLHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 1)), ANDSI (FLD (f_u6), 15));
22851     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 1), opval);
22852     written |= (1 << 14);
22853     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22854   }
22855 }
22856 }
22857
22858   abuf->written = written;
22859   return vpc;
22860 #undef FLD
22861 }
22862
22863 /* mqsrahi: mqsrahi$pack $FRintieven,$u6,$FRintkeven */
22864
22865 static SEM_PC
22866 SEM_FN_NAME (frvbf,mqsrahi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
22867 {
22868 #define FLD(f) abuf->fields.sfmt_mqsllhi.f
22869   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
22870   int UNUSED written = 0;
22871   IADDR UNUSED pc = abuf->addr;
22872   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
22873
22874 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1)))) {
22875 frvbf_media_register_not_aligned (current_cpu);
22876 } else {
22877 {
22878   {
22879     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRi)));
22880     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRi), opval);
22881     written |= (1 << 9);
22882     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
22883   }
22884   {
22885     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
22886     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
22887     written |= (1 << 10);
22888     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
22889   }
22890   {
22891     UHI opval = SRAHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), ANDSI (FLD (f_u6), 15));
22892     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
22893     written |= (1 << 11);
22894     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22895   }
22896   {
22897     UHI opval = SRAHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), ANDSI (FLD (f_u6), 15));
22898     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
22899     written |= (1 << 13);
22900     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22901   }
22902   {
22903     UHI opval = SRAHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 1)), ANDSI (FLD (f_u6), 15));
22904     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 1), opval);
22905     written |= (1 << 12);
22906     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22907   }
22908   {
22909     UHI opval = SRAHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 1)), ANDSI (FLD (f_u6), 15));
22910     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 1), opval);
22911     written |= (1 << 14);
22912     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22913   }
22914 }
22915 }
22916
22917   abuf->written = written;
22918   return vpc;
22919 #undef FLD
22920 }
22921
22922 /* maddaccs: maddaccs$pack $ACC40Si,$ACC40Sk */
22923
22924 static SEM_PC
22925 SEM_FN_NAME (frvbf,maddaccs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
22926 {
22927 #define FLD(f) abuf->fields.sfmt_mdasaccs.f
22928   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
22929   int UNUSED written = 0;
22930   IADDR UNUSED pc = abuf->addr;
22931   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
22932
22933 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Si))) {
22934 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
22935 if (ANDSI (FLD (f_ACC40Si), SUBSI (2, 1))) {
22936 frvbf_media_acc_not_aligned (current_cpu);
22937 } else {
22938 {
22939   DI tmp_tmp;
22940   tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_ACC40S (ADDSI (FLD (f_ACC40Si), 1)));
22941 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
22942 {
22943   {
22944     DI opval = MAKEDI (127, 0xffffffff);
22945     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
22946     written |= (1 << 4);
22947     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22948   }
22949 frvbf_media_overflow (current_cpu, 8);
22950 }
22951 } else {
22952 if (LTDI (tmp_tmp, INVDI (MAKEDI (127, 0xffffffff)))) {
22953 {
22954   {
22955     DI opval = INVDI (MAKEDI (127, 0xffffffff));
22956     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
22957     written |= (1 << 4);
22958     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22959   }
22960 frvbf_media_overflow (current_cpu, 8);
22961 }
22962 } else {
22963   {
22964     DI opval = tmp_tmp;
22965     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
22966     written |= (1 << 4);
22967     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22968   }
22969 }
22970 }
22971 }
22972 }
22973 }
22974 }
22975
22976   abuf->written = written;
22977   return vpc;
22978 #undef FLD
22979 }
22980
22981 /* msubaccs: msubaccs$pack $ACC40Si,$ACC40Sk */
22982
22983 static SEM_PC
22984 SEM_FN_NAME (frvbf,msubaccs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
22985 {
22986 #define FLD(f) abuf->fields.sfmt_mdasaccs.f
22987   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
22988   int UNUSED written = 0;
22989   IADDR UNUSED pc = abuf->addr;
22990   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
22991
22992 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Si))) {
22993 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
22994 if (ANDSI (FLD (f_ACC40Si), SUBSI (2, 1))) {
22995 frvbf_media_acc_not_aligned (current_cpu);
22996 } else {
22997 {
22998   DI tmp_tmp;
22999   tmp_tmp = SUBDI (GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_ACC40S (ADDSI (FLD (f_ACC40Si), 1)));
23000 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
23001 {
23002   {
23003     DI opval = MAKEDI (127, 0xffffffff);
23004     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23005     written |= (1 << 4);
23006     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23007   }
23008 frvbf_media_overflow (current_cpu, 8);
23009 }
23010 } else {
23011 if (LTDI (tmp_tmp, INVDI (MAKEDI (127, 0xffffffff)))) {
23012 {
23013   {
23014     DI opval = INVDI (MAKEDI (127, 0xffffffff));
23015     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23016     written |= (1 << 4);
23017     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23018   }
23019 frvbf_media_overflow (current_cpu, 8);
23020 }
23021 } else {
23022   {
23023     DI opval = tmp_tmp;
23024     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23025     written |= (1 << 4);
23026     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23027   }
23028 }
23029 }
23030 }
23031 }
23032 }
23033 }
23034
23035   abuf->written = written;
23036   return vpc;
23037 #undef FLD
23038 }
23039
23040 /* mdaddaccs: mdaddaccs$pack $ACC40Si,$ACC40Sk */
23041
23042 static SEM_PC
23043 SEM_FN_NAME (frvbf,mdaddaccs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23044 {
23045 #define FLD(f) abuf->fields.sfmt_mdasaccs.f
23046   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23047   int UNUSED written = 0;
23048   IADDR UNUSED pc = abuf->addr;
23049   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23050
23051 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Si))) {
23052 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
23053 if (ANDSI (FLD (f_ACC40Si), SUBSI (4, 1))) {
23054 frvbf_media_acc_not_aligned (current_cpu);
23055 } else {
23056 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
23057 frvbf_media_acc_not_aligned (current_cpu);
23058 } else {
23059 {
23060 {
23061   DI tmp_tmp;
23062   tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_ACC40S (ADDSI (FLD (f_ACC40Si), 1)));
23063 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
23064 {
23065   {
23066     DI opval = MAKEDI (127, 0xffffffff);
23067     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23068     written |= (1 << 6);
23069     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23070   }
23071 frvbf_media_overflow (current_cpu, 8);
23072 }
23073 } else {
23074 if (LTDI (tmp_tmp, INVDI (MAKEDI (127, 0xffffffff)))) {
23075 {
23076   {
23077     DI opval = INVDI (MAKEDI (127, 0xffffffff));
23078     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23079     written |= (1 << 6);
23080     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23081   }
23082 frvbf_media_overflow (current_cpu, 8);
23083 }
23084 } else {
23085   {
23086     DI opval = tmp_tmp;
23087     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23088     written |= (1 << 6);
23089     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23090   }
23091 }
23092 }
23093 }
23094 {
23095   DI tmp_tmp;
23096   tmp_tmp = ADDDI (GET_H_ACC40S (ADDSI (FLD (f_ACC40Si), 2)), GET_H_ACC40S (ADDSI (FLD (f_ACC40Si), 3)));
23097 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
23098 {
23099   {
23100     DI opval = MAKEDI (127, 0xffffffff);
23101     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
23102     written |= (1 << 7);
23103     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23104   }
23105 frvbf_media_overflow (current_cpu, 4);
23106 }
23107 } else {
23108 if (LTDI (tmp_tmp, INVDI (MAKEDI (127, 0xffffffff)))) {
23109 {
23110   {
23111     DI opval = INVDI (MAKEDI (127, 0xffffffff));
23112     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
23113     written |= (1 << 7);
23114     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23115   }
23116 frvbf_media_overflow (current_cpu, 4);
23117 }
23118 } else {
23119   {
23120     DI opval = tmp_tmp;
23121     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
23122     written |= (1 << 7);
23123     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23124   }
23125 }
23126 }
23127 }
23128 }
23129 }
23130 }
23131 }
23132 }
23133
23134   abuf->written = written;
23135   return vpc;
23136 #undef FLD
23137 }
23138
23139 /* mdsubaccs: mdsubaccs$pack $ACC40Si,$ACC40Sk */
23140
23141 static SEM_PC
23142 SEM_FN_NAME (frvbf,mdsubaccs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23143 {
23144 #define FLD(f) abuf->fields.sfmt_mdasaccs.f
23145   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23146   int UNUSED written = 0;
23147   IADDR UNUSED pc = abuf->addr;
23148   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23149
23150 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Si))) {
23151 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
23152 if (ANDSI (FLD (f_ACC40Si), SUBSI (4, 1))) {
23153 frvbf_media_acc_not_aligned (current_cpu);
23154 } else {
23155 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
23156 frvbf_media_acc_not_aligned (current_cpu);
23157 } else {
23158 {
23159 {
23160   DI tmp_tmp;
23161   tmp_tmp = SUBDI (GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_ACC40S (ADDSI (FLD (f_ACC40Si), 1)));
23162 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
23163 {
23164   {
23165     DI opval = MAKEDI (127, 0xffffffff);
23166     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23167     written |= (1 << 6);
23168     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23169   }
23170 frvbf_media_overflow (current_cpu, 8);
23171 }
23172 } else {
23173 if (LTDI (tmp_tmp, INVDI (MAKEDI (127, 0xffffffff)))) {
23174 {
23175   {
23176     DI opval = INVDI (MAKEDI (127, 0xffffffff));
23177     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23178     written |= (1 << 6);
23179     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23180   }
23181 frvbf_media_overflow (current_cpu, 8);
23182 }
23183 } else {
23184   {
23185     DI opval = tmp_tmp;
23186     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23187     written |= (1 << 6);
23188     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23189   }
23190 }
23191 }
23192 }
23193 {
23194   DI tmp_tmp;
23195   tmp_tmp = SUBDI (GET_H_ACC40S (ADDSI (FLD (f_ACC40Si), 2)), GET_H_ACC40S (ADDSI (FLD (f_ACC40Si), 3)));
23196 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
23197 {
23198   {
23199     DI opval = MAKEDI (127, 0xffffffff);
23200     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
23201     written |= (1 << 7);
23202     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23203   }
23204 frvbf_media_overflow (current_cpu, 4);
23205 }
23206 } else {
23207 if (LTDI (tmp_tmp, INVDI (MAKEDI (127, 0xffffffff)))) {
23208 {
23209   {
23210     DI opval = INVDI (MAKEDI (127, 0xffffffff));
23211     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
23212     written |= (1 << 7);
23213     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23214   }
23215 frvbf_media_overflow (current_cpu, 4);
23216 }
23217 } else {
23218   {
23219     DI opval = tmp_tmp;
23220     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
23221     written |= (1 << 7);
23222     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23223   }
23224 }
23225 }
23226 }
23227 }
23228 }
23229 }
23230 }
23231 }
23232
23233   abuf->written = written;
23234   return vpc;
23235 #undef FLD
23236 }
23237
23238 /* masaccs: masaccs$pack $ACC40Si,$ACC40Sk */
23239
23240 static SEM_PC
23241 SEM_FN_NAME (frvbf,masaccs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23242 {
23243 #define FLD(f) abuf->fields.sfmt_mdasaccs.f
23244   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23245   int UNUSED written = 0;
23246   IADDR UNUSED pc = abuf->addr;
23247   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23248
23249 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Si))) {
23250 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
23251 if (ANDSI (FLD (f_ACC40Si), SUBSI (2, 1))) {
23252 frvbf_media_acc_not_aligned (current_cpu);
23253 } else {
23254 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
23255 frvbf_media_acc_not_aligned (current_cpu);
23256 } else {
23257 {
23258 {
23259   DI tmp_tmp;
23260   tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_ACC40S (ADDSI (FLD (f_ACC40Si), 1)));
23261 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
23262 {
23263   {
23264     DI opval = MAKEDI (127, 0xffffffff);
23265     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23266     written |= (1 << 4);
23267     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23268   }
23269 frvbf_media_overflow (current_cpu, 8);
23270 }
23271 } else {
23272 if (LTDI (tmp_tmp, INVDI (MAKEDI (127, 0xffffffff)))) {
23273 {
23274   {
23275     DI opval = INVDI (MAKEDI (127, 0xffffffff));
23276     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23277     written |= (1 << 4);
23278     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23279   }
23280 frvbf_media_overflow (current_cpu, 8);
23281 }
23282 } else {
23283   {
23284     DI opval = tmp_tmp;
23285     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23286     written |= (1 << 4);
23287     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23288   }
23289 }
23290 }
23291 }
23292 {
23293   DI tmp_tmp;
23294   tmp_tmp = SUBDI (GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_ACC40S (ADDSI (FLD (f_ACC40Si), 1)));
23295 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
23296 {
23297   {
23298     DI opval = MAKEDI (127, 0xffffffff);
23299     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
23300     written |= (1 << 5);
23301     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23302   }
23303 frvbf_media_overflow (current_cpu, 4);
23304 }
23305 } else {
23306 if (LTDI (tmp_tmp, INVDI (MAKEDI (127, 0xffffffff)))) {
23307 {
23308   {
23309     DI opval = INVDI (MAKEDI (127, 0xffffffff));
23310     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
23311     written |= (1 << 5);
23312     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23313   }
23314 frvbf_media_overflow (current_cpu, 4);
23315 }
23316 } else {
23317   {
23318     DI opval = tmp_tmp;
23319     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
23320     written |= (1 << 5);
23321     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23322   }
23323 }
23324 }
23325 }
23326 }
23327 }
23328 }
23329 }
23330 }
23331
23332   abuf->written = written;
23333   return vpc;
23334 #undef FLD
23335 }
23336
23337 /* mdasaccs: mdasaccs$pack $ACC40Si,$ACC40Sk */
23338
23339 static SEM_PC
23340 SEM_FN_NAME (frvbf,mdasaccs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23341 {
23342 #define FLD(f) abuf->fields.sfmt_mdasaccs.f
23343   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23344   int UNUSED written = 0;
23345   IADDR UNUSED pc = abuf->addr;
23346   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23347
23348 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Si))) {
23349 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
23350 if (ANDSI (FLD (f_ACC40Si), SUBSI (4, 1))) {
23351 frvbf_media_acc_not_aligned (current_cpu);
23352 } else {
23353 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
23354 frvbf_media_acc_not_aligned (current_cpu);
23355 } else {
23356 {
23357 {
23358   DI tmp_tmp;
23359   tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_ACC40S (ADDSI (FLD (f_ACC40Si), 1)));
23360 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
23361 {
23362   {
23363     DI opval = MAKEDI (127, 0xffffffff);
23364     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23365     written |= (1 << 6);
23366     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23367   }
23368 frvbf_media_overflow (current_cpu, 8);
23369 }
23370 } else {
23371 if (LTDI (tmp_tmp, INVDI (MAKEDI (127, 0xffffffff)))) {
23372 {
23373   {
23374     DI opval = INVDI (MAKEDI (127, 0xffffffff));
23375     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23376     written |= (1 << 6);
23377     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23378   }
23379 frvbf_media_overflow (current_cpu, 8);
23380 }
23381 } else {
23382   {
23383     DI opval = tmp_tmp;
23384     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23385     written |= (1 << 6);
23386     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23387   }
23388 }
23389 }
23390 }
23391 {
23392   DI tmp_tmp;
23393   tmp_tmp = SUBDI (GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_ACC40S (ADDSI (FLD (f_ACC40Si), 1)));
23394 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
23395 {
23396   {
23397     DI opval = MAKEDI (127, 0xffffffff);
23398     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
23399     written |= (1 << 7);
23400     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23401   }
23402 frvbf_media_overflow (current_cpu, 4);
23403 }
23404 } else {
23405 if (LTDI (tmp_tmp, INVDI (MAKEDI (127, 0xffffffff)))) {
23406 {
23407   {
23408     DI opval = INVDI (MAKEDI (127, 0xffffffff));
23409     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
23410     written |= (1 << 7);
23411     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23412   }
23413 frvbf_media_overflow (current_cpu, 4);
23414 }
23415 } else {
23416   {
23417     DI opval = tmp_tmp;
23418     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
23419     written |= (1 << 7);
23420     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23421   }
23422 }
23423 }
23424 }
23425 {
23426   DI tmp_tmp;
23427   tmp_tmp = ADDDI (GET_H_ACC40S (ADDSI (FLD (f_ACC40Si), 2)), GET_H_ACC40S (ADDSI (FLD (f_ACC40Si), 3)));
23428 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
23429 {
23430   {
23431     DI opval = MAKEDI (127, 0xffffffff);
23432     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 2), opval);
23433     written |= (1 << 8);
23434     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23435   }
23436 frvbf_media_overflow (current_cpu, 2);
23437 }
23438 } else {
23439 if (LTDI (tmp_tmp, INVDI (MAKEDI (127, 0xffffffff)))) {
23440 {
23441   {
23442     DI opval = INVDI (MAKEDI (127, 0xffffffff));
23443     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 2), opval);
23444     written |= (1 << 8);
23445     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23446   }
23447 frvbf_media_overflow (current_cpu, 2);
23448 }
23449 } else {
23450   {
23451     DI opval = tmp_tmp;
23452     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 2), opval);
23453     written |= (1 << 8);
23454     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23455   }
23456 }
23457 }
23458 }
23459 {
23460   DI tmp_tmp;
23461   tmp_tmp = SUBDI (GET_H_ACC40S (ADDSI (FLD (f_ACC40Si), 2)), GET_H_ACC40S (ADDSI (FLD (f_ACC40Si), 3)));
23462 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
23463 {
23464   {
23465     DI opval = MAKEDI (127, 0xffffffff);
23466     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 3), opval);
23467     written |= (1 << 9);
23468     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23469   }
23470 frvbf_media_overflow (current_cpu, 1);
23471 }
23472 } else {
23473 if (LTDI (tmp_tmp, INVDI (MAKEDI (127, 0xffffffff)))) {
23474 {
23475   {
23476     DI opval = INVDI (MAKEDI (127, 0xffffffff));
23477     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 3), opval);
23478     written |= (1 << 9);
23479     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23480   }
23481 frvbf_media_overflow (current_cpu, 1);
23482 }
23483 } else {
23484   {
23485     DI opval = tmp_tmp;
23486     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 3), opval);
23487     written |= (1 << 9);
23488     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23489   }
23490 }
23491 }
23492 }
23493 }
23494 }
23495 }
23496 }
23497 }
23498
23499   abuf->written = written;
23500   return vpc;
23501 #undef FLD
23502 }
23503
23504 /* mmulhs: mmulhs$pack $FRinti,$FRintj,$ACC40Sk */
23505
23506 static SEM_PC
23507 SEM_FN_NAME (frvbf,mmulhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23508 {
23509 #define FLD(f) abuf->fields.sfmt_cmmachs.f
23510   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23511   int UNUSED written = 0;
23512   IADDR UNUSED pc = abuf->addr;
23513   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23514
23515 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
23516 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
23517 frvbf_media_acc_not_aligned (current_cpu);
23518 } else {
23519 {
23520   HI tmp_argihi;
23521   HI tmp_argilo;
23522   HI tmp_argjhi;
23523   HI tmp_argjlo;
23524 {
23525   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23526   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23527   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23528   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23529 }
23530   {
23531     DI opval = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
23532     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23533     written |= (1 << 9);
23534     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23535   }
23536   {
23537     DI opval = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
23538     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
23539     written |= (1 << 10);
23540     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23541   }
23542 }
23543 }
23544 }
23545
23546   abuf->written = written;
23547   return vpc;
23548 #undef FLD
23549 }
23550
23551 /* mmulhu: mmulhu$pack $FRinti,$FRintj,$ACC40Sk */
23552
23553 static SEM_PC
23554 SEM_FN_NAME (frvbf,mmulhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23555 {
23556 #define FLD(f) abuf->fields.sfmt_cmmachs.f
23557   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23558   int UNUSED written = 0;
23559   IADDR UNUSED pc = abuf->addr;
23560   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23561
23562 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
23563 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
23564 frvbf_media_acc_not_aligned (current_cpu);
23565 } else {
23566 {
23567   UHI tmp_argihi;
23568   UHI tmp_argilo;
23569   UHI tmp_argjhi;
23570   UHI tmp_argjlo;
23571 {
23572   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23573   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23574   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23575   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23576 }
23577   {
23578     DI opval = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
23579     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23580     written |= (1 << 9);
23581     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23582   }
23583   {
23584     DI opval = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
23585     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
23586     written |= (1 << 10);
23587     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23588   }
23589 }
23590 }
23591 }
23592
23593   abuf->written = written;
23594   return vpc;
23595 #undef FLD
23596 }
23597
23598 /* mmulxhs: mmulxhs$pack $FRinti,$FRintj,$ACC40Sk */
23599
23600 static SEM_PC
23601 SEM_FN_NAME (frvbf,mmulxhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23602 {
23603 #define FLD(f) abuf->fields.sfmt_cmmachs.f
23604   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23605   int UNUSED written = 0;
23606   IADDR UNUSED pc = abuf->addr;
23607   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23608
23609 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
23610 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
23611 frvbf_media_acc_not_aligned (current_cpu);
23612 } else {
23613 {
23614   HI tmp_argihi;
23615   HI tmp_argilo;
23616   HI tmp_argjhi;
23617   HI tmp_argjlo;
23618 {
23619   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23620   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23621   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23622   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23623 }
23624   {
23625     DI opval = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo));
23626     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23627     written |= (1 << 9);
23628     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23629   }
23630   {
23631     DI opval = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi));
23632     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
23633     written |= (1 << 10);
23634     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23635   }
23636 }
23637 }
23638 }
23639
23640   abuf->written = written;
23641   return vpc;
23642 #undef FLD
23643 }
23644
23645 /* mmulxhu: mmulxhu$pack $FRinti,$FRintj,$ACC40Sk */
23646
23647 static SEM_PC
23648 SEM_FN_NAME (frvbf,mmulxhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23649 {
23650 #define FLD(f) abuf->fields.sfmt_cmmachs.f
23651   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23652   int UNUSED written = 0;
23653   IADDR UNUSED pc = abuf->addr;
23654   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23655
23656 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
23657 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
23658 frvbf_media_acc_not_aligned (current_cpu);
23659 } else {
23660 {
23661   UHI tmp_argihi;
23662   UHI tmp_argilo;
23663   UHI tmp_argjhi;
23664   UHI tmp_argjlo;
23665 {
23666   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23667   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23668   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23669   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23670 }
23671   {
23672     DI opval = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjlo));
23673     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23674     written |= (1 << 9);
23675     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23676   }
23677   {
23678     DI opval = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjhi));
23679     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
23680     written |= (1 << 10);
23681     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23682   }
23683 }
23684 }
23685 }
23686
23687   abuf->written = written;
23688   return vpc;
23689 #undef FLD
23690 }
23691
23692 /* cmmulhs: cmmulhs$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
23693
23694 static SEM_PC
23695 SEM_FN_NAME (frvbf,cmmulhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23696 {
23697 #define FLD(f) abuf->fields.sfmt_cmmachs.f
23698   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23699   int UNUSED written = 0;
23700   IADDR UNUSED pc = abuf->addr;
23701   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23702
23703 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
23704 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
23705 frvbf_media_acc_not_aligned (current_cpu);
23706 } else {
23707 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
23708 {
23709   HI tmp_argihi;
23710   HI tmp_argilo;
23711   HI tmp_argjhi;
23712   HI tmp_argjlo;
23713 {
23714   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23715   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23716   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23717   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23718 }
23719   {
23720     DI opval = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
23721     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23722     written |= (1 << 11);
23723     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23724   }
23725   {
23726     DI opval = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
23727     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
23728     written |= (1 << 12);
23729     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23730   }
23731 }
23732 }
23733 }
23734 }
23735
23736   abuf->written = written;
23737   return vpc;
23738 #undef FLD
23739 }
23740
23741 /* cmmulhu: cmmulhu$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
23742
23743 static SEM_PC
23744 SEM_FN_NAME (frvbf,cmmulhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23745 {
23746 #define FLD(f) abuf->fields.sfmt_cmmachs.f
23747   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23748   int UNUSED written = 0;
23749   IADDR UNUSED pc = abuf->addr;
23750   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23751
23752 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
23753 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
23754 frvbf_media_acc_not_aligned (current_cpu);
23755 } else {
23756 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
23757 {
23758   UHI tmp_argihi;
23759   UHI tmp_argilo;
23760   UHI tmp_argjhi;
23761   UHI tmp_argjlo;
23762 {
23763   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23764   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23765   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23766   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23767 }
23768   {
23769     DI opval = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
23770     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23771     written |= (1 << 11);
23772     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23773   }
23774   {
23775     DI opval = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
23776     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
23777     written |= (1 << 12);
23778     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23779   }
23780 }
23781 }
23782 }
23783 }
23784
23785   abuf->written = written;
23786   return vpc;
23787 #undef FLD
23788 }
23789
23790 /* mqmulhs: mqmulhs$pack $FRintieven,$FRintjeven,$ACC40Sk */
23791
23792 static SEM_PC
23793 SEM_FN_NAME (frvbf,mqmulhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23794 {
23795 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
23796   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23797   int UNUSED written = 0;
23798   IADDR UNUSED pc = abuf->addr;
23799   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23800
23801 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
23802 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
23803 frvbf_media_acc_not_aligned (current_cpu);
23804 } else {
23805 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
23806 frvbf_media_register_not_aligned (current_cpu);
23807 } else {
23808 {
23809   HI tmp_argihi;
23810   HI tmp_argilo;
23811   HI tmp_argjhi;
23812   HI tmp_argjlo;
23813 {
23814   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23815   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23816   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23817   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23818 }
23819   {
23820     DI opval = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
23821     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23822     written |= (1 << 13);
23823     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23824   }
23825   {
23826     DI opval = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
23827     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
23828     written |= (1 << 14);
23829     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23830   }
23831 {
23832   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23833   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23834   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23835   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23836 }
23837   {
23838     DI opval = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
23839     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 2), opval);
23840     written |= (1 << 15);
23841     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23842   }
23843   {
23844     DI opval = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
23845     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 3), opval);
23846     written |= (1 << 16);
23847     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23848   }
23849 }
23850 }
23851 }
23852 }
23853
23854   abuf->written = written;
23855   return vpc;
23856 #undef FLD
23857 }
23858
23859 /* mqmulhu: mqmulhu$pack $FRintieven,$FRintjeven,$ACC40Sk */
23860
23861 static SEM_PC
23862 SEM_FN_NAME (frvbf,mqmulhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23863 {
23864 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
23865   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23866   int UNUSED written = 0;
23867   IADDR UNUSED pc = abuf->addr;
23868   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23869
23870 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
23871 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
23872 frvbf_media_acc_not_aligned (current_cpu);
23873 } else {
23874 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
23875 frvbf_media_register_not_aligned (current_cpu);
23876 } else {
23877 {
23878   UHI tmp_argihi;
23879   UHI tmp_argilo;
23880   UHI tmp_argjhi;
23881   UHI tmp_argjlo;
23882 {
23883   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23884   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23885   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23886   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23887 }
23888   {
23889     DI opval = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
23890     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23891     written |= (1 << 13);
23892     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23893   }
23894   {
23895     DI opval = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
23896     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
23897     written |= (1 << 14);
23898     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23899   }
23900 {
23901   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23902   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23903   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23904   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23905 }
23906   {
23907     DI opval = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
23908     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 2), opval);
23909     written |= (1 << 15);
23910     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23911   }
23912   {
23913     DI opval = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
23914     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 3), opval);
23915     written |= (1 << 16);
23916     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23917   }
23918 }
23919 }
23920 }
23921 }
23922
23923   abuf->written = written;
23924   return vpc;
23925 #undef FLD
23926 }
23927
23928 /* mqmulxhs: mqmulxhs$pack $FRintieven,$FRintjeven,$ACC40Sk */
23929
23930 static SEM_PC
23931 SEM_FN_NAME (frvbf,mqmulxhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23932 {
23933 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
23934   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23935   int UNUSED written = 0;
23936   IADDR UNUSED pc = abuf->addr;
23937   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23938
23939 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
23940 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
23941 frvbf_media_acc_not_aligned (current_cpu);
23942 } else {
23943 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
23944 frvbf_media_register_not_aligned (current_cpu);
23945 } else {
23946 {
23947   HI tmp_argihi;
23948   HI tmp_argilo;
23949   HI tmp_argjhi;
23950   HI tmp_argjlo;
23951 {
23952   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23953   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23954   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23955   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23956 }
23957   {
23958     DI opval = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo));
23959     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23960     written |= (1 << 13);
23961     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23962   }
23963   {
23964     DI opval = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi));
23965     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
23966     written |= (1 << 14);
23967     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23968   }
23969 {
23970   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23971   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23972   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23973   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23974 }
23975   {
23976     DI opval = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo));
23977     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 2), opval);
23978     written |= (1 << 15);
23979     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23980   }
23981   {
23982     DI opval = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi));
23983     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 3), opval);
23984     written |= (1 << 16);
23985     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23986   }
23987 }
23988 }
23989 }
23990 }
23991
23992   abuf->written = written;
23993   return vpc;
23994 #undef FLD
23995 }
23996
23997 /* mqmulxhu: mqmulxhu$pack $FRintieven,$FRintjeven,$ACC40Sk */
23998
23999 static SEM_PC
24000 SEM_FN_NAME (frvbf,mqmulxhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
24001 {
24002 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
24003   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
24004   int UNUSED written = 0;
24005   IADDR UNUSED pc = abuf->addr;
24006   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
24007
24008 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
24009 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
24010 frvbf_media_acc_not_aligned (current_cpu);
24011 } else {
24012 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
24013 frvbf_media_register_not_aligned (current_cpu);
24014 } else {
24015 {
24016   UHI tmp_argihi;
24017   UHI tmp_argilo;
24018   UHI tmp_argjhi;
24019   UHI tmp_argjlo;
24020 {
24021   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24022   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24023   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24024   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24025 }
24026   {
24027     DI opval = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjlo));
24028     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24029     written |= (1 << 13);
24030     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24031   }
24032   {
24033     DI opval = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjhi));
24034     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
24035     written |= (1 << 14);
24036     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24037   }
24038 {
24039   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24040   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24041   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24042   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24043 }
24044   {
24045     DI opval = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjlo));
24046     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 2), opval);
24047     written |= (1 << 15);
24048     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24049   }
24050   {
24051     DI opval = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjhi));
24052     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 3), opval);
24053     written |= (1 << 16);
24054     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24055   }
24056 }
24057 }
24058 }
24059 }
24060
24061   abuf->written = written;
24062   return vpc;
24063 #undef FLD
24064 }
24065
24066 /* cmqmulhs: cmqmulhs$pack $FRintieven,$FRintjeven,$ACC40Sk,$CCi,$cond */
24067
24068 static SEM_PC
24069 SEM_FN_NAME (frvbf,cmqmulhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
24070 {
24071 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
24072   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
24073   int UNUSED written = 0;
24074   IADDR UNUSED pc = abuf->addr;
24075   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
24076
24077 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
24078 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
24079 frvbf_media_acc_not_aligned (current_cpu);
24080 } else {
24081 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
24082 frvbf_media_register_not_aligned (current_cpu);
24083 } else {
24084 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
24085 {
24086   HI tmp_argihi;
24087   HI tmp_argilo;
24088   HI tmp_argjhi;
24089   HI tmp_argjlo;
24090 {
24091   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24092   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24093   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24094   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24095 }
24096   {
24097     DI opval = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
24098     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24099     written |= (1 << 15);
24100     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24101   }
24102   {
24103     DI opval = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
24104     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
24105     written |= (1 << 16);
24106     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24107   }
24108 {
24109   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24110   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24111   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24112   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24113 }
24114   {
24115     DI opval = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
24116     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 2), opval);
24117     written |= (1 << 17);
24118     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24119   }
24120   {
24121     DI opval = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
24122     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 3), opval);
24123     written |= (1 << 18);
24124     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24125   }
24126 }
24127 }
24128 }
24129 }
24130 }
24131
24132   abuf->written = written;
24133   return vpc;
24134 #undef FLD
24135 }
24136
24137 /* cmqmulhu: cmqmulhu$pack $FRintieven,$FRintjeven,$ACC40Sk,$CCi,$cond */
24138
24139 static SEM_PC
24140 SEM_FN_NAME (frvbf,cmqmulhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
24141 {
24142 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
24143   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
24144   int UNUSED written = 0;
24145   IADDR UNUSED pc = abuf->addr;
24146   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
24147
24148 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
24149 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
24150 frvbf_media_acc_not_aligned (current_cpu);
24151 } else {
24152 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
24153 frvbf_media_register_not_aligned (current_cpu);
24154 } else {
24155 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
24156 {
24157   UHI tmp_argihi;
24158   UHI tmp_argilo;
24159   UHI tmp_argjhi;
24160   UHI tmp_argjlo;
24161 {
24162   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24163   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24164   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24165   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24166 }
24167   {
24168     DI opval = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
24169     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24170     written |= (1 << 15);
24171     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24172   }
24173   {
24174     DI opval = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
24175     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
24176     written |= (1 << 16);
24177     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24178   }
24179 {
24180   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24181   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24182   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24183   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24184 }
24185   {
24186     DI opval = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
24187     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 2), opval);
24188     written |= (1 << 17);
24189     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24190   }
24191   {
24192     DI opval = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
24193     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 3), opval);
24194     written |= (1 << 18);
24195     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24196   }
24197 }
24198 }
24199 }
24200 }
24201 }
24202
24203   abuf->written = written;
24204   return vpc;
24205 #undef FLD
24206 }
24207
24208 /* mmachs: mmachs$pack $FRinti,$FRintj,$ACC40Sk */
24209
24210 static SEM_PC
24211 SEM_FN_NAME (frvbf,mmachs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
24212 {
24213 #define FLD(f) abuf->fields.sfmt_cmmachs.f
24214   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
24215   int UNUSED written = 0;
24216   IADDR UNUSED pc = abuf->addr;
24217   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
24218
24219 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
24220 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
24221 frvbf_media_acc_not_aligned (current_cpu);
24222 } else {
24223 {
24224   HI tmp_argihi;
24225   HI tmp_argilo;
24226   HI tmp_argjhi;
24227   HI tmp_argjlo;
24228 {
24229   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24230   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24231   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24232   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24233 }
24234 {
24235   DI tmp_tmp;
24236   tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Sk)), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi)));
24237 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24238 {
24239   {
24240     DI opval = MAKEDI (127, 0xffffffff);
24241     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24242     written |= (1 << 11);
24243     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24244   }
24245 frvbf_media_overflow (current_cpu, 8);
24246 }
24247 } else {
24248 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24249 {
24250   {
24251     DI opval = MAKEDI (0xffffff80, 0);
24252     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24253     written |= (1 << 11);
24254     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24255   }
24256 frvbf_media_overflow (current_cpu, 8);
24257 }
24258 } else {
24259   {
24260     DI opval = tmp_tmp;
24261     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24262     written |= (1 << 11);
24263     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24264   }
24265 }
24266 }
24267 }
24268 {
24269   DI tmp_tmp;
24270   tmp_tmp = ADDDI (GET_H_ACC40S (ADDSI (FLD (f_ACC40Sk), 1)), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo)));
24271 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24272 {
24273   {
24274     DI opval = MAKEDI (127, 0xffffffff);
24275     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
24276     written |= (1 << 12);
24277     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24278   }
24279 frvbf_media_overflow (current_cpu, 4);
24280 }
24281 } else {
24282 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24283 {
24284   {
24285     DI opval = MAKEDI (0xffffff80, 0);
24286     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
24287     written |= (1 << 12);
24288     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24289   }
24290 frvbf_media_overflow (current_cpu, 4);
24291 }
24292 } else {
24293   {
24294     DI opval = tmp_tmp;
24295     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
24296     written |= (1 << 12);
24297     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24298   }
24299 }
24300 }
24301 }
24302 }
24303 }
24304 }
24305
24306   abuf->written = written;
24307   return vpc;
24308 #undef FLD
24309 }
24310
24311 /* mmachu: mmachu$pack $FRinti,$FRintj,$ACC40Uk */
24312
24313 static SEM_PC
24314 SEM_FN_NAME (frvbf,mmachu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
24315 {
24316 #define FLD(f) abuf->fields.sfmt_cmmachu.f
24317   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
24318   int UNUSED written = 0;
24319   IADDR UNUSED pc = abuf->addr;
24320   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
24321
24322 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Uk))) {
24323 if (ANDSI (FLD (f_ACC40Uk), SUBSI (2, 1))) {
24324 frvbf_media_acc_not_aligned (current_cpu);
24325 } else {
24326 {
24327   UHI tmp_argihi;
24328   UHI tmp_argilo;
24329   UHI tmp_argjhi;
24330   UHI tmp_argjlo;
24331 {
24332   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24333   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24334   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24335   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24336 }
24337 {
24338   DI tmp_tmp;
24339   tmp_tmp = ADDDI (GET_H_ACC40U (FLD (f_ACC40Uk)), MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi)));
24340 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
24341 {
24342   {
24343     UDI opval = MAKEDI (255, 0xffffffff);
24344     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24345     written |= (1 << 11);
24346     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24347   }
24348 frvbf_media_overflow (current_cpu, 8);
24349 }
24350 } else {
24351 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
24352 {
24353   {
24354     UDI opval = MAKEDI (0, 0);
24355     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24356     written |= (1 << 11);
24357     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24358   }
24359 frvbf_media_overflow (current_cpu, 8);
24360 }
24361 } else {
24362   {
24363     UDI opval = tmp_tmp;
24364     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24365     written |= (1 << 11);
24366     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24367   }
24368 }
24369 }
24370 }
24371 {
24372   DI tmp_tmp;
24373   tmp_tmp = ADDDI (GET_H_ACC40U (ADDSI (FLD (f_ACC40Uk), 1)), MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo)));
24374 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
24375 {
24376   {
24377     UDI opval = MAKEDI (255, 0xffffffff);
24378     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ADDSI (FLD (f_ACC40Uk), 1), opval);
24379     written |= (1 << 12);
24380     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24381   }
24382 frvbf_media_overflow (current_cpu, 4);
24383 }
24384 } else {
24385 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
24386 {
24387   {
24388     UDI opval = MAKEDI (0, 0);
24389     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ADDSI (FLD (f_ACC40Uk), 1), opval);
24390     written |= (1 << 12);
24391     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24392   }
24393 frvbf_media_overflow (current_cpu, 4);
24394 }
24395 } else {
24396   {
24397     UDI opval = tmp_tmp;
24398     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ADDSI (FLD (f_ACC40Uk), 1), opval);
24399     written |= (1 << 12);
24400     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24401   }
24402 }
24403 }
24404 }
24405 }
24406 }
24407 }
24408
24409   abuf->written = written;
24410   return vpc;
24411 #undef FLD
24412 }
24413
24414 /* mmrdhs: mmrdhs$pack $FRinti,$FRintj,$ACC40Sk */
24415
24416 static SEM_PC
24417 SEM_FN_NAME (frvbf,mmrdhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
24418 {
24419 #define FLD(f) abuf->fields.sfmt_cmmachs.f
24420   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
24421   int UNUSED written = 0;
24422   IADDR UNUSED pc = abuf->addr;
24423   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
24424
24425 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
24426 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
24427 frvbf_media_acc_not_aligned (current_cpu);
24428 } else {
24429 {
24430   HI tmp_argihi;
24431   HI tmp_argilo;
24432   HI tmp_argjhi;
24433   HI tmp_argjlo;
24434 {
24435   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24436   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24437   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24438   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24439 }
24440 {
24441   DI tmp_tmp;
24442   tmp_tmp = SUBDI (GET_H_ACC40S (FLD (f_ACC40Sk)), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi)));
24443 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24444 {
24445   {
24446     DI opval = MAKEDI (127, 0xffffffff);
24447     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24448     written |= (1 << 11);
24449     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24450   }
24451 frvbf_media_overflow (current_cpu, 8);
24452 }
24453 } else {
24454 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24455 {
24456   {
24457     DI opval = MAKEDI (0xffffff80, 0);
24458     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24459     written |= (1 << 11);
24460     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24461   }
24462 frvbf_media_overflow (current_cpu, 8);
24463 }
24464 } else {
24465   {
24466     DI opval = tmp_tmp;
24467     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24468     written |= (1 << 11);
24469     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24470   }
24471 }
24472 }
24473 }
24474 {
24475   DI tmp_tmp;
24476   tmp_tmp = SUBDI (GET_H_ACC40S (ADDSI (FLD (f_ACC40Sk), 1)), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo)));
24477 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24478 {
24479   {
24480     DI opval = MAKEDI (127, 0xffffffff);
24481     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
24482     written |= (1 << 12);
24483     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24484   }
24485 frvbf_media_overflow (current_cpu, 4);
24486 }
24487 } else {
24488 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24489 {
24490   {
24491     DI opval = MAKEDI (0xffffff80, 0);
24492     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
24493     written |= (1 << 12);
24494     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24495   }
24496 frvbf_media_overflow (current_cpu, 4);
24497 }
24498 } else {
24499   {
24500     DI opval = tmp_tmp;
24501     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
24502     written |= (1 << 12);
24503     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24504   }
24505 }
24506 }
24507 }
24508 }
24509 }
24510 }
24511
24512   abuf->written = written;
24513   return vpc;
24514 #undef FLD
24515 }
24516
24517 /* mmrdhu: mmrdhu$pack $FRinti,$FRintj,$ACC40Uk */
24518
24519 static SEM_PC
24520 SEM_FN_NAME (frvbf,mmrdhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
24521 {
24522 #define FLD(f) abuf->fields.sfmt_cmmachu.f
24523   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
24524   int UNUSED written = 0;
24525   IADDR UNUSED pc = abuf->addr;
24526   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
24527
24528 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Uk))) {
24529 if (ANDSI (FLD (f_ACC40Uk), SUBSI (2, 1))) {
24530 frvbf_media_acc_not_aligned (current_cpu);
24531 } else {
24532 {
24533   UHI tmp_argihi;
24534   UHI tmp_argilo;
24535   UHI tmp_argjhi;
24536   UHI tmp_argjlo;
24537 {
24538   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24539   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24540   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24541   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24542 }
24543 {
24544   DI tmp_tmp;
24545   tmp_tmp = SUBDI (GET_H_ACC40U (FLD (f_ACC40Uk)), MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi)));
24546 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
24547 {
24548   {
24549     UDI opval = MAKEDI (255, 0xffffffff);
24550     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24551     written |= (1 << 11);
24552     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24553   }
24554 frvbf_media_overflow (current_cpu, 8);
24555 }
24556 } else {
24557 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
24558 {
24559   {
24560     UDI opval = MAKEDI (0, 0);
24561     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24562     written |= (1 << 11);
24563     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24564   }
24565 frvbf_media_overflow (current_cpu, 8);
24566 }
24567 } else {
24568   {
24569     UDI opval = tmp_tmp;
24570     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24571     written |= (1 << 11);
24572     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24573   }
24574 }
24575 }
24576 }
24577 {
24578   DI tmp_tmp;
24579   tmp_tmp = SUBDI (GET_H_ACC40U (ADDSI (FLD (f_ACC40Uk), 1)), MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo)));
24580 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
24581 {
24582   {
24583     UDI opval = MAKEDI (255, 0xffffffff);
24584     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ADDSI (FLD (f_ACC40Uk), 1), opval);
24585     written |= (1 << 12);
24586     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24587   }
24588 frvbf_media_overflow (current_cpu, 4);
24589 }
24590 } else {
24591 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
24592 {
24593   {
24594     UDI opval = MAKEDI (0, 0);
24595     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ADDSI (FLD (f_ACC40Uk), 1), opval);
24596     written |= (1 << 12);
24597     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24598   }
24599 frvbf_media_overflow (current_cpu, 4);
24600 }
24601 } else {
24602   {
24603     UDI opval = tmp_tmp;
24604     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ADDSI (FLD (f_ACC40Uk), 1), opval);
24605     written |= (1 << 12);
24606     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24607   }
24608 }
24609 }
24610 }
24611 }
24612 }
24613 }
24614
24615   abuf->written = written;
24616   return vpc;
24617 #undef FLD
24618 }
24619
24620 /* cmmachs: cmmachs$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
24621
24622 static SEM_PC
24623 SEM_FN_NAME (frvbf,cmmachs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
24624 {
24625 #define FLD(f) abuf->fields.sfmt_cmmachs.f
24626   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
24627   int UNUSED written = 0;
24628   IADDR UNUSED pc = abuf->addr;
24629   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
24630
24631 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
24632 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
24633 frvbf_media_acc_not_aligned (current_cpu);
24634 } else {
24635 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
24636 {
24637   HI tmp_argihi;
24638   HI tmp_argilo;
24639   HI tmp_argjhi;
24640   HI tmp_argjlo;
24641 {
24642   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24643   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24644   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24645   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24646 }
24647 {
24648   DI tmp_tmp;
24649   tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Sk)), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi)));
24650 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24651 {
24652   {
24653     DI opval = MAKEDI (127, 0xffffffff);
24654     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24655     written |= (1 << 13);
24656     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24657   }
24658 frvbf_media_overflow (current_cpu, 8);
24659 }
24660 } else {
24661 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24662 {
24663   {
24664     DI opval = MAKEDI (0xffffff80, 0);
24665     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24666     written |= (1 << 13);
24667     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24668   }
24669 frvbf_media_overflow (current_cpu, 8);
24670 }
24671 } else {
24672   {
24673     DI opval = tmp_tmp;
24674     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24675     written |= (1 << 13);
24676     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24677   }
24678 }
24679 }
24680 }
24681 {
24682   DI tmp_tmp;
24683   tmp_tmp = ADDDI (GET_H_ACC40S (ADDSI (FLD (f_ACC40Sk), 1)), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo)));
24684 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24685 {
24686   {
24687     DI opval = MAKEDI (127, 0xffffffff);
24688     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
24689     written |= (1 << 14);
24690     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24691   }
24692 frvbf_media_overflow (current_cpu, 4);
24693 }
24694 } else {
24695 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24696 {
24697   {
24698     DI opval = MAKEDI (0xffffff80, 0);
24699     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
24700     written |= (1 << 14);
24701     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24702   }
24703 frvbf_media_overflow (current_cpu, 4);
24704 }
24705 } else {
24706   {
24707     DI opval = tmp_tmp;
24708     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
24709     written |= (1 << 14);
24710     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24711   }
24712 }
24713 }
24714 }
24715 }
24716 }
24717 }
24718 }
24719
24720   abuf->written = written;
24721   return vpc;
24722 #undef FLD
24723 }
24724
24725 /* cmmachu: cmmachu$pack $FRinti,$FRintj,$ACC40Uk,$CCi,$cond */
24726
24727 static SEM_PC
24728 SEM_FN_NAME (frvbf,cmmachu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
24729 {
24730 #define FLD(f) abuf->fields.sfmt_cmmachu.f
24731   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
24732   int UNUSED written = 0;
24733   IADDR UNUSED pc = abuf->addr;
24734   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
24735
24736 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Uk))) {
24737 if (ANDSI (FLD (f_ACC40Uk), SUBSI (2, 1))) {
24738 frvbf_media_acc_not_aligned (current_cpu);
24739 } else {
24740 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
24741 {
24742   UHI tmp_argihi;
24743   UHI tmp_argilo;
24744   UHI tmp_argjhi;
24745   UHI tmp_argjlo;
24746 {
24747   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24748   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24749   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24750   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24751 }
24752 {
24753   DI tmp_tmp;
24754   tmp_tmp = ADDDI (GET_H_ACC40U (FLD (f_ACC40Uk)), MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi)));
24755 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
24756 {
24757   {
24758     UDI opval = MAKEDI (255, 0xffffffff);
24759     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24760     written |= (1 << 13);
24761     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24762   }
24763 frvbf_media_overflow (current_cpu, 8);
24764 }
24765 } else {
24766 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
24767 {
24768   {
24769     UDI opval = MAKEDI (0, 0);
24770     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24771     written |= (1 << 13);
24772     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24773   }
24774 frvbf_media_overflow (current_cpu, 8);
24775 }
24776 } else {
24777   {
24778     UDI opval = tmp_tmp;
24779     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24780     written |= (1 << 13);
24781     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24782   }
24783 }
24784 }
24785 }
24786 {
24787   DI tmp_tmp;
24788   tmp_tmp = ADDDI (GET_H_ACC40U (ADDSI (FLD (f_ACC40Uk), 1)), MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo)));
24789 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
24790 {
24791   {
24792     UDI opval = MAKEDI (255, 0xffffffff);
24793     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ADDSI (FLD (f_ACC40Uk), 1), opval);
24794     written |= (1 << 14);
24795     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24796   }
24797 frvbf_media_overflow (current_cpu, 4);
24798 }
24799 } else {
24800 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
24801 {
24802   {
24803     UDI opval = MAKEDI (0, 0);
24804     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ADDSI (FLD (f_ACC40Uk), 1), opval);
24805     written |= (1 << 14);
24806     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24807   }
24808 frvbf_media_overflow (current_cpu, 4);
24809 }
24810 } else {
24811   {
24812     UDI opval = tmp_tmp;
24813     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ADDSI (FLD (f_ACC40Uk), 1), opval);
24814     written |= (1 << 14);
24815     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24816   }
24817 }
24818 }
24819 }
24820 }
24821 }
24822 }
24823 }
24824
24825   abuf->written = written;
24826   return vpc;
24827 #undef FLD
24828 }
24829
24830 /* mqmachs: mqmachs$pack $FRintieven,$FRintjeven,$ACC40Sk */
24831
24832 static SEM_PC
24833 SEM_FN_NAME (frvbf,mqmachs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
24834 {
24835 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
24836   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
24837   int UNUSED written = 0;
24838   IADDR UNUSED pc = abuf->addr;
24839   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
24840
24841 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
24842 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
24843 frvbf_media_acc_not_aligned (current_cpu);
24844 } else {
24845 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
24846 frvbf_media_register_not_aligned (current_cpu);
24847 } else {
24848 {
24849   HI tmp_argihi;
24850   HI tmp_argilo;
24851   HI tmp_argjhi;
24852   HI tmp_argjlo;
24853 {
24854   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24855   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24856   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24857   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24858 }
24859 {
24860   DI tmp_tmp;
24861   tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Sk)), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi)));
24862 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24863 {
24864   {
24865     DI opval = MAKEDI (127, 0xffffffff);
24866     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24867     written |= (1 << 17);
24868     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24869   }
24870 frvbf_media_overflow (current_cpu, 8);
24871 }
24872 } else {
24873 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24874 {
24875   {
24876     DI opval = MAKEDI (0xffffff80, 0);
24877     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24878     written |= (1 << 17);
24879     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24880   }
24881 frvbf_media_overflow (current_cpu, 8);
24882 }
24883 } else {
24884   {
24885     DI opval = tmp_tmp;
24886     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24887     written |= (1 << 17);
24888     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24889   }
24890 }
24891 }
24892 }
24893 {
24894   DI tmp_tmp;
24895   tmp_tmp = ADDDI (GET_H_ACC40S (ADDSI (FLD (f_ACC40Sk), 1)), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo)));
24896 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24897 {
24898   {
24899     DI opval = MAKEDI (127, 0xffffffff);
24900     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
24901     written |= (1 << 18);
24902     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24903   }
24904 frvbf_media_overflow (current_cpu, 4);
24905 }
24906 } else {
24907 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24908 {
24909   {
24910     DI opval = MAKEDI (0xffffff80, 0);
24911     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
24912     written |= (1 << 18);
24913     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24914   }
24915 frvbf_media_overflow (current_cpu, 4);
24916 }
24917 } else {
24918   {
24919     DI opval = tmp_tmp;
24920     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
24921     written |= (1 << 18);
24922     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24923   }
24924 }
24925 }
24926 }
24927 {
24928   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24929   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24930   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24931   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24932 }
24933 {
24934   DI tmp_tmp;
24935   tmp_tmp = ADDDI (GET_H_ACC40S (ADDSI (FLD (f_ACC40Sk), 2)), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi)));
24936 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24937 {
24938   {
24939     DI opval = MAKEDI (127, 0xffffffff);
24940     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 2), opval);
24941     written |= (1 << 19);
24942     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24943   }
24944 frvbf_media_overflow (current_cpu, 2);
24945 }
24946 } else {
24947 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24948 {
24949   {
24950     DI opval = MAKEDI (0xffffff80, 0);
24951     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 2), opval);
24952     written |= (1 << 19);
24953     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24954   }
24955 frvbf_media_overflow (current_cpu, 2);
24956 }
24957 } else {
24958   {
24959     DI opval = tmp_tmp;
24960     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 2), opval);
24961     written |= (1 << 19);
24962     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24963   }
24964 }
24965 }
24966 }
24967 {
24968   DI tmp_tmp;
24969   tmp_tmp = ADDDI (GET_H_ACC40S (ADDSI (FLD (f_ACC40Sk), 3)), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo)));
24970 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24971 {
24972   {
24973     DI opval = MAKEDI (127, 0xffffffff);
24974     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 3), opval);
24975     written |= (1 << 20);
24976     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24977   }
24978 frvbf_media_overflow (current_cpu, 1);
24979 }
24980 } else {
24981 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24982 {
24983   {
24984     DI opval = MAKEDI (0xffffff80, 0);
24985     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 3), opval);
24986     written |= (1 << 20);
24987     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24988   }
24989 frvbf_media_overflow (current_cpu, 1);
24990 }
24991 } else {
24992   {
24993     DI opval = tmp_tmp;
24994     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 3), opval);
24995     written |= (1 << 20);
24996     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24997   }
24998 }
24999 }
25000 }
25001 }
25002 }
25003 }
25004 }
25005
25006   abuf->written = written;
25007   return vpc;
25008 #undef FLD
25009 }
25010
25011 /* mqmachu: mqmachu$pack $FRintieven,$FRintjeven,$ACC40Uk */
25012
25013 static SEM_PC
25014 SEM_FN_NAME (frvbf,mqmachu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
25015 {
25016 #define FLD(f) abuf->fields.sfmt_cmqmachu.f
25017   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
25018   int UNUSED written = 0;
25019   IADDR UNUSED pc = abuf->addr;
25020   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
25021
25022 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Uk))) {
25023 if (ANDSI (FLD (f_ACC40Uk), SUBSI (4, 1))) {
25024 frvbf_media_acc_not_aligned (current_cpu);
25025 } else {
25026 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
25027 frvbf_media_register_not_aligned (current_cpu);
25028 } else {
25029 {
25030   UHI tmp_argihi;
25031   UHI tmp_argilo;
25032   UHI tmp_argjhi;
25033   UHI tmp_argjlo;
25034 {
25035   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25036   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25037   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25038   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25039 }
25040 {
25041   DI tmp_tmp;
25042   tmp_tmp = ADDDI (GET_H_ACC40U (FLD (f_ACC40Uk)), MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi)));
25043 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
25044 {
25045   {
25046     UDI opval = MAKEDI (255, 0xffffffff);
25047     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
25048     written |= (1 << 17);
25049     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25050   }
25051 frvbf_media_overflow (current_cpu, 8);
25052 }
25053 } else {
25054 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
25055 {
25056   {
25057     UDI opval = MAKEDI (0, 0);
25058     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
25059     written |= (1 << 17);
25060     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25061   }
25062 frvbf_media_overflow (current_cpu, 8);
25063 }
25064 } else {
25065   {
25066     UDI opval = tmp_tmp;
25067     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
25068     written |= (1 << 17);
25069     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25070   }
25071 }
25072 }
25073 }
25074 {
25075   DI tmp_tmp;
25076   tmp_tmp = ADDDI (GET_H_ACC40U (ADDSI (FLD (f_ACC40Uk), 1)), MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo)));
25077 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
25078 {
25079   {
25080     UDI opval = MAKEDI (255, 0xffffffff);
25081     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ADDSI (FLD (f_ACC40Uk), 1), opval);
25082     written |= (1 << 18);
25083     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25084   }
25085 frvbf_media_overflow (current_cpu, 4);
25086 }
25087 } else {
25088 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
25089 {
25090   {
25091     UDI opval = MAKEDI (0, 0);
25092     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ADDSI (FLD (f_ACC40Uk), 1), opval);
25093     written |= (1 << 18);
25094     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25095   }
25096 frvbf_media_overflow (current_cpu, 4);
25097 }
25098 } else {
25099   {
25100     UDI opval = tmp_tmp;
25101     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ADDSI (FLD (f_ACC40Uk), 1), opval);
25102     written |= (1 << 18);
25103     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25104   }
25105 }
25106 }
25107 }
25108 {
25109   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25110   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25111   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25112   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25113 }
25114 {
25115   DI tmp_tmp;
25116   tmp_tmp = ADDDI (GET_H_ACC40U (ADDSI (FLD (f_ACC40Uk), 2)), MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi)));
25117 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
25118 {
25119   {
25120     UDI opval = MAKEDI (255, 0xffffffff);
25121     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ADDSI (FLD (f_ACC40Uk), 2), opval);
25122     written |= (1 << 19);
25123     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25124   }
25125 frvbf_media_overflow (current_cpu, 2);
25126 }
25127 } else {
25128 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
25129 {
25130   {
25131     UDI opval = MAKEDI (0, 0);
25132     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ADDSI (FLD (f_ACC40Uk), 2), opval);
25133     written |= (1 << 19);
25134     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25135   }
25136 frvbf_media_overflow (current_cpu, 2);
25137 }
25138 } else {
25139   {
25140     UDI opval = tmp_tmp;
25141     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ADDSI (FLD (f_ACC40Uk), 2), opval);
25142     written |= (1 << 19);
25143     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25144   }
25145 }
25146 }
25147 }
25148 {
25149   DI tmp_tmp;
25150   tmp_tmp = ADDDI (GET_H_ACC40U (ADDSI (FLD (f_ACC40Uk), 3)), MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo)));
25151 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
25152 {
25153   {
25154     UDI opval = MAKEDI (255, 0xffffffff);
25155     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ADDSI (FLD (f_ACC40Uk), 3), opval);
25156     written |= (1 << 20);
25157     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25158   }
25159 frvbf_media_overflow (current_cpu, 1);
25160 }
25161 } else {
25162 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
25163 {
25164   {
25165     UDI opval = MAKEDI (0, 0);
25166     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ADDSI (FLD (f_ACC40Uk), 3), opval);
25167     written |= (1 << 20);
25168     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25169   }
25170 frvbf_media_overflow (current_cpu, 1);
25171 }
25172 } else {
25173   {
25174     UDI opval = tmp_tmp;
25175     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ADDSI (FLD (f_ACC40Uk), 3), opval);
25176     written |= (1 << 20);
25177     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25178   }
25179 }
25180 }
25181 }
25182 }
25183 }
25184 }
25185 }
25186
25187   abuf->written = written;
25188   return vpc;
25189 #undef FLD
25190 }
25191
25192 /* cmqmachs: cmqmachs$pack $FRintieven,$FRintjeven,$ACC40Sk,$CCi,$cond */
25193
25194 static SEM_PC
25195 SEM_FN_NAME (frvbf,cmqmachs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
25196 {
25197 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
25198   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
25199   int UNUSED written = 0;
25200   IADDR UNUSED pc = abuf->addr;
25201   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
25202
25203 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
25204 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
25205 frvbf_media_acc_not_aligned (current_cpu);
25206 } else {
25207 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
25208 frvbf_media_register_not_aligned (current_cpu);
25209 } else {
25210 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
25211 {
25212   HI tmp_argihi;
25213   HI tmp_argilo;
25214   HI tmp_argjhi;
25215   HI tmp_argjlo;
25216 {
25217   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25218   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25219   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25220   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25221 }
25222 {
25223   DI tmp_tmp;
25224   tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Sk)), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi)));
25225 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25226 {
25227   {
25228     DI opval = MAKEDI (127, 0xffffffff);
25229     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25230     written |= (1 << 19);
25231     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25232   }
25233 frvbf_media_overflow (current_cpu, 8);
25234 }
25235 } else {
25236 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25237 {
25238   {
25239     DI opval = MAKEDI (0xffffff80, 0);
25240     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25241     written |= (1 << 19);
25242     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25243   }
25244 frvbf_media_overflow (current_cpu, 8);
25245 }
25246 } else {
25247   {
25248     DI opval = tmp_tmp;
25249     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25250     written |= (1 << 19);
25251     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25252   }
25253 }
25254 }
25255 }
25256 {
25257   DI tmp_tmp;
25258   tmp_tmp = ADDDI (GET_H_ACC40S (ADDSI (FLD (f_ACC40Sk), 1)), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo)));
25259 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25260 {
25261   {
25262     DI opval = MAKEDI (127, 0xffffffff);
25263     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
25264     written |= (1 << 20);
25265     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25266   }
25267 frvbf_media_overflow (current_cpu, 4);
25268 }
25269 } else {
25270 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25271 {
25272   {
25273     DI opval = MAKEDI (0xffffff80, 0);
25274     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
25275     written |= (1 << 20);
25276     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25277   }
25278 frvbf_media_overflow (current_cpu, 4);
25279 }
25280 } else {
25281   {
25282     DI opval = tmp_tmp;
25283     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
25284     written |= (1 << 20);
25285     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25286   }
25287 }
25288 }
25289 }
25290 {
25291   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25292   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25293   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25294   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25295 }
25296 {
25297   DI tmp_tmp;
25298   tmp_tmp = ADDDI (GET_H_ACC40S (ADDSI (FLD (f_ACC40Sk), 2)), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi)));
25299 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25300 {
25301   {
25302     DI opval = MAKEDI (127, 0xffffffff);
25303     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 2), opval);
25304     written |= (1 << 21);
25305     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25306   }
25307 frvbf_media_overflow (current_cpu, 2);
25308 }
25309 } else {
25310 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25311 {
25312   {
25313     DI opval = MAKEDI (0xffffff80, 0);
25314     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 2), opval);
25315     written |= (1 << 21);
25316     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25317   }
25318 frvbf_media_overflow (current_cpu, 2);
25319 }
25320 } else {
25321   {
25322     DI opval = tmp_tmp;
25323     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 2), opval);
25324     written |= (1 << 21);
25325     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25326   }
25327 }
25328 }
25329 }
25330 {
25331   DI tmp_tmp;
25332   tmp_tmp = ADDDI (GET_H_ACC40S (ADDSI (FLD (f_ACC40Sk), 3)), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo)));
25333 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25334 {
25335   {
25336     DI opval = MAKEDI (127, 0xffffffff);
25337     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 3), opval);
25338     written |= (1 << 22);
25339     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25340   }
25341 frvbf_media_overflow (current_cpu, 1);
25342 }
25343 } else {
25344 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25345 {
25346   {
25347     DI opval = MAKEDI (0xffffff80, 0);
25348     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 3), opval);
25349     written |= (1 << 22);
25350     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25351   }
25352 frvbf_media_overflow (current_cpu, 1);
25353 }
25354 } else {
25355   {
25356     DI opval = tmp_tmp;
25357     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 3), opval);
25358     written |= (1 << 22);
25359     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25360   }
25361 }
25362 }
25363 }
25364 }
25365 }
25366 }
25367 }
25368 }
25369
25370   abuf->written = written;
25371   return vpc;
25372 #undef FLD
25373 }
25374
25375 /* cmqmachu: cmqmachu$pack $FRintieven,$FRintjeven,$ACC40Uk,$CCi,$cond */
25376
25377 static SEM_PC
25378 SEM_FN_NAME (frvbf,cmqmachu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
25379 {
25380 #define FLD(f) abuf->fields.sfmt_cmqmachu.f
25381   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
25382   int UNUSED written = 0;
25383   IADDR UNUSED pc = abuf->addr;
25384   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
25385
25386 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Uk))) {
25387 if (ANDSI (FLD (f_ACC40Uk), SUBSI (4, 1))) {
25388 frvbf_media_acc_not_aligned (current_cpu);
25389 } else {
25390 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
25391 frvbf_media_register_not_aligned (current_cpu);
25392 } else {
25393 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
25394 {
25395   UHI tmp_argihi;
25396   UHI tmp_argilo;
25397   UHI tmp_argjhi;
25398   UHI tmp_argjlo;
25399 {
25400   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25401   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25402   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25403   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25404 }
25405 {
25406   DI tmp_tmp;
25407   tmp_tmp = ADDDI (GET_H_ACC40U (FLD (f_ACC40Uk)), MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi)));
25408 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
25409 {
25410   {
25411     UDI opval = MAKEDI (255, 0xffffffff);
25412     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
25413     written |= (1 << 19);
25414     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25415   }
25416 frvbf_media_overflow (current_cpu, 8);
25417 }
25418 } else {
25419 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
25420 {
25421   {
25422     UDI opval = MAKEDI (0, 0);
25423     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
25424     written |= (1 << 19);
25425     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25426   }
25427 frvbf_media_overflow (current_cpu, 8);
25428 }
25429 } else {
25430   {
25431     UDI opval = tmp_tmp;
25432     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
25433     written |= (1 << 19);
25434     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25435   }
25436 }
25437 }
25438 }
25439 {
25440   DI tmp_tmp;
25441   tmp_tmp = ADDDI (GET_H_ACC40U (ADDSI (FLD (f_ACC40Uk), 1)), MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo)));
25442 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
25443 {
25444   {
25445     UDI opval = MAKEDI (255, 0xffffffff);
25446     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ADDSI (FLD (f_ACC40Uk), 1), opval);
25447     written |= (1 << 20);
25448     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25449   }
25450 frvbf_media_overflow (current_cpu, 4);
25451 }
25452 } else {
25453 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
25454 {
25455   {
25456     UDI opval = MAKEDI (0, 0);
25457     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ADDSI (FLD (f_ACC40Uk), 1), opval);
25458     written |= (1 << 20);
25459     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25460   }
25461 frvbf_media_overflow (current_cpu, 4);
25462 }
25463 } else {
25464   {
25465     UDI opval = tmp_tmp;
25466     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ADDSI (FLD (f_ACC40Uk), 1), opval);
25467     written |= (1 << 20);
25468     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25469   }
25470 }
25471 }
25472 }
25473 {
25474   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25475   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25476   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25477   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25478 }
25479 {
25480   DI tmp_tmp;
25481   tmp_tmp = ADDDI (GET_H_ACC40U (ADDSI (FLD (f_ACC40Uk), 2)), MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi)));
25482 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
25483 {
25484   {
25485     UDI opval = MAKEDI (255, 0xffffffff);
25486     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ADDSI (FLD (f_ACC40Uk), 2), opval);
25487     written |= (1 << 21);
25488     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25489   }
25490 frvbf_media_overflow (current_cpu, 2);
25491 }
25492 } else {
25493 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
25494 {
25495   {
25496     UDI opval = MAKEDI (0, 0);
25497     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ADDSI (FLD (f_ACC40Uk), 2), opval);
25498     written |= (1 << 21);
25499     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25500   }
25501 frvbf_media_overflow (current_cpu, 2);
25502 }
25503 } else {
25504   {
25505     UDI opval = tmp_tmp;
25506     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ADDSI (FLD (f_ACC40Uk), 2), opval);
25507     written |= (1 << 21);
25508     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25509   }
25510 }
25511 }
25512 }
25513 {
25514   DI tmp_tmp;
25515   tmp_tmp = ADDDI (GET_H_ACC40U (ADDSI (FLD (f_ACC40Uk), 3)), MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo)));
25516 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
25517 {
25518   {
25519     UDI opval = MAKEDI (255, 0xffffffff);
25520     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ADDSI (FLD (f_ACC40Uk), 3), opval);
25521     written |= (1 << 22);
25522     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25523   }
25524 frvbf_media_overflow (current_cpu, 1);
25525 }
25526 } else {
25527 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
25528 {
25529   {
25530     UDI opval = MAKEDI (0, 0);
25531     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ADDSI (FLD (f_ACC40Uk), 3), opval);
25532     written |= (1 << 22);
25533     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25534   }
25535 frvbf_media_overflow (current_cpu, 1);
25536 }
25537 } else {
25538   {
25539     UDI opval = tmp_tmp;
25540     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ADDSI (FLD (f_ACC40Uk), 3), opval);
25541     written |= (1 << 22);
25542     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25543   }
25544 }
25545 }
25546 }
25547 }
25548 }
25549 }
25550 }
25551 }
25552
25553   abuf->written = written;
25554   return vpc;
25555 #undef FLD
25556 }
25557
25558 /* mqxmachs: mqxmachs$pack $FRintieven,$FRintjeven,$ACC40Sk */
25559
25560 static SEM_PC
25561 SEM_FN_NAME (frvbf,mqxmachs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
25562 {
25563 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
25564   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
25565   int UNUSED written = 0;
25566   IADDR UNUSED pc = abuf->addr;
25567   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
25568
25569 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
25570 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
25571 frvbf_media_acc_not_aligned (current_cpu);
25572 } else {
25573 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
25574 frvbf_media_register_not_aligned (current_cpu);
25575 } else {
25576 {
25577   HI tmp_argihi;
25578   HI tmp_argilo;
25579   HI tmp_argjhi;
25580   HI tmp_argjlo;
25581 {
25582   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25583   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25584   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25585   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25586 }
25587 {
25588   DI tmp_tmp;
25589   tmp_tmp = ADDDI (GET_H_ACC40S (ADDSI (FLD (f_ACC40Sk), 2)), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi)));
25590 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25591 {
25592   {
25593     DI opval = MAKEDI (127, 0xffffffff);
25594     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 2), opval);
25595     written |= (1 << 19);
25596     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25597   }
25598 frvbf_media_overflow (current_cpu, 2);
25599 }
25600 } else {
25601 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25602 {
25603   {
25604     DI opval = MAKEDI (0xffffff80, 0);
25605     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 2), opval);
25606     written |= (1 << 19);
25607     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25608   }
25609 frvbf_media_overflow (current_cpu, 2);
25610 }
25611 } else {
25612   {
25613     DI opval = tmp_tmp;
25614     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 2), opval);
25615     written |= (1 << 19);
25616     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25617   }
25618 }
25619 }
25620 }
25621 {
25622   DI tmp_tmp;
25623   tmp_tmp = ADDDI (GET_H_ACC40S (ADDSI (FLD (f_ACC40Sk), 3)), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo)));
25624 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25625 {
25626   {
25627     DI opval = MAKEDI (127, 0xffffffff);
25628     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 3), opval);
25629     written |= (1 << 20);
25630     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25631   }
25632 frvbf_media_overflow (current_cpu, 1);
25633 }
25634 } else {
25635 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25636 {
25637   {
25638     DI opval = MAKEDI (0xffffff80, 0);
25639     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 3), opval);
25640     written |= (1 << 20);
25641     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25642   }
25643 frvbf_media_overflow (current_cpu, 1);
25644 }
25645 } else {
25646   {
25647     DI opval = tmp_tmp;
25648     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 3), opval);
25649     written |= (1 << 20);
25650     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25651   }
25652 }
25653 }
25654 }
25655 {
25656   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25657   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25658   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25659   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25660 }
25661 {
25662   DI tmp_tmp;
25663   tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Sk)), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi)));
25664 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25665 {
25666   {
25667     DI opval = MAKEDI (127, 0xffffffff);
25668     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25669     written |= (1 << 17);
25670     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25671   }
25672 frvbf_media_overflow (current_cpu, 8);
25673 }
25674 } else {
25675 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25676 {
25677   {
25678     DI opval = MAKEDI (0xffffff80, 0);
25679     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25680     written |= (1 << 17);
25681     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25682   }
25683 frvbf_media_overflow (current_cpu, 8);
25684 }
25685 } else {
25686   {
25687     DI opval = tmp_tmp;
25688     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25689     written |= (1 << 17);
25690     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25691   }
25692 }
25693 }
25694 }
25695 {
25696   DI tmp_tmp;
25697   tmp_tmp = ADDDI (GET_H_ACC40S (ADDSI (FLD (f_ACC40Sk), 1)), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo)));
25698 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25699 {
25700   {
25701     DI opval = MAKEDI (127, 0xffffffff);
25702     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
25703     written |= (1 << 18);
25704     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25705   }
25706 frvbf_media_overflow (current_cpu, 4);
25707 }
25708 } else {
25709 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25710 {
25711   {
25712     DI opval = MAKEDI (0xffffff80, 0);
25713     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
25714     written |= (1 << 18);
25715     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25716   }
25717 frvbf_media_overflow (current_cpu, 4);
25718 }
25719 } else {
25720   {
25721     DI opval = tmp_tmp;
25722     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
25723     written |= (1 << 18);
25724     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25725   }
25726 }
25727 }
25728 }
25729 }
25730 }
25731 }
25732 }
25733
25734   abuf->written = written;
25735   return vpc;
25736 #undef FLD
25737 }
25738
25739 /* mqxmacxhs: mqxmacxhs$pack $FRintieven,$FRintjeven,$ACC40Sk */
25740
25741 static SEM_PC
25742 SEM_FN_NAME (frvbf,mqxmacxhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
25743 {
25744 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
25745   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
25746   int UNUSED written = 0;
25747   IADDR UNUSED pc = abuf->addr;
25748   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
25749
25750 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
25751 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
25752 frvbf_media_acc_not_aligned (current_cpu);
25753 } else {
25754 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
25755 frvbf_media_register_not_aligned (current_cpu);
25756 } else {
25757 {
25758   HI tmp_argihi;
25759   HI tmp_argilo;
25760   HI tmp_argjhi;
25761   HI tmp_argjlo;
25762 {
25763   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25764   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25765   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25766   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25767 }
25768 {
25769   DI tmp_tmp;
25770   tmp_tmp = ADDDI (GET_H_ACC40S (ADDSI (FLD (f_ACC40Sk), 2)), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo)));
25771 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25772 {
25773   {
25774     DI opval = MAKEDI (127, 0xffffffff);
25775     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 2), opval);
25776     written |= (1 << 19);
25777     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25778   }
25779 frvbf_media_overflow (current_cpu, 2);
25780 }
25781 } else {
25782 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25783 {
25784   {
25785     DI opval = MAKEDI (0xffffff80, 0);
25786     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 2), opval);
25787     written |= (1 << 19);
25788     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25789   }
25790 frvbf_media_overflow (current_cpu, 2);
25791 }
25792 } else {
25793   {
25794     DI opval = tmp_tmp;
25795     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 2), opval);
25796     written |= (1 << 19);
25797     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25798   }
25799 }
25800 }
25801 }
25802 {
25803   DI tmp_tmp;
25804   tmp_tmp = ADDDI (GET_H_ACC40S (ADDSI (FLD (f_ACC40Sk), 3)), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi)));
25805 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25806 {
25807   {
25808     DI opval = MAKEDI (127, 0xffffffff);
25809     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 3), opval);
25810     written |= (1 << 20);
25811     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25812   }
25813 frvbf_media_overflow (current_cpu, 1);
25814 }
25815 } else {
25816 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25817 {
25818   {
25819     DI opval = MAKEDI (0xffffff80, 0);
25820     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 3), opval);
25821     written |= (1 << 20);
25822     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25823   }
25824 frvbf_media_overflow (current_cpu, 1);
25825 }
25826 } else {
25827   {
25828     DI opval = tmp_tmp;
25829     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 3), opval);
25830     written |= (1 << 20);
25831     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25832   }
25833 }
25834 }
25835 }
25836 {
25837   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25838   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25839   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25840   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25841 }
25842 {
25843   DI tmp_tmp;
25844   tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Sk)), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo)));
25845 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25846 {
25847   {
25848     DI opval = MAKEDI (127, 0xffffffff);
25849     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25850     written |= (1 << 17);
25851     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25852   }
25853 frvbf_media_overflow (current_cpu, 8);
25854 }
25855 } else {
25856 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25857 {
25858   {
25859     DI opval = MAKEDI (0xffffff80, 0);
25860     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25861     written |= (1 << 17);
25862     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25863   }
25864 frvbf_media_overflow (current_cpu, 8);
25865 }
25866 } else {
25867   {
25868     DI opval = tmp_tmp;
25869     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25870     written |= (1 << 17);
25871     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25872   }
25873 }
25874 }
25875 }
25876 {
25877   DI tmp_tmp;
25878   tmp_tmp = ADDDI (GET_H_ACC40S (ADDSI (FLD (f_ACC40Sk), 1)), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi)));
25879 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25880 {
25881   {
25882     DI opval = MAKEDI (127, 0xffffffff);
25883     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
25884     written |= (1 << 18);
25885     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25886   }
25887 frvbf_media_overflow (current_cpu, 4);
25888 }
25889 } else {
25890 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25891 {
25892   {
25893     DI opval = MAKEDI (0xffffff80, 0);
25894     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
25895     written |= (1 << 18);
25896     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25897   }
25898 frvbf_media_overflow (current_cpu, 4);
25899 }
25900 } else {
25901   {
25902     DI opval = tmp_tmp;
25903     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
25904     written |= (1 << 18);
25905     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25906   }
25907 }
25908 }
25909 }
25910 }
25911 }
25912 }
25913 }
25914
25915   abuf->written = written;
25916   return vpc;
25917 #undef FLD
25918 }
25919
25920 /* mqmacxhs: mqmacxhs$pack $FRintieven,$FRintjeven,$ACC40Sk */
25921
25922 static SEM_PC
25923 SEM_FN_NAME (frvbf,mqmacxhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
25924 {
25925 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
25926   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
25927   int UNUSED written = 0;
25928   IADDR UNUSED pc = abuf->addr;
25929   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
25930
25931 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
25932 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
25933 frvbf_media_acc_not_aligned (current_cpu);
25934 } else {
25935 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
25936 frvbf_media_register_not_aligned (current_cpu);
25937 } else {
25938 {
25939   HI tmp_argihi;
25940   HI tmp_argilo;
25941   HI tmp_argjhi;
25942   HI tmp_argjlo;
25943 {
25944   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25945   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25946   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25947   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25948 }
25949 {
25950   DI tmp_tmp;
25951   tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Sk)), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo)));
25952 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25953 {
25954   {
25955     DI opval = MAKEDI (127, 0xffffffff);
25956     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25957     written |= (1 << 17);
25958     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25959   }
25960 frvbf_media_overflow (current_cpu, 8);
25961 }
25962 } else {
25963 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25964 {
25965   {
25966     DI opval = MAKEDI (0xffffff80, 0);
25967     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25968     written |= (1 << 17);
25969     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25970   }
25971 frvbf_media_overflow (current_cpu, 8);
25972 }
25973 } else {
25974   {
25975     DI opval = tmp_tmp;
25976     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25977     written |= (1 << 17);
25978     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25979   }
25980 }
25981 }
25982 }
25983 {
25984   DI tmp_tmp;
25985   tmp_tmp = ADDDI (GET_H_ACC40S (ADDSI (FLD (f_ACC40Sk), 1)), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi)));
25986 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25987 {
25988   {
25989     DI opval = MAKEDI (127, 0xffffffff);
25990     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
25991     written |= (1 << 18);
25992     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25993   }
25994 frvbf_media_overflow (current_cpu, 4);
25995 }
25996 } else {
25997 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25998 {
25999   {
26000     DI opval = MAKEDI (0xffffff80, 0);
26001     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
26002     written |= (1 << 18);
26003     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26004   }
26005 frvbf_media_overflow (current_cpu, 4);
26006 }
26007 } else {
26008   {
26009     DI opval = tmp_tmp;
26010     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
26011     written |= (1 << 18);
26012     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26013   }
26014 }
26015 }
26016 }
26017 {
26018   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26019   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26020   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26021   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26022 }
26023 {
26024   DI tmp_tmp;
26025   tmp_tmp = ADDDI (GET_H_ACC40S (ADDSI (FLD (f_ACC40Sk), 2)), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo)));
26026 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
26027 {
26028   {
26029     DI opval = MAKEDI (127, 0xffffffff);
26030     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 2), opval);
26031     written |= (1 << 19);
26032     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26033   }
26034 frvbf_media_overflow (current_cpu, 2);
26035 }
26036 } else {
26037 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
26038 {
26039   {
26040     DI opval = MAKEDI (0xffffff80, 0);
26041     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 2), opval);
26042     written |= (1 << 19);
26043     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26044   }
26045 frvbf_media_overflow (current_cpu, 2);
26046 }
26047 } else {
26048   {
26049     DI opval = tmp_tmp;
26050     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 2), opval);
26051     written |= (1 << 19);
26052     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26053   }
26054 }
26055 }
26056 }
26057 {
26058   DI tmp_tmp;
26059   tmp_tmp = ADDDI (GET_H_ACC40S (ADDSI (FLD (f_ACC40Sk), 3)), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi)));
26060 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
26061 {
26062   {
26063     DI opval = MAKEDI (127, 0xffffffff);
26064     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 3), opval);
26065     written |= (1 << 20);
26066     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26067   }
26068 frvbf_media_overflow (current_cpu, 1);
26069 }
26070 } else {
26071 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
26072 {
26073   {
26074     DI opval = MAKEDI (0xffffff80, 0);
26075     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 3), opval);
26076     written |= (1 << 20);
26077     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26078   }
26079 frvbf_media_overflow (current_cpu, 1);
26080 }
26081 } else {
26082   {
26083     DI opval = tmp_tmp;
26084     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 3), opval);
26085     written |= (1 << 20);
26086     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26087   }
26088 }
26089 }
26090 }
26091 }
26092 }
26093 }
26094 }
26095
26096   abuf->written = written;
26097   return vpc;
26098 #undef FLD
26099 }
26100
26101 /* mcpxrs: mcpxrs$pack $FRinti,$FRintj,$ACC40Sk */
26102
26103 static SEM_PC
26104 SEM_FN_NAME (frvbf,mcpxrs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26105 {
26106 #define FLD(f) abuf->fields.sfmt_cmmachs.f
26107   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26108   int UNUSED written = 0;
26109   IADDR UNUSED pc = abuf->addr;
26110   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26111
26112 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
26113 {
26114   HI tmp_argihi;
26115   HI tmp_argilo;
26116   HI tmp_argjhi;
26117   HI tmp_argjlo;
26118 {
26119   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26120   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26121   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26122   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26123 }
26124 {
26125   DI tmp_tmp1;
26126   DI tmp_tmp2;
26127   tmp_tmp1 = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
26128   tmp_tmp2 = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
26129   tmp_tmp1 = SUBDI (tmp_tmp1, tmp_tmp2);
26130 if (GTDI (tmp_tmp1, MAKEDI (127, 0xffffffff))) {
26131 {
26132   {
26133     DI opval = MAKEDI (127, 0xffffffff);
26134     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26135     written |= (1 << 9);
26136     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26137   }
26138 frvbf_media_overflow (current_cpu, 8);
26139 }
26140 } else {
26141 if (LTDI (tmp_tmp1, MAKEDI (0xffffff80, 0))) {
26142 {
26143   {
26144     DI opval = MAKEDI (0xffffff80, 0);
26145     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26146     written |= (1 << 9);
26147     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26148   }
26149 frvbf_media_overflow (current_cpu, 8);
26150 }
26151 } else {
26152   {
26153     DI opval = tmp_tmp1;
26154     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26155     written |= (1 << 9);
26156     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26157   }
26158 }
26159 }
26160 }
26161 }
26162 }
26163
26164   abuf->written = written;
26165   return vpc;
26166 #undef FLD
26167 }
26168
26169 /* mcpxru: mcpxru$pack $FRinti,$FRintj,$ACC40Sk */
26170
26171 static SEM_PC
26172 SEM_FN_NAME (frvbf,mcpxru) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26173 {
26174 #define FLD(f) abuf->fields.sfmt_cmmachs.f
26175   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26176   int UNUSED written = 0;
26177   IADDR UNUSED pc = abuf->addr;
26178   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26179
26180 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
26181 {
26182   UHI tmp_argihi;
26183   UHI tmp_argilo;
26184   UHI tmp_argjhi;
26185   UHI tmp_argjlo;
26186 {
26187   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26188   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26189   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26190   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26191 }
26192 {
26193   DI tmp_tmp1;
26194   DI tmp_tmp2;
26195   tmp_tmp1 = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
26196   tmp_tmp2 = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
26197   tmp_tmp1 = SUBDI (tmp_tmp1, tmp_tmp2);
26198 if (GTDI (tmp_tmp1, MAKEDI (255, 0xffffffff))) {
26199 {
26200   {
26201     DI opval = MAKEDI (255, 0xffffffff);
26202     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26203     written |= (1 << 9);
26204     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26205   }
26206 frvbf_media_overflow (current_cpu, 8);
26207 }
26208 } else {
26209 if (LTDI (tmp_tmp1, MAKEDI (0, 0))) {
26210 {
26211   {
26212     DI opval = MAKEDI (0, 0);
26213     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26214     written |= (1 << 9);
26215     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26216   }
26217 frvbf_media_overflow (current_cpu, 8);
26218 }
26219 } else {
26220   {
26221     DI opval = tmp_tmp1;
26222     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26223     written |= (1 << 9);
26224     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26225   }
26226 }
26227 }
26228 }
26229 }
26230 }
26231
26232   abuf->written = written;
26233   return vpc;
26234 #undef FLD
26235 }
26236
26237 /* mcpxis: mcpxis$pack $FRinti,$FRintj,$ACC40Sk */
26238
26239 static SEM_PC
26240 SEM_FN_NAME (frvbf,mcpxis) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26241 {
26242 #define FLD(f) abuf->fields.sfmt_cmmachs.f
26243   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26244   int UNUSED written = 0;
26245   IADDR UNUSED pc = abuf->addr;
26246   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26247
26248 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
26249 {
26250   HI tmp_argihi;
26251   HI tmp_argilo;
26252   HI tmp_argjhi;
26253   HI tmp_argjlo;
26254 {
26255   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26256   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26257   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26258   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26259 }
26260 {
26261   DI tmp_tmp1;
26262   DI tmp_tmp2;
26263   tmp_tmp1 = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo));
26264   tmp_tmp2 = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi));
26265   tmp_tmp1 = ADDDI (tmp_tmp1, tmp_tmp2);
26266 if (GTDI (tmp_tmp1, MAKEDI (127, 0xffffffff))) {
26267 {
26268   {
26269     DI opval = MAKEDI (127, 0xffffffff);
26270     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26271     written |= (1 << 9);
26272     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26273   }
26274 frvbf_media_overflow (current_cpu, 8);
26275 }
26276 } else {
26277 if (LTDI (tmp_tmp1, MAKEDI (0xffffff80, 0))) {
26278 {
26279   {
26280     DI opval = MAKEDI (0xffffff80, 0);
26281     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26282     written |= (1 << 9);
26283     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26284   }
26285 frvbf_media_overflow (current_cpu, 8);
26286 }
26287 } else {
26288   {
26289     DI opval = tmp_tmp1;
26290     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26291     written |= (1 << 9);
26292     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26293   }
26294 }
26295 }
26296 }
26297 }
26298 }
26299
26300   abuf->written = written;
26301   return vpc;
26302 #undef FLD
26303 }
26304
26305 /* mcpxiu: mcpxiu$pack $FRinti,$FRintj,$ACC40Sk */
26306
26307 static SEM_PC
26308 SEM_FN_NAME (frvbf,mcpxiu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26309 {
26310 #define FLD(f) abuf->fields.sfmt_cmmachs.f
26311   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26312   int UNUSED written = 0;
26313   IADDR UNUSED pc = abuf->addr;
26314   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26315
26316 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
26317 {
26318   UHI tmp_argihi;
26319   UHI tmp_argilo;
26320   UHI tmp_argjhi;
26321   UHI tmp_argjlo;
26322 {
26323   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26324   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26325   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26326   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26327 }
26328 {
26329   DI tmp_tmp1;
26330   DI tmp_tmp2;
26331   tmp_tmp1 = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjlo));
26332   tmp_tmp2 = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjhi));
26333   tmp_tmp1 = ADDDI (tmp_tmp1, tmp_tmp2);
26334 if (GTDI (tmp_tmp1, MAKEDI (255, 0xffffffff))) {
26335 {
26336   {
26337     DI opval = MAKEDI (255, 0xffffffff);
26338     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26339     written |= (1 << 9);
26340     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26341   }
26342 frvbf_media_overflow (current_cpu, 8);
26343 }
26344 } else {
26345 if (LTDI (tmp_tmp1, MAKEDI (0, 0))) {
26346 {
26347   {
26348     DI opval = MAKEDI (0, 0);
26349     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26350     written |= (1 << 9);
26351     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26352   }
26353 frvbf_media_overflow (current_cpu, 8);
26354 }
26355 } else {
26356   {
26357     DI opval = tmp_tmp1;
26358     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26359     written |= (1 << 9);
26360     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26361   }
26362 }
26363 }
26364 }
26365 }
26366 }
26367
26368   abuf->written = written;
26369   return vpc;
26370 #undef FLD
26371 }
26372
26373 /* cmcpxrs: cmcpxrs$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
26374
26375 static SEM_PC
26376 SEM_FN_NAME (frvbf,cmcpxrs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26377 {
26378 #define FLD(f) abuf->fields.sfmt_cmmachs.f
26379   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26380   int UNUSED written = 0;
26381   IADDR UNUSED pc = abuf->addr;
26382   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26383
26384 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
26385 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
26386 {
26387   HI tmp_argihi;
26388   HI tmp_argilo;
26389   HI tmp_argjhi;
26390   HI tmp_argjlo;
26391 {
26392   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26393   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26394   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26395   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26396 }
26397 {
26398   DI tmp_tmp1;
26399   DI tmp_tmp2;
26400   tmp_tmp1 = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
26401   tmp_tmp2 = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
26402   tmp_tmp1 = SUBDI (tmp_tmp1, tmp_tmp2);
26403 if (GTDI (tmp_tmp1, MAKEDI (127, 0xffffffff))) {
26404 {
26405   {
26406     DI opval = MAKEDI (127, 0xffffffff);
26407     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26408     written |= (1 << 11);
26409     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26410   }
26411 frvbf_media_overflow (current_cpu, 8);
26412 }
26413 } else {
26414 if (LTDI (tmp_tmp1, MAKEDI (0xffffff80, 0))) {
26415 {
26416   {
26417     DI opval = MAKEDI (0xffffff80, 0);
26418     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26419     written |= (1 << 11);
26420     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26421   }
26422 frvbf_media_overflow (current_cpu, 8);
26423 }
26424 } else {
26425   {
26426     DI opval = tmp_tmp1;
26427     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26428     written |= (1 << 11);
26429     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26430   }
26431 }
26432 }
26433 }
26434 }
26435 }
26436 }
26437
26438   abuf->written = written;
26439   return vpc;
26440 #undef FLD
26441 }
26442
26443 /* cmcpxru: cmcpxru$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
26444
26445 static SEM_PC
26446 SEM_FN_NAME (frvbf,cmcpxru) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26447 {
26448 #define FLD(f) abuf->fields.sfmt_cmmachs.f
26449   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26450   int UNUSED written = 0;
26451   IADDR UNUSED pc = abuf->addr;
26452   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26453
26454 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
26455 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
26456 {
26457   UHI tmp_argihi;
26458   UHI tmp_argilo;
26459   UHI tmp_argjhi;
26460   UHI tmp_argjlo;
26461 {
26462   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26463   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26464   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26465   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26466 }
26467 {
26468   DI tmp_tmp1;
26469   DI tmp_tmp2;
26470   tmp_tmp1 = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
26471   tmp_tmp2 = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
26472   tmp_tmp1 = SUBDI (tmp_tmp1, tmp_tmp2);
26473 if (GTDI (tmp_tmp1, MAKEDI (255, 0xffffffff))) {
26474 {
26475   {
26476     DI opval = MAKEDI (255, 0xffffffff);
26477     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26478     written |= (1 << 11);
26479     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26480   }
26481 frvbf_media_overflow (current_cpu, 8);
26482 }
26483 } else {
26484 if (LTDI (tmp_tmp1, MAKEDI (0, 0))) {
26485 {
26486   {
26487     DI opval = MAKEDI (0, 0);
26488     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26489     written |= (1 << 11);
26490     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26491   }
26492 frvbf_media_overflow (current_cpu, 8);
26493 }
26494 } else {
26495   {
26496     DI opval = tmp_tmp1;
26497     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26498     written |= (1 << 11);
26499     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26500   }
26501 }
26502 }
26503 }
26504 }
26505 }
26506 }
26507
26508   abuf->written = written;
26509   return vpc;
26510 #undef FLD
26511 }
26512
26513 /* cmcpxis: cmcpxis$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
26514
26515 static SEM_PC
26516 SEM_FN_NAME (frvbf,cmcpxis) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26517 {
26518 #define FLD(f) abuf->fields.sfmt_cmmachs.f
26519   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26520   int UNUSED written = 0;
26521   IADDR UNUSED pc = abuf->addr;
26522   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26523
26524 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
26525 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
26526 {
26527   HI tmp_argihi;
26528   HI tmp_argilo;
26529   HI tmp_argjhi;
26530   HI tmp_argjlo;
26531 {
26532   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26533   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26534   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26535   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26536 }
26537 {
26538   DI tmp_tmp1;
26539   DI tmp_tmp2;
26540   tmp_tmp1 = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo));
26541   tmp_tmp2 = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi));
26542   tmp_tmp1 = ADDDI (tmp_tmp1, tmp_tmp2);
26543 if (GTDI (tmp_tmp1, MAKEDI (127, 0xffffffff))) {
26544 {
26545   {
26546     DI opval = MAKEDI (127, 0xffffffff);
26547     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26548     written |= (1 << 11);
26549     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26550   }
26551 frvbf_media_overflow (current_cpu, 8);
26552 }
26553 } else {
26554 if (LTDI (tmp_tmp1, MAKEDI (0xffffff80, 0))) {
26555 {
26556   {
26557     DI opval = MAKEDI (0xffffff80, 0);
26558     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26559     written |= (1 << 11);
26560     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26561   }
26562 frvbf_media_overflow (current_cpu, 8);
26563 }
26564 } else {
26565   {
26566     DI opval = tmp_tmp1;
26567     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26568     written |= (1 << 11);
26569     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26570   }
26571 }
26572 }
26573 }
26574 }
26575 }
26576 }
26577
26578   abuf->written = written;
26579   return vpc;
26580 #undef FLD
26581 }
26582
26583 /* cmcpxiu: cmcpxiu$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
26584
26585 static SEM_PC
26586 SEM_FN_NAME (frvbf,cmcpxiu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26587 {
26588 #define FLD(f) abuf->fields.sfmt_cmmachs.f
26589   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26590   int UNUSED written = 0;
26591   IADDR UNUSED pc = abuf->addr;
26592   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26593
26594 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
26595 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
26596 {
26597   UHI tmp_argihi;
26598   UHI tmp_argilo;
26599   UHI tmp_argjhi;
26600   UHI tmp_argjlo;
26601 {
26602   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26603   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26604   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26605   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26606 }
26607 {
26608   DI tmp_tmp1;
26609   DI tmp_tmp2;
26610   tmp_tmp1 = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjlo));
26611   tmp_tmp2 = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjhi));
26612   tmp_tmp1 = ADDDI (tmp_tmp1, tmp_tmp2);
26613 if (GTDI (tmp_tmp1, MAKEDI (255, 0xffffffff))) {
26614 {
26615   {
26616     DI opval = MAKEDI (255, 0xffffffff);
26617     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26618     written |= (1 << 11);
26619     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26620   }
26621 frvbf_media_overflow (current_cpu, 8);
26622 }
26623 } else {
26624 if (LTDI (tmp_tmp1, MAKEDI (0, 0))) {
26625 {
26626   {
26627     DI opval = MAKEDI (0, 0);
26628     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26629     written |= (1 << 11);
26630     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26631   }
26632 frvbf_media_overflow (current_cpu, 8);
26633 }
26634 } else {
26635   {
26636     DI opval = tmp_tmp1;
26637     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26638     written |= (1 << 11);
26639     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26640   }
26641 }
26642 }
26643 }
26644 }
26645 }
26646 }
26647
26648   abuf->written = written;
26649   return vpc;
26650 #undef FLD
26651 }
26652
26653 /* mqcpxrs: mqcpxrs$pack $FRintieven,$FRintjeven,$ACC40Sk */
26654
26655 static SEM_PC
26656 SEM_FN_NAME (frvbf,mqcpxrs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26657 {
26658 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
26659   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26660   int UNUSED written = 0;
26661   IADDR UNUSED pc = abuf->addr;
26662   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26663
26664 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
26665 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
26666 frvbf_media_acc_not_aligned (current_cpu);
26667 } else {
26668 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
26669 frvbf_media_register_not_aligned (current_cpu);
26670 } else {
26671 {
26672   HI tmp_argihi;
26673   HI tmp_argilo;
26674   HI tmp_argjhi;
26675   HI tmp_argjlo;
26676 {
26677   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26678   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26679   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26680   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26681 }
26682 {
26683   DI tmp_tmp1;
26684   DI tmp_tmp2;
26685   tmp_tmp1 = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
26686   tmp_tmp2 = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
26687   tmp_tmp1 = SUBDI (tmp_tmp1, tmp_tmp2);
26688 if (GTDI (tmp_tmp1, MAKEDI (127, 0xffffffff))) {
26689 {
26690   {
26691     DI opval = MAKEDI (127, 0xffffffff);
26692     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26693     written |= (1 << 13);
26694     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26695   }
26696 frvbf_media_overflow (current_cpu, 8);
26697 }
26698 } else {
26699 if (LTDI (tmp_tmp1, MAKEDI (0xffffff80, 0))) {
26700 {
26701   {
26702     DI opval = MAKEDI (0xffffff80, 0);
26703     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26704     written |= (1 << 13);
26705     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26706   }
26707 frvbf_media_overflow (current_cpu, 8);
26708 }
26709 } else {
26710   {
26711     DI opval = tmp_tmp1;
26712     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26713     written |= (1 << 13);
26714     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26715   }
26716 }
26717 }
26718 }
26719 {
26720   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26721   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26722   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26723   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26724 }
26725 {
26726   DI tmp_tmp1;
26727   DI tmp_tmp2;
26728   tmp_tmp1 = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
26729   tmp_tmp2 = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
26730   tmp_tmp1 = SUBDI (tmp_tmp1, tmp_tmp2);
26731 if (GTDI (tmp_tmp1, MAKEDI (127, 0xffffffff))) {
26732 {
26733   {
26734     DI opval = MAKEDI (127, 0xffffffff);
26735     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
26736     written |= (1 << 14);
26737     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26738   }
26739 frvbf_media_overflow (current_cpu, 4);
26740 }
26741 } else {
26742 if (LTDI (tmp_tmp1, MAKEDI (0xffffff80, 0))) {
26743 {
26744   {
26745     DI opval = MAKEDI (0xffffff80, 0);
26746     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
26747     written |= (1 << 14);
26748     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26749   }
26750 frvbf_media_overflow (current_cpu, 4);
26751 }
26752 } else {
26753   {
26754     DI opval = tmp_tmp1;
26755     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
26756     written |= (1 << 14);
26757     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26758   }
26759 }
26760 }
26761 }
26762 }
26763 }
26764 }
26765 }
26766
26767   abuf->written = written;
26768   return vpc;
26769 #undef FLD
26770 }
26771
26772 /* mqcpxru: mqcpxru$pack $FRintieven,$FRintjeven,$ACC40Sk */
26773
26774 static SEM_PC
26775 SEM_FN_NAME (frvbf,mqcpxru) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26776 {
26777 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
26778   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26779   int UNUSED written = 0;
26780   IADDR UNUSED pc = abuf->addr;
26781   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26782
26783 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
26784 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
26785 frvbf_media_acc_not_aligned (current_cpu);
26786 } else {
26787 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
26788 frvbf_media_register_not_aligned (current_cpu);
26789 } else {
26790 {
26791   UHI tmp_argihi;
26792   UHI tmp_argilo;
26793   UHI tmp_argjhi;
26794   UHI tmp_argjlo;
26795 {
26796   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26797   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26798   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26799   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26800 }
26801 {
26802   DI tmp_tmp1;
26803   DI tmp_tmp2;
26804   tmp_tmp1 = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
26805   tmp_tmp2 = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
26806   tmp_tmp1 = SUBDI (tmp_tmp1, tmp_tmp2);
26807 if (GTDI (tmp_tmp1, MAKEDI (255, 0xffffffff))) {
26808 {
26809   {
26810     DI opval = MAKEDI (255, 0xffffffff);
26811     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26812     written |= (1 << 13);
26813     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26814   }
26815 frvbf_media_overflow (current_cpu, 8);
26816 }
26817 } else {
26818 if (LTDI (tmp_tmp1, MAKEDI (0, 0))) {
26819 {
26820   {
26821     DI opval = MAKEDI (0, 0);
26822     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26823     written |= (1 << 13);
26824     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26825   }
26826 frvbf_media_overflow (current_cpu, 8);
26827 }
26828 } else {
26829   {
26830     DI opval = tmp_tmp1;
26831     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26832     written |= (1 << 13);
26833     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26834   }
26835 }
26836 }
26837 }
26838 {
26839   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26840   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26841   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26842   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26843 }
26844 {
26845   DI tmp_tmp1;
26846   DI tmp_tmp2;
26847   tmp_tmp1 = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
26848   tmp_tmp2 = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
26849   tmp_tmp1 = SUBDI (tmp_tmp1, tmp_tmp2);
26850 if (GTDI (tmp_tmp1, MAKEDI (255, 0xffffffff))) {
26851 {
26852   {
26853     DI opval = MAKEDI (255, 0xffffffff);
26854     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
26855     written |= (1 << 14);
26856     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26857   }
26858 frvbf_media_overflow (current_cpu, 4);
26859 }
26860 } else {
26861 if (LTDI (tmp_tmp1, MAKEDI (0, 0))) {
26862 {
26863   {
26864     DI opval = MAKEDI (0, 0);
26865     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
26866     written |= (1 << 14);
26867     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26868   }
26869 frvbf_media_overflow (current_cpu, 4);
26870 }
26871 } else {
26872   {
26873     DI opval = tmp_tmp1;
26874     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
26875     written |= (1 << 14);
26876     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26877   }
26878 }
26879 }
26880 }
26881 }
26882 }
26883 }
26884 }
26885
26886   abuf->written = written;
26887   return vpc;
26888 #undef FLD
26889 }
26890
26891 /* mqcpxis: mqcpxis$pack $FRintieven,$FRintjeven,$ACC40Sk */
26892
26893 static SEM_PC
26894 SEM_FN_NAME (frvbf,mqcpxis) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26895 {
26896 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
26897   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26898   int UNUSED written = 0;
26899   IADDR UNUSED pc = abuf->addr;
26900   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26901
26902 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
26903 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
26904 frvbf_media_acc_not_aligned (current_cpu);
26905 } else {
26906 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
26907 frvbf_media_register_not_aligned (current_cpu);
26908 } else {
26909 {
26910   HI tmp_argihi;
26911   HI tmp_argilo;
26912   HI tmp_argjhi;
26913   HI tmp_argjlo;
26914 {
26915   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26916   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26917   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26918   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26919 }
26920 {
26921   DI tmp_tmp1;
26922   DI tmp_tmp2;
26923   tmp_tmp1 = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo));
26924   tmp_tmp2 = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi));
26925   tmp_tmp1 = ADDDI (tmp_tmp1, tmp_tmp2);
26926 if (GTDI (tmp_tmp1, MAKEDI (127, 0xffffffff))) {
26927 {
26928   {
26929     DI opval = MAKEDI (127, 0xffffffff);
26930     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26931     written |= (1 << 13);
26932     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26933   }
26934 frvbf_media_overflow (current_cpu, 8);
26935 }
26936 } else {
26937 if (LTDI (tmp_tmp1, MAKEDI (0xffffff80, 0))) {
26938 {
26939   {
26940     DI opval = MAKEDI (0xffffff80, 0);
26941     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26942     written |= (1 << 13);
26943     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26944   }
26945 frvbf_media_overflow (current_cpu, 8);
26946 }
26947 } else {
26948   {
26949     DI opval = tmp_tmp1;
26950     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26951     written |= (1 << 13);
26952     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26953   }
26954 }
26955 }
26956 }
26957 {
26958   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26959   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26960   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26961   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26962 }
26963 {
26964   DI tmp_tmp1;
26965   DI tmp_tmp2;
26966   tmp_tmp1 = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo));
26967   tmp_tmp2 = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi));
26968   tmp_tmp1 = ADDDI (tmp_tmp1, tmp_tmp2);
26969 if (GTDI (tmp_tmp1, MAKEDI (127, 0xffffffff))) {
26970 {
26971   {
26972     DI opval = MAKEDI (127, 0xffffffff);
26973     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
26974     written |= (1 << 14);
26975     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26976   }
26977 frvbf_media_overflow (current_cpu, 4);
26978 }
26979 } else {
26980 if (LTDI (tmp_tmp1, MAKEDI (0xffffff80, 0))) {
26981 {
26982   {
26983     DI opval = MAKEDI (0xffffff80, 0);
26984     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
26985     written |= (1 << 14);
26986     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26987   }
26988 frvbf_media_overflow (current_cpu, 4);
26989 }
26990 } else {
26991   {
26992     DI opval = tmp_tmp1;
26993     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
26994     written |= (1 << 14);
26995     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26996   }
26997 }
26998 }
26999 }
27000 }
27001 }
27002 }
27003 }
27004
27005   abuf->written = written;
27006   return vpc;
27007 #undef FLD
27008 }
27009
27010 /* mqcpxiu: mqcpxiu$pack $FRintieven,$FRintjeven,$ACC40Sk */
27011
27012 static SEM_PC
27013 SEM_FN_NAME (frvbf,mqcpxiu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27014 {
27015 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
27016   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27017   int UNUSED written = 0;
27018   IADDR UNUSED pc = abuf->addr;
27019   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27020
27021 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
27022 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
27023 frvbf_media_acc_not_aligned (current_cpu);
27024 } else {
27025 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
27026 frvbf_media_register_not_aligned (current_cpu);
27027 } else {
27028 {
27029   UHI tmp_argihi;
27030   UHI tmp_argilo;
27031   UHI tmp_argjhi;
27032   UHI tmp_argjlo;
27033 {
27034   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
27035   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
27036   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
27037   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
27038 }
27039 {
27040   DI tmp_tmp1;
27041   DI tmp_tmp2;
27042   tmp_tmp1 = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjlo));
27043   tmp_tmp2 = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjhi));
27044   tmp_tmp1 = ADDDI (tmp_tmp1, tmp_tmp2);
27045 if (GTDI (tmp_tmp1, MAKEDI (255, 0xffffffff))) {
27046 {
27047   {
27048     DI opval = MAKEDI (255, 0xffffffff);
27049     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
27050     written |= (1 << 13);
27051     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
27052   }
27053 frvbf_media_overflow (current_cpu, 8);
27054 }
27055 } else {
27056 if (LTDI (tmp_tmp1, MAKEDI (0, 0))) {
27057 {
27058   {
27059     DI opval = MAKEDI (0, 0);
27060     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
27061     written |= (1 << 13);
27062     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
27063   }
27064 frvbf_media_overflow (current_cpu, 8);
27065 }
27066 } else {
27067   {
27068     DI opval = tmp_tmp1;
27069     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
27070     written |= (1 << 13);
27071     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
27072   }
27073 }
27074 }
27075 }
27076 {
27077   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
27078   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
27079   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
27080   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
27081 }
27082 {
27083   DI tmp_tmp1;
27084   DI tmp_tmp2;
27085   tmp_tmp1 = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjlo));
27086   tmp_tmp2 = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjhi));
27087   tmp_tmp1 = ADDDI (tmp_tmp1, tmp_tmp2);
27088 if (GTDI (tmp_tmp1, MAKEDI (255, 0xffffffff))) {
27089 {
27090   {
27091     DI opval = MAKEDI (255, 0xffffffff);
27092     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
27093     written |= (1 << 14);
27094     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
27095   }
27096 frvbf_media_overflow (current_cpu, 4);
27097 }
27098 } else {
27099 if (LTDI (tmp_tmp1, MAKEDI (0, 0))) {
27100 {
27101   {
27102     DI opval = MAKEDI (0, 0);
27103     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
27104     written |= (1 << 14);
27105     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
27106   }
27107 frvbf_media_overflow (current_cpu, 4);
27108 }
27109 } else {
27110   {
27111     DI opval = tmp_tmp1;
27112     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
27113     written |= (1 << 14);
27114     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
27115   }
27116 }
27117 }
27118 }
27119 }
27120 }
27121 }
27122 }
27123
27124   abuf->written = written;
27125   return vpc;
27126 #undef FLD
27127 }
27128
27129 /* mexpdhw: mexpdhw$pack $FRinti,$u6,$FRintk */
27130
27131 static SEM_PC
27132 SEM_FN_NAME (frvbf,mexpdhw) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27133 {
27134 #define FLD(f) abuf->fields.sfmt_cmexpdhw.f
27135   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27136   int UNUSED written = 0;
27137   IADDR UNUSED pc = abuf->addr;
27138   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27139
27140 {
27141   UHI tmp_tmp;
27142 if (ANDSI (FLD (f_u6), 1)) {
27143   tmp_tmp = GET_H_FR_LO (ADDSI (FLD (f_FRi), 0));
27144 } else {
27145   tmp_tmp = GET_H_FR_HI (ADDSI (FLD (f_FRi), 0));
27146 }
27147   {
27148     UHI opval = tmp_tmp;
27149     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
27150     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27151   }
27152   {
27153     UHI opval = tmp_tmp;
27154     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
27155     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27156   }
27157 }
27158
27159   return vpc;
27160 #undef FLD
27161 }
27162
27163 /* cmexpdhw: cmexpdhw$pack $FRinti,$u6,$FRintk,$CCi,$cond */
27164
27165 static SEM_PC
27166 SEM_FN_NAME (frvbf,cmexpdhw) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27167 {
27168 #define FLD(f) abuf->fields.sfmt_cmexpdhw.f
27169   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27170   int UNUSED written = 0;
27171   IADDR UNUSED pc = abuf->addr;
27172   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27173
27174 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
27175 {
27176   UHI tmp_tmp;
27177 if (ANDSI (FLD (f_u6), 1)) {
27178   tmp_tmp = GET_H_FR_LO (ADDSI (FLD (f_FRi), 0));
27179 } else {
27180   tmp_tmp = GET_H_FR_HI (ADDSI (FLD (f_FRi), 0));
27181 }
27182   {
27183     UHI opval = tmp_tmp;
27184     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
27185     written |= (1 << 7);
27186     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27187   }
27188   {
27189     UHI opval = tmp_tmp;
27190     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
27191     written |= (1 << 8);
27192     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27193   }
27194 }
27195 }
27196
27197   abuf->written = written;
27198   return vpc;
27199 #undef FLD
27200 }
27201
27202 /* mexpdhd: mexpdhd$pack $FRinti,$u6,$FRintkeven */
27203
27204 static SEM_PC
27205 SEM_FN_NAME (frvbf,mexpdhd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27206 {
27207 #define FLD(f) abuf->fields.sfmt_cmexpdhd.f
27208   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27209   int UNUSED written = 0;
27210   IADDR UNUSED pc = abuf->addr;
27211   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27212
27213 if (ANDSI (FLD (f_FRk), SUBSI (2, 1))) {
27214 frvbf_media_register_not_aligned (current_cpu);
27215 } else {
27216 {
27217   UHI tmp_tmp;
27218   {
27219     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27220     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27221     written |= (1 << 6);
27222     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27223   }
27224 if (ANDSI (FLD (f_u6), 1)) {
27225   tmp_tmp = GET_H_FR_LO (ADDSI (FLD (f_FRi), 0));
27226 } else {
27227   tmp_tmp = GET_H_FR_HI (ADDSI (FLD (f_FRi), 0));
27228 }
27229   {
27230     UHI opval = tmp_tmp;
27231     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
27232     written |= (1 << 7);
27233     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27234   }
27235   {
27236     UHI opval = tmp_tmp;
27237     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
27238     written |= (1 << 9);
27239     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27240   }
27241   {
27242     UHI opval = tmp_tmp;
27243     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 1), opval);
27244     written |= (1 << 8);
27245     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27246   }
27247   {
27248     UHI opval = tmp_tmp;
27249     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 1), opval);
27250     written |= (1 << 10);
27251     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27252   }
27253 }
27254 }
27255
27256   abuf->written = written;
27257   return vpc;
27258 #undef FLD
27259 }
27260
27261 /* cmexpdhd: cmexpdhd$pack $FRinti,$u6,$FRintkeven,$CCi,$cond */
27262
27263 static SEM_PC
27264 SEM_FN_NAME (frvbf,cmexpdhd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27265 {
27266 #define FLD(f) abuf->fields.sfmt_cmexpdhd.f
27267   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27268   int UNUSED written = 0;
27269   IADDR UNUSED pc = abuf->addr;
27270   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27271
27272 if (ANDSI (FLD (f_FRk), SUBSI (2, 1))) {
27273 frvbf_media_register_not_aligned (current_cpu);
27274 } else {
27275 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
27276 {
27277   UHI tmp_tmp;
27278   {
27279     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27280     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27281     written |= (1 << 8);
27282     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27283   }
27284 if (ANDSI (FLD (f_u6), 1)) {
27285   tmp_tmp = GET_H_FR_LO (ADDSI (FLD (f_FRi), 0));
27286 } else {
27287   tmp_tmp = GET_H_FR_HI (ADDSI (FLD (f_FRi), 0));
27288 }
27289   {
27290     UHI opval = tmp_tmp;
27291     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
27292     written |= (1 << 9);
27293     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27294   }
27295   {
27296     UHI opval = tmp_tmp;
27297     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
27298     written |= (1 << 11);
27299     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27300   }
27301   {
27302     UHI opval = tmp_tmp;
27303     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 1), opval);
27304     written |= (1 << 10);
27305     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27306   }
27307   {
27308     UHI opval = tmp_tmp;
27309     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 1), opval);
27310     written |= (1 << 12);
27311     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27312   }
27313 }
27314 }
27315 }
27316
27317   abuf->written = written;
27318   return vpc;
27319 #undef FLD
27320 }
27321
27322 /* mpackh: mpackh$pack $FRinti,$FRintj,$FRintk */
27323
27324 static SEM_PC
27325 SEM_FN_NAME (frvbf,mpackh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27326 {
27327 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
27328   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27329   int UNUSED written = 0;
27330   IADDR UNUSED pc = abuf->addr;
27331   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27332
27333 {
27334   {
27335     UHI opval = GET_H_FR_LO (ADDSI (FLD (f_FRi), 0));
27336     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
27337     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27338   }
27339   {
27340     UHI opval = GET_H_FR_LO (ADDSI (FLD (f_FRj), 0));
27341     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
27342     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27343   }
27344 }
27345
27346   return vpc;
27347 #undef FLD
27348 }
27349
27350 /* mdpackh: mdpackh$pack $FRintieven,$FRintjeven,$FRintkeven */
27351
27352 static SEM_PC
27353 SEM_FN_NAME (frvbf,mdpackh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27354 {
27355 #define FLD(f) abuf->fields.sfmt_mdpackh.f
27356   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27357   int UNUSED written = 0;
27358   IADDR UNUSED pc = abuf->addr;
27359   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27360
27361 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
27362 frvbf_media_register_not_aligned (current_cpu);
27363 } else {
27364 {
27365   {
27366     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRi)));
27367     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRi), opval);
27368     written |= (1 << 10);
27369     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27370   }
27371   {
27372     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRj)));
27373     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRj), opval);
27374     written |= (1 << 11);
27375     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27376   }
27377   {
27378     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27379     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27380     written |= (1 << 12);
27381     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27382   }
27383 {
27384   {
27385     UHI opval = GET_H_FR_LO (ADDSI (FLD (f_FRi), 0));
27386     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
27387     written |= (1 << 13);
27388     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27389   }
27390   {
27391     UHI opval = GET_H_FR_LO (ADDSI (FLD (f_FRj), 0));
27392     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
27393     written |= (1 << 15);
27394     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27395   }
27396 }
27397 {
27398   {
27399     UHI opval = GET_H_FR_LO (ADDSI (FLD (f_FRi), 1));
27400     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 1), opval);
27401     written |= (1 << 14);
27402     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27403   }
27404   {
27405     UHI opval = GET_H_FR_LO (ADDSI (FLD (f_FRj), 1));
27406     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 1), opval);
27407     written |= (1 << 16);
27408     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27409   }
27410 }
27411 }
27412 }
27413
27414   abuf->written = written;
27415   return vpc;
27416 #undef FLD
27417 }
27418
27419 /* munpackh: munpackh$pack $FRinti,$FRintkeven */
27420
27421 static SEM_PC
27422 SEM_FN_NAME (frvbf,munpackh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27423 {
27424 #define FLD(f) abuf->fields.sfmt_munpackh.f
27425   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27426   int UNUSED written = 0;
27427   IADDR UNUSED pc = abuf->addr;
27428   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27429
27430 if (ANDSI (FLD (f_FRk), SUBSI (2, 1))) {
27431 frvbf_media_register_not_aligned (current_cpu);
27432 } else {
27433 {
27434   {
27435     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRi)));
27436     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRi), opval);
27437     written |= (1 << 6);
27438     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27439   }
27440   {
27441     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27442     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27443     written |= (1 << 7);
27444     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27445   }
27446 {
27447   {
27448     UHI opval = GET_H_FR_HI (ADDSI (FLD (f_FRi), 0));
27449     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
27450     written |= (1 << 8);
27451     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27452   }
27453   {
27454     UHI opval = GET_H_FR_HI (ADDSI (FLD (f_FRi), 0));
27455     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
27456     written |= (1 << 10);
27457     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27458   }
27459   {
27460     UHI opval = GET_H_FR_LO (ADDSI (FLD (f_FRi), 0));
27461     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), ADDSI (0, 1)), opval);
27462     written |= (1 << 9);
27463     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27464   }
27465   {
27466     UHI opval = GET_H_FR_LO (ADDSI (FLD (f_FRi), 0));
27467     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), ADDSI (0, 1)), opval);
27468     written |= (1 << 11);
27469     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27470   }
27471 }
27472 }
27473 }
27474
27475   abuf->written = written;
27476   return vpc;
27477 #undef FLD
27478 }
27479
27480 /* mdunpackh: mdunpackh$pack $FRintieven,$FRintk */
27481
27482 static SEM_PC
27483 SEM_FN_NAME (frvbf,mdunpackh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27484 {
27485 #define FLD(f) abuf->fields.sfmt_mdunpackh.f
27486   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27487   int UNUSED written = 0;
27488   IADDR UNUSED pc = abuf->addr;
27489   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27490
27491 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (4, 1)))) {
27492 frvbf_media_register_not_aligned (current_cpu);
27493 } else {
27494 {
27495   {
27496     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRi)));
27497     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRi), opval);
27498     written |= (1 << 8);
27499     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27500   }
27501   {
27502     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27503     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27504     written |= (1 << 9);
27505     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27506   }
27507 {
27508   {
27509     UHI opval = GET_H_FR_HI (ADDSI (FLD (f_FRi), 0));
27510     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
27511     written |= (1 << 10);
27512     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27513   }
27514   {
27515     UHI opval = GET_H_FR_HI (ADDSI (FLD (f_FRi), 0));
27516     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
27517     written |= (1 << 14);
27518     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27519   }
27520   {
27521     UHI opval = GET_H_FR_LO (ADDSI (FLD (f_FRi), 0));
27522     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), ADDSI (0, 1)), opval);
27523     written |= (1 << 12);
27524     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27525   }
27526   {
27527     UHI opval = GET_H_FR_LO (ADDSI (FLD (f_FRi), 0));
27528     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), ADDSI (0, 1)), opval);
27529     written |= (1 << 16);
27530     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27531   }
27532 }
27533 {
27534   {
27535     UHI opval = GET_H_FR_HI (ADDSI (FLD (f_FRi), 1));
27536     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 2), opval);
27537     written |= (1 << 11);
27538     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27539   }
27540   {
27541     UHI opval = GET_H_FR_HI (ADDSI (FLD (f_FRi), 1));
27542     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 2), opval);
27543     written |= (1 << 15);
27544     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27545   }
27546   {
27547     UHI opval = GET_H_FR_LO (ADDSI (FLD (f_FRi), 1));
27548     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), ADDSI (2, 1)), opval);
27549     written |= (1 << 13);
27550     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27551   }
27552   {
27553     UHI opval = GET_H_FR_LO (ADDSI (FLD (f_FRi), 1));
27554     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), ADDSI (2, 1)), opval);
27555     written |= (1 << 17);
27556     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27557   }
27558 }
27559 }
27560 }
27561
27562   abuf->written = written;
27563   return vpc;
27564 #undef FLD
27565 }
27566
27567 /* mbtoh: mbtoh$pack $FRintj,$FRintkeven */
27568
27569 static SEM_PC
27570 SEM_FN_NAME (frvbf,mbtoh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27571 {
27572 #define FLD(f) abuf->fields.sfmt_cmbtoh.f
27573   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27574   int UNUSED written = 0;
27575   IADDR UNUSED pc = abuf->addr;
27576   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27577
27578 {
27579   {
27580     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRj)));
27581     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRj), opval);
27582     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27583   }
27584   {
27585     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27586     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27587     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27588   }
27589 if (ANDSI (FLD (f_FRk), SUBSI (2, 1))) {
27590 frvbf_media_register_not_aligned (current_cpu);
27591 } else {
27592 {
27593   {
27594     UHI opval = GET_H_FR_3 (ADDSI (FLD (f_FRj), 0));
27595     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
27596     written |= (1 << 10);
27597     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27598   }
27599   {
27600     UHI opval = GET_H_FR_2 (ADDSI (FLD (f_FRj), 0));
27601     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
27602     written |= (1 << 12);
27603     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27604   }
27605   {
27606     UHI opval = GET_H_FR_1 (ADDSI (FLD (f_FRj), 0));
27607     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 1), opval);
27608     written |= (1 << 11);
27609     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27610   }
27611   {
27612     UHI opval = GET_H_FR_0 (ADDSI (FLD (f_FRj), 0));
27613     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 1), opval);
27614     written |= (1 << 13);
27615     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27616   }
27617 }
27618 }
27619 }
27620
27621   abuf->written = written;
27622   return vpc;
27623 #undef FLD
27624 }
27625
27626 /* cmbtoh: cmbtoh$pack $FRintj,$FRintkeven,$CCi,$cond */
27627
27628 static SEM_PC
27629 SEM_FN_NAME (frvbf,cmbtoh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27630 {
27631 #define FLD(f) abuf->fields.sfmt_cmbtoh.f
27632   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27633   int UNUSED written = 0;
27634   IADDR UNUSED pc = abuf->addr;
27635   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27636
27637 {
27638   {
27639     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRj)));
27640     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRj), opval);
27641     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27642   }
27643   {
27644     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27645     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27646     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27647   }
27648 if (ANDSI (FLD (f_FRk), SUBSI (2, 1))) {
27649 frvbf_media_register_not_aligned (current_cpu);
27650 } else {
27651 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
27652 {
27653   {
27654     UHI opval = GET_H_FR_3 (ADDSI (FLD (f_FRj), 0));
27655     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
27656     written |= (1 << 12);
27657     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27658   }
27659   {
27660     UHI opval = GET_H_FR_2 (ADDSI (FLD (f_FRj), 0));
27661     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
27662     written |= (1 << 14);
27663     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27664   }
27665   {
27666     UHI opval = GET_H_FR_1 (ADDSI (FLD (f_FRj), 0));
27667     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 1), opval);
27668     written |= (1 << 13);
27669     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27670   }
27671   {
27672     UHI opval = GET_H_FR_0 (ADDSI (FLD (f_FRj), 0));
27673     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 1), opval);
27674     written |= (1 << 15);
27675     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27676   }
27677 }
27678 }
27679 }
27680 }
27681
27682   abuf->written = written;
27683   return vpc;
27684 #undef FLD
27685 }
27686
27687 /* mhtob: mhtob$pack $FRintjeven,$FRintk */
27688
27689 static SEM_PC
27690 SEM_FN_NAME (frvbf,mhtob) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27691 {
27692 #define FLD(f) abuf->fields.sfmt_cmhtob.f
27693   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27694   int UNUSED written = 0;
27695   IADDR UNUSED pc = abuf->addr;
27696   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27697
27698 {
27699   {
27700     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRj)));
27701     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRj), opval);
27702     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27703   }
27704   {
27705     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27706     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27707     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27708   }
27709 if (ANDSI (FLD (f_FRj), SUBSI (2, 1))) {
27710 frvbf_media_register_not_aligned (current_cpu);
27711 } else {
27712 {
27713   {
27714     UHI opval = GET_H_FR_HI (ADDSI (FLD (f_FRj), 0));
27715     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_3_set, ADDSI (FLD (f_FRk), 0), opval);
27716     written |= (1 << 13);
27717     TRACE_RESULT (current_cpu, abuf, "fr_3", 'x', opval);
27718   }
27719   {
27720     UHI opval = GET_H_FR_LO (ADDSI (FLD (f_FRj), 0));
27721     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_2_set, ADDSI (FLD (f_FRk), 0), opval);
27722     written |= (1 << 12);
27723     TRACE_RESULT (current_cpu, abuf, "fr_2", 'x', opval);
27724   }
27725   {
27726     UHI opval = GET_H_FR_HI (ADDSI (FLD (f_FRj), 1));
27727     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_1_set, ADDSI (FLD (f_FRk), 0), opval);
27728     written |= (1 << 11);
27729     TRACE_RESULT (current_cpu, abuf, "fr_1", 'x', opval);
27730   }
27731   {
27732     UHI opval = GET_H_FR_LO (ADDSI (FLD (f_FRj), 1));
27733     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_0_set, ADDSI (FLD (f_FRk), 0), opval);
27734     written |= (1 << 10);
27735     TRACE_RESULT (current_cpu, abuf, "fr_0", 'x', opval);
27736   }
27737 }
27738 }
27739 }
27740
27741   abuf->written = written;
27742   return vpc;
27743 #undef FLD
27744 }
27745
27746 /* cmhtob: cmhtob$pack $FRintjeven,$FRintk,$CCi,$cond */
27747
27748 static SEM_PC
27749 SEM_FN_NAME (frvbf,cmhtob) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27750 {
27751 #define FLD(f) abuf->fields.sfmt_cmhtob.f
27752   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27753   int UNUSED written = 0;
27754   IADDR UNUSED pc = abuf->addr;
27755   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27756
27757 {
27758   {
27759     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRj)));
27760     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRj), opval);
27761     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27762   }
27763   {
27764     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27765     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27766     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27767   }
27768 if (ANDSI (FLD (f_FRj), SUBSI (2, 1))) {
27769 frvbf_media_register_not_aligned (current_cpu);
27770 } else {
27771 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
27772 {
27773   {
27774     UHI opval = GET_H_FR_HI (ADDSI (FLD (f_FRj), 0));
27775     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_3_set, ADDSI (FLD (f_FRk), 0), opval);
27776     written |= (1 << 15);
27777     TRACE_RESULT (current_cpu, abuf, "fr_3", 'x', opval);
27778   }
27779   {
27780     UHI opval = GET_H_FR_LO (ADDSI (FLD (f_FRj), 0));
27781     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_2_set, ADDSI (FLD (f_FRk), 0), opval);
27782     written |= (1 << 14);
27783     TRACE_RESULT (current_cpu, abuf, "fr_2", 'x', opval);
27784   }
27785   {
27786     UHI opval = GET_H_FR_HI (ADDSI (FLD (f_FRj), 1));
27787     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_1_set, ADDSI (FLD (f_FRk), 0), opval);
27788     written |= (1 << 13);
27789     TRACE_RESULT (current_cpu, abuf, "fr_1", 'x', opval);
27790   }
27791   {
27792     UHI opval = GET_H_FR_LO (ADDSI (FLD (f_FRj), 1));
27793     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_0_set, ADDSI (FLD (f_FRk), 0), opval);
27794     written |= (1 << 12);
27795     TRACE_RESULT (current_cpu, abuf, "fr_0", 'x', opval);
27796   }
27797 }
27798 }
27799 }
27800 }
27801
27802   abuf->written = written;
27803   return vpc;
27804 #undef FLD
27805 }
27806
27807 /* mbtohe: mbtohe$pack $FRintj,$FRintk */
27808
27809 static SEM_PC
27810 SEM_FN_NAME (frvbf,mbtohe) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27811 {
27812 #define FLD(f) abuf->fields.sfmt_cmbtohe.f
27813   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27814   int UNUSED written = 0;
27815   IADDR UNUSED pc = abuf->addr;
27816   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27817
27818 {
27819   {
27820     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRj)));
27821     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRj), opval);
27822     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27823   }
27824   {
27825     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27826     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27827     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27828   }
27829 if (ANDSI (FLD (f_FRk), SUBSI (4, 1))) {
27830 frvbf_media_register_not_aligned (current_cpu);
27831 } else {
27832 {
27833   {
27834     UHI opval = GET_H_FR_3 (ADDSI (FLD (f_FRj), 0));
27835     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
27836     written |= (1 << 10);
27837     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27838   }
27839   {
27840     UHI opval = GET_H_FR_3 (ADDSI (FLD (f_FRj), 0));
27841     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
27842     written |= (1 << 14);
27843     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27844   }
27845   {
27846     UHI opval = GET_H_FR_2 (ADDSI (FLD (f_FRj), 0));
27847     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 1), opval);
27848     written |= (1 << 11);
27849     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27850   }
27851   {
27852     UHI opval = GET_H_FR_2 (ADDSI (FLD (f_FRj), 0));
27853     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 1), opval);
27854     written |= (1 << 15);
27855     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27856   }
27857   {
27858     UHI opval = GET_H_FR_1 (ADDSI (FLD (f_FRj), 0));
27859     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 2), opval);
27860     written |= (1 << 12);
27861     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27862   }
27863   {
27864     UHI opval = GET_H_FR_1 (ADDSI (FLD (f_FRj), 0));
27865     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 2), opval);
27866     written |= (1 << 16);
27867     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27868   }
27869   {
27870     UHI opval = GET_H_FR_0 (ADDSI (FLD (f_FRj), 0));
27871     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 3), opval);
27872     written |= (1 << 13);
27873     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27874   }
27875   {
27876     UHI opval = GET_H_FR_0 (ADDSI (FLD (f_FRj), 0));
27877     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 3), opval);
27878     written |= (1 << 17);
27879     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27880   }
27881 }
27882 }
27883 }
27884
27885   abuf->written = written;
27886   return vpc;
27887 #undef FLD
27888 }
27889
27890 /* cmbtohe: cmbtohe$pack $FRintj,$FRintk,$CCi,$cond */
27891
27892 static SEM_PC
27893 SEM_FN_NAME (frvbf,cmbtohe) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27894 {
27895 #define FLD(f) abuf->fields.sfmt_cmbtohe.f
27896   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27897   int UNUSED written = 0;
27898   IADDR UNUSED pc = abuf->addr;
27899   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27900
27901 {
27902   {
27903     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRj)));
27904     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRj), opval);
27905     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27906   }
27907   {
27908     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27909     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27910     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27911   }
27912 if (ANDSI (FLD (f_FRk), SUBSI (4, 1))) {
27913 frvbf_media_register_not_aligned (current_cpu);
27914 } else {
27915 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
27916 {
27917   {
27918     UHI opval = GET_H_FR_3 (ADDSI (FLD (f_FRj), 0));
27919     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
27920     written |= (1 << 12);
27921     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27922   }
27923   {
27924     UHI opval = GET_H_FR_3 (ADDSI (FLD (f_FRj), 0));
27925     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
27926     written |= (1 << 16);
27927     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27928   }
27929   {
27930     UHI opval = GET_H_FR_2 (ADDSI (FLD (f_FRj), 0));
27931     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 1), opval);
27932     written |= (1 << 13);
27933     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27934   }
27935   {
27936     UHI opval = GET_H_FR_2 (ADDSI (FLD (f_FRj), 0));
27937     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 1), opval);
27938     written |= (1 << 17);
27939     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27940   }
27941   {
27942     UHI opval = GET_H_FR_1 (ADDSI (FLD (f_FRj), 0));
27943     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 2), opval);
27944     written |= (1 << 14);
27945     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27946   }
27947   {
27948     UHI opval = GET_H_FR_1 (ADDSI (FLD (f_FRj), 0));
27949     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 2), opval);
27950     written |= (1 << 18);
27951     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27952   }
27953   {
27954     UHI opval = GET_H_FR_0 (ADDSI (FLD (f_FRj), 0));
27955     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 3), opval);
27956     written |= (1 << 15);
27957     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27958   }
27959   {
27960     UHI opval = GET_H_FR_0 (ADDSI (FLD (f_FRj), 0));
27961     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 3), opval);
27962     written |= (1 << 19);
27963     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27964   }
27965 }
27966 }
27967 }
27968 }
27969
27970   abuf->written = written;
27971   return vpc;
27972 #undef FLD
27973 }
27974
27975 /* mnop: mnop$pack */
27976
27977 static SEM_PC
27978 SEM_FN_NAME (frvbf,mnop) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27979 {
27980 #define FLD(f) abuf->fields.sfmt_empty.f
27981   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27982   int UNUSED written = 0;
27983   IADDR UNUSED pc = abuf->addr;
27984   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27985
27986 ((void) 0); /*nop*/
27987
27988   return vpc;
27989 #undef FLD
27990 }
27991
27992 /* mclracc-0: mclracc$pack $ACC40Sk,$A0 */
27993
27994 static SEM_PC
27995 SEM_FN_NAME (frvbf,mclracc_0) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27996 {
27997 #define FLD(f) abuf->fields.sfmt_mdasaccs.f
27998   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27999   int UNUSED written = 0;
28000   IADDR UNUSED pc = abuf->addr;
28001   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
28002
28003 frvbf_clear_accumulators (current_cpu, FLD (f_ACC40Sk), 0);
28004
28005   return vpc;
28006 #undef FLD
28007 }
28008
28009 /* mclracc-1: mclracc$pack $ACC40Sk,$A1 */
28010
28011 static SEM_PC
28012 SEM_FN_NAME (frvbf,mclracc_1) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
28013 {
28014 #define FLD(f) abuf->fields.sfmt_mdasaccs.f
28015   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
28016   int UNUSED written = 0;
28017   IADDR UNUSED pc = abuf->addr;
28018   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
28019
28020 frvbf_clear_accumulators (current_cpu, FLD (f_ACC40Sk), 1);
28021
28022   return vpc;
28023 #undef FLD
28024 }
28025
28026 /* mrdacc: mrdacc$pack $ACC40Si,$FRintk */
28027
28028 static SEM_PC
28029 SEM_FN_NAME (frvbf,mrdacc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
28030 {
28031 #define FLD(f) abuf->fields.sfmt_mcuti.f
28032   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
28033   int UNUSED written = 0;
28034   IADDR UNUSED pc = abuf->addr;
28035   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
28036
28037   {
28038     SI opval = GET_H_ACC40S (FLD (f_ACC40Si));
28039     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
28040     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
28041   }
28042
28043   return vpc;
28044 #undef FLD
28045 }
28046
28047 /* mrdaccg: mrdaccg$pack $ACCGi,$FRintk */
28048
28049 static SEM_PC
28050 SEM_FN_NAME (frvbf,mrdaccg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
28051 {
28052 #define FLD(f) abuf->fields.sfmt_mrdaccg.f
28053   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
28054   int UNUSED written = 0;
28055   IADDR UNUSED pc = abuf->addr;
28056   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
28057
28058   {
28059     SI opval = GET_H_ACCG (FLD (f_ACCGi));
28060     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
28061     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
28062   }
28063
28064   return vpc;
28065 #undef FLD
28066 }
28067
28068 /* mwtacc: mwtacc$pack $FRinti,$ACC40Sk */
28069
28070 static SEM_PC
28071 SEM_FN_NAME (frvbf,mwtacc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
28072 {
28073 #define FLD(f) abuf->fields.sfmt_cmmachs.f
28074   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
28075   int UNUSED written = 0;
28076   IADDR UNUSED pc = abuf->addr;
28077   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
28078
28079   {
28080     DI opval = ORDI (ANDDI (GET_H_ACC40S (FLD (f_ACC40Sk)), MAKEDI (0xffffffff, 0)), GET_H_FR_INT (FLD (f_FRi)));
28081     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
28082     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
28083   }
28084
28085   return vpc;
28086 #undef FLD
28087 }
28088
28089 /* mwtaccg: mwtaccg$pack $FRinti,$ACCGk */
28090
28091 static SEM_PC
28092 SEM_FN_NAME (frvbf,mwtaccg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
28093 {
28094 #define FLD(f) abuf->fields.sfmt_mwtaccg.f
28095   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
28096   int UNUSED written = 0;
28097   IADDR UNUSED pc = abuf->addr;
28098   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
28099
28100 {
28101 frv_ref_SI (GET_H_ACCG (FLD (f_ACCGk)));
28102   {
28103     USI opval = GET_H_FR_INT (FLD (f_FRi));
28104     sim_queue_fn_si_write (current_cpu, frvbf_h_accg_set, FLD (f_ACCGk), opval);
28105     TRACE_RESULT (current_cpu, abuf, "accg", 'x', opval);
28106   }
28107 }
28108
28109   return vpc;
28110 #undef FLD
28111 }
28112
28113 /* mcop1: mcop1$pack $FRi,$FRj,$FRk */
28114
28115 static SEM_PC
28116 SEM_FN_NAME (frvbf,mcop1) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
28117 {
28118 #define FLD(f) abuf->fields.sfmt_empty.f
28119   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
28120   int UNUSED written = 0;
28121   IADDR UNUSED pc = abuf->addr;
28122   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
28123
28124 frvbf_media_cop (current_cpu, 1);
28125
28126   return vpc;
28127 #undef FLD
28128 }
28129
28130 /* mcop2: mcop2$pack $FRi,$FRj,$FRk */
28131
28132 static SEM_PC
28133 SEM_FN_NAME (frvbf,mcop2) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
28134 {
28135 #define FLD(f) abuf->fields.sfmt_empty.f
28136   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
28137   int UNUSED written = 0;
28138   IADDR UNUSED pc = abuf->addr;
28139   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
28140
28141 frvbf_media_cop (current_cpu, 2);
28142
28143   return vpc;
28144 #undef FLD
28145 }
28146
28147 /* fnop: fnop$pack */
28148
28149 static SEM_PC
28150 SEM_FN_NAME (frvbf,fnop) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
28151 {
28152 #define FLD(f) abuf->fields.sfmt_empty.f
28153   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
28154   int UNUSED written = 0;
28155   IADDR UNUSED pc = abuf->addr;
28156   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
28157
28158 ((void) 0); /*nop*/
28159
28160   return vpc;
28161 #undef FLD
28162 }
28163
28164 /* Table of all semantic fns.  */
28165
28166 static const struct sem_fn_desc sem_fns[] = {
28167   { FRVBF_INSN_X_INVALID, SEM_FN_NAME (frvbf,x_invalid) },
28168   { FRVBF_INSN_X_AFTER, SEM_FN_NAME (frvbf,x_after) },
28169   { FRVBF_INSN_X_BEFORE, SEM_FN_NAME (frvbf,x_before) },
28170   { FRVBF_INSN_X_CTI_CHAIN, SEM_FN_NAME (frvbf,x_cti_chain) },
28171   { FRVBF_INSN_X_CHAIN, SEM_FN_NAME (frvbf,x_chain) },
28172   { FRVBF_INSN_X_BEGIN, SEM_FN_NAME (frvbf,x_begin) },
28173   { FRVBF_INSN_ADD, SEM_FN_NAME (frvbf,add) },
28174   { FRVBF_INSN_SUB, SEM_FN_NAME (frvbf,sub) },
28175   { FRVBF_INSN_AND, SEM_FN_NAME (frvbf,and) },
28176   { FRVBF_INSN_OR, SEM_FN_NAME (frvbf,or) },
28177   { FRVBF_INSN_XOR, SEM_FN_NAME (frvbf,xor) },
28178   { FRVBF_INSN_NOT, SEM_FN_NAME (frvbf,not) },
28179   { FRVBF_INSN_SDIV, SEM_FN_NAME (frvbf,sdiv) },
28180   { FRVBF_INSN_NSDIV, SEM_FN_NAME (frvbf,nsdiv) },
28181   { FRVBF_INSN_UDIV, SEM_FN_NAME (frvbf,udiv) },
28182   { FRVBF_INSN_NUDIV, SEM_FN_NAME (frvbf,nudiv) },
28183   { FRVBF_INSN_SMUL, SEM_FN_NAME (frvbf,smul) },
28184   { FRVBF_INSN_UMUL, SEM_FN_NAME (frvbf,umul) },
28185   { FRVBF_INSN_SMU, SEM_FN_NAME (frvbf,smu) },
28186   { FRVBF_INSN_SMASS, SEM_FN_NAME (frvbf,smass) },
28187   { FRVBF_INSN_SMSSS, SEM_FN_NAME (frvbf,smsss) },
28188   { FRVBF_INSN_SLL, SEM_FN_NAME (frvbf,sll) },
28189   { FRVBF_INSN_SRL, SEM_FN_NAME (frvbf,srl) },
28190   { FRVBF_INSN_SRA, SEM_FN_NAME (frvbf,sra) },
28191   { FRVBF_INSN_SLASS, SEM_FN_NAME (frvbf,slass) },
28192   { FRVBF_INSN_SCUTSS, SEM_FN_NAME (frvbf,scutss) },
28193   { FRVBF_INSN_SCAN, SEM_FN_NAME (frvbf,scan) },
28194   { FRVBF_INSN_CADD, SEM_FN_NAME (frvbf,cadd) },
28195   { FRVBF_INSN_CSUB, SEM_FN_NAME (frvbf,csub) },
28196   { FRVBF_INSN_CAND, SEM_FN_NAME (frvbf,cand) },
28197   { FRVBF_INSN_COR, SEM_FN_NAME (frvbf,cor) },
28198   { FRVBF_INSN_CXOR, SEM_FN_NAME (frvbf,cxor) },
28199   { FRVBF_INSN_CNOT, SEM_FN_NAME (frvbf,cnot) },
28200   { FRVBF_INSN_CSMUL, SEM_FN_NAME (frvbf,csmul) },
28201   { FRVBF_INSN_CSDIV, SEM_FN_NAME (frvbf,csdiv) },
28202   { FRVBF_INSN_CUDIV, SEM_FN_NAME (frvbf,cudiv) },
28203   { FRVBF_INSN_CSLL, SEM_FN_NAME (frvbf,csll) },
28204   { FRVBF_INSN_CSRL, SEM_FN_NAME (frvbf,csrl) },
28205   { FRVBF_INSN_CSRA, SEM_FN_NAME (frvbf,csra) },
28206   { FRVBF_INSN_CSCAN, SEM_FN_NAME (frvbf,cscan) },
28207   { FRVBF_INSN_ADDCC, SEM_FN_NAME (frvbf,addcc) },
28208   { FRVBF_INSN_SUBCC, SEM_FN_NAME (frvbf,subcc) },
28209   { FRVBF_INSN_ANDCC, SEM_FN_NAME (frvbf,andcc) },
28210   { FRVBF_INSN_ORCC, SEM_FN_NAME (frvbf,orcc) },
28211   { FRVBF_INSN_XORCC, SEM_FN_NAME (frvbf,xorcc) },
28212   { FRVBF_INSN_SLLCC, SEM_FN_NAME (frvbf,sllcc) },
28213   { FRVBF_INSN_SRLCC, SEM_FN_NAME (frvbf,srlcc) },
28214   { FRVBF_INSN_SRACC, SEM_FN_NAME (frvbf,sracc) },
28215   { FRVBF_INSN_SMULCC, SEM_FN_NAME (frvbf,smulcc) },
28216   { FRVBF_INSN_UMULCC, SEM_FN_NAME (frvbf,umulcc) },
28217   { FRVBF_INSN_CADDCC, SEM_FN_NAME (frvbf,caddcc) },
28218   { FRVBF_INSN_CSUBCC, SEM_FN_NAME (frvbf,csubcc) },
28219   { FRVBF_INSN_CSMULCC, SEM_FN_NAME (frvbf,csmulcc) },
28220   { FRVBF_INSN_CANDCC, SEM_FN_NAME (frvbf,candcc) },
28221   { FRVBF_INSN_CORCC, SEM_FN_NAME (frvbf,corcc) },
28222   { FRVBF_INSN_CXORCC, SEM_FN_NAME (frvbf,cxorcc) },
28223   { FRVBF_INSN_CSLLCC, SEM_FN_NAME (frvbf,csllcc) },
28224   { FRVBF_INSN_CSRLCC, SEM_FN_NAME (frvbf,csrlcc) },
28225   { FRVBF_INSN_CSRACC, SEM_FN_NAME (frvbf,csracc) },
28226   { FRVBF_INSN_ADDX, SEM_FN_NAME (frvbf,addx) },
28227   { FRVBF_INSN_SUBX, SEM_FN_NAME (frvbf,subx) },
28228   { FRVBF_INSN_ADDXCC, SEM_FN_NAME (frvbf,addxcc) },
28229   { FRVBF_INSN_SUBXCC, SEM_FN_NAME (frvbf,subxcc) },
28230   { FRVBF_INSN_ADDSS, SEM_FN_NAME (frvbf,addss) },
28231   { FRVBF_INSN_SUBSS, SEM_FN_NAME (frvbf,subss) },
28232   { FRVBF_INSN_ADDI, SEM_FN_NAME (frvbf,addi) },
28233   { FRVBF_INSN_SUBI, SEM_FN_NAME (frvbf,subi) },
28234   { FRVBF_INSN_ANDI, SEM_FN_NAME (frvbf,andi) },
28235   { FRVBF_INSN_ORI, SEM_FN_NAME (frvbf,ori) },
28236   { FRVBF_INSN_XORI, SEM_FN_NAME (frvbf,xori) },
28237   { FRVBF_INSN_SDIVI, SEM_FN_NAME (frvbf,sdivi) },
28238   { FRVBF_INSN_NSDIVI, SEM_FN_NAME (frvbf,nsdivi) },
28239   { FRVBF_INSN_UDIVI, SEM_FN_NAME (frvbf,udivi) },
28240   { FRVBF_INSN_NUDIVI, SEM_FN_NAME (frvbf,nudivi) },
28241   { FRVBF_INSN_SMULI, SEM_FN_NAME (frvbf,smuli) },
28242   { FRVBF_INSN_UMULI, SEM_FN_NAME (frvbf,umuli) },
28243   { FRVBF_INSN_SLLI, SEM_FN_NAME (frvbf,slli) },
28244   { FRVBF_INSN_SRLI, SEM_FN_NAME (frvbf,srli) },
28245   { FRVBF_INSN_SRAI, SEM_FN_NAME (frvbf,srai) },
28246   { FRVBF_INSN_SCANI, SEM_FN_NAME (frvbf,scani) },
28247   { FRVBF_INSN_ADDICC, SEM_FN_NAME (frvbf,addicc) },
28248   { FRVBF_INSN_SUBICC, SEM_FN_NAME (frvbf,subicc) },
28249   { FRVBF_INSN_ANDICC, SEM_FN_NAME (frvbf,andicc) },
28250   { FRVBF_INSN_ORICC, SEM_FN_NAME (frvbf,oricc) },
28251   { FRVBF_INSN_XORICC, SEM_FN_NAME (frvbf,xoricc) },
28252   { FRVBF_INSN_SMULICC, SEM_FN_NAME (frvbf,smulicc) },
28253   { FRVBF_INSN_UMULICC, SEM_FN_NAME (frvbf,umulicc) },
28254   { FRVBF_INSN_SLLICC, SEM_FN_NAME (frvbf,sllicc) },
28255   { FRVBF_INSN_SRLICC, SEM_FN_NAME (frvbf,srlicc) },
28256   { FRVBF_INSN_SRAICC, SEM_FN_NAME (frvbf,sraicc) },
28257   { FRVBF_INSN_ADDXI, SEM_FN_NAME (frvbf,addxi) },
28258   { FRVBF_INSN_SUBXI, SEM_FN_NAME (frvbf,subxi) },
28259   { FRVBF_INSN_ADDXICC, SEM_FN_NAME (frvbf,addxicc) },
28260   { FRVBF_INSN_SUBXICC, SEM_FN_NAME (frvbf,subxicc) },
28261   { FRVBF_INSN_CMPB, SEM_FN_NAME (frvbf,cmpb) },
28262   { FRVBF_INSN_CMPBA, SEM_FN_NAME (frvbf,cmpba) },
28263   { FRVBF_INSN_SETLO, SEM_FN_NAME (frvbf,setlo) },
28264   { FRVBF_INSN_SETHI, SEM_FN_NAME (frvbf,sethi) },
28265   { FRVBF_INSN_SETLOS, SEM_FN_NAME (frvbf,setlos) },
28266   { FRVBF_INSN_LDSB, SEM_FN_NAME (frvbf,ldsb) },
28267   { FRVBF_INSN_LDUB, SEM_FN_NAME (frvbf,ldub) },
28268   { FRVBF_INSN_LDSH, SEM_FN_NAME (frvbf,ldsh) },
28269   { FRVBF_INSN_LDUH, SEM_FN_NAME (frvbf,lduh) },
28270   { FRVBF_INSN_LD, SEM_FN_NAME (frvbf,ld) },
28271   { FRVBF_INSN_LDBF, SEM_FN_NAME (frvbf,ldbf) },
28272   { FRVBF_INSN_LDHF, SEM_FN_NAME (frvbf,ldhf) },
28273   { FRVBF_INSN_LDF, SEM_FN_NAME (frvbf,ldf) },
28274   { FRVBF_INSN_LDC, SEM_FN_NAME (frvbf,ldc) },
28275   { FRVBF_INSN_NLDSB, SEM_FN_NAME (frvbf,nldsb) },
28276   { FRVBF_INSN_NLDUB, SEM_FN_NAME (frvbf,nldub) },
28277   { FRVBF_INSN_NLDSH, SEM_FN_NAME (frvbf,nldsh) },
28278   { FRVBF_INSN_NLDUH, SEM_FN_NAME (frvbf,nlduh) },
28279   { FRVBF_INSN_NLD, SEM_FN_NAME (frvbf,nld) },
28280   { FRVBF_INSN_NLDBF, SEM_FN_NAME (frvbf,nldbf) },
28281   { FRVBF_INSN_NLDHF, SEM_FN_NAME (frvbf,nldhf) },
28282   { FRVBF_INSN_NLDF, SEM_FN_NAME (frvbf,nldf) },
28283   { FRVBF_INSN_LDD, SEM_FN_NAME (frvbf,ldd) },
28284   { FRVBF_INSN_LDDF, SEM_FN_NAME (frvbf,lddf) },
28285   { FRVBF_INSN_LDDC, SEM_FN_NAME (frvbf,lddc) },
28286   { FRVBF_INSN_NLDD, SEM_FN_NAME (frvbf,nldd) },
28287   { FRVBF_INSN_NLDDF, SEM_FN_NAME (frvbf,nlddf) },
28288   { FRVBF_INSN_LDQ, SEM_FN_NAME (frvbf,ldq) },
28289   { FRVBF_INSN_LDQF, SEM_FN_NAME (frvbf,ldqf) },
28290   { FRVBF_INSN_LDQC, SEM_FN_NAME (frvbf,ldqc) },
28291   { FRVBF_INSN_NLDQ, SEM_FN_NAME (frvbf,nldq) },
28292   { FRVBF_INSN_NLDQF, SEM_FN_NAME (frvbf,nldqf) },
28293   { FRVBF_INSN_LDSBU, SEM_FN_NAME (frvbf,ldsbu) },
28294   { FRVBF_INSN_LDUBU, SEM_FN_NAME (frvbf,ldubu) },
28295   { FRVBF_INSN_LDSHU, SEM_FN_NAME (frvbf,ldshu) },
28296   { FRVBF_INSN_LDUHU, SEM_FN_NAME (frvbf,lduhu) },
28297   { FRVBF_INSN_LDU, SEM_FN_NAME (frvbf,ldu) },
28298   { FRVBF_INSN_NLDSBU, SEM_FN_NAME (frvbf,nldsbu) },
28299   { FRVBF_INSN_NLDUBU, SEM_FN_NAME (frvbf,nldubu) },
28300   { FRVBF_INSN_NLDSHU, SEM_FN_NAME (frvbf,nldshu) },
28301   { FRVBF_INSN_NLDUHU, SEM_FN_NAME (frvbf,nlduhu) },
28302   { FRVBF_INSN_NLDU, SEM_FN_NAME (frvbf,nldu) },
28303   { FRVBF_INSN_LDBFU, SEM_FN_NAME (frvbf,ldbfu) },
28304   { FRVBF_INSN_LDHFU, SEM_FN_NAME (frvbf,ldhfu) },
28305   { FRVBF_INSN_LDFU, SEM_FN_NAME (frvbf,ldfu) },
28306   { FRVBF_INSN_LDCU, SEM_FN_NAME (frvbf,ldcu) },
28307   { FRVBF_INSN_NLDBFU, SEM_FN_NAME (frvbf,nldbfu) },
28308   { FRVBF_INSN_NLDHFU, SEM_FN_NAME (frvbf,nldhfu) },
28309   { FRVBF_INSN_NLDFU, SEM_FN_NAME (frvbf,nldfu) },
28310   { FRVBF_INSN_LDDU, SEM_FN_NAME (frvbf,lddu) },
28311   { FRVBF_INSN_NLDDU, SEM_FN_NAME (frvbf,nlddu) },
28312   { FRVBF_INSN_LDDFU, SEM_FN_NAME (frvbf,lddfu) },
28313   { FRVBF_INSN_LDDCU, SEM_FN_NAME (frvbf,lddcu) },
28314   { FRVBF_INSN_NLDDFU, SEM_FN_NAME (frvbf,nlddfu) },
28315   { FRVBF_INSN_LDQU, SEM_FN_NAME (frvbf,ldqu) },
28316   { FRVBF_INSN_NLDQU, SEM_FN_NAME (frvbf,nldqu) },
28317   { FRVBF_INSN_LDQFU, SEM_FN_NAME (frvbf,ldqfu) },
28318   { FRVBF_INSN_LDQCU, SEM_FN_NAME (frvbf,ldqcu) },
28319   { FRVBF_INSN_NLDQFU, SEM_FN_NAME (frvbf,nldqfu) },
28320   { FRVBF_INSN_LDSBI, SEM_FN_NAME (frvbf,ldsbi) },
28321   { FRVBF_INSN_LDSHI, SEM_FN_NAME (frvbf,ldshi) },
28322   { FRVBF_INSN_LDI, SEM_FN_NAME (frvbf,ldi) },
28323   { FRVBF_INSN_LDUBI, SEM_FN_NAME (frvbf,ldubi) },
28324   { FRVBF_INSN_LDUHI, SEM_FN_NAME (frvbf,lduhi) },
28325   { FRVBF_INSN_LDBFI, SEM_FN_NAME (frvbf,ldbfi) },
28326   { FRVBF_INSN_LDHFI, SEM_FN_NAME (frvbf,ldhfi) },
28327   { FRVBF_INSN_LDFI, SEM_FN_NAME (frvbf,ldfi) },
28328   { FRVBF_INSN_NLDSBI, SEM_FN_NAME (frvbf,nldsbi) },
28329   { FRVBF_INSN_NLDUBI, SEM_FN_NAME (frvbf,nldubi) },
28330   { FRVBF_INSN_NLDSHI, SEM_FN_NAME (frvbf,nldshi) },
28331   { FRVBF_INSN_NLDUHI, SEM_FN_NAME (frvbf,nlduhi) },
28332   { FRVBF_INSN_NLDI, SEM_FN_NAME (frvbf,nldi) },
28333   { FRVBF_INSN_NLDBFI, SEM_FN_NAME (frvbf,nldbfi) },
28334   { FRVBF_INSN_NLDHFI, SEM_FN_NAME (frvbf,nldhfi) },
28335   { FRVBF_INSN_NLDFI, SEM_FN_NAME (frvbf,nldfi) },
28336   { FRVBF_INSN_LDDI, SEM_FN_NAME (frvbf,lddi) },
28337   { FRVBF_INSN_LDDFI, SEM_FN_NAME (frvbf,lddfi) },
28338   { FRVBF_INSN_NLDDI, SEM_FN_NAME (frvbf,nlddi) },
28339   { FRVBF_INSN_NLDDFI, SEM_FN_NAME (frvbf,nlddfi) },
28340   { FRVBF_INSN_LDQI, SEM_FN_NAME (frvbf,ldqi) },
28341   { FRVBF_INSN_LDQFI, SEM_FN_NAME (frvbf,ldqfi) },
28342   { FRVBF_INSN_NLDQFI, SEM_FN_NAME (frvbf,nldqfi) },
28343   { FRVBF_INSN_STB, SEM_FN_NAME (frvbf,stb) },
28344   { FRVBF_INSN_STH, SEM_FN_NAME (frvbf,sth) },
28345   { FRVBF_INSN_ST, SEM_FN_NAME (frvbf,st) },
28346   { FRVBF_INSN_STBF, SEM_FN_NAME (frvbf,stbf) },
28347   { FRVBF_INSN_STHF, SEM_FN_NAME (frvbf,sthf) },
28348   { FRVBF_INSN_STF, SEM_FN_NAME (frvbf,stf) },
28349   { FRVBF_INSN_STC, SEM_FN_NAME (frvbf,stc) },
28350   { FRVBF_INSN_STD, SEM_FN_NAME (frvbf,std) },
28351   { FRVBF_INSN_STDF, SEM_FN_NAME (frvbf,stdf) },
28352   { FRVBF_INSN_STDC, SEM_FN_NAME (frvbf,stdc) },
28353   { FRVBF_INSN_STQ, SEM_FN_NAME (frvbf,stq) },
28354   { FRVBF_INSN_STQF, SEM_FN_NAME (frvbf,stqf) },
28355   { FRVBF_INSN_STQC, SEM_FN_NAME (frvbf,stqc) },
28356   { FRVBF_INSN_STBU, SEM_FN_NAME (frvbf,stbu) },
28357   { FRVBF_INSN_STHU, SEM_FN_NAME (frvbf,sthu) },
28358   { FRVBF_INSN_STU, SEM_FN_NAME (frvbf,stu) },
28359   { FRVBF_INSN_STBFU, SEM_FN_NAME (frvbf,stbfu) },
28360   { FRVBF_INSN_STHFU, SEM_FN_NAME (frvbf,sthfu) },
28361   { FRVBF_INSN_STFU, SEM_FN_NAME (frvbf,stfu) },
28362   { FRVBF_INSN_STCU, SEM_FN_NAME (frvbf,stcu) },
28363   { FRVBF_INSN_STDU, SEM_FN_NAME (frvbf,stdu) },
28364   { FRVBF_INSN_STDFU, SEM_FN_NAME (frvbf,stdfu) },
28365   { FRVBF_INSN_STDCU, SEM_FN_NAME (frvbf,stdcu) },
28366   { FRVBF_INSN_STQU, SEM_FN_NAME (frvbf,stqu) },
28367   { FRVBF_INSN_STQFU, SEM_FN_NAME (frvbf,stqfu) },
28368   { FRVBF_INSN_STQCU, SEM_FN_NAME (frvbf,stqcu) },
28369   { FRVBF_INSN_CLDSB, SEM_FN_NAME (frvbf,cldsb) },
28370   { FRVBF_INSN_CLDUB, SEM_FN_NAME (frvbf,cldub) },
28371   { FRVBF_INSN_CLDSH, SEM_FN_NAME (frvbf,cldsh) },
28372   { FRVBF_INSN_CLDUH, SEM_FN_NAME (frvbf,clduh) },
28373   { FRVBF_INSN_CLD, SEM_FN_NAME (frvbf,cld) },
28374   { FRVBF_INSN_CLDBF, SEM_FN_NAME (frvbf,cldbf) },
28375   { FRVBF_INSN_CLDHF, SEM_FN_NAME (frvbf,cldhf) },
28376   { FRVBF_INSN_CLDF, SEM_FN_NAME (frvbf,cldf) },
28377   { FRVBF_INSN_CLDD, SEM_FN_NAME (frvbf,cldd) },
28378   { FRVBF_INSN_CLDDF, SEM_FN_NAME (frvbf,clddf) },
28379   { FRVBF_INSN_CLDQ, SEM_FN_NAME (frvbf,cldq) },
28380   { FRVBF_INSN_CLDSBU, SEM_FN_NAME (frvbf,cldsbu) },
28381   { FRVBF_INSN_CLDUBU, SEM_FN_NAME (frvbf,cldubu) },
28382   { FRVBF_INSN_CLDSHU, SEM_FN_NAME (frvbf,cldshu) },
28383   { FRVBF_INSN_CLDUHU, SEM_FN_NAME (frvbf,clduhu) },
28384   { FRVBF_INSN_CLDU, SEM_FN_NAME (frvbf,cldu) },
28385   { FRVBF_INSN_CLDBFU, SEM_FN_NAME (frvbf,cldbfu) },
28386   { FRVBF_INSN_CLDHFU, SEM_FN_NAME (frvbf,cldhfu) },
28387   { FRVBF_INSN_CLDFU, SEM_FN_NAME (frvbf,cldfu) },
28388   { FRVBF_INSN_CLDDU, SEM_FN_NAME (frvbf,clddu) },
28389   { FRVBF_INSN_CLDDFU, SEM_FN_NAME (frvbf,clddfu) },
28390   { FRVBF_INSN_CLDQU, SEM_FN_NAME (frvbf,cldqu) },
28391   { FRVBF_INSN_CSTB, SEM_FN_NAME (frvbf,cstb) },
28392   { FRVBF_INSN_CSTH, SEM_FN_NAME (frvbf,csth) },
28393   { FRVBF_INSN_CST, SEM_FN_NAME (frvbf,cst) },
28394   { FRVBF_INSN_CSTBF, SEM_FN_NAME (frvbf,cstbf) },
28395   { FRVBF_INSN_CSTHF, SEM_FN_NAME (frvbf,csthf) },
28396   { FRVBF_INSN_CSTF, SEM_FN_NAME (frvbf,cstf) },
28397   { FRVBF_INSN_CSTD, SEM_FN_NAME (frvbf,cstd) },
28398   { FRVBF_INSN_CSTDF, SEM_FN_NAME (frvbf,cstdf) },
28399   { FRVBF_INSN_CSTQ, SEM_FN_NAME (frvbf,cstq) },
28400   { FRVBF_INSN_CSTBU, SEM_FN_NAME (frvbf,cstbu) },
28401   { FRVBF_INSN_CSTHU, SEM_FN_NAME (frvbf,csthu) },
28402   { FRVBF_INSN_CSTU, SEM_FN_NAME (frvbf,cstu) },
28403   { FRVBF_INSN_CSTBFU, SEM_FN_NAME (frvbf,cstbfu) },
28404   { FRVBF_INSN_CSTHFU, SEM_FN_NAME (frvbf,csthfu) },
28405   { FRVBF_INSN_CSTFU, SEM_FN_NAME (frvbf,cstfu) },
28406   { FRVBF_INSN_CSTDU, SEM_FN_NAME (frvbf,cstdu) },
28407   { FRVBF_INSN_CSTDFU, SEM_FN_NAME (frvbf,cstdfu) },
28408   { FRVBF_INSN_STBI, SEM_FN_NAME (frvbf,stbi) },
28409   { FRVBF_INSN_STHI, SEM_FN_NAME (frvbf,sthi) },
28410   { FRVBF_INSN_STI, SEM_FN_NAME (frvbf,sti) },
28411   { FRVBF_INSN_STBFI, SEM_FN_NAME (frvbf,stbfi) },
28412   { FRVBF_INSN_STHFI, SEM_FN_NAME (frvbf,sthfi) },
28413   { FRVBF_INSN_STFI, SEM_FN_NAME (frvbf,stfi) },
28414   { FRVBF_INSN_STDI, SEM_FN_NAME (frvbf,stdi) },
28415   { FRVBF_INSN_STDFI, SEM_FN_NAME (frvbf,stdfi) },
28416   { FRVBF_INSN_STQI, SEM_FN_NAME (frvbf,stqi) },
28417   { FRVBF_INSN_STQFI, SEM_FN_NAME (frvbf,stqfi) },
28418   { FRVBF_INSN_SWAP, SEM_FN_NAME (frvbf,swap) },
28419   { FRVBF_INSN_SWAPI, SEM_FN_NAME (frvbf,swapi) },
28420   { FRVBF_INSN_CSWAP, SEM_FN_NAME (frvbf,cswap) },
28421   { FRVBF_INSN_MOVGF, SEM_FN_NAME (frvbf,movgf) },
28422   { FRVBF_INSN_MOVFG, SEM_FN_NAME (frvbf,movfg) },
28423   { FRVBF_INSN_MOVGFD, SEM_FN_NAME (frvbf,movgfd) },
28424   { FRVBF_INSN_MOVFGD, SEM_FN_NAME (frvbf,movfgd) },
28425   { FRVBF_INSN_MOVGFQ, SEM_FN_NAME (frvbf,movgfq) },
28426   { FRVBF_INSN_MOVFGQ, SEM_FN_NAME (frvbf,movfgq) },
28427   { FRVBF_INSN_CMOVGF, SEM_FN_NAME (frvbf,cmovgf) },
28428   { FRVBF_INSN_CMOVFG, SEM_FN_NAME (frvbf,cmovfg) },
28429   { FRVBF_INSN_CMOVGFD, SEM_FN_NAME (frvbf,cmovgfd) },
28430   { FRVBF_INSN_CMOVFGD, SEM_FN_NAME (frvbf,cmovfgd) },
28431   { FRVBF_INSN_MOVGS, SEM_FN_NAME (frvbf,movgs) },
28432   { FRVBF_INSN_MOVSG, SEM_FN_NAME (frvbf,movsg) },
28433   { FRVBF_INSN_BRA, SEM_FN_NAME (frvbf,bra) },
28434   { FRVBF_INSN_BNO, SEM_FN_NAME (frvbf,bno) },
28435   { FRVBF_INSN_BEQ, SEM_FN_NAME (frvbf,beq) },
28436   { FRVBF_INSN_BNE, SEM_FN_NAME (frvbf,bne) },
28437   { FRVBF_INSN_BLE, SEM_FN_NAME (frvbf,ble) },
28438   { FRVBF_INSN_BGT, SEM_FN_NAME (frvbf,bgt) },
28439   { FRVBF_INSN_BLT, SEM_FN_NAME (frvbf,blt) },
28440   { FRVBF_INSN_BGE, SEM_FN_NAME (frvbf,bge) },
28441   { FRVBF_INSN_BLS, SEM_FN_NAME (frvbf,bls) },
28442   { FRVBF_INSN_BHI, SEM_FN_NAME (frvbf,bhi) },
28443   { FRVBF_INSN_BC, SEM_FN_NAME (frvbf,bc) },
28444   { FRVBF_INSN_BNC, SEM_FN_NAME (frvbf,bnc) },
28445   { FRVBF_INSN_BN, SEM_FN_NAME (frvbf,bn) },
28446   { FRVBF_INSN_BP, SEM_FN_NAME (frvbf,bp) },
28447   { FRVBF_INSN_BV, SEM_FN_NAME (frvbf,bv) },
28448   { FRVBF_INSN_BNV, SEM_FN_NAME (frvbf,bnv) },
28449   { FRVBF_INSN_FBRA, SEM_FN_NAME (frvbf,fbra) },
28450   { FRVBF_INSN_FBNO, SEM_FN_NAME (frvbf,fbno) },
28451   { FRVBF_INSN_FBNE, SEM_FN_NAME (frvbf,fbne) },
28452   { FRVBF_INSN_FBEQ, SEM_FN_NAME (frvbf,fbeq) },
28453   { FRVBF_INSN_FBLG, SEM_FN_NAME (frvbf,fblg) },
28454   { FRVBF_INSN_FBUE, SEM_FN_NAME (frvbf,fbue) },
28455   { FRVBF_INSN_FBUL, SEM_FN_NAME (frvbf,fbul) },
28456   { FRVBF_INSN_FBGE, SEM_FN_NAME (frvbf,fbge) },
28457   { FRVBF_INSN_FBLT, SEM_FN_NAME (frvbf,fblt) },
28458   { FRVBF_INSN_FBUGE, SEM_FN_NAME (frvbf,fbuge) },
28459   { FRVBF_INSN_FBUG, SEM_FN_NAME (frvbf,fbug) },
28460   { FRVBF_INSN_FBLE, SEM_FN_NAME (frvbf,fble) },
28461   { FRVBF_INSN_FBGT, SEM_FN_NAME (frvbf,fbgt) },
28462   { FRVBF_INSN_FBULE, SEM_FN_NAME (frvbf,fbule) },
28463   { FRVBF_INSN_FBU, SEM_FN_NAME (frvbf,fbu) },
28464   { FRVBF_INSN_FBO, SEM_FN_NAME (frvbf,fbo) },
28465   { FRVBF_INSN_BCTRLR, SEM_FN_NAME (frvbf,bctrlr) },
28466   { FRVBF_INSN_BRALR, SEM_FN_NAME (frvbf,bralr) },
28467   { FRVBF_INSN_BNOLR, SEM_FN_NAME (frvbf,bnolr) },
28468   { FRVBF_INSN_BEQLR, SEM_FN_NAME (frvbf,beqlr) },
28469   { FRVBF_INSN_BNELR, SEM_FN_NAME (frvbf,bnelr) },
28470   { FRVBF_INSN_BLELR, SEM_FN_NAME (frvbf,blelr) },
28471   { FRVBF_INSN_BGTLR, SEM_FN_NAME (frvbf,bgtlr) },
28472   { FRVBF_INSN_BLTLR, SEM_FN_NAME (frvbf,bltlr) },
28473   { FRVBF_INSN_BGELR, SEM_FN_NAME (frvbf,bgelr) },
28474   { FRVBF_INSN_BLSLR, SEM_FN_NAME (frvbf,blslr) },
28475   { FRVBF_INSN_BHILR, SEM_FN_NAME (frvbf,bhilr) },
28476   { FRVBF_INSN_BCLR, SEM_FN_NAME (frvbf,bclr) },
28477   { FRVBF_INSN_BNCLR, SEM_FN_NAME (frvbf,bnclr) },
28478   { FRVBF_INSN_BNLR, SEM_FN_NAME (frvbf,bnlr) },
28479   { FRVBF_INSN_BPLR, SEM_FN_NAME (frvbf,bplr) },
28480   { FRVBF_INSN_BVLR, SEM_FN_NAME (frvbf,bvlr) },
28481   { FRVBF_INSN_BNVLR, SEM_FN_NAME (frvbf,bnvlr) },
28482   { FRVBF_INSN_FBRALR, SEM_FN_NAME (frvbf,fbralr) },
28483   { FRVBF_INSN_FBNOLR, SEM_FN_NAME (frvbf,fbnolr) },
28484   { FRVBF_INSN_FBEQLR, SEM_FN_NAME (frvbf,fbeqlr) },
28485   { FRVBF_INSN_FBNELR, SEM_FN_NAME (frvbf,fbnelr) },
28486   { FRVBF_INSN_FBLGLR, SEM_FN_NAME (frvbf,fblglr) },
28487   { FRVBF_INSN_FBUELR, SEM_FN_NAME (frvbf,fbuelr) },
28488   { FRVBF_INSN_FBULLR, SEM_FN_NAME (frvbf,fbullr) },
28489   { FRVBF_INSN_FBGELR, SEM_FN_NAME (frvbf,fbgelr) },
28490   { FRVBF_INSN_FBLTLR, SEM_FN_NAME (frvbf,fbltlr) },
28491   { FRVBF_INSN_FBUGELR, SEM_FN_NAME (frvbf,fbugelr) },
28492   { FRVBF_INSN_FBUGLR, SEM_FN_NAME (frvbf,fbuglr) },
28493   { FRVBF_INSN_FBLELR, SEM_FN_NAME (frvbf,fblelr) },
28494   { FRVBF_INSN_FBGTLR, SEM_FN_NAME (frvbf,fbgtlr) },
28495   { FRVBF_INSN_FBULELR, SEM_FN_NAME (frvbf,fbulelr) },
28496   { FRVBF_INSN_FBULR, SEM_FN_NAME (frvbf,fbulr) },
28497   { FRVBF_INSN_FBOLR, SEM_FN_NAME (frvbf,fbolr) },
28498   { FRVBF_INSN_BCRALR, SEM_FN_NAME (frvbf,bcralr) },
28499   { FRVBF_INSN_BCNOLR, SEM_FN_NAME (frvbf,bcnolr) },
28500   { FRVBF_INSN_BCEQLR, SEM_FN_NAME (frvbf,bceqlr) },
28501   { FRVBF_INSN_BCNELR, SEM_FN_NAME (frvbf,bcnelr) },
28502   { FRVBF_INSN_BCLELR, SEM_FN_NAME (frvbf,bclelr) },
28503   { FRVBF_INSN_BCGTLR, SEM_FN_NAME (frvbf,bcgtlr) },
28504   { FRVBF_INSN_BCLTLR, SEM_FN_NAME (frvbf,bcltlr) },
28505   { FRVBF_INSN_BCGELR, SEM_FN_NAME (frvbf,bcgelr) },
28506   { FRVBF_INSN_BCLSLR, SEM_FN_NAME (frvbf,bclslr) },
28507   { FRVBF_INSN_BCHILR, SEM_FN_NAME (frvbf,bchilr) },
28508   { FRVBF_INSN_BCCLR, SEM_FN_NAME (frvbf,bcclr) },
28509   { FRVBF_INSN_BCNCLR, SEM_FN_NAME (frvbf,bcnclr) },
28510   { FRVBF_INSN_BCNLR, SEM_FN_NAME (frvbf,bcnlr) },
28511   { FRVBF_INSN_BCPLR, SEM_FN_NAME (frvbf,bcplr) },
28512   { FRVBF_INSN_BCVLR, SEM_FN_NAME (frvbf,bcvlr) },
28513   { FRVBF_INSN_BCNVLR, SEM_FN_NAME (frvbf,bcnvlr) },
28514   { FRVBF_INSN_FCBRALR, SEM_FN_NAME (frvbf,fcbralr) },
28515   { FRVBF_INSN_FCBNOLR, SEM_FN_NAME (frvbf,fcbnolr) },
28516   { FRVBF_INSN_FCBEQLR, SEM_FN_NAME (frvbf,fcbeqlr) },
28517   { FRVBF_INSN_FCBNELR, SEM_FN_NAME (frvbf,fcbnelr) },
28518   { FRVBF_INSN_FCBLGLR, SEM_FN_NAME (frvbf,fcblglr) },
28519   { FRVBF_INSN_FCBUELR, SEM_FN_NAME (frvbf,fcbuelr) },
28520   { FRVBF_INSN_FCBULLR, SEM_FN_NAME (frvbf,fcbullr) },
28521   { FRVBF_INSN_FCBGELR, SEM_FN_NAME (frvbf,fcbgelr) },
28522   { FRVBF_INSN_FCBLTLR, SEM_FN_NAME (frvbf,fcbltlr) },
28523   { FRVBF_INSN_FCBUGELR, SEM_FN_NAME (frvbf,fcbugelr) },
28524   { FRVBF_INSN_FCBUGLR, SEM_FN_NAME (frvbf,fcbuglr) },
28525   { FRVBF_INSN_FCBLELR, SEM_FN_NAME (frvbf,fcblelr) },
28526   { FRVBF_INSN_FCBGTLR, SEM_FN_NAME (frvbf,fcbgtlr) },
28527   { FRVBF_INSN_FCBULELR, SEM_FN_NAME (frvbf,fcbulelr) },
28528   { FRVBF_INSN_FCBULR, SEM_FN_NAME (frvbf,fcbulr) },
28529   { FRVBF_INSN_FCBOLR, SEM_FN_NAME (frvbf,fcbolr) },
28530   { FRVBF_INSN_JMPL, SEM_FN_NAME (frvbf,jmpl) },
28531   { FRVBF_INSN_CALLL, SEM_FN_NAME (frvbf,calll) },
28532   { FRVBF_INSN_JMPIL, SEM_FN_NAME (frvbf,jmpil) },
28533   { FRVBF_INSN_CALLIL, SEM_FN_NAME (frvbf,callil) },
28534   { FRVBF_INSN_CALL, SEM_FN_NAME (frvbf,call) },
28535   { FRVBF_INSN_RETT, SEM_FN_NAME (frvbf,rett) },
28536   { FRVBF_INSN_REI, SEM_FN_NAME (frvbf,rei) },
28537   { FRVBF_INSN_TRA, SEM_FN_NAME (frvbf,tra) },
28538   { FRVBF_INSN_TNO, SEM_FN_NAME (frvbf,tno) },
28539   { FRVBF_INSN_TEQ, SEM_FN_NAME (frvbf,teq) },
28540   { FRVBF_INSN_TNE, SEM_FN_NAME (frvbf,tne) },
28541   { FRVBF_INSN_TLE, SEM_FN_NAME (frvbf,tle) },
28542   { FRVBF_INSN_TGT, SEM_FN_NAME (frvbf,tgt) },
28543   { FRVBF_INSN_TLT, SEM_FN_NAME (frvbf,tlt) },
28544   { FRVBF_INSN_TGE, SEM_FN_NAME (frvbf,tge) },
28545   { FRVBF_INSN_TLS, SEM_FN_NAME (frvbf,tls) },
28546   { FRVBF_INSN_THI, SEM_FN_NAME (frvbf,thi) },
28547   { FRVBF_INSN_TC, SEM_FN_NAME (frvbf,tc) },
28548   { FRVBF_INSN_TNC, SEM_FN_NAME (frvbf,tnc) },
28549   { FRVBF_INSN_TN, SEM_FN_NAME (frvbf,tn) },
28550   { FRVBF_INSN_TP, SEM_FN_NAME (frvbf,tp) },
28551   { FRVBF_INSN_TV, SEM_FN_NAME (frvbf,tv) },
28552   { FRVBF_INSN_TNV, SEM_FN_NAME (frvbf,tnv) },
28553   { FRVBF_INSN_FTRA, SEM_FN_NAME (frvbf,ftra) },
28554   { FRVBF_INSN_FTNO, SEM_FN_NAME (frvbf,ftno) },
28555   { FRVBF_INSN_FTNE, SEM_FN_NAME (frvbf,ftne) },
28556   { FRVBF_INSN_FTEQ, SEM_FN_NAME (frvbf,fteq) },
28557   { FRVBF_INSN_FTLG, SEM_FN_NAME (frvbf,ftlg) },
28558   { FRVBF_INSN_FTUE, SEM_FN_NAME (frvbf,ftue) },
28559   { FRVBF_INSN_FTUL, SEM_FN_NAME (frvbf,ftul) },
28560   { FRVBF_INSN_FTGE, SEM_FN_NAME (frvbf,ftge) },
28561   { FRVBF_INSN_FTLT, SEM_FN_NAME (frvbf,ftlt) },
28562   { FRVBF_INSN_FTUGE, SEM_FN_NAME (frvbf,ftuge) },
28563   { FRVBF_INSN_FTUG, SEM_FN_NAME (frvbf,ftug) },
28564   { FRVBF_INSN_FTLE, SEM_FN_NAME (frvbf,ftle) },
28565   { FRVBF_INSN_FTGT, SEM_FN_NAME (frvbf,ftgt) },
28566   { FRVBF_INSN_FTULE, SEM_FN_NAME (frvbf,ftule) },
28567   { FRVBF_INSN_FTU, SEM_FN_NAME (frvbf,ftu) },
28568   { FRVBF_INSN_FTO, SEM_FN_NAME (frvbf,fto) },
28569   { FRVBF_INSN_TIRA, SEM_FN_NAME (frvbf,tira) },
28570   { FRVBF_INSN_TINO, SEM_FN_NAME (frvbf,tino) },
28571   { FRVBF_INSN_TIEQ, SEM_FN_NAME (frvbf,tieq) },
28572   { FRVBF_INSN_TINE, SEM_FN_NAME (frvbf,tine) },
28573   { FRVBF_INSN_TILE, SEM_FN_NAME (frvbf,tile) },
28574   { FRVBF_INSN_TIGT, SEM_FN_NAME (frvbf,tigt) },
28575   { FRVBF_INSN_TILT, SEM_FN_NAME (frvbf,tilt) },
28576   { FRVBF_INSN_TIGE, SEM_FN_NAME (frvbf,tige) },
28577   { FRVBF_INSN_TILS, SEM_FN_NAME (frvbf,tils) },
28578   { FRVBF_INSN_TIHI, SEM_FN_NAME (frvbf,tihi) },
28579   { FRVBF_INSN_TIC, SEM_FN_NAME (frvbf,tic) },
28580   { FRVBF_INSN_TINC, SEM_FN_NAME (frvbf,tinc) },
28581   { FRVBF_INSN_TIN, SEM_FN_NAME (frvbf,tin) },
28582   { FRVBF_INSN_TIP, SEM_FN_NAME (frvbf,tip) },
28583   { FRVBF_INSN_TIV, SEM_FN_NAME (frvbf,tiv) },
28584   { FRVBF_INSN_TINV, SEM_FN_NAME (frvbf,tinv) },
28585   { FRVBF_INSN_FTIRA, SEM_FN_NAME (frvbf,ftira) },
28586   { FRVBF_INSN_FTINO, SEM_FN_NAME (frvbf,ftino) },
28587   { FRVBF_INSN_FTINE, SEM_FN_NAME (frvbf,ftine) },
28588   { FRVBF_INSN_FTIEQ, SEM_FN_NAME (frvbf,ftieq) },
28589   { FRVBF_INSN_FTILG, SEM_FN_NAME (frvbf,ftilg) },
28590   { FRVBF_INSN_FTIUE, SEM_FN_NAME (frvbf,ftiue) },
28591   { FRVBF_INSN_FTIUL, SEM_FN_NAME (frvbf,ftiul) },
28592   { FRVBF_INSN_FTIGE, SEM_FN_NAME (frvbf,ftige) },
28593   { FRVBF_INSN_FTILT, SEM_FN_NAME (frvbf,ftilt) },
28594   { FRVBF_INSN_FTIUGE, SEM_FN_NAME (frvbf,ftiuge) },
28595   { FRVBF_INSN_FTIUG, SEM_FN_NAME (frvbf,ftiug) },
28596   { FRVBF_INSN_FTILE, SEM_FN_NAME (frvbf,ftile) },
28597   { FRVBF_INSN_FTIGT, SEM_FN_NAME (frvbf,ftigt) },
28598   { FRVBF_INSN_FTIULE, SEM_FN_NAME (frvbf,ftiule) },
28599   { FRVBF_INSN_FTIU, SEM_FN_NAME (frvbf,ftiu) },
28600   { FRVBF_INSN_FTIO, SEM_FN_NAME (frvbf,ftio) },
28601   { FRVBF_INSN_BREAK, SEM_FN_NAME (frvbf,break) },
28602   { FRVBF_INSN_MTRAP, SEM_FN_NAME (frvbf,mtrap) },
28603   { FRVBF_INSN_ANDCR, SEM_FN_NAME (frvbf,andcr) },
28604   { FRVBF_INSN_ORCR, SEM_FN_NAME (frvbf,orcr) },
28605   { FRVBF_INSN_XORCR, SEM_FN_NAME (frvbf,xorcr) },
28606   { FRVBF_INSN_NANDCR, SEM_FN_NAME (frvbf,nandcr) },
28607   { FRVBF_INSN_NORCR, SEM_FN_NAME (frvbf,norcr) },
28608   { FRVBF_INSN_ANDNCR, SEM_FN_NAME (frvbf,andncr) },
28609   { FRVBF_INSN_ORNCR, SEM_FN_NAME (frvbf,orncr) },
28610   { FRVBF_INSN_NANDNCR, SEM_FN_NAME (frvbf,nandncr) },
28611   { FRVBF_INSN_NORNCR, SEM_FN_NAME (frvbf,norncr) },
28612   { FRVBF_INSN_NOTCR, SEM_FN_NAME (frvbf,notcr) },
28613   { FRVBF_INSN_CKRA, SEM_FN_NAME (frvbf,ckra) },
28614   { FRVBF_INSN_CKNO, SEM_FN_NAME (frvbf,ckno) },
28615   { FRVBF_INSN_CKEQ, SEM_FN_NAME (frvbf,ckeq) },
28616   { FRVBF_INSN_CKNE, SEM_FN_NAME (frvbf,ckne) },
28617   { FRVBF_INSN_CKLE, SEM_FN_NAME (frvbf,ckle) },
28618   { FRVBF_INSN_CKGT, SEM_FN_NAME (frvbf,ckgt) },
28619   { FRVBF_INSN_CKLT, SEM_FN_NAME (frvbf,cklt) },
28620   { FRVBF_INSN_CKGE, SEM_FN_NAME (frvbf,ckge) },
28621   { FRVBF_INSN_CKLS, SEM_FN_NAME (frvbf,ckls) },
28622   { FRVBF_INSN_CKHI, SEM_FN_NAME (frvbf,ckhi) },
28623   { FRVBF_INSN_CKC, SEM_FN_NAME (frvbf,ckc) },
28624   { FRVBF_INSN_CKNC, SEM_FN_NAME (frvbf,cknc) },
28625   { FRVBF_INSN_CKN, SEM_FN_NAME (frvbf,ckn) },
28626   { FRVBF_INSN_CKP, SEM_FN_NAME (frvbf,ckp) },
28627   { FRVBF_INSN_CKV, SEM_FN_NAME (frvbf,ckv) },
28628   { FRVBF_INSN_CKNV, SEM_FN_NAME (frvbf,cknv) },
28629   { FRVBF_INSN_FCKRA, SEM_FN_NAME (frvbf,fckra) },
28630   { FRVBF_INSN_FCKNO, SEM_FN_NAME (frvbf,fckno) },
28631   { FRVBF_INSN_FCKNE, SEM_FN_NAME (frvbf,fckne) },
28632   { FRVBF_INSN_FCKEQ, SEM_FN_NAME (frvbf,fckeq) },
28633   { FRVBF_INSN_FCKLG, SEM_FN_NAME (frvbf,fcklg) },
28634   { FRVBF_INSN_FCKUE, SEM_FN_NAME (frvbf,fckue) },
28635   { FRVBF_INSN_FCKUL, SEM_FN_NAME (frvbf,fckul) },
28636   { FRVBF_INSN_FCKGE, SEM_FN_NAME (frvbf,fckge) },
28637   { FRVBF_INSN_FCKLT, SEM_FN_NAME (frvbf,fcklt) },
28638   { FRVBF_INSN_FCKUGE, SEM_FN_NAME (frvbf,fckuge) },
28639   { FRVBF_INSN_FCKUG, SEM_FN_NAME (frvbf,fckug) },
28640   { FRVBF_INSN_FCKLE, SEM_FN_NAME (frvbf,fckle) },
28641   { FRVBF_INSN_FCKGT, SEM_FN_NAME (frvbf,fckgt) },
28642   { FRVBF_INSN_FCKULE, SEM_FN_NAME (frvbf,fckule) },
28643   { FRVBF_INSN_FCKU, SEM_FN_NAME (frvbf,fcku) },
28644   { FRVBF_INSN_FCKO, SEM_FN_NAME (frvbf,fcko) },
28645   { FRVBF_INSN_CCKRA, SEM_FN_NAME (frvbf,cckra) },
28646   { FRVBF_INSN_CCKNO, SEM_FN_NAME (frvbf,cckno) },
28647   { FRVBF_INSN_CCKEQ, SEM_FN_NAME (frvbf,cckeq) },
28648   { FRVBF_INSN_CCKNE, SEM_FN_NAME (frvbf,cckne) },
28649   { FRVBF_INSN_CCKLE, SEM_FN_NAME (frvbf,cckle) },
28650   { FRVBF_INSN_CCKGT, SEM_FN_NAME (frvbf,cckgt) },
28651   { FRVBF_INSN_CCKLT, SEM_FN_NAME (frvbf,ccklt) },
28652   { FRVBF_INSN_CCKGE, SEM_FN_NAME (frvbf,cckge) },
28653   { FRVBF_INSN_CCKLS, SEM_FN_NAME (frvbf,cckls) },
28654   { FRVBF_INSN_CCKHI, SEM_FN_NAME (frvbf,cckhi) },
28655   { FRVBF_INSN_CCKC, SEM_FN_NAME (frvbf,cckc) },
28656   { FRVBF_INSN_CCKNC, SEM_FN_NAME (frvbf,ccknc) },
28657   { FRVBF_INSN_CCKN, SEM_FN_NAME (frvbf,cckn) },
28658   { FRVBF_INSN_CCKP, SEM_FN_NAME (frvbf,cckp) },
28659   { FRVBF_INSN_CCKV, SEM_FN_NAME (frvbf,cckv) },
28660   { FRVBF_INSN_CCKNV, SEM_FN_NAME (frvbf,ccknv) },
28661   { FRVBF_INSN_CFCKRA, SEM_FN_NAME (frvbf,cfckra) },
28662   { FRVBF_INSN_CFCKNO, SEM_FN_NAME (frvbf,cfckno) },
28663   { FRVBF_INSN_CFCKNE, SEM_FN_NAME (frvbf,cfckne) },
28664   { FRVBF_INSN_CFCKEQ, SEM_FN_NAME (frvbf,cfckeq) },
28665   { FRVBF_INSN_CFCKLG, SEM_FN_NAME (frvbf,cfcklg) },
28666   { FRVBF_INSN_CFCKUE, SEM_FN_NAME (frvbf,cfckue) },
28667   { FRVBF_INSN_CFCKUL, SEM_FN_NAME (frvbf,cfckul) },
28668   { FRVBF_INSN_CFCKGE, SEM_FN_NAME (frvbf,cfckge) },
28669   { FRVBF_INSN_CFCKLT, SEM_FN_NAME (frvbf,cfcklt) },
28670   { FRVBF_INSN_CFCKUGE, SEM_FN_NAME (frvbf,cfckuge) },
28671   { FRVBF_INSN_CFCKUG, SEM_FN_NAME (frvbf,cfckug) },
28672   { FRVBF_INSN_CFCKLE, SEM_FN_NAME (frvbf,cfckle) },
28673   { FRVBF_INSN_CFCKGT, SEM_FN_NAME (frvbf,cfckgt) },
28674   { FRVBF_INSN_CFCKULE, SEM_FN_NAME (frvbf,cfckule) },
28675   { FRVBF_INSN_CFCKU, SEM_FN_NAME (frvbf,cfcku) },
28676   { FRVBF_INSN_CFCKO, SEM_FN_NAME (frvbf,cfcko) },
28677   { FRVBF_INSN_CJMPL, SEM_FN_NAME (frvbf,cjmpl) },
28678   { FRVBF_INSN_CCALLL, SEM_FN_NAME (frvbf,ccalll) },
28679   { FRVBF_INSN_ICI, SEM_FN_NAME (frvbf,ici) },
28680   { FRVBF_INSN_DCI, SEM_FN_NAME (frvbf,dci) },
28681   { FRVBF_INSN_ICEI, SEM_FN_NAME (frvbf,icei) },
28682   { FRVBF_INSN_DCEI, SEM_FN_NAME (frvbf,dcei) },
28683   { FRVBF_INSN_DCF, SEM_FN_NAME (frvbf,dcf) },
28684   { FRVBF_INSN_DCEF, SEM_FN_NAME (frvbf,dcef) },
28685   { FRVBF_INSN_WITLB, SEM_FN_NAME (frvbf,witlb) },
28686   { FRVBF_INSN_WDTLB, SEM_FN_NAME (frvbf,wdtlb) },
28687   { FRVBF_INSN_ITLBI, SEM_FN_NAME (frvbf,itlbi) },
28688   { FRVBF_INSN_DTLBI, SEM_FN_NAME (frvbf,dtlbi) },
28689   { FRVBF_INSN_ICPL, SEM_FN_NAME (frvbf,icpl) },
28690   { FRVBF_INSN_DCPL, SEM_FN_NAME (frvbf,dcpl) },
28691   { FRVBF_INSN_ICUL, SEM_FN_NAME (frvbf,icul) },
28692   { FRVBF_INSN_DCUL, SEM_FN_NAME (frvbf,dcul) },
28693   { FRVBF_INSN_BAR, SEM_FN_NAME (frvbf,bar) },
28694   { FRVBF_INSN_MEMBAR, SEM_FN_NAME (frvbf,membar) },
28695   { FRVBF_INSN_LRAI, SEM_FN_NAME (frvbf,lrai) },
28696   { FRVBF_INSN_LRAD, SEM_FN_NAME (frvbf,lrad) },
28697   { FRVBF_INSN_TLBPR, SEM_FN_NAME (frvbf,tlbpr) },
28698   { FRVBF_INSN_COP1, SEM_FN_NAME (frvbf,cop1) },
28699   { FRVBF_INSN_COP2, SEM_FN_NAME (frvbf,cop2) },
28700   { FRVBF_INSN_CLRGR, SEM_FN_NAME (frvbf,clrgr) },
28701   { FRVBF_INSN_CLRFR, SEM_FN_NAME (frvbf,clrfr) },
28702   { FRVBF_INSN_CLRGA, SEM_FN_NAME (frvbf,clrga) },
28703   { FRVBF_INSN_CLRFA, SEM_FN_NAME (frvbf,clrfa) },
28704   { FRVBF_INSN_COMMITGR, SEM_FN_NAME (frvbf,commitgr) },
28705   { FRVBF_INSN_COMMITFR, SEM_FN_NAME (frvbf,commitfr) },
28706   { FRVBF_INSN_COMMITGA, SEM_FN_NAME (frvbf,commitga) },
28707   { FRVBF_INSN_COMMITFA, SEM_FN_NAME (frvbf,commitfa) },
28708   { FRVBF_INSN_FITOS, SEM_FN_NAME (frvbf,fitos) },
28709   { FRVBF_INSN_FSTOI, SEM_FN_NAME (frvbf,fstoi) },
28710   { FRVBF_INSN_FITOD, SEM_FN_NAME (frvbf,fitod) },
28711   { FRVBF_INSN_FDTOI, SEM_FN_NAME (frvbf,fdtoi) },
28712   { FRVBF_INSN_FDITOS, SEM_FN_NAME (frvbf,fditos) },
28713   { FRVBF_INSN_FDSTOI, SEM_FN_NAME (frvbf,fdstoi) },
28714   { FRVBF_INSN_NFDITOS, SEM_FN_NAME (frvbf,nfditos) },
28715   { FRVBF_INSN_NFDSTOI, SEM_FN_NAME (frvbf,nfdstoi) },
28716   { FRVBF_INSN_CFITOS, SEM_FN_NAME (frvbf,cfitos) },
28717   { FRVBF_INSN_CFSTOI, SEM_FN_NAME (frvbf,cfstoi) },
28718   { FRVBF_INSN_NFITOS, SEM_FN_NAME (frvbf,nfitos) },
28719   { FRVBF_INSN_NFSTOI, SEM_FN_NAME (frvbf,nfstoi) },
28720   { FRVBF_INSN_FMOVS, SEM_FN_NAME (frvbf,fmovs) },
28721   { FRVBF_INSN_FMOVD, SEM_FN_NAME (frvbf,fmovd) },
28722   { FRVBF_INSN_FDMOVS, SEM_FN_NAME (frvbf,fdmovs) },
28723   { FRVBF_INSN_CFMOVS, SEM_FN_NAME (frvbf,cfmovs) },
28724   { FRVBF_INSN_FNEGS, SEM_FN_NAME (frvbf,fnegs) },
28725   { FRVBF_INSN_FNEGD, SEM_FN_NAME (frvbf,fnegd) },
28726   { FRVBF_INSN_FDNEGS, SEM_FN_NAME (frvbf,fdnegs) },
28727   { FRVBF_INSN_CFNEGS, SEM_FN_NAME (frvbf,cfnegs) },
28728   { FRVBF_INSN_FABSS, SEM_FN_NAME (frvbf,fabss) },
28729   { FRVBF_INSN_FABSD, SEM_FN_NAME (frvbf,fabsd) },
28730   { FRVBF_INSN_FDABSS, SEM_FN_NAME (frvbf,fdabss) },
28731   { FRVBF_INSN_CFABSS, SEM_FN_NAME (frvbf,cfabss) },
28732   { FRVBF_INSN_FSQRTS, SEM_FN_NAME (frvbf,fsqrts) },
28733   { FRVBF_INSN_FDSQRTS, SEM_FN_NAME (frvbf,fdsqrts) },
28734   { FRVBF_INSN_NFDSQRTS, SEM_FN_NAME (frvbf,nfdsqrts) },
28735   { FRVBF_INSN_FSQRTD, SEM_FN_NAME (frvbf,fsqrtd) },
28736   { FRVBF_INSN_CFSQRTS, SEM_FN_NAME (frvbf,cfsqrts) },
28737   { FRVBF_INSN_NFSQRTS, SEM_FN_NAME (frvbf,nfsqrts) },
28738   { FRVBF_INSN_FADDS, SEM_FN_NAME (frvbf,fadds) },
28739   { FRVBF_INSN_FSUBS, SEM_FN_NAME (frvbf,fsubs) },
28740   { FRVBF_INSN_FMULS, SEM_FN_NAME (frvbf,fmuls) },
28741   { FRVBF_INSN_FDIVS, SEM_FN_NAME (frvbf,fdivs) },
28742   { FRVBF_INSN_FADDD, SEM_FN_NAME (frvbf,faddd) },
28743   { FRVBF_INSN_FSUBD, SEM_FN_NAME (frvbf,fsubd) },
28744   { FRVBF_INSN_FMULD, SEM_FN_NAME (frvbf,fmuld) },
28745   { FRVBF_INSN_FDIVD, SEM_FN_NAME (frvbf,fdivd) },
28746   { FRVBF_INSN_CFADDS, SEM_FN_NAME (frvbf,cfadds) },
28747   { FRVBF_INSN_CFSUBS, SEM_FN_NAME (frvbf,cfsubs) },
28748   { FRVBF_INSN_CFMULS, SEM_FN_NAME (frvbf,cfmuls) },
28749   { FRVBF_INSN_CFDIVS, SEM_FN_NAME (frvbf,cfdivs) },
28750   { FRVBF_INSN_NFADDS, SEM_FN_NAME (frvbf,nfadds) },
28751   { FRVBF_INSN_NFSUBS, SEM_FN_NAME (frvbf,nfsubs) },
28752   { FRVBF_INSN_NFMULS, SEM_FN_NAME (frvbf,nfmuls) },
28753   { FRVBF_INSN_NFDIVS, SEM_FN_NAME (frvbf,nfdivs) },
28754   { FRVBF_INSN_FCMPS, SEM_FN_NAME (frvbf,fcmps) },
28755   { FRVBF_INSN_FCMPD, SEM_FN_NAME (frvbf,fcmpd) },
28756   { FRVBF_INSN_CFCMPS, SEM_FN_NAME (frvbf,cfcmps) },
28757   { FRVBF_INSN_FDCMPS, SEM_FN_NAME (frvbf,fdcmps) },
28758   { FRVBF_INSN_FMADDS, SEM_FN_NAME (frvbf,fmadds) },
28759   { FRVBF_INSN_FMSUBS, SEM_FN_NAME (frvbf,fmsubs) },
28760   { FRVBF_INSN_FMADDD, SEM_FN_NAME (frvbf,fmaddd) },
28761   { FRVBF_INSN_FMSUBD, SEM_FN_NAME (frvbf,fmsubd) },
28762   { FRVBF_INSN_FDMADDS, SEM_FN_NAME (frvbf,fdmadds) },
28763   { FRVBF_INSN_NFDMADDS, SEM_FN_NAME (frvbf,nfdmadds) },
28764   { FRVBF_INSN_CFMADDS, SEM_FN_NAME (frvbf,cfmadds) },
28765   { FRVBF_INSN_CFMSUBS, SEM_FN_NAME (frvbf,cfmsubs) },
28766   { FRVBF_INSN_NFMADDS, SEM_FN_NAME (frvbf,nfmadds) },
28767   { FRVBF_INSN_NFMSUBS, SEM_FN_NAME (frvbf,nfmsubs) },
28768   { FRVBF_INSN_FMAS, SEM_FN_NAME (frvbf,fmas) },
28769   { FRVBF_INSN_FMSS, SEM_FN_NAME (frvbf,fmss) },
28770   { FRVBF_INSN_FDMAS, SEM_FN_NAME (frvbf,fdmas) },
28771   { FRVBF_INSN_FDMSS, SEM_FN_NAME (frvbf,fdmss) },
28772   { FRVBF_INSN_NFDMAS, SEM_FN_NAME (frvbf,nfdmas) },
28773   { FRVBF_INSN_NFDMSS, SEM_FN_NAME (frvbf,nfdmss) },
28774   { FRVBF_INSN_CFMAS, SEM_FN_NAME (frvbf,cfmas) },
28775   { FRVBF_INSN_CFMSS, SEM_FN_NAME (frvbf,cfmss) },
28776   { FRVBF_INSN_FMAD, SEM_FN_NAME (frvbf,fmad) },
28777   { FRVBF_INSN_FMSD, SEM_FN_NAME (frvbf,fmsd) },
28778   { FRVBF_INSN_NFMAS, SEM_FN_NAME (frvbf,nfmas) },
28779   { FRVBF_INSN_NFMSS, SEM_FN_NAME (frvbf,nfmss) },
28780   { FRVBF_INSN_FDADDS, SEM_FN_NAME (frvbf,fdadds) },
28781   { FRVBF_INSN_FDSUBS, SEM_FN_NAME (frvbf,fdsubs) },
28782   { FRVBF_INSN_FDMULS, SEM_FN_NAME (frvbf,fdmuls) },
28783   { FRVBF_INSN_FDDIVS, SEM_FN_NAME (frvbf,fddivs) },
28784   { FRVBF_INSN_FDSADS, SEM_FN_NAME (frvbf,fdsads) },
28785   { FRVBF_INSN_FDMULCS, SEM_FN_NAME (frvbf,fdmulcs) },
28786   { FRVBF_INSN_NFDMULCS, SEM_FN_NAME (frvbf,nfdmulcs) },
28787   { FRVBF_INSN_NFDADDS, SEM_FN_NAME (frvbf,nfdadds) },
28788   { FRVBF_INSN_NFDSUBS, SEM_FN_NAME (frvbf,nfdsubs) },
28789   { FRVBF_INSN_NFDMULS, SEM_FN_NAME (frvbf,nfdmuls) },
28790   { FRVBF_INSN_NFDDIVS, SEM_FN_NAME (frvbf,nfddivs) },
28791   { FRVBF_INSN_NFDSADS, SEM_FN_NAME (frvbf,nfdsads) },
28792   { FRVBF_INSN_NFDCMPS, SEM_FN_NAME (frvbf,nfdcmps) },
28793   { FRVBF_INSN_MHSETLOS, SEM_FN_NAME (frvbf,mhsetlos) },
28794   { FRVBF_INSN_MHSETHIS, SEM_FN_NAME (frvbf,mhsethis) },
28795   { FRVBF_INSN_MHDSETS, SEM_FN_NAME (frvbf,mhdsets) },
28796   { FRVBF_INSN_MHSETLOH, SEM_FN_NAME (frvbf,mhsetloh) },
28797   { FRVBF_INSN_MHSETHIH, SEM_FN_NAME (frvbf,mhsethih) },
28798   { FRVBF_INSN_MHDSETH, SEM_FN_NAME (frvbf,mhdseth) },
28799   { FRVBF_INSN_MAND, SEM_FN_NAME (frvbf,mand) },
28800   { FRVBF_INSN_MOR, SEM_FN_NAME (frvbf,mor) },
28801   { FRVBF_INSN_MXOR, SEM_FN_NAME (frvbf,mxor) },
28802   { FRVBF_INSN_CMAND, SEM_FN_NAME (frvbf,cmand) },
28803   { FRVBF_INSN_CMOR, SEM_FN_NAME (frvbf,cmor) },
28804   { FRVBF_INSN_CMXOR, SEM_FN_NAME (frvbf,cmxor) },
28805   { FRVBF_INSN_MNOT, SEM_FN_NAME (frvbf,mnot) },
28806   { FRVBF_INSN_CMNOT, SEM_FN_NAME (frvbf,cmnot) },
28807   { FRVBF_INSN_MROTLI, SEM_FN_NAME (frvbf,mrotli) },
28808   { FRVBF_INSN_MROTRI, SEM_FN_NAME (frvbf,mrotri) },
28809   { FRVBF_INSN_MWCUT, SEM_FN_NAME (frvbf,mwcut) },
28810   { FRVBF_INSN_MWCUTI, SEM_FN_NAME (frvbf,mwcuti) },
28811   { FRVBF_INSN_MCUT, SEM_FN_NAME (frvbf,mcut) },
28812   { FRVBF_INSN_MCUTI, SEM_FN_NAME (frvbf,mcuti) },
28813   { FRVBF_INSN_MCUTSS, SEM_FN_NAME (frvbf,mcutss) },
28814   { FRVBF_INSN_MCUTSSI, SEM_FN_NAME (frvbf,mcutssi) },
28815   { FRVBF_INSN_MDCUTSSI, SEM_FN_NAME (frvbf,mdcutssi) },
28816   { FRVBF_INSN_MAVEH, SEM_FN_NAME (frvbf,maveh) },
28817   { FRVBF_INSN_MSLLHI, SEM_FN_NAME (frvbf,msllhi) },
28818   { FRVBF_INSN_MSRLHI, SEM_FN_NAME (frvbf,msrlhi) },
28819   { FRVBF_INSN_MSRAHI, SEM_FN_NAME (frvbf,msrahi) },
28820   { FRVBF_INSN_MDROTLI, SEM_FN_NAME (frvbf,mdrotli) },
28821   { FRVBF_INSN_MCPLHI, SEM_FN_NAME (frvbf,mcplhi) },
28822   { FRVBF_INSN_MCPLI, SEM_FN_NAME (frvbf,mcpli) },
28823   { FRVBF_INSN_MSATHS, SEM_FN_NAME (frvbf,msaths) },
28824   { FRVBF_INSN_MQSATHS, SEM_FN_NAME (frvbf,mqsaths) },
28825   { FRVBF_INSN_MSATHU, SEM_FN_NAME (frvbf,msathu) },
28826   { FRVBF_INSN_MCMPSH, SEM_FN_NAME (frvbf,mcmpsh) },
28827   { FRVBF_INSN_MCMPUH, SEM_FN_NAME (frvbf,mcmpuh) },
28828   { FRVBF_INSN_MABSHS, SEM_FN_NAME (frvbf,mabshs) },
28829   { FRVBF_INSN_MADDHSS, SEM_FN_NAME (frvbf,maddhss) },
28830   { FRVBF_INSN_MADDHUS, SEM_FN_NAME (frvbf,maddhus) },
28831   { FRVBF_INSN_MSUBHSS, SEM_FN_NAME (frvbf,msubhss) },
28832   { FRVBF_INSN_MSUBHUS, SEM_FN_NAME (frvbf,msubhus) },
28833   { FRVBF_INSN_CMADDHSS, SEM_FN_NAME (frvbf,cmaddhss) },
28834   { FRVBF_INSN_CMADDHUS, SEM_FN_NAME (frvbf,cmaddhus) },
28835   { FRVBF_INSN_CMSUBHSS, SEM_FN_NAME (frvbf,cmsubhss) },
28836   { FRVBF_INSN_CMSUBHUS, SEM_FN_NAME (frvbf,cmsubhus) },
28837   { FRVBF_INSN_MQADDHSS, SEM_FN_NAME (frvbf,mqaddhss) },
28838   { FRVBF_INSN_MQADDHUS, SEM_FN_NAME (frvbf,mqaddhus) },
28839   { FRVBF_INSN_MQSUBHSS, SEM_FN_NAME (frvbf,mqsubhss) },
28840   { FRVBF_INSN_MQSUBHUS, SEM_FN_NAME (frvbf,mqsubhus) },
28841   { FRVBF_INSN_CMQADDHSS, SEM_FN_NAME (frvbf,cmqaddhss) },
28842   { FRVBF_INSN_CMQADDHUS, SEM_FN_NAME (frvbf,cmqaddhus) },
28843   { FRVBF_INSN_CMQSUBHSS, SEM_FN_NAME (frvbf,cmqsubhss) },
28844   { FRVBF_INSN_CMQSUBHUS, SEM_FN_NAME (frvbf,cmqsubhus) },
28845   { FRVBF_INSN_MQLCLRHS, SEM_FN_NAME (frvbf,mqlclrhs) },
28846   { FRVBF_INSN_MQLMTHS, SEM_FN_NAME (frvbf,mqlmths) },
28847   { FRVBF_INSN_MQSLLHI, SEM_FN_NAME (frvbf,mqsllhi) },
28848   { FRVBF_INSN_MQSRAHI, SEM_FN_NAME (frvbf,mqsrahi) },
28849   { FRVBF_INSN_MADDACCS, SEM_FN_NAME (frvbf,maddaccs) },
28850   { FRVBF_INSN_MSUBACCS, SEM_FN_NAME (frvbf,msubaccs) },
28851   { FRVBF_INSN_MDADDACCS, SEM_FN_NAME (frvbf,mdaddaccs) },
28852   { FRVBF_INSN_MDSUBACCS, SEM_FN_NAME (frvbf,mdsubaccs) },
28853   { FRVBF_INSN_MASACCS, SEM_FN_NAME (frvbf,masaccs) },
28854   { FRVBF_INSN_MDASACCS, SEM_FN_NAME (frvbf,mdasaccs) },
28855   { FRVBF_INSN_MMULHS, SEM_FN_NAME (frvbf,mmulhs) },
28856   { FRVBF_INSN_MMULHU, SEM_FN_NAME (frvbf,mmulhu) },
28857   { FRVBF_INSN_MMULXHS, SEM_FN_NAME (frvbf,mmulxhs) },
28858   { FRVBF_INSN_MMULXHU, SEM_FN_NAME (frvbf,mmulxhu) },
28859   { FRVBF_INSN_CMMULHS, SEM_FN_NAME (frvbf,cmmulhs) },
28860   { FRVBF_INSN_CMMULHU, SEM_FN_NAME (frvbf,cmmulhu) },
28861   { FRVBF_INSN_MQMULHS, SEM_FN_NAME (frvbf,mqmulhs) },
28862   { FRVBF_INSN_MQMULHU, SEM_FN_NAME (frvbf,mqmulhu) },
28863   { FRVBF_INSN_MQMULXHS, SEM_FN_NAME (frvbf,mqmulxhs) },
28864   { FRVBF_INSN_MQMULXHU, SEM_FN_NAME (frvbf,mqmulxhu) },
28865   { FRVBF_INSN_CMQMULHS, SEM_FN_NAME (frvbf,cmqmulhs) },
28866   { FRVBF_INSN_CMQMULHU, SEM_FN_NAME (frvbf,cmqmulhu) },
28867   { FRVBF_INSN_MMACHS, SEM_FN_NAME (frvbf,mmachs) },
28868   { FRVBF_INSN_MMACHU, SEM_FN_NAME (frvbf,mmachu) },
28869   { FRVBF_INSN_MMRDHS, SEM_FN_NAME (frvbf,mmrdhs) },
28870   { FRVBF_INSN_MMRDHU, SEM_FN_NAME (frvbf,mmrdhu) },
28871   { FRVBF_INSN_CMMACHS, SEM_FN_NAME (frvbf,cmmachs) },
28872   { FRVBF_INSN_CMMACHU, SEM_FN_NAME (frvbf,cmmachu) },
28873   { FRVBF_INSN_MQMACHS, SEM_FN_NAME (frvbf,mqmachs) },
28874   { FRVBF_INSN_MQMACHU, SEM_FN_NAME (frvbf,mqmachu) },
28875   { FRVBF_INSN_CMQMACHS, SEM_FN_NAME (frvbf,cmqmachs) },
28876   { FRVBF_INSN_CMQMACHU, SEM_FN_NAME (frvbf,cmqmachu) },
28877   { FRVBF_INSN_MQXMACHS, SEM_FN_NAME (frvbf,mqxmachs) },
28878   { FRVBF_INSN_MQXMACXHS, SEM_FN_NAME (frvbf,mqxmacxhs) },
28879   { FRVBF_INSN_MQMACXHS, SEM_FN_NAME (frvbf,mqmacxhs) },
28880   { FRVBF_INSN_MCPXRS, SEM_FN_NAME (frvbf,mcpxrs) },
28881   { FRVBF_INSN_MCPXRU, SEM_FN_NAME (frvbf,mcpxru) },
28882   { FRVBF_INSN_MCPXIS, SEM_FN_NAME (frvbf,mcpxis) },
28883   { FRVBF_INSN_MCPXIU, SEM_FN_NAME (frvbf,mcpxiu) },
28884   { FRVBF_INSN_CMCPXRS, SEM_FN_NAME (frvbf,cmcpxrs) },
28885   { FRVBF_INSN_CMCPXRU, SEM_FN_NAME (frvbf,cmcpxru) },
28886   { FRVBF_INSN_CMCPXIS, SEM_FN_NAME (frvbf,cmcpxis) },
28887   { FRVBF_INSN_CMCPXIU, SEM_FN_NAME (frvbf,cmcpxiu) },
28888   { FRVBF_INSN_MQCPXRS, SEM_FN_NAME (frvbf,mqcpxrs) },
28889   { FRVBF_INSN_MQCPXRU, SEM_FN_NAME (frvbf,mqcpxru) },
28890   { FRVBF_INSN_MQCPXIS, SEM_FN_NAME (frvbf,mqcpxis) },
28891   { FRVBF_INSN_MQCPXIU, SEM_FN_NAME (frvbf,mqcpxiu) },
28892   { FRVBF_INSN_MEXPDHW, SEM_FN_NAME (frvbf,mexpdhw) },
28893   { FRVBF_INSN_CMEXPDHW, SEM_FN_NAME (frvbf,cmexpdhw) },
28894   { FRVBF_INSN_MEXPDHD, SEM_FN_NAME (frvbf,mexpdhd) },
28895   { FRVBF_INSN_CMEXPDHD, SEM_FN_NAME (frvbf,cmexpdhd) },
28896   { FRVBF_INSN_MPACKH, SEM_FN_NAME (frvbf,mpackh) },
28897   { FRVBF_INSN_MDPACKH, SEM_FN_NAME (frvbf,mdpackh) },
28898   { FRVBF_INSN_MUNPACKH, SEM_FN_NAME (frvbf,munpackh) },
28899   { FRVBF_INSN_MDUNPACKH, SEM_FN_NAME (frvbf,mdunpackh) },
28900   { FRVBF_INSN_MBTOH, SEM_FN_NAME (frvbf,mbtoh) },
28901   { FRVBF_INSN_CMBTOH, SEM_FN_NAME (frvbf,cmbtoh) },
28902   { FRVBF_INSN_MHTOB, SEM_FN_NAME (frvbf,mhtob) },
28903   { FRVBF_INSN_CMHTOB, SEM_FN_NAME (frvbf,cmhtob) },
28904   { FRVBF_INSN_MBTOHE, SEM_FN_NAME (frvbf,mbtohe) },
28905   { FRVBF_INSN_CMBTOHE, SEM_FN_NAME (frvbf,cmbtohe) },
28906   { FRVBF_INSN_MNOP, SEM_FN_NAME (frvbf,mnop) },
28907   { FRVBF_INSN_MCLRACC_0, SEM_FN_NAME (frvbf,mclracc_0) },
28908   { FRVBF_INSN_MCLRACC_1, SEM_FN_NAME (frvbf,mclracc_1) },
28909   { FRVBF_INSN_MRDACC, SEM_FN_NAME (frvbf,mrdacc) },
28910   { FRVBF_INSN_MRDACCG, SEM_FN_NAME (frvbf,mrdaccg) },
28911   { FRVBF_INSN_MWTACC, SEM_FN_NAME (frvbf,mwtacc) },
28912   { FRVBF_INSN_MWTACCG, SEM_FN_NAME (frvbf,mwtaccg) },
28913   { FRVBF_INSN_MCOP1, SEM_FN_NAME (frvbf,mcop1) },
28914   { FRVBF_INSN_MCOP2, SEM_FN_NAME (frvbf,mcop2) },
28915   { FRVBF_INSN_FNOP, SEM_FN_NAME (frvbf,fnop) },
28916   { 0, 0 }
28917 };
28918
28919 /* Add the semantic fns to IDESC_TABLE.  */
28920
28921 void
28922 SEM_FN_NAME (frvbf,init_idesc_table) (SIM_CPU *current_cpu)
28923 {
28924   IDESC *idesc_table = CPU_IDESC (current_cpu);
28925   const struct sem_fn_desc *sf;
28926   int mach_num = MACH_NUM (CPU_MACH (current_cpu));
28927
28928   for (sf = &sem_fns[0]; sf->fn != 0; ++sf)
28929     {
28930       const CGEN_INSN *insn = idesc_table[sf->index].idata;
28931       int valid_p = (CGEN_INSN_VIRTUAL_P (insn)
28932                      || CGEN_INSN_MACH_HAS_P (insn, mach_num));
28933 #if FAST_P
28934       if (valid_p)
28935         idesc_table[sf->index].sem_fast = sf->fn;
28936       else
28937         idesc_table[sf->index].sem_fast = SEM_FN_NAME (frvbf,x_invalid);
28938 #else
28939       if (valid_p)
28940         idesc_table[sf->index].sem_full = sf->fn;
28941       else
28942         idesc_table[sf->index].sem_full = SEM_FN_NAME (frvbf,x_invalid);
28943 #endif
28944     }
28945 }
28946