2003-09-12 Dave Brolley <brolley@redhat.com>
[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, 1997, 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
6
7 This file is part of the GNU simulators.
8
9 This program 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 2, or (at your option)
12 any later version.
13
14 This program is distributed in the hope that it will be useful,
15 but WITHOUT ANY WARRANTY; without even the implied warranty of
16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17 GNU General Public 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 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
22
23 */
24
25 #define WANT_CPU frvbf
26 #define WANT_CPU_FRVBF
27
28 #include "sim-main.h"
29 #include "cgen-mem.h"
30 #include "cgen-ops.h"
31
32 #undef GET_ATTR
33 #if defined (__STDC__) || defined (ALMOST_STDC) || defined (HAVE_STRINGIZE)
34 #define GET_ATTR(cpu, num, attr) CGEN_ATTR_VALUE (NULL, abuf->idesc->attrs, CGEN_INSN_##attr)
35 #else
36 #define GET_ATTR(cpu, num, attr) CGEN_ATTR_VALUE (NULL, abuf->idesc->attrs, CGEN_INSN_/**/attr)
37 #endif
38
39 /* This is used so that we can compile two copies of the semantic code,
40    one with full feature support and one without that runs fast(er).
41    FAST_P, when desired, is defined on the command line, -DFAST_P=1.  */
42 #if FAST_P
43 #define SEM_FN_NAME(cpu,fn) XCONCAT3 (cpu,_semf_,fn)
44 #undef TRACE_RESULT
45 #define TRACE_RESULT(cpu, abuf, name, type, val)
46 #else
47 #define SEM_FN_NAME(cpu,fn) XCONCAT3 (cpu,_sem_,fn)
48 #endif
49
50 /* x-invalid: --invalid-- */
51
52 static SEM_PC
53 SEM_FN_NAME (frvbf,x_invalid) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
54 {
55 #define FLD(f) abuf->fields.fmt_empty.f
56   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
57   int UNUSED written = 0;
58   IADDR UNUSED pc = abuf->addr;
59   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 0);
60
61   {
62     /* Update the recorded pc in the cpu state struct.
63        Only necessary for WITH_SCACHE case, but to avoid the
64        conditional compilation ....  */
65     SET_H_PC (pc);
66     /* Virtual insns have zero size.  Overwrite vpc with address of next insn
67        using the default-insn-bitsize spec.  When executing insns in parallel
68        we may want to queue the fault and continue execution.  */
69     vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
70     vpc = sim_engine_invalid_insn (current_cpu, pc, vpc);
71   }
72
73   return vpc;
74 #undef FLD
75 }
76
77 /* x-after: --after-- */
78
79 static SEM_PC
80 SEM_FN_NAME (frvbf,x_after) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
81 {
82 #define FLD(f) abuf->fields.fmt_empty.f
83   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
84   int UNUSED written = 0;
85   IADDR UNUSED pc = abuf->addr;
86   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 0);
87
88   {
89 #if WITH_SCACHE_PBB_FRVBF
90     frvbf_pbb_after (current_cpu, sem_arg);
91 #endif
92   }
93
94   return vpc;
95 #undef FLD
96 }
97
98 /* x-before: --before-- */
99
100 static SEM_PC
101 SEM_FN_NAME (frvbf,x_before) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
102 {
103 #define FLD(f) abuf->fields.fmt_empty.f
104   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
105   int UNUSED written = 0;
106   IADDR UNUSED pc = abuf->addr;
107   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 0);
108
109   {
110 #if WITH_SCACHE_PBB_FRVBF
111     frvbf_pbb_before (current_cpu, sem_arg);
112 #endif
113   }
114
115   return vpc;
116 #undef FLD
117 }
118
119 /* x-cti-chain: --cti-chain-- */
120
121 static SEM_PC
122 SEM_FN_NAME (frvbf,x_cti_chain) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
123 {
124 #define FLD(f) abuf->fields.fmt_empty.f
125   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
126   int UNUSED written = 0;
127   IADDR UNUSED pc = abuf->addr;
128   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 0);
129
130   {
131 #if WITH_SCACHE_PBB_FRVBF
132 #ifdef DEFINE_SWITCH
133     vpc = frvbf_pbb_cti_chain (current_cpu, sem_arg,
134                                pbb_br_type, pbb_br_npc);
135     BREAK (sem);
136 #else
137     /* FIXME: Allow provision of explicit ifmt spec in insn spec.  */
138     vpc = frvbf_pbb_cti_chain (current_cpu, sem_arg,
139                                CPU_PBB_BR_TYPE (current_cpu),
140                                CPU_PBB_BR_NPC (current_cpu));
141 #endif
142 #endif
143   }
144
145   return vpc;
146 #undef FLD
147 }
148
149 /* x-chain: --chain-- */
150
151 static SEM_PC
152 SEM_FN_NAME (frvbf,x_chain) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
153 {
154 #define FLD(f) abuf->fields.fmt_empty.f
155   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
156   int UNUSED written = 0;
157   IADDR UNUSED pc = abuf->addr;
158   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 0);
159
160   {
161 #if WITH_SCACHE_PBB_FRVBF
162     vpc = frvbf_pbb_chain (current_cpu, sem_arg);
163 #ifdef DEFINE_SWITCH
164     BREAK (sem);
165 #endif
166 #endif
167   }
168
169   return vpc;
170 #undef FLD
171 }
172
173 /* x-begin: --begin-- */
174
175 static SEM_PC
176 SEM_FN_NAME (frvbf,x_begin) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
177 {
178 #define FLD(f) abuf->fields.fmt_empty.f
179   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
180   int UNUSED written = 0;
181   IADDR UNUSED pc = abuf->addr;
182   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 0);
183
184   {
185 #if WITH_SCACHE_PBB_FRVBF
186 #if defined DEFINE_SWITCH || defined FAST_P
187     /* In the switch case FAST_P is a constant, allowing several optimizations
188        in any called inline functions.  */
189     vpc = frvbf_pbb_begin (current_cpu, FAST_P);
190 #else
191 #if 0 /* cgen engine can't handle dynamic fast/full switching yet.  */
192     vpc = frvbf_pbb_begin (current_cpu, STATE_RUN_FAST_P (CPU_STATE (current_cpu)));
193 #else
194     vpc = frvbf_pbb_begin (current_cpu, 0);
195 #endif
196 #endif
197 #endif
198   }
199
200   return vpc;
201 #undef FLD
202 }
203
204 /* add: add$pack $GRi,$GRj,$GRk */
205
206 static SEM_PC
207 SEM_FN_NAME (frvbf,add) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
208 {
209 #define FLD(f) abuf->fields.sfmt_addcc.f
210   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
211   int UNUSED written = 0;
212   IADDR UNUSED pc = abuf->addr;
213   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
214
215   {
216     SI opval = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
217     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
218     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
219   }
220
221   return vpc;
222 #undef FLD
223 }
224
225 /* sub: sub$pack $GRi,$GRj,$GRk */
226
227 static SEM_PC
228 SEM_FN_NAME (frvbf,sub) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
229 {
230 #define FLD(f) abuf->fields.sfmt_addcc.f
231   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
232   int UNUSED written = 0;
233   IADDR UNUSED pc = abuf->addr;
234   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
235
236   {
237     SI opval = SUBSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
238     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
239     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
240   }
241
242   return vpc;
243 #undef FLD
244 }
245
246 /* and: and$pack $GRi,$GRj,$GRk */
247
248 static SEM_PC
249 SEM_FN_NAME (frvbf,and) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
250 {
251 #define FLD(f) abuf->fields.sfmt_addcc.f
252   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
253   int UNUSED written = 0;
254   IADDR UNUSED pc = abuf->addr;
255   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
256
257   {
258     SI opval = ANDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
259     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
260     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
261   }
262
263   return vpc;
264 #undef FLD
265 }
266
267 /* or: or$pack $GRi,$GRj,$GRk */
268
269 static SEM_PC
270 SEM_FN_NAME (frvbf,or) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
271 {
272 #define FLD(f) abuf->fields.sfmt_addcc.f
273   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
274   int UNUSED written = 0;
275   IADDR UNUSED pc = abuf->addr;
276   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
277
278   {
279     SI opval = ORSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
280     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
281     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
282   }
283
284   return vpc;
285 #undef FLD
286 }
287
288 /* xor: xor$pack $GRi,$GRj,$GRk */
289
290 static SEM_PC
291 SEM_FN_NAME (frvbf,xor) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
292 {
293 #define FLD(f) abuf->fields.sfmt_addcc.f
294   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
295   int UNUSED written = 0;
296   IADDR UNUSED pc = abuf->addr;
297   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
298
299   {
300     SI opval = XORSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
301     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
302     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
303   }
304
305   return vpc;
306 #undef FLD
307 }
308
309 /* not: not$pack $GRj,$GRk */
310
311 static SEM_PC
312 SEM_FN_NAME (frvbf,not) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
313 {
314 #define FLD(f) abuf->fields.sfmt_addcc.f
315   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
316   int UNUSED written = 0;
317   IADDR UNUSED pc = abuf->addr;
318   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
319
320   {
321     SI opval = INVSI (GET_H_GR (FLD (f_GRj)));
322     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
323     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
324   }
325
326   return vpc;
327 #undef FLD
328 }
329
330 /* sdiv: sdiv$pack $GRi,$GRj,$GRk */
331
332 static SEM_PC
333 SEM_FN_NAME (frvbf,sdiv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
334 {
335 #define FLD(f) abuf->fields.sfmt_addcc.f
336   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
337   int UNUSED written = 0;
338   IADDR UNUSED pc = abuf->addr;
339   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
340
341 {
342 frvbf_signed_integer_divide (current_cpu, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), FLD (f_GRk), 0);
343 ; /*clobber*/
344 }
345
346   return vpc;
347 #undef FLD
348 }
349
350 /* nsdiv: nsdiv$pack $GRi,$GRj,$GRk */
351
352 static SEM_PC
353 SEM_FN_NAME (frvbf,nsdiv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
354 {
355 #define FLD(f) abuf->fields.sfmt_addcc.f
356   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
357   int UNUSED written = 0;
358   IADDR UNUSED pc = abuf->addr;
359   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
360
361 {
362 frvbf_signed_integer_divide (current_cpu, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), FLD (f_GRk), 1);
363 ; /*clobber*/
364 }
365
366   return vpc;
367 #undef FLD
368 }
369
370 /* udiv: udiv$pack $GRi,$GRj,$GRk */
371
372 static SEM_PC
373 SEM_FN_NAME (frvbf,udiv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
374 {
375 #define FLD(f) abuf->fields.sfmt_addcc.f
376   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
377   int UNUSED written = 0;
378   IADDR UNUSED pc = abuf->addr;
379   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
380
381 {
382 frvbf_unsigned_integer_divide (current_cpu, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), FLD (f_GRk), 0);
383 ; /*clobber*/
384 }
385
386   return vpc;
387 #undef FLD
388 }
389
390 /* nudiv: nudiv$pack $GRi,$GRj,$GRk */
391
392 static SEM_PC
393 SEM_FN_NAME (frvbf,nudiv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
394 {
395 #define FLD(f) abuf->fields.sfmt_addcc.f
396   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
397   int UNUSED written = 0;
398   IADDR UNUSED pc = abuf->addr;
399   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
400
401 {
402 frvbf_unsigned_integer_divide (current_cpu, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), FLD (f_GRk), 1);
403 ; /*clobber*/
404 }
405
406   return vpc;
407 #undef FLD
408 }
409
410 /* smul: smul$pack $GRi,$GRj,$GRdoublek */
411
412 static SEM_PC
413 SEM_FN_NAME (frvbf,smul) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
414 {
415 #define FLD(f) abuf->fields.sfmt_smulcc.f
416   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
417   int UNUSED written = 0;
418   IADDR UNUSED pc = abuf->addr;
419   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
420
421   {
422     DI opval = MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi))), EXTSIDI (GET_H_GR (FLD (f_GRj))));
423     sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
424     TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
425   }
426
427   return vpc;
428 #undef FLD
429 }
430
431 /* umul: umul$pack $GRi,$GRj,$GRdoublek */
432
433 static SEM_PC
434 SEM_FN_NAME (frvbf,umul) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
435 {
436 #define FLD(f) abuf->fields.sfmt_smulcc.f
437   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
438   int UNUSED written = 0;
439   IADDR UNUSED pc = abuf->addr;
440   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
441
442   {
443     DI opval = MULDI (ZEXTSIDI (GET_H_GR (FLD (f_GRi))), ZEXTSIDI (GET_H_GR (FLD (f_GRj))));
444     sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
445     TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
446   }
447
448   return vpc;
449 #undef FLD
450 }
451
452 /* sll: sll$pack $GRi,$GRj,$GRk */
453
454 static SEM_PC
455 SEM_FN_NAME (frvbf,sll) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
456 {
457 #define FLD(f) abuf->fields.sfmt_addcc.f
458   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
459   int UNUSED written = 0;
460   IADDR UNUSED pc = abuf->addr;
461   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
462
463   {
464     SI opval = SLLSI (GET_H_GR (FLD (f_GRi)), ANDSI (GET_H_GR (FLD (f_GRj)), 31));
465     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
466     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
467   }
468
469   return vpc;
470 #undef FLD
471 }
472
473 /* srl: srl$pack $GRi,$GRj,$GRk */
474
475 static SEM_PC
476 SEM_FN_NAME (frvbf,srl) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
477 {
478 #define FLD(f) abuf->fields.sfmt_addcc.f
479   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
480   int UNUSED written = 0;
481   IADDR UNUSED pc = abuf->addr;
482   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
483
484   {
485     SI opval = SRLSI (GET_H_GR (FLD (f_GRi)), ANDSI (GET_H_GR (FLD (f_GRj)), 31));
486     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
487     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
488   }
489
490   return vpc;
491 #undef FLD
492 }
493
494 /* sra: sra$pack $GRi,$GRj,$GRk */
495
496 static SEM_PC
497 SEM_FN_NAME (frvbf,sra) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
498 {
499 #define FLD(f) abuf->fields.sfmt_addcc.f
500   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
501   int UNUSED written = 0;
502   IADDR UNUSED pc = abuf->addr;
503   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
504
505   {
506     SI opval = SRASI (GET_H_GR (FLD (f_GRi)), ANDSI (GET_H_GR (FLD (f_GRj)), 31));
507     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
508     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
509   }
510
511   return vpc;
512 #undef FLD
513 }
514
515 /* scan: scan$pack $GRi,$GRj,$GRk */
516
517 static SEM_PC
518 SEM_FN_NAME (frvbf,scan) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
519 {
520 #define FLD(f) abuf->fields.sfmt_addcc.f
521   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
522   int UNUSED written = 0;
523   IADDR UNUSED pc = abuf->addr;
524   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
525
526 {
527   SI tmp_tmp1;
528   SI tmp_tmp2;
529   tmp_tmp1 = GET_H_GR (FLD (f_GRi));
530   tmp_tmp2 = SRASI (GET_H_GR (FLD (f_GRj)), 1);
531   {
532     SI opval = frvbf_scan_result (current_cpu, XORSI (tmp_tmp1, tmp_tmp2));
533     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
534     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
535   }
536 }
537
538   return vpc;
539 #undef FLD
540 }
541
542 /* cadd: cadd$pack $GRi,$GRj,$GRk,$CCi,$cond */
543
544 static SEM_PC
545 SEM_FN_NAME (frvbf,cadd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
546 {
547 #define FLD(f) abuf->fields.sfmt_cswap.f
548   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
549   int UNUSED written = 0;
550   IADDR UNUSED pc = abuf->addr;
551   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
552
553 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
554   {
555     SI opval = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
556     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
557     written |= (1 << 4);
558     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
559   }
560 }
561
562   abuf->written = written;
563   return vpc;
564 #undef FLD
565 }
566
567 /* csub: csub$pack $GRi,$GRj,$GRk,$CCi,$cond */
568
569 static SEM_PC
570 SEM_FN_NAME (frvbf,csub) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
571 {
572 #define FLD(f) abuf->fields.sfmt_cswap.f
573   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
574   int UNUSED written = 0;
575   IADDR UNUSED pc = abuf->addr;
576   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
577
578 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
579   {
580     SI opval = SUBSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
581     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
582     written |= (1 << 4);
583     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
584   }
585 }
586
587   abuf->written = written;
588   return vpc;
589 #undef FLD
590 }
591
592 /* cand: cand$pack $GRi,$GRj,$GRk,$CCi,$cond */
593
594 static SEM_PC
595 SEM_FN_NAME (frvbf,cand) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
596 {
597 #define FLD(f) abuf->fields.sfmt_cswap.f
598   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
599   int UNUSED written = 0;
600   IADDR UNUSED pc = abuf->addr;
601   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
602
603 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
604   {
605     SI opval = ANDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
606     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
607     written |= (1 << 4);
608     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
609   }
610 }
611
612   abuf->written = written;
613   return vpc;
614 #undef FLD
615 }
616
617 /* cor: cor$pack $GRi,$GRj,$GRk,$CCi,$cond */
618
619 static SEM_PC
620 SEM_FN_NAME (frvbf,cor) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
621 {
622 #define FLD(f) abuf->fields.sfmt_cswap.f
623   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
624   int UNUSED written = 0;
625   IADDR UNUSED pc = abuf->addr;
626   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
627
628 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
629   {
630     SI opval = ORSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
631     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
632     written |= (1 << 4);
633     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
634   }
635 }
636
637   abuf->written = written;
638   return vpc;
639 #undef FLD
640 }
641
642 /* cxor: cxor$pack $GRi,$GRj,$GRk,$CCi,$cond */
643
644 static SEM_PC
645 SEM_FN_NAME (frvbf,cxor) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
646 {
647 #define FLD(f) abuf->fields.sfmt_cswap.f
648   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
649   int UNUSED written = 0;
650   IADDR UNUSED pc = abuf->addr;
651   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
652
653 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
654   {
655     SI opval = XORSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
656     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
657     written |= (1 << 4);
658     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
659   }
660 }
661
662   abuf->written = written;
663   return vpc;
664 #undef FLD
665 }
666
667 /* cnot: cnot$pack $GRj,$GRk,$CCi,$cond */
668
669 static SEM_PC
670 SEM_FN_NAME (frvbf,cnot) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
671 {
672 #define FLD(f) abuf->fields.sfmt_cswap.f
673   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
674   int UNUSED written = 0;
675   IADDR UNUSED pc = abuf->addr;
676   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
677
678 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
679   {
680     SI opval = INVSI (GET_H_GR (FLD (f_GRj)));
681     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
682     written |= (1 << 3);
683     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
684   }
685 }
686
687   abuf->written = written;
688   return vpc;
689 #undef FLD
690 }
691
692 /* csmul: csmul$pack $GRi,$GRj,$GRdoublek,$CCi,$cond */
693
694 static SEM_PC
695 SEM_FN_NAME (frvbf,csmul) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
696 {
697 #define FLD(f) abuf->fields.sfmt_clddu.f
698   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
699   int UNUSED written = 0;
700   IADDR UNUSED pc = abuf->addr;
701   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
702
703 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
704   {
705     DI opval = MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi))), EXTSIDI (GET_H_GR (FLD (f_GRj))));
706     sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
707     written |= (1 << 4);
708     TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
709   }
710 }
711
712   abuf->written = written;
713   return vpc;
714 #undef FLD
715 }
716
717 /* csdiv: csdiv$pack $GRi,$GRj,$GRk,$CCi,$cond */
718
719 static SEM_PC
720 SEM_FN_NAME (frvbf,csdiv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
721 {
722 #define FLD(f) abuf->fields.sfmt_cswap.f
723   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
724   int UNUSED written = 0;
725   IADDR UNUSED pc = abuf->addr;
726   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
727
728 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
729 {
730 frvbf_signed_integer_divide (current_cpu, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), FLD (f_GRk), 0);
731 ; /*clobber*/
732 }
733 }
734
735   abuf->written = written;
736   return vpc;
737 #undef FLD
738 }
739
740 /* cudiv: cudiv$pack $GRi,$GRj,$GRk,$CCi,$cond */
741
742 static SEM_PC
743 SEM_FN_NAME (frvbf,cudiv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
744 {
745 #define FLD(f) abuf->fields.sfmt_cswap.f
746   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
747   int UNUSED written = 0;
748   IADDR UNUSED pc = abuf->addr;
749   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
750
751 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
752 {
753 frvbf_unsigned_integer_divide (current_cpu, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), FLD (f_GRk), 0);
754 ; /*clobber*/
755 }
756 }
757
758   abuf->written = written;
759   return vpc;
760 #undef FLD
761 }
762
763 /* csll: csll$pack $GRi,$GRj,$GRk,$CCi,$cond */
764
765 static SEM_PC
766 SEM_FN_NAME (frvbf,csll) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
767 {
768 #define FLD(f) abuf->fields.sfmt_cswap.f
769   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
770   int UNUSED written = 0;
771   IADDR UNUSED pc = abuf->addr;
772   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
773
774 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
775   {
776     SI opval = SLLSI (GET_H_GR (FLD (f_GRi)), ANDSI (GET_H_GR (FLD (f_GRj)), 31));
777     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
778     written |= (1 << 4);
779     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
780   }
781 }
782
783   abuf->written = written;
784   return vpc;
785 #undef FLD
786 }
787
788 /* csrl: csrl$pack $GRi,$GRj,$GRk,$CCi,$cond */
789
790 static SEM_PC
791 SEM_FN_NAME (frvbf,csrl) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
792 {
793 #define FLD(f) abuf->fields.sfmt_cswap.f
794   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
795   int UNUSED written = 0;
796   IADDR UNUSED pc = abuf->addr;
797   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
798
799 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
800   {
801     SI opval = SRLSI (GET_H_GR (FLD (f_GRi)), ANDSI (GET_H_GR (FLD (f_GRj)), 31));
802     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
803     written |= (1 << 4);
804     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
805   }
806 }
807
808   abuf->written = written;
809   return vpc;
810 #undef FLD
811 }
812
813 /* csra: csra$pack $GRi,$GRj,$GRk,$CCi,$cond */
814
815 static SEM_PC
816 SEM_FN_NAME (frvbf,csra) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
817 {
818 #define FLD(f) abuf->fields.sfmt_cswap.f
819   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
820   int UNUSED written = 0;
821   IADDR UNUSED pc = abuf->addr;
822   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
823
824 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
825   {
826     SI opval = SRASI (GET_H_GR (FLD (f_GRi)), ANDSI (GET_H_GR (FLD (f_GRj)), 31));
827     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
828     written |= (1 << 4);
829     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
830   }
831 }
832
833   abuf->written = written;
834   return vpc;
835 #undef FLD
836 }
837
838 /* cscan: cscan$pack $GRi,$GRj,$GRk,$CCi,$cond */
839
840 static SEM_PC
841 SEM_FN_NAME (frvbf,cscan) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
842 {
843 #define FLD(f) abuf->fields.sfmt_cswap.f
844   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
845   int UNUSED written = 0;
846   IADDR UNUSED pc = abuf->addr;
847   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
848
849 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
850 {
851   SI tmp_tmp1;
852   SI tmp_tmp2;
853   tmp_tmp1 = GET_H_GR (FLD (f_GRi));
854   tmp_tmp2 = SRASI (GET_H_GR (FLD (f_GRj)), 1);
855   {
856     SI opval = frvbf_scan_result (current_cpu, XORSI (tmp_tmp1, tmp_tmp2));
857     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
858     written |= (1 << 4);
859     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
860   }
861 }
862 }
863
864   abuf->written = written;
865   return vpc;
866 #undef FLD
867 }
868
869 /* addcc: addcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
870
871 static SEM_PC
872 SEM_FN_NAME (frvbf,addcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
873 {
874 #define FLD(f) abuf->fields.sfmt_addcc.f
875   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
876   int UNUSED written = 0;
877   IADDR UNUSED pc = abuf->addr;
878   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
879
880 {
881   BI tmp_tmp;
882   QI tmp_cc;
883   SI tmp_result;
884   tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
885   tmp_tmp = ADDOFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), 0);
886 if (EQBI (tmp_tmp, 0)) {
887   tmp_cc = ANDQI (tmp_cc, 13);
888 } else {
889   tmp_cc = ORQI (tmp_cc, 2);
890 }
891   tmp_tmp = ADDCFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), 0);
892 if (EQBI (tmp_tmp, 0)) {
893   tmp_cc = ANDQI (tmp_cc, 14);
894 } else {
895   tmp_cc = ORQI (tmp_cc, 1);
896 }
897   tmp_result = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
898 if (EQSI (tmp_result, 0)) {
899   tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
900 } else {
901 if (LTSI (tmp_result, 0)) {
902   tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
903 } else {
904   tmp_cc = ANDQI (tmp_cc, 3);
905 }
906 }
907   {
908     SI opval = tmp_result;
909     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
910     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
911   }
912   {
913     UQI opval = tmp_cc;
914     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
915     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
916   }
917 }
918
919   return vpc;
920 #undef FLD
921 }
922
923 /* subcc: subcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
924
925 static SEM_PC
926 SEM_FN_NAME (frvbf,subcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
927 {
928 #define FLD(f) abuf->fields.sfmt_addcc.f
929   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
930   int UNUSED written = 0;
931   IADDR UNUSED pc = abuf->addr;
932   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
933
934 {
935   BI tmp_tmp;
936   QI tmp_cc;
937   SI tmp_result;
938   tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
939   tmp_tmp = SUBOFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), 0);
940 if (EQBI (tmp_tmp, 0)) {
941   tmp_cc = ANDQI (tmp_cc, 13);
942 } else {
943   tmp_cc = ORQI (tmp_cc, 2);
944 }
945   tmp_tmp = SUBCFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), 0);
946 if (EQBI (tmp_tmp, 0)) {
947   tmp_cc = ANDQI (tmp_cc, 14);
948 } else {
949   tmp_cc = ORQI (tmp_cc, 1);
950 }
951   tmp_result = SUBSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
952 if (EQSI (tmp_result, 0)) {
953   tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
954 } else {
955 if (LTSI (tmp_result, 0)) {
956   tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
957 } else {
958   tmp_cc = ANDQI (tmp_cc, 3);
959 }
960 }
961   {
962     SI opval = tmp_result;
963     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
964     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
965   }
966   {
967     UQI opval = tmp_cc;
968     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
969     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
970   }
971 }
972
973   return vpc;
974 #undef FLD
975 }
976
977 /* andcc: andcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
978
979 static SEM_PC
980 SEM_FN_NAME (frvbf,andcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
981 {
982 #define FLD(f) abuf->fields.sfmt_addcc.f
983   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
984   int UNUSED written = 0;
985   IADDR UNUSED pc = abuf->addr;
986   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
987
988 {
989   SI tmp_tmp;
990   tmp_tmp = ANDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
991   {
992     SI opval = tmp_tmp;
993     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
994     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
995   }
996 if (EQSI (tmp_tmp, 0)) {
997   {
998     UQI opval = ORQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 7), 4);
999     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1000     written |= (1 << 4);
1001     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1002   }
1003 } else {
1004 if (LTSI (tmp_tmp, 0)) {
1005   {
1006     UQI opval = ORQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 11), 8);
1007     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1008     written |= (1 << 4);
1009     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1010   }
1011 } else {
1012   {
1013     UQI opval = ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 3);
1014     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1015     written |= (1 << 4);
1016     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1017   }
1018 }
1019 }
1020 }
1021
1022   abuf->written = written;
1023   return vpc;
1024 #undef FLD
1025 }
1026
1027 /* orcc: orcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
1028
1029 static SEM_PC
1030 SEM_FN_NAME (frvbf,orcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1031 {
1032 #define FLD(f) abuf->fields.sfmt_addcc.f
1033   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1034   int UNUSED written = 0;
1035   IADDR UNUSED pc = abuf->addr;
1036   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1037
1038 {
1039   SI tmp_tmp;
1040   tmp_tmp = ORSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
1041   {
1042     SI opval = tmp_tmp;
1043     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1044     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1045   }
1046 if (EQSI (tmp_tmp, 0)) {
1047   {
1048     UQI opval = ORQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 7), 4);
1049     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1050     written |= (1 << 4);
1051     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1052   }
1053 } else {
1054 if (LTSI (tmp_tmp, 0)) {
1055   {
1056     UQI opval = ORQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 11), 8);
1057     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1058     written |= (1 << 4);
1059     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1060   }
1061 } else {
1062   {
1063     UQI opval = ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 3);
1064     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1065     written |= (1 << 4);
1066     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1067   }
1068 }
1069 }
1070 }
1071
1072   abuf->written = written;
1073   return vpc;
1074 #undef FLD
1075 }
1076
1077 /* xorcc: xorcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
1078
1079 static SEM_PC
1080 SEM_FN_NAME (frvbf,xorcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1081 {
1082 #define FLD(f) abuf->fields.sfmt_addcc.f
1083   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1084   int UNUSED written = 0;
1085   IADDR UNUSED pc = abuf->addr;
1086   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1087
1088 {
1089   SI tmp_tmp;
1090   tmp_tmp = XORSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
1091   {
1092     SI opval = tmp_tmp;
1093     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1094     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1095   }
1096 if (EQSI (tmp_tmp, 0)) {
1097   {
1098     UQI opval = ORQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 7), 4);
1099     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1100     written |= (1 << 4);
1101     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1102   }
1103 } else {
1104 if (LTSI (tmp_tmp, 0)) {
1105   {
1106     UQI opval = ORQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 11), 8);
1107     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1108     written |= (1 << 4);
1109     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1110   }
1111 } else {
1112   {
1113     UQI opval = ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 3);
1114     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1115     written |= (1 << 4);
1116     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1117   }
1118 }
1119 }
1120 }
1121
1122   abuf->written = written;
1123   return vpc;
1124 #undef FLD
1125 }
1126
1127 /* sllcc: sllcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
1128
1129 static SEM_PC
1130 SEM_FN_NAME (frvbf,sllcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1131 {
1132 #define FLD(f) abuf->fields.sfmt_addcc.f
1133   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1134   int UNUSED written = 0;
1135   IADDR UNUSED pc = abuf->addr;
1136   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1137
1138 {
1139   SI tmp_shift;
1140   SI tmp_tmp;
1141   QI tmp_cc;
1142   tmp_shift = ANDSI (GET_H_GR (FLD (f_GRj)), 31);
1143   tmp_cc = frvbf_set_icc_for_shift_left (current_cpu, GET_H_GR (FLD (f_GRi)), tmp_shift, CPU (h_iccr[FLD (f_ICCi_1)]));
1144   tmp_tmp = SLLSI (GET_H_GR (FLD (f_GRi)), tmp_shift);
1145   {
1146     SI opval = tmp_tmp;
1147     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1148     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1149   }
1150 if (EQSI (tmp_tmp, 0)) {
1151   tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
1152 } else {
1153 if (LTSI (tmp_tmp, 0)) {
1154   tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
1155 } else {
1156   tmp_cc = ANDQI (tmp_cc, 3);
1157 }
1158 }
1159   {
1160     UQI opval = tmp_cc;
1161     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1162     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1163   }
1164 }
1165
1166   return vpc;
1167 #undef FLD
1168 }
1169
1170 /* srlcc: srlcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
1171
1172 static SEM_PC
1173 SEM_FN_NAME (frvbf,srlcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1174 {
1175 #define FLD(f) abuf->fields.sfmt_addcc.f
1176   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1177   int UNUSED written = 0;
1178   IADDR UNUSED pc = abuf->addr;
1179   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1180
1181 {
1182   SI tmp_shift;
1183   SI tmp_tmp;
1184   QI tmp_cc;
1185   tmp_shift = ANDSI (GET_H_GR (FLD (f_GRj)), 31);
1186   tmp_cc = frvbf_set_icc_for_shift_right (current_cpu, GET_H_GR (FLD (f_GRi)), tmp_shift, CPU (h_iccr[FLD (f_ICCi_1)]));
1187   tmp_tmp = SRLSI (GET_H_GR (FLD (f_GRi)), tmp_shift);
1188   {
1189     SI opval = tmp_tmp;
1190     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1191     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1192   }
1193 if (EQSI (tmp_tmp, 0)) {
1194   tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
1195 } else {
1196 if (LTSI (tmp_tmp, 0)) {
1197   tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
1198 } else {
1199   tmp_cc = ANDQI (tmp_cc, 3);
1200 }
1201 }
1202   {
1203     UQI opval = tmp_cc;
1204     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1205     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1206   }
1207 }
1208
1209   return vpc;
1210 #undef FLD
1211 }
1212
1213 /* sracc: sracc$pack $GRi,$GRj,$GRk,$ICCi_1 */
1214
1215 static SEM_PC
1216 SEM_FN_NAME (frvbf,sracc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1217 {
1218 #define FLD(f) abuf->fields.sfmt_addcc.f
1219   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1220   int UNUSED written = 0;
1221   IADDR UNUSED pc = abuf->addr;
1222   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1223
1224 {
1225   SI tmp_shift;
1226   SI tmp_tmp;
1227   QI tmp_cc;
1228   tmp_shift = ANDSI (GET_H_GR (FLD (f_GRj)), 31);
1229   tmp_cc = frvbf_set_icc_for_shift_right (current_cpu, GET_H_GR (FLD (f_GRi)), tmp_shift, CPU (h_iccr[FLD (f_ICCi_1)]));
1230   tmp_tmp = SRASI (GET_H_GR (FLD (f_GRi)), tmp_shift);
1231   {
1232     SI opval = tmp_tmp;
1233     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1234     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1235   }
1236 if (EQSI (tmp_tmp, 0)) {
1237   tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
1238 } else {
1239 if (LTSI (tmp_tmp, 0)) {
1240   tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
1241 } else {
1242   tmp_cc = ANDQI (tmp_cc, 3);
1243 }
1244 }
1245   {
1246     UQI opval = tmp_cc;
1247     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1248     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1249   }
1250 }
1251
1252   return vpc;
1253 #undef FLD
1254 }
1255
1256 /* smulcc: smulcc$pack $GRi,$GRj,$GRdoublek,$ICCi_1 */
1257
1258 static SEM_PC
1259 SEM_FN_NAME (frvbf,smulcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1260 {
1261 #define FLD(f) abuf->fields.sfmt_smulcc.f
1262   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1263   int UNUSED written = 0;
1264   IADDR UNUSED pc = abuf->addr;
1265   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1266
1267 {
1268   DI tmp_tmp;
1269   QI tmp_cc;
1270   tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
1271   tmp_tmp = MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi))), EXTSIDI (GET_H_GR (FLD (f_GRj))));
1272 if (EQDI (SRLDI (tmp_tmp, 63), 0)) {
1273   tmp_cc = ANDQI (tmp_cc, 7);
1274 } else {
1275   tmp_cc = ORQI (tmp_cc, 8);
1276 }
1277 if (EQBI (EQDI (tmp_tmp, 0), 0)) {
1278   tmp_cc = ANDQI (tmp_cc, 11);
1279 } else {
1280   tmp_cc = ORQI (tmp_cc, 4);
1281 }
1282   {
1283     DI opval = tmp_tmp;
1284     sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
1285     TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
1286   }
1287   {
1288     UQI opval = tmp_cc;
1289     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1290     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1291   }
1292 }
1293
1294   return vpc;
1295 #undef FLD
1296 }
1297
1298 /* umulcc: umulcc$pack $GRi,$GRj,$GRdoublek,$ICCi_1 */
1299
1300 static SEM_PC
1301 SEM_FN_NAME (frvbf,umulcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1302 {
1303 #define FLD(f) abuf->fields.sfmt_smulcc.f
1304   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1305   int UNUSED written = 0;
1306   IADDR UNUSED pc = abuf->addr;
1307   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1308
1309 {
1310   DI tmp_tmp;
1311   QI tmp_cc;
1312   tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
1313   tmp_tmp = MULDI (ZEXTSIDI (GET_H_GR (FLD (f_GRi))), ZEXTSIDI (GET_H_GR (FLD (f_GRj))));
1314 if (EQDI (SRLDI (tmp_tmp, 63), 0)) {
1315   tmp_cc = ANDQI (tmp_cc, 7);
1316 } else {
1317   tmp_cc = ORQI (tmp_cc, 8);
1318 }
1319 if (EQBI (EQDI (tmp_tmp, 0), 0)) {
1320   tmp_cc = ANDQI (tmp_cc, 11);
1321 } else {
1322   tmp_cc = ORQI (tmp_cc, 4);
1323 }
1324   {
1325     DI opval = tmp_tmp;
1326     sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
1327     TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
1328   }
1329   {
1330     UQI opval = tmp_cc;
1331     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1332     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1333   }
1334 }
1335
1336   return vpc;
1337 #undef FLD
1338 }
1339
1340 /* caddcc: caddcc$pack $GRi,$GRj,$GRk,$CCi,$cond */
1341
1342 static SEM_PC
1343 SEM_FN_NAME (frvbf,caddcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1344 {
1345 #define FLD(f) abuf->fields.sfmt_caddcc.f
1346   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1347   int UNUSED written = 0;
1348   IADDR UNUSED pc = abuf->addr;
1349   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1350
1351 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
1352 {
1353   BI tmp_tmp;
1354   QI tmp_cc;
1355   SI tmp_result;
1356   tmp_cc = CPU (h_iccr[((FLD (f_CCi)) & (3))]);
1357   tmp_tmp = ADDOFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), 0);
1358 if (EQBI (tmp_tmp, 0)) {
1359   tmp_cc = ANDQI (tmp_cc, 13);
1360 } else {
1361   tmp_cc = ORQI (tmp_cc, 2);
1362 }
1363   tmp_tmp = ADDCFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), 0);
1364 if (EQBI (tmp_tmp, 0)) {
1365   tmp_cc = ANDQI (tmp_cc, 14);
1366 } else {
1367   tmp_cc = ORQI (tmp_cc, 1);
1368 }
1369   tmp_result = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
1370 if (EQSI (tmp_result, 0)) {
1371   tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
1372 } else {
1373 if (LTSI (tmp_result, 0)) {
1374   tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
1375 } else {
1376   tmp_cc = ANDQI (tmp_cc, 3);
1377 }
1378 }
1379   {
1380     SI opval = tmp_result;
1381     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1382     written |= (1 << 6);
1383     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1384   }
1385   {
1386     UQI opval = tmp_cc;
1387     sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);
1388     written |= (1 << 7);
1389     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1390   }
1391 }
1392 }
1393
1394   abuf->written = written;
1395   return vpc;
1396 #undef FLD
1397 }
1398
1399 /* csubcc: csubcc$pack $GRi,$GRj,$GRk,$CCi,$cond */
1400
1401 static SEM_PC
1402 SEM_FN_NAME (frvbf,csubcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1403 {
1404 #define FLD(f) abuf->fields.sfmt_caddcc.f
1405   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1406   int UNUSED written = 0;
1407   IADDR UNUSED pc = abuf->addr;
1408   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1409
1410 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
1411 {
1412   BI tmp_tmp;
1413   QI tmp_cc;
1414   SI tmp_result;
1415   tmp_cc = CPU (h_iccr[((FLD (f_CCi)) & (3))]);
1416   tmp_tmp = SUBOFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), 0);
1417 if (EQBI (tmp_tmp, 0)) {
1418   tmp_cc = ANDQI (tmp_cc, 13);
1419 } else {
1420   tmp_cc = ORQI (tmp_cc, 2);
1421 }
1422   tmp_tmp = SUBCFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), 0);
1423 if (EQBI (tmp_tmp, 0)) {
1424   tmp_cc = ANDQI (tmp_cc, 14);
1425 } else {
1426   tmp_cc = ORQI (tmp_cc, 1);
1427 }
1428   tmp_result = SUBSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
1429 if (EQSI (tmp_result, 0)) {
1430   tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
1431 } else {
1432 if (LTSI (tmp_result, 0)) {
1433   tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
1434 } else {
1435   tmp_cc = ANDQI (tmp_cc, 3);
1436 }
1437 }
1438   {
1439     SI opval = tmp_result;
1440     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1441     written |= (1 << 6);
1442     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1443   }
1444   {
1445     UQI opval = tmp_cc;
1446     sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);
1447     written |= (1 << 7);
1448     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1449   }
1450 }
1451 }
1452
1453   abuf->written = written;
1454   return vpc;
1455 #undef FLD
1456 }
1457
1458 /* csmulcc: csmulcc$pack $GRi,$GRj,$GRdoublek,$CCi,$cond */
1459
1460 static SEM_PC
1461 SEM_FN_NAME (frvbf,csmulcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1462 {
1463 #define FLD(f) abuf->fields.sfmt_csmulcc.f
1464   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1465   int UNUSED written = 0;
1466   IADDR UNUSED pc = abuf->addr;
1467   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1468
1469 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
1470 {
1471   DI tmp_tmp;
1472   QI tmp_cc;
1473   tmp_cc = CPU (h_iccr[((FLD (f_CCi)) & (3))]);
1474   tmp_tmp = MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi))), EXTSIDI (GET_H_GR (FLD (f_GRj))));
1475 if (EQDI (SRLDI (tmp_tmp, 63), 0)) {
1476   tmp_cc = ANDQI (tmp_cc, 7);
1477 } else {
1478   tmp_cc = ORQI (tmp_cc, 8);
1479 }
1480 if (EQBI (EQDI (tmp_tmp, 0), 0)) {
1481   tmp_cc = ANDQI (tmp_cc, 11);
1482 } else {
1483   tmp_cc = ORQI (tmp_cc, 4);
1484 }
1485   {
1486     DI opval = tmp_tmp;
1487     sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
1488     written |= (1 << 6);
1489     TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
1490   }
1491   {
1492     UQI opval = tmp_cc;
1493     sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);
1494     written |= (1 << 7);
1495     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1496   }
1497 }
1498 }
1499
1500   abuf->written = written;
1501   return vpc;
1502 #undef FLD
1503 }
1504
1505 /* candcc: candcc$pack $GRi,$GRj,$GRk,$CCi,$cond */
1506
1507 static SEM_PC
1508 SEM_FN_NAME (frvbf,candcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1509 {
1510 #define FLD(f) abuf->fields.sfmt_caddcc.f
1511   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1512   int UNUSED written = 0;
1513   IADDR UNUSED pc = abuf->addr;
1514   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1515
1516 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
1517 {
1518   SI tmp_tmp;
1519   tmp_tmp = ANDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
1520   {
1521     SI opval = tmp_tmp;
1522     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1523     written |= (1 << 6);
1524     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1525   }
1526 if (EQSI (tmp_tmp, 0)) {
1527   {
1528     UQI opval = ORQI (ANDQI (CPU (h_iccr[((FLD (f_CCi)) & (3))]), 7), 4);
1529     sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);
1530     written |= (1 << 7);
1531     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1532   }
1533 } else {
1534 if (LTSI (tmp_tmp, 0)) {
1535   {
1536     UQI opval = ORQI (ANDQI (CPU (h_iccr[((FLD (f_CCi)) & (3))]), 11), 8);
1537     sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);
1538     written |= (1 << 7);
1539     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1540   }
1541 } else {
1542   {
1543     UQI opval = ANDQI (CPU (h_iccr[((FLD (f_CCi)) & (3))]), 3);
1544     sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);
1545     written |= (1 << 7);
1546     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1547   }
1548 }
1549 }
1550 }
1551 }
1552
1553   abuf->written = written;
1554   return vpc;
1555 #undef FLD
1556 }
1557
1558 /* corcc: corcc$pack $GRi,$GRj,$GRk,$CCi,$cond */
1559
1560 static SEM_PC
1561 SEM_FN_NAME (frvbf,corcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1562 {
1563 #define FLD(f) abuf->fields.sfmt_caddcc.f
1564   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1565   int UNUSED written = 0;
1566   IADDR UNUSED pc = abuf->addr;
1567   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1568
1569 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
1570 {
1571   SI tmp_tmp;
1572   tmp_tmp = ORSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
1573   {
1574     SI opval = tmp_tmp;
1575     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1576     written |= (1 << 6);
1577     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1578   }
1579 if (EQSI (tmp_tmp, 0)) {
1580   {
1581     UQI opval = ORQI (ANDQI (CPU (h_iccr[((FLD (f_CCi)) & (3))]), 7), 4);
1582     sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);
1583     written |= (1 << 7);
1584     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1585   }
1586 } else {
1587 if (LTSI (tmp_tmp, 0)) {
1588   {
1589     UQI opval = ORQI (ANDQI (CPU (h_iccr[((FLD (f_CCi)) & (3))]), 11), 8);
1590     sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);
1591     written |= (1 << 7);
1592     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1593   }
1594 } else {
1595   {
1596     UQI opval = ANDQI (CPU (h_iccr[((FLD (f_CCi)) & (3))]), 3);
1597     sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);
1598     written |= (1 << 7);
1599     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1600   }
1601 }
1602 }
1603 }
1604 }
1605
1606   abuf->written = written;
1607   return vpc;
1608 #undef FLD
1609 }
1610
1611 /* cxorcc: cxorcc$pack $GRi,$GRj,$GRk,$CCi,$cond */
1612
1613 static SEM_PC
1614 SEM_FN_NAME (frvbf,cxorcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1615 {
1616 #define FLD(f) abuf->fields.sfmt_caddcc.f
1617   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1618   int UNUSED written = 0;
1619   IADDR UNUSED pc = abuf->addr;
1620   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1621
1622 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
1623 {
1624   SI tmp_tmp;
1625   tmp_tmp = XORSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
1626   {
1627     SI opval = tmp_tmp;
1628     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1629     written |= (1 << 6);
1630     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1631   }
1632 if (EQSI (tmp_tmp, 0)) {
1633   {
1634     UQI opval = ORQI (ANDQI (CPU (h_iccr[((FLD (f_CCi)) & (3))]), 7), 4);
1635     sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);
1636     written |= (1 << 7);
1637     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1638   }
1639 } else {
1640 if (LTSI (tmp_tmp, 0)) {
1641   {
1642     UQI opval = ORQI (ANDQI (CPU (h_iccr[((FLD (f_CCi)) & (3))]), 11), 8);
1643     sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);
1644     written |= (1 << 7);
1645     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1646   }
1647 } else {
1648   {
1649     UQI opval = ANDQI (CPU (h_iccr[((FLD (f_CCi)) & (3))]), 3);
1650     sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);
1651     written |= (1 << 7);
1652     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1653   }
1654 }
1655 }
1656 }
1657 }
1658
1659   abuf->written = written;
1660   return vpc;
1661 #undef FLD
1662 }
1663
1664 /* csllcc: csllcc$pack $GRi,$GRj,$GRk,$CCi,$cond */
1665
1666 static SEM_PC
1667 SEM_FN_NAME (frvbf,csllcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1668 {
1669 #define FLD(f) abuf->fields.sfmt_caddcc.f
1670   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1671   int UNUSED written = 0;
1672   IADDR UNUSED pc = abuf->addr;
1673   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1674
1675 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
1676 {
1677   SI tmp_shift;
1678   SI tmp_tmp;
1679   QI tmp_cc;
1680   tmp_shift = ANDSI (GET_H_GR (FLD (f_GRj)), 31);
1681   tmp_cc = frvbf_set_icc_for_shift_left (current_cpu, GET_H_GR (FLD (f_GRi)), tmp_shift, CPU (h_iccr[((FLD (f_CCi)) & (3))]));
1682   tmp_tmp = SLLSI (GET_H_GR (FLD (f_GRi)), tmp_shift);
1683   {
1684     SI opval = tmp_tmp;
1685     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1686     written |= (1 << 6);
1687     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1688   }
1689 if (EQSI (tmp_tmp, 0)) {
1690   tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
1691 } else {
1692 if (LTSI (tmp_tmp, 0)) {
1693   tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
1694 } else {
1695   tmp_cc = ANDQI (tmp_cc, 3);
1696 }
1697 }
1698   {
1699     UQI opval = tmp_cc;
1700     sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);
1701     written |= (1 << 7);
1702     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1703   }
1704 }
1705 }
1706
1707   abuf->written = written;
1708   return vpc;
1709 #undef FLD
1710 }
1711
1712 /* csrlcc: csrlcc$pack $GRi,$GRj,$GRk,$CCi,$cond */
1713
1714 static SEM_PC
1715 SEM_FN_NAME (frvbf,csrlcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1716 {
1717 #define FLD(f) abuf->fields.sfmt_caddcc.f
1718   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1719   int UNUSED written = 0;
1720   IADDR UNUSED pc = abuf->addr;
1721   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1722
1723 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
1724 {
1725   SI tmp_shift;
1726   SI tmp_tmp;
1727   QI tmp_cc;
1728   tmp_shift = ANDSI (GET_H_GR (FLD (f_GRj)), 31);
1729   tmp_cc = frvbf_set_icc_for_shift_right (current_cpu, GET_H_GR (FLD (f_GRi)), tmp_shift, CPU (h_iccr[((FLD (f_CCi)) & (3))]));
1730   tmp_tmp = SRLSI (GET_H_GR (FLD (f_GRi)), tmp_shift);
1731   {
1732     SI opval = tmp_tmp;
1733     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1734     written |= (1 << 6);
1735     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1736   }
1737 if (EQSI (tmp_tmp, 0)) {
1738   tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
1739 } else {
1740 if (LTSI (tmp_tmp, 0)) {
1741   tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
1742 } else {
1743   tmp_cc = ANDQI (tmp_cc, 3);
1744 }
1745 }
1746   {
1747     UQI opval = tmp_cc;
1748     sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);
1749     written |= (1 << 7);
1750     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1751   }
1752 }
1753 }
1754
1755   abuf->written = written;
1756   return vpc;
1757 #undef FLD
1758 }
1759
1760 /* csracc: csracc$pack $GRi,$GRj,$GRk,$CCi,$cond */
1761
1762 static SEM_PC
1763 SEM_FN_NAME (frvbf,csracc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1764 {
1765 #define FLD(f) abuf->fields.sfmt_caddcc.f
1766   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1767   int UNUSED written = 0;
1768   IADDR UNUSED pc = abuf->addr;
1769   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1770
1771 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
1772 {
1773   SI tmp_shift;
1774   SI tmp_tmp;
1775   QI tmp_cc;
1776   tmp_shift = ANDSI (GET_H_GR (FLD (f_GRj)), 31);
1777   tmp_cc = frvbf_set_icc_for_shift_right (current_cpu, GET_H_GR (FLD (f_GRi)), tmp_shift, CPU (h_iccr[((FLD (f_CCi)) & (3))]));
1778   tmp_tmp = SRASI (GET_H_GR (FLD (f_GRi)), tmp_shift);
1779   {
1780     SI opval = tmp_tmp;
1781     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1782     written |= (1 << 6);
1783     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1784   }
1785 if (EQSI (tmp_tmp, 0)) {
1786   tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
1787 } else {
1788 if (LTSI (tmp_tmp, 0)) {
1789   tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
1790 } else {
1791   tmp_cc = ANDQI (tmp_cc, 3);
1792 }
1793 }
1794   {
1795     UQI opval = tmp_cc;
1796     sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);
1797     written |= (1 << 7);
1798     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1799   }
1800 }
1801 }
1802
1803   abuf->written = written;
1804   return vpc;
1805 #undef FLD
1806 }
1807
1808 /* addx: addx$pack $GRi,$GRj,$GRk,$ICCi_1 */
1809
1810 static SEM_PC
1811 SEM_FN_NAME (frvbf,addx) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1812 {
1813 #define FLD(f) abuf->fields.sfmt_addcc.f
1814   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1815   int UNUSED written = 0;
1816   IADDR UNUSED pc = abuf->addr;
1817   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1818
1819   {
1820     SI opval = ADDCSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 1)));
1821     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1822     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1823   }
1824
1825   return vpc;
1826 #undef FLD
1827 }
1828
1829 /* subx: subx$pack $GRi,$GRj,$GRk,$ICCi_1 */
1830
1831 static SEM_PC
1832 SEM_FN_NAME (frvbf,subx) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1833 {
1834 #define FLD(f) abuf->fields.sfmt_addcc.f
1835   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1836   int UNUSED written = 0;
1837   IADDR UNUSED pc = abuf->addr;
1838   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1839
1840   {
1841     SI opval = SUBCSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 1)));
1842     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1843     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1844   }
1845
1846   return vpc;
1847 #undef FLD
1848 }
1849
1850 /* addxcc: addxcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
1851
1852 static SEM_PC
1853 SEM_FN_NAME (frvbf,addxcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1854 {
1855 #define FLD(f) abuf->fields.sfmt_addcc.f
1856   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1857   int UNUSED written = 0;
1858   IADDR UNUSED pc = abuf->addr;
1859   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1860
1861 {
1862   SI tmp_tmp;
1863   QI tmp_cc;
1864   tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
1865   tmp_tmp = ADDCSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), TRUNCQIBI (ANDQI (tmp_cc, 1)));
1866 if (EQSI (ADDOFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), TRUNCQIBI (ANDQI (tmp_cc, 1))), 0)) {
1867   tmp_cc = ANDQI (tmp_cc, 13);
1868 } else {
1869   tmp_cc = ORQI (tmp_cc, 2);
1870 }
1871 if (EQSI (ADDCFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), TRUNCQIBI (ANDQI (tmp_cc, 1))), 0)) {
1872   tmp_cc = ANDQI (tmp_cc, 14);
1873 } else {
1874   tmp_cc = ORQI (tmp_cc, 1);
1875 }
1876 if (EQSI (tmp_tmp, 0)) {
1877   tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
1878 } else {
1879 if (LTSI (tmp_tmp, 0)) {
1880   tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
1881 } else {
1882   tmp_cc = ANDQI (tmp_cc, 3);
1883 }
1884 }
1885   {
1886     SI opval = tmp_tmp;
1887     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1888     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1889   }
1890   {
1891     UQI opval = tmp_cc;
1892     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1893     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1894   }
1895 }
1896
1897   return vpc;
1898 #undef FLD
1899 }
1900
1901 /* subxcc: subxcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
1902
1903 static SEM_PC
1904 SEM_FN_NAME (frvbf,subxcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1905 {
1906 #define FLD(f) abuf->fields.sfmt_addcc.f
1907   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1908   int UNUSED written = 0;
1909   IADDR UNUSED pc = abuf->addr;
1910   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1911
1912 {
1913   SI tmp_tmp;
1914   QI tmp_cc;
1915   tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
1916   tmp_tmp = SUBCSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), TRUNCQIBI (ANDQI (tmp_cc, 1)));
1917 if (EQSI (SUBOFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), TRUNCQIBI (ANDQI (tmp_cc, 1))), 0)) {
1918   tmp_cc = ANDQI (tmp_cc, 13);
1919 } else {
1920   tmp_cc = ORQI (tmp_cc, 2);
1921 }
1922 if (EQSI (SUBCFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), TRUNCQIBI (ANDQI (tmp_cc, 1))), 0)) {
1923   tmp_cc = ANDQI (tmp_cc, 14);
1924 } else {
1925   tmp_cc = ORQI (tmp_cc, 1);
1926 }
1927 if (EQSI (tmp_tmp, 0)) {
1928   tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
1929 } else {
1930 if (LTSI (tmp_tmp, 0)) {
1931   tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
1932 } else {
1933   tmp_cc = ANDQI (tmp_cc, 3);
1934 }
1935 }
1936   {
1937     SI opval = tmp_tmp;
1938     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1939     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1940   }
1941   {
1942     UQI opval = tmp_cc;
1943     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1944     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1945   }
1946 }
1947
1948   return vpc;
1949 #undef FLD
1950 }
1951
1952 /* addi: addi$pack $GRi,$s12,$GRk */
1953
1954 static SEM_PC
1955 SEM_FN_NAME (frvbf,addi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1956 {
1957 #define FLD(f) abuf->fields.sfmt_swapi.f
1958   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1959   int UNUSED written = 0;
1960   IADDR UNUSED pc = abuf->addr;
1961   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1962
1963   {
1964     SI opval = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
1965     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1966     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1967   }
1968
1969   return vpc;
1970 #undef FLD
1971 }
1972
1973 /* subi: subi$pack $GRi,$s12,$GRk */
1974
1975 static SEM_PC
1976 SEM_FN_NAME (frvbf,subi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1977 {
1978 #define FLD(f) abuf->fields.sfmt_swapi.f
1979   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1980   int UNUSED written = 0;
1981   IADDR UNUSED pc = abuf->addr;
1982   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1983
1984   {
1985     SI opval = SUBSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
1986     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1987     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1988   }
1989
1990   return vpc;
1991 #undef FLD
1992 }
1993
1994 /* andi: andi$pack $GRi,$s12,$GRk */
1995
1996 static SEM_PC
1997 SEM_FN_NAME (frvbf,andi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1998 {
1999 #define FLD(f) abuf->fields.sfmt_swapi.f
2000   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2001   int UNUSED written = 0;
2002   IADDR UNUSED pc = abuf->addr;
2003   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2004
2005   {
2006     SI opval = ANDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
2007     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2008     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2009   }
2010
2011   return vpc;
2012 #undef FLD
2013 }
2014
2015 /* ori: ori$pack $GRi,$s12,$GRk */
2016
2017 static SEM_PC
2018 SEM_FN_NAME (frvbf,ori) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2019 {
2020 #define FLD(f) abuf->fields.sfmt_swapi.f
2021   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2022   int UNUSED written = 0;
2023   IADDR UNUSED pc = abuf->addr;
2024   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2025
2026   {
2027     SI opval = ORSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
2028     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2029     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2030   }
2031
2032   return vpc;
2033 #undef FLD
2034 }
2035
2036 /* xori: xori$pack $GRi,$s12,$GRk */
2037
2038 static SEM_PC
2039 SEM_FN_NAME (frvbf,xori) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2040 {
2041 #define FLD(f) abuf->fields.sfmt_swapi.f
2042   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2043   int UNUSED written = 0;
2044   IADDR UNUSED pc = abuf->addr;
2045   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2046
2047   {
2048     SI opval = XORSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
2049     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2050     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2051   }
2052
2053   return vpc;
2054 #undef FLD
2055 }
2056
2057 /* sdivi: sdivi$pack $GRi,$s12,$GRk */
2058
2059 static SEM_PC
2060 SEM_FN_NAME (frvbf,sdivi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2061 {
2062 #define FLD(f) abuf->fields.sfmt_swapi.f
2063   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2064   int UNUSED written = 0;
2065   IADDR UNUSED pc = abuf->addr;
2066   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2067
2068 {
2069 frvbf_signed_integer_divide (current_cpu, GET_H_GR (FLD (f_GRi)), FLD (f_d12), FLD (f_GRk), 0);
2070 ; /*clobber*/
2071 }
2072
2073   return vpc;
2074 #undef FLD
2075 }
2076
2077 /* nsdivi: nsdivi$pack $GRi,$s12,$GRk */
2078
2079 static SEM_PC
2080 SEM_FN_NAME (frvbf,nsdivi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2081 {
2082 #define FLD(f) abuf->fields.sfmt_swapi.f
2083   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2084   int UNUSED written = 0;
2085   IADDR UNUSED pc = abuf->addr;
2086   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2087
2088 {
2089 frvbf_signed_integer_divide (current_cpu, GET_H_GR (FLD (f_GRi)), FLD (f_d12), FLD (f_GRk), 1);
2090 ; /*clobber*/
2091 }
2092
2093   return vpc;
2094 #undef FLD
2095 }
2096
2097 /* udivi: udivi$pack $GRi,$s12,$GRk */
2098
2099 static SEM_PC
2100 SEM_FN_NAME (frvbf,udivi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2101 {
2102 #define FLD(f) abuf->fields.sfmt_swapi.f
2103   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2104   int UNUSED written = 0;
2105   IADDR UNUSED pc = abuf->addr;
2106   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2107
2108 {
2109 frvbf_unsigned_integer_divide (current_cpu, GET_H_GR (FLD (f_GRi)), FLD (f_d12), FLD (f_GRk), 0);
2110 ; /*clobber*/
2111 }
2112
2113   return vpc;
2114 #undef FLD
2115 }
2116
2117 /* nudivi: nudivi$pack $GRi,$s12,$GRk */
2118
2119 static SEM_PC
2120 SEM_FN_NAME (frvbf,nudivi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2121 {
2122 #define FLD(f) abuf->fields.sfmt_swapi.f
2123   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2124   int UNUSED written = 0;
2125   IADDR UNUSED pc = abuf->addr;
2126   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2127
2128 {
2129 frvbf_unsigned_integer_divide (current_cpu, GET_H_GR (FLD (f_GRi)), FLD (f_d12), FLD (f_GRk), 1);
2130 ; /*clobber*/
2131 }
2132
2133   return vpc;
2134 #undef FLD
2135 }
2136
2137 /* smuli: smuli$pack $GRi,$s12,$GRdoublek */
2138
2139 static SEM_PC
2140 SEM_FN_NAME (frvbf,smuli) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2141 {
2142 #define FLD(f) abuf->fields.sfmt_smuli.f
2143   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2144   int UNUSED written = 0;
2145   IADDR UNUSED pc = abuf->addr;
2146   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2147
2148   {
2149     DI opval = MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi))), EXTSIDI (FLD (f_d12)));
2150     sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
2151     TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
2152   }
2153
2154   return vpc;
2155 #undef FLD
2156 }
2157
2158 /* umuli: umuli$pack $GRi,$s12,$GRdoublek */
2159
2160 static SEM_PC
2161 SEM_FN_NAME (frvbf,umuli) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2162 {
2163 #define FLD(f) abuf->fields.sfmt_smuli.f
2164   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2165   int UNUSED written = 0;
2166   IADDR UNUSED pc = abuf->addr;
2167   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2168
2169   {
2170     DI opval = MULDI (ZEXTSIDI (GET_H_GR (FLD (f_GRi))), ZEXTSIDI (FLD (f_d12)));
2171     sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
2172     TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
2173   }
2174
2175   return vpc;
2176 #undef FLD
2177 }
2178
2179 /* slli: slli$pack $GRi,$s12,$GRk */
2180
2181 static SEM_PC
2182 SEM_FN_NAME (frvbf,slli) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2183 {
2184 #define FLD(f) abuf->fields.sfmt_swapi.f
2185   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2186   int UNUSED written = 0;
2187   IADDR UNUSED pc = abuf->addr;
2188   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2189
2190   {
2191     SI opval = SLLSI (GET_H_GR (FLD (f_GRi)), ANDSI (FLD (f_d12), 31));
2192     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2193     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2194   }
2195
2196   return vpc;
2197 #undef FLD
2198 }
2199
2200 /* srli: srli$pack $GRi,$s12,$GRk */
2201
2202 static SEM_PC
2203 SEM_FN_NAME (frvbf,srli) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2204 {
2205 #define FLD(f) abuf->fields.sfmt_swapi.f
2206   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2207   int UNUSED written = 0;
2208   IADDR UNUSED pc = abuf->addr;
2209   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2210
2211   {
2212     SI opval = SRLSI (GET_H_GR (FLD (f_GRi)), ANDSI (FLD (f_d12), 31));
2213     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2214     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2215   }
2216
2217   return vpc;
2218 #undef FLD
2219 }
2220
2221 /* srai: srai$pack $GRi,$s12,$GRk */
2222
2223 static SEM_PC
2224 SEM_FN_NAME (frvbf,srai) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2225 {
2226 #define FLD(f) abuf->fields.sfmt_swapi.f
2227   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2228   int UNUSED written = 0;
2229   IADDR UNUSED pc = abuf->addr;
2230   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2231
2232   {
2233     SI opval = SRASI (GET_H_GR (FLD (f_GRi)), ANDSI (FLD (f_d12), 31));
2234     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2235     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2236   }
2237
2238   return vpc;
2239 #undef FLD
2240 }
2241
2242 /* scani: scani$pack $GRi,$s12,$GRk */
2243
2244 static SEM_PC
2245 SEM_FN_NAME (frvbf,scani) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2246 {
2247 #define FLD(f) abuf->fields.sfmt_swapi.f
2248   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2249   int UNUSED written = 0;
2250   IADDR UNUSED pc = abuf->addr;
2251   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2252
2253 {
2254   SI tmp_tmp1;
2255   SI tmp_tmp2;
2256   tmp_tmp1 = GET_H_GR (FLD (f_GRi));
2257   tmp_tmp2 = SRASI (FLD (f_d12), 1);
2258   {
2259     SI opval = frvbf_scan_result (current_cpu, XORSI (tmp_tmp1, tmp_tmp2));
2260     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2261     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2262   }
2263 }
2264
2265   return vpc;
2266 #undef FLD
2267 }
2268
2269 /* addicc: addicc$pack $GRi,$s10,$GRk,$ICCi_1 */
2270
2271 static SEM_PC
2272 SEM_FN_NAME (frvbf,addicc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2273 {
2274 #define FLD(f) abuf->fields.sfmt_addicc.f
2275   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2276   int UNUSED written = 0;
2277   IADDR UNUSED pc = abuf->addr;
2278   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2279
2280 {
2281   BI tmp_tmp;
2282   QI tmp_cc;
2283   SI tmp_result;
2284   tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
2285   tmp_tmp = ADDOFSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), 0);
2286 if (EQBI (tmp_tmp, 0)) {
2287   tmp_cc = ANDQI (tmp_cc, 13);
2288 } else {
2289   tmp_cc = ORQI (tmp_cc, 2);
2290 }
2291   tmp_tmp = ADDCFSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), 0);
2292 if (EQBI (tmp_tmp, 0)) {
2293   tmp_cc = ANDQI (tmp_cc, 14);
2294 } else {
2295   tmp_cc = ORQI (tmp_cc, 1);
2296 }
2297   tmp_result = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10));
2298 if (EQSI (tmp_result, 0)) {
2299   tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
2300 } else {
2301 if (LTSI (tmp_result, 0)) {
2302   tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
2303 } else {
2304   tmp_cc = ANDQI (tmp_cc, 3);
2305 }
2306 }
2307   {
2308     SI opval = tmp_result;
2309     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2310     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2311   }
2312   {
2313     UQI opval = tmp_cc;
2314     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2315     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2316   }
2317 }
2318
2319   return vpc;
2320 #undef FLD
2321 }
2322
2323 /* subicc: subicc$pack $GRi,$s10,$GRk,$ICCi_1 */
2324
2325 static SEM_PC
2326 SEM_FN_NAME (frvbf,subicc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2327 {
2328 #define FLD(f) abuf->fields.sfmt_addicc.f
2329   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2330   int UNUSED written = 0;
2331   IADDR UNUSED pc = abuf->addr;
2332   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2333
2334 {
2335   BI tmp_tmp;
2336   QI tmp_cc;
2337   SI tmp_result;
2338   tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
2339   tmp_tmp = SUBOFSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), 0);
2340 if (EQBI (tmp_tmp, 0)) {
2341   tmp_cc = ANDQI (tmp_cc, 13);
2342 } else {
2343   tmp_cc = ORQI (tmp_cc, 2);
2344 }
2345   tmp_tmp = SUBCFSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), 0);
2346 if (EQBI (tmp_tmp, 0)) {
2347   tmp_cc = ANDQI (tmp_cc, 14);
2348 } else {
2349   tmp_cc = ORQI (tmp_cc, 1);
2350 }
2351   tmp_result = SUBSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10));
2352 if (EQSI (tmp_result, 0)) {
2353   tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
2354 } else {
2355 if (LTSI (tmp_result, 0)) {
2356   tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
2357 } else {
2358   tmp_cc = ANDQI (tmp_cc, 3);
2359 }
2360 }
2361   {
2362     SI opval = tmp_result;
2363     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2364     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2365   }
2366   {
2367     UQI opval = tmp_cc;
2368     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2369     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2370   }
2371 }
2372
2373   return vpc;
2374 #undef FLD
2375 }
2376
2377 /* andicc: andicc$pack $GRi,$s10,$GRk,$ICCi_1 */
2378
2379 static SEM_PC
2380 SEM_FN_NAME (frvbf,andicc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2381 {
2382 #define FLD(f) abuf->fields.sfmt_addicc.f
2383   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2384   int UNUSED written = 0;
2385   IADDR UNUSED pc = abuf->addr;
2386   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2387
2388 {
2389   SI tmp_tmp;
2390   tmp_tmp = ANDSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10));
2391   {
2392     SI opval = tmp_tmp;
2393     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2394     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2395   }
2396 if (EQSI (tmp_tmp, 0)) {
2397   {
2398     UQI opval = ORQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 7), 4);
2399     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2400     written |= (1 << 4);
2401     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2402   }
2403 } else {
2404 if (LTSI (tmp_tmp, 0)) {
2405   {
2406     UQI opval = ORQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 11), 8);
2407     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2408     written |= (1 << 4);
2409     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2410   }
2411 } else {
2412   {
2413     UQI opval = ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 3);
2414     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2415     written |= (1 << 4);
2416     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2417   }
2418 }
2419 }
2420 }
2421
2422   abuf->written = written;
2423   return vpc;
2424 #undef FLD
2425 }
2426
2427 /* oricc: oricc$pack $GRi,$s10,$GRk,$ICCi_1 */
2428
2429 static SEM_PC
2430 SEM_FN_NAME (frvbf,oricc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2431 {
2432 #define FLD(f) abuf->fields.sfmt_addicc.f
2433   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2434   int UNUSED written = 0;
2435   IADDR UNUSED pc = abuf->addr;
2436   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2437
2438 {
2439   SI tmp_tmp;
2440   tmp_tmp = ORSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10));
2441   {
2442     SI opval = tmp_tmp;
2443     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2444     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2445   }
2446 if (EQSI (tmp_tmp, 0)) {
2447   {
2448     UQI opval = ORQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 7), 4);
2449     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2450     written |= (1 << 4);
2451     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2452   }
2453 } else {
2454 if (LTSI (tmp_tmp, 0)) {
2455   {
2456     UQI opval = ORQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 11), 8);
2457     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2458     written |= (1 << 4);
2459     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2460   }
2461 } else {
2462   {
2463     UQI opval = ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 3);
2464     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2465     written |= (1 << 4);
2466     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2467   }
2468 }
2469 }
2470 }
2471
2472   abuf->written = written;
2473   return vpc;
2474 #undef FLD
2475 }
2476
2477 /* xoricc: xoricc$pack $GRi,$s10,$GRk,$ICCi_1 */
2478
2479 static SEM_PC
2480 SEM_FN_NAME (frvbf,xoricc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2481 {
2482 #define FLD(f) abuf->fields.sfmt_addicc.f
2483   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2484   int UNUSED written = 0;
2485   IADDR UNUSED pc = abuf->addr;
2486   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2487
2488 {
2489   SI tmp_tmp;
2490   tmp_tmp = XORSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10));
2491   {
2492     SI opval = tmp_tmp;
2493     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2494     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2495   }
2496 if (EQSI (tmp_tmp, 0)) {
2497   {
2498     UQI opval = ORQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 7), 4);
2499     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2500     written |= (1 << 4);
2501     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2502   }
2503 } else {
2504 if (LTSI (tmp_tmp, 0)) {
2505   {
2506     UQI opval = ORQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 11), 8);
2507     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2508     written |= (1 << 4);
2509     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2510   }
2511 } else {
2512   {
2513     UQI opval = ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 3);
2514     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2515     written |= (1 << 4);
2516     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2517   }
2518 }
2519 }
2520 }
2521
2522   abuf->written = written;
2523   return vpc;
2524 #undef FLD
2525 }
2526
2527 /* smulicc: smulicc$pack $GRi,$s10,$GRdoublek,$ICCi_1 */
2528
2529 static SEM_PC
2530 SEM_FN_NAME (frvbf,smulicc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2531 {
2532 #define FLD(f) abuf->fields.sfmt_smulicc.f
2533   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2534   int UNUSED written = 0;
2535   IADDR UNUSED pc = abuf->addr;
2536   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2537
2538 {
2539   DI tmp_tmp;
2540   QI tmp_cc;
2541   tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
2542   tmp_tmp = MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi))), EXTSIDI (FLD (f_s10)));
2543 if (EQDI (SRLDI (tmp_tmp, 63), 0)) {
2544   tmp_cc = ANDQI (tmp_cc, 7);
2545 } else {
2546   tmp_cc = ORQI (tmp_cc, 8);
2547 }
2548 if (EQBI (EQDI (tmp_tmp, 0), 0)) {
2549   tmp_cc = ANDQI (tmp_cc, 11);
2550 } else {
2551   tmp_cc = ORQI (tmp_cc, 4);
2552 }
2553   {
2554     DI opval = tmp_tmp;
2555     sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
2556     TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
2557   }
2558   {
2559     UQI opval = tmp_cc;
2560     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2561     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2562   }
2563 }
2564
2565   return vpc;
2566 #undef FLD
2567 }
2568
2569 /* umulicc: umulicc$pack $GRi,$s10,$GRdoublek,$ICCi_1 */
2570
2571 static SEM_PC
2572 SEM_FN_NAME (frvbf,umulicc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2573 {
2574 #define FLD(f) abuf->fields.sfmt_smulicc.f
2575   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2576   int UNUSED written = 0;
2577   IADDR UNUSED pc = abuf->addr;
2578   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2579
2580 {
2581   DI tmp_tmp;
2582   QI tmp_cc;
2583   tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
2584   tmp_tmp = MULDI (ZEXTSIDI (GET_H_GR (FLD (f_GRi))), ZEXTSIDI (FLD (f_s10)));
2585 if (EQDI (SRLDI (tmp_tmp, 63), 0)) {
2586   tmp_cc = ANDQI (tmp_cc, 7);
2587 } else {
2588   tmp_cc = ORQI (tmp_cc, 8);
2589 }
2590 if (EQBI (EQDI (tmp_tmp, 0), 0)) {
2591   tmp_cc = ANDQI (tmp_cc, 11);
2592 } else {
2593   tmp_cc = ORQI (tmp_cc, 4);
2594 }
2595   {
2596     DI opval = tmp_tmp;
2597     sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
2598     TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
2599   }
2600   {
2601     UQI opval = tmp_cc;
2602     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2603     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2604   }
2605 }
2606
2607   return vpc;
2608 #undef FLD
2609 }
2610
2611 /* sllicc: sllicc$pack $GRi,$s10,$GRk,$ICCi_1 */
2612
2613 static SEM_PC
2614 SEM_FN_NAME (frvbf,sllicc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2615 {
2616 #define FLD(f) abuf->fields.sfmt_addicc.f
2617   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2618   int UNUSED written = 0;
2619   IADDR UNUSED pc = abuf->addr;
2620   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2621
2622 {
2623   SI tmp_shift;
2624   SI tmp_tmp;
2625   QI tmp_cc;
2626   tmp_shift = ANDSI (FLD (f_s10), 31);
2627   tmp_cc = frvbf_set_icc_for_shift_left (current_cpu, GET_H_GR (FLD (f_GRi)), tmp_shift, CPU (h_iccr[FLD (f_ICCi_1)]));
2628   tmp_tmp = SLLSI (GET_H_GR (FLD (f_GRi)), tmp_shift);
2629   {
2630     SI opval = tmp_tmp;
2631     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2632     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2633   }
2634 if (EQSI (tmp_tmp, 0)) {
2635   tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
2636 } else {
2637 if (LTSI (tmp_tmp, 0)) {
2638   tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
2639 } else {
2640   tmp_cc = ANDQI (tmp_cc, 3);
2641 }
2642 }
2643   {
2644     UQI opval = tmp_cc;
2645     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2646     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2647   }
2648 }
2649
2650   return vpc;
2651 #undef FLD
2652 }
2653
2654 /* srlicc: srlicc$pack $GRi,$s10,$GRk,$ICCi_1 */
2655
2656 static SEM_PC
2657 SEM_FN_NAME (frvbf,srlicc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2658 {
2659 #define FLD(f) abuf->fields.sfmt_addicc.f
2660   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2661   int UNUSED written = 0;
2662   IADDR UNUSED pc = abuf->addr;
2663   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2664
2665 {
2666   SI tmp_shift;
2667   SI tmp_tmp;
2668   QI tmp_cc;
2669   tmp_shift = ANDSI (FLD (f_s10), 31);
2670   tmp_cc = frvbf_set_icc_for_shift_right (current_cpu, GET_H_GR (FLD (f_GRi)), tmp_shift, CPU (h_iccr[FLD (f_ICCi_1)]));
2671   tmp_tmp = SRLSI (GET_H_GR (FLD (f_GRi)), tmp_shift);
2672   {
2673     SI opval = tmp_tmp;
2674     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2675     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2676   }
2677 if (EQSI (tmp_tmp, 0)) {
2678   tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
2679 } else {
2680 if (LTSI (tmp_tmp, 0)) {
2681   tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
2682 } else {
2683   tmp_cc = ANDQI (tmp_cc, 3);
2684 }
2685 }
2686   {
2687     UQI opval = tmp_cc;
2688     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2689     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2690   }
2691 }
2692
2693   return vpc;
2694 #undef FLD
2695 }
2696
2697 /* sraicc: sraicc$pack $GRi,$s10,$GRk,$ICCi_1 */
2698
2699 static SEM_PC
2700 SEM_FN_NAME (frvbf,sraicc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2701 {
2702 #define FLD(f) abuf->fields.sfmt_addicc.f
2703   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2704   int UNUSED written = 0;
2705   IADDR UNUSED pc = abuf->addr;
2706   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2707
2708 {
2709   SI tmp_shift;
2710   SI tmp_tmp;
2711   QI tmp_cc;
2712   tmp_shift = ANDSI (FLD (f_s10), 31);
2713   tmp_cc = frvbf_set_icc_for_shift_right (current_cpu, GET_H_GR (FLD (f_GRi)), tmp_shift, CPU (h_iccr[FLD (f_ICCi_1)]));
2714   tmp_tmp = SRASI (GET_H_GR (FLD (f_GRi)), tmp_shift);
2715   {
2716     SI opval = tmp_tmp;
2717     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2718     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2719   }
2720 if (EQSI (tmp_tmp, 0)) {
2721   tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
2722 } else {
2723 if (LTSI (tmp_tmp, 0)) {
2724   tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
2725 } else {
2726   tmp_cc = ANDQI (tmp_cc, 3);
2727 }
2728 }
2729   {
2730     UQI opval = tmp_cc;
2731     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2732     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2733   }
2734 }
2735
2736   return vpc;
2737 #undef FLD
2738 }
2739
2740 /* addxi: addxi$pack $GRi,$s10,$GRk,$ICCi_1 */
2741
2742 static SEM_PC
2743 SEM_FN_NAME (frvbf,addxi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2744 {
2745 #define FLD(f) abuf->fields.sfmt_addicc.f
2746   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2747   int UNUSED written = 0;
2748   IADDR UNUSED pc = abuf->addr;
2749   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2750
2751   {
2752     SI opval = ADDCSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 1)));
2753     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2754     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2755   }
2756
2757   return vpc;
2758 #undef FLD
2759 }
2760
2761 /* subxi: subxi$pack $GRi,$s10,$GRk,$ICCi_1 */
2762
2763 static SEM_PC
2764 SEM_FN_NAME (frvbf,subxi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2765 {
2766 #define FLD(f) abuf->fields.sfmt_addicc.f
2767   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2768   int UNUSED written = 0;
2769   IADDR UNUSED pc = abuf->addr;
2770   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2771
2772   {
2773     SI opval = SUBCSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 1)));
2774     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2775     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2776   }
2777
2778   return vpc;
2779 #undef FLD
2780 }
2781
2782 /* addxicc: addxicc$pack $GRi,$s10,$GRk,$ICCi_1 */
2783
2784 static SEM_PC
2785 SEM_FN_NAME (frvbf,addxicc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2786 {
2787 #define FLD(f) abuf->fields.sfmt_addicc.f
2788   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2789   int UNUSED written = 0;
2790   IADDR UNUSED pc = abuf->addr;
2791   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2792
2793 {
2794   SI tmp_tmp;
2795   QI tmp_cc;
2796   tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
2797   tmp_tmp = ADDCSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), TRUNCQIBI (ANDQI (tmp_cc, 1)));
2798 if (EQSI (ADDOFSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), TRUNCQIBI (ANDQI (tmp_cc, 1))), 0)) {
2799   tmp_cc = ANDQI (tmp_cc, 13);
2800 } else {
2801   tmp_cc = ORQI (tmp_cc, 2);
2802 }
2803 if (EQSI (ADDCFSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), TRUNCQIBI (ANDQI (tmp_cc, 1))), 0)) {
2804   tmp_cc = ANDQI (tmp_cc, 14);
2805 } else {
2806   tmp_cc = ORQI (tmp_cc, 1);
2807 }
2808 if (EQSI (tmp_tmp, 0)) {
2809   tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
2810 } else {
2811 if (LTSI (tmp_tmp, 0)) {
2812   tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
2813 } else {
2814   tmp_cc = ANDQI (tmp_cc, 3);
2815 }
2816 }
2817   {
2818     SI opval = tmp_tmp;
2819     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2820     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2821   }
2822   {
2823     UQI opval = tmp_cc;
2824     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2825     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2826   }
2827 }
2828
2829   return vpc;
2830 #undef FLD
2831 }
2832
2833 /* subxicc: subxicc$pack $GRi,$s10,$GRk,$ICCi_1 */
2834
2835 static SEM_PC
2836 SEM_FN_NAME (frvbf,subxicc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2837 {
2838 #define FLD(f) abuf->fields.sfmt_addicc.f
2839   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2840   int UNUSED written = 0;
2841   IADDR UNUSED pc = abuf->addr;
2842   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2843
2844 {
2845   SI tmp_tmp;
2846   QI tmp_cc;
2847   tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
2848   tmp_tmp = SUBCSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), TRUNCQIBI (ANDQI (tmp_cc, 1)));
2849 if (EQSI (SUBOFSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), TRUNCQIBI (ANDQI (tmp_cc, 1))), 0)) {
2850   tmp_cc = ANDQI (tmp_cc, 13);
2851 } else {
2852   tmp_cc = ORQI (tmp_cc, 2);
2853 }
2854 if (EQSI (SUBCFSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), TRUNCQIBI (ANDQI (tmp_cc, 1))), 0)) {
2855   tmp_cc = ANDQI (tmp_cc, 14);
2856 } else {
2857   tmp_cc = ORQI (tmp_cc, 1);
2858 }
2859 if (EQSI (tmp_tmp, 0)) {
2860   tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
2861 } else {
2862 if (LTSI (tmp_tmp, 0)) {
2863   tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
2864 } else {
2865   tmp_cc = ANDQI (tmp_cc, 3);
2866 }
2867 }
2868   {
2869     SI opval = tmp_tmp;
2870     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2871     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2872   }
2873   {
2874     UQI opval = tmp_cc;
2875     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2876     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2877   }
2878 }
2879
2880   return vpc;
2881 #undef FLD
2882 }
2883
2884 /* cmpb: cmpb$pack $GRi,$GRj,$ICCi_1 */
2885
2886 static SEM_PC
2887 SEM_FN_NAME (frvbf,cmpb) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2888 {
2889 #define FLD(f) abuf->fields.sfmt_smulcc.f
2890   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2891   int UNUSED written = 0;
2892   IADDR UNUSED pc = abuf->addr;
2893   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2894
2895 {
2896   QI tmp_cc;
2897 if (EQBI (EQSI (ANDSI (GET_H_GR (FLD (f_GRi)), 0xff000000), ANDSI (GET_H_GR (FLD (f_GRj)), 0xff000000)), 0)) {
2898   tmp_cc = ANDQI (tmp_cc, 7);
2899 } else {
2900   tmp_cc = ORQI (tmp_cc, 8);
2901 }
2902 if (EQBI (EQSI (ANDSI (GET_H_GR (FLD (f_GRi)), 16711680), ANDSI (GET_H_GR (FLD (f_GRj)), 16711680)), 0)) {
2903   tmp_cc = ANDQI (tmp_cc, 11);
2904 } else {
2905   tmp_cc = ORQI (tmp_cc, 4);
2906 }
2907 if (EQBI (EQSI (ANDSI (GET_H_GR (FLD (f_GRi)), 65280), ANDSI (GET_H_GR (FLD (f_GRj)), 65280)), 0)) {
2908   tmp_cc = ANDQI (tmp_cc, 13);
2909 } else {
2910   tmp_cc = ORQI (tmp_cc, 2);
2911 }
2912 if (EQBI (EQSI (ANDSI (GET_H_GR (FLD (f_GRi)), 255), ANDSI (GET_H_GR (FLD (f_GRj)), 255)), 0)) {
2913   tmp_cc = ANDQI (tmp_cc, 14);
2914 } else {
2915   tmp_cc = ORQI (tmp_cc, 1);
2916 }
2917   {
2918     UQI opval = tmp_cc;
2919     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2920     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2921   }
2922 }
2923
2924   return vpc;
2925 #undef FLD
2926 }
2927
2928 /* cmpba: cmpba$pack $GRi,$GRj,$ICCi_1 */
2929
2930 static SEM_PC
2931 SEM_FN_NAME (frvbf,cmpba) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2932 {
2933 #define FLD(f) abuf->fields.sfmt_smulcc.f
2934   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2935   int UNUSED written = 0;
2936   IADDR UNUSED pc = abuf->addr;
2937   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2938
2939 {
2940   QI tmp_cc;
2941   tmp_cc = 0;
2942 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)) {
2943   tmp_cc = ANDQI (tmp_cc, 14);
2944 } else {
2945   tmp_cc = ORQI (tmp_cc, 1);
2946 }
2947   {
2948     UQI opval = tmp_cc;
2949     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2950     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2951   }
2952 }
2953
2954   return vpc;
2955 #undef FLD
2956 }
2957
2958 /* setlo: setlo$pack $ulo16,$GRklo */
2959
2960 static SEM_PC
2961 SEM_FN_NAME (frvbf,setlo) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2962 {
2963 #define FLD(f) abuf->fields.sfmt_setlo.f
2964   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2965   int UNUSED written = 0;
2966   IADDR UNUSED pc = abuf->addr;
2967   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2968
2969   {
2970     UHI opval = FLD (f_u16);
2971     sim_queue_fn_hi_write (current_cpu, frvbf_h_gr_lo_set, FLD (f_GRk), opval);
2972     TRACE_RESULT (current_cpu, abuf, "gr_lo", 'x', opval);
2973   }
2974
2975   return vpc;
2976 #undef FLD
2977 }
2978
2979 /* sethi: sethi$pack $uhi16,$GRkhi */
2980
2981 static SEM_PC
2982 SEM_FN_NAME (frvbf,sethi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2983 {
2984 #define FLD(f) abuf->fields.sfmt_sethi.f
2985   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2986   int UNUSED written = 0;
2987   IADDR UNUSED pc = abuf->addr;
2988   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2989
2990   {
2991     UHI opval = FLD (f_u16);
2992     sim_queue_fn_hi_write (current_cpu, frvbf_h_gr_hi_set, FLD (f_GRk), opval);
2993     TRACE_RESULT (current_cpu, abuf, "gr_hi", 'x', opval);
2994   }
2995
2996   return vpc;
2997 #undef FLD
2998 }
2999
3000 /* setlos: setlos$pack $slo16,$GRk */
3001
3002 static SEM_PC
3003 SEM_FN_NAME (frvbf,setlos) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3004 {
3005 #define FLD(f) abuf->fields.sfmt_setlos.f
3006   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3007   int UNUSED written = 0;
3008   IADDR UNUSED pc = abuf->addr;
3009   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3010
3011   {
3012     SI opval = FLD (f_s16);
3013     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3014     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3015   }
3016
3017   return vpc;
3018 #undef FLD
3019 }
3020
3021 /* ldsb: ldsb$pack @($GRi,$GRj),$GRk */
3022
3023 static SEM_PC
3024 SEM_FN_NAME (frvbf,ldsb) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3025 {
3026 #define FLD(f) abuf->fields.sfmt_addcc.f
3027   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3028   int UNUSED written = 0;
3029   IADDR UNUSED pc = abuf->addr;
3030   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3031
3032   {
3033     SI opval = frvbf_read_mem_QI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3034     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3035     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3036   }
3037
3038   return vpc;
3039 #undef FLD
3040 }
3041
3042 /* ldub: ldub$pack @($GRi,$GRj),$GRk */
3043
3044 static SEM_PC
3045 SEM_FN_NAME (frvbf,ldub) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3046 {
3047 #define FLD(f) abuf->fields.sfmt_addcc.f
3048   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3049   int UNUSED written = 0;
3050   IADDR UNUSED pc = abuf->addr;
3051   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3052
3053   {
3054     SI opval = frvbf_read_mem_UQI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3055     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3056     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3057   }
3058
3059   return vpc;
3060 #undef FLD
3061 }
3062
3063 /* ldsh: ldsh$pack @($GRi,$GRj),$GRk */
3064
3065 static SEM_PC
3066 SEM_FN_NAME (frvbf,ldsh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3067 {
3068 #define FLD(f) abuf->fields.sfmt_addcc.f
3069   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3070   int UNUSED written = 0;
3071   IADDR UNUSED pc = abuf->addr;
3072   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3073
3074   {
3075     SI opval = frvbf_read_mem_HI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3076     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3077     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3078   }
3079
3080   return vpc;
3081 #undef FLD
3082 }
3083
3084 /* lduh: lduh$pack @($GRi,$GRj),$GRk */
3085
3086 static SEM_PC
3087 SEM_FN_NAME (frvbf,lduh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3088 {
3089 #define FLD(f) abuf->fields.sfmt_addcc.f
3090   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3091   int UNUSED written = 0;
3092   IADDR UNUSED pc = abuf->addr;
3093   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3094
3095   {
3096     SI opval = frvbf_read_mem_UHI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3097     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3098     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3099   }
3100
3101   return vpc;
3102 #undef FLD
3103 }
3104
3105 /* ld: ld$pack @($GRi,$GRj),$GRk */
3106
3107 static SEM_PC
3108 SEM_FN_NAME (frvbf,ld) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3109 {
3110 #define FLD(f) abuf->fields.sfmt_addcc.f
3111   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3112   int UNUSED written = 0;
3113   IADDR UNUSED pc = abuf->addr;
3114   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3115
3116   {
3117     SI opval = frvbf_read_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3118     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3119     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3120   }
3121
3122   return vpc;
3123 #undef FLD
3124 }
3125
3126 /* ldbf: ldbf$pack @($GRi,$GRj),$FRintk */
3127
3128 static SEM_PC
3129 SEM_FN_NAME (frvbf,ldbf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3130 {
3131 #define FLD(f) abuf->fields.sfmt_cldbfu.f
3132   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3133   int UNUSED written = 0;
3134   IADDR UNUSED pc = abuf->addr;
3135   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3136
3137   {
3138     SI opval = frvbf_read_mem_UQI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3139     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
3140     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
3141   }
3142
3143   return vpc;
3144 #undef FLD
3145 }
3146
3147 /* ldhf: ldhf$pack @($GRi,$GRj),$FRintk */
3148
3149 static SEM_PC
3150 SEM_FN_NAME (frvbf,ldhf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3151 {
3152 #define FLD(f) abuf->fields.sfmt_cldbfu.f
3153   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3154   int UNUSED written = 0;
3155   IADDR UNUSED pc = abuf->addr;
3156   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3157
3158   {
3159     SI opval = frvbf_read_mem_UHI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3160     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
3161     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
3162   }
3163
3164   return vpc;
3165 #undef FLD
3166 }
3167
3168 /* ldf: ldf$pack @($GRi,$GRj),$FRintk */
3169
3170 static SEM_PC
3171 SEM_FN_NAME (frvbf,ldf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3172 {
3173 #define FLD(f) abuf->fields.sfmt_cldbfu.f
3174   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3175   int UNUSED written = 0;
3176   IADDR UNUSED pc = abuf->addr;
3177   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3178
3179   {
3180     SI opval = frvbf_read_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3181     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
3182     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
3183   }
3184
3185   return vpc;
3186 #undef FLD
3187 }
3188
3189 /* ldc: ldc$pack @($GRi,$GRj),$CPRk */
3190
3191 static SEM_PC
3192 SEM_FN_NAME (frvbf,ldc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3193 {
3194 #define FLD(f) abuf->fields.sfmt_ldcu.f
3195   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3196   int UNUSED written = 0;
3197   IADDR UNUSED pc = abuf->addr;
3198   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3199
3200   {
3201     SI opval = frvbf_read_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3202     sim_queue_si_write (current_cpu, & CPU (h_cpr[FLD (f_CPRk)]), opval);
3203     TRACE_RESULT (current_cpu, abuf, "cpr", 'x', opval);
3204   }
3205
3206   return vpc;
3207 #undef FLD
3208 }
3209
3210 /* nldsb: nldsb$pack @($GRi,$GRj),$GRk */
3211
3212 static SEM_PC
3213 SEM_FN_NAME (frvbf,nldsb) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3214 {
3215 #define FLD(f) abuf->fields.sfmt_addcc.f
3216   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3217   int UNUSED written = 0;
3218   IADDR UNUSED pc = abuf->addr;
3219   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3220
3221 {
3222   BI tmp_do_op;
3223   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 1, 0);
3224 if (tmp_do_op) {
3225   {
3226     SI opval = frvbf_read_mem_QI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3227     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3228     written |= (1 << 6);
3229     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3230   }
3231 }
3232 }
3233
3234   abuf->written = written;
3235   return vpc;
3236 #undef FLD
3237 }
3238
3239 /* nldub: nldub$pack @($GRi,$GRj),$GRk */
3240
3241 static SEM_PC
3242 SEM_FN_NAME (frvbf,nldub) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3243 {
3244 #define FLD(f) abuf->fields.sfmt_addcc.f
3245   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3246   int UNUSED written = 0;
3247   IADDR UNUSED pc = abuf->addr;
3248   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3249
3250 {
3251   BI tmp_do_op;
3252   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 0, 0);
3253 if (tmp_do_op) {
3254   {
3255     SI opval = frvbf_read_mem_UQI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3256     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3257     written |= (1 << 6);
3258     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3259   }
3260 }
3261 }
3262
3263   abuf->written = written;
3264   return vpc;
3265 #undef FLD
3266 }
3267
3268 /* nldsh: nldsh$pack @($GRi,$GRj),$GRk */
3269
3270 static SEM_PC
3271 SEM_FN_NAME (frvbf,nldsh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3272 {
3273 #define FLD(f) abuf->fields.sfmt_addcc.f
3274   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3275   int UNUSED written = 0;
3276   IADDR UNUSED pc = abuf->addr;
3277   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3278
3279 {
3280   BI tmp_do_op;
3281   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 3, 0);
3282 if (tmp_do_op) {
3283   {
3284     SI opval = frvbf_read_mem_HI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3285     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3286     written |= (1 << 6);
3287     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3288   }
3289 }
3290 }
3291
3292   abuf->written = written;
3293   return vpc;
3294 #undef FLD
3295 }
3296
3297 /* nlduh: nlduh$pack @($GRi,$GRj),$GRk */
3298
3299 static SEM_PC
3300 SEM_FN_NAME (frvbf,nlduh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3301 {
3302 #define FLD(f) abuf->fields.sfmt_addcc.f
3303   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3304   int UNUSED written = 0;
3305   IADDR UNUSED pc = abuf->addr;
3306   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3307
3308 {
3309   BI tmp_do_op;
3310   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 2, 0);
3311 if (tmp_do_op) {
3312   {
3313     SI opval = frvbf_read_mem_UHI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3314     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3315     written |= (1 << 6);
3316     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3317   }
3318 }
3319 }
3320
3321   abuf->written = written;
3322   return vpc;
3323 #undef FLD
3324 }
3325
3326 /* nld: nld$pack @($GRi,$GRj),$GRk */
3327
3328 static SEM_PC
3329 SEM_FN_NAME (frvbf,nld) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3330 {
3331 #define FLD(f) abuf->fields.sfmt_addcc.f
3332   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3333   int UNUSED written = 0;
3334   IADDR UNUSED pc = abuf->addr;
3335   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3336
3337 {
3338   BI tmp_do_op;
3339   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 4, 0);
3340 if (tmp_do_op) {
3341   {
3342     SI opval = frvbf_read_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3343     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3344     written |= (1 << 6);
3345     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3346   }
3347 }
3348 }
3349
3350   abuf->written = written;
3351   return vpc;
3352 #undef FLD
3353 }
3354
3355 /* nldbf: nldbf$pack @($GRi,$GRj),$FRintk */
3356
3357 static SEM_PC
3358 SEM_FN_NAME (frvbf,nldbf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3359 {
3360 #define FLD(f) abuf->fields.sfmt_cldbfu.f
3361   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3362   int UNUSED written = 0;
3363   IADDR UNUSED pc = abuf->addr;
3364   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3365
3366 {
3367   BI tmp_do_op;
3368   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_FRk), 0, 0, 1);
3369 if (tmp_do_op) {
3370   {
3371     SI opval = frvbf_read_mem_UQI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3372     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
3373     written |= (1 << 6);
3374     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
3375   }
3376 }
3377 }
3378
3379   abuf->written = written;
3380   return vpc;
3381 #undef FLD
3382 }
3383
3384 /* nldhf: nldhf$pack @($GRi,$GRj),$FRintk */
3385
3386 static SEM_PC
3387 SEM_FN_NAME (frvbf,nldhf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3388 {
3389 #define FLD(f) abuf->fields.sfmt_cldbfu.f
3390   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3391   int UNUSED written = 0;
3392   IADDR UNUSED pc = abuf->addr;
3393   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3394
3395 {
3396   BI tmp_do_op;
3397   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_FRk), 0, 2, 1);
3398 if (tmp_do_op) {
3399   {
3400     SI opval = frvbf_read_mem_UHI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3401     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
3402     written |= (1 << 6);
3403     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
3404   }
3405 }
3406 }
3407
3408   abuf->written = written;
3409   return vpc;
3410 #undef FLD
3411 }
3412
3413 /* nldf: nldf$pack @($GRi,$GRj),$FRintk */
3414
3415 static SEM_PC
3416 SEM_FN_NAME (frvbf,nldf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3417 {
3418 #define FLD(f) abuf->fields.sfmt_cldbfu.f
3419   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3420   int UNUSED written = 0;
3421   IADDR UNUSED pc = abuf->addr;
3422   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3423
3424 {
3425   BI tmp_do_op;
3426   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_FRk), 0, 4, 1);
3427 if (tmp_do_op) {
3428   {
3429     SI opval = frvbf_read_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3430     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
3431     written |= (1 << 6);
3432     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
3433   }
3434 }
3435 }
3436
3437   abuf->written = written;
3438   return vpc;
3439 #undef FLD
3440 }
3441
3442 /* ldd: ldd$pack @($GRi,$GRj),$GRdoublek */
3443
3444 static SEM_PC
3445 SEM_FN_NAME (frvbf,ldd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3446 {
3447 #define FLD(f) abuf->fields.sfmt_smulcc.f
3448   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3449   int UNUSED written = 0;
3450   IADDR UNUSED pc = abuf->addr;
3451   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3452
3453 {
3454   SI tmp_address;
3455 if (NESI (FLD (f_GRk), 0)) {
3456 {
3457   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3458   {
3459     DI opval = frvbf_read_mem_DI (current_cpu, pc, tmp_address);
3460     sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
3461     written |= (1 << 4);
3462     TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
3463   }
3464 }
3465 }
3466 }
3467
3468   abuf->written = written;
3469   return vpc;
3470 #undef FLD
3471 }
3472
3473 /* lddf: lddf$pack @($GRi,$GRj),$FRdoublek */
3474
3475 static SEM_PC
3476 SEM_FN_NAME (frvbf,lddf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3477 {
3478 #define FLD(f) abuf->fields.sfmt_clddfu.f
3479   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3480   int UNUSED written = 0;
3481   IADDR UNUSED pc = abuf->addr;
3482   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3483
3484 {
3485   SI tmp_address;
3486 {
3487   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3488   {
3489     DF opval = frvbf_read_mem_DF (current_cpu, pc, tmp_address);
3490     sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
3491     TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
3492   }
3493 }
3494 }
3495
3496   return vpc;
3497 #undef FLD
3498 }
3499
3500 /* lddc: lddc$pack @($GRi,$GRj),$CPRdoublek */
3501
3502 static SEM_PC
3503 SEM_FN_NAME (frvbf,lddc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3504 {
3505 #define FLD(f) abuf->fields.sfmt_lddcu.f
3506   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3507   int UNUSED written = 0;
3508   IADDR UNUSED pc = abuf->addr;
3509   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3510
3511 {
3512   SI tmp_address;
3513 {
3514   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3515   {
3516     DI opval = frvbf_read_mem_DI (current_cpu, pc, tmp_address);
3517     sim_queue_fn_di_write (current_cpu, frvbf_h_cpr_double_set, FLD (f_CPRk), opval);
3518     TRACE_RESULT (current_cpu, abuf, "cpr_double", 'D', opval);
3519   }
3520 }
3521 }
3522
3523   return vpc;
3524 #undef FLD
3525 }
3526
3527 /* nldd: nldd$pack @($GRi,$GRj),$GRdoublek */
3528
3529 static SEM_PC
3530 SEM_FN_NAME (frvbf,nldd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3531 {
3532 #define FLD(f) abuf->fields.sfmt_smulcc.f
3533   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3534   int UNUSED written = 0;
3535   IADDR UNUSED pc = abuf->addr;
3536   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3537
3538 {
3539   SI tmp_address;
3540 {
3541   BI tmp_do_op;
3542   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 5, 0);
3543 if (tmp_do_op) {
3544 if (NESI (FLD (f_GRk), 0)) {
3545 {
3546   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3547   {
3548     DI opval = frvbf_read_mem_DI (current_cpu, pc, tmp_address);
3549     sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
3550     written |= (1 << 6);
3551     TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
3552   }
3553 }
3554 }
3555 }
3556 }
3557 }
3558
3559   abuf->written = written;
3560   return vpc;
3561 #undef FLD
3562 }
3563
3564 /* nlddf: nlddf$pack @($GRi,$GRj),$FRdoublek */
3565
3566 static SEM_PC
3567 SEM_FN_NAME (frvbf,nlddf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3568 {
3569 #define FLD(f) abuf->fields.sfmt_clddfu.f
3570   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3571   int UNUSED written = 0;
3572   IADDR UNUSED pc = abuf->addr;
3573   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3574
3575 {
3576   SI tmp_address;
3577 {
3578   BI tmp_do_op;
3579   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_FRk), 0, 5, 1);
3580 if (tmp_do_op) {
3581 {
3582   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3583   {
3584     DF opval = frvbf_read_mem_DF (current_cpu, pc, tmp_address);
3585     sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
3586     written |= (1 << 6);
3587     TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
3588   }
3589 }
3590 }
3591 }
3592 }
3593
3594   abuf->written = written;
3595   return vpc;
3596 #undef FLD
3597 }
3598
3599 /* ldq: ldq$pack @($GRi,$GRj),$GRk */
3600
3601 static SEM_PC
3602 SEM_FN_NAME (frvbf,ldq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3603 {
3604 #define FLD(f) abuf->fields.sfmt_smulcc.f
3605   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3606   int UNUSED written = 0;
3607   IADDR UNUSED pc = abuf->addr;
3608   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3609
3610 {
3611   SI tmp_address;
3612 {
3613   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3614 frvbf_load_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
3615 }
3616 }
3617
3618   return vpc;
3619 #undef FLD
3620 }
3621
3622 /* ldqf: ldqf$pack @($GRi,$GRj),$FRintk */
3623
3624 static SEM_PC
3625 SEM_FN_NAME (frvbf,ldqf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3626 {
3627 #define FLD(f) abuf->fields.sfmt_cstdfu.f
3628   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3629   int UNUSED written = 0;
3630   IADDR UNUSED pc = abuf->addr;
3631   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3632
3633 {
3634   SI tmp_address;
3635 {
3636   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3637 frvbf_load_quad_FRint (current_cpu, pc, tmp_address, FLD (f_FRk));
3638 }
3639 }
3640
3641   return vpc;
3642 #undef FLD
3643 }
3644
3645 /* ldqc: ldqc$pack @($GRi,$GRj),$CPRk */
3646
3647 static SEM_PC
3648 SEM_FN_NAME (frvbf,ldqc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3649 {
3650 #define FLD(f) abuf->fields.sfmt_stdcu.f
3651   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3652   int UNUSED written = 0;
3653   IADDR UNUSED pc = abuf->addr;
3654   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3655
3656 {
3657   SI tmp_address;
3658 {
3659   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3660 frvbf_load_quad_CPR (current_cpu, pc, tmp_address, FLD (f_CPRk));
3661 }
3662 }
3663
3664   return vpc;
3665 #undef FLD
3666 }
3667
3668 /* nldq: nldq$pack @($GRi,$GRj),$GRk */
3669
3670 static SEM_PC
3671 SEM_FN_NAME (frvbf,nldq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3672 {
3673 #define FLD(f) abuf->fields.sfmt_smulcc.f
3674   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3675   int UNUSED written = 0;
3676   IADDR UNUSED pc = abuf->addr;
3677   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3678
3679 {
3680   SI tmp_address;
3681 {
3682   BI tmp_do_op;
3683   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 6, 0);
3684 if (tmp_do_op) {
3685 {
3686   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3687 frvbf_load_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
3688 }
3689 }
3690 }
3691 }
3692
3693   return vpc;
3694 #undef FLD
3695 }
3696
3697 /* nldqf: nldqf$pack @($GRi,$GRj),$FRintk */
3698
3699 static SEM_PC
3700 SEM_FN_NAME (frvbf,nldqf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3701 {
3702 #define FLD(f) abuf->fields.sfmt_cstdfu.f
3703   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3704   int UNUSED written = 0;
3705   IADDR UNUSED pc = abuf->addr;
3706   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3707
3708 {
3709   SI tmp_address;
3710 {
3711   BI tmp_do_op;
3712   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_FRk), 0, 6, 1);
3713 if (tmp_do_op) {
3714 {
3715   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3716 frvbf_load_quad_FRint (current_cpu, pc, tmp_address, FLD (f_FRk));
3717 }
3718 }
3719 }
3720 }
3721
3722   return vpc;
3723 #undef FLD
3724 }
3725
3726 /* ldsbu: ldsbu$pack @($GRi,$GRj),$GRk */
3727
3728 static SEM_PC
3729 SEM_FN_NAME (frvbf,ldsbu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3730 {
3731 #define FLD(f) abuf->fields.sfmt_cldsbu.f
3732   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3733   int UNUSED written = 0;
3734   IADDR UNUSED pc = abuf->addr;
3735   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3736
3737 {
3738   USI tmp_address;
3739   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3740   {
3741     SI opval = frvbf_read_mem_QI (current_cpu, pc, tmp_address);
3742     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3743     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3744   }
3745 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
3746 {
3747   {
3748     SI opval = tmp_address;
3749     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
3750     written |= (1 << 5);
3751     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3752   }
3753 frvbf_force_update (current_cpu);
3754 }
3755 }
3756 }
3757
3758   abuf->written = written;
3759   return vpc;
3760 #undef FLD
3761 }
3762
3763 /* ldubu: ldubu$pack @($GRi,$GRj),$GRk */
3764
3765 static SEM_PC
3766 SEM_FN_NAME (frvbf,ldubu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3767 {
3768 #define FLD(f) abuf->fields.sfmt_cldsbu.f
3769   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3770   int UNUSED written = 0;
3771   IADDR UNUSED pc = abuf->addr;
3772   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3773
3774 {
3775   USI tmp_address;
3776   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3777   {
3778     SI opval = frvbf_read_mem_UQI (current_cpu, pc, tmp_address);
3779     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3780     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3781   }
3782 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
3783 {
3784   {
3785     SI opval = tmp_address;
3786     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
3787     written |= (1 << 5);
3788     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3789   }
3790 frvbf_force_update (current_cpu);
3791 }
3792 }
3793 }
3794
3795   abuf->written = written;
3796   return vpc;
3797 #undef FLD
3798 }
3799
3800 /* ldshu: ldshu$pack @($GRi,$GRj),$GRk */
3801
3802 static SEM_PC
3803 SEM_FN_NAME (frvbf,ldshu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3804 {
3805 #define FLD(f) abuf->fields.sfmt_cldsbu.f
3806   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3807   int UNUSED written = 0;
3808   IADDR UNUSED pc = abuf->addr;
3809   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3810
3811 {
3812   USI tmp_address;
3813   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3814   {
3815     SI opval = frvbf_read_mem_HI (current_cpu, pc, tmp_address);
3816     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3817     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3818   }
3819 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
3820 {
3821   {
3822     SI opval = tmp_address;
3823     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
3824     written |= (1 << 5);
3825     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3826   }
3827 frvbf_force_update (current_cpu);
3828 }
3829 }
3830 }
3831
3832   abuf->written = written;
3833   return vpc;
3834 #undef FLD
3835 }
3836
3837 /* lduhu: lduhu$pack @($GRi,$GRj),$GRk */
3838
3839 static SEM_PC
3840 SEM_FN_NAME (frvbf,lduhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3841 {
3842 #define FLD(f) abuf->fields.sfmt_cldsbu.f
3843   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3844   int UNUSED written = 0;
3845   IADDR UNUSED pc = abuf->addr;
3846   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3847
3848 {
3849   USI tmp_address;
3850   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3851   {
3852     SI opval = frvbf_read_mem_UHI (current_cpu, pc, tmp_address);
3853     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3854     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3855   }
3856 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
3857 {
3858   {
3859     SI opval = tmp_address;
3860     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
3861     written |= (1 << 5);
3862     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3863   }
3864 frvbf_force_update (current_cpu);
3865 }
3866 }
3867 }
3868
3869   abuf->written = written;
3870   return vpc;
3871 #undef FLD
3872 }
3873
3874 /* ldu: ldu$pack @($GRi,$GRj),$GRk */
3875
3876 static SEM_PC
3877 SEM_FN_NAME (frvbf,ldu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3878 {
3879 #define FLD(f) abuf->fields.sfmt_cldsbu.f
3880   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3881   int UNUSED written = 0;
3882   IADDR UNUSED pc = abuf->addr;
3883   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3884
3885 {
3886   USI tmp_address;
3887   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3888   {
3889     SI opval = frvbf_read_mem_SI (current_cpu, pc, tmp_address);
3890     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3891     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3892   }
3893 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
3894 {
3895   {
3896     SI opval = tmp_address;
3897     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
3898     written |= (1 << 5);
3899     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3900   }
3901 frvbf_force_update (current_cpu);
3902 }
3903 }
3904 }
3905
3906   abuf->written = written;
3907   return vpc;
3908 #undef FLD
3909 }
3910
3911 /* nldsbu: nldsbu$pack @($GRi,$GRj),$GRk */
3912
3913 static SEM_PC
3914 SEM_FN_NAME (frvbf,nldsbu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3915 {
3916 #define FLD(f) abuf->fields.sfmt_cldsbu.f
3917   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3918   int UNUSED written = 0;
3919   IADDR UNUSED pc = abuf->addr;
3920   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3921
3922 {
3923   BI tmp_do_op;
3924   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 1, 0);
3925 if (tmp_do_op) {
3926 {
3927   USI tmp_address;
3928   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3929   {
3930     SI opval = frvbf_read_mem_QI (current_cpu, pc, tmp_address);
3931     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3932     written |= (1 << 7);
3933     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3934   }
3935 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
3936 {
3937   {
3938     SI opval = tmp_address;
3939     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
3940     written |= (1 << 6);
3941     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3942   }
3943 frvbf_force_update (current_cpu);
3944 }
3945 }
3946 }
3947 }
3948 }
3949
3950   abuf->written = written;
3951   return vpc;
3952 #undef FLD
3953 }
3954
3955 /* nldubu: nldubu$pack @($GRi,$GRj),$GRk */
3956
3957 static SEM_PC
3958 SEM_FN_NAME (frvbf,nldubu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3959 {
3960 #define FLD(f) abuf->fields.sfmt_cldsbu.f
3961   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3962   int UNUSED written = 0;
3963   IADDR UNUSED pc = abuf->addr;
3964   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3965
3966 {
3967   BI tmp_do_op;
3968   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 0, 0);
3969 if (tmp_do_op) {
3970 {
3971   USI tmp_address;
3972   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3973   {
3974     SI opval = frvbf_read_mem_UQI (current_cpu, pc, tmp_address);
3975     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3976     written |= (1 << 7);
3977     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3978   }
3979 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
3980 {
3981   {
3982     SI opval = tmp_address;
3983     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
3984     written |= (1 << 6);
3985     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3986   }
3987 frvbf_force_update (current_cpu);
3988 }
3989 }
3990 }
3991 }
3992 }
3993
3994   abuf->written = written;
3995   return vpc;
3996 #undef FLD
3997 }
3998
3999 /* nldshu: nldshu$pack @($GRi,$GRj),$GRk */
4000
4001 static SEM_PC
4002 SEM_FN_NAME (frvbf,nldshu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4003 {
4004 #define FLD(f) abuf->fields.sfmt_cldsbu.f
4005   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4006   int UNUSED written = 0;
4007   IADDR UNUSED pc = abuf->addr;
4008   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4009
4010 {
4011   BI tmp_do_op;
4012   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 3, 0);
4013 if (tmp_do_op) {
4014 {
4015   USI tmp_address;
4016   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4017   {
4018     SI opval = frvbf_read_mem_HI (current_cpu, pc, tmp_address);
4019     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
4020     written |= (1 << 7);
4021     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4022   }
4023 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
4024 {
4025   {
4026     SI opval = tmp_address;
4027     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4028     written |= (1 << 6);
4029     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4030   }
4031 frvbf_force_update (current_cpu);
4032 }
4033 }
4034 }
4035 }
4036 }
4037
4038   abuf->written = written;
4039   return vpc;
4040 #undef FLD
4041 }
4042
4043 /* nlduhu: nlduhu$pack @($GRi,$GRj),$GRk */
4044
4045 static SEM_PC
4046 SEM_FN_NAME (frvbf,nlduhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4047 {
4048 #define FLD(f) abuf->fields.sfmt_cldsbu.f
4049   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4050   int UNUSED written = 0;
4051   IADDR UNUSED pc = abuf->addr;
4052   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4053
4054 {
4055   BI tmp_do_op;
4056   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 2, 0);
4057 if (tmp_do_op) {
4058 {
4059   USI tmp_address;
4060   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4061   {
4062     SI opval = frvbf_read_mem_UHI (current_cpu, pc, tmp_address);
4063     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
4064     written |= (1 << 7);
4065     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4066   }
4067 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
4068 {
4069   {
4070     SI opval = tmp_address;
4071     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4072     written |= (1 << 6);
4073     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4074   }
4075 frvbf_force_update (current_cpu);
4076 }
4077 }
4078 }
4079 }
4080 }
4081
4082   abuf->written = written;
4083   return vpc;
4084 #undef FLD
4085 }
4086
4087 /* nldu: nldu$pack @($GRi,$GRj),$GRk */
4088
4089 static SEM_PC
4090 SEM_FN_NAME (frvbf,nldu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4091 {
4092 #define FLD(f) abuf->fields.sfmt_cldsbu.f
4093   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4094   int UNUSED written = 0;
4095   IADDR UNUSED pc = abuf->addr;
4096   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4097
4098 {
4099   BI tmp_do_op;
4100   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 4, 0);
4101 if (tmp_do_op) {
4102 {
4103   USI tmp_address;
4104   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4105   {
4106     SI opval = frvbf_read_mem_SI (current_cpu, pc, tmp_address);
4107     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
4108     written |= (1 << 7);
4109     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4110   }
4111 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
4112 {
4113   {
4114     SI opval = tmp_address;
4115     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4116     written |= (1 << 6);
4117     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4118   }
4119 frvbf_force_update (current_cpu);
4120 }
4121 }
4122 }
4123 }
4124 }
4125
4126   abuf->written = written;
4127   return vpc;
4128 #undef FLD
4129 }
4130
4131 /* ldbfu: ldbfu$pack @($GRi,$GRj),$FRintk */
4132
4133 static SEM_PC
4134 SEM_FN_NAME (frvbf,ldbfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4135 {
4136 #define FLD(f) abuf->fields.sfmt_cldbfu.f
4137   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4138   int UNUSED written = 0;
4139   IADDR UNUSED pc = abuf->addr;
4140   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4141
4142 {
4143   USI tmp_address;
4144   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4145   {
4146     SI opval = frvbf_read_mem_UQI (current_cpu, pc, tmp_address);
4147     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
4148     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
4149   }
4150   {
4151     SI opval = tmp_address;
4152     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4153     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4154   }
4155 frvbf_force_update (current_cpu);
4156 }
4157
4158   return vpc;
4159 #undef FLD
4160 }
4161
4162 /* ldhfu: ldhfu$pack @($GRi,$GRj),$FRintk */
4163
4164 static SEM_PC
4165 SEM_FN_NAME (frvbf,ldhfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4166 {
4167 #define FLD(f) abuf->fields.sfmt_cldbfu.f
4168   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4169   int UNUSED written = 0;
4170   IADDR UNUSED pc = abuf->addr;
4171   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4172
4173 {
4174   USI tmp_address;
4175   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4176   {
4177     SI opval = frvbf_read_mem_UHI (current_cpu, pc, tmp_address);
4178     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
4179     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
4180   }
4181   {
4182     SI opval = tmp_address;
4183     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4184     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4185   }
4186 frvbf_force_update (current_cpu);
4187 }
4188
4189   return vpc;
4190 #undef FLD
4191 }
4192
4193 /* ldfu: ldfu$pack @($GRi,$GRj),$FRintk */
4194
4195 static SEM_PC
4196 SEM_FN_NAME (frvbf,ldfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4197 {
4198 #define FLD(f) abuf->fields.sfmt_cldbfu.f
4199   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4200   int UNUSED written = 0;
4201   IADDR UNUSED pc = abuf->addr;
4202   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4203
4204 {
4205   USI tmp_address;
4206   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4207   {
4208     SI opval = frvbf_read_mem_SI (current_cpu, pc, tmp_address);
4209     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
4210     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
4211   }
4212   {
4213     SI opval = tmp_address;
4214     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4215     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4216   }
4217 frvbf_force_update (current_cpu);
4218 }
4219
4220   return vpc;
4221 #undef FLD
4222 }
4223
4224 /* ldcu: ldcu$pack @($GRi,$GRj),$CPRk */
4225
4226 static SEM_PC
4227 SEM_FN_NAME (frvbf,ldcu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4228 {
4229 #define FLD(f) abuf->fields.sfmt_ldcu.f
4230   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4231   int UNUSED written = 0;
4232   IADDR UNUSED pc = abuf->addr;
4233   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4234
4235 {
4236   USI tmp_address;
4237   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4238   {
4239     SI opval = frvbf_read_mem_SI (current_cpu, pc, tmp_address);
4240     sim_queue_si_write (current_cpu, & CPU (h_cpr[FLD (f_CPRk)]), opval);
4241     TRACE_RESULT (current_cpu, abuf, "cpr", 'x', opval);
4242   }
4243   {
4244     SI opval = tmp_address;
4245     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4246     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4247   }
4248 frvbf_force_update (current_cpu);
4249 }
4250
4251   return vpc;
4252 #undef FLD
4253 }
4254
4255 /* nldbfu: nldbfu$pack @($GRi,$GRj),$FRintk */
4256
4257 static SEM_PC
4258 SEM_FN_NAME (frvbf,nldbfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4259 {
4260 #define FLD(f) abuf->fields.sfmt_cldbfu.f
4261   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4262   int UNUSED written = 0;
4263   IADDR UNUSED pc = abuf->addr;
4264   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4265
4266 {
4267   BI tmp_do_op;
4268   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_FRk), 0, 0, 1);
4269 if (tmp_do_op) {
4270 {
4271   USI tmp_address;
4272   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4273   {
4274     SI opval = frvbf_read_mem_UQI (current_cpu, pc, tmp_address);
4275     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
4276     written |= (1 << 6);
4277     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
4278   }
4279   {
4280     SI opval = tmp_address;
4281     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4282     written |= (1 << 7);
4283     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4284   }
4285 frvbf_force_update (current_cpu);
4286 }
4287 }
4288 }
4289
4290   abuf->written = written;
4291   return vpc;
4292 #undef FLD
4293 }
4294
4295 /* nldhfu: nldhfu$pack @($GRi,$GRj),$FRintk */
4296
4297 static SEM_PC
4298 SEM_FN_NAME (frvbf,nldhfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4299 {
4300 #define FLD(f) abuf->fields.sfmt_cldbfu.f
4301   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4302   int UNUSED written = 0;
4303   IADDR UNUSED pc = abuf->addr;
4304   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4305
4306 {
4307   BI tmp_do_op;
4308   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_FRk), 0, 2, 1);
4309 if (tmp_do_op) {
4310 {
4311   USI tmp_address;
4312   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4313   {
4314     SI opval = frvbf_read_mem_UHI (current_cpu, pc, tmp_address);
4315     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
4316     written |= (1 << 6);
4317     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
4318   }
4319   {
4320     SI opval = tmp_address;
4321     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4322     written |= (1 << 7);
4323     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4324   }
4325 frvbf_force_update (current_cpu);
4326 }
4327 }
4328 }
4329
4330   abuf->written = written;
4331   return vpc;
4332 #undef FLD
4333 }
4334
4335 /* nldfu: nldfu$pack @($GRi,$GRj),$FRintk */
4336
4337 static SEM_PC
4338 SEM_FN_NAME (frvbf,nldfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4339 {
4340 #define FLD(f) abuf->fields.sfmt_cldbfu.f
4341   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4342   int UNUSED written = 0;
4343   IADDR UNUSED pc = abuf->addr;
4344   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4345
4346 {
4347   BI tmp_do_op;
4348   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_FRk), 0, 4, 1);
4349 if (tmp_do_op) {
4350 {
4351   USI tmp_address;
4352   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4353   {
4354     SI opval = frvbf_read_mem_SI (current_cpu, pc, tmp_address);
4355     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
4356     written |= (1 << 6);
4357     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
4358   }
4359   {
4360     SI opval = tmp_address;
4361     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4362     written |= (1 << 7);
4363     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4364   }
4365 frvbf_force_update (current_cpu);
4366 }
4367 }
4368 }
4369
4370   abuf->written = written;
4371   return vpc;
4372 #undef FLD
4373 }
4374
4375 /* lddu: lddu$pack @($GRi,$GRj),$GRdoublek */
4376
4377 static SEM_PC
4378 SEM_FN_NAME (frvbf,lddu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4379 {
4380 #define FLD(f) abuf->fields.sfmt_clddu.f
4381   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4382   int UNUSED written = 0;
4383   IADDR UNUSED pc = abuf->addr;
4384   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4385
4386 {
4387   SI tmp_address;
4388 if (NESI (FLD (f_GRk), 0)) {
4389 {
4390   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4391   {
4392     DI opval = frvbf_read_mem_DI (current_cpu, pc, tmp_address);
4393     sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
4394     written |= (1 << 5);
4395     TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
4396   }
4397 }
4398 }
4399 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
4400 {
4401   {
4402     SI opval = tmp_address;
4403     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4404     written |= (1 << 6);
4405     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4406   }
4407 frvbf_force_update (current_cpu);
4408 }
4409 }
4410 }
4411
4412   abuf->written = written;
4413   return vpc;
4414 #undef FLD
4415 }
4416
4417 /* nlddu: nlddu$pack @($GRi,$GRj),$GRdoublek */
4418
4419 static SEM_PC
4420 SEM_FN_NAME (frvbf,nlddu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4421 {
4422 #define FLD(f) abuf->fields.sfmt_clddu.f
4423   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4424   int UNUSED written = 0;
4425   IADDR UNUSED pc = abuf->addr;
4426   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4427
4428 {
4429   BI tmp_do_op;
4430   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 5, 0);
4431 if (tmp_do_op) {
4432 {
4433   SI tmp_address;
4434 if (NESI (FLD (f_GRk), 0)) {
4435 {
4436   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4437   {
4438     DI opval = frvbf_read_mem_DI (current_cpu, pc, tmp_address);
4439     sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
4440     written |= (1 << 6);
4441     TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
4442   }
4443 }
4444 }
4445 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
4446 {
4447   {
4448     SI opval = tmp_address;
4449     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4450     written |= (1 << 7);
4451     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4452   }
4453 frvbf_force_update (current_cpu);
4454 }
4455 }
4456 }
4457 }
4458 }
4459
4460   abuf->written = written;
4461   return vpc;
4462 #undef FLD
4463 }
4464
4465 /* lddfu: lddfu$pack @($GRi,$GRj),$FRdoublek */
4466
4467 static SEM_PC
4468 SEM_FN_NAME (frvbf,lddfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4469 {
4470 #define FLD(f) abuf->fields.sfmt_clddfu.f
4471   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4472   int UNUSED written = 0;
4473   IADDR UNUSED pc = abuf->addr;
4474   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4475
4476 {
4477   SI tmp_address;
4478 {
4479   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4480   {
4481     DF opval = frvbf_read_mem_DF (current_cpu, pc, tmp_address);
4482     sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
4483     TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
4484   }
4485 }
4486   {
4487     SI opval = tmp_address;
4488     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4489     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4490   }
4491 frvbf_force_update (current_cpu);
4492 }
4493
4494   return vpc;
4495 #undef FLD
4496 }
4497
4498 /* lddcu: lddcu$pack @($GRi,$GRj),$CPRdoublek */
4499
4500 static SEM_PC
4501 SEM_FN_NAME (frvbf,lddcu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4502 {
4503 #define FLD(f) abuf->fields.sfmt_lddcu.f
4504   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4505   int UNUSED written = 0;
4506   IADDR UNUSED pc = abuf->addr;
4507   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4508
4509 {
4510   SI tmp_address;
4511 {
4512   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4513   {
4514     DI opval = frvbf_read_mem_DI (current_cpu, pc, tmp_address);
4515     sim_queue_fn_di_write (current_cpu, frvbf_h_cpr_double_set, FLD (f_CPRk), opval);
4516     TRACE_RESULT (current_cpu, abuf, "cpr_double", 'D', opval);
4517   }
4518 }
4519   {
4520     SI opval = tmp_address;
4521     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4522     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4523   }
4524 frvbf_force_update (current_cpu);
4525 }
4526
4527   return vpc;
4528 #undef FLD
4529 }
4530
4531 /* nlddfu: nlddfu$pack @($GRi,$GRj),$FRdoublek */
4532
4533 static SEM_PC
4534 SEM_FN_NAME (frvbf,nlddfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4535 {
4536 #define FLD(f) abuf->fields.sfmt_clddfu.f
4537   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4538   int UNUSED written = 0;
4539   IADDR UNUSED pc = abuf->addr;
4540   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4541
4542 {
4543   BI tmp_do_op;
4544   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_FRk), 0, 5, 1);
4545 if (tmp_do_op) {
4546 {
4547   SI tmp_address;
4548 {
4549   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4550   {
4551     DF opval = frvbf_read_mem_DF (current_cpu, pc, tmp_address);
4552     sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
4553     written |= (1 << 6);
4554     TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
4555   }
4556 }
4557   {
4558     SI opval = tmp_address;
4559     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4560     written |= (1 << 7);
4561     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4562   }
4563 frvbf_force_update (current_cpu);
4564 }
4565 }
4566 }
4567
4568   abuf->written = written;
4569   return vpc;
4570 #undef FLD
4571 }
4572
4573 /* ldqu: ldqu$pack @($GRi,$GRj),$GRk */
4574
4575 static SEM_PC
4576 SEM_FN_NAME (frvbf,ldqu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4577 {
4578 #define FLD(f) abuf->fields.sfmt_cstdu.f
4579   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4580   int UNUSED written = 0;
4581   IADDR UNUSED pc = abuf->addr;
4582   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4583
4584 {
4585   SI tmp_address;
4586 {
4587   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4588 frvbf_load_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
4589 }
4590 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
4591 {
4592   {
4593     SI opval = tmp_address;
4594     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4595     written |= (1 << 5);
4596     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4597   }
4598 frvbf_force_update (current_cpu);
4599 }
4600 }
4601 }
4602
4603   abuf->written = written;
4604   return vpc;
4605 #undef FLD
4606 }
4607
4608 /* nldqu: nldqu$pack @($GRi,$GRj),$GRk */
4609
4610 static SEM_PC
4611 SEM_FN_NAME (frvbf,nldqu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4612 {
4613 #define FLD(f) abuf->fields.sfmt_cstdu.f
4614   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4615   int UNUSED written = 0;
4616   IADDR UNUSED pc = abuf->addr;
4617   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4618
4619 {
4620   BI tmp_do_op;
4621   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 6, 0);
4622 if (tmp_do_op) {
4623 {
4624   SI tmp_address;
4625 {
4626   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4627 frvbf_load_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
4628 }
4629 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
4630 {
4631   {
4632     SI opval = tmp_address;
4633     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4634     written |= (1 << 6);
4635     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4636   }
4637 frvbf_force_update (current_cpu);
4638 }
4639 }
4640 }
4641 }
4642 }
4643
4644   abuf->written = written;
4645   return vpc;
4646 #undef FLD
4647 }
4648
4649 /* ldqfu: ldqfu$pack @($GRi,$GRj),$FRintk */
4650
4651 static SEM_PC
4652 SEM_FN_NAME (frvbf,ldqfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4653 {
4654 #define FLD(f) abuf->fields.sfmt_cstdfu.f
4655   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4656   int UNUSED written = 0;
4657   IADDR UNUSED pc = abuf->addr;
4658   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4659
4660 {
4661   SI tmp_address;
4662 {
4663   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4664 frvbf_load_quad_FRint (current_cpu, pc, tmp_address, FLD (f_FRk));
4665 }
4666   {
4667     SI opval = tmp_address;
4668     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4669     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4670   }
4671 frvbf_force_update (current_cpu);
4672 }
4673
4674   return vpc;
4675 #undef FLD
4676 }
4677
4678 /* ldqcu: ldqcu$pack @($GRi,$GRj),$CPRk */
4679
4680 static SEM_PC
4681 SEM_FN_NAME (frvbf,ldqcu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4682 {
4683 #define FLD(f) abuf->fields.sfmt_stdcu.f
4684   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4685   int UNUSED written = 0;
4686   IADDR UNUSED pc = abuf->addr;
4687   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4688
4689 {
4690   SI tmp_address;
4691 {
4692   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4693 frvbf_load_quad_CPR (current_cpu, pc, tmp_address, FLD (f_CPRk));
4694 }
4695   {
4696     SI opval = tmp_address;
4697     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4698     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4699   }
4700 frvbf_force_update (current_cpu);
4701 }
4702
4703   return vpc;
4704 #undef FLD
4705 }
4706
4707 /* nldqfu: nldqfu$pack @($GRi,$GRj),$FRintk */
4708
4709 static SEM_PC
4710 SEM_FN_NAME (frvbf,nldqfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4711 {
4712 #define FLD(f) abuf->fields.sfmt_cstdfu.f
4713   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4714   int UNUSED written = 0;
4715   IADDR UNUSED pc = abuf->addr;
4716   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4717
4718 {
4719   BI tmp_do_op;
4720   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_FRk), 0, 6, 1);
4721 if (tmp_do_op) {
4722 {
4723   SI tmp_address;
4724 {
4725   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4726 frvbf_load_quad_FRint (current_cpu, pc, tmp_address, FLD (f_FRk));
4727 }
4728   {
4729     SI opval = tmp_address;
4730     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4731     written |= (1 << 6);
4732     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4733   }
4734 frvbf_force_update (current_cpu);
4735 }
4736 }
4737 }
4738
4739   abuf->written = written;
4740   return vpc;
4741 #undef FLD
4742 }
4743
4744 /* ldsbi: ldsbi$pack @($GRi,$d12),$GRk */
4745
4746 static SEM_PC
4747 SEM_FN_NAME (frvbf,ldsbi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4748 {
4749 #define FLD(f) abuf->fields.sfmt_swapi.f
4750   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4751   int UNUSED written = 0;
4752   IADDR UNUSED pc = abuf->addr;
4753   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4754
4755   {
4756     SI opval = frvbf_read_mem_QI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
4757     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
4758     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4759   }
4760
4761   return vpc;
4762 #undef FLD
4763 }
4764
4765 /* ldshi: ldshi$pack @($GRi,$d12),$GRk */
4766
4767 static SEM_PC
4768 SEM_FN_NAME (frvbf,ldshi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4769 {
4770 #define FLD(f) abuf->fields.sfmt_swapi.f
4771   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4772   int UNUSED written = 0;
4773   IADDR UNUSED pc = abuf->addr;
4774   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4775
4776   {
4777     SI opval = frvbf_read_mem_HI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
4778     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
4779     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4780   }
4781
4782   return vpc;
4783 #undef FLD
4784 }
4785
4786 /* ldi: ldi$pack @($GRi,$d12),$GRk */
4787
4788 static SEM_PC
4789 SEM_FN_NAME (frvbf,ldi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4790 {
4791 #define FLD(f) abuf->fields.sfmt_swapi.f
4792   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4793   int UNUSED written = 0;
4794   IADDR UNUSED pc = abuf->addr;
4795   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4796
4797   {
4798     SI opval = frvbf_read_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
4799     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
4800     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4801   }
4802
4803   return vpc;
4804 #undef FLD
4805 }
4806
4807 /* ldubi: ldubi$pack @($GRi,$d12),$GRk */
4808
4809 static SEM_PC
4810 SEM_FN_NAME (frvbf,ldubi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4811 {
4812 #define FLD(f) abuf->fields.sfmt_swapi.f
4813   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4814   int UNUSED written = 0;
4815   IADDR UNUSED pc = abuf->addr;
4816   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4817
4818   {
4819     SI opval = frvbf_read_mem_UQI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
4820     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
4821     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4822   }
4823
4824   return vpc;
4825 #undef FLD
4826 }
4827
4828 /* lduhi: lduhi$pack @($GRi,$d12),$GRk */
4829
4830 static SEM_PC
4831 SEM_FN_NAME (frvbf,lduhi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4832 {
4833 #define FLD(f) abuf->fields.sfmt_swapi.f
4834   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4835   int UNUSED written = 0;
4836   IADDR UNUSED pc = abuf->addr;
4837   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4838
4839   {
4840     SI opval = frvbf_read_mem_UHI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
4841     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
4842     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4843   }
4844
4845   return vpc;
4846 #undef FLD
4847 }
4848
4849 /* ldbfi: ldbfi$pack @($GRi,$d12),$FRintk */
4850
4851 static SEM_PC
4852 SEM_FN_NAME (frvbf,ldbfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4853 {
4854 #define FLD(f) abuf->fields.sfmt_ldbfi.f
4855   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4856   int UNUSED written = 0;
4857   IADDR UNUSED pc = abuf->addr;
4858   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4859
4860   {
4861     SI opval = frvbf_read_mem_UQI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
4862     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
4863     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
4864   }
4865
4866   return vpc;
4867 #undef FLD
4868 }
4869
4870 /* ldhfi: ldhfi$pack @($GRi,$d12),$FRintk */
4871
4872 static SEM_PC
4873 SEM_FN_NAME (frvbf,ldhfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4874 {
4875 #define FLD(f) abuf->fields.sfmt_ldbfi.f
4876   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4877   int UNUSED written = 0;
4878   IADDR UNUSED pc = abuf->addr;
4879   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4880
4881   {
4882     SI opval = frvbf_read_mem_UHI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
4883     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
4884     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
4885   }
4886
4887   return vpc;
4888 #undef FLD
4889 }
4890
4891 /* ldfi: ldfi$pack @($GRi,$d12),$FRintk */
4892
4893 static SEM_PC
4894 SEM_FN_NAME (frvbf,ldfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4895 {
4896 #define FLD(f) abuf->fields.sfmt_ldbfi.f
4897   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4898   int UNUSED written = 0;
4899   IADDR UNUSED pc = abuf->addr;
4900   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4901
4902   {
4903     SI opval = frvbf_read_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
4904     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
4905     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
4906   }
4907
4908   return vpc;
4909 #undef FLD
4910 }
4911
4912 /* nldsbi: nldsbi$pack @($GRi,$d12),$GRk */
4913
4914 static SEM_PC
4915 SEM_FN_NAME (frvbf,nldsbi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4916 {
4917 #define FLD(f) abuf->fields.sfmt_swapi.f
4918   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4919   int UNUSED written = 0;
4920   IADDR UNUSED pc = abuf->addr;
4921   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4922
4923 {
4924   BI tmp_do_op;
4925   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), -1, FLD (f_GRk), FLD (f_d12), 1, 0);
4926 if (tmp_do_op) {
4927   {
4928     SI opval = frvbf_read_mem_QI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
4929     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
4930     written |= (1 << 5);
4931     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4932   }
4933 }
4934 }
4935
4936   abuf->written = written;
4937   return vpc;
4938 #undef FLD
4939 }
4940
4941 /* nldubi: nldubi$pack @($GRi,$d12),$GRk */
4942
4943 static SEM_PC
4944 SEM_FN_NAME (frvbf,nldubi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4945 {
4946 #define FLD(f) abuf->fields.sfmt_swapi.f
4947   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4948   int UNUSED written = 0;
4949   IADDR UNUSED pc = abuf->addr;
4950   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4951
4952 {
4953   BI tmp_do_op;
4954   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), -1, FLD (f_GRk), FLD (f_d12), 0, 0);
4955 if (tmp_do_op) {
4956   {
4957     SI opval = frvbf_read_mem_UQI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
4958     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
4959     written |= (1 << 5);
4960     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4961   }
4962 }
4963 }
4964
4965   abuf->written = written;
4966   return vpc;
4967 #undef FLD
4968 }
4969
4970 /* nldshi: nldshi$pack @($GRi,$d12),$GRk */
4971
4972 static SEM_PC
4973 SEM_FN_NAME (frvbf,nldshi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4974 {
4975 #define FLD(f) abuf->fields.sfmt_swapi.f
4976   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4977   int UNUSED written = 0;
4978   IADDR UNUSED pc = abuf->addr;
4979   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4980
4981 {
4982   BI tmp_do_op;
4983   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), -1, FLD (f_GRk), FLD (f_d12), 3, 0);
4984 if (tmp_do_op) {
4985   {
4986     SI opval = frvbf_read_mem_HI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
4987     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
4988     written |= (1 << 5);
4989     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4990   }
4991 }
4992 }
4993
4994   abuf->written = written;
4995   return vpc;
4996 #undef FLD
4997 }
4998
4999 /* nlduhi: nlduhi$pack @($GRi,$d12),$GRk */
5000
5001 static SEM_PC
5002 SEM_FN_NAME (frvbf,nlduhi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5003 {
5004 #define FLD(f) abuf->fields.sfmt_swapi.f
5005   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5006   int UNUSED written = 0;
5007   IADDR UNUSED pc = abuf->addr;
5008   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5009
5010 {
5011   BI tmp_do_op;
5012   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), -1, FLD (f_GRk), FLD (f_d12), 2, 0);
5013 if (tmp_do_op) {
5014   {
5015     SI opval = frvbf_read_mem_UHI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
5016     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
5017     written |= (1 << 5);
5018     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5019   }
5020 }
5021 }
5022
5023   abuf->written = written;
5024   return vpc;
5025 #undef FLD
5026 }
5027
5028 /* nldi: nldi$pack @($GRi,$d12),$GRk */
5029
5030 static SEM_PC
5031 SEM_FN_NAME (frvbf,nldi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5032 {
5033 #define FLD(f) abuf->fields.sfmt_swapi.f
5034   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5035   int UNUSED written = 0;
5036   IADDR UNUSED pc = abuf->addr;
5037   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5038
5039 {
5040   BI tmp_do_op;
5041   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), -1, FLD (f_GRk), FLD (f_d12), 4, 0);
5042 if (tmp_do_op) {
5043   {
5044     SI opval = frvbf_read_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
5045     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
5046     written |= (1 << 5);
5047     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5048   }
5049 }
5050 }
5051
5052   abuf->written = written;
5053   return vpc;
5054 #undef FLD
5055 }
5056
5057 /* nldbfi: nldbfi$pack @($GRi,$d12),$FRintk */
5058
5059 static SEM_PC
5060 SEM_FN_NAME (frvbf,nldbfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5061 {
5062 #define FLD(f) abuf->fields.sfmt_ldbfi.f
5063   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5064   int UNUSED written = 0;
5065   IADDR UNUSED pc = abuf->addr;
5066   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5067
5068 {
5069   BI tmp_do_op;
5070   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), -1, FLD (f_FRk), FLD (f_d12), 0, 1);
5071 if (tmp_do_op) {
5072   {
5073     SI opval = frvbf_read_mem_UQI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
5074     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
5075     written |= (1 << 5);
5076     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
5077   }
5078 }
5079 }
5080
5081   abuf->written = written;
5082   return vpc;
5083 #undef FLD
5084 }
5085
5086 /* nldhfi: nldhfi$pack @($GRi,$d12),$FRintk */
5087
5088 static SEM_PC
5089 SEM_FN_NAME (frvbf,nldhfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5090 {
5091 #define FLD(f) abuf->fields.sfmt_ldbfi.f
5092   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5093   int UNUSED written = 0;
5094   IADDR UNUSED pc = abuf->addr;
5095   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5096
5097 {
5098   BI tmp_do_op;
5099   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), -1, FLD (f_FRk), FLD (f_d12), 2, 1);
5100 if (tmp_do_op) {
5101   {
5102     SI opval = frvbf_read_mem_UHI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
5103     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
5104     written |= (1 << 5);
5105     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
5106   }
5107 }
5108 }
5109
5110   abuf->written = written;
5111   return vpc;
5112 #undef FLD
5113 }
5114
5115 /* nldfi: nldfi$pack @($GRi,$d12),$FRintk */
5116
5117 static SEM_PC
5118 SEM_FN_NAME (frvbf,nldfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5119 {
5120 #define FLD(f) abuf->fields.sfmt_ldbfi.f
5121   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5122   int UNUSED written = 0;
5123   IADDR UNUSED pc = abuf->addr;
5124   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5125
5126 {
5127   BI tmp_do_op;
5128   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), -1, FLD (f_FRk), FLD (f_d12), 4, 1);
5129 if (tmp_do_op) {
5130   {
5131     SI opval = frvbf_read_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
5132     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
5133     written |= (1 << 5);
5134     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
5135   }
5136 }
5137 }
5138
5139   abuf->written = written;
5140   return vpc;
5141 #undef FLD
5142 }
5143
5144 /* lddi: lddi$pack @($GRi,$d12),$GRdoublek */
5145
5146 static SEM_PC
5147 SEM_FN_NAME (frvbf,lddi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5148 {
5149 #define FLD(f) abuf->fields.sfmt_smuli.f
5150   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5151   int UNUSED written = 0;
5152   IADDR UNUSED pc = abuf->addr;
5153   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5154
5155 {
5156   SI tmp_address;
5157 if (NESI (FLD (f_GRk), 0)) {
5158 {
5159   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
5160   {
5161     DI opval = frvbf_read_mem_DI (current_cpu, pc, tmp_address);
5162     sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
5163     written |= (1 << 4);
5164     TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
5165   }
5166 }
5167 }
5168 }
5169
5170   abuf->written = written;
5171   return vpc;
5172 #undef FLD
5173 }
5174
5175 /* lddfi: lddfi$pack @($GRi,$d12),$FRdoublek */
5176
5177 static SEM_PC
5178 SEM_FN_NAME (frvbf,lddfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5179 {
5180 #define FLD(f) abuf->fields.sfmt_lddfi.f
5181   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5182   int UNUSED written = 0;
5183   IADDR UNUSED pc = abuf->addr;
5184   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5185
5186 {
5187   SI tmp_address;
5188 {
5189   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
5190   {
5191     DF opval = frvbf_read_mem_DF (current_cpu, pc, tmp_address);
5192     sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
5193     TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
5194   }
5195 }
5196 }
5197
5198   return vpc;
5199 #undef FLD
5200 }
5201
5202 /* nlddi: nlddi$pack @($GRi,$d12),$GRdoublek */
5203
5204 static SEM_PC
5205 SEM_FN_NAME (frvbf,nlddi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5206 {
5207 #define FLD(f) abuf->fields.sfmt_smuli.f
5208   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5209   int UNUSED written = 0;
5210   IADDR UNUSED pc = abuf->addr;
5211   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5212
5213 {
5214   SI tmp_address;
5215 {
5216   BI tmp_do_op;
5217   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), -1, FLD (f_GRk), FLD (f_d12), 5, 0);
5218 if (tmp_do_op) {
5219 if (NESI (FLD (f_GRk), 0)) {
5220 {
5221   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
5222   {
5223     DI opval = frvbf_read_mem_DI (current_cpu, pc, tmp_address);
5224     sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
5225     written |= (1 << 5);
5226     TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
5227   }
5228 }
5229 }
5230 }
5231 }
5232 }
5233
5234   abuf->written = written;
5235   return vpc;
5236 #undef FLD
5237 }
5238
5239 /* nlddfi: nlddfi$pack @($GRi,$d12),$FRdoublek */
5240
5241 static SEM_PC
5242 SEM_FN_NAME (frvbf,nlddfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5243 {
5244 #define FLD(f) abuf->fields.sfmt_lddfi.f
5245   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5246   int UNUSED written = 0;
5247   IADDR UNUSED pc = abuf->addr;
5248   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5249
5250 {
5251   SI tmp_address;
5252 {
5253   BI tmp_do_op;
5254   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), -1, FLD (f_FRk), FLD (f_d12), 5, 1);
5255 if (tmp_do_op) {
5256 {
5257   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
5258   {
5259     DF opval = frvbf_read_mem_DF (current_cpu, pc, tmp_address);
5260     sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
5261     written |= (1 << 5);
5262     TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
5263   }
5264 }
5265 }
5266 }
5267 }
5268
5269   abuf->written = written;
5270   return vpc;
5271 #undef FLD
5272 }
5273
5274 /* ldqi: ldqi$pack @($GRi,$d12),$GRk */
5275
5276 static SEM_PC
5277 SEM_FN_NAME (frvbf,ldqi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5278 {
5279 #define FLD(f) abuf->fields.sfmt_stdi.f
5280   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5281   int UNUSED written = 0;
5282   IADDR UNUSED pc = abuf->addr;
5283   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5284
5285 {
5286   SI tmp_address;
5287 {
5288   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
5289 frvbf_load_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
5290 }
5291 }
5292
5293   return vpc;
5294 #undef FLD
5295 }
5296
5297 /* ldqfi: ldqfi$pack @($GRi,$d12),$FRintk */
5298
5299 static SEM_PC
5300 SEM_FN_NAME (frvbf,ldqfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5301 {
5302 #define FLD(f) abuf->fields.sfmt_stdfi.f
5303   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5304   int UNUSED written = 0;
5305   IADDR UNUSED pc = abuf->addr;
5306   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5307
5308 {
5309   SI tmp_address;
5310 {
5311   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
5312 frvbf_load_quad_FRint (current_cpu, pc, tmp_address, FLD (f_FRk));
5313 }
5314 }
5315
5316   return vpc;
5317 #undef FLD
5318 }
5319
5320 /* nldqi: nldqi$pack @($GRi,$d12),$GRk */
5321
5322 static SEM_PC
5323 SEM_FN_NAME (frvbf,nldqi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5324 {
5325 #define FLD(f) abuf->fields.sfmt_stdi.f
5326   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5327   int UNUSED written = 0;
5328   IADDR UNUSED pc = abuf->addr;
5329   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5330
5331 {
5332   SI tmp_address;
5333 {
5334   BI tmp_do_op;
5335   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), -1, FLD (f_GRk), FLD (f_d12), 6, 0);
5336 if (tmp_do_op) {
5337 {
5338   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
5339 frvbf_load_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
5340 }
5341 }
5342 }
5343 }
5344
5345   return vpc;
5346 #undef FLD
5347 }
5348
5349 /* nldqfi: nldqfi$pack @($GRi,$d12),$FRintk */
5350
5351 static SEM_PC
5352 SEM_FN_NAME (frvbf,nldqfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5353 {
5354 #define FLD(f) abuf->fields.sfmt_stdfi.f
5355   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5356   int UNUSED written = 0;
5357   IADDR UNUSED pc = abuf->addr;
5358   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5359
5360 {
5361   SI tmp_address;
5362 {
5363   BI tmp_do_op;
5364   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), -1, FLD (f_FRk), FLD (f_d12), 6, 1);
5365 if (tmp_do_op) {
5366 {
5367   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
5368 frvbf_load_quad_FRint (current_cpu, pc, tmp_address, FLD (f_FRk));
5369 }
5370 }
5371 }
5372 }
5373
5374   return vpc;
5375 #undef FLD
5376 }
5377
5378 /* stb: stb$pack $GRk,@($GRi,$GRj) */
5379
5380 static SEM_PC
5381 SEM_FN_NAME (frvbf,stb) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5382 {
5383 #define FLD(f) abuf->fields.sfmt_cswap.f
5384   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5385   int UNUSED written = 0;
5386   IADDR UNUSED pc = abuf->addr;
5387   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5388
5389 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)));
5390
5391   return vpc;
5392 #undef FLD
5393 }
5394
5395 /* sth: sth$pack $GRk,@($GRi,$GRj) */
5396
5397 static SEM_PC
5398 SEM_FN_NAME (frvbf,sth) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5399 {
5400 #define FLD(f) abuf->fields.sfmt_cswap.f
5401   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5402   int UNUSED written = 0;
5403   IADDR UNUSED pc = abuf->addr;
5404   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5405
5406 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)));
5407
5408   return vpc;
5409 #undef FLD
5410 }
5411
5412 /* st: st$pack $GRk,@($GRi,$GRj) */
5413
5414 static SEM_PC
5415 SEM_FN_NAME (frvbf,st) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5416 {
5417 #define FLD(f) abuf->fields.sfmt_cswap.f
5418   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5419   int UNUSED written = 0;
5420   IADDR UNUSED pc = abuf->addr;
5421   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5422
5423 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)));
5424
5425   return vpc;
5426 #undef FLD
5427 }
5428
5429 /* stbf: stbf$pack $FRintk,@($GRi,$GRj) */
5430
5431 static SEM_PC
5432 SEM_FN_NAME (frvbf,stbf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5433 {
5434 #define FLD(f) abuf->fields.sfmt_cstbfu.f
5435   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5436   int UNUSED written = 0;
5437   IADDR UNUSED pc = abuf->addr;
5438   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5439
5440 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)));
5441
5442   return vpc;
5443 #undef FLD
5444 }
5445
5446 /* sthf: sthf$pack $FRintk,@($GRi,$GRj) */
5447
5448 static SEM_PC
5449 SEM_FN_NAME (frvbf,sthf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5450 {
5451 #define FLD(f) abuf->fields.sfmt_cstbfu.f
5452   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5453   int UNUSED written = 0;
5454   IADDR UNUSED pc = abuf->addr;
5455   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5456
5457 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)));
5458
5459   return vpc;
5460 #undef FLD
5461 }
5462
5463 /* stf: stf$pack $FRintk,@($GRi,$GRj) */
5464
5465 static SEM_PC
5466 SEM_FN_NAME (frvbf,stf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5467 {
5468 #define FLD(f) abuf->fields.sfmt_cstbfu.f
5469   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5470   int UNUSED written = 0;
5471   IADDR UNUSED pc = abuf->addr;
5472   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5473
5474 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)));
5475
5476   return vpc;
5477 #undef FLD
5478 }
5479
5480 /* stc: stc$pack $CPRk,@($GRi,$GRj) */
5481
5482 static SEM_PC
5483 SEM_FN_NAME (frvbf,stc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5484 {
5485 #define FLD(f) abuf->fields.sfmt_stcu.f
5486   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5487   int UNUSED written = 0;
5488   IADDR UNUSED pc = abuf->addr;
5489   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5490
5491 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)]));
5492
5493   return vpc;
5494 #undef FLD
5495 }
5496
5497 /* rstb: rstb$pack $GRk,@($GRi,$GRj) */
5498
5499 static SEM_PC
5500 SEM_FN_NAME (frvbf,rstb) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5501 {
5502 #define FLD(f) abuf->fields.sfmt_cswap.f
5503   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5504   int UNUSED written = 0;
5505   IADDR UNUSED pc = abuf->addr;
5506   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5507
5508 {
5509   SI tmp_address;
5510   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5511 frvbf_write_mem_QI (current_cpu, pc, tmp_address, GET_H_GR (FLD (f_GRk)));
5512 frvbf_check_recovering_store (current_cpu, tmp_address, FLD (f_GRk), 1, 0);
5513 }
5514
5515   return vpc;
5516 #undef FLD
5517 }
5518
5519 /* rsth: rsth$pack $GRk,@($GRi,$GRj) */
5520
5521 static SEM_PC
5522 SEM_FN_NAME (frvbf,rsth) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5523 {
5524 #define FLD(f) abuf->fields.sfmt_cswap.f
5525   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5526   int UNUSED written = 0;
5527   IADDR UNUSED pc = abuf->addr;
5528   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5529
5530 {
5531   SI tmp_address;
5532   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5533 frvbf_write_mem_HI (current_cpu, pc, tmp_address, GET_H_GR (FLD (f_GRk)));
5534 frvbf_check_recovering_store (current_cpu, tmp_address, FLD (f_GRk), 2, 0);
5535 }
5536
5537   return vpc;
5538 #undef FLD
5539 }
5540
5541 /* rst: rst$pack $GRk,@($GRi,$GRj) */
5542
5543 static SEM_PC
5544 SEM_FN_NAME (frvbf,rst) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5545 {
5546 #define FLD(f) abuf->fields.sfmt_cswap.f
5547   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5548   int UNUSED written = 0;
5549   IADDR UNUSED pc = abuf->addr;
5550   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5551
5552 {
5553   SI tmp_address;
5554   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5555 frvbf_write_mem_SI (current_cpu, pc, tmp_address, GET_H_GR (FLD (f_GRk)));
5556 frvbf_check_recovering_store (current_cpu, tmp_address, FLD (f_GRk), 4, 0);
5557 }
5558
5559   return vpc;
5560 #undef FLD
5561 }
5562
5563 /* rstbf: rstbf$pack $FRintk,@($GRi,$GRj) */
5564
5565 static SEM_PC
5566 SEM_FN_NAME (frvbf,rstbf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5567 {
5568 #define FLD(f) abuf->fields.sfmt_cstbfu.f
5569   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5570   int UNUSED written = 0;
5571   IADDR UNUSED pc = abuf->addr;
5572   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5573
5574 {
5575   SI tmp_address;
5576   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5577 frvbf_write_mem_QI (current_cpu, pc, tmp_address, GET_H_FR_INT (FLD (f_FRk)));
5578 frvbf_check_recovering_store (current_cpu, tmp_address, FLD (f_FRk), 1, 1);
5579 }
5580
5581   return vpc;
5582 #undef FLD
5583 }
5584
5585 /* rsthf: rsthf$pack $FRintk,@($GRi,$GRj) */
5586
5587 static SEM_PC
5588 SEM_FN_NAME (frvbf,rsthf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5589 {
5590 #define FLD(f) abuf->fields.sfmt_cstbfu.f
5591   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5592   int UNUSED written = 0;
5593   IADDR UNUSED pc = abuf->addr;
5594   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5595
5596 {
5597   SI tmp_address;
5598   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5599 frvbf_write_mem_HI (current_cpu, pc, tmp_address, GET_H_FR_INT (FLD (f_FRk)));
5600 frvbf_check_recovering_store (current_cpu, tmp_address, FLD (f_FRk), 2, 1);
5601 }
5602
5603   return vpc;
5604 #undef FLD
5605 }
5606
5607 /* rstf: rstf$pack $FRintk,@($GRi,$GRj) */
5608
5609 static SEM_PC
5610 SEM_FN_NAME (frvbf,rstf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5611 {
5612 #define FLD(f) abuf->fields.sfmt_cstbfu.f
5613   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5614   int UNUSED written = 0;
5615   IADDR UNUSED pc = abuf->addr;
5616   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5617
5618 {
5619   SI tmp_address;
5620   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5621 frvbf_write_mem_SI (current_cpu, pc, tmp_address, GET_H_FR_INT (FLD (f_FRk)));
5622 frvbf_check_recovering_store (current_cpu, tmp_address, FLD (f_FRk), 4, 1);
5623 }
5624
5625   return vpc;
5626 #undef FLD
5627 }
5628
5629 /* std: std$pack $GRk,@($GRi,$GRj) */
5630
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 $FRk,@($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 $CPRk,@($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 /* rstd: rstd$pack $GRk,@($GRi,$GRj) */
5699
5700 static SEM_PC
5701 SEM_FN_NAME (frvbf,rstd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5702 {
5703 #define FLD(f) abuf->fields.sfmt_cstdu.f
5704   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5705   int UNUSED written = 0;
5706   IADDR UNUSED pc = abuf->addr;
5707   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5708
5709 {
5710   SI tmp_address;
5711 {
5712   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5713 frvbf_write_mem_DI (current_cpu, pc, tmp_address, GET_H_GR_DOUBLE (FLD (f_GRk)));
5714 }
5715 frvbf_check_recovering_store (current_cpu, tmp_address, FLD (f_GRk), 8, 0);
5716 }
5717
5718   return vpc;
5719 #undef FLD
5720 }
5721
5722 /* rstdf: rstdf$pack $FRk,@($GRi,$GRj) */
5723
5724 static SEM_PC
5725 SEM_FN_NAME (frvbf,rstdf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5726 {
5727 #define FLD(f) abuf->fields.sfmt_cstdfu.f
5728   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5729   int UNUSED written = 0;
5730   IADDR UNUSED pc = abuf->addr;
5731   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5732
5733 {
5734   SI tmp_address;
5735 {
5736   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5737 frvbf_write_mem_DF (current_cpu, pc, tmp_address, GET_H_FR_DOUBLE (FLD (f_FRk)));
5738 }
5739 frvbf_check_recovering_store (current_cpu, tmp_address, FLD (f_FRk), 8, 1);
5740 }
5741
5742   return vpc;
5743 #undef FLD
5744 }
5745
5746 /* stq: stq$pack $GRk,@($GRi,$GRj) */
5747
5748 static SEM_PC
5749 SEM_FN_NAME (frvbf,stq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5750 {
5751 #define FLD(f) abuf->fields.sfmt_smulcc.f
5752   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5753   int UNUSED written = 0;
5754   IADDR UNUSED pc = abuf->addr;
5755   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5756
5757 {
5758   SI tmp_address;
5759 {
5760   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5761 frvbf_store_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
5762 }
5763 }
5764
5765   return vpc;
5766 #undef FLD
5767 }
5768
5769 /* stqf: stqf$pack $FRintk,@($GRi,$GRj) */
5770
5771 static SEM_PC
5772 SEM_FN_NAME (frvbf,stqf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5773 {
5774 #define FLD(f) abuf->fields.sfmt_cstdfu.f
5775   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5776   int UNUSED written = 0;
5777   IADDR UNUSED pc = abuf->addr;
5778   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5779
5780 {
5781   SI tmp_address;
5782 {
5783   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5784 frvbf_store_quad_FRint (current_cpu, pc, tmp_address, FLD (f_FRk));
5785 }
5786 }
5787
5788   return vpc;
5789 #undef FLD
5790 }
5791
5792 /* stqc: stqc$pack $CPRk,@($GRi,$GRj) */
5793
5794 static SEM_PC
5795 SEM_FN_NAME (frvbf,stqc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5796 {
5797 #define FLD(f) abuf->fields.sfmt_stdcu.f
5798   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5799   int UNUSED written = 0;
5800   IADDR UNUSED pc = abuf->addr;
5801   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5802
5803 {
5804   SI tmp_address;
5805 {
5806   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5807 frvbf_store_quad_CPR (current_cpu, pc, tmp_address, FLD (f_CPRk));
5808 }
5809 }
5810
5811   return vpc;
5812 #undef FLD
5813 }
5814
5815 /* rstq: rstq$pack $GRk,@($GRi,$GRj) */
5816
5817 static SEM_PC
5818 SEM_FN_NAME (frvbf,rstq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5819 {
5820 #define FLD(f) abuf->fields.sfmt_smulcc.f
5821   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5822   int UNUSED written = 0;
5823   IADDR UNUSED pc = abuf->addr;
5824   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5825
5826 {
5827   SI tmp_address;
5828 {
5829   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5830 frvbf_store_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
5831 }
5832 frvbf_check_recovering_store (current_cpu, tmp_address, FLD (f_GRk), 16, 0);
5833 }
5834
5835   return vpc;
5836 #undef FLD
5837 }
5838
5839 /* rstqf: rstqf$pack $FRintk,@($GRi,$GRj) */
5840
5841 static SEM_PC
5842 SEM_FN_NAME (frvbf,rstqf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5843 {
5844 #define FLD(f) abuf->fields.sfmt_cstdfu.f
5845   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5846   int UNUSED written = 0;
5847   IADDR UNUSED pc = abuf->addr;
5848   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5849
5850 {
5851   SI tmp_address;
5852 {
5853   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5854 frvbf_store_quad_FRint (current_cpu, pc, tmp_address, FLD (f_FRk));
5855 }
5856 frvbf_check_recovering_store (current_cpu, tmp_address, FLD (f_FRk), 16, 1);
5857 }
5858
5859   return vpc;
5860 #undef FLD
5861 }
5862
5863 /* stbu: stbu$pack $GRk,@($GRi,$GRj) */
5864
5865 static SEM_PC
5866 SEM_FN_NAME (frvbf,stbu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5867 {
5868 #define FLD(f) abuf->fields.sfmt_cstbu.f
5869   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5870   int UNUSED written = 0;
5871   IADDR UNUSED pc = abuf->addr;
5872   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5873
5874 {
5875   USI tmp_address;
5876   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5877 frvbf_write_mem_QI (current_cpu, pc, tmp_address, GET_H_GR (FLD (f_GRk)));
5878   {
5879     SI opval = tmp_address;
5880     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
5881     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5882   }
5883 }
5884
5885   return vpc;
5886 #undef FLD
5887 }
5888
5889 /* sthu: sthu$pack $GRk,@($GRi,$GRj) */
5890
5891 static SEM_PC
5892 SEM_FN_NAME (frvbf,sthu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5893 {
5894 #define FLD(f) abuf->fields.sfmt_cstbu.f
5895   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5896   int UNUSED written = 0;
5897   IADDR UNUSED pc = abuf->addr;
5898   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5899
5900 {
5901   USI tmp_address;
5902   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5903 frvbf_write_mem_HI (current_cpu, pc, tmp_address, GET_H_GR (FLD (f_GRk)));
5904   {
5905     SI opval = tmp_address;
5906     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
5907     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5908   }
5909 }
5910
5911   return vpc;
5912 #undef FLD
5913 }
5914
5915 /* stu: stu$pack $GRk,@($GRi,$GRj) */
5916
5917 static SEM_PC
5918 SEM_FN_NAME (frvbf,stu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5919 {
5920 #define FLD(f) abuf->fields.sfmt_cstbu.f
5921   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5922   int UNUSED written = 0;
5923   IADDR UNUSED pc = abuf->addr;
5924   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5925
5926 {
5927   USI tmp_address;
5928   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5929 frvbf_write_mem_WI (current_cpu, pc, tmp_address, GET_H_GR (FLD (f_GRk)));
5930   {
5931     SI opval = tmp_address;
5932     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
5933     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5934   }
5935 }
5936
5937   return vpc;
5938 #undef FLD
5939 }
5940
5941 /* stbfu: stbfu$pack $FRintk,@($GRi,$GRj) */
5942
5943 static SEM_PC
5944 SEM_FN_NAME (frvbf,stbfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5945 {
5946 #define FLD(f) abuf->fields.sfmt_cstbfu.f
5947   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5948   int UNUSED written = 0;
5949   IADDR UNUSED pc = abuf->addr;
5950   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5951
5952 {
5953   USI tmp_address;
5954   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5955 frvbf_write_mem_QI (current_cpu, pc, tmp_address, GET_H_FR_INT (FLD (f_FRk)));
5956   {
5957     SI opval = tmp_address;
5958     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
5959     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5960   }
5961 }
5962
5963   return vpc;
5964 #undef FLD
5965 }
5966
5967 /* sthfu: sthfu$pack $FRintk,@($GRi,$GRj) */
5968
5969 static SEM_PC
5970 SEM_FN_NAME (frvbf,sthfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5971 {
5972 #define FLD(f) abuf->fields.sfmt_cstbfu.f
5973   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5974   int UNUSED written = 0;
5975   IADDR UNUSED pc = abuf->addr;
5976   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5977
5978 {
5979   USI tmp_address;
5980   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5981 frvbf_write_mem_HI (current_cpu, pc, tmp_address, GET_H_FR_INT (FLD (f_FRk)));
5982   {
5983     SI opval = tmp_address;
5984     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
5985     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5986   }
5987 }
5988
5989   return vpc;
5990 #undef FLD
5991 }
5992
5993 /* stfu: stfu$pack $FRintk,@($GRi,$GRj) */
5994
5995 static SEM_PC
5996 SEM_FN_NAME (frvbf,stfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5997 {
5998 #define FLD(f) abuf->fields.sfmt_cstbfu.f
5999   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6000   int UNUSED written = 0;
6001   IADDR UNUSED pc = abuf->addr;
6002   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6003
6004 {
6005   USI tmp_address;
6006   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6007 frvbf_write_mem_SI (current_cpu, pc, tmp_address, GET_H_FR_INT (FLD (f_FRk)));
6008   {
6009     SI opval = tmp_address;
6010     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6011     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6012   }
6013 }
6014
6015   return vpc;
6016 #undef FLD
6017 }
6018
6019 /* stcu: stcu$pack $CPRk,@($GRi,$GRj) */
6020
6021 static SEM_PC
6022 SEM_FN_NAME (frvbf,stcu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6023 {
6024 #define FLD(f) abuf->fields.sfmt_stcu.f
6025   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6026   int UNUSED written = 0;
6027   IADDR UNUSED pc = abuf->addr;
6028   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6029
6030 {
6031   USI tmp_address;
6032   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6033 frvbf_write_mem_SI (current_cpu, pc, tmp_address, CPU (h_cpr[FLD (f_CPRk)]));
6034   {
6035     SI opval = tmp_address;
6036     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6037     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6038   }
6039 }
6040
6041   return vpc;
6042 #undef FLD
6043 }
6044
6045 /* stdu: stdu$pack $GRk,@($GRi,$GRj) */
6046
6047 static SEM_PC
6048 SEM_FN_NAME (frvbf,stdu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6049 {
6050 #define FLD(f) abuf->fields.sfmt_cstdu.f
6051   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6052   int UNUSED written = 0;
6053   IADDR UNUSED pc = abuf->addr;
6054   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6055
6056 {
6057   SI tmp_address;
6058 {
6059   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6060 frvbf_write_mem_DI (current_cpu, pc, tmp_address, GET_H_GR_DOUBLE (FLD (f_GRk)));
6061 }
6062   {
6063     SI opval = tmp_address;
6064     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6065     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6066   }
6067 }
6068
6069   return vpc;
6070 #undef FLD
6071 }
6072
6073 /* stdfu: stdfu$pack $FRk,@($GRi,$GRj) */
6074
6075 static SEM_PC
6076 SEM_FN_NAME (frvbf,stdfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6077 {
6078 #define FLD(f) abuf->fields.sfmt_cstdfu.f
6079   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6080   int UNUSED written = 0;
6081   IADDR UNUSED pc = abuf->addr;
6082   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6083
6084 {
6085   SI tmp_address;
6086 {
6087   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6088 frvbf_write_mem_DF (current_cpu, pc, tmp_address, GET_H_FR_DOUBLE (FLD (f_FRk)));
6089 }
6090   {
6091     SI opval = tmp_address;
6092     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6093     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6094   }
6095 }
6096
6097   return vpc;
6098 #undef FLD
6099 }
6100
6101 /* stdcu: stdcu$pack $CPRk,@($GRi,$GRj) */
6102
6103 static SEM_PC
6104 SEM_FN_NAME (frvbf,stdcu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6105 {
6106 #define FLD(f) abuf->fields.sfmt_stdcu.f
6107   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6108   int UNUSED written = 0;
6109   IADDR UNUSED pc = abuf->addr;
6110   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6111
6112 {
6113   SI tmp_address;
6114 {
6115   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6116 frvbf_write_mem_DI (current_cpu, pc, tmp_address, GET_H_CPR_DOUBLE (FLD (f_CPRk)));
6117 }
6118   {
6119     SI opval = tmp_address;
6120     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6121     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6122   }
6123 }
6124
6125   return vpc;
6126 #undef FLD
6127 }
6128
6129 /* stqu: stqu$pack $GRk,@($GRi,$GRj) */
6130
6131 static SEM_PC
6132 SEM_FN_NAME (frvbf,stqu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6133 {
6134 #define FLD(f) abuf->fields.sfmt_cstdu.f
6135   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6136   int UNUSED written = 0;
6137   IADDR UNUSED pc = abuf->addr;
6138   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6139
6140 {
6141   SI tmp_address;
6142 {
6143   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6144 frvbf_store_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
6145 }
6146   {
6147     SI opval = tmp_address;
6148     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6149     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6150   }
6151 }
6152
6153   return vpc;
6154 #undef FLD
6155 }
6156
6157 /* stqfu: stqfu$pack $FRintk,@($GRi,$GRj) */
6158
6159 static SEM_PC
6160 SEM_FN_NAME (frvbf,stqfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6161 {
6162 #define FLD(f) abuf->fields.sfmt_cstdfu.f
6163   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6164   int UNUSED written = 0;
6165   IADDR UNUSED pc = abuf->addr;
6166   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6167
6168 {
6169   SI tmp_address;
6170 {
6171   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6172 frvbf_store_quad_FRint (current_cpu, pc, tmp_address, FLD (f_FRk));
6173 }
6174   {
6175     SI opval = tmp_address;
6176     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6177     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6178   }
6179 }
6180
6181   return vpc;
6182 #undef FLD
6183 }
6184
6185 /* stqcu: stqcu$pack $CPRk,@($GRi,$GRj) */
6186
6187 static SEM_PC
6188 SEM_FN_NAME (frvbf,stqcu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6189 {
6190 #define FLD(f) abuf->fields.sfmt_stdcu.f
6191   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6192   int UNUSED written = 0;
6193   IADDR UNUSED pc = abuf->addr;
6194   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6195
6196 {
6197   SI tmp_address;
6198 {
6199   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6200 frvbf_store_quad_CPR (current_cpu, pc, tmp_address, FLD (f_CPRk));
6201 }
6202   {
6203     SI opval = tmp_address;
6204     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6205     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6206   }
6207 }
6208
6209   return vpc;
6210 #undef FLD
6211 }
6212
6213 /* cldsb: cldsb$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6214
6215 static SEM_PC
6216 SEM_FN_NAME (frvbf,cldsb) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6217 {
6218 #define FLD(f) abuf->fields.sfmt_cswap.f
6219   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6220   int UNUSED written = 0;
6221   IADDR UNUSED pc = abuf->addr;
6222   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6223
6224 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6225   {
6226     SI opval = frvbf_read_mem_QI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
6227     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
6228     written |= (1 << 5);
6229     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6230   }
6231 }
6232
6233   abuf->written = written;
6234   return vpc;
6235 #undef FLD
6236 }
6237
6238 /* cldub: cldub$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6239
6240 static SEM_PC
6241 SEM_FN_NAME (frvbf,cldub) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6242 {
6243 #define FLD(f) abuf->fields.sfmt_cswap.f
6244   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6245   int UNUSED written = 0;
6246   IADDR UNUSED pc = abuf->addr;
6247   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6248
6249 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6250   {
6251     SI opval = frvbf_read_mem_UQI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
6252     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
6253     written |= (1 << 5);
6254     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6255   }
6256 }
6257
6258   abuf->written = written;
6259   return vpc;
6260 #undef FLD
6261 }
6262
6263 /* cldsh: cldsh$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6264
6265 static SEM_PC
6266 SEM_FN_NAME (frvbf,cldsh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6267 {
6268 #define FLD(f) abuf->fields.sfmt_cswap.f
6269   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6270   int UNUSED written = 0;
6271   IADDR UNUSED pc = abuf->addr;
6272   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6273
6274 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6275   {
6276     SI opval = frvbf_read_mem_HI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
6277     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
6278     written |= (1 << 5);
6279     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6280   }
6281 }
6282
6283   abuf->written = written;
6284   return vpc;
6285 #undef FLD
6286 }
6287
6288 /* clduh: clduh$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6289
6290 static SEM_PC
6291 SEM_FN_NAME (frvbf,clduh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6292 {
6293 #define FLD(f) abuf->fields.sfmt_cswap.f
6294   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6295   int UNUSED written = 0;
6296   IADDR UNUSED pc = abuf->addr;
6297   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6298
6299 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6300   {
6301     SI opval = frvbf_read_mem_UHI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
6302     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
6303     written |= (1 << 5);
6304     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6305   }
6306 }
6307
6308   abuf->written = written;
6309   return vpc;
6310 #undef FLD
6311 }
6312
6313 /* cld: cld$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6314
6315 static SEM_PC
6316 SEM_FN_NAME (frvbf,cld) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6317 {
6318 #define FLD(f) abuf->fields.sfmt_cswap.f
6319   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6320   int UNUSED written = 0;
6321   IADDR UNUSED pc = abuf->addr;
6322   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6323
6324 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6325   {
6326     SI opval = frvbf_read_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
6327     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
6328     written |= (1 << 5);
6329     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6330   }
6331 }
6332
6333   abuf->written = written;
6334   return vpc;
6335 #undef FLD
6336 }
6337
6338 /* cldbf: cldbf$pack @($GRi,$GRj),$FRintk,$CCi,$cond */
6339
6340 static SEM_PC
6341 SEM_FN_NAME (frvbf,cldbf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6342 {
6343 #define FLD(f) abuf->fields.sfmt_cldbfu.f
6344   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6345   int UNUSED written = 0;
6346   IADDR UNUSED pc = abuf->addr;
6347   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6348
6349 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6350   {
6351     SI opval = frvbf_read_mem_UQI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
6352     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
6353     written |= (1 << 5);
6354     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
6355   }
6356 }
6357
6358   abuf->written = written;
6359   return vpc;
6360 #undef FLD
6361 }
6362
6363 /* cldhf: cldhf$pack @($GRi,$GRj),$FRintk,$CCi,$cond */
6364
6365 static SEM_PC
6366 SEM_FN_NAME (frvbf,cldhf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6367 {
6368 #define FLD(f) abuf->fields.sfmt_cldbfu.f
6369   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6370   int UNUSED written = 0;
6371   IADDR UNUSED pc = abuf->addr;
6372   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6373
6374 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6375   {
6376     SI opval = frvbf_read_mem_UHI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
6377     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
6378     written |= (1 << 5);
6379     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
6380   }
6381 }
6382
6383   abuf->written = written;
6384   return vpc;
6385 #undef FLD
6386 }
6387
6388 /* cldf: cldf$pack @($GRi,$GRj),$FRintk,$CCi,$cond */
6389
6390 static SEM_PC
6391 SEM_FN_NAME (frvbf,cldf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6392 {
6393 #define FLD(f) abuf->fields.sfmt_cldbfu.f
6394   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6395   int UNUSED written = 0;
6396   IADDR UNUSED pc = abuf->addr;
6397   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6398
6399 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6400   {
6401     SI opval = frvbf_read_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
6402     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
6403     written |= (1 << 5);
6404     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
6405   }
6406 }
6407
6408   abuf->written = written;
6409   return vpc;
6410 #undef FLD
6411 }
6412
6413 /* cldd: cldd$pack @($GRi,$GRj),$GRdoublek,$CCi,$cond */
6414
6415 static SEM_PC
6416 SEM_FN_NAME (frvbf,cldd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6417 {
6418 #define FLD(f) abuf->fields.sfmt_clddu.f
6419   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6420   int UNUSED written = 0;
6421   IADDR UNUSED pc = abuf->addr;
6422   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6423
6424 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6425 {
6426   SI tmp_address;
6427 if (NESI (FLD (f_GRk), 0)) {
6428 {
6429   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6430   {
6431     DI opval = frvbf_read_mem_DI (current_cpu, pc, tmp_address);
6432     sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
6433     written |= (1 << 6);
6434     TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
6435   }
6436 }
6437 }
6438 }
6439 }
6440
6441   abuf->written = written;
6442   return vpc;
6443 #undef FLD
6444 }
6445
6446 /* clddf: clddf$pack @($GRi,$GRj),$FRdoublek,$CCi,$cond */
6447
6448 static SEM_PC
6449 SEM_FN_NAME (frvbf,clddf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6450 {
6451 #define FLD(f) abuf->fields.sfmt_clddfu.f
6452   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6453   int UNUSED written = 0;
6454   IADDR UNUSED pc = abuf->addr;
6455   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6456
6457 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6458 {
6459   SI tmp_address;
6460 {
6461   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6462   {
6463     DF opval = frvbf_read_mem_DF (current_cpu, pc, tmp_address);
6464     sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
6465     written |= (1 << 5);
6466     TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
6467   }
6468 }
6469 }
6470 }
6471
6472   abuf->written = written;
6473   return vpc;
6474 #undef FLD
6475 }
6476
6477 /* cldq: cldq$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6478
6479 static SEM_PC
6480 SEM_FN_NAME (frvbf,cldq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6481 {
6482 #define FLD(f) abuf->fields.sfmt_cswap.f
6483   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6484   int UNUSED written = 0;
6485   IADDR UNUSED pc = abuf->addr;
6486   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6487
6488 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6489 {
6490   SI tmp_address;
6491 {
6492   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6493 frvbf_load_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
6494 }
6495 }
6496 }
6497
6498   return vpc;
6499 #undef FLD
6500 }
6501
6502 /* cldsbu: cldsbu$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6503
6504 static SEM_PC
6505 SEM_FN_NAME (frvbf,cldsbu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6506 {
6507 #define FLD(f) abuf->fields.sfmt_cldsbu.f
6508   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6509   int UNUSED written = 0;
6510   IADDR UNUSED pc = abuf->addr;
6511   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6512
6513 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6514 {
6515   SI tmp_address;
6516   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6517   {
6518     SI opval = frvbf_read_mem_QI (current_cpu, pc, tmp_address);
6519     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
6520     written |= (1 << 8);
6521     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6522   }
6523 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
6524   {
6525     SI opval = tmp_address;
6526     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6527     written |= (1 << 7);
6528     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6529   }
6530 }
6531 }
6532 }
6533
6534   abuf->written = written;
6535   return vpc;
6536 #undef FLD
6537 }
6538
6539 /* cldubu: cldubu$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6540
6541 static SEM_PC
6542 SEM_FN_NAME (frvbf,cldubu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6543 {
6544 #define FLD(f) abuf->fields.sfmt_cldsbu.f
6545   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6546   int UNUSED written = 0;
6547   IADDR UNUSED pc = abuf->addr;
6548   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6549
6550 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6551 {
6552   SI tmp_address;
6553   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6554   {
6555     SI opval = frvbf_read_mem_UQI (current_cpu, pc, tmp_address);
6556     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
6557     written |= (1 << 8);
6558     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6559   }
6560 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
6561   {
6562     SI opval = tmp_address;
6563     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6564     written |= (1 << 7);
6565     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6566   }
6567 }
6568 }
6569 }
6570
6571   abuf->written = written;
6572   return vpc;
6573 #undef FLD
6574 }
6575
6576 /* cldshu: cldshu$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6577
6578 static SEM_PC
6579 SEM_FN_NAME (frvbf,cldshu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6580 {
6581 #define FLD(f) abuf->fields.sfmt_cldsbu.f
6582   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6583   int UNUSED written = 0;
6584   IADDR UNUSED pc = abuf->addr;
6585   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6586
6587 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6588 {
6589   SI tmp_address;
6590   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6591   {
6592     SI opval = frvbf_read_mem_HI (current_cpu, pc, tmp_address);
6593     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
6594     written |= (1 << 8);
6595     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6596   }
6597 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
6598   {
6599     SI opval = tmp_address;
6600     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6601     written |= (1 << 7);
6602     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6603   }
6604 }
6605 }
6606 }
6607
6608   abuf->written = written;
6609   return vpc;
6610 #undef FLD
6611 }
6612
6613 /* clduhu: clduhu$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6614
6615 static SEM_PC
6616 SEM_FN_NAME (frvbf,clduhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6617 {
6618 #define FLD(f) abuf->fields.sfmt_cldsbu.f
6619   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6620   int UNUSED written = 0;
6621   IADDR UNUSED pc = abuf->addr;
6622   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6623
6624 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6625 {
6626   SI tmp_address;
6627   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6628   {
6629     SI opval = frvbf_read_mem_UHI (current_cpu, pc, tmp_address);
6630     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
6631     written |= (1 << 8);
6632     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6633   }
6634 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
6635   {
6636     SI opval = tmp_address;
6637     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6638     written |= (1 << 7);
6639     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6640   }
6641 }
6642 }
6643 }
6644
6645   abuf->written = written;
6646   return vpc;
6647 #undef FLD
6648 }
6649
6650 /* cldu: cldu$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6651
6652 static SEM_PC
6653 SEM_FN_NAME (frvbf,cldu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6654 {
6655 #define FLD(f) abuf->fields.sfmt_cldsbu.f
6656   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6657   int UNUSED written = 0;
6658   IADDR UNUSED pc = abuf->addr;
6659   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6660
6661 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6662 {
6663   SI tmp_address;
6664   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6665   {
6666     SI opval = frvbf_read_mem_SI (current_cpu, pc, tmp_address);
6667     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
6668     written |= (1 << 8);
6669     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6670   }
6671 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
6672   {
6673     SI opval = tmp_address;
6674     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6675     written |= (1 << 7);
6676     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6677   }
6678 }
6679 }
6680 }
6681
6682   abuf->written = written;
6683   return vpc;
6684 #undef FLD
6685 }
6686
6687 /* cldbfu: cldbfu$pack @($GRi,$GRj),$FRintk,$CCi,$cond */
6688
6689 static SEM_PC
6690 SEM_FN_NAME (frvbf,cldbfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6691 {
6692 #define FLD(f) abuf->fields.sfmt_cldbfu.f
6693   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6694   int UNUSED written = 0;
6695   IADDR UNUSED pc = abuf->addr;
6696   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6697
6698 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6699 {
6700   SI tmp_address;
6701   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6702   {
6703     SI opval = frvbf_read_mem_UQI (current_cpu, pc, tmp_address);
6704     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
6705     written |= (1 << 5);
6706     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
6707   }
6708   {
6709     SI opval = tmp_address;
6710     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6711     written |= (1 << 6);
6712     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6713   }
6714 }
6715 }
6716
6717   abuf->written = written;
6718   return vpc;
6719 #undef FLD
6720 }
6721
6722 /* cldhfu: cldhfu$pack @($GRi,$GRj),$FRintk,$CCi,$cond */
6723
6724 static SEM_PC
6725 SEM_FN_NAME (frvbf,cldhfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6726 {
6727 #define FLD(f) abuf->fields.sfmt_cldbfu.f
6728   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6729   int UNUSED written = 0;
6730   IADDR UNUSED pc = abuf->addr;
6731   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6732
6733 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6734 {
6735   SI tmp_address;
6736   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6737   {
6738     SI opval = frvbf_read_mem_UHI (current_cpu, pc, tmp_address);
6739     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
6740     written |= (1 << 5);
6741     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
6742   }
6743   {
6744     SI opval = tmp_address;
6745     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6746     written |= (1 << 6);
6747     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6748   }
6749 }
6750 }
6751
6752   abuf->written = written;
6753   return vpc;
6754 #undef FLD
6755 }
6756
6757 /* cldfu: cldfu$pack @($GRi,$GRj),$FRintk,$CCi,$cond */
6758
6759 static SEM_PC
6760 SEM_FN_NAME (frvbf,cldfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6761 {
6762 #define FLD(f) abuf->fields.sfmt_cldbfu.f
6763   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6764   int UNUSED written = 0;
6765   IADDR UNUSED pc = abuf->addr;
6766   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6767
6768 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6769 {
6770   SI tmp_address;
6771   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6772   {
6773     SI opval = frvbf_read_mem_SI (current_cpu, pc, tmp_address);
6774     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
6775     written |= (1 << 5);
6776     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
6777   }
6778   {
6779     SI opval = tmp_address;
6780     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6781     written |= (1 << 6);
6782     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6783   }
6784 }
6785 }
6786
6787   abuf->written = written;
6788   return vpc;
6789 #undef FLD
6790 }
6791
6792 /* clddu: clddu$pack @($GRi,$GRj),$GRdoublek,$CCi,$cond */
6793
6794 static SEM_PC
6795 SEM_FN_NAME (frvbf,clddu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6796 {
6797 #define FLD(f) abuf->fields.sfmt_clddu.f
6798   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6799   int UNUSED written = 0;
6800   IADDR UNUSED pc = abuf->addr;
6801   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6802
6803 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6804 {
6805   SI tmp_address;
6806 if (NESI (FLD (f_GRk), 0)) {
6807 {
6808   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6809   {
6810     DI opval = frvbf_read_mem_DI (current_cpu, pc, tmp_address);
6811     sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
6812     written |= (1 << 7);
6813     TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
6814   }
6815 }
6816 }
6817 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
6818   {
6819     SI opval = tmp_address;
6820     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6821     written |= (1 << 8);
6822     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6823   }
6824 }
6825 }
6826 }
6827
6828   abuf->written = written;
6829   return vpc;
6830 #undef FLD
6831 }
6832
6833 /* clddfu: clddfu$pack @($GRi,$GRj),$FRdoublek,$CCi,$cond */
6834
6835 static SEM_PC
6836 SEM_FN_NAME (frvbf,clddfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6837 {
6838 #define FLD(f) abuf->fields.sfmt_clddfu.f
6839   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6840   int UNUSED written = 0;
6841   IADDR UNUSED pc = abuf->addr;
6842   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6843
6844 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6845 {
6846   SI tmp_address;
6847 {
6848   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6849   {
6850     DF opval = frvbf_read_mem_DF (current_cpu, pc, tmp_address);
6851     sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
6852     written |= (1 << 5);
6853     TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
6854   }
6855 }
6856   {
6857     SI opval = tmp_address;
6858     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6859     written |= (1 << 6);
6860     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6861   }
6862 }
6863 }
6864
6865   abuf->written = written;
6866   return vpc;
6867 #undef FLD
6868 }
6869
6870 /* cldqu: cldqu$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6871
6872 static SEM_PC
6873 SEM_FN_NAME (frvbf,cldqu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6874 {
6875 #define FLD(f) abuf->fields.sfmt_cstdu.f
6876   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6877   int UNUSED written = 0;
6878   IADDR UNUSED pc = abuf->addr;
6879   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6880
6881 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6882 {
6883   SI tmp_address;
6884 {
6885   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6886 frvbf_load_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
6887 }
6888 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
6889   {
6890     SI opval = tmp_address;
6891     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6892     written |= (1 << 7);
6893     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6894   }
6895 }
6896 }
6897 }
6898
6899   abuf->written = written;
6900   return vpc;
6901 #undef FLD
6902 }
6903
6904 /* cstb: cstb$pack $GRk,@($GRi,$GRj),$CCi,$cond */
6905
6906 static SEM_PC
6907 SEM_FN_NAME (frvbf,cstb) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6908 {
6909 #define FLD(f) abuf->fields.sfmt_cswap.f
6910   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6911   int UNUSED written = 0;
6912   IADDR UNUSED pc = abuf->addr;
6913   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6914
6915 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6916 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)));
6917 }
6918
6919   return vpc;
6920 #undef FLD
6921 }
6922
6923 /* csth: csth$pack $GRk,@($GRi,$GRj),$CCi,$cond */
6924
6925 static SEM_PC
6926 SEM_FN_NAME (frvbf,csth) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6927 {
6928 #define FLD(f) abuf->fields.sfmt_cswap.f
6929   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6930   int UNUSED written = 0;
6931   IADDR UNUSED pc = abuf->addr;
6932   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6933
6934 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6935 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)));
6936 }
6937
6938   return vpc;
6939 #undef FLD
6940 }
6941
6942 /* cst: cst$pack $GRk,@($GRi,$GRj),$CCi,$cond */
6943
6944 static SEM_PC
6945 SEM_FN_NAME (frvbf,cst) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6946 {
6947 #define FLD(f) abuf->fields.sfmt_cswap.f
6948   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6949   int UNUSED written = 0;
6950   IADDR UNUSED pc = abuf->addr;
6951   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6952
6953 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6954 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)));
6955 }
6956
6957   return vpc;
6958 #undef FLD
6959 }
6960
6961 /* cstbf: cstbf$pack $FRintk,@($GRi,$GRj),$CCi,$cond */
6962
6963 static SEM_PC
6964 SEM_FN_NAME (frvbf,cstbf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6965 {
6966 #define FLD(f) abuf->fields.sfmt_cstbfu.f
6967   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6968   int UNUSED written = 0;
6969   IADDR UNUSED pc = abuf->addr;
6970   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6971
6972 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6973 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)));
6974 }
6975
6976   return vpc;
6977 #undef FLD
6978 }
6979
6980 /* csthf: csthf$pack $FRintk,@($GRi,$GRj),$CCi,$cond */
6981
6982 static SEM_PC
6983 SEM_FN_NAME (frvbf,csthf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6984 {
6985 #define FLD(f) abuf->fields.sfmt_cstbfu.f
6986   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6987   int UNUSED written = 0;
6988   IADDR UNUSED pc = abuf->addr;
6989   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6990
6991 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6992 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)));
6993 }
6994
6995   return vpc;
6996 #undef FLD
6997 }
6998
6999 /* cstf: cstf$pack $FRintk,@($GRi,$GRj),$CCi,$cond */
7000
7001 static SEM_PC
7002 SEM_FN_NAME (frvbf,cstf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7003 {
7004 #define FLD(f) abuf->fields.sfmt_cstbfu.f
7005   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7006   int UNUSED written = 0;
7007   IADDR UNUSED pc = abuf->addr;
7008   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7009
7010 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7011 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)));
7012 }
7013
7014   return vpc;
7015 #undef FLD
7016 }
7017
7018 /* cstd: cstd$pack $GRk,@($GRi,$GRj),$CCi,$cond */
7019
7020 static SEM_PC
7021 SEM_FN_NAME (frvbf,cstd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7022 {
7023 #define FLD(f) abuf->fields.sfmt_cstdu.f
7024   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7025   int UNUSED written = 0;
7026   IADDR UNUSED pc = abuf->addr;
7027   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7028
7029 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7030 {
7031   SI tmp_address;
7032 {
7033   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7034 frvbf_write_mem_DI (current_cpu, pc, tmp_address, GET_H_GR_DOUBLE (FLD (f_GRk)));
7035 }
7036 }
7037 }
7038
7039   return vpc;
7040 #undef FLD
7041 }
7042
7043 /* cstdf: cstdf$pack $FRk,@($GRi,$GRj),$CCi,$cond */
7044
7045 static SEM_PC
7046 SEM_FN_NAME (frvbf,cstdf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7047 {
7048 #define FLD(f) abuf->fields.sfmt_cstdfu.f
7049   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7050   int UNUSED written = 0;
7051   IADDR UNUSED pc = abuf->addr;
7052   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7053
7054 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7055 {
7056   SI tmp_address;
7057 {
7058   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7059 frvbf_write_mem_DF (current_cpu, pc, tmp_address, GET_H_FR_DOUBLE (FLD (f_FRk)));
7060 }
7061 }
7062 }
7063
7064   return vpc;
7065 #undef FLD
7066 }
7067
7068 /* cstq: cstq$pack $GRk,@($GRi,$GRj),$CCi,$cond */
7069
7070 static SEM_PC
7071 SEM_FN_NAME (frvbf,cstq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7072 {
7073 #define FLD(f) abuf->fields.sfmt_cswap.f
7074   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7075   int UNUSED written = 0;
7076   IADDR UNUSED pc = abuf->addr;
7077   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7078
7079 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7080 {
7081   SI tmp_address;
7082 {
7083   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7084 frvbf_store_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
7085 }
7086 }
7087 }
7088
7089   return vpc;
7090 #undef FLD
7091 }
7092
7093 /* cstbu: cstbu$pack $GRk,@($GRi,$GRj),$CCi,$cond */
7094
7095 static SEM_PC
7096 SEM_FN_NAME (frvbf,cstbu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7097 {
7098 #define FLD(f) abuf->fields.sfmt_cstbu.f
7099   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7100   int UNUSED written = 0;
7101   IADDR UNUSED pc = abuf->addr;
7102   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7103
7104 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7105 {
7106   SI tmp_address;
7107   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7108 frvbf_write_mem_QI (current_cpu, pc, tmp_address, GET_H_GR (FLD (f_GRk)));
7109   {
7110     SI opval = tmp_address;
7111     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
7112     written |= (1 << 6);
7113     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7114   }
7115 }
7116 }
7117
7118   abuf->written = written;
7119   return vpc;
7120 #undef FLD
7121 }
7122
7123 /* csthu: csthu$pack $GRk,@($GRi,$GRj),$CCi,$cond */
7124
7125 static SEM_PC
7126 SEM_FN_NAME (frvbf,csthu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7127 {
7128 #define FLD(f) abuf->fields.sfmt_cstbu.f
7129   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7130   int UNUSED written = 0;
7131   IADDR UNUSED pc = abuf->addr;
7132   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7133
7134 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7135 {
7136   SI tmp_address;
7137   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7138 frvbf_write_mem_HI (current_cpu, pc, tmp_address, GET_H_GR (FLD (f_GRk)));
7139   {
7140     SI opval = tmp_address;
7141     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
7142     written |= (1 << 6);
7143     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7144   }
7145 }
7146 }
7147
7148   abuf->written = written;
7149   return vpc;
7150 #undef FLD
7151 }
7152
7153 /* cstu: cstu$pack $GRk,@($GRi,$GRj),$CCi,$cond */
7154
7155 static SEM_PC
7156 SEM_FN_NAME (frvbf,cstu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7157 {
7158 #define FLD(f) abuf->fields.sfmt_cstbu.f
7159   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7160   int UNUSED written = 0;
7161   IADDR UNUSED pc = abuf->addr;
7162   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7163
7164 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7165 {
7166   SI tmp_address;
7167   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7168 frvbf_write_mem_SI (current_cpu, pc, tmp_address, GET_H_GR (FLD (f_GRk)));
7169   {
7170     SI opval = tmp_address;
7171     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
7172     written |= (1 << 6);
7173     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7174   }
7175 }
7176 }
7177
7178   abuf->written = written;
7179   return vpc;
7180 #undef FLD
7181 }
7182
7183 /* cstbfu: cstbfu$pack $FRintk,@($GRi,$GRj),$CCi,$cond */
7184
7185 static SEM_PC
7186 SEM_FN_NAME (frvbf,cstbfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7187 {
7188 #define FLD(f) abuf->fields.sfmt_cstbfu.f
7189   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7190   int UNUSED written = 0;
7191   IADDR UNUSED pc = abuf->addr;
7192   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7193
7194 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7195 {
7196   SI tmp_address;
7197   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7198 frvbf_write_mem_QI (current_cpu, pc, tmp_address, GET_H_FR_INT (FLD (f_FRk)));
7199   {
7200     SI opval = tmp_address;
7201     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
7202     written |= (1 << 6);
7203     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7204   }
7205 }
7206 }
7207
7208   abuf->written = written;
7209   return vpc;
7210 #undef FLD
7211 }
7212
7213 /* csthfu: csthfu$pack $FRintk,@($GRi,$GRj),$CCi,$cond */
7214
7215 static SEM_PC
7216 SEM_FN_NAME (frvbf,csthfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7217 {
7218 #define FLD(f) abuf->fields.sfmt_cstbfu.f
7219   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7220   int UNUSED written = 0;
7221   IADDR UNUSED pc = abuf->addr;
7222   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7223
7224 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7225 {
7226   SI tmp_address;
7227   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7228 frvbf_write_mem_HI (current_cpu, pc, tmp_address, GET_H_FR_INT (FLD (f_FRk)));
7229   {
7230     SI opval = tmp_address;
7231     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
7232     written |= (1 << 6);
7233     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7234   }
7235 }
7236 }
7237
7238   abuf->written = written;
7239   return vpc;
7240 #undef FLD
7241 }
7242
7243 /* cstfu: cstfu$pack $FRintk,@($GRi,$GRj),$CCi,$cond */
7244
7245 static SEM_PC
7246 SEM_FN_NAME (frvbf,cstfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7247 {
7248 #define FLD(f) abuf->fields.sfmt_cstbfu.f
7249   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7250   int UNUSED written = 0;
7251   IADDR UNUSED pc = abuf->addr;
7252   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7253
7254 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7255 {
7256   SI tmp_address;
7257   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7258 frvbf_write_mem_SI (current_cpu, pc, tmp_address, GET_H_FR_INT (FLD (f_FRk)));
7259   {
7260     SI opval = tmp_address;
7261     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
7262     written |= (1 << 6);
7263     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7264   }
7265 }
7266 }
7267
7268   abuf->written = written;
7269   return vpc;
7270 #undef FLD
7271 }
7272
7273 /* cstdu: cstdu$pack $GRk,@($GRi,$GRj),$CCi,$cond */
7274
7275 static SEM_PC
7276 SEM_FN_NAME (frvbf,cstdu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7277 {
7278 #define FLD(f) abuf->fields.sfmt_cstdu.f
7279   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7280   int UNUSED written = 0;
7281   IADDR UNUSED pc = abuf->addr;
7282   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7283
7284 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7285 {
7286   SI tmp_address;
7287 {
7288   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7289 frvbf_write_mem_DI (current_cpu, pc, tmp_address, GET_H_GR_DOUBLE (FLD (f_GRk)));
7290 }
7291   {
7292     SI opval = tmp_address;
7293     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
7294     written |= (1 << 6);
7295     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7296   }
7297 }
7298 }
7299
7300   abuf->written = written;
7301   return vpc;
7302 #undef FLD
7303 }
7304
7305 /* cstdfu: cstdfu$pack $FRk,@($GRi,$GRj),$CCi,$cond */
7306
7307 static SEM_PC
7308 SEM_FN_NAME (frvbf,cstdfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7309 {
7310 #define FLD(f) abuf->fields.sfmt_cstdfu.f
7311   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7312   int UNUSED written = 0;
7313   IADDR UNUSED pc = abuf->addr;
7314   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7315
7316 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7317 {
7318   SI tmp_address;
7319 {
7320   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7321 frvbf_write_mem_DF (current_cpu, pc, tmp_address, GET_H_FR_DOUBLE (FLD (f_FRk)));
7322 }
7323   {
7324     SI opval = tmp_address;
7325     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
7326     written |= (1 << 6);
7327     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7328   }
7329 }
7330 }
7331
7332   abuf->written = written;
7333   return vpc;
7334 #undef FLD
7335 }
7336
7337 /* stbi: stbi$pack $GRk,@($GRi,$d12) */
7338
7339 static SEM_PC
7340 SEM_FN_NAME (frvbf,stbi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7341 {
7342 #define FLD(f) abuf->fields.sfmt_swapi.f
7343   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7344   int UNUSED written = 0;
7345   IADDR UNUSED pc = abuf->addr;
7346   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7347
7348 frvbf_write_mem_QI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)), GET_H_GR (FLD (f_GRk)));
7349
7350   return vpc;
7351 #undef FLD
7352 }
7353
7354 /* sthi: sthi$pack $GRk,@($GRi,$d12) */
7355
7356 static SEM_PC
7357 SEM_FN_NAME (frvbf,sthi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7358 {
7359 #define FLD(f) abuf->fields.sfmt_swapi.f
7360   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7361   int UNUSED written = 0;
7362   IADDR UNUSED pc = abuf->addr;
7363   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7364
7365 frvbf_write_mem_HI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)), GET_H_GR (FLD (f_GRk)));
7366
7367   return vpc;
7368 #undef FLD
7369 }
7370
7371 /* sti: sti$pack $GRk,@($GRi,$d12) */
7372
7373 static SEM_PC
7374 SEM_FN_NAME (frvbf,sti) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7375 {
7376 #define FLD(f) abuf->fields.sfmt_swapi.f
7377   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7378   int UNUSED written = 0;
7379   IADDR UNUSED pc = abuf->addr;
7380   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7381
7382 frvbf_write_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)), GET_H_GR (FLD (f_GRk)));
7383
7384   return vpc;
7385 #undef FLD
7386 }
7387
7388 /* stbfi: stbfi$pack $FRintk,@($GRi,$d12) */
7389
7390 static SEM_PC
7391 SEM_FN_NAME (frvbf,stbfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7392 {
7393 #define FLD(f) abuf->fields.sfmt_stbfi.f
7394   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7395   int UNUSED written = 0;
7396   IADDR UNUSED pc = abuf->addr;
7397   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7398
7399 frvbf_write_mem_QI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)), GET_H_FR_INT (FLD (f_FRk)));
7400
7401   return vpc;
7402 #undef FLD
7403 }
7404
7405 /* sthfi: sthfi$pack $FRintk,@($GRi,$d12) */
7406
7407 static SEM_PC
7408 SEM_FN_NAME (frvbf,sthfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7409 {
7410 #define FLD(f) abuf->fields.sfmt_stbfi.f
7411   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7412   int UNUSED written = 0;
7413   IADDR UNUSED pc = abuf->addr;
7414   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7415
7416 frvbf_write_mem_HI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)), GET_H_FR_INT (FLD (f_FRk)));
7417
7418   return vpc;
7419 #undef FLD
7420 }
7421
7422 /* stfi: stfi$pack $FRintk,@($GRi,$d12) */
7423
7424 static SEM_PC
7425 SEM_FN_NAME (frvbf,stfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7426 {
7427 #define FLD(f) abuf->fields.sfmt_stbfi.f
7428   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7429   int UNUSED written = 0;
7430   IADDR UNUSED pc = abuf->addr;
7431   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7432
7433 frvbf_write_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)), GET_H_FR_INT (FLD (f_FRk)));
7434
7435   return vpc;
7436 #undef FLD
7437 }
7438
7439 /* stdi: stdi$pack $GRk,@($GRi,$d12) */
7440
7441 static SEM_PC
7442 SEM_FN_NAME (frvbf,stdi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7443 {
7444 #define FLD(f) abuf->fields.sfmt_stdi.f
7445   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7446   int UNUSED written = 0;
7447   IADDR UNUSED pc = abuf->addr;
7448   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7449
7450 {
7451   SI tmp_address;
7452 {
7453   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
7454 frvbf_write_mem_DI (current_cpu, pc, tmp_address, GET_H_GR_DOUBLE (FLD (f_GRk)));
7455 }
7456 }
7457
7458   return vpc;
7459 #undef FLD
7460 }
7461
7462 /* stdfi: stdfi$pack $FRk,@($GRi,$d12) */
7463
7464 static SEM_PC
7465 SEM_FN_NAME (frvbf,stdfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7466 {
7467 #define FLD(f) abuf->fields.sfmt_stdfi.f
7468   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7469   int UNUSED written = 0;
7470   IADDR UNUSED pc = abuf->addr;
7471   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7472
7473 {
7474   SI tmp_address;
7475 {
7476   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
7477 frvbf_write_mem_DF (current_cpu, pc, tmp_address, GET_H_FR_DOUBLE (FLD (f_FRk)));
7478 }
7479 }
7480
7481   return vpc;
7482 #undef FLD
7483 }
7484
7485 /* stqi: stqi$pack $GRk,@($GRi,$d12) */
7486
7487 static SEM_PC
7488 SEM_FN_NAME (frvbf,stqi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7489 {
7490 #define FLD(f) abuf->fields.sfmt_stdi.f
7491   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7492   int UNUSED written = 0;
7493   IADDR UNUSED pc = abuf->addr;
7494   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7495
7496 {
7497   SI tmp_address;
7498 {
7499   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
7500 frvbf_store_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
7501 }
7502 }
7503
7504   return vpc;
7505 #undef FLD
7506 }
7507
7508 /* stqfi: stqfi$pack $FRintk,@($GRi,$d12) */
7509
7510 static SEM_PC
7511 SEM_FN_NAME (frvbf,stqfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7512 {
7513 #define FLD(f) abuf->fields.sfmt_stdfi.f
7514   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7515   int UNUSED written = 0;
7516   IADDR UNUSED pc = abuf->addr;
7517   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7518
7519 {
7520   SI tmp_address;
7521 {
7522   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
7523 frvbf_store_quad_FRint (current_cpu, pc, tmp_address, FLD (f_FRk));
7524 }
7525 }
7526
7527   return vpc;
7528 #undef FLD
7529 }
7530
7531 /* swap: swap$pack @($GRi,$GRj),$GRk */
7532
7533 static SEM_PC
7534 SEM_FN_NAME (frvbf,swap) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7535 {
7536 #define FLD(f) abuf->fields.sfmt_cswap.f
7537   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7538   int UNUSED written = 0;
7539   IADDR UNUSED pc = abuf->addr;
7540   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7541
7542 {
7543   SI tmp_tmp;
7544   SI tmp_address;
7545   tmp_tmp = GET_H_GR (FLD (f_GRk));
7546   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7547   {
7548     SI opval = frvbf_read_mem_WI (current_cpu, pc, tmp_address);
7549     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
7550     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7551   }
7552 frvbf_write_mem_WI (current_cpu, pc, tmp_address, tmp_tmp);
7553 }
7554
7555   return vpc;
7556 #undef FLD
7557 }
7558
7559 /* swapi: swapi$pack @($GRi,$d12),$GRk */
7560
7561 static SEM_PC
7562 SEM_FN_NAME (frvbf,swapi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7563 {
7564 #define FLD(f) abuf->fields.sfmt_swapi.f
7565   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7566   int UNUSED written = 0;
7567   IADDR UNUSED pc = abuf->addr;
7568   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7569
7570 {
7571   SI tmp_tmp;
7572   SI tmp_address;
7573   tmp_tmp = GET_H_GR (FLD (f_GRk));
7574   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
7575   {
7576     SI opval = frvbf_read_mem_WI (current_cpu, pc, tmp_address);
7577     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
7578     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7579   }
7580 frvbf_write_mem_WI (current_cpu, pc, tmp_address, tmp_tmp);
7581 }
7582
7583   return vpc;
7584 #undef FLD
7585 }
7586
7587 /* cswap: cswap$pack @($GRi,$GRj),$GRk,$CCi,$cond */
7588
7589 static SEM_PC
7590 SEM_FN_NAME (frvbf,cswap) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7591 {
7592 #define FLD(f) abuf->fields.sfmt_cswap.f
7593   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7594   int UNUSED written = 0;
7595   IADDR UNUSED pc = abuf->addr;
7596   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7597
7598 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7599 {
7600   SI tmp_tmp;
7601   SI tmp_address;
7602   tmp_tmp = GET_H_GR (FLD (f_GRk));
7603   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7604   {
7605     SI opval = frvbf_read_mem_WI (current_cpu, pc, tmp_address);
7606     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
7607     written |= (1 << 6);
7608     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7609   }
7610 frvbf_write_mem_WI (current_cpu, pc, tmp_address, tmp_tmp);
7611 }
7612 }
7613
7614   abuf->written = written;
7615   return vpc;
7616 #undef FLD
7617 }
7618
7619 /* movgf: movgf$pack $GRj,$FRintk */
7620
7621 static SEM_PC
7622 SEM_FN_NAME (frvbf,movgf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7623 {
7624 #define FLD(f) abuf->fields.sfmt_cmovgfd.f
7625   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7626   int UNUSED written = 0;
7627   IADDR UNUSED pc = abuf->addr;
7628   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7629
7630   {
7631     SI opval = GET_H_GR (FLD (f_GRj));
7632     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
7633     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7634   }
7635
7636   return vpc;
7637 #undef FLD
7638 }
7639
7640 /* movfg: movfg$pack $FRintk,$GRj */
7641
7642 static SEM_PC
7643 SEM_FN_NAME (frvbf,movfg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7644 {
7645 #define FLD(f) abuf->fields.sfmt_cmovfgd.f
7646   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7647   int UNUSED written = 0;
7648   IADDR UNUSED pc = abuf->addr;
7649   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7650
7651   {
7652     SI opval = GET_H_FR_INT (FLD (f_FRk));
7653     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRj), opval);
7654     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7655   }
7656
7657   return vpc;
7658 #undef FLD
7659 }
7660
7661 /* movgfd: movgfd$pack $GRj,$FRintk */
7662
7663 static SEM_PC
7664 SEM_FN_NAME (frvbf,movgfd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7665 {
7666 #define FLD(f) abuf->fields.sfmt_cmovgfd.f
7667   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7668   int UNUSED written = 0;
7669   IADDR UNUSED pc = abuf->addr;
7670   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7671
7672 if (EQSI (FLD (f_GRj), 0)) {
7673 {
7674   {
7675     SI opval = 0;
7676     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
7677     written |= (1 << 4);
7678     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7679   }
7680   {
7681     USI opval = 0;
7682     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (1)), opval);
7683     written |= (1 << 5);
7684     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7685   }
7686 }
7687 } else {
7688 {
7689   {
7690     SI opval = GET_H_GR (FLD (f_GRj));
7691     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
7692     written |= (1 << 4);
7693     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7694   }
7695   {
7696     USI opval = GET_H_GR (((FLD (f_GRj)) + (1)));
7697     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (1)), opval);
7698     written |= (1 << 5);
7699     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7700   }
7701 }
7702 }
7703
7704   abuf->written = written;
7705   return vpc;
7706 #undef FLD
7707 }
7708
7709 /* movfgd: movfgd$pack $FRintk,$GRj */
7710
7711 static SEM_PC
7712 SEM_FN_NAME (frvbf,movfgd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7713 {
7714 #define FLD(f) abuf->fields.sfmt_cmovfgd.f
7715   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7716   int UNUSED written = 0;
7717   IADDR UNUSED pc = abuf->addr;
7718   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7719
7720 if (NESI (FLD (f_GRj), 0)) {
7721 {
7722   {
7723     SI opval = GET_H_FR_INT (FLD (f_FRk));
7724     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRj), opval);
7725     written |= (1 << 4);
7726     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7727   }
7728   {
7729     USI opval = GET_H_FR_INT (((FLD (f_FRk)) + (1)));
7730     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, ((FLD (f_GRj)) + (1)), opval);
7731     written |= (1 << 5);
7732     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7733   }
7734 }
7735 }
7736
7737   abuf->written = written;
7738   return vpc;
7739 #undef FLD
7740 }
7741
7742 /* movgfq: movgfq$pack $GRj,$FRintk */
7743
7744 static SEM_PC
7745 SEM_FN_NAME (frvbf,movgfq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7746 {
7747 #define FLD(f) abuf->fields.sfmt_movgfq.f
7748   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7749   int UNUSED written = 0;
7750   IADDR UNUSED pc = abuf->addr;
7751   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7752
7753 if (EQSI (FLD (f_GRj), 0)) {
7754 {
7755   {
7756     SI opval = 0;
7757     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
7758     written |= (1 << 6);
7759     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7760   }
7761   {
7762     USI opval = 0;
7763     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (1)), opval);
7764     written |= (1 << 7);
7765     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7766   }
7767   {
7768     USI opval = 0;
7769     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (2)), opval);
7770     written |= (1 << 8);
7771     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7772   }
7773   {
7774     USI opval = 0;
7775     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (3)), opval);
7776     written |= (1 << 9);
7777     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7778   }
7779 }
7780 } else {
7781 {
7782   {
7783     SI opval = GET_H_GR (FLD (f_GRj));
7784     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
7785     written |= (1 << 6);
7786     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7787   }
7788   {
7789     USI opval = GET_H_GR (((FLD (f_GRj)) + (1)));
7790     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (1)), opval);
7791     written |= (1 << 7);
7792     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7793   }
7794   {
7795     USI opval = GET_H_GR (((FLD (f_GRj)) + (2)));
7796     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (2)), opval);
7797     written |= (1 << 8);
7798     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7799   }
7800   {
7801     USI opval = GET_H_GR (((FLD (f_GRj)) + (3)));
7802     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (3)), opval);
7803     written |= (1 << 9);
7804     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7805   }
7806 }
7807 }
7808
7809   abuf->written = written;
7810   return vpc;
7811 #undef FLD
7812 }
7813
7814 /* movfgq: movfgq$pack $FRintk,$GRj */
7815
7816 static SEM_PC
7817 SEM_FN_NAME (frvbf,movfgq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7818 {
7819 #define FLD(f) abuf->fields.sfmt_movfgq.f
7820   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7821   int UNUSED written = 0;
7822   IADDR UNUSED pc = abuf->addr;
7823   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7824
7825 if (NESI (FLD (f_GRj), 0)) {
7826 {
7827   {
7828     SI opval = GET_H_FR_INT (FLD (f_FRk));
7829     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRj), opval);
7830     written |= (1 << 6);
7831     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7832   }
7833   {
7834     USI opval = GET_H_FR_INT (((FLD (f_FRk)) + (1)));
7835     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, ((FLD (f_GRj)) + (1)), opval);
7836     written |= (1 << 7);
7837     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7838   }
7839   {
7840     USI opval = GET_H_FR_INT (((FLD (f_FRk)) + (2)));
7841     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, ((FLD (f_GRj)) + (2)), opval);
7842     written |= (1 << 8);
7843     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7844   }
7845   {
7846     USI opval = GET_H_FR_INT (((FLD (f_FRk)) + (3)));
7847     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, ((FLD (f_GRj)) + (3)), opval);
7848     written |= (1 << 9);
7849     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7850   }
7851 }
7852 }
7853
7854   abuf->written = written;
7855   return vpc;
7856 #undef FLD
7857 }
7858
7859 /* cmovgf: cmovgf$pack $GRj,$FRintk,$CCi,$cond */
7860
7861 static SEM_PC
7862 SEM_FN_NAME (frvbf,cmovgf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7863 {
7864 #define FLD(f) abuf->fields.sfmt_cmovgfd.f
7865   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7866   int UNUSED written = 0;
7867   IADDR UNUSED pc = abuf->addr;
7868   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7869
7870 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7871   {
7872     SI opval = GET_H_GR (FLD (f_GRj));
7873     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
7874     written |= (1 << 3);
7875     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7876   }
7877 }
7878
7879   abuf->written = written;
7880   return vpc;
7881 #undef FLD
7882 }
7883
7884 /* cmovfg: cmovfg$pack $FRintk,$GRj,$CCi,$cond */
7885
7886 static SEM_PC
7887 SEM_FN_NAME (frvbf,cmovfg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7888 {
7889 #define FLD(f) abuf->fields.sfmt_cmovfgd.f
7890   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7891   int UNUSED written = 0;
7892   IADDR UNUSED pc = abuf->addr;
7893   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7894
7895 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7896   {
7897     SI opval = GET_H_FR_INT (FLD (f_FRk));
7898     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRj), opval);
7899     written |= (1 << 3);
7900     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7901   }
7902 }
7903
7904   abuf->written = written;
7905   return vpc;
7906 #undef FLD
7907 }
7908
7909 /* cmovgfd: cmovgfd$pack $GRj,$FRintk,$CCi,$cond */
7910
7911 static SEM_PC
7912 SEM_FN_NAME (frvbf,cmovgfd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7913 {
7914 #define FLD(f) abuf->fields.sfmt_cmovgfd.f
7915   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7916   int UNUSED written = 0;
7917   IADDR UNUSED pc = abuf->addr;
7918   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7919
7920 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7921 if (EQSI (FLD (f_GRj), 0)) {
7922 {
7923   {
7924     SI opval = 0;
7925     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
7926     written |= (1 << 6);
7927     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7928   }
7929   {
7930     USI opval = 0;
7931     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (1)), opval);
7932     written |= (1 << 7);
7933     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7934   }
7935 }
7936 } else {
7937 {
7938   {
7939     SI opval = GET_H_GR (FLD (f_GRj));
7940     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
7941     written |= (1 << 6);
7942     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7943   }
7944   {
7945     USI opval = GET_H_GR (((FLD (f_GRj)) + (1)));
7946     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (1)), opval);
7947     written |= (1 << 7);
7948     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7949   }
7950 }
7951 }
7952 }
7953
7954   abuf->written = written;
7955   return vpc;
7956 #undef FLD
7957 }
7958
7959 /* cmovfgd: cmovfgd$pack $FRintk,$GRj,$CCi,$cond */
7960
7961 static SEM_PC
7962 SEM_FN_NAME (frvbf,cmovfgd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7963 {
7964 #define FLD(f) abuf->fields.sfmt_cmovfgd.f
7965   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7966   int UNUSED written = 0;
7967   IADDR UNUSED pc = abuf->addr;
7968   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7969
7970 if (ANDIF (NESI (FLD (f_GRj), 0), EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2)))) {
7971 {
7972   {
7973     SI opval = GET_H_FR_INT (FLD (f_FRk));
7974     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRj), opval);
7975     written |= (1 << 6);
7976     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7977   }
7978   {
7979     USI opval = GET_H_FR_INT (((FLD (f_FRk)) + (1)));
7980     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, ((FLD (f_GRj)) + (1)), opval);
7981     written |= (1 << 7);
7982     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7983   }
7984 }
7985 }
7986
7987   abuf->written = written;
7988   return vpc;
7989 #undef FLD
7990 }
7991
7992 /* movgs: movgs$pack $GRj,$spr */
7993
7994 static SEM_PC
7995 SEM_FN_NAME (frvbf,movgs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7996 {
7997 #define FLD(f) abuf->fields.sfmt_movgs.f
7998   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7999   int UNUSED written = 0;
8000   IADDR UNUSED pc = abuf->addr;
8001   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8002
8003   {
8004     USI opval = GET_H_GR (FLD (f_GRj));
8005     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, FLD (f_spr), opval);
8006     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
8007   }
8008
8009   return vpc;
8010 #undef FLD
8011 }
8012
8013 /* movsg: movsg$pack $spr,$GRj */
8014
8015 static SEM_PC
8016 SEM_FN_NAME (frvbf,movsg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8017 {
8018 #define FLD(f) abuf->fields.sfmt_movsg.f
8019   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8020   int UNUSED written = 0;
8021   IADDR UNUSED pc = abuf->addr;
8022   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8023
8024   {
8025     SI opval = GET_H_SPR (FLD (f_spr));
8026     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRj), opval);
8027     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
8028   }
8029
8030   return vpc;
8031 #undef FLD
8032 }
8033
8034 /* bra: bra$pack $hint_taken$label16 */
8035
8036 static SEM_PC
8037 SEM_FN_NAME (frvbf,bra) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8038 {
8039 #define FLD(f) abuf->fields.sfmt_fbne.f
8040   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8041   int UNUSED written = 0;
8042   IADDR UNUSED pc = abuf->addr;
8043   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8044
8045 {
8046 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8047   {
8048     USI opval = FLD (i_label16);
8049     sim_queue_pc_write (current_cpu, opval);
8050     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8051   }
8052 }
8053
8054   return vpc;
8055 #undef FLD
8056 }
8057
8058 /* bno: bno$pack$hint_not_taken */
8059
8060 static SEM_PC
8061 SEM_FN_NAME (frvbf,bno) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8062 {
8063 #define FLD(f) abuf->fields.sfmt_fbne.f
8064   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8065   int UNUSED written = 0;
8066   IADDR UNUSED pc = abuf->addr;
8067   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8068
8069 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8070
8071   return vpc;
8072 #undef FLD
8073 }
8074
8075 /* beq: beq$pack $ICCi_2,$hint,$label16 */
8076
8077 static SEM_PC
8078 SEM_FN_NAME (frvbf,beq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8079 {
8080 #define FLD(f) abuf->fields.sfmt_beq.f
8081   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8082   int UNUSED written = 0;
8083   IADDR UNUSED pc = abuf->addr;
8084   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8085
8086 {
8087 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8088 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2))) {
8089   {
8090     USI opval = FLD (i_label16);
8091     sim_queue_pc_write (current_cpu, opval);
8092     written |= (1 << 3);
8093     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8094   }
8095 }
8096 }
8097
8098   abuf->written = written;
8099   return vpc;
8100 #undef FLD
8101 }
8102
8103 /* bne: bne$pack $ICCi_2,$hint,$label16 */
8104
8105 static SEM_PC
8106 SEM_FN_NAME (frvbf,bne) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8107 {
8108 #define FLD(f) abuf->fields.sfmt_beq.f
8109   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8110   int UNUSED written = 0;
8111   IADDR UNUSED pc = abuf->addr;
8112   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8113
8114 {
8115 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8116 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)))) {
8117   {
8118     USI opval = FLD (i_label16);
8119     sim_queue_pc_write (current_cpu, opval);
8120     written |= (1 << 3);
8121     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8122   }
8123 }
8124 }
8125
8126   abuf->written = written;
8127   return vpc;
8128 #undef FLD
8129 }
8130
8131 /* ble: ble$pack $ICCi_2,$hint,$label16 */
8132
8133 static SEM_PC
8134 SEM_FN_NAME (frvbf,ble) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8135 {
8136 #define FLD(f) abuf->fields.sfmt_beq.f
8137   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8138   int UNUSED written = 0;
8139   IADDR UNUSED pc = abuf->addr;
8140   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8141
8142 {
8143 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8144 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))))) {
8145   {
8146     USI opval = FLD (i_label16);
8147     sim_queue_pc_write (current_cpu, opval);
8148     written |= (1 << 3);
8149     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8150   }
8151 }
8152 }
8153
8154   abuf->written = written;
8155   return vpc;
8156 #undef FLD
8157 }
8158
8159 /* bgt: bgt$pack $ICCi_2,$hint,$label16 */
8160
8161 static SEM_PC
8162 SEM_FN_NAME (frvbf,bgt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8163 {
8164 #define FLD(f) abuf->fields.sfmt_beq.f
8165   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8166   int UNUSED written = 0;
8167   IADDR UNUSED pc = abuf->addr;
8168   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8169
8170 {
8171 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8172 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)))))) {
8173   {
8174     USI opval = FLD (i_label16);
8175     sim_queue_pc_write (current_cpu, opval);
8176     written |= (1 << 3);
8177     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8178   }
8179 }
8180 }
8181
8182   abuf->written = written;
8183   return vpc;
8184 #undef FLD
8185 }
8186
8187 /* blt: blt$pack $ICCi_2,$hint,$label16 */
8188
8189 static SEM_PC
8190 SEM_FN_NAME (frvbf,blt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8191 {
8192 #define FLD(f) abuf->fields.sfmt_beq.f
8193   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8194   int UNUSED written = 0;
8195   IADDR UNUSED pc = abuf->addr;
8196   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8197
8198 {
8199 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8200 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)))) {
8201   {
8202     USI opval = FLD (i_label16);
8203     sim_queue_pc_write (current_cpu, opval);
8204     written |= (1 << 3);
8205     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8206   }
8207 }
8208 }
8209
8210   abuf->written = written;
8211   return vpc;
8212 #undef FLD
8213 }
8214
8215 /* bge: bge$pack $ICCi_2,$hint,$label16 */
8216
8217 static SEM_PC
8218 SEM_FN_NAME (frvbf,bge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8219 {
8220 #define FLD(f) abuf->fields.sfmt_beq.f
8221   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8222   int UNUSED written = 0;
8223   IADDR UNUSED pc = abuf->addr;
8224   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8225
8226 {
8227 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8228 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))))) {
8229   {
8230     USI opval = FLD (i_label16);
8231     sim_queue_pc_write (current_cpu, opval);
8232     written |= (1 << 3);
8233     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8234   }
8235 }
8236 }
8237
8238   abuf->written = written;
8239   return vpc;
8240 #undef FLD
8241 }
8242
8243 /* bls: bls$pack $ICCi_2,$hint,$label16 */
8244
8245 static SEM_PC
8246 SEM_FN_NAME (frvbf,bls) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8247 {
8248 #define FLD(f) abuf->fields.sfmt_beq.f
8249   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8250   int UNUSED written = 0;
8251   IADDR UNUSED pc = abuf->addr;
8252   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8253
8254 {
8255 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8256 if (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)))) {
8257   {
8258     USI opval = FLD (i_label16);
8259     sim_queue_pc_write (current_cpu, opval);
8260     written |= (1 << 3);
8261     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8262   }
8263 }
8264 }
8265
8266   abuf->written = written;
8267   return vpc;
8268 #undef FLD
8269 }
8270
8271 /* bhi: bhi$pack $ICCi_2,$hint,$label16 */
8272
8273 static SEM_PC
8274 SEM_FN_NAME (frvbf,bhi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8275 {
8276 #define FLD(f) abuf->fields.sfmt_beq.f
8277   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8278   int UNUSED written = 0;
8279   IADDR UNUSED pc = abuf->addr;
8280   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8281
8282 {
8283 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8284 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))))) {
8285   {
8286     USI opval = FLD (i_label16);
8287     sim_queue_pc_write (current_cpu, opval);
8288     written |= (1 << 3);
8289     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8290   }
8291 }
8292 }
8293
8294   abuf->written = written;
8295   return vpc;
8296 #undef FLD
8297 }
8298
8299 /* bc: bc$pack $ICCi_2,$hint,$label16 */
8300
8301 static SEM_PC
8302 SEM_FN_NAME (frvbf,bc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8303 {
8304 #define FLD(f) abuf->fields.sfmt_beq.f
8305   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8306   int UNUSED written = 0;
8307   IADDR UNUSED pc = abuf->addr;
8308   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8309
8310 {
8311 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8312 if (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1))) {
8313   {
8314     USI opval = FLD (i_label16);
8315     sim_queue_pc_write (current_cpu, opval);
8316     written |= (1 << 3);
8317     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8318   }
8319 }
8320 }
8321
8322   abuf->written = written;
8323   return vpc;
8324 #undef FLD
8325 }
8326
8327 /* bnc: bnc$pack $ICCi_2,$hint,$label16 */
8328
8329 static SEM_PC
8330 SEM_FN_NAME (frvbf,bnc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8331 {
8332 #define FLD(f) abuf->fields.sfmt_beq.f
8333   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8334   int UNUSED written = 0;
8335   IADDR UNUSED pc = abuf->addr;
8336   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8337
8338 {
8339 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8340 if (NOTBI (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)))) {
8341   {
8342     USI opval = FLD (i_label16);
8343     sim_queue_pc_write (current_cpu, opval);
8344     written |= (1 << 3);
8345     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8346   }
8347 }
8348 }
8349
8350   abuf->written = written;
8351   return vpc;
8352 #undef FLD
8353 }
8354
8355 /* bn: bn$pack $ICCi_2,$hint,$label16 */
8356
8357 static SEM_PC
8358 SEM_FN_NAME (frvbf,bn) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8359 {
8360 #define FLD(f) abuf->fields.sfmt_beq.f
8361   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8362   int UNUSED written = 0;
8363   IADDR UNUSED pc = abuf->addr;
8364   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8365
8366 {
8367 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8368 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3))) {
8369   {
8370     USI opval = FLD (i_label16);
8371     sim_queue_pc_write (current_cpu, opval);
8372     written |= (1 << 3);
8373     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8374   }
8375 }
8376 }
8377
8378   abuf->written = written;
8379   return vpc;
8380 #undef FLD
8381 }
8382
8383 /* bp: bp$pack $ICCi_2,$hint,$label16 */
8384
8385 static SEM_PC
8386 SEM_FN_NAME (frvbf,bp) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8387 {
8388 #define FLD(f) abuf->fields.sfmt_beq.f
8389   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8390   int UNUSED written = 0;
8391   IADDR UNUSED pc = abuf->addr;
8392   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8393
8394 {
8395 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8396 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3)))) {
8397   {
8398     USI opval = FLD (i_label16);
8399     sim_queue_pc_write (current_cpu, opval);
8400     written |= (1 << 3);
8401     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8402   }
8403 }
8404 }
8405
8406   abuf->written = written;
8407   return vpc;
8408 #undef FLD
8409 }
8410
8411 /* bv: bv$pack $ICCi_2,$hint,$label16 */
8412
8413 static SEM_PC
8414 SEM_FN_NAME (frvbf,bv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8415 {
8416 #define FLD(f) abuf->fields.sfmt_beq.f
8417   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8418   int UNUSED written = 0;
8419   IADDR UNUSED pc = abuf->addr;
8420   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8421
8422 {
8423 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8424 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1))) {
8425   {
8426     USI opval = FLD (i_label16);
8427     sim_queue_pc_write (current_cpu, opval);
8428     written |= (1 << 3);
8429     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8430   }
8431 }
8432 }
8433
8434   abuf->written = written;
8435   return vpc;
8436 #undef FLD
8437 }
8438
8439 /* bnv: bnv$pack $ICCi_2,$hint,$label16 */
8440
8441 static SEM_PC
8442 SEM_FN_NAME (frvbf,bnv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8443 {
8444 #define FLD(f) abuf->fields.sfmt_beq.f
8445   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8446   int UNUSED written = 0;
8447   IADDR UNUSED pc = abuf->addr;
8448   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8449
8450 {
8451 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8452 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1)))) {
8453   {
8454     USI opval = FLD (i_label16);
8455     sim_queue_pc_write (current_cpu, opval);
8456     written |= (1 << 3);
8457     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8458   }
8459 }
8460 }
8461
8462   abuf->written = written;
8463   return vpc;
8464 #undef FLD
8465 }
8466
8467 /* fbra: fbra$pack $hint_taken$label16 */
8468
8469 static SEM_PC
8470 SEM_FN_NAME (frvbf,fbra) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8471 {
8472 #define FLD(f) abuf->fields.sfmt_fbne.f
8473   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8474   int UNUSED written = 0;
8475   IADDR UNUSED pc = abuf->addr;
8476   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8477
8478 {
8479 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8480   {
8481     USI opval = FLD (i_label16);
8482     sim_queue_pc_write (current_cpu, opval);
8483     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8484   }
8485 }
8486
8487   return vpc;
8488 #undef FLD
8489 }
8490
8491 /* fbno: fbno$pack$hint_not_taken */
8492
8493 static SEM_PC
8494 SEM_FN_NAME (frvbf,fbno) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8495 {
8496 #define FLD(f) abuf->fields.sfmt_fbne.f
8497   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8498   int UNUSED written = 0;
8499   IADDR UNUSED pc = abuf->addr;
8500   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8501
8502 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8503
8504   return vpc;
8505 #undef FLD
8506 }
8507
8508 /* fbne: fbne$pack $FCCi_2,$hint,$label16 */
8509
8510 static SEM_PC
8511 SEM_FN_NAME (frvbf,fbne) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8512 {
8513 #define FLD(f) abuf->fields.sfmt_fbne.f
8514   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8515   int UNUSED written = 0;
8516   IADDR UNUSED pc = abuf->addr;
8517   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8518
8519 {
8520 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8521 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))))) {
8522   {
8523     USI opval = FLD (i_label16);
8524     sim_queue_pc_write (current_cpu, opval);
8525     written |= (1 << 3);
8526     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8527   }
8528 }
8529 }
8530
8531   abuf->written = written;
8532   return vpc;
8533 #undef FLD
8534 }
8535
8536 /* fbeq: fbeq$pack $FCCi_2,$hint,$label16 */
8537
8538 static SEM_PC
8539 SEM_FN_NAME (frvbf,fbeq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8540 {
8541 #define FLD(f) abuf->fields.sfmt_fbne.f
8542   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8543   int UNUSED written = 0;
8544   IADDR UNUSED pc = abuf->addr;
8545   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8546
8547 {
8548 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8549 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3))) {
8550   {
8551     USI opval = FLD (i_label16);
8552     sim_queue_pc_write (current_cpu, opval);
8553     written |= (1 << 3);
8554     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8555   }
8556 }
8557 }
8558
8559   abuf->written = written;
8560   return vpc;
8561 #undef FLD
8562 }
8563
8564 /* fblg: fblg$pack $FCCi_2,$hint,$label16 */
8565
8566 static SEM_PC
8567 SEM_FN_NAME (frvbf,fblg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8568 {
8569 #define FLD(f) abuf->fields.sfmt_fbne.f
8570   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8571   int UNUSED written = 0;
8572   IADDR UNUSED pc = abuf->addr;
8573   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8574
8575 {
8576 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8577 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)))) {
8578   {
8579     USI opval = FLD (i_label16);
8580     sim_queue_pc_write (current_cpu, opval);
8581     written |= (1 << 3);
8582     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8583   }
8584 }
8585 }
8586
8587   abuf->written = written;
8588   return vpc;
8589 #undef FLD
8590 }
8591
8592 /* fbue: fbue$pack $FCCi_2,$hint,$label16 */
8593
8594 static SEM_PC
8595 SEM_FN_NAME (frvbf,fbue) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8596 {
8597 #define FLD(f) abuf->fields.sfmt_fbne.f
8598   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8599   int UNUSED written = 0;
8600   IADDR UNUSED pc = abuf->addr;
8601   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8602
8603 {
8604 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8605 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
8606   {
8607     USI opval = FLD (i_label16);
8608     sim_queue_pc_write (current_cpu, opval);
8609     written |= (1 << 3);
8610     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8611   }
8612 }
8613 }
8614
8615   abuf->written = written;
8616   return vpc;
8617 #undef FLD
8618 }
8619
8620 /* fbul: fbul$pack $FCCi_2,$hint,$label16 */
8621
8622 static SEM_PC
8623 SEM_FN_NAME (frvbf,fbul) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8624 {
8625 #define FLD(f) abuf->fields.sfmt_fbne.f
8626   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8627   int UNUSED written = 0;
8628   IADDR UNUSED pc = abuf->addr;
8629   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8630
8631 {
8632 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8633 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
8634   {
8635     USI opval = FLD (i_label16);
8636     sim_queue_pc_write (current_cpu, opval);
8637     written |= (1 << 3);
8638     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8639   }
8640 }
8641 }
8642
8643   abuf->written = written;
8644   return vpc;
8645 #undef FLD
8646 }
8647
8648 /* fbge: fbge$pack $FCCi_2,$hint,$label16 */
8649
8650 static SEM_PC
8651 SEM_FN_NAME (frvbf,fbge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8652 {
8653 #define FLD(f) abuf->fields.sfmt_fbne.f
8654   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8655   int UNUSED written = 0;
8656   IADDR UNUSED pc = abuf->addr;
8657   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8658
8659 {
8660 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8661 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)))) {
8662   {
8663     USI opval = FLD (i_label16);
8664     sim_queue_pc_write (current_cpu, opval);
8665     written |= (1 << 3);
8666     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8667   }
8668 }
8669 }
8670
8671   abuf->written = written;
8672   return vpc;
8673 #undef FLD
8674 }
8675
8676 /* fblt: fblt$pack $FCCi_2,$hint,$label16 */
8677
8678 static SEM_PC
8679 SEM_FN_NAME (frvbf,fblt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8680 {
8681 #define FLD(f) abuf->fields.sfmt_fbne.f
8682   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8683   int UNUSED written = 0;
8684   IADDR UNUSED pc = abuf->addr;
8685   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8686
8687 {
8688 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8689 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2))) {
8690   {
8691     USI opval = FLD (i_label16);
8692     sim_queue_pc_write (current_cpu, opval);
8693     written |= (1 << 3);
8694     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8695   }
8696 }
8697 }
8698
8699   abuf->written = written;
8700   return vpc;
8701 #undef FLD
8702 }
8703
8704 /* fbuge: fbuge$pack $FCCi_2,$hint,$label16 */
8705
8706 static SEM_PC
8707 SEM_FN_NAME (frvbf,fbuge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8708 {
8709 #define FLD(f) abuf->fields.sfmt_fbne.f
8710   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8711   int UNUSED written = 0;
8712   IADDR UNUSED pc = abuf->addr;
8713   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8714
8715 {
8716 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8717 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))))) {
8718   {
8719     USI opval = FLD (i_label16);
8720     sim_queue_pc_write (current_cpu, opval);
8721     written |= (1 << 3);
8722     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8723   }
8724 }
8725 }
8726
8727   abuf->written = written;
8728   return vpc;
8729 #undef FLD
8730 }
8731
8732 /* fbug: fbug$pack $FCCi_2,$hint,$label16 */
8733
8734 static SEM_PC
8735 SEM_FN_NAME (frvbf,fbug) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8736 {
8737 #define FLD(f) abuf->fields.sfmt_fbne.f
8738   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8739   int UNUSED written = 0;
8740   IADDR UNUSED pc = abuf->addr;
8741   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8742
8743 {
8744 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8745 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
8746   {
8747     USI opval = FLD (i_label16);
8748     sim_queue_pc_write (current_cpu, opval);
8749     written |= (1 << 3);
8750     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8751   }
8752 }
8753 }
8754
8755   abuf->written = written;
8756   return vpc;
8757 #undef FLD
8758 }
8759
8760 /* fble: fble$pack $FCCi_2,$hint,$label16 */
8761
8762 static SEM_PC
8763 SEM_FN_NAME (frvbf,fble) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8764 {
8765 #define FLD(f) abuf->fields.sfmt_fbne.f
8766   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8767   int UNUSED written = 0;
8768   IADDR UNUSED pc = abuf->addr;
8769   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8770
8771 {
8772 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8773 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)))) {
8774   {
8775     USI opval = FLD (i_label16);
8776     sim_queue_pc_write (current_cpu, opval);
8777     written |= (1 << 3);
8778     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8779   }
8780 }
8781 }
8782
8783   abuf->written = written;
8784   return vpc;
8785 #undef FLD
8786 }
8787
8788 /* fbgt: fbgt$pack $FCCi_2,$hint,$label16 */
8789
8790 static SEM_PC
8791 SEM_FN_NAME (frvbf,fbgt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8792 {
8793 #define FLD(f) abuf->fields.sfmt_fbne.f
8794   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8795   int UNUSED written = 0;
8796   IADDR UNUSED pc = abuf->addr;
8797   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8798
8799 {
8800 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8801 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1))) {
8802   {
8803     USI opval = FLD (i_label16);
8804     sim_queue_pc_write (current_cpu, opval);
8805     written |= (1 << 3);
8806     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8807   }
8808 }
8809 }
8810
8811   abuf->written = written;
8812   return vpc;
8813 #undef FLD
8814 }
8815
8816 /* fbule: fbule$pack $FCCi_2,$hint,$label16 */
8817
8818 static SEM_PC
8819 SEM_FN_NAME (frvbf,fbule) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8820 {
8821 #define FLD(f) abuf->fields.sfmt_fbne.f
8822   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8823   int UNUSED written = 0;
8824   IADDR UNUSED pc = abuf->addr;
8825   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8826
8827 {
8828 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8829 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))))) {
8830   {
8831     USI opval = FLD (i_label16);
8832     sim_queue_pc_write (current_cpu, opval);
8833     written |= (1 << 3);
8834     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8835   }
8836 }
8837 }
8838
8839   abuf->written = written;
8840   return vpc;
8841 #undef FLD
8842 }
8843
8844 /* fbu: fbu$pack $FCCi_2,$hint,$label16 */
8845
8846 static SEM_PC
8847 SEM_FN_NAME (frvbf,fbu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8848 {
8849 #define FLD(f) abuf->fields.sfmt_fbne.f
8850   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8851   int UNUSED written = 0;
8852   IADDR UNUSED pc = abuf->addr;
8853   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8854
8855 {
8856 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8857 if (TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1))) {
8858   {
8859     USI opval = FLD (i_label16);
8860     sim_queue_pc_write (current_cpu, opval);
8861     written |= (1 << 3);
8862     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8863   }
8864 }
8865 }
8866
8867   abuf->written = written;
8868   return vpc;
8869 #undef FLD
8870 }
8871
8872 /* fbo: fbo$pack $FCCi_2,$hint,$label16 */
8873
8874 static SEM_PC
8875 SEM_FN_NAME (frvbf,fbo) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8876 {
8877 #define FLD(f) abuf->fields.sfmt_fbne.f
8878   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8879   int UNUSED written = 0;
8880   IADDR UNUSED pc = abuf->addr;
8881   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8882
8883 {
8884 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8885 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))))) {
8886   {
8887     USI opval = FLD (i_label16);
8888     sim_queue_pc_write (current_cpu, opval);
8889     written |= (1 << 3);
8890     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8891   }
8892 }
8893 }
8894
8895   abuf->written = written;
8896   return vpc;
8897 #undef FLD
8898 }
8899
8900 /* bctrlr: bctrlr$pack $ccond,$hint */
8901
8902 static SEM_PC
8903 SEM_FN_NAME (frvbf,bctrlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8904 {
8905 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
8906   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8907   int UNUSED written = 0;
8908   IADDR UNUSED pc = abuf->addr;
8909   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8910
8911 {
8912 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
8913 {
8914   SI tmp_tmp;
8915   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
8916   {
8917     USI opval = tmp_tmp;
8918     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
8919     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
8920   }
8921 if (EQSI (FLD (f_ccond), 0)) {
8922 if (NESI (tmp_tmp, 0)) {
8923   {
8924     USI opval = GET_H_SPR (((UINT) 272));
8925     sim_queue_pc_write (current_cpu, opval);
8926     written |= (1 << 5);
8927     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8928   }
8929 }
8930 } else {
8931 if (EQSI (tmp_tmp, 0)) {
8932   {
8933     USI opval = GET_H_SPR (((UINT) 272));
8934     sim_queue_pc_write (current_cpu, opval);
8935     written |= (1 << 5);
8936     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8937   }
8938 }
8939 }
8940 }
8941 }
8942
8943   abuf->written = written;
8944   return vpc;
8945 #undef FLD
8946 }
8947
8948 /* bralr: bralr$pack$hint_taken */
8949
8950 static SEM_PC
8951 SEM_FN_NAME (frvbf,bralr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8952 {
8953 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
8954   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8955   int UNUSED written = 0;
8956   IADDR UNUSED pc = abuf->addr;
8957   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8958
8959 {
8960 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
8961   {
8962     USI opval = GET_H_SPR (((UINT) 272));
8963     sim_queue_pc_write (current_cpu, opval);
8964     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8965   }
8966 }
8967
8968   return vpc;
8969 #undef FLD
8970 }
8971
8972 /* bnolr: bnolr$pack$hint_not_taken */
8973
8974 static SEM_PC
8975 SEM_FN_NAME (frvbf,bnolr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8976 {
8977 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
8978   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8979   int UNUSED written = 0;
8980   IADDR UNUSED pc = abuf->addr;
8981   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8982
8983 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
8984
8985   return vpc;
8986 #undef FLD
8987 }
8988
8989 /* beqlr: beqlr$pack $ICCi_2,$hint */
8990
8991 static SEM_PC
8992 SEM_FN_NAME (frvbf,beqlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8993 {
8994 #define FLD(f) abuf->fields.sfmt_bceqlr.f
8995   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8996   int UNUSED written = 0;
8997   IADDR UNUSED pc = abuf->addr;
8998   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8999
9000 {
9001 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9002 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2))) {
9003   {
9004     USI opval = GET_H_SPR (((UINT) 272));
9005     sim_queue_pc_write (current_cpu, opval);
9006     written |= (1 << 3);
9007     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9008   }
9009 }
9010 }
9011
9012   abuf->written = written;
9013   return vpc;
9014 #undef FLD
9015 }
9016
9017 /* bnelr: bnelr$pack $ICCi_2,$hint */
9018
9019 static SEM_PC
9020 SEM_FN_NAME (frvbf,bnelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9021 {
9022 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9023   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9024   int UNUSED written = 0;
9025   IADDR UNUSED pc = abuf->addr;
9026   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9027
9028 {
9029 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9030 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)))) {
9031   {
9032     USI opval = GET_H_SPR (((UINT) 272));
9033     sim_queue_pc_write (current_cpu, opval);
9034     written |= (1 << 3);
9035     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9036   }
9037 }
9038 }
9039
9040   abuf->written = written;
9041   return vpc;
9042 #undef FLD
9043 }
9044
9045 /* blelr: blelr$pack $ICCi_2,$hint */
9046
9047 static SEM_PC
9048 SEM_FN_NAME (frvbf,blelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9049 {
9050 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9051   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9052   int UNUSED written = 0;
9053   IADDR UNUSED pc = abuf->addr;
9054   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9055
9056 {
9057 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9058 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))))) {
9059   {
9060     USI opval = GET_H_SPR (((UINT) 272));
9061     sim_queue_pc_write (current_cpu, opval);
9062     written |= (1 << 3);
9063     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9064   }
9065 }
9066 }
9067
9068   abuf->written = written;
9069   return vpc;
9070 #undef FLD
9071 }
9072
9073 /* bgtlr: bgtlr$pack $ICCi_2,$hint */
9074
9075 static SEM_PC
9076 SEM_FN_NAME (frvbf,bgtlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9077 {
9078 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9079   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9080   int UNUSED written = 0;
9081   IADDR UNUSED pc = abuf->addr;
9082   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9083
9084 {
9085 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9086 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)))))) {
9087   {
9088     USI opval = GET_H_SPR (((UINT) 272));
9089     sim_queue_pc_write (current_cpu, opval);
9090     written |= (1 << 3);
9091     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9092   }
9093 }
9094 }
9095
9096   abuf->written = written;
9097   return vpc;
9098 #undef FLD
9099 }
9100
9101 /* bltlr: bltlr$pack $ICCi_2,$hint */
9102
9103 static SEM_PC
9104 SEM_FN_NAME (frvbf,bltlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9105 {
9106 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9107   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9108   int UNUSED written = 0;
9109   IADDR UNUSED pc = abuf->addr;
9110   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9111
9112 {
9113 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9114 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)))) {
9115   {
9116     USI opval = GET_H_SPR (((UINT) 272));
9117     sim_queue_pc_write (current_cpu, opval);
9118     written |= (1 << 3);
9119     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9120   }
9121 }
9122 }
9123
9124   abuf->written = written;
9125   return vpc;
9126 #undef FLD
9127 }
9128
9129 /* bgelr: bgelr$pack $ICCi_2,$hint */
9130
9131 static SEM_PC
9132 SEM_FN_NAME (frvbf,bgelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9133 {
9134 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9135   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9136   int UNUSED written = 0;
9137   IADDR UNUSED pc = abuf->addr;
9138   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9139
9140 {
9141 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9142 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))))) {
9143   {
9144     USI opval = GET_H_SPR (((UINT) 272));
9145     sim_queue_pc_write (current_cpu, opval);
9146     written |= (1 << 3);
9147     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9148   }
9149 }
9150 }
9151
9152   abuf->written = written;
9153   return vpc;
9154 #undef FLD
9155 }
9156
9157 /* blslr: blslr$pack $ICCi_2,$hint */
9158
9159 static SEM_PC
9160 SEM_FN_NAME (frvbf,blslr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9161 {
9162 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9163   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9164   int UNUSED written = 0;
9165   IADDR UNUSED pc = abuf->addr;
9166   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9167
9168 {
9169 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9170 if (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)))) {
9171   {
9172     USI opval = GET_H_SPR (((UINT) 272));
9173     sim_queue_pc_write (current_cpu, opval);
9174     written |= (1 << 3);
9175     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9176   }
9177 }
9178 }
9179
9180   abuf->written = written;
9181   return vpc;
9182 #undef FLD
9183 }
9184
9185 /* bhilr: bhilr$pack $ICCi_2,$hint */
9186
9187 static SEM_PC
9188 SEM_FN_NAME (frvbf,bhilr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9189 {
9190 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9191   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9192   int UNUSED written = 0;
9193   IADDR UNUSED pc = abuf->addr;
9194   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9195
9196 {
9197 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9198 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))))) {
9199   {
9200     USI opval = GET_H_SPR (((UINT) 272));
9201     sim_queue_pc_write (current_cpu, opval);
9202     written |= (1 << 3);
9203     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9204   }
9205 }
9206 }
9207
9208   abuf->written = written;
9209   return vpc;
9210 #undef FLD
9211 }
9212
9213 /* bclr: bclr$pack $ICCi_2,$hint */
9214
9215 static SEM_PC
9216 SEM_FN_NAME (frvbf,bclr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9217 {
9218 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9219   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9220   int UNUSED written = 0;
9221   IADDR UNUSED pc = abuf->addr;
9222   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9223
9224 {
9225 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9226 if (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1))) {
9227   {
9228     USI opval = GET_H_SPR (((UINT) 272));
9229     sim_queue_pc_write (current_cpu, opval);
9230     written |= (1 << 3);
9231     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9232   }
9233 }
9234 }
9235
9236   abuf->written = written;
9237   return vpc;
9238 #undef FLD
9239 }
9240
9241 /* bnclr: bnclr$pack $ICCi_2,$hint */
9242
9243 static SEM_PC
9244 SEM_FN_NAME (frvbf,bnclr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9245 {
9246 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9247   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9248   int UNUSED written = 0;
9249   IADDR UNUSED pc = abuf->addr;
9250   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9251
9252 {
9253 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9254 if (NOTBI (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)))) {
9255   {
9256     USI opval = GET_H_SPR (((UINT) 272));
9257     sim_queue_pc_write (current_cpu, opval);
9258     written |= (1 << 3);
9259     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9260   }
9261 }
9262 }
9263
9264   abuf->written = written;
9265   return vpc;
9266 #undef FLD
9267 }
9268
9269 /* bnlr: bnlr$pack $ICCi_2,$hint */
9270
9271 static SEM_PC
9272 SEM_FN_NAME (frvbf,bnlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9273 {
9274 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9275   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9276   int UNUSED written = 0;
9277   IADDR UNUSED pc = abuf->addr;
9278   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9279
9280 {
9281 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9282 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3))) {
9283   {
9284     USI opval = GET_H_SPR (((UINT) 272));
9285     sim_queue_pc_write (current_cpu, opval);
9286     written |= (1 << 3);
9287     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9288   }
9289 }
9290 }
9291
9292   abuf->written = written;
9293   return vpc;
9294 #undef FLD
9295 }
9296
9297 /* bplr: bplr$pack $ICCi_2,$hint */
9298
9299 static SEM_PC
9300 SEM_FN_NAME (frvbf,bplr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9301 {
9302 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9303   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9304   int UNUSED written = 0;
9305   IADDR UNUSED pc = abuf->addr;
9306   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9307
9308 {
9309 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9310 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3)))) {
9311   {
9312     USI opval = GET_H_SPR (((UINT) 272));
9313     sim_queue_pc_write (current_cpu, opval);
9314     written |= (1 << 3);
9315     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9316   }
9317 }
9318 }
9319
9320   abuf->written = written;
9321   return vpc;
9322 #undef FLD
9323 }
9324
9325 /* bvlr: bvlr$pack $ICCi_2,$hint */
9326
9327 static SEM_PC
9328 SEM_FN_NAME (frvbf,bvlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9329 {
9330 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9331   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9332   int UNUSED written = 0;
9333   IADDR UNUSED pc = abuf->addr;
9334   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9335
9336 {
9337 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9338 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1))) {
9339   {
9340     USI opval = GET_H_SPR (((UINT) 272));
9341     sim_queue_pc_write (current_cpu, opval);
9342     written |= (1 << 3);
9343     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9344   }
9345 }
9346 }
9347
9348   abuf->written = written;
9349   return vpc;
9350 #undef FLD
9351 }
9352
9353 /* bnvlr: bnvlr$pack $ICCi_2,$hint */
9354
9355 static SEM_PC
9356 SEM_FN_NAME (frvbf,bnvlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9357 {
9358 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9359   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9360   int UNUSED written = 0;
9361   IADDR UNUSED pc = abuf->addr;
9362   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9363
9364 {
9365 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9366 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1)))) {
9367   {
9368     USI opval = GET_H_SPR (((UINT) 272));
9369     sim_queue_pc_write (current_cpu, opval);
9370     written |= (1 << 3);
9371     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9372   }
9373 }
9374 }
9375
9376   abuf->written = written;
9377   return vpc;
9378 #undef FLD
9379 }
9380
9381 /* fbralr: fbralr$pack$hint_taken */
9382
9383 static SEM_PC
9384 SEM_FN_NAME (frvbf,fbralr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9385 {
9386 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9387   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9388   int UNUSED written = 0;
9389   IADDR UNUSED pc = abuf->addr;
9390   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9391
9392 {
9393 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9394   {
9395     USI opval = GET_H_SPR (((UINT) 272));
9396     sim_queue_pc_write (current_cpu, opval);
9397     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9398   }
9399 }
9400
9401   return vpc;
9402 #undef FLD
9403 }
9404
9405 /* fbnolr: fbnolr$pack$hint_not_taken */
9406
9407 static SEM_PC
9408 SEM_FN_NAME (frvbf,fbnolr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9409 {
9410 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9411   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9412   int UNUSED written = 0;
9413   IADDR UNUSED pc = abuf->addr;
9414   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9415
9416 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9417
9418   return vpc;
9419 #undef FLD
9420 }
9421
9422 /* fbeqlr: fbeqlr$pack $FCCi_2,$hint */
9423
9424 static SEM_PC
9425 SEM_FN_NAME (frvbf,fbeqlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9426 {
9427 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9428   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9429   int UNUSED written = 0;
9430   IADDR UNUSED pc = abuf->addr;
9431   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9432
9433 {
9434 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9435 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3))) {
9436   {
9437     USI opval = GET_H_SPR (((UINT) 272));
9438     sim_queue_pc_write (current_cpu, opval);
9439     written |= (1 << 3);
9440     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9441   }
9442 }
9443 }
9444
9445   abuf->written = written;
9446   return vpc;
9447 #undef FLD
9448 }
9449
9450 /* fbnelr: fbnelr$pack $FCCi_2,$hint */
9451
9452 static SEM_PC
9453 SEM_FN_NAME (frvbf,fbnelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9454 {
9455 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9456   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9457   int UNUSED written = 0;
9458   IADDR UNUSED pc = abuf->addr;
9459   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9460
9461 {
9462 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9463 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))))) {
9464   {
9465     USI opval = GET_H_SPR (((UINT) 272));
9466     sim_queue_pc_write (current_cpu, opval);
9467     written |= (1 << 3);
9468     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9469   }
9470 }
9471 }
9472
9473   abuf->written = written;
9474   return vpc;
9475 #undef FLD
9476 }
9477
9478 /* fblglr: fblglr$pack $FCCi_2,$hint */
9479
9480 static SEM_PC
9481 SEM_FN_NAME (frvbf,fblglr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9482 {
9483 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9484   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9485   int UNUSED written = 0;
9486   IADDR UNUSED pc = abuf->addr;
9487   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9488
9489 {
9490 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9491 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)))) {
9492   {
9493     USI opval = GET_H_SPR (((UINT) 272));
9494     sim_queue_pc_write (current_cpu, opval);
9495     written |= (1 << 3);
9496     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9497   }
9498 }
9499 }
9500
9501   abuf->written = written;
9502   return vpc;
9503 #undef FLD
9504 }
9505
9506 /* fbuelr: fbuelr$pack $FCCi_2,$hint */
9507
9508 static SEM_PC
9509 SEM_FN_NAME (frvbf,fbuelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9510 {
9511 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9512   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9513   int UNUSED written = 0;
9514   IADDR UNUSED pc = abuf->addr;
9515   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9516
9517 {
9518 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9519 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
9520   {
9521     USI opval = GET_H_SPR (((UINT) 272));
9522     sim_queue_pc_write (current_cpu, opval);
9523     written |= (1 << 3);
9524     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9525   }
9526 }
9527 }
9528
9529   abuf->written = written;
9530   return vpc;
9531 #undef FLD
9532 }
9533
9534 /* fbullr: fbullr$pack $FCCi_2,$hint */
9535
9536 static SEM_PC
9537 SEM_FN_NAME (frvbf,fbullr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9538 {
9539 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9540   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9541   int UNUSED written = 0;
9542   IADDR UNUSED pc = abuf->addr;
9543   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9544
9545 {
9546 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9547 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
9548   {
9549     USI opval = GET_H_SPR (((UINT) 272));
9550     sim_queue_pc_write (current_cpu, opval);
9551     written |= (1 << 3);
9552     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9553   }
9554 }
9555 }
9556
9557   abuf->written = written;
9558   return vpc;
9559 #undef FLD
9560 }
9561
9562 /* fbgelr: fbgelr$pack $FCCi_2,$hint */
9563
9564 static SEM_PC
9565 SEM_FN_NAME (frvbf,fbgelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9566 {
9567 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9568   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9569   int UNUSED written = 0;
9570   IADDR UNUSED pc = abuf->addr;
9571   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9572
9573 {
9574 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9575 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)))) {
9576   {
9577     USI opval = GET_H_SPR (((UINT) 272));
9578     sim_queue_pc_write (current_cpu, opval);
9579     written |= (1 << 3);
9580     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9581   }
9582 }
9583 }
9584
9585   abuf->written = written;
9586   return vpc;
9587 #undef FLD
9588 }
9589
9590 /* fbltlr: fbltlr$pack $FCCi_2,$hint */
9591
9592 static SEM_PC
9593 SEM_FN_NAME (frvbf,fbltlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9594 {
9595 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9596   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9597   int UNUSED written = 0;
9598   IADDR UNUSED pc = abuf->addr;
9599   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9600
9601 {
9602 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9603 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2))) {
9604   {
9605     USI opval = GET_H_SPR (((UINT) 272));
9606     sim_queue_pc_write (current_cpu, opval);
9607     written |= (1 << 3);
9608     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9609   }
9610 }
9611 }
9612
9613   abuf->written = written;
9614   return vpc;
9615 #undef FLD
9616 }
9617
9618 /* fbugelr: fbugelr$pack $FCCi_2,$hint */
9619
9620 static SEM_PC
9621 SEM_FN_NAME (frvbf,fbugelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9622 {
9623 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9624   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9625   int UNUSED written = 0;
9626   IADDR UNUSED pc = abuf->addr;
9627   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9628
9629 {
9630 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9631 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))))) {
9632   {
9633     USI opval = GET_H_SPR (((UINT) 272));
9634     sim_queue_pc_write (current_cpu, opval);
9635     written |= (1 << 3);
9636     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9637   }
9638 }
9639 }
9640
9641   abuf->written = written;
9642   return vpc;
9643 #undef FLD
9644 }
9645
9646 /* fbuglr: fbuglr$pack $FCCi_2,$hint */
9647
9648 static SEM_PC
9649 SEM_FN_NAME (frvbf,fbuglr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9650 {
9651 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9652   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9653   int UNUSED written = 0;
9654   IADDR UNUSED pc = abuf->addr;
9655   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9656
9657 {
9658 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9659 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
9660   {
9661     USI opval = GET_H_SPR (((UINT) 272));
9662     sim_queue_pc_write (current_cpu, opval);
9663     written |= (1 << 3);
9664     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9665   }
9666 }
9667 }
9668
9669   abuf->written = written;
9670   return vpc;
9671 #undef FLD
9672 }
9673
9674 /* fblelr: fblelr$pack $FCCi_2,$hint */
9675
9676 static SEM_PC
9677 SEM_FN_NAME (frvbf,fblelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9678 {
9679 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9680   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9681   int UNUSED written = 0;
9682   IADDR UNUSED pc = abuf->addr;
9683   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9684
9685 {
9686 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9687 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)))) {
9688   {
9689     USI opval = GET_H_SPR (((UINT) 272));
9690     sim_queue_pc_write (current_cpu, opval);
9691     written |= (1 << 3);
9692     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9693   }
9694 }
9695 }
9696
9697   abuf->written = written;
9698   return vpc;
9699 #undef FLD
9700 }
9701
9702 /* fbgtlr: fbgtlr$pack $FCCi_2,$hint */
9703
9704 static SEM_PC
9705 SEM_FN_NAME (frvbf,fbgtlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9706 {
9707 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9708   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9709   int UNUSED written = 0;
9710   IADDR UNUSED pc = abuf->addr;
9711   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9712
9713 {
9714 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9715 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1))) {
9716   {
9717     USI opval = GET_H_SPR (((UINT) 272));
9718     sim_queue_pc_write (current_cpu, opval);
9719     written |= (1 << 3);
9720     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9721   }
9722 }
9723 }
9724
9725   abuf->written = written;
9726   return vpc;
9727 #undef FLD
9728 }
9729
9730 /* fbulelr: fbulelr$pack $FCCi_2,$hint */
9731
9732 static SEM_PC
9733 SEM_FN_NAME (frvbf,fbulelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9734 {
9735 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9736   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9737   int UNUSED written = 0;
9738   IADDR UNUSED pc = abuf->addr;
9739   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9740
9741 {
9742 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9743 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))))) {
9744   {
9745     USI opval = GET_H_SPR (((UINT) 272));
9746     sim_queue_pc_write (current_cpu, opval);
9747     written |= (1 << 3);
9748     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9749   }
9750 }
9751 }
9752
9753   abuf->written = written;
9754   return vpc;
9755 #undef FLD
9756 }
9757
9758 /* fbulr: fbulr$pack $FCCi_2,$hint */
9759
9760 static SEM_PC
9761 SEM_FN_NAME (frvbf,fbulr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9762 {
9763 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9764   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9765   int UNUSED written = 0;
9766   IADDR UNUSED pc = abuf->addr;
9767   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9768
9769 {
9770 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9771 if (TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1))) {
9772   {
9773     USI opval = GET_H_SPR (((UINT) 272));
9774     sim_queue_pc_write (current_cpu, opval);
9775     written |= (1 << 3);
9776     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9777   }
9778 }
9779 }
9780
9781   abuf->written = written;
9782   return vpc;
9783 #undef FLD
9784 }
9785
9786 /* fbolr: fbolr$pack $FCCi_2,$hint */
9787
9788 static SEM_PC
9789 SEM_FN_NAME (frvbf,fbolr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9790 {
9791 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9792   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9793   int UNUSED written = 0;
9794   IADDR UNUSED pc = abuf->addr;
9795   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9796
9797 {
9798 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9799 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))))) {
9800   {
9801     USI opval = GET_H_SPR (((UINT) 272));
9802     sim_queue_pc_write (current_cpu, opval);
9803     written |= (1 << 3);
9804     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9805   }
9806 }
9807 }
9808
9809   abuf->written = written;
9810   return vpc;
9811 #undef FLD
9812 }
9813
9814 /* bcralr: bcralr$pack $ccond$hint_taken */
9815
9816 static SEM_PC
9817 SEM_FN_NAME (frvbf,bcralr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9818 {
9819 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9820   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9821   int UNUSED written = 0;
9822   IADDR UNUSED pc = abuf->addr;
9823   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9824
9825 {
9826 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9827 {
9828   SI tmp_tmp;
9829   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
9830   {
9831     USI opval = tmp_tmp;
9832     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
9833     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
9834   }
9835 if (EQSI (FLD (f_ccond), 0)) {
9836 if (NESI (tmp_tmp, 0)) {
9837   {
9838     USI opval = GET_H_SPR (((UINT) 272));
9839     sim_queue_pc_write (current_cpu, opval);
9840     written |= (1 << 5);
9841     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9842   }
9843 }
9844 } else {
9845 if (EQSI (tmp_tmp, 0)) {
9846   {
9847     USI opval = GET_H_SPR (((UINT) 272));
9848     sim_queue_pc_write (current_cpu, opval);
9849     written |= (1 << 5);
9850     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9851   }
9852 }
9853 }
9854 }
9855 }
9856
9857   abuf->written = written;
9858   return vpc;
9859 #undef FLD
9860 }
9861
9862 /* bcnolr: bcnolr$pack$hint_not_taken */
9863
9864 static SEM_PC
9865 SEM_FN_NAME (frvbf,bcnolr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9866 {
9867 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9868   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9869   int UNUSED written = 0;
9870   IADDR UNUSED pc = abuf->addr;
9871   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9872
9873 {
9874 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9875 {
9876   SI tmp_tmp;
9877   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
9878   {
9879     USI opval = tmp_tmp;
9880     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
9881     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
9882   }
9883 ((void) 0); /*nop*/
9884 }
9885 }
9886
9887   return vpc;
9888 #undef FLD
9889 }
9890
9891 /* bceqlr: bceqlr$pack $ICCi_2,$ccond,$hint */
9892
9893 static SEM_PC
9894 SEM_FN_NAME (frvbf,bceqlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9895 {
9896 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9897   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9898   int UNUSED written = 0;
9899   IADDR UNUSED pc = abuf->addr;
9900   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9901
9902 {
9903 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9904 {
9905   SI tmp_tmp;
9906   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
9907   {
9908     USI opval = tmp_tmp;
9909     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
9910     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
9911   }
9912 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2))) {
9913 if (EQSI (FLD (f_ccond), 0)) {
9914 if (NESI (tmp_tmp, 0)) {
9915   {
9916     USI opval = GET_H_SPR (((UINT) 272));
9917     sim_queue_pc_write (current_cpu, opval);
9918     written |= (1 << 6);
9919     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9920   }
9921 }
9922 } else {
9923 if (EQSI (tmp_tmp, 0)) {
9924   {
9925     USI opval = GET_H_SPR (((UINT) 272));
9926     sim_queue_pc_write (current_cpu, opval);
9927     written |= (1 << 6);
9928     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9929   }
9930 }
9931 }
9932 }
9933 }
9934 }
9935
9936   abuf->written = written;
9937   return vpc;
9938 #undef FLD
9939 }
9940
9941 /* bcnelr: bcnelr$pack $ICCi_2,$ccond,$hint */
9942
9943 static SEM_PC
9944 SEM_FN_NAME (frvbf,bcnelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9945 {
9946 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9947   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9948   int UNUSED written = 0;
9949   IADDR UNUSED pc = abuf->addr;
9950   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9951
9952 {
9953 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9954 {
9955   SI tmp_tmp;
9956   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
9957   {
9958     USI opval = tmp_tmp;
9959     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
9960     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
9961   }
9962 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)))) {
9963 if (EQSI (FLD (f_ccond), 0)) {
9964 if (NESI (tmp_tmp, 0)) {
9965   {
9966     USI opval = GET_H_SPR (((UINT) 272));
9967     sim_queue_pc_write (current_cpu, opval);
9968     written |= (1 << 6);
9969     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9970   }
9971 }
9972 } else {
9973 if (EQSI (tmp_tmp, 0)) {
9974   {
9975     USI opval = GET_H_SPR (((UINT) 272));
9976     sim_queue_pc_write (current_cpu, opval);
9977     written |= (1 << 6);
9978     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9979   }
9980 }
9981 }
9982 }
9983 }
9984 }
9985
9986   abuf->written = written;
9987   return vpc;
9988 #undef FLD
9989 }
9990
9991 /* bclelr: bclelr$pack $ICCi_2,$ccond,$hint */
9992
9993 static SEM_PC
9994 SEM_FN_NAME (frvbf,bclelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9995 {
9996 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9997   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9998   int UNUSED written = 0;
9999   IADDR UNUSED pc = abuf->addr;
10000   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10001
10002 {
10003 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10004 {
10005   SI tmp_tmp;
10006   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10007   {
10008     USI opval = tmp_tmp;
10009     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10010     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10011   }
10012 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))))) {
10013 if (EQSI (FLD (f_ccond), 0)) {
10014 if (NESI (tmp_tmp, 0)) {
10015   {
10016     USI opval = GET_H_SPR (((UINT) 272));
10017     sim_queue_pc_write (current_cpu, opval);
10018     written |= (1 << 6);
10019     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10020   }
10021 }
10022 } else {
10023 if (EQSI (tmp_tmp, 0)) {
10024   {
10025     USI opval = GET_H_SPR (((UINT) 272));
10026     sim_queue_pc_write (current_cpu, opval);
10027     written |= (1 << 6);
10028     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10029   }
10030 }
10031 }
10032 }
10033 }
10034 }
10035
10036   abuf->written = written;
10037   return vpc;
10038 #undef FLD
10039 }
10040
10041 /* bcgtlr: bcgtlr$pack $ICCi_2,$ccond,$hint */
10042
10043 static SEM_PC
10044 SEM_FN_NAME (frvbf,bcgtlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10045 {
10046 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10047   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10048   int UNUSED written = 0;
10049   IADDR UNUSED pc = abuf->addr;
10050   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10051
10052 {
10053 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10054 {
10055   SI tmp_tmp;
10056   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10057   {
10058     USI opval = tmp_tmp;
10059     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10060     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10061   }
10062 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)))))) {
10063 if (EQSI (FLD (f_ccond), 0)) {
10064 if (NESI (tmp_tmp, 0)) {
10065   {
10066     USI opval = GET_H_SPR (((UINT) 272));
10067     sim_queue_pc_write (current_cpu, opval);
10068     written |= (1 << 6);
10069     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10070   }
10071 }
10072 } else {
10073 if (EQSI (tmp_tmp, 0)) {
10074   {
10075     USI opval = GET_H_SPR (((UINT) 272));
10076     sim_queue_pc_write (current_cpu, opval);
10077     written |= (1 << 6);
10078     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10079   }
10080 }
10081 }
10082 }
10083 }
10084 }
10085
10086   abuf->written = written;
10087   return vpc;
10088 #undef FLD
10089 }
10090
10091 /* bcltlr: bcltlr$pack $ICCi_2,$ccond,$hint */
10092
10093 static SEM_PC
10094 SEM_FN_NAME (frvbf,bcltlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10095 {
10096 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10097   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10098   int UNUSED written = 0;
10099   IADDR UNUSED pc = abuf->addr;
10100   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10101
10102 {
10103 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10104 {
10105   SI tmp_tmp;
10106   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10107   {
10108     USI opval = tmp_tmp;
10109     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10110     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10111   }
10112 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)))) {
10113 if (EQSI (FLD (f_ccond), 0)) {
10114 if (NESI (tmp_tmp, 0)) {
10115   {
10116     USI opval = GET_H_SPR (((UINT) 272));
10117     sim_queue_pc_write (current_cpu, opval);
10118     written |= (1 << 6);
10119     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10120   }
10121 }
10122 } else {
10123 if (EQSI (tmp_tmp, 0)) {
10124   {
10125     USI opval = GET_H_SPR (((UINT) 272));
10126     sim_queue_pc_write (current_cpu, opval);
10127     written |= (1 << 6);
10128     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10129   }
10130 }
10131 }
10132 }
10133 }
10134 }
10135
10136   abuf->written = written;
10137   return vpc;
10138 #undef FLD
10139 }
10140
10141 /* bcgelr: bcgelr$pack $ICCi_2,$ccond,$hint */
10142
10143 static SEM_PC
10144 SEM_FN_NAME (frvbf,bcgelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10145 {
10146 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10147   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10148   int UNUSED written = 0;
10149   IADDR UNUSED pc = abuf->addr;
10150   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10151
10152 {
10153 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10154 {
10155   SI tmp_tmp;
10156   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10157   {
10158     USI opval = tmp_tmp;
10159     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10160     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10161   }
10162 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))))) {
10163 if (EQSI (FLD (f_ccond), 0)) {
10164 if (NESI (tmp_tmp, 0)) {
10165   {
10166     USI opval = GET_H_SPR (((UINT) 272));
10167     sim_queue_pc_write (current_cpu, opval);
10168     written |= (1 << 6);
10169     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10170   }
10171 }
10172 } else {
10173 if (EQSI (tmp_tmp, 0)) {
10174   {
10175     USI opval = GET_H_SPR (((UINT) 272));
10176     sim_queue_pc_write (current_cpu, opval);
10177     written |= (1 << 6);
10178     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10179   }
10180 }
10181 }
10182 }
10183 }
10184 }
10185
10186   abuf->written = written;
10187   return vpc;
10188 #undef FLD
10189 }
10190
10191 /* bclslr: bclslr$pack $ICCi_2,$ccond,$hint */
10192
10193 static SEM_PC
10194 SEM_FN_NAME (frvbf,bclslr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10195 {
10196 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10197   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10198   int UNUSED written = 0;
10199   IADDR UNUSED pc = abuf->addr;
10200   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10201
10202 {
10203 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10204 {
10205   SI tmp_tmp;
10206   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10207   {
10208     USI opval = tmp_tmp;
10209     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10210     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10211   }
10212 if (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)))) {
10213 if (EQSI (FLD (f_ccond), 0)) {
10214 if (NESI (tmp_tmp, 0)) {
10215   {
10216     USI opval = GET_H_SPR (((UINT) 272));
10217     sim_queue_pc_write (current_cpu, opval);
10218     written |= (1 << 6);
10219     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10220   }
10221 }
10222 } else {
10223 if (EQSI (tmp_tmp, 0)) {
10224   {
10225     USI opval = GET_H_SPR (((UINT) 272));
10226     sim_queue_pc_write (current_cpu, opval);
10227     written |= (1 << 6);
10228     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10229   }
10230 }
10231 }
10232 }
10233 }
10234 }
10235
10236   abuf->written = written;
10237   return vpc;
10238 #undef FLD
10239 }
10240
10241 /* bchilr: bchilr$pack $ICCi_2,$ccond,$hint */
10242
10243 static SEM_PC
10244 SEM_FN_NAME (frvbf,bchilr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10245 {
10246 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10247   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10248   int UNUSED written = 0;
10249   IADDR UNUSED pc = abuf->addr;
10250   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10251
10252 {
10253 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10254 {
10255   SI tmp_tmp;
10256   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10257   {
10258     USI opval = tmp_tmp;
10259     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10260     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10261   }
10262 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))))) {
10263 if (EQSI (FLD (f_ccond), 0)) {
10264 if (NESI (tmp_tmp, 0)) {
10265   {
10266     USI opval = GET_H_SPR (((UINT) 272));
10267     sim_queue_pc_write (current_cpu, opval);
10268     written |= (1 << 6);
10269     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10270   }
10271 }
10272 } else {
10273 if (EQSI (tmp_tmp, 0)) {
10274   {
10275     USI opval = GET_H_SPR (((UINT) 272));
10276     sim_queue_pc_write (current_cpu, opval);
10277     written |= (1 << 6);
10278     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10279   }
10280 }
10281 }
10282 }
10283 }
10284 }
10285
10286   abuf->written = written;
10287   return vpc;
10288 #undef FLD
10289 }
10290
10291 /* bcclr: bcclr$pack $ICCi_2,$ccond,$hint */
10292
10293 static SEM_PC
10294 SEM_FN_NAME (frvbf,bcclr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10295 {
10296 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10297   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10298   int UNUSED written = 0;
10299   IADDR UNUSED pc = abuf->addr;
10300   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10301
10302 {
10303 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10304 {
10305   SI tmp_tmp;
10306   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10307   {
10308     USI opval = tmp_tmp;
10309     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10310     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10311   }
10312 if (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1))) {
10313 if (EQSI (FLD (f_ccond), 0)) {
10314 if (NESI (tmp_tmp, 0)) {
10315   {
10316     USI opval = GET_H_SPR (((UINT) 272));
10317     sim_queue_pc_write (current_cpu, opval);
10318     written |= (1 << 6);
10319     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10320   }
10321 }
10322 } else {
10323 if (EQSI (tmp_tmp, 0)) {
10324   {
10325     USI opval = GET_H_SPR (((UINT) 272));
10326     sim_queue_pc_write (current_cpu, opval);
10327     written |= (1 << 6);
10328     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10329   }
10330 }
10331 }
10332 }
10333 }
10334 }
10335
10336   abuf->written = written;
10337   return vpc;
10338 #undef FLD
10339 }
10340
10341 /* bcnclr: bcnclr$pack $ICCi_2,$ccond,$hint */
10342
10343 static SEM_PC
10344 SEM_FN_NAME (frvbf,bcnclr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10345 {
10346 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10347   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10348   int UNUSED written = 0;
10349   IADDR UNUSED pc = abuf->addr;
10350   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10351
10352 {
10353 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10354 {
10355   SI tmp_tmp;
10356   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10357   {
10358     USI opval = tmp_tmp;
10359     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10360     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10361   }
10362 if (NOTBI (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)))) {
10363 if (EQSI (FLD (f_ccond), 0)) {
10364 if (NESI (tmp_tmp, 0)) {
10365   {
10366     USI opval = GET_H_SPR (((UINT) 272));
10367     sim_queue_pc_write (current_cpu, opval);
10368     written |= (1 << 6);
10369     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10370   }
10371 }
10372 } else {
10373 if (EQSI (tmp_tmp, 0)) {
10374   {
10375     USI opval = GET_H_SPR (((UINT) 272));
10376     sim_queue_pc_write (current_cpu, opval);
10377     written |= (1 << 6);
10378     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10379   }
10380 }
10381 }
10382 }
10383 }
10384 }
10385
10386   abuf->written = written;
10387   return vpc;
10388 #undef FLD
10389 }
10390
10391 /* bcnlr: bcnlr$pack $ICCi_2,$ccond,$hint */
10392
10393 static SEM_PC
10394 SEM_FN_NAME (frvbf,bcnlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10395 {
10396 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10397   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10398   int UNUSED written = 0;
10399   IADDR UNUSED pc = abuf->addr;
10400   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10401
10402 {
10403 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10404 {
10405   SI tmp_tmp;
10406   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10407   {
10408     USI opval = tmp_tmp;
10409     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10410     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10411   }
10412 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3))) {
10413 if (EQSI (FLD (f_ccond), 0)) {
10414 if (NESI (tmp_tmp, 0)) {
10415   {
10416     USI opval = GET_H_SPR (((UINT) 272));
10417     sim_queue_pc_write (current_cpu, opval);
10418     written |= (1 << 6);
10419     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10420   }
10421 }
10422 } else {
10423 if (EQSI (tmp_tmp, 0)) {
10424   {
10425     USI opval = GET_H_SPR (((UINT) 272));
10426     sim_queue_pc_write (current_cpu, opval);
10427     written |= (1 << 6);
10428     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10429   }
10430 }
10431 }
10432 }
10433 }
10434 }
10435
10436   abuf->written = written;
10437   return vpc;
10438 #undef FLD
10439 }
10440
10441 /* bcplr: bcplr$pack $ICCi_2,$ccond,$hint */
10442
10443 static SEM_PC
10444 SEM_FN_NAME (frvbf,bcplr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10445 {
10446 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10447   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10448   int UNUSED written = 0;
10449   IADDR UNUSED pc = abuf->addr;
10450   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10451
10452 {
10453 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10454 {
10455   SI tmp_tmp;
10456   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10457   {
10458     USI opval = tmp_tmp;
10459     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10460     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10461   }
10462 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3)))) {
10463 if (EQSI (FLD (f_ccond), 0)) {
10464 if (NESI (tmp_tmp, 0)) {
10465   {
10466     USI opval = GET_H_SPR (((UINT) 272));
10467     sim_queue_pc_write (current_cpu, opval);
10468     written |= (1 << 6);
10469     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10470   }
10471 }
10472 } else {
10473 if (EQSI (tmp_tmp, 0)) {
10474   {
10475     USI opval = GET_H_SPR (((UINT) 272));
10476     sim_queue_pc_write (current_cpu, opval);
10477     written |= (1 << 6);
10478     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10479   }
10480 }
10481 }
10482 }
10483 }
10484 }
10485
10486   abuf->written = written;
10487   return vpc;
10488 #undef FLD
10489 }
10490
10491 /* bcvlr: bcvlr$pack $ICCi_2,$ccond,$hint */
10492
10493 static SEM_PC
10494 SEM_FN_NAME (frvbf,bcvlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10495 {
10496 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10497   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10498   int UNUSED written = 0;
10499   IADDR UNUSED pc = abuf->addr;
10500   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10501
10502 {
10503 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10504 {
10505   SI tmp_tmp;
10506   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10507   {
10508     USI opval = tmp_tmp;
10509     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10510     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10511   }
10512 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1))) {
10513 if (EQSI (FLD (f_ccond), 0)) {
10514 if (NESI (tmp_tmp, 0)) {
10515   {
10516     USI opval = GET_H_SPR (((UINT) 272));
10517     sim_queue_pc_write (current_cpu, opval);
10518     written |= (1 << 6);
10519     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10520   }
10521 }
10522 } else {
10523 if (EQSI (tmp_tmp, 0)) {
10524   {
10525     USI opval = GET_H_SPR (((UINT) 272));
10526     sim_queue_pc_write (current_cpu, opval);
10527     written |= (1 << 6);
10528     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10529   }
10530 }
10531 }
10532 }
10533 }
10534 }
10535
10536   abuf->written = written;
10537   return vpc;
10538 #undef FLD
10539 }
10540
10541 /* bcnvlr: bcnvlr$pack $ICCi_2,$ccond,$hint */
10542
10543 static SEM_PC
10544 SEM_FN_NAME (frvbf,bcnvlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10545 {
10546 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10547   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10548   int UNUSED written = 0;
10549   IADDR UNUSED pc = abuf->addr;
10550   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10551
10552 {
10553 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10554 {
10555   SI tmp_tmp;
10556   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10557   {
10558     USI opval = tmp_tmp;
10559     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10560     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10561   }
10562 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1)))) {
10563 if (EQSI (FLD (f_ccond), 0)) {
10564 if (NESI (tmp_tmp, 0)) {
10565   {
10566     USI opval = GET_H_SPR (((UINT) 272));
10567     sim_queue_pc_write (current_cpu, opval);
10568     written |= (1 << 6);
10569     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10570   }
10571 }
10572 } else {
10573 if (EQSI (tmp_tmp, 0)) {
10574   {
10575     USI opval = GET_H_SPR (((UINT) 272));
10576     sim_queue_pc_write (current_cpu, opval);
10577     written |= (1 << 6);
10578     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10579   }
10580 }
10581 }
10582 }
10583 }
10584 }
10585
10586   abuf->written = written;
10587   return vpc;
10588 #undef FLD
10589 }
10590
10591 /* fcbralr: fcbralr$pack $ccond$hint_taken */
10592
10593 static SEM_PC
10594 SEM_FN_NAME (frvbf,fcbralr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10595 {
10596 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10597   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10598   int UNUSED written = 0;
10599   IADDR UNUSED pc = abuf->addr;
10600   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10601
10602 {
10603 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10604 {
10605   SI tmp_tmp;
10606   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10607   {
10608     USI opval = tmp_tmp;
10609     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10610     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10611   }
10612 if (EQSI (FLD (f_ccond), 0)) {
10613 if (NESI (tmp_tmp, 0)) {
10614   {
10615     USI opval = GET_H_SPR (((UINT) 272));
10616     sim_queue_pc_write (current_cpu, opval);
10617     written |= (1 << 5);
10618     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10619   }
10620 }
10621 } else {
10622 if (EQSI (tmp_tmp, 0)) {
10623   {
10624     USI opval = GET_H_SPR (((UINT) 272));
10625     sim_queue_pc_write (current_cpu, opval);
10626     written |= (1 << 5);
10627     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10628   }
10629 }
10630 }
10631 }
10632 }
10633
10634   abuf->written = written;
10635   return vpc;
10636 #undef FLD
10637 }
10638
10639 /* fcbnolr: fcbnolr$pack$hint_not_taken */
10640
10641 static SEM_PC
10642 SEM_FN_NAME (frvbf,fcbnolr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10643 {
10644 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10645   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10646   int UNUSED written = 0;
10647   IADDR UNUSED pc = abuf->addr;
10648   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10649
10650 {
10651 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10652 {
10653   SI tmp_tmp;
10654   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10655   {
10656     USI opval = tmp_tmp;
10657     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10658     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10659   }
10660 ((void) 0); /*nop*/
10661 }
10662 }
10663
10664   return vpc;
10665 #undef FLD
10666 }
10667
10668 /* fcbeqlr: fcbeqlr$pack $FCCi_2,$ccond,$hint */
10669
10670 static SEM_PC
10671 SEM_FN_NAME (frvbf,fcbeqlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10672 {
10673 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10674   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10675   int UNUSED written = 0;
10676   IADDR UNUSED pc = abuf->addr;
10677   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10678
10679 {
10680 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10681 {
10682   SI tmp_tmp;
10683   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10684   {
10685     USI opval = tmp_tmp;
10686     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10687     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10688   }
10689 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3))) {
10690 if (EQSI (FLD (f_ccond), 0)) {
10691 if (NESI (tmp_tmp, 0)) {
10692   {
10693     USI opval = GET_H_SPR (((UINT) 272));
10694     sim_queue_pc_write (current_cpu, opval);
10695     written |= (1 << 6);
10696     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10697   }
10698 }
10699 } else {
10700 if (EQSI (tmp_tmp, 0)) {
10701   {
10702     USI opval = GET_H_SPR (((UINT) 272));
10703     sim_queue_pc_write (current_cpu, opval);
10704     written |= (1 << 6);
10705     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10706   }
10707 }
10708 }
10709 }
10710 }
10711 }
10712
10713   abuf->written = written;
10714   return vpc;
10715 #undef FLD
10716 }
10717
10718 /* fcbnelr: fcbnelr$pack $FCCi_2,$ccond,$hint */
10719
10720 static SEM_PC
10721 SEM_FN_NAME (frvbf,fcbnelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10722 {
10723 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10724   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10725   int UNUSED written = 0;
10726   IADDR UNUSED pc = abuf->addr;
10727   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10728
10729 {
10730 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10731 {
10732   SI tmp_tmp;
10733   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10734   {
10735     USI opval = tmp_tmp;
10736     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10737     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10738   }
10739 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))))) {
10740 if (EQSI (FLD (f_ccond), 0)) {
10741 if (NESI (tmp_tmp, 0)) {
10742   {
10743     USI opval = GET_H_SPR (((UINT) 272));
10744     sim_queue_pc_write (current_cpu, opval);
10745     written |= (1 << 6);
10746     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10747   }
10748 }
10749 } else {
10750 if (EQSI (tmp_tmp, 0)) {
10751   {
10752     USI opval = GET_H_SPR (((UINT) 272));
10753     sim_queue_pc_write (current_cpu, opval);
10754     written |= (1 << 6);
10755     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10756   }
10757 }
10758 }
10759 }
10760 }
10761 }
10762
10763   abuf->written = written;
10764   return vpc;
10765 #undef FLD
10766 }
10767
10768 /* fcblglr: fcblglr$pack $FCCi_2,$ccond,$hint */
10769
10770 static SEM_PC
10771 SEM_FN_NAME (frvbf,fcblglr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10772 {
10773 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10774   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10775   int UNUSED written = 0;
10776   IADDR UNUSED pc = abuf->addr;
10777   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10778
10779 {
10780 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10781 {
10782   SI tmp_tmp;
10783   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10784   {
10785     USI opval = tmp_tmp;
10786     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10787     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10788   }
10789 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)))) {
10790 if (EQSI (FLD (f_ccond), 0)) {
10791 if (NESI (tmp_tmp, 0)) {
10792   {
10793     USI opval = GET_H_SPR (((UINT) 272));
10794     sim_queue_pc_write (current_cpu, opval);
10795     written |= (1 << 6);
10796     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10797   }
10798 }
10799 } else {
10800 if (EQSI (tmp_tmp, 0)) {
10801   {
10802     USI opval = GET_H_SPR (((UINT) 272));
10803     sim_queue_pc_write (current_cpu, opval);
10804     written |= (1 << 6);
10805     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10806   }
10807 }
10808 }
10809 }
10810 }
10811 }
10812
10813   abuf->written = written;
10814   return vpc;
10815 #undef FLD
10816 }
10817
10818 /* fcbuelr: fcbuelr$pack $FCCi_2,$ccond,$hint */
10819
10820 static SEM_PC
10821 SEM_FN_NAME (frvbf,fcbuelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10822 {
10823 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10824   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10825   int UNUSED written = 0;
10826   IADDR UNUSED pc = abuf->addr;
10827   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10828
10829 {
10830 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10831 {
10832   SI tmp_tmp;
10833   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10834   {
10835     USI opval = tmp_tmp;
10836     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10837     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10838   }
10839 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
10840 if (EQSI (FLD (f_ccond), 0)) {
10841 if (NESI (tmp_tmp, 0)) {
10842   {
10843     USI opval = GET_H_SPR (((UINT) 272));
10844     sim_queue_pc_write (current_cpu, opval);
10845     written |= (1 << 6);
10846     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10847   }
10848 }
10849 } else {
10850 if (EQSI (tmp_tmp, 0)) {
10851   {
10852     USI opval = GET_H_SPR (((UINT) 272));
10853     sim_queue_pc_write (current_cpu, opval);
10854     written |= (1 << 6);
10855     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10856   }
10857 }
10858 }
10859 }
10860 }
10861 }
10862
10863   abuf->written = written;
10864   return vpc;
10865 #undef FLD
10866 }
10867
10868 /* fcbullr: fcbullr$pack $FCCi_2,$ccond,$hint */
10869
10870 static SEM_PC
10871 SEM_FN_NAME (frvbf,fcbullr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10872 {
10873 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10874   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10875   int UNUSED written = 0;
10876   IADDR UNUSED pc = abuf->addr;
10877   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10878
10879 {
10880 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10881 {
10882   SI tmp_tmp;
10883   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10884   {
10885     USI opval = tmp_tmp;
10886     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10887     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10888   }
10889 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
10890 if (EQSI (FLD (f_ccond), 0)) {
10891 if (NESI (tmp_tmp, 0)) {
10892   {
10893     USI opval = GET_H_SPR (((UINT) 272));
10894     sim_queue_pc_write (current_cpu, opval);
10895     written |= (1 << 6);
10896     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10897   }
10898 }
10899 } else {
10900 if (EQSI (tmp_tmp, 0)) {
10901   {
10902     USI opval = GET_H_SPR (((UINT) 272));
10903     sim_queue_pc_write (current_cpu, opval);
10904     written |= (1 << 6);
10905     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10906   }
10907 }
10908 }
10909 }
10910 }
10911 }
10912
10913   abuf->written = written;
10914   return vpc;
10915 #undef FLD
10916 }
10917
10918 /* fcbgelr: fcbgelr$pack $FCCi_2,$ccond,$hint */
10919
10920 static SEM_PC
10921 SEM_FN_NAME (frvbf,fcbgelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10922 {
10923 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10924   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10925   int UNUSED written = 0;
10926   IADDR UNUSED pc = abuf->addr;
10927   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10928
10929 {
10930 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10931 {
10932   SI tmp_tmp;
10933   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10934   {
10935     USI opval = tmp_tmp;
10936     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10937     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10938   }
10939 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)))) {
10940 if (EQSI (FLD (f_ccond), 0)) {
10941 if (NESI (tmp_tmp, 0)) {
10942   {
10943     USI opval = GET_H_SPR (((UINT) 272));
10944     sim_queue_pc_write (current_cpu, opval);
10945     written |= (1 << 6);
10946     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10947   }
10948 }
10949 } else {
10950 if (EQSI (tmp_tmp, 0)) {
10951   {
10952     USI opval = GET_H_SPR (((UINT) 272));
10953     sim_queue_pc_write (current_cpu, opval);
10954     written |= (1 << 6);
10955     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10956   }
10957 }
10958 }
10959 }
10960 }
10961 }
10962
10963   abuf->written = written;
10964   return vpc;
10965 #undef FLD
10966 }
10967
10968 /* fcbltlr: fcbltlr$pack $FCCi_2,$ccond,$hint */
10969
10970 static SEM_PC
10971 SEM_FN_NAME (frvbf,fcbltlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10972 {
10973 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10974   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10975   int UNUSED written = 0;
10976   IADDR UNUSED pc = abuf->addr;
10977   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10978
10979 {
10980 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10981 {
10982   SI tmp_tmp;
10983   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10984   {
10985     USI opval = tmp_tmp;
10986     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10987     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10988   }
10989 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2))) {
10990 if (EQSI (FLD (f_ccond), 0)) {
10991 if (NESI (tmp_tmp, 0)) {
10992   {
10993     USI opval = GET_H_SPR (((UINT) 272));
10994     sim_queue_pc_write (current_cpu, opval);
10995     written |= (1 << 6);
10996     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10997   }
10998 }
10999 } else {
11000 if (EQSI (tmp_tmp, 0)) {
11001   {
11002     USI opval = GET_H_SPR (((UINT) 272));
11003     sim_queue_pc_write (current_cpu, opval);
11004     written |= (1 << 6);
11005     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11006   }
11007 }
11008 }
11009 }
11010 }
11011 }
11012
11013   abuf->written = written;
11014   return vpc;
11015 #undef FLD
11016 }
11017
11018 /* fcbugelr: fcbugelr$pack $FCCi_2,$ccond,$hint */
11019
11020 static SEM_PC
11021 SEM_FN_NAME (frvbf,fcbugelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11022 {
11023 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
11024   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11025   int UNUSED written = 0;
11026   IADDR UNUSED pc = abuf->addr;
11027   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11028
11029 {
11030 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
11031 {
11032   SI tmp_tmp;
11033   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
11034   {
11035     USI opval = tmp_tmp;
11036     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
11037     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
11038   }
11039 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))))) {
11040 if (EQSI (FLD (f_ccond), 0)) {
11041 if (NESI (tmp_tmp, 0)) {
11042   {
11043     USI opval = GET_H_SPR (((UINT) 272));
11044     sim_queue_pc_write (current_cpu, opval);
11045     written |= (1 << 6);
11046     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11047   }
11048 }
11049 } else {
11050 if (EQSI (tmp_tmp, 0)) {
11051   {
11052     USI opval = GET_H_SPR (((UINT) 272));
11053     sim_queue_pc_write (current_cpu, opval);
11054     written |= (1 << 6);
11055     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11056   }
11057 }
11058 }
11059 }
11060 }
11061 }
11062
11063   abuf->written = written;
11064   return vpc;
11065 #undef FLD
11066 }
11067
11068 /* fcbuglr: fcbuglr$pack $FCCi_2,$ccond,$hint */
11069
11070 static SEM_PC
11071 SEM_FN_NAME (frvbf,fcbuglr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11072 {
11073 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
11074   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11075   int UNUSED written = 0;
11076   IADDR UNUSED pc = abuf->addr;
11077   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11078
11079 {
11080 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
11081 {
11082   SI tmp_tmp;
11083   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
11084   {
11085     USI opval = tmp_tmp;
11086     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
11087     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
11088   }
11089 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
11090 if (EQSI (FLD (f_ccond), 0)) {
11091 if (NESI (tmp_tmp, 0)) {
11092   {
11093     USI opval = GET_H_SPR (((UINT) 272));
11094     sim_queue_pc_write (current_cpu, opval);
11095     written |= (1 << 6);
11096     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11097   }
11098 }
11099 } else {
11100 if (EQSI (tmp_tmp, 0)) {
11101   {
11102     USI opval = GET_H_SPR (((UINT) 272));
11103     sim_queue_pc_write (current_cpu, opval);
11104     written |= (1 << 6);
11105     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11106   }
11107 }
11108 }
11109 }
11110 }
11111 }
11112
11113   abuf->written = written;
11114   return vpc;
11115 #undef FLD
11116 }
11117
11118 /* fcblelr: fcblelr$pack $FCCi_2,$ccond,$hint */
11119
11120 static SEM_PC
11121 SEM_FN_NAME (frvbf,fcblelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11122 {
11123 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
11124   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11125   int UNUSED written = 0;
11126   IADDR UNUSED pc = abuf->addr;
11127   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11128
11129 {
11130 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
11131 {
11132   SI tmp_tmp;
11133   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
11134   {
11135     USI opval = tmp_tmp;
11136     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
11137     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
11138   }
11139 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)))) {
11140 if (EQSI (FLD (f_ccond), 0)) {
11141 if (NESI (tmp_tmp, 0)) {
11142   {
11143     USI opval = GET_H_SPR (((UINT) 272));
11144     sim_queue_pc_write (current_cpu, opval);
11145     written |= (1 << 6);
11146     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11147   }
11148 }
11149 } else {
11150 if (EQSI (tmp_tmp, 0)) {
11151   {
11152     USI opval = GET_H_SPR (((UINT) 272));
11153     sim_queue_pc_write (current_cpu, opval);
11154     written |= (1 << 6);
11155     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11156   }
11157 }
11158 }
11159 }
11160 }
11161 }
11162
11163   abuf->written = written;
11164   return vpc;
11165 #undef FLD
11166 }
11167
11168 /* fcbgtlr: fcbgtlr$pack $FCCi_2,$ccond,$hint */
11169
11170 static SEM_PC
11171 SEM_FN_NAME (frvbf,fcbgtlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11172 {
11173 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
11174   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11175   int UNUSED written = 0;
11176   IADDR UNUSED pc = abuf->addr;
11177   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11178
11179 {
11180 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
11181 {
11182   SI tmp_tmp;
11183   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
11184   {
11185     USI opval = tmp_tmp;
11186     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
11187     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
11188   }
11189 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1))) {
11190 if (EQSI (FLD (f_ccond), 0)) {
11191 if (NESI (tmp_tmp, 0)) {
11192   {
11193     USI opval = GET_H_SPR (((UINT) 272));
11194     sim_queue_pc_write (current_cpu, opval);
11195     written |= (1 << 6);
11196     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11197   }
11198 }
11199 } else {
11200 if (EQSI (tmp_tmp, 0)) {
11201   {
11202     USI opval = GET_H_SPR (((UINT) 272));
11203     sim_queue_pc_write (current_cpu, opval);
11204     written |= (1 << 6);
11205     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11206   }
11207 }
11208 }
11209 }
11210 }
11211 }
11212
11213   abuf->written = written;
11214   return vpc;
11215 #undef FLD
11216 }
11217
11218 /* fcbulelr: fcbulelr$pack $FCCi_2,$ccond,$hint */
11219
11220 static SEM_PC
11221 SEM_FN_NAME (frvbf,fcbulelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11222 {
11223 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
11224   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11225   int UNUSED written = 0;
11226   IADDR UNUSED pc = abuf->addr;
11227   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11228
11229 {
11230 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
11231 {
11232   SI tmp_tmp;
11233   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
11234   {
11235     USI opval = tmp_tmp;
11236     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
11237     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
11238   }
11239 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))))) {
11240 if (EQSI (FLD (f_ccond), 0)) {
11241 if (NESI (tmp_tmp, 0)) {
11242   {
11243     USI opval = GET_H_SPR (((UINT) 272));
11244     sim_queue_pc_write (current_cpu, opval);
11245     written |= (1 << 6);
11246     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11247   }
11248 }
11249 } else {
11250 if (EQSI (tmp_tmp, 0)) {
11251   {
11252     USI opval = GET_H_SPR (((UINT) 272));
11253     sim_queue_pc_write (current_cpu, opval);
11254     written |= (1 << 6);
11255     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11256   }
11257 }
11258 }
11259 }
11260 }
11261 }
11262
11263   abuf->written = written;
11264   return vpc;
11265 #undef FLD
11266 }
11267
11268 /* fcbulr: fcbulr$pack $FCCi_2,$ccond,$hint */
11269
11270 static SEM_PC
11271 SEM_FN_NAME (frvbf,fcbulr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11272 {
11273 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
11274   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11275   int UNUSED written = 0;
11276   IADDR UNUSED pc = abuf->addr;
11277   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11278
11279 {
11280 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
11281 {
11282   SI tmp_tmp;
11283   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
11284   {
11285     USI opval = tmp_tmp;
11286     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
11287     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
11288   }
11289 if (TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1))) {
11290 if (EQSI (FLD (f_ccond), 0)) {
11291 if (NESI (tmp_tmp, 0)) {
11292   {
11293     USI opval = GET_H_SPR (((UINT) 272));
11294     sim_queue_pc_write (current_cpu, opval);
11295     written |= (1 << 6);
11296     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11297   }
11298 }
11299 } else {
11300 if (EQSI (tmp_tmp, 0)) {
11301   {
11302     USI opval = GET_H_SPR (((UINT) 272));
11303     sim_queue_pc_write (current_cpu, opval);
11304     written |= (1 << 6);
11305     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11306   }
11307 }
11308 }
11309 }
11310 }
11311 }
11312
11313   abuf->written = written;
11314   return vpc;
11315 #undef FLD
11316 }
11317
11318 /* fcbolr: fcbolr$pack $FCCi_2,$ccond,$hint */
11319
11320 static SEM_PC
11321 SEM_FN_NAME (frvbf,fcbolr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11322 {
11323 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
11324   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11325   int UNUSED written = 0;
11326   IADDR UNUSED pc = abuf->addr;
11327   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11328
11329 {
11330 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
11331 {
11332   SI tmp_tmp;
11333   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
11334   {
11335     USI opval = tmp_tmp;
11336     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
11337     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
11338   }
11339 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))))) {
11340 if (EQSI (FLD (f_ccond), 0)) {
11341 if (NESI (tmp_tmp, 0)) {
11342   {
11343     USI opval = GET_H_SPR (((UINT) 272));
11344     sim_queue_pc_write (current_cpu, opval);
11345     written |= (1 << 6);
11346     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11347   }
11348 }
11349 } else {
11350 if (EQSI (tmp_tmp, 0)) {
11351   {
11352     USI opval = GET_H_SPR (((UINT) 272));
11353     sim_queue_pc_write (current_cpu, opval);
11354     written |= (1 << 6);
11355     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11356   }
11357 }
11358 }
11359 }
11360 }
11361 }
11362
11363   abuf->written = written;
11364   return vpc;
11365 #undef FLD
11366 }
11367
11368 /* jmpl: jmpl$pack @($GRi,$GRj) */
11369
11370 static SEM_PC
11371 SEM_FN_NAME (frvbf,jmpl) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11372 {
11373 #define FLD(f) abuf->fields.sfmt_cjmpl.f
11374   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11375   int UNUSED written = 0;
11376   IADDR UNUSED pc = abuf->addr;
11377   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11378
11379 {
11380 if (EQSI (FLD (f_LI), 1)) {
11381 frvbf_set_write_next_vliw_addr_to_LR (current_cpu, 1);
11382 }
11383   {
11384     USI opval = ANDSI (ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), 0xfffffffc);
11385     sim_queue_pc_write (current_cpu, opval);
11386     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11387   }
11388 frvbf_model_branch (current_cpu, pc, 2);
11389 }
11390
11391   return vpc;
11392 #undef FLD
11393 }
11394
11395 /* calll: calll$pack @($GRi,$GRj) */
11396
11397 static SEM_PC
11398 SEM_FN_NAME (frvbf,calll) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11399 {
11400 #define FLD(f) abuf->fields.sfmt_cjmpl.f
11401   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11402   int UNUSED written = 0;
11403   IADDR UNUSED pc = abuf->addr;
11404   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11405
11406 {
11407 if (EQSI (FLD (f_LI), 1)) {
11408 frvbf_set_write_next_vliw_addr_to_LR (current_cpu, 1);
11409 }
11410   {
11411     USI opval = ANDSI (ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), 0xfffffffc);
11412     sim_queue_pc_write (current_cpu, opval);
11413     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11414   }
11415 frvbf_model_branch (current_cpu, pc, 2);
11416 }
11417
11418   return vpc;
11419 #undef FLD
11420 }
11421
11422 /* jmpil: jmpil$pack @($GRi,$s12) */
11423
11424 static SEM_PC
11425 SEM_FN_NAME (frvbf,jmpil) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11426 {
11427 #define FLD(f) abuf->fields.sfmt_jmpil.f
11428   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11429   int UNUSED written = 0;
11430   IADDR UNUSED pc = abuf->addr;
11431   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11432
11433 {
11434 if (EQSI (FLD (f_LI), 1)) {
11435 frvbf_set_write_next_vliw_addr_to_LR (current_cpu, 1);
11436 }
11437   {
11438     USI opval = ANDSI (ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)), 0xfffffffc);
11439     sim_queue_pc_write (current_cpu, opval);
11440     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11441   }
11442 frvbf_model_branch (current_cpu, pc, 2);
11443 }
11444
11445   return vpc;
11446 #undef FLD
11447 }
11448
11449 /* callil: callil$pack @($GRi,$s12) */
11450
11451 static SEM_PC
11452 SEM_FN_NAME (frvbf,callil) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11453 {
11454 #define FLD(f) abuf->fields.sfmt_jmpil.f
11455   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11456   int UNUSED written = 0;
11457   IADDR UNUSED pc = abuf->addr;
11458   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11459
11460 {
11461 if (EQSI (FLD (f_LI), 1)) {
11462 frvbf_set_write_next_vliw_addr_to_LR (current_cpu, 1);
11463 }
11464   {
11465     USI opval = ANDSI (ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)), 0xfffffffc);
11466     sim_queue_pc_write (current_cpu, opval);
11467     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11468   }
11469 frvbf_model_branch (current_cpu, pc, 2);
11470 }
11471
11472   return vpc;
11473 #undef FLD
11474 }
11475
11476 /* call: call$pack $label24 */
11477
11478 static SEM_PC
11479 SEM_FN_NAME (frvbf,call) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11480 {
11481 #define FLD(f) abuf->fields.sfmt_call.f
11482   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11483   int UNUSED written = 0;
11484   IADDR UNUSED pc = abuf->addr;
11485   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11486
11487 {
11488 frvbf_set_write_next_vliw_addr_to_LR (current_cpu, 1);
11489   {
11490     USI opval = FLD (i_label24);
11491     sim_queue_pc_write (current_cpu, opval);
11492     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11493   }
11494 frvbf_model_branch (current_cpu, pc, 2);
11495 }
11496
11497   return vpc;
11498 #undef FLD
11499 }
11500
11501 /* rett: rett$pack $debug */
11502
11503 static SEM_PC
11504 SEM_FN_NAME (frvbf,rett) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11505 {
11506 #define FLD(f) abuf->fields.sfmt_rett.f
11507   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11508   int UNUSED written = 0;
11509   IADDR UNUSED pc = abuf->addr;
11510   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11511
11512 {
11513   {
11514     USI opval = frv_rett (current_cpu, pc, FLD (f_debug));
11515     sim_queue_pc_write (current_cpu, opval);
11516     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11517   }
11518 frvbf_model_branch (current_cpu, pc, 2);
11519 }
11520
11521   return vpc;
11522 #undef FLD
11523 }
11524
11525 /* rei: rei$pack $eir */
11526
11527 static SEM_PC
11528 SEM_FN_NAME (frvbf,rei) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11529 {
11530 #define FLD(f) abuf->fields.fmt_empty.f
11531   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11532   int UNUSED written = 0;
11533   IADDR UNUSED pc = abuf->addr;
11534   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11535
11536 ((void) 0); /*nop*/
11537
11538   return vpc;
11539 #undef FLD
11540 }
11541
11542 /* tra: tra$pack $GRi,$GRj */
11543
11544 static SEM_PC
11545 SEM_FN_NAME (frvbf,tra) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11546 {
11547 #define FLD(f) abuf->fields.sfmt_ftne.f
11548   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11549   int UNUSED written = 0;
11550   IADDR UNUSED pc = abuf->addr;
11551   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11552
11553 {
11554 ; /*clobber*/
11555 ; /*clobber*/
11556 ; /*clobber*/
11557 ; /*clobber*/
11558 if (NEBI (CPU (h_psr_esr), 0)) {
11559 {
11560 ; /*clobber*/
11561 ; /*clobber*/
11562 ; /*clobber*/
11563 ; /*clobber*/
11564 }
11565 }
11566 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11567 }
11568
11569   abuf->written = written;
11570   return vpc;
11571 #undef FLD
11572 }
11573
11574 /* tno: tno$pack */
11575
11576 static SEM_PC
11577 SEM_FN_NAME (frvbf,tno) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11578 {
11579 #define FLD(f) abuf->fields.fmt_empty.f
11580   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11581   int UNUSED written = 0;
11582   IADDR UNUSED pc = abuf->addr;
11583   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11584
11585 ((void) 0); /*nop*/
11586
11587   return vpc;
11588 #undef FLD
11589 }
11590
11591 /* teq: teq$pack $ICCi_2,$GRi,$GRj */
11592
11593 static SEM_PC
11594 SEM_FN_NAME (frvbf,teq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11595 {
11596 #define FLD(f) abuf->fields.sfmt_teq.f
11597   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11598   int UNUSED written = 0;
11599   IADDR UNUSED pc = abuf->addr;
11600   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11601
11602 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2))) {
11603 {
11604 ; /*clobber*/
11605 ; /*clobber*/
11606 ; /*clobber*/
11607 ; /*clobber*/
11608 if (NEBI (CPU (h_psr_esr), 0)) {
11609 {
11610 ; /*clobber*/
11611 ; /*clobber*/
11612 ; /*clobber*/
11613 ; /*clobber*/
11614 }
11615 }
11616 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11617 }
11618 }
11619
11620   abuf->written = written;
11621   return vpc;
11622 #undef FLD
11623 }
11624
11625 /* tne: tne$pack $ICCi_2,$GRi,$GRj */
11626
11627 static SEM_PC
11628 SEM_FN_NAME (frvbf,tne) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11629 {
11630 #define FLD(f) abuf->fields.sfmt_teq.f
11631   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11632   int UNUSED written = 0;
11633   IADDR UNUSED pc = abuf->addr;
11634   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11635
11636 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)))) {
11637 {
11638 ; /*clobber*/
11639 ; /*clobber*/
11640 ; /*clobber*/
11641 ; /*clobber*/
11642 if (NEBI (CPU (h_psr_esr), 0)) {
11643 {
11644 ; /*clobber*/
11645 ; /*clobber*/
11646 ; /*clobber*/
11647 ; /*clobber*/
11648 }
11649 }
11650 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11651 }
11652 }
11653
11654   abuf->written = written;
11655   return vpc;
11656 #undef FLD
11657 }
11658
11659 /* tle: tle$pack $ICCi_2,$GRi,$GRj */
11660
11661 static SEM_PC
11662 SEM_FN_NAME (frvbf,tle) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11663 {
11664 #define FLD(f) abuf->fields.sfmt_teq.f
11665   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11666   int UNUSED written = 0;
11667   IADDR UNUSED pc = abuf->addr;
11668   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11669
11670 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))))) {
11671 {
11672 ; /*clobber*/
11673 ; /*clobber*/
11674 ; /*clobber*/
11675 ; /*clobber*/
11676 if (NEBI (CPU (h_psr_esr), 0)) {
11677 {
11678 ; /*clobber*/
11679 ; /*clobber*/
11680 ; /*clobber*/
11681 ; /*clobber*/
11682 }
11683 }
11684 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11685 }
11686 }
11687
11688   abuf->written = written;
11689   return vpc;
11690 #undef FLD
11691 }
11692
11693 /* tgt: tgt$pack $ICCi_2,$GRi,$GRj */
11694
11695 static SEM_PC
11696 SEM_FN_NAME (frvbf,tgt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11697 {
11698 #define FLD(f) abuf->fields.sfmt_teq.f
11699   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11700   int UNUSED written = 0;
11701   IADDR UNUSED pc = abuf->addr;
11702   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11703
11704 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)))))) {
11705 {
11706 ; /*clobber*/
11707 ; /*clobber*/
11708 ; /*clobber*/
11709 ; /*clobber*/
11710 if (NEBI (CPU (h_psr_esr), 0)) {
11711 {
11712 ; /*clobber*/
11713 ; /*clobber*/
11714 ; /*clobber*/
11715 ; /*clobber*/
11716 }
11717 }
11718 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11719 }
11720 }
11721
11722   abuf->written = written;
11723   return vpc;
11724 #undef FLD
11725 }
11726
11727 /* tlt: tlt$pack $ICCi_2,$GRi,$GRj */
11728
11729 static SEM_PC
11730 SEM_FN_NAME (frvbf,tlt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11731 {
11732 #define FLD(f) abuf->fields.sfmt_teq.f
11733   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11734   int UNUSED written = 0;
11735   IADDR UNUSED pc = abuf->addr;
11736   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11737
11738 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)))) {
11739 {
11740 ; /*clobber*/
11741 ; /*clobber*/
11742 ; /*clobber*/
11743 ; /*clobber*/
11744 if (NEBI (CPU (h_psr_esr), 0)) {
11745 {
11746 ; /*clobber*/
11747 ; /*clobber*/
11748 ; /*clobber*/
11749 ; /*clobber*/
11750 }
11751 }
11752 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11753 }
11754 }
11755
11756   abuf->written = written;
11757   return vpc;
11758 #undef FLD
11759 }
11760
11761 /* tge: tge$pack $ICCi_2,$GRi,$GRj */
11762
11763 static SEM_PC
11764 SEM_FN_NAME (frvbf,tge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11765 {
11766 #define FLD(f) abuf->fields.sfmt_teq.f
11767   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11768   int UNUSED written = 0;
11769   IADDR UNUSED pc = abuf->addr;
11770   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11771
11772 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))))) {
11773 {
11774 ; /*clobber*/
11775 ; /*clobber*/
11776 ; /*clobber*/
11777 ; /*clobber*/
11778 if (NEBI (CPU (h_psr_esr), 0)) {
11779 {
11780 ; /*clobber*/
11781 ; /*clobber*/
11782 ; /*clobber*/
11783 ; /*clobber*/
11784 }
11785 }
11786 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11787 }
11788 }
11789
11790   abuf->written = written;
11791   return vpc;
11792 #undef FLD
11793 }
11794
11795 /* tls: tls$pack $ICCi_2,$GRi,$GRj */
11796
11797 static SEM_PC
11798 SEM_FN_NAME (frvbf,tls) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11799 {
11800 #define FLD(f) abuf->fields.sfmt_teq.f
11801   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11802   int UNUSED written = 0;
11803   IADDR UNUSED pc = abuf->addr;
11804   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11805
11806 if (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)))) {
11807 {
11808 ; /*clobber*/
11809 ; /*clobber*/
11810 ; /*clobber*/
11811 ; /*clobber*/
11812 if (NEBI (CPU (h_psr_esr), 0)) {
11813 {
11814 ; /*clobber*/
11815 ; /*clobber*/
11816 ; /*clobber*/
11817 ; /*clobber*/
11818 }
11819 }
11820 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11821 }
11822 }
11823
11824   abuf->written = written;
11825   return vpc;
11826 #undef FLD
11827 }
11828
11829 /* thi: thi$pack $ICCi_2,$GRi,$GRj */
11830
11831 static SEM_PC
11832 SEM_FN_NAME (frvbf,thi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11833 {
11834 #define FLD(f) abuf->fields.sfmt_teq.f
11835   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11836   int UNUSED written = 0;
11837   IADDR UNUSED pc = abuf->addr;
11838   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11839
11840 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))))) {
11841 {
11842 ; /*clobber*/
11843 ; /*clobber*/
11844 ; /*clobber*/
11845 ; /*clobber*/
11846 if (NEBI (CPU (h_psr_esr), 0)) {
11847 {
11848 ; /*clobber*/
11849 ; /*clobber*/
11850 ; /*clobber*/
11851 ; /*clobber*/
11852 }
11853 }
11854 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11855 }
11856 }
11857
11858   abuf->written = written;
11859   return vpc;
11860 #undef FLD
11861 }
11862
11863 /* tc: tc$pack $ICCi_2,$GRi,$GRj */
11864
11865 static SEM_PC
11866 SEM_FN_NAME (frvbf,tc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11867 {
11868 #define FLD(f) abuf->fields.sfmt_teq.f
11869   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11870   int UNUSED written = 0;
11871   IADDR UNUSED pc = abuf->addr;
11872   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11873
11874 if (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1))) {
11875 {
11876 ; /*clobber*/
11877 ; /*clobber*/
11878 ; /*clobber*/
11879 ; /*clobber*/
11880 if (NEBI (CPU (h_psr_esr), 0)) {
11881 {
11882 ; /*clobber*/
11883 ; /*clobber*/
11884 ; /*clobber*/
11885 ; /*clobber*/
11886 }
11887 }
11888 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11889 }
11890 }
11891
11892   abuf->written = written;
11893   return vpc;
11894 #undef FLD
11895 }
11896
11897 /* tnc: tnc$pack $ICCi_2,$GRi,$GRj */
11898
11899 static SEM_PC
11900 SEM_FN_NAME (frvbf,tnc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11901 {
11902 #define FLD(f) abuf->fields.sfmt_teq.f
11903   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11904   int UNUSED written = 0;
11905   IADDR UNUSED pc = abuf->addr;
11906   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11907
11908 if (NOTBI (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)))) {
11909 {
11910 ; /*clobber*/
11911 ; /*clobber*/
11912 ; /*clobber*/
11913 ; /*clobber*/
11914 if (NEBI (CPU (h_psr_esr), 0)) {
11915 {
11916 ; /*clobber*/
11917 ; /*clobber*/
11918 ; /*clobber*/
11919 ; /*clobber*/
11920 }
11921 }
11922 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11923 }
11924 }
11925
11926   abuf->written = written;
11927   return vpc;
11928 #undef FLD
11929 }
11930
11931 /* tn: tn$pack $ICCi_2,$GRi,$GRj */
11932
11933 static SEM_PC
11934 SEM_FN_NAME (frvbf,tn) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11935 {
11936 #define FLD(f) abuf->fields.sfmt_teq.f
11937   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11938   int UNUSED written = 0;
11939   IADDR UNUSED pc = abuf->addr;
11940   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11941
11942 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3))) {
11943 {
11944 ; /*clobber*/
11945 ; /*clobber*/
11946 ; /*clobber*/
11947 ; /*clobber*/
11948 if (NEBI (CPU (h_psr_esr), 0)) {
11949 {
11950 ; /*clobber*/
11951 ; /*clobber*/
11952 ; /*clobber*/
11953 ; /*clobber*/
11954 }
11955 }
11956 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11957 }
11958 }
11959
11960   abuf->written = written;
11961   return vpc;
11962 #undef FLD
11963 }
11964
11965 /* tp: tp$pack $ICCi_2,$GRi,$GRj */
11966
11967 static SEM_PC
11968 SEM_FN_NAME (frvbf,tp) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11969 {
11970 #define FLD(f) abuf->fields.sfmt_teq.f
11971   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11972   int UNUSED written = 0;
11973   IADDR UNUSED pc = abuf->addr;
11974   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11975
11976 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3)))) {
11977 {
11978 ; /*clobber*/
11979 ; /*clobber*/
11980 ; /*clobber*/
11981 ; /*clobber*/
11982 if (NEBI (CPU (h_psr_esr), 0)) {
11983 {
11984 ; /*clobber*/
11985 ; /*clobber*/
11986 ; /*clobber*/
11987 ; /*clobber*/
11988 }
11989 }
11990 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11991 }
11992 }
11993
11994   abuf->written = written;
11995   return vpc;
11996 #undef FLD
11997 }
11998
11999 /* tv: tv$pack $ICCi_2,$GRi,$GRj */
12000
12001 static SEM_PC
12002 SEM_FN_NAME (frvbf,tv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12003 {
12004 #define FLD(f) abuf->fields.sfmt_teq.f
12005   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12006   int UNUSED written = 0;
12007   IADDR UNUSED pc = abuf->addr;
12008   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12009
12010 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1))) {
12011 {
12012 ; /*clobber*/
12013 ; /*clobber*/
12014 ; /*clobber*/
12015 ; /*clobber*/
12016 if (NEBI (CPU (h_psr_esr), 0)) {
12017 {
12018 ; /*clobber*/
12019 ; /*clobber*/
12020 ; /*clobber*/
12021 ; /*clobber*/
12022 }
12023 }
12024 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12025 }
12026 }
12027
12028   abuf->written = written;
12029   return vpc;
12030 #undef FLD
12031 }
12032
12033 /* tnv: tnv$pack $ICCi_2,$GRi,$GRj */
12034
12035 static SEM_PC
12036 SEM_FN_NAME (frvbf,tnv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12037 {
12038 #define FLD(f) abuf->fields.sfmt_teq.f
12039   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12040   int UNUSED written = 0;
12041   IADDR UNUSED pc = abuf->addr;
12042   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12043
12044 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1)))) {
12045 {
12046 ; /*clobber*/
12047 ; /*clobber*/
12048 ; /*clobber*/
12049 ; /*clobber*/
12050 if (NEBI (CPU (h_psr_esr), 0)) {
12051 {
12052 ; /*clobber*/
12053 ; /*clobber*/
12054 ; /*clobber*/
12055 ; /*clobber*/
12056 }
12057 }
12058 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12059 }
12060 }
12061
12062   abuf->written = written;
12063   return vpc;
12064 #undef FLD
12065 }
12066
12067 /* ftra: ftra$pack $GRi,$GRj */
12068
12069 static SEM_PC
12070 SEM_FN_NAME (frvbf,ftra) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12071 {
12072 #define FLD(f) abuf->fields.sfmt_ftne.f
12073   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12074   int UNUSED written = 0;
12075   IADDR UNUSED pc = abuf->addr;
12076   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12077
12078 {
12079 ; /*clobber*/
12080 ; /*clobber*/
12081 ; /*clobber*/
12082 ; /*clobber*/
12083 if (NEBI (CPU (h_psr_esr), 0)) {
12084 {
12085 ; /*clobber*/
12086 ; /*clobber*/
12087 ; /*clobber*/
12088 ; /*clobber*/
12089 }
12090 }
12091 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12092 }
12093
12094   abuf->written = written;
12095   return vpc;
12096 #undef FLD
12097 }
12098
12099 /* ftno: ftno$pack */
12100
12101 static SEM_PC
12102 SEM_FN_NAME (frvbf,ftno) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12103 {
12104 #define FLD(f) abuf->fields.fmt_empty.f
12105   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12106   int UNUSED written = 0;
12107   IADDR UNUSED pc = abuf->addr;
12108   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12109
12110 ((void) 0); /*nop*/
12111
12112   return vpc;
12113 #undef FLD
12114 }
12115
12116 /* ftne: ftne$pack $FCCi_2,$GRi,$GRj */
12117
12118 static SEM_PC
12119 SEM_FN_NAME (frvbf,ftne) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12120 {
12121 #define FLD(f) abuf->fields.sfmt_ftne.f
12122   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12123   int UNUSED written = 0;
12124   IADDR UNUSED pc = abuf->addr;
12125   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12126
12127 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))))) {
12128 {
12129 ; /*clobber*/
12130 ; /*clobber*/
12131 ; /*clobber*/
12132 ; /*clobber*/
12133 if (NEBI (CPU (h_psr_esr), 0)) {
12134 {
12135 ; /*clobber*/
12136 ; /*clobber*/
12137 ; /*clobber*/
12138 ; /*clobber*/
12139 }
12140 }
12141 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12142 }
12143 }
12144
12145   abuf->written = written;
12146   return vpc;
12147 #undef FLD
12148 }
12149
12150 /* fteq: fteq$pack $FCCi_2,$GRi,$GRj */
12151
12152 static SEM_PC
12153 SEM_FN_NAME (frvbf,fteq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12154 {
12155 #define FLD(f) abuf->fields.sfmt_ftne.f
12156   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12157   int UNUSED written = 0;
12158   IADDR UNUSED pc = abuf->addr;
12159   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12160
12161 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3))) {
12162 {
12163 ; /*clobber*/
12164 ; /*clobber*/
12165 ; /*clobber*/
12166 ; /*clobber*/
12167 if (NEBI (CPU (h_psr_esr), 0)) {
12168 {
12169 ; /*clobber*/
12170 ; /*clobber*/
12171 ; /*clobber*/
12172 ; /*clobber*/
12173 }
12174 }
12175 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12176 }
12177 }
12178
12179   abuf->written = written;
12180   return vpc;
12181 #undef FLD
12182 }
12183
12184 /* ftlg: ftlg$pack $FCCi_2,$GRi,$GRj */
12185
12186 static SEM_PC
12187 SEM_FN_NAME (frvbf,ftlg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12188 {
12189 #define FLD(f) abuf->fields.sfmt_ftne.f
12190   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12191   int UNUSED written = 0;
12192   IADDR UNUSED pc = abuf->addr;
12193   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12194
12195 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)))) {
12196 {
12197 ; /*clobber*/
12198 ; /*clobber*/
12199 ; /*clobber*/
12200 ; /*clobber*/
12201 if (NEBI (CPU (h_psr_esr), 0)) {
12202 {
12203 ; /*clobber*/
12204 ; /*clobber*/
12205 ; /*clobber*/
12206 ; /*clobber*/
12207 }
12208 }
12209 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12210 }
12211 }
12212
12213   abuf->written = written;
12214   return vpc;
12215 #undef FLD
12216 }
12217
12218 /* ftue: ftue$pack $FCCi_2,$GRi,$GRj */
12219
12220 static SEM_PC
12221 SEM_FN_NAME (frvbf,ftue) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12222 {
12223 #define FLD(f) abuf->fields.sfmt_ftne.f
12224   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12225   int UNUSED written = 0;
12226   IADDR UNUSED pc = abuf->addr;
12227   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12228
12229 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
12230 {
12231 ; /*clobber*/
12232 ; /*clobber*/
12233 ; /*clobber*/
12234 ; /*clobber*/
12235 if (NEBI (CPU (h_psr_esr), 0)) {
12236 {
12237 ; /*clobber*/
12238 ; /*clobber*/
12239 ; /*clobber*/
12240 ; /*clobber*/
12241 }
12242 }
12243 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12244 }
12245 }
12246
12247   abuf->written = written;
12248   return vpc;
12249 #undef FLD
12250 }
12251
12252 /* ftul: ftul$pack $FCCi_2,$GRi,$GRj */
12253
12254 static SEM_PC
12255 SEM_FN_NAME (frvbf,ftul) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12256 {
12257 #define FLD(f) abuf->fields.sfmt_ftne.f
12258   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12259   int UNUSED written = 0;
12260   IADDR UNUSED pc = abuf->addr;
12261   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12262
12263 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
12264 {
12265 ; /*clobber*/
12266 ; /*clobber*/
12267 ; /*clobber*/
12268 ; /*clobber*/
12269 if (NEBI (CPU (h_psr_esr), 0)) {
12270 {
12271 ; /*clobber*/
12272 ; /*clobber*/
12273 ; /*clobber*/
12274 ; /*clobber*/
12275 }
12276 }
12277 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12278 }
12279 }
12280
12281   abuf->written = written;
12282   return vpc;
12283 #undef FLD
12284 }
12285
12286 /* ftge: ftge$pack $FCCi_2,$GRi,$GRj */
12287
12288 static SEM_PC
12289 SEM_FN_NAME (frvbf,ftge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12290 {
12291 #define FLD(f) abuf->fields.sfmt_ftne.f
12292   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12293   int UNUSED written = 0;
12294   IADDR UNUSED pc = abuf->addr;
12295   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12296
12297 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)))) {
12298 {
12299 ; /*clobber*/
12300 ; /*clobber*/
12301 ; /*clobber*/
12302 ; /*clobber*/
12303 if (NEBI (CPU (h_psr_esr), 0)) {
12304 {
12305 ; /*clobber*/
12306 ; /*clobber*/
12307 ; /*clobber*/
12308 ; /*clobber*/
12309 }
12310 }
12311 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12312 }
12313 }
12314
12315   abuf->written = written;
12316   return vpc;
12317 #undef FLD
12318 }
12319
12320 /* ftlt: ftlt$pack $FCCi_2,$GRi,$GRj */
12321
12322 static SEM_PC
12323 SEM_FN_NAME (frvbf,ftlt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12324 {
12325 #define FLD(f) abuf->fields.sfmt_ftne.f
12326   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12327   int UNUSED written = 0;
12328   IADDR UNUSED pc = abuf->addr;
12329   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12330
12331 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2))) {
12332 {
12333 ; /*clobber*/
12334 ; /*clobber*/
12335 ; /*clobber*/
12336 ; /*clobber*/
12337 if (NEBI (CPU (h_psr_esr), 0)) {
12338 {
12339 ; /*clobber*/
12340 ; /*clobber*/
12341 ; /*clobber*/
12342 ; /*clobber*/
12343 }
12344 }
12345 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12346 }
12347 }
12348
12349   abuf->written = written;
12350   return vpc;
12351 #undef FLD
12352 }
12353
12354 /* ftuge: ftuge$pack $FCCi_2,$GRi,$GRj */
12355
12356 static SEM_PC
12357 SEM_FN_NAME (frvbf,ftuge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12358 {
12359 #define FLD(f) abuf->fields.sfmt_ftne.f
12360   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12361   int UNUSED written = 0;
12362   IADDR UNUSED pc = abuf->addr;
12363   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12364
12365 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))))) {
12366 {
12367 ; /*clobber*/
12368 ; /*clobber*/
12369 ; /*clobber*/
12370 ; /*clobber*/
12371 if (NEBI (CPU (h_psr_esr), 0)) {
12372 {
12373 ; /*clobber*/
12374 ; /*clobber*/
12375 ; /*clobber*/
12376 ; /*clobber*/
12377 }
12378 }
12379 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12380 }
12381 }
12382
12383   abuf->written = written;
12384   return vpc;
12385 #undef FLD
12386 }
12387
12388 /* ftug: ftug$pack $FCCi_2,$GRi,$GRj */
12389
12390 static SEM_PC
12391 SEM_FN_NAME (frvbf,ftug) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12392 {
12393 #define FLD(f) abuf->fields.sfmt_ftne.f
12394   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12395   int UNUSED written = 0;
12396   IADDR UNUSED pc = abuf->addr;
12397   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12398
12399 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
12400 {
12401 ; /*clobber*/
12402 ; /*clobber*/
12403 ; /*clobber*/
12404 ; /*clobber*/
12405 if (NEBI (CPU (h_psr_esr), 0)) {
12406 {
12407 ; /*clobber*/
12408 ; /*clobber*/
12409 ; /*clobber*/
12410 ; /*clobber*/
12411 }
12412 }
12413 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12414 }
12415 }
12416
12417   abuf->written = written;
12418   return vpc;
12419 #undef FLD
12420 }
12421
12422 /* ftle: ftle$pack $FCCi_2,$GRi,$GRj */
12423
12424 static SEM_PC
12425 SEM_FN_NAME (frvbf,ftle) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12426 {
12427 #define FLD(f) abuf->fields.sfmt_ftne.f
12428   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12429   int UNUSED written = 0;
12430   IADDR UNUSED pc = abuf->addr;
12431   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12432
12433 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)))) {
12434 {
12435 ; /*clobber*/
12436 ; /*clobber*/
12437 ; /*clobber*/
12438 ; /*clobber*/
12439 if (NEBI (CPU (h_psr_esr), 0)) {
12440 {
12441 ; /*clobber*/
12442 ; /*clobber*/
12443 ; /*clobber*/
12444 ; /*clobber*/
12445 }
12446 }
12447 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12448 }
12449 }
12450
12451   abuf->written = written;
12452   return vpc;
12453 #undef FLD
12454 }
12455
12456 /* ftgt: ftgt$pack $FCCi_2,$GRi,$GRj */
12457
12458 static SEM_PC
12459 SEM_FN_NAME (frvbf,ftgt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12460 {
12461 #define FLD(f) abuf->fields.sfmt_ftne.f
12462   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12463   int UNUSED written = 0;
12464   IADDR UNUSED pc = abuf->addr;
12465   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12466
12467 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1))) {
12468 {
12469 ; /*clobber*/
12470 ; /*clobber*/
12471 ; /*clobber*/
12472 ; /*clobber*/
12473 if (NEBI (CPU (h_psr_esr), 0)) {
12474 {
12475 ; /*clobber*/
12476 ; /*clobber*/
12477 ; /*clobber*/
12478 ; /*clobber*/
12479 }
12480 }
12481 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12482 }
12483 }
12484
12485   abuf->written = written;
12486   return vpc;
12487 #undef FLD
12488 }
12489
12490 /* ftule: ftule$pack $FCCi_2,$GRi,$GRj */
12491
12492 static SEM_PC
12493 SEM_FN_NAME (frvbf,ftule) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12494 {
12495 #define FLD(f) abuf->fields.sfmt_ftne.f
12496   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12497   int UNUSED written = 0;
12498   IADDR UNUSED pc = abuf->addr;
12499   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12500
12501 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))))) {
12502 {
12503 ; /*clobber*/
12504 ; /*clobber*/
12505 ; /*clobber*/
12506 ; /*clobber*/
12507 if (NEBI (CPU (h_psr_esr), 0)) {
12508 {
12509 ; /*clobber*/
12510 ; /*clobber*/
12511 ; /*clobber*/
12512 ; /*clobber*/
12513 }
12514 }
12515 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12516 }
12517 }
12518
12519   abuf->written = written;
12520   return vpc;
12521 #undef FLD
12522 }
12523
12524 /* ftu: ftu$pack $FCCi_2,$GRi,$GRj */
12525
12526 static SEM_PC
12527 SEM_FN_NAME (frvbf,ftu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12528 {
12529 #define FLD(f) abuf->fields.sfmt_ftne.f
12530   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12531   int UNUSED written = 0;
12532   IADDR UNUSED pc = abuf->addr;
12533   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12534
12535 if (TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1))) {
12536 {
12537 ; /*clobber*/
12538 ; /*clobber*/
12539 ; /*clobber*/
12540 ; /*clobber*/
12541 if (NEBI (CPU (h_psr_esr), 0)) {
12542 {
12543 ; /*clobber*/
12544 ; /*clobber*/
12545 ; /*clobber*/
12546 ; /*clobber*/
12547 }
12548 }
12549 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12550 }
12551 }
12552
12553   abuf->written = written;
12554   return vpc;
12555 #undef FLD
12556 }
12557
12558 /* fto: fto$pack $FCCi_2,$GRi,$GRj */
12559
12560 static SEM_PC
12561 SEM_FN_NAME (frvbf,fto) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12562 {
12563 #define FLD(f) abuf->fields.sfmt_ftne.f
12564   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12565   int UNUSED written = 0;
12566   IADDR UNUSED pc = abuf->addr;
12567   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12568
12569 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))))) {
12570 {
12571 ; /*clobber*/
12572 ; /*clobber*/
12573 ; /*clobber*/
12574 ; /*clobber*/
12575 if (NEBI (CPU (h_psr_esr), 0)) {
12576 {
12577 ; /*clobber*/
12578 ; /*clobber*/
12579 ; /*clobber*/
12580 ; /*clobber*/
12581 }
12582 }
12583 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12584 }
12585 }
12586
12587   abuf->written = written;
12588   return vpc;
12589 #undef FLD
12590 }
12591
12592 /* tira: tira$pack $GRi,$s12 */
12593
12594 static SEM_PC
12595 SEM_FN_NAME (frvbf,tira) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12596 {
12597 #define FLD(f) abuf->fields.sfmt_ftine.f
12598   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12599   int UNUSED written = 0;
12600   IADDR UNUSED pc = abuf->addr;
12601   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12602
12603 {
12604 ; /*clobber*/
12605 ; /*clobber*/
12606 ; /*clobber*/
12607 ; /*clobber*/
12608 if (NEBI (CPU (h_psr_esr), 0)) {
12609 {
12610 ; /*clobber*/
12611 ; /*clobber*/
12612 ; /*clobber*/
12613 ; /*clobber*/
12614 }
12615 }
12616 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12617 }
12618
12619   abuf->written = written;
12620   return vpc;
12621 #undef FLD
12622 }
12623
12624 /* tino: tino$pack */
12625
12626 static SEM_PC
12627 SEM_FN_NAME (frvbf,tino) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12628 {
12629 #define FLD(f) abuf->fields.fmt_empty.f
12630   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12631   int UNUSED written = 0;
12632   IADDR UNUSED pc = abuf->addr;
12633   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12634
12635 ((void) 0); /*nop*/
12636
12637   return vpc;
12638 #undef FLD
12639 }
12640
12641 /* tieq: tieq$pack $ICCi_2,$GRi,$s12 */
12642
12643 static SEM_PC
12644 SEM_FN_NAME (frvbf,tieq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12645 {
12646 #define FLD(f) abuf->fields.sfmt_tieq.f
12647   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12648   int UNUSED written = 0;
12649   IADDR UNUSED pc = abuf->addr;
12650   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12651
12652 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2))) {
12653 {
12654 ; /*clobber*/
12655 ; /*clobber*/
12656 ; /*clobber*/
12657 ; /*clobber*/
12658 if (NEBI (CPU (h_psr_esr), 0)) {
12659 {
12660 ; /*clobber*/
12661 ; /*clobber*/
12662 ; /*clobber*/
12663 ; /*clobber*/
12664 }
12665 }
12666 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12667 }
12668 }
12669
12670   abuf->written = written;
12671   return vpc;
12672 #undef FLD
12673 }
12674
12675 /* tine: tine$pack $ICCi_2,$GRi,$s12 */
12676
12677 static SEM_PC
12678 SEM_FN_NAME (frvbf,tine) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12679 {
12680 #define FLD(f) abuf->fields.sfmt_tieq.f
12681   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12682   int UNUSED written = 0;
12683   IADDR UNUSED pc = abuf->addr;
12684   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12685
12686 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)))) {
12687 {
12688 ; /*clobber*/
12689 ; /*clobber*/
12690 ; /*clobber*/
12691 ; /*clobber*/
12692 if (NEBI (CPU (h_psr_esr), 0)) {
12693 {
12694 ; /*clobber*/
12695 ; /*clobber*/
12696 ; /*clobber*/
12697 ; /*clobber*/
12698 }
12699 }
12700 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12701 }
12702 }
12703
12704   abuf->written = written;
12705   return vpc;
12706 #undef FLD
12707 }
12708
12709 /* tile: tile$pack $ICCi_2,$GRi,$s12 */
12710
12711 static SEM_PC
12712 SEM_FN_NAME (frvbf,tile) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12713 {
12714 #define FLD(f) abuf->fields.sfmt_tieq.f
12715   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12716   int UNUSED written = 0;
12717   IADDR UNUSED pc = abuf->addr;
12718   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12719
12720 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))))) {
12721 {
12722 ; /*clobber*/
12723 ; /*clobber*/
12724 ; /*clobber*/
12725 ; /*clobber*/
12726 if (NEBI (CPU (h_psr_esr), 0)) {
12727 {
12728 ; /*clobber*/
12729 ; /*clobber*/
12730 ; /*clobber*/
12731 ; /*clobber*/
12732 }
12733 }
12734 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12735 }
12736 }
12737
12738   abuf->written = written;
12739   return vpc;
12740 #undef FLD
12741 }
12742
12743 /* tigt: tigt$pack $ICCi_2,$GRi,$s12 */
12744
12745 static SEM_PC
12746 SEM_FN_NAME (frvbf,tigt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12747 {
12748 #define FLD(f) abuf->fields.sfmt_tieq.f
12749   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12750   int UNUSED written = 0;
12751   IADDR UNUSED pc = abuf->addr;
12752   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12753
12754 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)))))) {
12755 {
12756 ; /*clobber*/
12757 ; /*clobber*/
12758 ; /*clobber*/
12759 ; /*clobber*/
12760 if (NEBI (CPU (h_psr_esr), 0)) {
12761 {
12762 ; /*clobber*/
12763 ; /*clobber*/
12764 ; /*clobber*/
12765 ; /*clobber*/
12766 }
12767 }
12768 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12769 }
12770 }
12771
12772   abuf->written = written;
12773   return vpc;
12774 #undef FLD
12775 }
12776
12777 /* tilt: tilt$pack $ICCi_2,$GRi,$s12 */
12778
12779 static SEM_PC
12780 SEM_FN_NAME (frvbf,tilt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12781 {
12782 #define FLD(f) abuf->fields.sfmt_tieq.f
12783   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12784   int UNUSED written = 0;
12785   IADDR UNUSED pc = abuf->addr;
12786   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12787
12788 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)))) {
12789 {
12790 ; /*clobber*/
12791 ; /*clobber*/
12792 ; /*clobber*/
12793 ; /*clobber*/
12794 if (NEBI (CPU (h_psr_esr), 0)) {
12795 {
12796 ; /*clobber*/
12797 ; /*clobber*/
12798 ; /*clobber*/
12799 ; /*clobber*/
12800 }
12801 }
12802 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12803 }
12804 }
12805
12806   abuf->written = written;
12807   return vpc;
12808 #undef FLD
12809 }
12810
12811 /* tige: tige$pack $ICCi_2,$GRi,$s12 */
12812
12813 static SEM_PC
12814 SEM_FN_NAME (frvbf,tige) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12815 {
12816 #define FLD(f) abuf->fields.sfmt_tieq.f
12817   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12818   int UNUSED written = 0;
12819   IADDR UNUSED pc = abuf->addr;
12820   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12821
12822 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))))) {
12823 {
12824 ; /*clobber*/
12825 ; /*clobber*/
12826 ; /*clobber*/
12827 ; /*clobber*/
12828 if (NEBI (CPU (h_psr_esr), 0)) {
12829 {
12830 ; /*clobber*/
12831 ; /*clobber*/
12832 ; /*clobber*/
12833 ; /*clobber*/
12834 }
12835 }
12836 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12837 }
12838 }
12839
12840   abuf->written = written;
12841   return vpc;
12842 #undef FLD
12843 }
12844
12845 /* tils: tils$pack $ICCi_2,$GRi,$s12 */
12846
12847 static SEM_PC
12848 SEM_FN_NAME (frvbf,tils) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12849 {
12850 #define FLD(f) abuf->fields.sfmt_tieq.f
12851   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12852   int UNUSED written = 0;
12853   IADDR UNUSED pc = abuf->addr;
12854   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12855
12856 if (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)))) {
12857 {
12858 ; /*clobber*/
12859 ; /*clobber*/
12860 ; /*clobber*/
12861 ; /*clobber*/
12862 if (NEBI (CPU (h_psr_esr), 0)) {
12863 {
12864 ; /*clobber*/
12865 ; /*clobber*/
12866 ; /*clobber*/
12867 ; /*clobber*/
12868 }
12869 }
12870 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12871 }
12872 }
12873
12874   abuf->written = written;
12875   return vpc;
12876 #undef FLD
12877 }
12878
12879 /* tihi: tihi$pack $ICCi_2,$GRi,$s12 */
12880
12881 static SEM_PC
12882 SEM_FN_NAME (frvbf,tihi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12883 {
12884 #define FLD(f) abuf->fields.sfmt_tieq.f
12885   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12886   int UNUSED written = 0;
12887   IADDR UNUSED pc = abuf->addr;
12888   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12889
12890 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))))) {
12891 {
12892 ; /*clobber*/
12893 ; /*clobber*/
12894 ; /*clobber*/
12895 ; /*clobber*/
12896 if (NEBI (CPU (h_psr_esr), 0)) {
12897 {
12898 ; /*clobber*/
12899 ; /*clobber*/
12900 ; /*clobber*/
12901 ; /*clobber*/
12902 }
12903 }
12904 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12905 }
12906 }
12907
12908   abuf->written = written;
12909   return vpc;
12910 #undef FLD
12911 }
12912
12913 /* tic: tic$pack $ICCi_2,$GRi,$s12 */
12914
12915 static SEM_PC
12916 SEM_FN_NAME (frvbf,tic) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12917 {
12918 #define FLD(f) abuf->fields.sfmt_tieq.f
12919   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12920   int UNUSED written = 0;
12921   IADDR UNUSED pc = abuf->addr;
12922   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12923
12924 if (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1))) {
12925 {
12926 ; /*clobber*/
12927 ; /*clobber*/
12928 ; /*clobber*/
12929 ; /*clobber*/
12930 if (NEBI (CPU (h_psr_esr), 0)) {
12931 {
12932 ; /*clobber*/
12933 ; /*clobber*/
12934 ; /*clobber*/
12935 ; /*clobber*/
12936 }
12937 }
12938 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12939 }
12940 }
12941
12942   abuf->written = written;
12943   return vpc;
12944 #undef FLD
12945 }
12946
12947 /* tinc: tinc$pack $ICCi_2,$GRi,$s12 */
12948
12949 static SEM_PC
12950 SEM_FN_NAME (frvbf,tinc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12951 {
12952 #define FLD(f) abuf->fields.sfmt_tieq.f
12953   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12954   int UNUSED written = 0;
12955   IADDR UNUSED pc = abuf->addr;
12956   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12957
12958 if (NOTBI (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)))) {
12959 {
12960 ; /*clobber*/
12961 ; /*clobber*/
12962 ; /*clobber*/
12963 ; /*clobber*/
12964 if (NEBI (CPU (h_psr_esr), 0)) {
12965 {
12966 ; /*clobber*/
12967 ; /*clobber*/
12968 ; /*clobber*/
12969 ; /*clobber*/
12970 }
12971 }
12972 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12973 }
12974 }
12975
12976   abuf->written = written;
12977   return vpc;
12978 #undef FLD
12979 }
12980
12981 /* tin: tin$pack $ICCi_2,$GRi,$s12 */
12982
12983 static SEM_PC
12984 SEM_FN_NAME (frvbf,tin) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12985 {
12986 #define FLD(f) abuf->fields.sfmt_tieq.f
12987   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12988   int UNUSED written = 0;
12989   IADDR UNUSED pc = abuf->addr;
12990   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12991
12992 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3))) {
12993 {
12994 ; /*clobber*/
12995 ; /*clobber*/
12996 ; /*clobber*/
12997 ; /*clobber*/
12998 if (NEBI (CPU (h_psr_esr), 0)) {
12999 {
13000 ; /*clobber*/
13001 ; /*clobber*/
13002 ; /*clobber*/
13003 ; /*clobber*/
13004 }
13005 }
13006 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13007 }
13008 }
13009
13010   abuf->written = written;
13011   return vpc;
13012 #undef FLD
13013 }
13014
13015 /* tip: tip$pack $ICCi_2,$GRi,$s12 */
13016
13017 static SEM_PC
13018 SEM_FN_NAME (frvbf,tip) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13019 {
13020 #define FLD(f) abuf->fields.sfmt_tieq.f
13021   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13022   int UNUSED written = 0;
13023   IADDR UNUSED pc = abuf->addr;
13024   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13025
13026 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3)))) {
13027 {
13028 ; /*clobber*/
13029 ; /*clobber*/
13030 ; /*clobber*/
13031 ; /*clobber*/
13032 if (NEBI (CPU (h_psr_esr), 0)) {
13033 {
13034 ; /*clobber*/
13035 ; /*clobber*/
13036 ; /*clobber*/
13037 ; /*clobber*/
13038 }
13039 }
13040 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13041 }
13042 }
13043
13044   abuf->written = written;
13045   return vpc;
13046 #undef FLD
13047 }
13048
13049 /* tiv: tiv$pack $ICCi_2,$GRi,$s12 */
13050
13051 static SEM_PC
13052 SEM_FN_NAME (frvbf,tiv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13053 {
13054 #define FLD(f) abuf->fields.sfmt_tieq.f
13055   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13056   int UNUSED written = 0;
13057   IADDR UNUSED pc = abuf->addr;
13058   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13059
13060 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1))) {
13061 {
13062 ; /*clobber*/
13063 ; /*clobber*/
13064 ; /*clobber*/
13065 ; /*clobber*/
13066 if (NEBI (CPU (h_psr_esr), 0)) {
13067 {
13068 ; /*clobber*/
13069 ; /*clobber*/
13070 ; /*clobber*/
13071 ; /*clobber*/
13072 }
13073 }
13074 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13075 }
13076 }
13077
13078   abuf->written = written;
13079   return vpc;
13080 #undef FLD
13081 }
13082
13083 /* tinv: tinv$pack $ICCi_2,$GRi,$s12 */
13084
13085 static SEM_PC
13086 SEM_FN_NAME (frvbf,tinv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13087 {
13088 #define FLD(f) abuf->fields.sfmt_tieq.f
13089   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13090   int UNUSED written = 0;
13091   IADDR UNUSED pc = abuf->addr;
13092   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13093
13094 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1)))) {
13095 {
13096 ; /*clobber*/
13097 ; /*clobber*/
13098 ; /*clobber*/
13099 ; /*clobber*/
13100 if (NEBI (CPU (h_psr_esr), 0)) {
13101 {
13102 ; /*clobber*/
13103 ; /*clobber*/
13104 ; /*clobber*/
13105 ; /*clobber*/
13106 }
13107 }
13108 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13109 }
13110 }
13111
13112   abuf->written = written;
13113   return vpc;
13114 #undef FLD
13115 }
13116
13117 /* ftira: ftira$pack $GRi,$s12 */
13118
13119 static SEM_PC
13120 SEM_FN_NAME (frvbf,ftira) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13121 {
13122 #define FLD(f) abuf->fields.sfmt_ftine.f
13123   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13124   int UNUSED written = 0;
13125   IADDR UNUSED pc = abuf->addr;
13126   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13127
13128 {
13129 ; /*clobber*/
13130 ; /*clobber*/
13131 ; /*clobber*/
13132 ; /*clobber*/
13133 if (NEBI (CPU (h_psr_esr), 0)) {
13134 {
13135 ; /*clobber*/
13136 ; /*clobber*/
13137 ; /*clobber*/
13138 ; /*clobber*/
13139 }
13140 }
13141 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13142 }
13143
13144   abuf->written = written;
13145   return vpc;
13146 #undef FLD
13147 }
13148
13149 /* ftino: ftino$pack */
13150
13151 static SEM_PC
13152 SEM_FN_NAME (frvbf,ftino) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13153 {
13154 #define FLD(f) abuf->fields.fmt_empty.f
13155   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13156   int UNUSED written = 0;
13157   IADDR UNUSED pc = abuf->addr;
13158   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13159
13160 ((void) 0); /*nop*/
13161
13162   return vpc;
13163 #undef FLD
13164 }
13165
13166 /* ftine: ftine$pack $FCCi_2,$GRi,$s12 */
13167
13168 static SEM_PC
13169 SEM_FN_NAME (frvbf,ftine) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13170 {
13171 #define FLD(f) abuf->fields.sfmt_ftine.f
13172   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13173   int UNUSED written = 0;
13174   IADDR UNUSED pc = abuf->addr;
13175   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13176
13177 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))))) {
13178 {
13179 ; /*clobber*/
13180 ; /*clobber*/
13181 ; /*clobber*/
13182 ; /*clobber*/
13183 if (NEBI (CPU (h_psr_esr), 0)) {
13184 {
13185 ; /*clobber*/
13186 ; /*clobber*/
13187 ; /*clobber*/
13188 ; /*clobber*/
13189 }
13190 }
13191 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13192 }
13193 }
13194
13195   abuf->written = written;
13196   return vpc;
13197 #undef FLD
13198 }
13199
13200 /* ftieq: ftieq$pack $FCCi_2,$GRi,$s12 */
13201
13202 static SEM_PC
13203 SEM_FN_NAME (frvbf,ftieq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13204 {
13205 #define FLD(f) abuf->fields.sfmt_ftine.f
13206   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13207   int UNUSED written = 0;
13208   IADDR UNUSED pc = abuf->addr;
13209   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13210
13211 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3))) {
13212 {
13213 ; /*clobber*/
13214 ; /*clobber*/
13215 ; /*clobber*/
13216 ; /*clobber*/
13217 if (NEBI (CPU (h_psr_esr), 0)) {
13218 {
13219 ; /*clobber*/
13220 ; /*clobber*/
13221 ; /*clobber*/
13222 ; /*clobber*/
13223 }
13224 }
13225 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13226 }
13227 }
13228
13229   abuf->written = written;
13230   return vpc;
13231 #undef FLD
13232 }
13233
13234 /* ftilg: ftilg$pack $FCCi_2,$GRi,$s12 */
13235
13236 static SEM_PC
13237 SEM_FN_NAME (frvbf,ftilg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13238 {
13239 #define FLD(f) abuf->fields.sfmt_ftine.f
13240   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13241   int UNUSED written = 0;
13242   IADDR UNUSED pc = abuf->addr;
13243   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13244
13245 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)))) {
13246 {
13247 ; /*clobber*/
13248 ; /*clobber*/
13249 ; /*clobber*/
13250 ; /*clobber*/
13251 if (NEBI (CPU (h_psr_esr), 0)) {
13252 {
13253 ; /*clobber*/
13254 ; /*clobber*/
13255 ; /*clobber*/
13256 ; /*clobber*/
13257 }
13258 }
13259 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13260 }
13261 }
13262
13263   abuf->written = written;
13264   return vpc;
13265 #undef FLD
13266 }
13267
13268 /* ftiue: ftiue$pack $FCCi_2,$GRi,$s12 */
13269
13270 static SEM_PC
13271 SEM_FN_NAME (frvbf,ftiue) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13272 {
13273 #define FLD(f) abuf->fields.sfmt_ftine.f
13274   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13275   int UNUSED written = 0;
13276   IADDR UNUSED pc = abuf->addr;
13277   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13278
13279 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
13280 {
13281 ; /*clobber*/
13282 ; /*clobber*/
13283 ; /*clobber*/
13284 ; /*clobber*/
13285 if (NEBI (CPU (h_psr_esr), 0)) {
13286 {
13287 ; /*clobber*/
13288 ; /*clobber*/
13289 ; /*clobber*/
13290 ; /*clobber*/
13291 }
13292 }
13293 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13294 }
13295 }
13296
13297   abuf->written = written;
13298   return vpc;
13299 #undef FLD
13300 }
13301
13302 /* ftiul: ftiul$pack $FCCi_2,$GRi,$s12 */
13303
13304 static SEM_PC
13305 SEM_FN_NAME (frvbf,ftiul) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13306 {
13307 #define FLD(f) abuf->fields.sfmt_ftine.f
13308   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13309   int UNUSED written = 0;
13310   IADDR UNUSED pc = abuf->addr;
13311   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13312
13313 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
13314 {
13315 ; /*clobber*/
13316 ; /*clobber*/
13317 ; /*clobber*/
13318 ; /*clobber*/
13319 if (NEBI (CPU (h_psr_esr), 0)) {
13320 {
13321 ; /*clobber*/
13322 ; /*clobber*/
13323 ; /*clobber*/
13324 ; /*clobber*/
13325 }
13326 }
13327 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13328 }
13329 }
13330
13331   abuf->written = written;
13332   return vpc;
13333 #undef FLD
13334 }
13335
13336 /* ftige: ftige$pack $FCCi_2,$GRi,$s12 */
13337
13338 static SEM_PC
13339 SEM_FN_NAME (frvbf,ftige) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13340 {
13341 #define FLD(f) abuf->fields.sfmt_ftine.f
13342   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13343   int UNUSED written = 0;
13344   IADDR UNUSED pc = abuf->addr;
13345   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13346
13347 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)))) {
13348 {
13349 ; /*clobber*/
13350 ; /*clobber*/
13351 ; /*clobber*/
13352 ; /*clobber*/
13353 if (NEBI (CPU (h_psr_esr), 0)) {
13354 {
13355 ; /*clobber*/
13356 ; /*clobber*/
13357 ; /*clobber*/
13358 ; /*clobber*/
13359 }
13360 }
13361 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13362 }
13363 }
13364
13365   abuf->written = written;
13366   return vpc;
13367 #undef FLD
13368 }
13369
13370 /* ftilt: ftilt$pack $FCCi_2,$GRi,$s12 */
13371
13372 static SEM_PC
13373 SEM_FN_NAME (frvbf,ftilt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13374 {
13375 #define FLD(f) abuf->fields.sfmt_ftine.f
13376   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13377   int UNUSED written = 0;
13378   IADDR UNUSED pc = abuf->addr;
13379   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13380
13381 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2))) {
13382 {
13383 ; /*clobber*/
13384 ; /*clobber*/
13385 ; /*clobber*/
13386 ; /*clobber*/
13387 if (NEBI (CPU (h_psr_esr), 0)) {
13388 {
13389 ; /*clobber*/
13390 ; /*clobber*/
13391 ; /*clobber*/
13392 ; /*clobber*/
13393 }
13394 }
13395 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13396 }
13397 }
13398
13399   abuf->written = written;
13400   return vpc;
13401 #undef FLD
13402 }
13403
13404 /* ftiuge: ftiuge$pack $FCCi_2,$GRi,$s12 */
13405
13406 static SEM_PC
13407 SEM_FN_NAME (frvbf,ftiuge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13408 {
13409 #define FLD(f) abuf->fields.sfmt_ftine.f
13410   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13411   int UNUSED written = 0;
13412   IADDR UNUSED pc = abuf->addr;
13413   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13414
13415 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))))) {
13416 {
13417 ; /*clobber*/
13418 ; /*clobber*/
13419 ; /*clobber*/
13420 ; /*clobber*/
13421 if (NEBI (CPU (h_psr_esr), 0)) {
13422 {
13423 ; /*clobber*/
13424 ; /*clobber*/
13425 ; /*clobber*/
13426 ; /*clobber*/
13427 }
13428 }
13429 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13430 }
13431 }
13432
13433   abuf->written = written;
13434   return vpc;
13435 #undef FLD
13436 }
13437
13438 /* ftiug: ftiug$pack $FCCi_2,$GRi,$s12 */
13439
13440 static SEM_PC
13441 SEM_FN_NAME (frvbf,ftiug) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13442 {
13443 #define FLD(f) abuf->fields.sfmt_ftine.f
13444   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13445   int UNUSED written = 0;
13446   IADDR UNUSED pc = abuf->addr;
13447   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13448
13449 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
13450 {
13451 ; /*clobber*/
13452 ; /*clobber*/
13453 ; /*clobber*/
13454 ; /*clobber*/
13455 if (NEBI (CPU (h_psr_esr), 0)) {
13456 {
13457 ; /*clobber*/
13458 ; /*clobber*/
13459 ; /*clobber*/
13460 ; /*clobber*/
13461 }
13462 }
13463 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13464 }
13465 }
13466
13467   abuf->written = written;
13468   return vpc;
13469 #undef FLD
13470 }
13471
13472 /* ftile: ftile$pack $FCCi_2,$GRi,$s12 */
13473
13474 static SEM_PC
13475 SEM_FN_NAME (frvbf,ftile) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13476 {
13477 #define FLD(f) abuf->fields.sfmt_ftine.f
13478   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13479   int UNUSED written = 0;
13480   IADDR UNUSED pc = abuf->addr;
13481   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13482
13483 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)))) {
13484 {
13485 ; /*clobber*/
13486 ; /*clobber*/
13487 ; /*clobber*/
13488 ; /*clobber*/
13489 if (NEBI (CPU (h_psr_esr), 0)) {
13490 {
13491 ; /*clobber*/
13492 ; /*clobber*/
13493 ; /*clobber*/
13494 ; /*clobber*/
13495 }
13496 }
13497 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13498 }
13499 }
13500
13501   abuf->written = written;
13502   return vpc;
13503 #undef FLD
13504 }
13505
13506 /* ftigt: ftigt$pack $FCCi_2,$GRi,$s12 */
13507
13508 static SEM_PC
13509 SEM_FN_NAME (frvbf,ftigt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13510 {
13511 #define FLD(f) abuf->fields.sfmt_ftine.f
13512   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13513   int UNUSED written = 0;
13514   IADDR UNUSED pc = abuf->addr;
13515   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13516
13517 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1))) {
13518 {
13519 ; /*clobber*/
13520 ; /*clobber*/
13521 ; /*clobber*/
13522 ; /*clobber*/
13523 if (NEBI (CPU (h_psr_esr), 0)) {
13524 {
13525 ; /*clobber*/
13526 ; /*clobber*/
13527 ; /*clobber*/
13528 ; /*clobber*/
13529 }
13530 }
13531 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13532 }
13533 }
13534
13535   abuf->written = written;
13536   return vpc;
13537 #undef FLD
13538 }
13539
13540 /* ftiule: ftiule$pack $FCCi_2,$GRi,$s12 */
13541
13542 static SEM_PC
13543 SEM_FN_NAME (frvbf,ftiule) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13544 {
13545 #define FLD(f) abuf->fields.sfmt_ftine.f
13546   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13547   int UNUSED written = 0;
13548   IADDR UNUSED pc = abuf->addr;
13549   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13550
13551 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))))) {
13552 {
13553 ; /*clobber*/
13554 ; /*clobber*/
13555 ; /*clobber*/
13556 ; /*clobber*/
13557 if (NEBI (CPU (h_psr_esr), 0)) {
13558 {
13559 ; /*clobber*/
13560 ; /*clobber*/
13561 ; /*clobber*/
13562 ; /*clobber*/
13563 }
13564 }
13565 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13566 }
13567 }
13568
13569   abuf->written = written;
13570   return vpc;
13571 #undef FLD
13572 }
13573
13574 /* ftiu: ftiu$pack $FCCi_2,$GRi,$s12 */
13575
13576 static SEM_PC
13577 SEM_FN_NAME (frvbf,ftiu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13578 {
13579 #define FLD(f) abuf->fields.sfmt_ftine.f
13580   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13581   int UNUSED written = 0;
13582   IADDR UNUSED pc = abuf->addr;
13583   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13584
13585 if (TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1))) {
13586 {
13587 ; /*clobber*/
13588 ; /*clobber*/
13589 ; /*clobber*/
13590 ; /*clobber*/
13591 if (NEBI (CPU (h_psr_esr), 0)) {
13592 {
13593 ; /*clobber*/
13594 ; /*clobber*/
13595 ; /*clobber*/
13596 ; /*clobber*/
13597 }
13598 }
13599 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13600 }
13601 }
13602
13603   abuf->written = written;
13604   return vpc;
13605 #undef FLD
13606 }
13607
13608 /* ftio: ftio$pack $FCCi_2,$GRi,$s12 */
13609
13610 static SEM_PC
13611 SEM_FN_NAME (frvbf,ftio) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13612 {
13613 #define FLD(f) abuf->fields.sfmt_ftine.f
13614   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13615   int UNUSED written = 0;
13616   IADDR UNUSED pc = abuf->addr;
13617   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13618
13619 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))))) {
13620 {
13621 ; /*clobber*/
13622 ; /*clobber*/
13623 ; /*clobber*/
13624 ; /*clobber*/
13625 if (NEBI (CPU (h_psr_esr), 0)) {
13626 {
13627 ; /*clobber*/
13628 ; /*clobber*/
13629 ; /*clobber*/
13630 ; /*clobber*/
13631 }
13632 }
13633 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13634 }
13635 }
13636
13637   abuf->written = written;
13638   return vpc;
13639 #undef FLD
13640 }
13641
13642 /* break: break$pack */
13643
13644 static SEM_PC
13645 SEM_FN_NAME (frvbf,break) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13646 {
13647 #define FLD(f) abuf->fields.sfmt_break.f
13648   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13649   int UNUSED written = 0;
13650   IADDR UNUSED pc = abuf->addr;
13651   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13652
13653 {
13654 ; /*clobber*/
13655 ; /*clobber*/
13656 ; /*clobber*/
13657 ; /*clobber*/
13658 ; /*clobber*/
13659 ; /*clobber*/
13660 frv_break (current_cpu);
13661 }
13662
13663   return vpc;
13664 #undef FLD
13665 }
13666
13667 /* mtrap: mtrap$pack */
13668
13669 static SEM_PC
13670 SEM_FN_NAME (frvbf,mtrap) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13671 {
13672 #define FLD(f) abuf->fields.fmt_empty.f
13673   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13674   int UNUSED written = 0;
13675   IADDR UNUSED pc = abuf->addr;
13676   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13677
13678 frv_mtrap (current_cpu);
13679
13680   return vpc;
13681 #undef FLD
13682 }
13683
13684 /* andcr: andcr$pack $CRi,$CRj,$CRk */
13685
13686 static SEM_PC
13687 SEM_FN_NAME (frvbf,andcr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13688 {
13689 #define FLD(f) abuf->fields.sfmt_andcr.f
13690   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13691   int UNUSED written = 0;
13692   IADDR UNUSED pc = abuf->addr;
13693   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13694
13695   {
13696     UQI opval = frvbf_cr_logic (current_cpu, 0, CPU (h_cccr[FLD (f_CRi)]), CPU (h_cccr[FLD (f_CRj)]));
13697     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRk)]), opval);
13698     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13699   }
13700
13701   return vpc;
13702 #undef FLD
13703 }
13704
13705 /* orcr: orcr$pack $CRi,$CRj,$CRk */
13706
13707 static SEM_PC
13708 SEM_FN_NAME (frvbf,orcr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13709 {
13710 #define FLD(f) abuf->fields.sfmt_andcr.f
13711   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13712   int UNUSED written = 0;
13713   IADDR UNUSED pc = abuf->addr;
13714   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13715
13716   {
13717     UQI opval = frvbf_cr_logic (current_cpu, 1, CPU (h_cccr[FLD (f_CRi)]), CPU (h_cccr[FLD (f_CRj)]));
13718     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRk)]), opval);
13719     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13720   }
13721
13722   return vpc;
13723 #undef FLD
13724 }
13725
13726 /* xorcr: xorcr$pack $CRi,$CRj,$CRk */
13727
13728 static SEM_PC
13729 SEM_FN_NAME (frvbf,xorcr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13730 {
13731 #define FLD(f) abuf->fields.sfmt_andcr.f
13732   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13733   int UNUSED written = 0;
13734   IADDR UNUSED pc = abuf->addr;
13735   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13736
13737   {
13738     UQI opval = frvbf_cr_logic (current_cpu, 2, CPU (h_cccr[FLD (f_CRi)]), CPU (h_cccr[FLD (f_CRj)]));
13739     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRk)]), opval);
13740     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13741   }
13742
13743   return vpc;
13744 #undef FLD
13745 }
13746
13747 /* nandcr: nandcr$pack $CRi,$CRj,$CRk */
13748
13749 static SEM_PC
13750 SEM_FN_NAME (frvbf,nandcr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13751 {
13752 #define FLD(f) abuf->fields.sfmt_andcr.f
13753   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13754   int UNUSED written = 0;
13755   IADDR UNUSED pc = abuf->addr;
13756   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13757
13758   {
13759     UQI opval = frvbf_cr_logic (current_cpu, 3, CPU (h_cccr[FLD (f_CRi)]), CPU (h_cccr[FLD (f_CRj)]));
13760     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRk)]), opval);
13761     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13762   }
13763
13764   return vpc;
13765 #undef FLD
13766 }
13767
13768 /* norcr: norcr$pack $CRi,$CRj,$CRk */
13769
13770 static SEM_PC
13771 SEM_FN_NAME (frvbf,norcr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13772 {
13773 #define FLD(f) abuf->fields.sfmt_andcr.f
13774   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13775   int UNUSED written = 0;
13776   IADDR UNUSED pc = abuf->addr;
13777   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13778
13779   {
13780     UQI opval = frvbf_cr_logic (current_cpu, 4, CPU (h_cccr[FLD (f_CRi)]), CPU (h_cccr[FLD (f_CRj)]));
13781     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRk)]), opval);
13782     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13783   }
13784
13785   return vpc;
13786 #undef FLD
13787 }
13788
13789 /* andncr: andncr$pack $CRi,$CRj,$CRk */
13790
13791 static SEM_PC
13792 SEM_FN_NAME (frvbf,andncr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13793 {
13794 #define FLD(f) abuf->fields.sfmt_andcr.f
13795   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13796   int UNUSED written = 0;
13797   IADDR UNUSED pc = abuf->addr;
13798   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13799
13800   {
13801     UQI opval = frvbf_cr_logic (current_cpu, 5, CPU (h_cccr[FLD (f_CRi)]), CPU (h_cccr[FLD (f_CRj)]));
13802     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRk)]), opval);
13803     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13804   }
13805
13806   return vpc;
13807 #undef FLD
13808 }
13809
13810 /* orncr: orncr$pack $CRi,$CRj,$CRk */
13811
13812 static SEM_PC
13813 SEM_FN_NAME (frvbf,orncr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13814 {
13815 #define FLD(f) abuf->fields.sfmt_andcr.f
13816   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13817   int UNUSED written = 0;
13818   IADDR UNUSED pc = abuf->addr;
13819   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13820
13821   {
13822     UQI opval = frvbf_cr_logic (current_cpu, 6, CPU (h_cccr[FLD (f_CRi)]), CPU (h_cccr[FLD (f_CRj)]));
13823     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRk)]), opval);
13824     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13825   }
13826
13827   return vpc;
13828 #undef FLD
13829 }
13830
13831 /* nandncr: nandncr$pack $CRi,$CRj,$CRk */
13832
13833 static SEM_PC
13834 SEM_FN_NAME (frvbf,nandncr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13835 {
13836 #define FLD(f) abuf->fields.sfmt_andcr.f
13837   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13838   int UNUSED written = 0;
13839   IADDR UNUSED pc = abuf->addr;
13840   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13841
13842   {
13843     UQI opval = frvbf_cr_logic (current_cpu, 7, CPU (h_cccr[FLD (f_CRi)]), CPU (h_cccr[FLD (f_CRj)]));
13844     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRk)]), opval);
13845     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13846   }
13847
13848   return vpc;
13849 #undef FLD
13850 }
13851
13852 /* norncr: norncr$pack $CRi,$CRj,$CRk */
13853
13854 static SEM_PC
13855 SEM_FN_NAME (frvbf,norncr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13856 {
13857 #define FLD(f) abuf->fields.sfmt_andcr.f
13858   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13859   int UNUSED written = 0;
13860   IADDR UNUSED pc = abuf->addr;
13861   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13862
13863   {
13864     UQI opval = frvbf_cr_logic (current_cpu, 8, CPU (h_cccr[FLD (f_CRi)]), CPU (h_cccr[FLD (f_CRj)]));
13865     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRk)]), opval);
13866     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13867   }
13868
13869   return vpc;
13870 #undef FLD
13871 }
13872
13873 /* notcr: notcr$pack $CRj,$CRk */
13874
13875 static SEM_PC
13876 SEM_FN_NAME (frvbf,notcr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13877 {
13878 #define FLD(f) abuf->fields.sfmt_andcr.f
13879   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13880   int UNUSED written = 0;
13881   IADDR UNUSED pc = abuf->addr;
13882   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13883
13884   {
13885     UQI opval = XORQI (CPU (h_cccr[FLD (f_CRj)]), 1);
13886     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRk)]), opval);
13887     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13888   }
13889
13890   return vpc;
13891 #undef FLD
13892 }
13893
13894 /* ckra: ckra$pack $CRj_int */
13895
13896 static SEM_PC
13897 SEM_FN_NAME (frvbf,ckra) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13898 {
13899 #define FLD(f) abuf->fields.sfmt_cckeq.f
13900   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13901   int UNUSED written = 0;
13902   IADDR UNUSED pc = abuf->addr;
13903   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13904
13905   {
13906     UQI opval = 3;
13907     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
13908     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13909   }
13910
13911   return vpc;
13912 #undef FLD
13913 }
13914
13915 /* ckno: ckno$pack $CRj_int */
13916
13917 static SEM_PC
13918 SEM_FN_NAME (frvbf,ckno) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13919 {
13920 #define FLD(f) abuf->fields.sfmt_cckeq.f
13921   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13922   int UNUSED written = 0;
13923   IADDR UNUSED pc = abuf->addr;
13924   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13925
13926   {
13927     UQI opval = 2;
13928     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
13929     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13930   }
13931
13932   return vpc;
13933 #undef FLD
13934 }
13935
13936 /* ckeq: ckeq$pack $ICCi_3,$CRj_int */
13937
13938 static SEM_PC
13939 SEM_FN_NAME (frvbf,ckeq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13940 {
13941 #define FLD(f) abuf->fields.sfmt_cckeq.f
13942   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13943   int UNUSED written = 0;
13944   IADDR UNUSED pc = abuf->addr;
13945   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13946
13947 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 4), 2))) {
13948   {
13949     UQI opval = 3;
13950     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
13951     written |= (1 << 1);
13952     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13953   }
13954 } else {
13955   {
13956     UQI opval = 2;
13957     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
13958     written |= (1 << 1);
13959     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13960   }
13961 }
13962
13963   abuf->written = written;
13964   return vpc;
13965 #undef FLD
13966 }
13967
13968 /* ckne: ckne$pack $ICCi_3,$CRj_int */
13969
13970 static SEM_PC
13971 SEM_FN_NAME (frvbf,ckne) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13972 {
13973 #define FLD(f) abuf->fields.sfmt_cckeq.f
13974   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13975   int UNUSED written = 0;
13976   IADDR UNUSED pc = abuf->addr;
13977   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13978
13979 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 4), 2)))) {
13980   {
13981     UQI opval = 3;
13982     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
13983     written |= (1 << 1);
13984     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13985   }
13986 } else {
13987   {
13988     UQI opval = 2;
13989     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
13990     written |= (1 << 1);
13991     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13992   }
13993 }
13994
13995   abuf->written = written;
13996   return vpc;
13997 #undef FLD
13998 }
13999
14000 /* ckle: ckle$pack $ICCi_3,$CRj_int */
14001
14002 static SEM_PC
14003 SEM_FN_NAME (frvbf,ckle) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14004 {
14005 #define FLD(f) abuf->fields.sfmt_cckeq.f
14006   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14007   int UNUSED written = 0;
14008   IADDR UNUSED pc = abuf->addr;
14009   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14010
14011 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))))) {
14012   {
14013     UQI opval = 3;
14014     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14015     written |= (1 << 1);
14016     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14017   }
14018 } else {
14019   {
14020     UQI opval = 2;
14021     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14022     written |= (1 << 1);
14023     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14024   }
14025 }
14026
14027   abuf->written = written;
14028   return vpc;
14029 #undef FLD
14030 }
14031
14032 /* ckgt: ckgt$pack $ICCi_3,$CRj_int */
14033
14034 static SEM_PC
14035 SEM_FN_NAME (frvbf,ckgt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14036 {
14037 #define FLD(f) abuf->fields.sfmt_cckeq.f
14038   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14039   int UNUSED written = 0;
14040   IADDR UNUSED pc = abuf->addr;
14041   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14042
14043 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)))))) {
14044   {
14045     UQI opval = 3;
14046     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14047     written |= (1 << 1);
14048     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14049   }
14050 } else {
14051   {
14052     UQI opval = 2;
14053     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14054     written |= (1 << 1);
14055     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14056   }
14057 }
14058
14059   abuf->written = written;
14060   return vpc;
14061 #undef FLD
14062 }
14063
14064 /* cklt: cklt$pack $ICCi_3,$CRj_int */
14065
14066 static SEM_PC
14067 SEM_FN_NAME (frvbf,cklt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14068 {
14069 #define FLD(f) abuf->fields.sfmt_cckeq.f
14070   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14071   int UNUSED written = 0;
14072   IADDR UNUSED pc = abuf->addr;
14073   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14074
14075 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)))) {
14076   {
14077     UQI opval = 3;
14078     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14079     written |= (1 << 1);
14080     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14081   }
14082 } else {
14083   {
14084     UQI opval = 2;
14085     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14086     written |= (1 << 1);
14087     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14088   }
14089 }
14090
14091   abuf->written = written;
14092   return vpc;
14093 #undef FLD
14094 }
14095
14096 /* ckge: ckge$pack $ICCi_3,$CRj_int */
14097
14098 static SEM_PC
14099 SEM_FN_NAME (frvbf,ckge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14100 {
14101 #define FLD(f) abuf->fields.sfmt_cckeq.f
14102   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14103   int UNUSED written = 0;
14104   IADDR UNUSED pc = abuf->addr;
14105   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14106
14107 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))))) {
14108   {
14109     UQI opval = 3;
14110     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14111     written |= (1 << 1);
14112     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14113   }
14114 } else {
14115   {
14116     UQI opval = 2;
14117     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14118     written |= (1 << 1);
14119     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14120   }
14121 }
14122
14123   abuf->written = written;
14124   return vpc;
14125 #undef FLD
14126 }
14127
14128 /* ckls: ckls$pack $ICCi_3,$CRj_int */
14129
14130 static SEM_PC
14131 SEM_FN_NAME (frvbf,ckls) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14132 {
14133 #define FLD(f) abuf->fields.sfmt_cckeq.f
14134   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14135   int UNUSED written = 0;
14136   IADDR UNUSED pc = abuf->addr;
14137   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14138
14139 if (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 4), 2)))) {
14140   {
14141     UQI opval = 3;
14142     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14143     written |= (1 << 1);
14144     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14145   }
14146 } else {
14147   {
14148     UQI opval = 2;
14149     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14150     written |= (1 << 1);
14151     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14152   }
14153 }
14154
14155   abuf->written = written;
14156   return vpc;
14157 #undef FLD
14158 }
14159
14160 /* ckhi: ckhi$pack $ICCi_3,$CRj_int */
14161
14162 static SEM_PC
14163 SEM_FN_NAME (frvbf,ckhi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14164 {
14165 #define FLD(f) abuf->fields.sfmt_cckeq.f
14166   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14167   int UNUSED written = 0;
14168   IADDR UNUSED pc = abuf->addr;
14169   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14170
14171 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))))) {
14172   {
14173     UQI opval = 3;
14174     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14175     written |= (1 << 1);
14176     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14177   }
14178 } else {
14179   {
14180     UQI opval = 2;
14181     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14182     written |= (1 << 1);
14183     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14184   }
14185 }
14186
14187   abuf->written = written;
14188   return vpc;
14189 #undef FLD
14190 }
14191
14192 /* ckc: ckc$pack $ICCi_3,$CRj_int */
14193
14194 static SEM_PC
14195 SEM_FN_NAME (frvbf,ckc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14196 {
14197 #define FLD(f) abuf->fields.sfmt_cckeq.f
14198   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14199   int UNUSED written = 0;
14200   IADDR UNUSED pc = abuf->addr;
14201   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14202
14203 if (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 1))) {
14204   {
14205     UQI opval = 3;
14206     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14207     written |= (1 << 1);
14208     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14209   }
14210 } else {
14211   {
14212     UQI opval = 2;
14213     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14214     written |= (1 << 1);
14215     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14216   }
14217 }
14218
14219   abuf->written = written;
14220   return vpc;
14221 #undef FLD
14222 }
14223
14224 /* cknc: cknc$pack $ICCi_3,$CRj_int */
14225
14226 static SEM_PC
14227 SEM_FN_NAME (frvbf,cknc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14228 {
14229 #define FLD(f) abuf->fields.sfmt_cckeq.f
14230   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14231   int UNUSED written = 0;
14232   IADDR UNUSED pc = abuf->addr;
14233   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14234
14235 if (NOTBI (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 1)))) {
14236   {
14237     UQI opval = 3;
14238     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14239     written |= (1 << 1);
14240     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14241   }
14242 } else {
14243   {
14244     UQI opval = 2;
14245     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14246     written |= (1 << 1);
14247     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14248   }
14249 }
14250
14251   abuf->written = written;
14252   return vpc;
14253 #undef FLD
14254 }
14255
14256 /* ckn: ckn$pack $ICCi_3,$CRj_int */
14257
14258 static SEM_PC
14259 SEM_FN_NAME (frvbf,ckn) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14260 {
14261 #define FLD(f) abuf->fields.sfmt_cckeq.f
14262   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14263   int UNUSED written = 0;
14264   IADDR UNUSED pc = abuf->addr;
14265   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14266
14267 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 8), 3))) {
14268   {
14269     UQI opval = 3;
14270     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14271     written |= (1 << 1);
14272     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14273   }
14274 } else {
14275   {
14276     UQI opval = 2;
14277     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14278     written |= (1 << 1);
14279     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14280   }
14281 }
14282
14283   abuf->written = written;
14284   return vpc;
14285 #undef FLD
14286 }
14287
14288 /* ckp: ckp$pack $ICCi_3,$CRj_int */
14289
14290 static SEM_PC
14291 SEM_FN_NAME (frvbf,ckp) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14292 {
14293 #define FLD(f) abuf->fields.sfmt_cckeq.f
14294   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14295   int UNUSED written = 0;
14296   IADDR UNUSED pc = abuf->addr;
14297   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14298
14299 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 8), 3)))) {
14300   {
14301     UQI opval = 3;
14302     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14303     written |= (1 << 1);
14304     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14305   }
14306 } else {
14307   {
14308     UQI opval = 2;
14309     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14310     written |= (1 << 1);
14311     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14312   }
14313 }
14314
14315   abuf->written = written;
14316   return vpc;
14317 #undef FLD
14318 }
14319
14320 /* ckv: ckv$pack $ICCi_3,$CRj_int */
14321
14322 static SEM_PC
14323 SEM_FN_NAME (frvbf,ckv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14324 {
14325 #define FLD(f) abuf->fields.sfmt_cckeq.f
14326   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14327   int UNUSED written = 0;
14328   IADDR UNUSED pc = abuf->addr;
14329   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14330
14331 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 2), 1))) {
14332   {
14333     UQI opval = 3;
14334     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14335     written |= (1 << 1);
14336     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14337   }
14338 } else {
14339   {
14340     UQI opval = 2;
14341     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14342     written |= (1 << 1);
14343     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14344   }
14345 }
14346
14347   abuf->written = written;
14348   return vpc;
14349 #undef FLD
14350 }
14351
14352 /* cknv: cknv$pack $ICCi_3,$CRj_int */
14353
14354 static SEM_PC
14355 SEM_FN_NAME (frvbf,cknv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14356 {
14357 #define FLD(f) abuf->fields.sfmt_cckeq.f
14358   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14359   int UNUSED written = 0;
14360   IADDR UNUSED pc = abuf->addr;
14361   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14362
14363 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 2), 1)))) {
14364   {
14365     UQI opval = 3;
14366     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14367     written |= (1 << 1);
14368     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14369   }
14370 } else {
14371   {
14372     UQI opval = 2;
14373     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14374     written |= (1 << 1);
14375     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14376   }
14377 }
14378
14379   abuf->written = written;
14380   return vpc;
14381 #undef FLD
14382 }
14383
14384 /* fckra: fckra$pack $CRj_float */
14385
14386 static SEM_PC
14387 SEM_FN_NAME (frvbf,fckra) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14388 {
14389 #define FLD(f) abuf->fields.sfmt_cfckne.f
14390   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14391   int UNUSED written = 0;
14392   IADDR UNUSED pc = abuf->addr;
14393   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14394
14395   {
14396     UQI opval = 3;
14397     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14398     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14399   }
14400
14401   return vpc;
14402 #undef FLD
14403 }
14404
14405 /* fckno: fckno$pack $CRj_float */
14406
14407 static SEM_PC
14408 SEM_FN_NAME (frvbf,fckno) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14409 {
14410 #define FLD(f) abuf->fields.sfmt_cfckne.f
14411   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14412   int UNUSED written = 0;
14413   IADDR UNUSED pc = abuf->addr;
14414   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14415
14416   {
14417     UQI opval = 2;
14418     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14419     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14420   }
14421
14422   return vpc;
14423 #undef FLD
14424 }
14425
14426 /* fckne: fckne$pack $FCCi_3,$CRj_float */
14427
14428 static SEM_PC
14429 SEM_FN_NAME (frvbf,fckne) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14430 {
14431 #define FLD(f) abuf->fields.sfmt_cfckne.f
14432   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14433   int UNUSED written = 0;
14434   IADDR UNUSED pc = abuf->addr;
14435   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14436
14437 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))))) {
14438   {
14439     UQI opval = 3;
14440     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14441     written |= (1 << 1);
14442     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14443   }
14444 } else {
14445   {
14446     UQI opval = 2;
14447     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14448     written |= (1 << 1);
14449     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14450   }
14451 }
14452
14453   abuf->written = written;
14454   return vpc;
14455 #undef FLD
14456 }
14457
14458 /* fckeq: fckeq$pack $FCCi_3,$CRj_float */
14459
14460 static SEM_PC
14461 SEM_FN_NAME (frvbf,fckeq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14462 {
14463 #define FLD(f) abuf->fields.sfmt_cfckne.f
14464   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14465   int UNUSED written = 0;
14466   IADDR UNUSED pc = abuf->addr;
14467   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14468
14469 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 8), 3))) {
14470   {
14471     UQI opval = 3;
14472     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14473     written |= (1 << 1);
14474     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14475   }
14476 } else {
14477   {
14478     UQI opval = 2;
14479     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14480     written |= (1 << 1);
14481     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14482   }
14483 }
14484
14485   abuf->written = written;
14486   return vpc;
14487 #undef FLD
14488 }
14489
14490 /* fcklg: fcklg$pack $FCCi_3,$CRj_float */
14491
14492 static SEM_PC
14493 SEM_FN_NAME (frvbf,fcklg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14494 {
14495 #define FLD(f) abuf->fields.sfmt_cfckne.f
14496   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14497   int UNUSED written = 0;
14498   IADDR UNUSED pc = abuf->addr;
14499   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14500
14501 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)))) {
14502   {
14503     UQI opval = 3;
14504     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14505     written |= (1 << 1);
14506     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14507   }
14508 } else {
14509   {
14510     UQI opval = 2;
14511     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14512     written |= (1 << 1);
14513     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14514   }
14515 }
14516
14517   abuf->written = written;
14518   return vpc;
14519 #undef FLD
14520 }
14521
14522 /* fckue: fckue$pack $FCCi_3,$CRj_float */
14523
14524 static SEM_PC
14525 SEM_FN_NAME (frvbf,fckue) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14526 {
14527 #define FLD(f) abuf->fields.sfmt_cfckne.f
14528   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14529   int UNUSED written = 0;
14530   IADDR UNUSED pc = abuf->addr;
14531   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14532
14533 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 8), 3)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 1)))) {
14534   {
14535     UQI opval = 3;
14536     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14537     written |= (1 << 1);
14538     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14539   }
14540 } else {
14541   {
14542     UQI opval = 2;
14543     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14544     written |= (1 << 1);
14545     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14546   }
14547 }
14548
14549   abuf->written = written;
14550   return vpc;
14551 #undef FLD
14552 }
14553
14554 /* fckul: fckul$pack $FCCi_3,$CRj_float */
14555
14556 static SEM_PC
14557 SEM_FN_NAME (frvbf,fckul) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14558 {
14559 #define FLD(f) abuf->fields.sfmt_cfckne.f
14560   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14561   int UNUSED written = 0;
14562   IADDR UNUSED pc = abuf->addr;
14563   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14564
14565 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 4), 2)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 1)))) {
14566   {
14567     UQI opval = 3;
14568     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14569     written |= (1 << 1);
14570     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14571   }
14572 } else {
14573   {
14574     UQI opval = 2;
14575     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14576     written |= (1 << 1);
14577     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14578   }
14579 }
14580
14581   abuf->written = written;
14582   return vpc;
14583 #undef FLD
14584 }
14585
14586 /* fckge: fckge$pack $FCCi_3,$CRj_float */
14587
14588 static SEM_PC
14589 SEM_FN_NAME (frvbf,fckge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14590 {
14591 #define FLD(f) abuf->fields.sfmt_cfckne.f
14592   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14593   int UNUSED written = 0;
14594   IADDR UNUSED pc = abuf->addr;
14595   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14596
14597 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)))) {
14598   {
14599     UQI opval = 3;
14600     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14601     written |= (1 << 1);
14602     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14603   }
14604 } else {
14605   {
14606     UQI opval = 2;
14607     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14608     written |= (1 << 1);
14609     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14610   }
14611 }
14612
14613   abuf->written = written;
14614   return vpc;
14615 #undef FLD
14616 }
14617
14618 /* fcklt: fcklt$pack $FCCi_3,$CRj_float */
14619
14620 static SEM_PC
14621 SEM_FN_NAME (frvbf,fcklt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14622 {
14623 #define FLD(f) abuf->fields.sfmt_cfckne.f
14624   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14625   int UNUSED written = 0;
14626   IADDR UNUSED pc = abuf->addr;
14627   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14628
14629 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 4), 2))) {
14630   {
14631     UQI opval = 3;
14632     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14633     written |= (1 << 1);
14634     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14635   }
14636 } else {
14637   {
14638     UQI opval = 2;
14639     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14640     written |= (1 << 1);
14641     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14642   }
14643 }
14644
14645   abuf->written = written;
14646   return vpc;
14647 #undef FLD
14648 }
14649
14650 /* fckuge: fckuge$pack $FCCi_3,$CRj_float */
14651
14652 static SEM_PC
14653 SEM_FN_NAME (frvbf,fckuge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14654 {
14655 #define FLD(f) abuf->fields.sfmt_cfckne.f
14656   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14657   int UNUSED written = 0;
14658   IADDR UNUSED pc = abuf->addr;
14659   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14660
14661 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))))) {
14662   {
14663     UQI opval = 3;
14664     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14665     written |= (1 << 1);
14666     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14667   }
14668 } else {
14669   {
14670     UQI opval = 2;
14671     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14672     written |= (1 << 1);
14673     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14674   }
14675 }
14676
14677   abuf->written = written;
14678   return vpc;
14679 #undef FLD
14680 }
14681
14682 /* fckug: fckug$pack $FCCi_3,$CRj_float */
14683
14684 static SEM_PC
14685 SEM_FN_NAME (frvbf,fckug) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14686 {
14687 #define FLD(f) abuf->fields.sfmt_cfckne.f
14688   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14689   int UNUSED written = 0;
14690   IADDR UNUSED pc = abuf->addr;
14691   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14692
14693 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 1)))) {
14694   {
14695     UQI opval = 3;
14696     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14697     written |= (1 << 1);
14698     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14699   }
14700 } else {
14701   {
14702     UQI opval = 2;
14703     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14704     written |= (1 << 1);
14705     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14706   }
14707 }
14708
14709   abuf->written = written;
14710   return vpc;
14711 #undef FLD
14712 }
14713
14714 /* fckle: fckle$pack $FCCi_3,$CRj_float */
14715
14716 static SEM_PC
14717 SEM_FN_NAME (frvbf,fckle) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14718 {
14719 #define FLD(f) abuf->fields.sfmt_cfckne.f
14720   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14721   int UNUSED written = 0;
14722   IADDR UNUSED pc = abuf->addr;
14723   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14724
14725 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)))) {
14726   {
14727     UQI opval = 3;
14728     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14729     written |= (1 << 1);
14730     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14731   }
14732 } else {
14733   {
14734     UQI opval = 2;
14735     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14736     written |= (1 << 1);
14737     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14738   }
14739 }
14740
14741   abuf->written = written;
14742   return vpc;
14743 #undef FLD
14744 }
14745
14746 /* fckgt: fckgt$pack $FCCi_3,$CRj_float */
14747
14748 static SEM_PC
14749 SEM_FN_NAME (frvbf,fckgt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14750 {
14751 #define FLD(f) abuf->fields.sfmt_cfckne.f
14752   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14753   int UNUSED written = 0;
14754   IADDR UNUSED pc = abuf->addr;
14755   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14756
14757 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 2), 1))) {
14758   {
14759     UQI opval = 3;
14760     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14761     written |= (1 << 1);
14762     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14763   }
14764 } else {
14765   {
14766     UQI opval = 2;
14767     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14768     written |= (1 << 1);
14769     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14770   }
14771 }
14772
14773   abuf->written = written;
14774   return vpc;
14775 #undef FLD
14776 }
14777
14778 /* fckule: fckule$pack $FCCi_3,$CRj_float */
14779
14780 static SEM_PC
14781 SEM_FN_NAME (frvbf,fckule) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14782 {
14783 #define FLD(f) abuf->fields.sfmt_cfckne.f
14784   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14785   int UNUSED written = 0;
14786   IADDR UNUSED pc = abuf->addr;
14787   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14788
14789 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))))) {
14790   {
14791     UQI opval = 3;
14792     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14793     written |= (1 << 1);
14794     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14795   }
14796 } else {
14797   {
14798     UQI opval = 2;
14799     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14800     written |= (1 << 1);
14801     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14802   }
14803 }
14804
14805   abuf->written = written;
14806   return vpc;
14807 #undef FLD
14808 }
14809
14810 /* fcku: fcku$pack $FCCi_3,$CRj_float */
14811
14812 static SEM_PC
14813 SEM_FN_NAME (frvbf,fcku) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14814 {
14815 #define FLD(f) abuf->fields.sfmt_cfckne.f
14816   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14817   int UNUSED written = 0;
14818   IADDR UNUSED pc = abuf->addr;
14819   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14820
14821 if (TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 1))) {
14822   {
14823     UQI opval = 3;
14824     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14825     written |= (1 << 1);
14826     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14827   }
14828 } else {
14829   {
14830     UQI opval = 2;
14831     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14832     written |= (1 << 1);
14833     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14834   }
14835 }
14836
14837   abuf->written = written;
14838   return vpc;
14839 #undef FLD
14840 }
14841
14842 /* fcko: fcko$pack $FCCi_3,$CRj_float */
14843
14844 static SEM_PC
14845 SEM_FN_NAME (frvbf,fcko) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14846 {
14847 #define FLD(f) abuf->fields.sfmt_cfckne.f
14848   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14849   int UNUSED written = 0;
14850   IADDR UNUSED pc = abuf->addr;
14851   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14852
14853 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))))) {
14854   {
14855     UQI opval = 3;
14856     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14857     written |= (1 << 1);
14858     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14859   }
14860 } else {
14861   {
14862     UQI opval = 2;
14863     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14864     written |= (1 << 1);
14865     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14866   }
14867 }
14868
14869   abuf->written = written;
14870   return vpc;
14871 #undef FLD
14872 }
14873
14874 /* cckra: cckra$pack $CRj_int,$CCi,$cond */
14875
14876 static SEM_PC
14877 SEM_FN_NAME (frvbf,cckra) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14878 {
14879 #define FLD(f) abuf->fields.sfmt_cckeq.f
14880   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14881   int UNUSED written = 0;
14882   IADDR UNUSED pc = abuf->addr;
14883   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14884
14885 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
14886   {
14887     UQI opval = 3;
14888     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14889     written |= (1 << 2);
14890     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14891   }
14892 } else {
14893   {
14894     UQI opval = 0;
14895     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14896     written |= (1 << 2);
14897     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14898   }
14899 }
14900
14901   abuf->written = written;
14902   return vpc;
14903 #undef FLD
14904 }
14905
14906 /* cckno: cckno$pack $CRj_int,$CCi,$cond */
14907
14908 static SEM_PC
14909 SEM_FN_NAME (frvbf,cckno) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14910 {
14911 #define FLD(f) abuf->fields.sfmt_cckeq.f
14912   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14913   int UNUSED written = 0;
14914   IADDR UNUSED pc = abuf->addr;
14915   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14916
14917 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
14918   {
14919     UQI opval = 2;
14920     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14921     written |= (1 << 2);
14922     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14923   }
14924 } else {
14925   {
14926     UQI opval = 0;
14927     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14928     written |= (1 << 2);
14929     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14930   }
14931 }
14932
14933   abuf->written = written;
14934   return vpc;
14935 #undef FLD
14936 }
14937
14938 /* cckeq: cckeq$pack $ICCi_3,$CRj_int,$CCi,$cond */
14939
14940 static SEM_PC
14941 SEM_FN_NAME (frvbf,cckeq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14942 {
14943 #define FLD(f) abuf->fields.sfmt_cckeq.f
14944   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14945   int UNUSED written = 0;
14946   IADDR UNUSED pc = abuf->addr;
14947   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14948
14949 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
14950 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 4), 2))) {
14951   {
14952     UQI opval = 3;
14953     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14954     written |= (1 << 3);
14955     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14956   }
14957 } else {
14958   {
14959     UQI opval = 2;
14960     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14961     written |= (1 << 3);
14962     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14963   }
14964 }
14965 } else {
14966   {
14967     UQI opval = 0;
14968     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14969     written |= (1 << 3);
14970     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14971   }
14972 }
14973
14974   abuf->written = written;
14975   return vpc;
14976 #undef FLD
14977 }
14978
14979 /* cckne: cckne$pack $ICCi_3,$CRj_int,$CCi,$cond */
14980
14981 static SEM_PC
14982 SEM_FN_NAME (frvbf,cckne) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14983 {
14984 #define FLD(f) abuf->fields.sfmt_cckeq.f
14985   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14986   int UNUSED written = 0;
14987   IADDR UNUSED pc = abuf->addr;
14988   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14989
14990 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
14991 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 4), 2)))) {
14992   {
14993     UQI opval = 3;
14994     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14995     written |= (1 << 3);
14996     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14997   }
14998 } else {
14999   {
15000     UQI opval = 2;
15001     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15002     written |= (1 << 3);
15003     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15004   }
15005 }
15006 } else {
15007   {
15008     UQI opval = 0;
15009     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15010     written |= (1 << 3);
15011     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15012   }
15013 }
15014
15015   abuf->written = written;
15016   return vpc;
15017 #undef FLD
15018 }
15019
15020 /* cckle: cckle$pack $ICCi_3,$CRj_int,$CCi,$cond */
15021
15022 static SEM_PC
15023 SEM_FN_NAME (frvbf,cckle) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15024 {
15025 #define FLD(f) abuf->fields.sfmt_cckeq.f
15026   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15027   int UNUSED written = 0;
15028   IADDR UNUSED pc = abuf->addr;
15029   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15030
15031 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15032 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))))) {
15033   {
15034     UQI opval = 3;
15035     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15036     written |= (1 << 3);
15037     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15038   }
15039 } else {
15040   {
15041     UQI opval = 2;
15042     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15043     written |= (1 << 3);
15044     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15045   }
15046 }
15047 } else {
15048   {
15049     UQI opval = 0;
15050     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15051     written |= (1 << 3);
15052     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15053   }
15054 }
15055
15056   abuf->written = written;
15057   return vpc;
15058 #undef FLD
15059 }
15060
15061 /* cckgt: cckgt$pack $ICCi_3,$CRj_int,$CCi,$cond */
15062
15063 static SEM_PC
15064 SEM_FN_NAME (frvbf,cckgt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15065 {
15066 #define FLD(f) abuf->fields.sfmt_cckeq.f
15067   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15068   int UNUSED written = 0;
15069   IADDR UNUSED pc = abuf->addr;
15070   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15071
15072 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15073 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)))))) {
15074   {
15075     UQI opval = 3;
15076     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15077     written |= (1 << 3);
15078     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15079   }
15080 } else {
15081   {
15082     UQI opval = 2;
15083     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15084     written |= (1 << 3);
15085     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15086   }
15087 }
15088 } else {
15089   {
15090     UQI opval = 0;
15091     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15092     written |= (1 << 3);
15093     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15094   }
15095 }
15096
15097   abuf->written = written;
15098   return vpc;
15099 #undef FLD
15100 }
15101
15102 /* ccklt: ccklt$pack $ICCi_3,$CRj_int,$CCi,$cond */
15103
15104 static SEM_PC
15105 SEM_FN_NAME (frvbf,ccklt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15106 {
15107 #define FLD(f) abuf->fields.sfmt_cckeq.f
15108   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15109   int UNUSED written = 0;
15110   IADDR UNUSED pc = abuf->addr;
15111   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15112
15113 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15114 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)))) {
15115   {
15116     UQI opval = 3;
15117     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15118     written |= (1 << 3);
15119     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15120   }
15121 } else {
15122   {
15123     UQI opval = 2;
15124     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15125     written |= (1 << 3);
15126     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15127   }
15128 }
15129 } else {
15130   {
15131     UQI opval = 0;
15132     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15133     written |= (1 << 3);
15134     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15135   }
15136 }
15137
15138   abuf->written = written;
15139   return vpc;
15140 #undef FLD
15141 }
15142
15143 /* cckge: cckge$pack $ICCi_3,$CRj_int,$CCi,$cond */
15144
15145 static SEM_PC
15146 SEM_FN_NAME (frvbf,cckge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15147 {
15148 #define FLD(f) abuf->fields.sfmt_cckeq.f
15149   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15150   int UNUSED written = 0;
15151   IADDR UNUSED pc = abuf->addr;
15152   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15153
15154 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15155 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))))) {
15156   {
15157     UQI opval = 3;
15158     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15159     written |= (1 << 3);
15160     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15161   }
15162 } else {
15163   {
15164     UQI opval = 2;
15165     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15166     written |= (1 << 3);
15167     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15168   }
15169 }
15170 } else {
15171   {
15172     UQI opval = 0;
15173     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15174     written |= (1 << 3);
15175     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15176   }
15177 }
15178
15179   abuf->written = written;
15180   return vpc;
15181 #undef FLD
15182 }
15183
15184 /* cckls: cckls$pack $ICCi_3,$CRj_int,$CCi,$cond */
15185
15186 static SEM_PC
15187 SEM_FN_NAME (frvbf,cckls) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15188 {
15189 #define FLD(f) abuf->fields.sfmt_cckeq.f
15190   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15191   int UNUSED written = 0;
15192   IADDR UNUSED pc = abuf->addr;
15193   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15194
15195 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15196 if (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 4), 2)))) {
15197   {
15198     UQI opval = 3;
15199     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15200     written |= (1 << 3);
15201     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15202   }
15203 } else {
15204   {
15205     UQI opval = 2;
15206     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15207     written |= (1 << 3);
15208     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15209   }
15210 }
15211 } else {
15212   {
15213     UQI opval = 0;
15214     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15215     written |= (1 << 3);
15216     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15217   }
15218 }
15219
15220   abuf->written = written;
15221   return vpc;
15222 #undef FLD
15223 }
15224
15225 /* cckhi: cckhi$pack $ICCi_3,$CRj_int,$CCi,$cond */
15226
15227 static SEM_PC
15228 SEM_FN_NAME (frvbf,cckhi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15229 {
15230 #define FLD(f) abuf->fields.sfmt_cckeq.f
15231   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15232   int UNUSED written = 0;
15233   IADDR UNUSED pc = abuf->addr;
15234   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15235
15236 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15237 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))))) {
15238   {
15239     UQI opval = 3;
15240     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15241     written |= (1 << 3);
15242     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15243   }
15244 } else {
15245   {
15246     UQI opval = 2;
15247     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15248     written |= (1 << 3);
15249     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15250   }
15251 }
15252 } else {
15253   {
15254     UQI opval = 0;
15255     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15256     written |= (1 << 3);
15257     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15258   }
15259 }
15260
15261   abuf->written = written;
15262   return vpc;
15263 #undef FLD
15264 }
15265
15266 /* cckc: cckc$pack $ICCi_3,$CRj_int,$CCi,$cond */
15267
15268 static SEM_PC
15269 SEM_FN_NAME (frvbf,cckc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15270 {
15271 #define FLD(f) abuf->fields.sfmt_cckeq.f
15272   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15273   int UNUSED written = 0;
15274   IADDR UNUSED pc = abuf->addr;
15275   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15276
15277 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15278 if (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 1))) {
15279   {
15280     UQI opval = 3;
15281     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15282     written |= (1 << 3);
15283     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15284   }
15285 } else {
15286   {
15287     UQI opval = 2;
15288     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15289     written |= (1 << 3);
15290     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15291   }
15292 }
15293 } else {
15294   {
15295     UQI opval = 0;
15296     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15297     written |= (1 << 3);
15298     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15299   }
15300 }
15301
15302   abuf->written = written;
15303   return vpc;
15304 #undef FLD
15305 }
15306
15307 /* ccknc: ccknc$pack $ICCi_3,$CRj_int,$CCi,$cond */
15308
15309 static SEM_PC
15310 SEM_FN_NAME (frvbf,ccknc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15311 {
15312 #define FLD(f) abuf->fields.sfmt_cckeq.f
15313   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15314   int UNUSED written = 0;
15315   IADDR UNUSED pc = abuf->addr;
15316   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15317
15318 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15319 if (NOTBI (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 1)))) {
15320   {
15321     UQI opval = 3;
15322     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15323     written |= (1 << 3);
15324     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15325   }
15326 } else {
15327   {
15328     UQI opval = 2;
15329     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15330     written |= (1 << 3);
15331     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15332   }
15333 }
15334 } else {
15335   {
15336     UQI opval = 0;
15337     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15338     written |= (1 << 3);
15339     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15340   }
15341 }
15342
15343   abuf->written = written;
15344   return vpc;
15345 #undef FLD
15346 }
15347
15348 /* cckn: cckn$pack $ICCi_3,$CRj_int,$CCi,$cond */
15349
15350 static SEM_PC
15351 SEM_FN_NAME (frvbf,cckn) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15352 {
15353 #define FLD(f) abuf->fields.sfmt_cckeq.f
15354   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15355   int UNUSED written = 0;
15356   IADDR UNUSED pc = abuf->addr;
15357   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15358
15359 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15360 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 8), 3))) {
15361   {
15362     UQI opval = 3;
15363     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15364     written |= (1 << 3);
15365     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15366   }
15367 } else {
15368   {
15369     UQI opval = 2;
15370     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15371     written |= (1 << 3);
15372     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15373   }
15374 }
15375 } else {
15376   {
15377     UQI opval = 0;
15378     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15379     written |= (1 << 3);
15380     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15381   }
15382 }
15383
15384   abuf->written = written;
15385   return vpc;
15386 #undef FLD
15387 }
15388
15389 /* cckp: cckp$pack $ICCi_3,$CRj_int,$CCi,$cond */
15390
15391 static SEM_PC
15392 SEM_FN_NAME (frvbf,cckp) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15393 {
15394 #define FLD(f) abuf->fields.sfmt_cckeq.f
15395   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15396   int UNUSED written = 0;
15397   IADDR UNUSED pc = abuf->addr;
15398   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15399
15400 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15401 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 8), 3)))) {
15402   {
15403     UQI opval = 3;
15404     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15405     written |= (1 << 3);
15406     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15407   }
15408 } else {
15409   {
15410     UQI opval = 2;
15411     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15412     written |= (1 << 3);
15413     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15414   }
15415 }
15416 } else {
15417   {
15418     UQI opval = 0;
15419     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15420     written |= (1 << 3);
15421     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15422   }
15423 }
15424
15425   abuf->written = written;
15426   return vpc;
15427 #undef FLD
15428 }
15429
15430 /* cckv: cckv$pack $ICCi_3,$CRj_int,$CCi,$cond */
15431
15432 static SEM_PC
15433 SEM_FN_NAME (frvbf,cckv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15434 {
15435 #define FLD(f) abuf->fields.sfmt_cckeq.f
15436   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15437   int UNUSED written = 0;
15438   IADDR UNUSED pc = abuf->addr;
15439   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15440
15441 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15442 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 2), 1))) {
15443   {
15444     UQI opval = 3;
15445     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15446     written |= (1 << 3);
15447     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15448   }
15449 } else {
15450   {
15451     UQI opval = 2;
15452     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15453     written |= (1 << 3);
15454     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15455   }
15456 }
15457 } else {
15458   {
15459     UQI opval = 0;
15460     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15461     written |= (1 << 3);
15462     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15463   }
15464 }
15465
15466   abuf->written = written;
15467   return vpc;
15468 #undef FLD
15469 }
15470
15471 /* ccknv: ccknv$pack $ICCi_3,$CRj_int,$CCi,$cond */
15472
15473 static SEM_PC
15474 SEM_FN_NAME (frvbf,ccknv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15475 {
15476 #define FLD(f) abuf->fields.sfmt_cckeq.f
15477   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15478   int UNUSED written = 0;
15479   IADDR UNUSED pc = abuf->addr;
15480   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15481
15482 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15483 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 2), 1)))) {
15484   {
15485     UQI opval = 3;
15486     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15487     written |= (1 << 3);
15488     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15489   }
15490 } else {
15491   {
15492     UQI opval = 2;
15493     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15494     written |= (1 << 3);
15495     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15496   }
15497 }
15498 } else {
15499   {
15500     UQI opval = 0;
15501     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15502     written |= (1 << 3);
15503     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15504   }
15505 }
15506
15507   abuf->written = written;
15508   return vpc;
15509 #undef FLD
15510 }
15511
15512 /* cfckra: cfckra$pack $CRj_float,$CCi,$cond */
15513
15514 static SEM_PC
15515 SEM_FN_NAME (frvbf,cfckra) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15516 {
15517 #define FLD(f) abuf->fields.sfmt_cfckne.f
15518   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15519   int UNUSED written = 0;
15520   IADDR UNUSED pc = abuf->addr;
15521   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15522
15523 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15524   {
15525     UQI opval = 3;
15526     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15527     written |= (1 << 2);
15528     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15529   }
15530 } else {
15531   {
15532     UQI opval = 0;
15533     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15534     written |= (1 << 2);
15535     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15536   }
15537 }
15538
15539   abuf->written = written;
15540   return vpc;
15541 #undef FLD
15542 }
15543
15544 /* cfckno: cfckno$pack $CRj_float,$CCi,$cond */
15545
15546 static SEM_PC
15547 SEM_FN_NAME (frvbf,cfckno) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15548 {
15549 #define FLD(f) abuf->fields.sfmt_cfckne.f
15550   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15551   int UNUSED written = 0;
15552   IADDR UNUSED pc = abuf->addr;
15553   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15554
15555 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15556   {
15557     UQI opval = 2;
15558     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15559     written |= (1 << 2);
15560     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15561   }
15562 } else {
15563   {
15564     UQI opval = 0;
15565     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15566     written |= (1 << 2);
15567     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15568   }
15569 }
15570
15571   abuf->written = written;
15572   return vpc;
15573 #undef FLD
15574 }
15575
15576 /* cfckne: cfckne$pack $FCCi_3,$CRj_float,$CCi,$cond */
15577
15578 static SEM_PC
15579 SEM_FN_NAME (frvbf,cfckne) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15580 {
15581 #define FLD(f) abuf->fields.sfmt_cfckne.f
15582   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15583   int UNUSED written = 0;
15584   IADDR UNUSED pc = abuf->addr;
15585   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15586
15587 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15588 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))))) {
15589   {
15590     UQI opval = 3;
15591     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15592     written |= (1 << 3);
15593     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15594   }
15595 } else {
15596   {
15597     UQI opval = 2;
15598     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15599     written |= (1 << 3);
15600     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15601   }
15602 }
15603 } else {
15604   {
15605     UQI opval = 0;
15606     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15607     written |= (1 << 3);
15608     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15609   }
15610 }
15611
15612   abuf->written = written;
15613   return vpc;
15614 #undef FLD
15615 }
15616
15617 /* cfckeq: cfckeq$pack $FCCi_3,$CRj_float,$CCi,$cond */
15618
15619 static SEM_PC
15620 SEM_FN_NAME (frvbf,cfckeq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15621 {
15622 #define FLD(f) abuf->fields.sfmt_cfckne.f
15623   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15624   int UNUSED written = 0;
15625   IADDR UNUSED pc = abuf->addr;
15626   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15627
15628 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15629 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 8), 3))) {
15630   {
15631     UQI opval = 3;
15632     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15633     written |= (1 << 3);
15634     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15635   }
15636 } else {
15637   {
15638     UQI opval = 2;
15639     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15640     written |= (1 << 3);
15641     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15642   }
15643 }
15644 } else {
15645   {
15646     UQI opval = 0;
15647     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15648     written |= (1 << 3);
15649     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15650   }
15651 }
15652
15653   abuf->written = written;
15654   return vpc;
15655 #undef FLD
15656 }
15657
15658 /* cfcklg: cfcklg$pack $FCCi_3,$CRj_float,$CCi,$cond */
15659
15660 static SEM_PC
15661 SEM_FN_NAME (frvbf,cfcklg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15662 {
15663 #define FLD(f) abuf->fields.sfmt_cfckne.f
15664   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15665   int UNUSED written = 0;
15666   IADDR UNUSED pc = abuf->addr;
15667   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15668
15669 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15670 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)))) {
15671   {
15672     UQI opval = 3;
15673     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15674     written |= (1 << 3);
15675     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15676   }
15677 } else {
15678   {
15679     UQI opval = 2;
15680     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15681     written |= (1 << 3);
15682     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15683   }
15684 }
15685 } else {
15686   {
15687     UQI opval = 0;
15688     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15689     written |= (1 << 3);
15690     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15691   }
15692 }
15693
15694   abuf->written = written;
15695   return vpc;
15696 #undef FLD
15697 }
15698
15699 /* cfckue: cfckue$pack $FCCi_3,$CRj_float,$CCi,$cond */
15700
15701 static SEM_PC
15702 SEM_FN_NAME (frvbf,cfckue) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15703 {
15704 #define FLD(f) abuf->fields.sfmt_cfckne.f
15705   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15706   int UNUSED written = 0;
15707   IADDR UNUSED pc = abuf->addr;
15708   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15709
15710 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15711 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 8), 3)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 1)))) {
15712   {
15713     UQI opval = 3;
15714     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15715     written |= (1 << 3);
15716     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15717   }
15718 } else {
15719   {
15720     UQI opval = 2;
15721     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15722     written |= (1 << 3);
15723     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15724   }
15725 }
15726 } else {
15727   {
15728     UQI opval = 0;
15729     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15730     written |= (1 << 3);
15731     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15732   }
15733 }
15734
15735   abuf->written = written;
15736   return vpc;
15737 #undef FLD
15738 }
15739
15740 /* cfckul: cfckul$pack $FCCi_3,$CRj_float,$CCi,$cond */
15741
15742 static SEM_PC
15743 SEM_FN_NAME (frvbf,cfckul) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15744 {
15745 #define FLD(f) abuf->fields.sfmt_cfckne.f
15746   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15747   int UNUSED written = 0;
15748   IADDR UNUSED pc = abuf->addr;
15749   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15750
15751 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15752 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 4), 2)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 1)))) {
15753   {
15754     UQI opval = 3;
15755     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15756     written |= (1 << 3);
15757     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15758   }
15759 } else {
15760   {
15761     UQI opval = 2;
15762     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15763     written |= (1 << 3);
15764     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15765   }
15766 }
15767 } else {
15768   {
15769     UQI opval = 0;
15770     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15771     written |= (1 << 3);
15772     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15773   }
15774 }
15775
15776   abuf->written = written;
15777   return vpc;
15778 #undef FLD
15779 }
15780
15781 /* cfckge: cfckge$pack $FCCi_3,$CRj_float,$CCi,$cond */
15782
15783 static SEM_PC
15784 SEM_FN_NAME (frvbf,cfckge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15785 {
15786 #define FLD(f) abuf->fields.sfmt_cfckne.f
15787   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15788   int UNUSED written = 0;
15789   IADDR UNUSED pc = abuf->addr;
15790   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15791
15792 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15793 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)))) {
15794   {
15795     UQI opval = 3;
15796     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15797     written |= (1 << 3);
15798     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15799   }
15800 } else {
15801   {
15802     UQI opval = 2;
15803     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15804     written |= (1 << 3);
15805     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15806   }
15807 }
15808 } else {
15809   {
15810     UQI opval = 0;
15811     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15812     written |= (1 << 3);
15813     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15814   }
15815 }
15816
15817   abuf->written = written;
15818   return vpc;
15819 #undef FLD
15820 }
15821
15822 /* cfcklt: cfcklt$pack $FCCi_3,$CRj_float,$CCi,$cond */
15823
15824 static SEM_PC
15825 SEM_FN_NAME (frvbf,cfcklt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15826 {
15827 #define FLD(f) abuf->fields.sfmt_cfckne.f
15828   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15829   int UNUSED written = 0;
15830   IADDR UNUSED pc = abuf->addr;
15831   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15832
15833 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15834 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 4), 2))) {
15835   {
15836     UQI opval = 3;
15837     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15838     written |= (1 << 3);
15839     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15840   }
15841 } else {
15842   {
15843     UQI opval = 2;
15844     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15845     written |= (1 << 3);
15846     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15847   }
15848 }
15849 } else {
15850   {
15851     UQI opval = 0;
15852     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15853     written |= (1 << 3);
15854     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15855   }
15856 }
15857
15858   abuf->written = written;
15859   return vpc;
15860 #undef FLD
15861 }
15862
15863 /* cfckuge: cfckuge$pack $FCCi_3,$CRj_float,$CCi,$cond */
15864
15865 static SEM_PC
15866 SEM_FN_NAME (frvbf,cfckuge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15867 {
15868 #define FLD(f) abuf->fields.sfmt_cfckne.f
15869   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15870   int UNUSED written = 0;
15871   IADDR UNUSED pc = abuf->addr;
15872   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15873
15874 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15875 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))))) {
15876   {
15877     UQI opval = 3;
15878     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15879     written |= (1 << 3);
15880     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15881   }
15882 } else {
15883   {
15884     UQI opval = 2;
15885     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15886     written |= (1 << 3);
15887     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15888   }
15889 }
15890 } else {
15891   {
15892     UQI opval = 0;
15893     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15894     written |= (1 << 3);
15895     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15896   }
15897 }
15898
15899   abuf->written = written;
15900   return vpc;
15901 #undef FLD
15902 }
15903
15904 /* cfckug: cfckug$pack $FCCi_3,$CRj_float,$CCi,$cond */
15905
15906 static SEM_PC
15907 SEM_FN_NAME (frvbf,cfckug) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15908 {
15909 #define FLD(f) abuf->fields.sfmt_cfckne.f
15910   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15911   int UNUSED written = 0;
15912   IADDR UNUSED pc = abuf->addr;
15913   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15914
15915 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15916 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 1)))) {
15917   {
15918     UQI opval = 3;
15919     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15920     written |= (1 << 3);
15921     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15922   }
15923 } else {
15924   {
15925     UQI opval = 2;
15926     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15927     written |= (1 << 3);
15928     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15929   }
15930 }
15931 } else {
15932   {
15933     UQI opval = 0;
15934     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15935     written |= (1 << 3);
15936     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15937   }
15938 }
15939
15940   abuf->written = written;
15941   return vpc;
15942 #undef FLD
15943 }
15944
15945 /* cfckle: cfckle$pack $FCCi_3,$CRj_float,$CCi,$cond */
15946
15947 static SEM_PC
15948 SEM_FN_NAME (frvbf,cfckle) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15949 {
15950 #define FLD(f) abuf->fields.sfmt_cfckne.f
15951   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15952   int UNUSED written = 0;
15953   IADDR UNUSED pc = abuf->addr;
15954   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15955
15956 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15957 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)))) {
15958   {
15959     UQI opval = 3;
15960     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15961     written |= (1 << 3);
15962     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15963   }
15964 } else {
15965   {
15966     UQI opval = 2;
15967     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15968     written |= (1 << 3);
15969     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15970   }
15971 }
15972 } else {
15973   {
15974     UQI opval = 0;
15975     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15976     written |= (1 << 3);
15977     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15978   }
15979 }
15980
15981   abuf->written = written;
15982   return vpc;
15983 #undef FLD
15984 }
15985
15986 /* cfckgt: cfckgt$pack $FCCi_3,$CRj_float,$CCi,$cond */
15987
15988 static SEM_PC
15989 SEM_FN_NAME (frvbf,cfckgt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15990 {
15991 #define FLD(f) abuf->fields.sfmt_cfckne.f
15992   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15993   int UNUSED written = 0;
15994   IADDR UNUSED pc = abuf->addr;
15995   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15996
15997 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15998 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 2), 1))) {
15999   {
16000     UQI opval = 3;
16001     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
16002     written |= (1 << 3);
16003     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
16004   }
16005 } else {
16006   {
16007     UQI opval = 2;
16008     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
16009     written |= (1 << 3);
16010     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
16011   }
16012 }
16013 } else {
16014   {
16015     UQI opval = 0;
16016     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
16017     written |= (1 << 3);
16018     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
16019   }
16020 }
16021
16022   abuf->written = written;
16023   return vpc;
16024 #undef FLD
16025 }
16026
16027 /* cfckule: cfckule$pack $FCCi_3,$CRj_float,$CCi,$cond */
16028
16029 static SEM_PC
16030 SEM_FN_NAME (frvbf,cfckule) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16031 {
16032 #define FLD(f) abuf->fields.sfmt_cfckne.f
16033   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16034   int UNUSED written = 0;
16035   IADDR UNUSED pc = abuf->addr;
16036   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16037
16038 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
16039 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))))) {
16040   {
16041     UQI opval = 3;
16042     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
16043     written |= (1 << 3);
16044     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
16045   }
16046 } else {
16047   {
16048     UQI opval = 2;
16049     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
16050     written |= (1 << 3);
16051     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
16052   }
16053 }
16054 } else {
16055   {
16056     UQI opval = 0;
16057     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
16058     written |= (1 << 3);
16059     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
16060   }
16061 }
16062
16063   abuf->written = written;
16064   return vpc;
16065 #undef FLD
16066 }
16067
16068 /* cfcku: cfcku$pack $FCCi_3,$CRj_float,$CCi,$cond */
16069
16070 static SEM_PC
16071 SEM_FN_NAME (frvbf,cfcku) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16072 {
16073 #define FLD(f) abuf->fields.sfmt_cfckne.f
16074   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16075   int UNUSED written = 0;
16076   IADDR UNUSED pc = abuf->addr;
16077   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16078
16079 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
16080 if (TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 1))) {
16081   {
16082     UQI opval = 3;
16083     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
16084     written |= (1 << 3);
16085     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
16086   }
16087 } else {
16088   {
16089     UQI opval = 2;
16090     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
16091     written |= (1 << 3);
16092     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
16093   }
16094 }
16095 } else {
16096   {
16097     UQI opval = 0;
16098     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
16099     written |= (1 << 3);
16100     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
16101   }
16102 }
16103
16104   abuf->written = written;
16105   return vpc;
16106 #undef FLD
16107 }
16108
16109 /* cfcko: cfcko$pack $FCCi_3,$CRj_float,$CCi,$cond */
16110
16111 static SEM_PC
16112 SEM_FN_NAME (frvbf,cfcko) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16113 {
16114 #define FLD(f) abuf->fields.sfmt_cfckne.f
16115   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16116   int UNUSED written = 0;
16117   IADDR UNUSED pc = abuf->addr;
16118   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16119
16120 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
16121 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))))) {
16122   {
16123     UQI opval = 3;
16124     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
16125     written |= (1 << 3);
16126     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
16127   }
16128 } else {
16129   {
16130     UQI opval = 2;
16131     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
16132     written |= (1 << 3);
16133     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
16134   }
16135 }
16136 } else {
16137   {
16138     UQI opval = 0;
16139     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
16140     written |= (1 << 3);
16141     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
16142   }
16143 }
16144
16145   abuf->written = written;
16146   return vpc;
16147 #undef FLD
16148 }
16149
16150 /* cjmpl: cjmpl$pack @($GRi,$GRj),$CCi,$cond */
16151
16152 static SEM_PC
16153 SEM_FN_NAME (frvbf,cjmpl) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16154 {
16155 #define FLD(f) abuf->fields.sfmt_cjmpl.f
16156   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16157   int UNUSED written = 0;
16158   IADDR UNUSED pc = abuf->addr;
16159   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16160
16161 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
16162 {
16163 if (EQSI (FLD (f_LI), 1)) {
16164 frvbf_set_write_next_vliw_addr_to_LR (current_cpu, 1);
16165 }
16166   {
16167     USI opval = ANDSI (ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), 0xfffffffc);
16168     sim_queue_pc_write (current_cpu, opval);
16169     written |= (1 << 6);
16170     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
16171   }
16172 frvbf_model_branch (current_cpu, pc, 2);
16173 }
16174 }
16175
16176   abuf->written = written;
16177   return vpc;
16178 #undef FLD
16179 }
16180
16181 /* ccalll: ccalll$pack @($GRi,$GRj),$CCi,$cond */
16182
16183 static SEM_PC
16184 SEM_FN_NAME (frvbf,ccalll) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16185 {
16186 #define FLD(f) abuf->fields.sfmt_cjmpl.f
16187   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16188   int UNUSED written = 0;
16189   IADDR UNUSED pc = abuf->addr;
16190   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16191
16192 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
16193 {
16194 if (EQSI (FLD (f_LI), 1)) {
16195 frvbf_set_write_next_vliw_addr_to_LR (current_cpu, 1);
16196 }
16197   {
16198     USI opval = ANDSI (ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), 0xfffffffc);
16199     sim_queue_pc_write (current_cpu, opval);
16200     written |= (1 << 6);
16201     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
16202   }
16203 frvbf_model_branch (current_cpu, pc, 2);
16204 }
16205 }
16206
16207   abuf->written = written;
16208   return vpc;
16209 #undef FLD
16210 }
16211
16212 /* ici: ici$pack @($GRi,$GRj) */
16213
16214 static SEM_PC
16215 SEM_FN_NAME (frvbf,ici) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16216 {
16217 #define FLD(f) abuf->fields.sfmt_icpl.f
16218   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16219   int UNUSED written = 0;
16220   IADDR UNUSED pc = abuf->addr;
16221   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16222
16223 frvbf_insn_cache_invalidate (current_cpu, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), 0);
16224
16225   return vpc;
16226 #undef FLD
16227 }
16228
16229 /* dci: dci$pack @($GRi,$GRj) */
16230
16231 static SEM_PC
16232 SEM_FN_NAME (frvbf,dci) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16233 {
16234 #define FLD(f) abuf->fields.sfmt_icpl.f
16235   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16236   int UNUSED written = 0;
16237   IADDR UNUSED pc = abuf->addr;
16238   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16239
16240 frvbf_data_cache_invalidate (current_cpu, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), 0);
16241
16242   return vpc;
16243 #undef FLD
16244 }
16245
16246 /* icei: icei$pack @($GRi,$GRj),$ae */
16247
16248 static SEM_PC
16249 SEM_FN_NAME (frvbf,icei) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16250 {
16251 #define FLD(f) abuf->fields.sfmt_icei.f
16252   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16253   int UNUSED written = 0;
16254   IADDR UNUSED pc = abuf->addr;
16255   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16256
16257 if (EQSI (FLD (f_ae), 0)) {
16258 frvbf_insn_cache_invalidate (current_cpu, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), -1);
16259 } else {
16260 frvbf_insn_cache_invalidate (current_cpu, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), FLD (f_ae));
16261 }
16262
16263   return vpc;
16264 #undef FLD
16265 }
16266
16267 /* dcei: dcei$pack @($GRi,$GRj),$ae */
16268
16269 static SEM_PC
16270 SEM_FN_NAME (frvbf,dcei) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16271 {
16272 #define FLD(f) abuf->fields.sfmt_icei.f
16273   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16274   int UNUSED written = 0;
16275   IADDR UNUSED pc = abuf->addr;
16276   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16277
16278 if (EQSI (FLD (f_ae), 0)) {
16279 frvbf_data_cache_invalidate (current_cpu, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), -1);
16280 } else {
16281 frvbf_data_cache_invalidate (current_cpu, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), FLD (f_ae));
16282 }
16283
16284   return vpc;
16285 #undef FLD
16286 }
16287
16288 /* dcf: dcf$pack @($GRi,$GRj) */
16289
16290 static SEM_PC
16291 SEM_FN_NAME (frvbf,dcf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16292 {
16293 #define FLD(f) abuf->fields.sfmt_icpl.f
16294   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16295   int UNUSED written = 0;
16296   IADDR UNUSED pc = abuf->addr;
16297   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16298
16299 frvbf_data_cache_flush (current_cpu, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), 0);
16300
16301   return vpc;
16302 #undef FLD
16303 }
16304
16305 /* dcef: dcef$pack @($GRi,$GRj),$ae */
16306
16307 static SEM_PC
16308 SEM_FN_NAME (frvbf,dcef) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16309 {
16310 #define FLD(f) abuf->fields.sfmt_icei.f
16311   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16312   int UNUSED written = 0;
16313   IADDR UNUSED pc = abuf->addr;
16314   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16315
16316 if (EQSI (FLD (f_ae), 0)) {
16317 frvbf_data_cache_flush (current_cpu, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), -1);
16318 } else {
16319 frvbf_data_cache_flush (current_cpu, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), FLD (f_ae));
16320 }
16321
16322   return vpc;
16323 #undef FLD
16324 }
16325
16326 /* witlb: witlb$pack $GRk,@($GRi,$GRj) */
16327
16328 static SEM_PC
16329 SEM_FN_NAME (frvbf,witlb) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16330 {
16331 #define FLD(f) abuf->fields.fmt_empty.f
16332   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16333   int UNUSED written = 0;
16334   IADDR UNUSED pc = abuf->addr;
16335   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16336
16337 ((void) 0); /*nop*/
16338
16339   return vpc;
16340 #undef FLD
16341 }
16342
16343 /* wdtlb: wdtlb$pack $GRk,@($GRi,$GRj) */
16344
16345 static SEM_PC
16346 SEM_FN_NAME (frvbf,wdtlb) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16347 {
16348 #define FLD(f) abuf->fields.fmt_empty.f
16349   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16350   int UNUSED written = 0;
16351   IADDR UNUSED pc = abuf->addr;
16352   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16353
16354 ((void) 0); /*nop*/
16355
16356   return vpc;
16357 #undef FLD
16358 }
16359
16360 /* itlbi: itlbi$pack @($GRi,$GRj) */
16361
16362 static SEM_PC
16363 SEM_FN_NAME (frvbf,itlbi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16364 {
16365 #define FLD(f) abuf->fields.fmt_empty.f
16366   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16367   int UNUSED written = 0;
16368   IADDR UNUSED pc = abuf->addr;
16369   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16370
16371 ((void) 0); /*nop*/
16372
16373   return vpc;
16374 #undef FLD
16375 }
16376
16377 /* dtlbi: dtlbi$pack @($GRi,$GRj) */
16378
16379 static SEM_PC
16380 SEM_FN_NAME (frvbf,dtlbi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16381 {
16382 #define FLD(f) abuf->fields.fmt_empty.f
16383   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16384   int UNUSED written = 0;
16385   IADDR UNUSED pc = abuf->addr;
16386   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16387
16388 ((void) 0); /*nop*/
16389
16390   return vpc;
16391 #undef FLD
16392 }
16393
16394 /* icpl: icpl$pack $GRi,$GRj,$lock */
16395
16396 static SEM_PC
16397 SEM_FN_NAME (frvbf,icpl) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16398 {
16399 #define FLD(f) abuf->fields.sfmt_icpl.f
16400   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16401   int UNUSED written = 0;
16402   IADDR UNUSED pc = abuf->addr;
16403   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16404
16405 frvbf_insn_cache_preload (current_cpu, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), FLD (f_lock));
16406
16407   return vpc;
16408 #undef FLD
16409 }
16410
16411 /* dcpl: dcpl$pack $GRi,$GRj,$lock */
16412
16413 static SEM_PC
16414 SEM_FN_NAME (frvbf,dcpl) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16415 {
16416 #define FLD(f) abuf->fields.sfmt_icpl.f
16417   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16418   int UNUSED written = 0;
16419   IADDR UNUSED pc = abuf->addr;
16420   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16421
16422 frvbf_data_cache_preload (current_cpu, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), FLD (f_lock));
16423
16424   return vpc;
16425 #undef FLD
16426 }
16427
16428 /* icul: icul$pack $GRi */
16429
16430 static SEM_PC
16431 SEM_FN_NAME (frvbf,icul) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16432 {
16433 #define FLD(f) abuf->fields.sfmt_jmpil.f
16434   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16435   int UNUSED written = 0;
16436   IADDR UNUSED pc = abuf->addr;
16437   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16438
16439 frvbf_insn_cache_unlock (current_cpu, GET_H_GR (FLD (f_GRi)));
16440
16441   return vpc;
16442 #undef FLD
16443 }
16444
16445 /* dcul: dcul$pack $GRi */
16446
16447 static SEM_PC
16448 SEM_FN_NAME (frvbf,dcul) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16449 {
16450 #define FLD(f) abuf->fields.sfmt_jmpil.f
16451   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16452   int UNUSED written = 0;
16453   IADDR UNUSED pc = abuf->addr;
16454   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16455
16456 frvbf_data_cache_unlock (current_cpu, GET_H_GR (FLD (f_GRi)));
16457
16458   return vpc;
16459 #undef FLD
16460 }
16461
16462 /* bar: bar$pack */
16463
16464 static SEM_PC
16465 SEM_FN_NAME (frvbf,bar) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16466 {
16467 #define FLD(f) abuf->fields.fmt_empty.f
16468   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16469   int UNUSED written = 0;
16470   IADDR UNUSED pc = abuf->addr;
16471   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16472
16473 ((void) 0); /*nop*/
16474
16475   return vpc;
16476 #undef FLD
16477 }
16478
16479 /* membar: membar$pack */
16480
16481 static SEM_PC
16482 SEM_FN_NAME (frvbf,membar) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16483 {
16484 #define FLD(f) abuf->fields.fmt_empty.f
16485   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16486   int UNUSED written = 0;
16487   IADDR UNUSED pc = abuf->addr;
16488   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16489
16490 ((void) 0); /*nop*/
16491
16492   return vpc;
16493 #undef FLD
16494 }
16495
16496 /* cop1: cop1$pack $s6_1,$CPRi,$CPRj,$CPRk */
16497
16498 static SEM_PC
16499 SEM_FN_NAME (frvbf,cop1) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16500 {
16501 #define FLD(f) abuf->fields.fmt_empty.f
16502   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16503   int UNUSED written = 0;
16504   IADDR UNUSED pc = abuf->addr;
16505   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16506
16507 ((void) 0); /*nop*/
16508
16509   return vpc;
16510 #undef FLD
16511 }
16512
16513 /* cop2: cop2$pack $s6_1,$CPRi,$CPRj,$CPRk */
16514
16515 static SEM_PC
16516 SEM_FN_NAME (frvbf,cop2) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16517 {
16518 #define FLD(f) abuf->fields.fmt_empty.f
16519   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16520   int UNUSED written = 0;
16521   IADDR UNUSED pc = abuf->addr;
16522   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16523
16524 ((void) 0); /*nop*/
16525
16526   return vpc;
16527 #undef FLD
16528 }
16529
16530 /* clrgr: clrgr$pack $GRk */
16531
16532 static SEM_PC
16533 SEM_FN_NAME (frvbf,clrgr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16534 {
16535 #define FLD(f) abuf->fields.sfmt_swapi.f
16536   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16537   int UNUSED written = 0;
16538   IADDR UNUSED pc = abuf->addr;
16539   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16540
16541 {
16542 frv_ref_SI (GET_H_GR (FLD (f_GRk)));
16543 frvbf_clear_ne_flags (current_cpu, FLD (f_GRk), 0);
16544 }
16545
16546   return vpc;
16547 #undef FLD
16548 }
16549
16550 /* clrfr: clrfr$pack $FRk */
16551
16552 static SEM_PC
16553 SEM_FN_NAME (frvbf,clrfr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16554 {
16555 #define FLD(f) abuf->fields.sfmt_cfmadds.f
16556   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16557   int UNUSED written = 0;
16558   IADDR UNUSED pc = abuf->addr;
16559   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16560
16561 {
16562 frv_ref_SI (GET_H_FR (FLD (f_FRk)));
16563 frvbf_clear_ne_flags (current_cpu, FLD (f_FRk), 1);
16564 }
16565
16566   return vpc;
16567 #undef FLD
16568 }
16569
16570 /* clrga: clrga$pack */
16571
16572 static SEM_PC
16573 SEM_FN_NAME (frvbf,clrga) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16574 {
16575 #define FLD(f) abuf->fields.fmt_empty.f
16576   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16577   int UNUSED written = 0;
16578   IADDR UNUSED pc = abuf->addr;
16579   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16580
16581 frvbf_clear_ne_flags (current_cpu, -1, 0);
16582
16583   return vpc;
16584 #undef FLD
16585 }
16586
16587 /* clrfa: clrfa$pack */
16588
16589 static SEM_PC
16590 SEM_FN_NAME (frvbf,clrfa) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16591 {
16592 #define FLD(f) abuf->fields.fmt_empty.f
16593   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16594   int UNUSED written = 0;
16595   IADDR UNUSED pc = abuf->addr;
16596   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16597
16598 frvbf_clear_ne_flags (current_cpu, -1, 1);
16599
16600   return vpc;
16601 #undef FLD
16602 }
16603
16604 /* commitgr: commitgr$pack $GRk */
16605
16606 static SEM_PC
16607 SEM_FN_NAME (frvbf,commitgr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16608 {
16609 #define FLD(f) abuf->fields.sfmt_setlos.f
16610   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16611   int UNUSED written = 0;
16612   IADDR UNUSED pc = abuf->addr;
16613   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16614
16615 frvbf_commit (current_cpu, FLD (f_GRk), 0);
16616
16617   return vpc;
16618 #undef FLD
16619 }
16620
16621 /* commitfr: commitfr$pack $FRk */
16622
16623 static SEM_PC
16624 SEM_FN_NAME (frvbf,commitfr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16625 {
16626 #define FLD(f) abuf->fields.sfmt_mhsethis.f
16627   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16628   int UNUSED written = 0;
16629   IADDR UNUSED pc = abuf->addr;
16630   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16631
16632 frvbf_commit (current_cpu, FLD (f_FRk), 1);
16633
16634   return vpc;
16635 #undef FLD
16636 }
16637
16638 /* commitga: commitga$pack */
16639
16640 static SEM_PC
16641 SEM_FN_NAME (frvbf,commitga) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16642 {
16643 #define FLD(f) abuf->fields.fmt_empty.f
16644   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16645   int UNUSED written = 0;
16646   IADDR UNUSED pc = abuf->addr;
16647   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16648
16649 frvbf_commit (current_cpu, -1, 0);
16650
16651   return vpc;
16652 #undef FLD
16653 }
16654
16655 /* commitfa: commitfa$pack */
16656
16657 static SEM_PC
16658 SEM_FN_NAME (frvbf,commitfa) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16659 {
16660 #define FLD(f) abuf->fields.fmt_empty.f
16661   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16662   int UNUSED written = 0;
16663   IADDR UNUSED pc = abuf->addr;
16664   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16665
16666 frvbf_commit (current_cpu, -1, 1);
16667
16668   return vpc;
16669 #undef FLD
16670 }
16671
16672 /* fitos: fitos$pack $FRintj,$FRk */
16673
16674 static SEM_PC
16675 SEM_FN_NAME (frvbf,fitos) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16676 {
16677 #define FLD(f) abuf->fields.sfmt_fditos.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     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->floatsisf) (CGEN_CPU_FPU (current_cpu), GET_H_FR_INT (FLD (f_FRj)));
16685     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
16686     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
16687   }
16688
16689   return vpc;
16690 #undef FLD
16691 }
16692
16693 /* fstoi: fstoi$pack $FRj,$FRintk */
16694
16695 static SEM_PC
16696 SEM_FN_NAME (frvbf,fstoi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16697 {
16698 #define FLD(f) abuf->fields.sfmt_fdstoi.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->fixsfsi) (CGEN_CPU_FPU (current_cpu), GET_H_FR (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 /* fitod: fitod$pack $FRintj,$FRdoublek */
16715
16716 static SEM_PC
16717 SEM_FN_NAME (frvbf,fitod) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16718 {
16719 #define FLD(f) abuf->fields.sfmt_fitod.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     DF opval = (* CGEN_CPU_FPU (current_cpu)->ops->floatsidf) (CGEN_CPU_FPU (current_cpu), GET_H_FR_INT (FLD (f_FRj)));
16727     sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
16728     TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
16729   }
16730
16731   return vpc;
16732 #undef FLD
16733 }
16734
16735 /* fdtoi: fdtoi$pack $FRdoublej,$FRintk */
16736
16737 static SEM_PC
16738 SEM_FN_NAME (frvbf,fdtoi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16739 {
16740 #define FLD(f) abuf->fields.sfmt_fdtoi.f
16741   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16742   int UNUSED written = 0;
16743   IADDR UNUSED pc = abuf->addr;
16744   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16745
16746   {
16747     SI opval = (* CGEN_CPU_FPU (current_cpu)->ops->fixdfsi) (CGEN_CPU_FPU (current_cpu), GET_H_FR_DOUBLE (FLD (f_FRj)));
16748     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
16749     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
16750   }
16751
16752   return vpc;
16753 #undef FLD
16754 }
16755
16756 /* fditos: fditos$pack $FRintj,$FRk */
16757
16758 static SEM_PC
16759 SEM_FN_NAME (frvbf,fditos) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16760 {
16761 #define FLD(f) abuf->fields.sfmt_fditos.f
16762   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16763   int UNUSED written = 0;
16764   IADDR UNUSED pc = abuf->addr;
16765   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16766
16767 {
16768   {
16769     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->floatsisf) (CGEN_CPU_FPU (current_cpu), GET_H_FR_INT (FLD (f_FRj)));
16770     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
16771     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
16772   }
16773   {
16774     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->floatsisf) (CGEN_CPU_FPU (current_cpu), GET_H_FR_INT (((FLD (f_FRj)) + (1))));
16775     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
16776     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
16777   }
16778 }
16779
16780   return vpc;
16781 #undef FLD
16782 }
16783
16784 /* fdstoi: fdstoi$pack $FRj,$FRintk */
16785
16786 static SEM_PC
16787 SEM_FN_NAME (frvbf,fdstoi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16788 {
16789 #define FLD(f) abuf->fields.sfmt_fdstoi.f
16790   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16791   int UNUSED written = 0;
16792   IADDR UNUSED pc = abuf->addr;
16793   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16794
16795 {
16796   {
16797     SI opval = (* CGEN_CPU_FPU (current_cpu)->ops->fixsfsi) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
16798     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
16799     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
16800   }
16801   {
16802     USI opval = (* CGEN_CPU_FPU (current_cpu)->ops->fixsfsi) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRj)) + (1))));
16803     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (1)), opval);
16804     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
16805   }
16806 }
16807
16808   return vpc;
16809 #undef FLD
16810 }
16811
16812 /* nfditos: nfditos$pack $FRintj,$FRk */
16813
16814 static SEM_PC
16815 SEM_FN_NAME (frvbf,nfditos) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16816 {
16817 #define FLD(f) abuf->fields.sfmt_fditos.f
16818   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16819   int UNUSED written = 0;
16820   IADDR UNUSED pc = abuf->addr;
16821   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16822
16823 {
16824 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
16825   {
16826     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->floatsisf) (CGEN_CPU_FPU (current_cpu), GET_H_FR_INT (FLD (f_FRj)));
16827     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
16828     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
16829   }
16830 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
16831   {
16832     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->floatsisf) (CGEN_CPU_FPU (current_cpu), GET_H_FR_INT (((FLD (f_FRj)) + (1))));
16833     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
16834     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
16835   }
16836 }
16837
16838   return vpc;
16839 #undef FLD
16840 }
16841
16842 /* nfdstoi: nfdstoi$pack $FRj,$FRintk */
16843
16844 static SEM_PC
16845 SEM_FN_NAME (frvbf,nfdstoi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16846 {
16847 #define FLD(f) abuf->fields.sfmt_fdstoi.f
16848   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16849   int UNUSED written = 0;
16850   IADDR UNUSED pc = abuf->addr;
16851   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16852
16853 {
16854 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
16855   {
16856     SI opval = (* CGEN_CPU_FPU (current_cpu)->ops->fixsfsi) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
16857     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
16858     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
16859   }
16860 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
16861   {
16862     USI opval = (* CGEN_CPU_FPU (current_cpu)->ops->fixsfsi) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRj)) + (1))));
16863     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (1)), opval);
16864     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
16865   }
16866 }
16867
16868   return vpc;
16869 #undef FLD
16870 }
16871
16872 /* cfitos: cfitos$pack $FRintj,$FRk,$CCi,$cond */
16873
16874 static SEM_PC
16875 SEM_FN_NAME (frvbf,cfitos) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16876 {
16877 #define FLD(f) abuf->fields.sfmt_cfitos.f
16878   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16879   int UNUSED written = 0;
16880   IADDR UNUSED pc = abuf->addr;
16881   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16882
16883 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
16884   {
16885     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->floatsisf) (CGEN_CPU_FPU (current_cpu), GET_H_FR_INT (FLD (f_FRj)));
16886     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
16887     written |= (1 << 3);
16888     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
16889   }
16890 }
16891
16892   abuf->written = written;
16893   return vpc;
16894 #undef FLD
16895 }
16896
16897 /* cfstoi: cfstoi$pack $FRj,$FRintk,$CCi,$cond */
16898
16899 static SEM_PC
16900 SEM_FN_NAME (frvbf,cfstoi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16901 {
16902 #define FLD(f) abuf->fields.sfmt_cfstoi.f
16903   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16904   int UNUSED written = 0;
16905   IADDR UNUSED pc = abuf->addr;
16906   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16907
16908 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
16909   {
16910     SI opval = (* CGEN_CPU_FPU (current_cpu)->ops->fixsfsi) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
16911     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
16912     written |= (1 << 3);
16913     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
16914   }
16915 }
16916
16917   abuf->written = written;
16918   return vpc;
16919 #undef FLD
16920 }
16921
16922 /* nfitos: nfitos$pack $FRintj,$FRk */
16923
16924 static SEM_PC
16925 SEM_FN_NAME (frvbf,nfitos) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16926 {
16927 #define FLD(f) abuf->fields.sfmt_fditos.f
16928   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16929   int UNUSED written = 0;
16930   IADDR UNUSED pc = abuf->addr;
16931   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16932
16933 {
16934 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
16935   {
16936     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->floatsisf) (CGEN_CPU_FPU (current_cpu), GET_H_FR_INT (FLD (f_FRj)));
16937     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
16938     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
16939   }
16940 }
16941
16942   return vpc;
16943 #undef FLD
16944 }
16945
16946 /* nfstoi: nfstoi$pack $FRj,$FRintk */
16947
16948 static SEM_PC
16949 SEM_FN_NAME (frvbf,nfstoi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16950 {
16951 #define FLD(f) abuf->fields.sfmt_fdstoi.f
16952   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16953   int UNUSED written = 0;
16954   IADDR UNUSED pc = abuf->addr;
16955   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16956
16957 {
16958 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
16959   {
16960     SI opval = (* CGEN_CPU_FPU (current_cpu)->ops->fixsfsi) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
16961     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
16962     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
16963   }
16964 }
16965
16966   return vpc;
16967 #undef FLD
16968 }
16969
16970 /* fmovs: fmovs$pack $FRj,$FRk */
16971
16972 static SEM_PC
16973 SEM_FN_NAME (frvbf,fmovs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16974 {
16975 #define FLD(f) abuf->fields.sfmt_cfmadds.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     SF opval = GET_H_FR (FLD (f_FRj));
16983     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
16984     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
16985   }
16986
16987   return vpc;
16988 #undef FLD
16989 }
16990
16991 /* fmovd: fmovd$pack $FRdoublej,$FRdoublek */
16992
16993 static SEM_PC
16994 SEM_FN_NAME (frvbf,fmovd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16995 {
16996 #define FLD(f) abuf->fields.sfmt_fmaddd.f
16997   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16998   int UNUSED written = 0;
16999   IADDR UNUSED pc = abuf->addr;
17000   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17001
17002   {
17003     DF opval = GET_H_FR_DOUBLE (FLD (f_FRj));
17004     sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
17005     TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
17006   }
17007
17008   return vpc;
17009 #undef FLD
17010 }
17011
17012 /* fdmovs: fdmovs$pack $FRj,$FRk */
17013
17014 static SEM_PC
17015 SEM_FN_NAME (frvbf,fdmovs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17016 {
17017 #define FLD(f) abuf->fields.sfmt_fdmadds.f
17018   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17019   int UNUSED written = 0;
17020   IADDR UNUSED pc = abuf->addr;
17021   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17022
17023 {
17024   {
17025     SF opval = GET_H_FR (FLD (f_FRj));
17026     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17027     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17028   }
17029   {
17030     SF opval = GET_H_FR (((FLD (f_FRj)) + (1)));
17031     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
17032     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17033   }
17034 }
17035
17036   return vpc;
17037 #undef FLD
17038 }
17039
17040 /* cfmovs: cfmovs$pack $FRj,$FRk,$CCi,$cond */
17041
17042 static SEM_PC
17043 SEM_FN_NAME (frvbf,cfmovs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17044 {
17045 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17046   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17047   int UNUSED written = 0;
17048   IADDR UNUSED pc = abuf->addr;
17049   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17050
17051 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
17052   {
17053     SF opval = GET_H_FR (FLD (f_FRj));
17054     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17055     written |= (1 << 3);
17056     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17057   }
17058 }
17059
17060   abuf->written = written;
17061   return vpc;
17062 #undef FLD
17063 }
17064
17065 /* fnegs: fnegs$pack $FRj,$FRk */
17066
17067 static SEM_PC
17068 SEM_FN_NAME (frvbf,fnegs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17069 {
17070 #define FLD(f) abuf->fields.sfmt_cfmadds.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     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->negsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17078     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17079     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17080   }
17081
17082   return vpc;
17083 #undef FLD
17084 }
17085
17086 /* fnegd: fnegd$pack $FRdoublej,$FRdoublek */
17087
17088 static SEM_PC
17089 SEM_FN_NAME (frvbf,fnegd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17090 {
17091 #define FLD(f) abuf->fields.sfmt_fmaddd.f
17092   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17093   int UNUSED written = 0;
17094   IADDR UNUSED pc = abuf->addr;
17095   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17096
17097   {
17098     DF opval = (* CGEN_CPU_FPU (current_cpu)->ops->negdf) (CGEN_CPU_FPU (current_cpu), GET_H_FR_DOUBLE (FLD (f_FRj)));
17099     sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
17100     TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
17101   }
17102
17103   return vpc;
17104 #undef FLD
17105 }
17106
17107 /* fdnegs: fdnegs$pack $FRj,$FRk */
17108
17109 static SEM_PC
17110 SEM_FN_NAME (frvbf,fdnegs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17111 {
17112 #define FLD(f) abuf->fields.sfmt_fdmadds.f
17113   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17114   int UNUSED written = 0;
17115   IADDR UNUSED pc = abuf->addr;
17116   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17117
17118 {
17119   {
17120     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->negsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17121     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17122     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17123   }
17124   {
17125     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->negsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRj)) + (1))));
17126     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
17127     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17128   }
17129 }
17130
17131   return vpc;
17132 #undef FLD
17133 }
17134
17135 /* cfnegs: cfnegs$pack $FRj,$FRk,$CCi,$cond */
17136
17137 static SEM_PC
17138 SEM_FN_NAME (frvbf,cfnegs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17139 {
17140 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17141   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17142   int UNUSED written = 0;
17143   IADDR UNUSED pc = abuf->addr;
17144   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17145
17146 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
17147   {
17148     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->negsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17149     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17150     written |= (1 << 3);
17151     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17152   }
17153 }
17154
17155   abuf->written = written;
17156   return vpc;
17157 #undef FLD
17158 }
17159
17160 /* fabss: fabss$pack $FRj,$FRk */
17161
17162 static SEM_PC
17163 SEM_FN_NAME (frvbf,fabss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17164 {
17165 #define FLD(f) abuf->fields.sfmt_cfmadds.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     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->abssf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17173     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17174     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17175   }
17176
17177   return vpc;
17178 #undef FLD
17179 }
17180
17181 /* fabsd: fabsd$pack $FRdoublej,$FRdoublek */
17182
17183 static SEM_PC
17184 SEM_FN_NAME (frvbf,fabsd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17185 {
17186 #define FLD(f) abuf->fields.sfmt_fmaddd.f
17187   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17188   int UNUSED written = 0;
17189   IADDR UNUSED pc = abuf->addr;
17190   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17191
17192   {
17193     DF opval = (* CGEN_CPU_FPU (current_cpu)->ops->absdf) (CGEN_CPU_FPU (current_cpu), GET_H_FR_DOUBLE (FLD (f_FRj)));
17194     sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
17195     TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
17196   }
17197
17198   return vpc;
17199 #undef FLD
17200 }
17201
17202 /* fdabss: fdabss$pack $FRj,$FRk */
17203
17204 static SEM_PC
17205 SEM_FN_NAME (frvbf,fdabss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17206 {
17207 #define FLD(f) abuf->fields.sfmt_fdmadds.f
17208   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17209   int UNUSED written = 0;
17210   IADDR UNUSED pc = abuf->addr;
17211   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17212
17213 {
17214   {
17215     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->abssf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17216     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17217     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17218   }
17219   {
17220     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->abssf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRj)) + (1))));
17221     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
17222     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17223   }
17224 }
17225
17226   return vpc;
17227 #undef FLD
17228 }
17229
17230 /* cfabss: cfabss$pack $FRj,$FRk,$CCi,$cond */
17231
17232 static SEM_PC
17233 SEM_FN_NAME (frvbf,cfabss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17234 {
17235 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17236   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17237   int UNUSED written = 0;
17238   IADDR UNUSED pc = abuf->addr;
17239   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17240
17241 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
17242   {
17243     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->abssf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17244     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17245     written |= (1 << 3);
17246     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17247   }
17248 }
17249
17250   abuf->written = written;
17251   return vpc;
17252 #undef FLD
17253 }
17254
17255 /* fsqrts: fsqrts$pack $FRj,$FRk */
17256
17257 static SEM_PC
17258 SEM_FN_NAME (frvbf,fsqrts) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17259 {
17260 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17261   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17262   int UNUSED written = 0;
17263   IADDR UNUSED pc = abuf->addr;
17264   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17265
17266   {
17267     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->sqrtsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17268     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17269     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17270   }
17271
17272   return vpc;
17273 #undef FLD
17274 }
17275
17276 /* fdsqrts: fdsqrts$pack $FRj,$FRk */
17277
17278 static SEM_PC
17279 SEM_FN_NAME (frvbf,fdsqrts) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17280 {
17281 #define FLD(f) abuf->fields.sfmt_fdmadds.f
17282   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17283   int UNUSED written = 0;
17284   IADDR UNUSED pc = abuf->addr;
17285   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17286
17287 {
17288   {
17289     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->sqrtsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17290     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17291     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17292   }
17293   {
17294     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->sqrtsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRj)) + (1))));
17295     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
17296     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17297   }
17298 }
17299
17300   return vpc;
17301 #undef FLD
17302 }
17303
17304 /* nfdsqrts: nfdsqrts$pack $FRj,$FRk */
17305
17306 static SEM_PC
17307 SEM_FN_NAME (frvbf,nfdsqrts) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17308 {
17309 #define FLD(f) abuf->fields.sfmt_fdmadds.f
17310   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17311   int UNUSED written = 0;
17312   IADDR UNUSED pc = abuf->addr;
17313   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17314
17315 {
17316 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
17317   {
17318     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->sqrtsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17319     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17320     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17321   }
17322 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
17323   {
17324     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->sqrtsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRj)) + (1))));
17325     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
17326     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17327   }
17328 }
17329
17330   return vpc;
17331 #undef FLD
17332 }
17333
17334 /* fsqrtd: fsqrtd$pack $FRdoublej,$FRdoublek */
17335
17336 static SEM_PC
17337 SEM_FN_NAME (frvbf,fsqrtd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17338 {
17339 #define FLD(f) abuf->fields.sfmt_fmaddd.f
17340   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17341   int UNUSED written = 0;
17342   IADDR UNUSED pc = abuf->addr;
17343   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17344
17345   {
17346     DF opval = (* CGEN_CPU_FPU (current_cpu)->ops->sqrtdf) (CGEN_CPU_FPU (current_cpu), GET_H_FR_DOUBLE (FLD (f_FRj)));
17347     sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
17348     TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
17349   }
17350
17351   return vpc;
17352 #undef FLD
17353 }
17354
17355 /* cfsqrts: cfsqrts$pack $FRj,$FRk,$CCi,$cond */
17356
17357 static SEM_PC
17358 SEM_FN_NAME (frvbf,cfsqrts) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17359 {
17360 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17361   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17362   int UNUSED written = 0;
17363   IADDR UNUSED pc = abuf->addr;
17364   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17365
17366 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
17367   {
17368     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->sqrtsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17369     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17370     written |= (1 << 3);
17371     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17372   }
17373 }
17374
17375   abuf->written = written;
17376   return vpc;
17377 #undef FLD
17378 }
17379
17380 /* nfsqrts: nfsqrts$pack $FRj,$FRk */
17381
17382 static SEM_PC
17383 SEM_FN_NAME (frvbf,nfsqrts) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17384 {
17385 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17386   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17387   int UNUSED written = 0;
17388   IADDR UNUSED pc = abuf->addr;
17389   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17390
17391 {
17392 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
17393   {
17394     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->sqrtsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17395     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17396     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17397   }
17398 }
17399
17400   return vpc;
17401 #undef FLD
17402 }
17403
17404 /* fadds: fadds$pack $FRi,$FRj,$FRk */
17405
17406 static SEM_PC
17407 SEM_FN_NAME (frvbf,fadds) (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->addsf) (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 /* fsubs: fsubs$pack $FRi,$FRj,$FRk */
17426
17427 static SEM_PC
17428 SEM_FN_NAME (frvbf,fsubs) (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->subsf) (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 /* fmuls: fmuls$pack $FRi,$FRj,$FRk */
17447
17448 static SEM_PC
17449 SEM_FN_NAME (frvbf,fmuls) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17450 {
17451 #define FLD(f) abuf->fields.sfmt_cfmadds.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     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)));
17459     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17460     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17461   }
17462
17463   return vpc;
17464 #undef FLD
17465 }
17466
17467 /* fdivs: fdivs$pack $FRi,$FRj,$FRk */
17468
17469 static SEM_PC
17470 SEM_FN_NAME (frvbf,fdivs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17471 {
17472 #define FLD(f) abuf->fields.sfmt_cfmadds.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     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)));
17480     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17481     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17482   }
17483
17484   return vpc;
17485 #undef FLD
17486 }
17487
17488 /* faddd: faddd$pack $FRdoublei,$FRdoublej,$FRdoublek */
17489
17490 static SEM_PC
17491 SEM_FN_NAME (frvbf,faddd) (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->adddf) (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 /* fsubd: fsubd$pack $FRdoublei,$FRdoublej,$FRdoublek */
17510
17511 static SEM_PC
17512 SEM_FN_NAME (frvbf,fsubd) (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->subdf) (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 /* fmuld: fmuld$pack $FRdoublei,$FRdoublej,$FRdoublek */
17531
17532 static SEM_PC
17533 SEM_FN_NAME (frvbf,fmuld) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17534 {
17535 #define FLD(f) abuf->fields.sfmt_fmaddd.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   {
17542     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)));
17543     sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
17544     TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
17545   }
17546
17547   return vpc;
17548 #undef FLD
17549 }
17550
17551 /* fdivd: fdivd$pack $FRdoublei,$FRdoublej,$FRdoublek */
17552
17553 static SEM_PC
17554 SEM_FN_NAME (frvbf,fdivd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17555 {
17556 #define FLD(f) abuf->fields.sfmt_fmaddd.f
17557   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17558   int UNUSED written = 0;
17559   IADDR UNUSED pc = abuf->addr;
17560   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17561
17562   {
17563     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)));
17564     sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
17565     TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
17566   }
17567
17568   return vpc;
17569 #undef FLD
17570 }
17571
17572 /* cfadds: cfadds$pack $FRi,$FRj,$FRk,$CCi,$cond */
17573
17574 static SEM_PC
17575 SEM_FN_NAME (frvbf,cfadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17576 {
17577 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17578   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17579   int UNUSED written = 0;
17580   IADDR UNUSED pc = abuf->addr;
17581   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17582
17583 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
17584   {
17585     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)));
17586     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17587     written |= (1 << 4);
17588     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17589   }
17590 }
17591
17592   abuf->written = written;
17593   return vpc;
17594 #undef FLD
17595 }
17596
17597 /* cfsubs: cfsubs$pack $FRi,$FRj,$FRk,$CCi,$cond */
17598
17599 static SEM_PC
17600 SEM_FN_NAME (frvbf,cfsubs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17601 {
17602 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17603   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17604   int UNUSED written = 0;
17605   IADDR UNUSED pc = abuf->addr;
17606   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17607
17608 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
17609   {
17610     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)));
17611     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17612     written |= (1 << 4);
17613     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17614   }
17615 }
17616
17617   abuf->written = written;
17618   return vpc;
17619 #undef FLD
17620 }
17621
17622 /* cfmuls: cfmuls$pack $FRi,$FRj,$FRk,$CCi,$cond */
17623
17624 static SEM_PC
17625 SEM_FN_NAME (frvbf,cfmuls) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17626 {
17627 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17628   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17629   int UNUSED written = 0;
17630   IADDR UNUSED pc = abuf->addr;
17631   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17632
17633 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
17634   {
17635     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)));
17636     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17637     written |= (1 << 4);
17638     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17639   }
17640 }
17641
17642   abuf->written = written;
17643   return vpc;
17644 #undef FLD
17645 }
17646
17647 /* cfdivs: cfdivs$pack $FRi,$FRj,$FRk,$CCi,$cond */
17648
17649 static SEM_PC
17650 SEM_FN_NAME (frvbf,cfdivs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17651 {
17652 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17653   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17654   int UNUSED written = 0;
17655   IADDR UNUSED pc = abuf->addr;
17656   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17657
17658 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
17659   {
17660     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)));
17661     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17662     written |= (1 << 4);
17663     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17664   }
17665 }
17666
17667   abuf->written = written;
17668   return vpc;
17669 #undef FLD
17670 }
17671
17672 /* nfadds: nfadds$pack $FRi,$FRj,$FRk */
17673
17674 static SEM_PC
17675 SEM_FN_NAME (frvbf,nfadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17676 {
17677 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17678   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17679   int UNUSED written = 0;
17680   IADDR UNUSED pc = abuf->addr;
17681   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17682
17683 {
17684 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
17685   {
17686     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)));
17687     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17688     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17689   }
17690 }
17691
17692   return vpc;
17693 #undef FLD
17694 }
17695
17696 /* nfsubs: nfsubs$pack $FRi,$FRj,$FRk */
17697
17698 static SEM_PC
17699 SEM_FN_NAME (frvbf,nfsubs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17700 {
17701 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17702   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17703   int UNUSED written = 0;
17704   IADDR UNUSED pc = abuf->addr;
17705   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17706
17707 {
17708 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
17709   {
17710     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)));
17711     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17712     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17713   }
17714 }
17715
17716   return vpc;
17717 #undef FLD
17718 }
17719
17720 /* nfmuls: nfmuls$pack $FRi,$FRj,$FRk */
17721
17722 static SEM_PC
17723 SEM_FN_NAME (frvbf,nfmuls) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17724 {
17725 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17726   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17727   int UNUSED written = 0;
17728   IADDR UNUSED pc = abuf->addr;
17729   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17730
17731 {
17732 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
17733   {
17734     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)));
17735     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17736     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17737   }
17738 }
17739
17740   return vpc;
17741 #undef FLD
17742 }
17743
17744 /* nfdivs: nfdivs$pack $FRi,$FRj,$FRk */
17745
17746 static SEM_PC
17747 SEM_FN_NAME (frvbf,nfdivs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17748 {
17749 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17750   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17751   int UNUSED written = 0;
17752   IADDR UNUSED pc = abuf->addr;
17753   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17754
17755 {
17756 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
17757   {
17758     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)));
17759     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17760     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17761   }
17762 }
17763
17764   return vpc;
17765 #undef FLD
17766 }
17767
17768 /* fcmps: fcmps$pack $FRi,$FRj,$FCCi_2 */
17769
17770 static SEM_PC
17771 SEM_FN_NAME (frvbf,fcmps) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17772 {
17773 #define FLD(f) abuf->fields.sfmt_cfcmps.f
17774   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17775   int UNUSED written = 0;
17776   IADDR UNUSED pc = abuf->addr;
17777   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17778
17779 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)))) {
17780   {
17781     UQI opval = 2;
17782     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17783     written |= (1 << 2);
17784     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17785   }
17786 } else {
17787 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)))) {
17788   {
17789     UQI opval = 8;
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->ltsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)))) {
17796   {
17797     UQI opval = 4;
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   {
17804     UQI opval = 1;
17805     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17806     written |= (1 << 2);
17807     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17808   }
17809 }
17810 }
17811 }
17812
17813   abuf->written = written;
17814   return vpc;
17815 #undef FLD
17816 }
17817
17818 /* fcmpd: fcmpd$pack $FRdoublei,$FRdoublej,$FCCi_2 */
17819
17820 static SEM_PC
17821 SEM_FN_NAME (frvbf,fcmpd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17822 {
17823 #define FLD(f) abuf->fields.sfmt_fcmpd.f
17824   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17825   int UNUSED written = 0;
17826   IADDR UNUSED pc = abuf->addr;
17827   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17828
17829 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)))) {
17830   {
17831     UQI opval = 2;
17832     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17833     written |= (1 << 2);
17834     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17835   }
17836 } else {
17837 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)))) {
17838   {
17839     UQI opval = 8;
17840     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17841     written |= (1 << 2);
17842     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17843   }
17844 } else {
17845 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)))) {
17846   {
17847     UQI opval = 4;
17848     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17849     written |= (1 << 2);
17850     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17851   }
17852 } else {
17853   {
17854     UQI opval = 1;
17855     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17856     written |= (1 << 2);
17857     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17858   }
17859 }
17860 }
17861 }
17862
17863   abuf->written = written;
17864   return vpc;
17865 #undef FLD
17866 }
17867
17868 /* cfcmps: cfcmps$pack $FRi,$FRj,$FCCi_2,$CCi,$cond */
17869
17870 static SEM_PC
17871 SEM_FN_NAME (frvbf,cfcmps) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17872 {
17873 #define FLD(f) abuf->fields.sfmt_cfcmps.f
17874   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17875   int UNUSED written = 0;
17876   IADDR UNUSED pc = abuf->addr;
17877   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17878
17879 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
17880 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)))) {
17881   {
17882     UQI opval = 2;
17883     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17884     written |= (1 << 4);
17885     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17886   }
17887 } else {
17888 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)))) {
17889   {
17890     UQI opval = 8;
17891     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17892     written |= (1 << 4);
17893     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17894   }
17895 } else {
17896 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)))) {
17897   {
17898     UQI opval = 4;
17899     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17900     written |= (1 << 4);
17901     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17902   }
17903 } else {
17904   {
17905     UQI opval = 1;
17906     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17907     written |= (1 << 4);
17908     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17909   }
17910 }
17911 }
17912 }
17913 }
17914
17915   abuf->written = written;
17916   return vpc;
17917 #undef FLD
17918 }
17919
17920 /* fdcmps: fdcmps$pack $FRi,$FRj,$FCCi_2 */
17921
17922 static SEM_PC
17923 SEM_FN_NAME (frvbf,fdcmps) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17924 {
17925 #define FLD(f) abuf->fields.sfmt_nfdcmps.f
17926   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17927   int UNUSED written = 0;
17928   IADDR UNUSED pc = abuf->addr;
17929   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17930
17931 {
17932 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)))) {
17933   {
17934     UQI opval = 2;
17935     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17936     written |= (1 << 7);
17937     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17938   }
17939 } else {
17940 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)))) {
17941   {
17942     UQI opval = 8;
17943     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17944     written |= (1 << 7);
17945     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17946   }
17947 } else {
17948 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)))) {
17949   {
17950     UQI opval = 4;
17951     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17952     written |= (1 << 7);
17953     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17954   }
17955 } else {
17956   {
17957     UQI opval = 1;
17958     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17959     written |= (1 << 7);
17960     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17961   }
17962 }
17963 }
17964 }
17965 if ((* CGEN_CPU_FPU (current_cpu)->ops->gtsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (1))), GET_H_FR (((FLD (f_FRj)) + (1))))) {
17966   {
17967     UQI opval = 2;
17968     sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCi_2)) + (1))]), opval);
17969     written |= (1 << 8);
17970     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17971   }
17972 } else {
17973 if ((* CGEN_CPU_FPU (current_cpu)->ops->eqsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (1))), GET_H_FR (((FLD (f_FRj)) + (1))))) {
17974   {
17975     UQI opval = 8;
17976     sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCi_2)) + (1))]), opval);
17977     written |= (1 << 8);
17978     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17979   }
17980 } else {
17981 if ((* CGEN_CPU_FPU (current_cpu)->ops->ltsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (1))), GET_H_FR (((FLD (f_FRj)) + (1))))) {
17982   {
17983     UQI opval = 4;
17984     sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCi_2)) + (1))]), opval);
17985     written |= (1 << 8);
17986     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17987   }
17988 } else {
17989   {
17990     UQI opval = 1;
17991     sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCi_2)) + (1))]), opval);
17992     written |= (1 << 8);
17993     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17994   }
17995 }
17996 }
17997 }
17998 }
17999
18000   abuf->written = written;
18001   return vpc;
18002 #undef FLD
18003 }
18004
18005 /* fmadds: fmadds$pack $FRi,$FRj,$FRk */
18006
18007 static SEM_PC
18008 SEM_FN_NAME (frvbf,fmadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18009 {
18010 #define FLD(f) abuf->fields.sfmt_cfmadds.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     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)));
18018     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18019     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18020   }
18021
18022   return vpc;
18023 #undef FLD
18024 }
18025
18026 /* fmsubs: fmsubs$pack $FRi,$FRj,$FRk */
18027
18028 static SEM_PC
18029 SEM_FN_NAME (frvbf,fmsubs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18030 {
18031 #define FLD(f) abuf->fields.sfmt_cfmadds.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     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)));
18039     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18040     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18041   }
18042
18043   return vpc;
18044 #undef FLD
18045 }
18046
18047 /* fmaddd: fmaddd$pack $FRdoublei,$FRdoublej,$FRdoublek */
18048
18049 static SEM_PC
18050 SEM_FN_NAME (frvbf,fmaddd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18051 {
18052 #define FLD(f) abuf->fields.sfmt_fmaddd.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     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)));
18060     sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
18061     TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
18062   }
18063
18064   return vpc;
18065 #undef FLD
18066 }
18067
18068 /* fmsubd: fmsubd$pack $FRdoublei,$FRdoublej,$FRdoublek */
18069
18070 static SEM_PC
18071 SEM_FN_NAME (frvbf,fmsubd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18072 {
18073 #define FLD(f) abuf->fields.sfmt_fmaddd.f
18074   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18075   int UNUSED written = 0;
18076   IADDR UNUSED pc = abuf->addr;
18077   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18078
18079   {
18080     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)));
18081     sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
18082     TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
18083   }
18084
18085   return vpc;
18086 #undef FLD
18087 }
18088
18089 /* fdmadds: fdmadds$pack $FRi,$FRj,$FRk */
18090
18091 static SEM_PC
18092 SEM_FN_NAME (frvbf,fdmadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18093 {
18094 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18095   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18096   int UNUSED written = 0;
18097   IADDR UNUSED pc = abuf->addr;
18098   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18099
18100 {
18101   {
18102     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)));
18103     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18104     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18105   }
18106   {
18107     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->addsf) (CGEN_CPU_FPU (current_cpu), (* CGEN_CPU_FPU (current_cpu)->ops->mulsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (1))), GET_H_FR (((FLD (f_FRj)) + (1)))), GET_H_FR (((FLD (f_FRk)) + (1))));
18108     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18109     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18110   }
18111 }
18112
18113   return vpc;
18114 #undef FLD
18115 }
18116
18117 /* nfdmadds: nfdmadds$pack $FRi,$FRj,$FRk */
18118
18119 static SEM_PC
18120 SEM_FN_NAME (frvbf,nfdmadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18121 {
18122 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18123   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18124   int UNUSED written = 0;
18125   IADDR UNUSED pc = abuf->addr;
18126   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18127
18128 {
18129 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18130   {
18131     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->addsf) (CGEN_CPU_FPU (current_cpu), (* CGEN_CPU_FPU (current_cpu)->ops->mulsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj))), GET_H_FR (FLD (f_FRk)));
18132     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18133     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18134   }
18135 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18136   {
18137     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->addsf) (CGEN_CPU_FPU (current_cpu), (* CGEN_CPU_FPU (current_cpu)->ops->mulsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (1))), GET_H_FR (((FLD (f_FRj)) + (1)))), GET_H_FR (((FLD (f_FRk)) + (1))));
18138     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18139     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18140   }
18141 }
18142
18143   return vpc;
18144 #undef FLD
18145 }
18146
18147 /* cfmadds: cfmadds$pack $FRi,$FRj,$FRk,$CCi,$cond */
18148
18149 static SEM_PC
18150 SEM_FN_NAME (frvbf,cfmadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18151 {
18152 #define FLD(f) abuf->fields.sfmt_cfmadds.f
18153   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18154   int UNUSED written = 0;
18155   IADDR UNUSED pc = abuf->addr;
18156   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18157
18158 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
18159   {
18160     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)));
18161     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18162     written |= (1 << 5);
18163     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18164   }
18165 }
18166
18167   abuf->written = written;
18168   return vpc;
18169 #undef FLD
18170 }
18171
18172 /* cfmsubs: cfmsubs$pack $FRi,$FRj,$FRk,$CCi,$cond */
18173
18174 static SEM_PC
18175 SEM_FN_NAME (frvbf,cfmsubs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18176 {
18177 #define FLD(f) abuf->fields.sfmt_cfmadds.f
18178   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18179   int UNUSED written = 0;
18180   IADDR UNUSED pc = abuf->addr;
18181   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18182
18183 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
18184   {
18185     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)));
18186     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18187     written |= (1 << 5);
18188     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18189   }
18190 }
18191
18192   abuf->written = written;
18193   return vpc;
18194 #undef FLD
18195 }
18196
18197 /* nfmadds: nfmadds$pack $FRi,$FRj,$FRk */
18198
18199 static SEM_PC
18200 SEM_FN_NAME (frvbf,nfmadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18201 {
18202 #define FLD(f) abuf->fields.sfmt_cfmadds.f
18203   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18204   int UNUSED written = 0;
18205   IADDR UNUSED pc = abuf->addr;
18206   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18207
18208 {
18209 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18210   {
18211     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)));
18212     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18213     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18214   }
18215 }
18216
18217   return vpc;
18218 #undef FLD
18219 }
18220
18221 /* nfmsubs: nfmsubs$pack $FRi,$FRj,$FRk */
18222
18223 static SEM_PC
18224 SEM_FN_NAME (frvbf,nfmsubs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18225 {
18226 #define FLD(f) abuf->fields.sfmt_cfmadds.f
18227   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18228   int UNUSED written = 0;
18229   IADDR UNUSED pc = abuf->addr;
18230   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18231
18232 {
18233 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18234   {
18235     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)));
18236     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18237     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18238   }
18239 }
18240
18241   return vpc;
18242 #undef FLD
18243 }
18244
18245 /* fmas: fmas$pack $FRi,$FRj,$FRk */
18246
18247 static SEM_PC
18248 SEM_FN_NAME (frvbf,fmas) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18249 {
18250 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18251   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18252   int UNUSED written = 0;
18253   IADDR UNUSED pc = abuf->addr;
18254   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18255
18256 {
18257   {
18258     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)));
18259     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18260     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18261   }
18262   {
18263     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->addsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (1))), GET_H_FR (((FLD (f_FRj)) + (1))));
18264     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18265     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18266   }
18267 }
18268
18269   return vpc;
18270 #undef FLD
18271 }
18272
18273 /* fmss: fmss$pack $FRi,$FRj,$FRk */
18274
18275 static SEM_PC
18276 SEM_FN_NAME (frvbf,fmss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18277 {
18278 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18279   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18280   int UNUSED written = 0;
18281   IADDR UNUSED pc = abuf->addr;
18282   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18283
18284 {
18285   {
18286     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)));
18287     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18288     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18289   }
18290   {
18291     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->subsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (1))), GET_H_FR (((FLD (f_FRj)) + (1))));
18292     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18293     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18294   }
18295 }
18296
18297   return vpc;
18298 #undef FLD
18299 }
18300
18301 /* fdmas: fdmas$pack $FRi,$FRj,$FRk */
18302
18303 static SEM_PC
18304 SEM_FN_NAME (frvbf,fdmas) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18305 {
18306 #define FLD(f) abuf->fields.sfmt_fdmas.f
18307   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18308   int UNUSED written = 0;
18309   IADDR UNUSED pc = abuf->addr;
18310   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18311
18312 {
18313   {
18314     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)));
18315     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18316     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18317   }
18318   {
18319     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->addsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (1))), GET_H_FR (((FLD (f_FRj)) + (1))));
18320     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18321     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18322   }
18323   {
18324     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->mulsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (2))), GET_H_FR (((FLD (f_FRj)) + (2))));
18325     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (2)), opval);
18326     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18327   }
18328   {
18329     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->addsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (3))), GET_H_FR (((FLD (f_FRj)) + (3))));
18330     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (3)), opval);
18331     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18332   }
18333 }
18334
18335   return vpc;
18336 #undef FLD
18337 }
18338
18339 /* fdmss: fdmss$pack $FRi,$FRj,$FRk */
18340
18341 static SEM_PC
18342 SEM_FN_NAME (frvbf,fdmss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18343 {
18344 #define FLD(f) abuf->fields.sfmt_fdmas.f
18345   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18346   int UNUSED written = 0;
18347   IADDR UNUSED pc = abuf->addr;
18348   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18349
18350 {
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->subsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (1))), GET_H_FR (((FLD (f_FRj)) + (1))));
18358     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((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 (((FLD (f_FRi)) + (2))), GET_H_FR (((FLD (f_FRj)) + (2))));
18363     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((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->subsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (3))), GET_H_FR (((FLD (f_FRj)) + (3))));
18368     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((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 /* nfdmas: nfdmas$pack $FRi,$FRj,$FRk */
18378
18379 static SEM_PC
18380 SEM_FN_NAME (frvbf,nfdmas) (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->addsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (1))), GET_H_FR (((FLD (f_FRj)) + (1))));
18400     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((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 (((FLD (f_FRi)) + (2))), GET_H_FR (((FLD (f_FRj)) + (2))));
18405     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((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->addsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (3))), GET_H_FR (((FLD (f_FRj)) + (3))));
18410     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((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 /* nfdmss: nfdmss$pack $FRi,$FRj,$FRk */
18420
18421 static SEM_PC
18422 SEM_FN_NAME (frvbf,nfdmss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18423 {
18424 #define FLD(f) abuf->fields.sfmt_fdmas.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 {
18431 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18432 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18433 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 2));
18434 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 3));
18435   {
18436     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->mulsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)));
18437     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18438     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18439   }
18440   {
18441     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->subsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (1))), GET_H_FR (((FLD (f_FRj)) + (1))));
18442     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18443     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18444   }
18445   {
18446     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->mulsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (2))), GET_H_FR (((FLD (f_FRj)) + (2))));
18447     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (2)), opval);
18448     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18449   }
18450   {
18451     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->subsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (3))), GET_H_FR (((FLD (f_FRj)) + (3))));
18452     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (3)), opval);
18453     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18454   }
18455 }
18456
18457   return vpc;
18458 #undef FLD
18459 }
18460
18461 /* cfmas: cfmas$pack $FRi,$FRj,$FRk,$CCi,$cond */
18462
18463 static SEM_PC
18464 SEM_FN_NAME (frvbf,cfmas) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18465 {
18466 #define FLD(f) abuf->fields.sfmt_cfmas.f
18467   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18468   int UNUSED written = 0;
18469   IADDR UNUSED pc = abuf->addr;
18470   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18471
18472 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
18473 {
18474   {
18475     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)));
18476     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18477     written |= (1 << 9);
18478     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18479   }
18480   {
18481     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->addsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (1))), GET_H_FR (((FLD (f_FRj)) + (1))));
18482     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18483     written |= (1 << 10);
18484     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18485   }
18486 }
18487 }
18488
18489   abuf->written = written;
18490   return vpc;
18491 #undef FLD
18492 }
18493
18494 /* cfmss: cfmss$pack $FRi,$FRj,$FRk,$CCi,$cond */
18495
18496 static SEM_PC
18497 SEM_FN_NAME (frvbf,cfmss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18498 {
18499 #define FLD(f) abuf->fields.sfmt_cfmas.f
18500   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18501   int UNUSED written = 0;
18502   IADDR UNUSED pc = abuf->addr;
18503   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18504
18505 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
18506 {
18507   {
18508     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)));
18509     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18510     written |= (1 << 9);
18511     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18512   }
18513   {
18514     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->subsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (1))), GET_H_FR (((FLD (f_FRj)) + (1))));
18515     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18516     written |= (1 << 10);
18517     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18518   }
18519 }
18520 }
18521
18522   abuf->written = written;
18523   return vpc;
18524 #undef FLD
18525 }
18526
18527 /* fmad: fmad$pack $FRi,$FRj,$FRk */
18528
18529 static SEM_PC
18530 SEM_FN_NAME (frvbf,fmad) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18531 {
18532 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18533   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18534   int UNUSED written = 0;
18535   IADDR UNUSED pc = abuf->addr;
18536   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18537
18538 {
18539   {
18540     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->ftruncdfsf) (CGEN_CPU_FPU (current_cpu), (* CGEN_CPU_FPU (current_cpu)->ops->muldf) (CGEN_CPU_FPU (current_cpu), (* CGEN_CPU_FPU (current_cpu)->ops->fextsfdf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi))), (* CGEN_CPU_FPU (current_cpu)->ops->fextsfdf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)))));
18541     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18542     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18543   }
18544   {
18545     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->ftruncdfsf) (CGEN_CPU_FPU (current_cpu), (* CGEN_CPU_FPU (current_cpu)->ops->adddf) (CGEN_CPU_FPU (current_cpu), (* CGEN_CPU_FPU (current_cpu)->ops->fextsfdf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (1)))), (* CGEN_CPU_FPU (current_cpu)->ops->fextsfdf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRj)) + (1))))));
18546     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18547     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18548   }
18549 }
18550
18551   return vpc;
18552 #undef FLD
18553 }
18554
18555 /* fmsd: fmsd$pack $FRi,$FRj,$FRk */
18556
18557 static SEM_PC
18558 SEM_FN_NAME (frvbf,fmsd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18559 {
18560 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18561   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18562   int UNUSED written = 0;
18563   IADDR UNUSED pc = abuf->addr;
18564   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18565
18566 {
18567   {
18568     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->ftruncdfsf) (CGEN_CPU_FPU (current_cpu), (* CGEN_CPU_FPU (current_cpu)->ops->muldf) (CGEN_CPU_FPU (current_cpu), (* CGEN_CPU_FPU (current_cpu)->ops->fextsfdf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi))), (* CGEN_CPU_FPU (current_cpu)->ops->fextsfdf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)))));
18569     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18570     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18571   }
18572   {
18573     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->ftruncdfsf) (CGEN_CPU_FPU (current_cpu), (* CGEN_CPU_FPU (current_cpu)->ops->subdf) (CGEN_CPU_FPU (current_cpu), (* CGEN_CPU_FPU (current_cpu)->ops->fextsfdf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (1)))), (* CGEN_CPU_FPU (current_cpu)->ops->fextsfdf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRj)) + (1))))));
18574     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18575     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18576   }
18577 }
18578
18579   return vpc;
18580 #undef FLD
18581 }
18582
18583 /* nfmas: nfmas$pack $FRi,$FRj,$FRk */
18584
18585 static SEM_PC
18586 SEM_FN_NAME (frvbf,nfmas) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18587 {
18588 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18589   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18590   int UNUSED written = 0;
18591   IADDR UNUSED pc = abuf->addr;
18592   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18593
18594 {
18595 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18596   {
18597     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)));
18598     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18599     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18600   }
18601 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18602   {
18603     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->addsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (1))), GET_H_FR (((FLD (f_FRj)) + (1))));
18604     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18605     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18606   }
18607 }
18608
18609   return vpc;
18610 #undef FLD
18611 }
18612
18613 /* nfmss: nfmss$pack $FRi,$FRj,$FRk */
18614
18615 static SEM_PC
18616 SEM_FN_NAME (frvbf,nfmss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18617 {
18618 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18619   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18620   int UNUSED written = 0;
18621   IADDR UNUSED pc = abuf->addr;
18622   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18623
18624 {
18625 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18626   {
18627     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)));
18628     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18629     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18630   }
18631 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18632   {
18633     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->subsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (1))), GET_H_FR (((FLD (f_FRj)) + (1))));
18634     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18635     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18636   }
18637 }
18638
18639   return vpc;
18640 #undef FLD
18641 }
18642
18643 /* fdadds: fdadds$pack $FRi,$FRj,$FRk */
18644
18645 static SEM_PC
18646 SEM_FN_NAME (frvbf,fdadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18647 {
18648 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18649   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18650   int UNUSED written = 0;
18651   IADDR UNUSED pc = abuf->addr;
18652   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18653
18654 {
18655   {
18656     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)));
18657     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18658     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18659   }
18660   {
18661     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->addsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (1))), GET_H_FR (((FLD (f_FRj)) + (1))));
18662     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18663     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18664   }
18665 }
18666
18667   return vpc;
18668 #undef FLD
18669 }
18670
18671 /* fdsubs: fdsubs$pack $FRi,$FRj,$FRk */
18672
18673 static SEM_PC
18674 SEM_FN_NAME (frvbf,fdsubs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18675 {
18676 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18677   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18678   int UNUSED written = 0;
18679   IADDR UNUSED pc = abuf->addr;
18680   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18681
18682 {
18683   {
18684     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)));
18685     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18686     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18687   }
18688   {
18689     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->subsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (1))), GET_H_FR (((FLD (f_FRj)) + (1))));
18690     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18691     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18692   }
18693 }
18694
18695   return vpc;
18696 #undef FLD
18697 }
18698
18699 /* fdmuls: fdmuls$pack $FRi,$FRj,$FRk */
18700
18701 static SEM_PC
18702 SEM_FN_NAME (frvbf,fdmuls) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18703 {
18704 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18705   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18706   int UNUSED written = 0;
18707   IADDR UNUSED pc = abuf->addr;
18708   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18709
18710 {
18711   {
18712     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)));
18713     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18714     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18715   }
18716   {
18717     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->mulsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (1))), GET_H_FR (((FLD (f_FRj)) + (1))));
18718     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18719     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18720   }
18721 }
18722
18723   return vpc;
18724 #undef FLD
18725 }
18726
18727 /* fddivs: fddivs$pack $FRi,$FRj,$FRk */
18728
18729 static SEM_PC
18730 SEM_FN_NAME (frvbf,fddivs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18731 {
18732 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18733   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18734   int UNUSED written = 0;
18735   IADDR UNUSED pc = abuf->addr;
18736   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18737
18738 {
18739   {
18740     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)));
18741     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18742     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18743   }
18744   {
18745     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->divsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (1))), GET_H_FR (((FLD (f_FRj)) + (1))));
18746     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18747     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18748   }
18749 }
18750
18751   return vpc;
18752 #undef FLD
18753 }
18754
18755 /* fdsads: fdsads$pack $FRi,$FRj,$FRk */
18756
18757 static SEM_PC
18758 SEM_FN_NAME (frvbf,fdsads) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18759 {
18760 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18761   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18762   int UNUSED written = 0;
18763   IADDR UNUSED pc = abuf->addr;
18764   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18765
18766 {
18767   {
18768     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)));
18769     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18770     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18771   }
18772   {
18773     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->subsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (1))), GET_H_FR (((FLD (f_FRj)) + (1))));
18774     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18775     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18776   }
18777 }
18778
18779   return vpc;
18780 #undef FLD
18781 }
18782
18783 /* fdmulcs: fdmulcs$pack $FRi,$FRj,$FRk */
18784
18785 static SEM_PC
18786 SEM_FN_NAME (frvbf,fdmulcs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18787 {
18788 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18789   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18790   int UNUSED written = 0;
18791   IADDR UNUSED pc = abuf->addr;
18792   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18793
18794 {
18795   {
18796     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->mulsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (((FLD (f_FRj)) + (1))));
18797     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18798     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18799   }
18800   {
18801     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->mulsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (1))), GET_H_FR (FLD (f_FRj)));
18802     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18803     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18804   }
18805 }
18806
18807   return vpc;
18808 #undef FLD
18809 }
18810
18811 /* nfdmulcs: nfdmulcs$pack $FRi,$FRj,$FRk */
18812
18813 static SEM_PC
18814 SEM_FN_NAME (frvbf,nfdmulcs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18815 {
18816 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18817   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18818   int UNUSED written = 0;
18819   IADDR UNUSED pc = abuf->addr;
18820   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18821
18822 {
18823 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18824   {
18825     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->mulsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (((FLD (f_FRj)) + (1))));
18826     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18827     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18828   }
18829 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18830   {
18831     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->mulsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (1))), GET_H_FR (FLD (f_FRj)));
18832     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18833     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18834   }
18835 }
18836
18837   return vpc;
18838 #undef FLD
18839 }
18840
18841 /* nfdadds: nfdadds$pack $FRi,$FRj,$FRk */
18842
18843 static SEM_PC
18844 SEM_FN_NAME (frvbf,nfdadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18845 {
18846 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18847   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18848   int UNUSED written = 0;
18849   IADDR UNUSED pc = abuf->addr;
18850   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18851
18852 {
18853 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18854   {
18855     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)));
18856     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18857     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18858   }
18859 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18860   {
18861     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->addsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (1))), GET_H_FR (((FLD (f_FRj)) + (1))));
18862     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18863     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18864   }
18865 }
18866
18867   return vpc;
18868 #undef FLD
18869 }
18870
18871 /* nfdsubs: nfdsubs$pack $FRi,$FRj,$FRk */
18872
18873 static SEM_PC
18874 SEM_FN_NAME (frvbf,nfdsubs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18875 {
18876 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18877   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18878   int UNUSED written = 0;
18879   IADDR UNUSED pc = abuf->addr;
18880   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18881
18882 {
18883 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18884   {
18885     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)));
18886     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18887     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18888   }
18889 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18890   {
18891     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->subsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (1))), GET_H_FR (((FLD (f_FRj)) + (1))));
18892     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18893     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18894   }
18895 }
18896
18897   return vpc;
18898 #undef FLD
18899 }
18900
18901 /* nfdmuls: nfdmuls$pack $FRi,$FRj,$FRk */
18902
18903 static SEM_PC
18904 SEM_FN_NAME (frvbf,nfdmuls) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18905 {
18906 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18907   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18908   int UNUSED written = 0;
18909   IADDR UNUSED pc = abuf->addr;
18910   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18911
18912 {
18913 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18914   {
18915     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)));
18916     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18917     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18918   }
18919 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18920   {
18921     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->mulsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (1))), GET_H_FR (((FLD (f_FRj)) + (1))));
18922     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18923     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18924   }
18925 }
18926
18927   return vpc;
18928 #undef FLD
18929 }
18930
18931 /* nfddivs: nfddivs$pack $FRi,$FRj,$FRk */
18932
18933 static SEM_PC
18934 SEM_FN_NAME (frvbf,nfddivs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18935 {
18936 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18937   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18938   int UNUSED written = 0;
18939   IADDR UNUSED pc = abuf->addr;
18940   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18941
18942 {
18943 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18944   {
18945     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)));
18946     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18947     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18948   }
18949 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18950   {
18951     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->divsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (1))), GET_H_FR (((FLD (f_FRj)) + (1))));
18952     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18953     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18954   }
18955 }
18956
18957   return vpc;
18958 #undef FLD
18959 }
18960
18961 /* nfdsads: nfdsads$pack $FRi,$FRj,$FRk */
18962
18963 static SEM_PC
18964 SEM_FN_NAME (frvbf,nfdsads) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18965 {
18966 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18967   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18968   int UNUSED written = 0;
18969   IADDR UNUSED pc = abuf->addr;
18970   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18971
18972 {
18973 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18974   {
18975     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)));
18976     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18977     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18978   }
18979 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18980   {
18981     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->subsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (1))), GET_H_FR (((FLD (f_FRj)) + (1))));
18982     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18983     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18984   }
18985 }
18986
18987   return vpc;
18988 #undef FLD
18989 }
18990
18991 /* nfdcmps: nfdcmps$pack $FRi,$FRj,$FCCi_2 */
18992
18993 static SEM_PC
18994 SEM_FN_NAME (frvbf,nfdcmps) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18995 {
18996 #define FLD(f) abuf->fields.sfmt_nfdcmps.f
18997   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18998   int UNUSED written = 0;
18999   IADDR UNUSED pc = abuf->addr;
19000   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19001
19002 {
19003 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
19004 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)))) {
19005   {
19006     UQI opval = 2;
19007     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
19008     written |= (1 << 8);
19009     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
19010   }
19011 } else {
19012 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)))) {
19013   {
19014     UQI opval = 8;
19015     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
19016     written |= (1 << 8);
19017     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
19018   }
19019 } else {
19020 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)))) {
19021   {
19022     UQI opval = 4;
19023     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
19024     written |= (1 << 8);
19025     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
19026   }
19027 } else {
19028   {
19029     UQI opval = 1;
19030     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
19031     written |= (1 << 8);
19032     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
19033   }
19034 }
19035 }
19036 }
19037 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
19038 if ((* CGEN_CPU_FPU (current_cpu)->ops->gtsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (1))), GET_H_FR (((FLD (f_FRj)) + (1))))) {
19039   {
19040     UQI opval = 2;
19041     sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCi_2)) + (1))]), opval);
19042     written |= (1 << 9);
19043     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
19044   }
19045 } else {
19046 if ((* CGEN_CPU_FPU (current_cpu)->ops->eqsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (1))), GET_H_FR (((FLD (f_FRj)) + (1))))) {
19047   {
19048     UQI opval = 8;
19049     sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCi_2)) + (1))]), opval);
19050     written |= (1 << 9);
19051     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
19052   }
19053 } else {
19054 if ((* CGEN_CPU_FPU (current_cpu)->ops->ltsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (1))), GET_H_FR (((FLD (f_FRj)) + (1))))) {
19055   {
19056     UQI opval = 4;
19057     sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCi_2)) + (1))]), opval);
19058     written |= (1 << 9);
19059     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
19060   }
19061 } else {
19062   {
19063     UQI opval = 1;
19064     sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCi_2)) + (1))]), opval);
19065     written |= (1 << 9);
19066     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
19067   }
19068 }
19069 }
19070 }
19071 }
19072
19073   abuf->written = written;
19074   return vpc;
19075 #undef FLD
19076 }
19077
19078 /* mhsetlos: mhsetlos$pack $u12,$FRklo */
19079
19080 static SEM_PC
19081 SEM_FN_NAME (frvbf,mhsetlos) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19082 {
19083 #define FLD(f) abuf->fields.sfmt_mhsetlos.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     UHI opval = FLD (f_u12);
19091     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, FLD (f_FRk), opval);
19092     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19093   }
19094
19095   return vpc;
19096 #undef FLD
19097 }
19098
19099 /* mhsethis: mhsethis$pack $u12,$FRkhi */
19100
19101 static SEM_PC
19102 SEM_FN_NAME (frvbf,mhsethis) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19103 {
19104 #define FLD(f) abuf->fields.sfmt_mhsethis.f
19105   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19106   int UNUSED written = 0;
19107   IADDR UNUSED pc = abuf->addr;
19108   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19109
19110   {
19111     UHI opval = FLD (f_u12);
19112     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, FLD (f_FRk), opval);
19113     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19114   }
19115
19116   return vpc;
19117 #undef FLD
19118 }
19119
19120 /* mhdsets: mhdsets$pack $u12,$FRintk */
19121
19122 static SEM_PC
19123 SEM_FN_NAME (frvbf,mhdsets) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19124 {
19125 #define FLD(f) abuf->fields.sfmt_mhdsets.f
19126   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19127   int UNUSED written = 0;
19128   IADDR UNUSED pc = abuf->addr;
19129   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19130
19131 {
19132   {
19133     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
19134     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19135     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19136   }
19137   {
19138     UHI opval = FLD (f_u12);
19139     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
19140     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19141   }
19142   {
19143     UHI opval = FLD (f_u12);
19144     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
19145     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19146   }
19147 }
19148
19149   return vpc;
19150 #undef FLD
19151 }
19152
19153 /* mhsetloh: mhsetloh$pack $s5,$FRklo */
19154
19155 static SEM_PC
19156 SEM_FN_NAME (frvbf,mhsetloh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19157 {
19158 #define FLD(f) abuf->fields.sfmt_mhsetloh.f
19159   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19160   int UNUSED written = 0;
19161   IADDR UNUSED pc = abuf->addr;
19162   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19163
19164 {
19165   HI tmp_tmp;
19166   tmp_tmp = GET_H_FR_LO (FLD (f_FRk));
19167   tmp_tmp = ANDHI (tmp_tmp, 2047);
19168   tmp_tmp = ORHI (tmp_tmp, SLLSI (ANDSI (FLD (f_s5), 31), 11));
19169   {
19170     UHI opval = tmp_tmp;
19171     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, FLD (f_FRk), opval);
19172     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19173   }
19174 }
19175
19176   return vpc;
19177 #undef FLD
19178 }
19179
19180 /* mhsethih: mhsethih$pack $s5,$FRkhi */
19181
19182 static SEM_PC
19183 SEM_FN_NAME (frvbf,mhsethih) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19184 {
19185 #define FLD(f) abuf->fields.sfmt_mhsethih.f
19186   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19187   int UNUSED written = 0;
19188   IADDR UNUSED pc = abuf->addr;
19189   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19190
19191 {
19192   HI tmp_tmp;
19193   tmp_tmp = GET_H_FR_HI (FLD (f_FRk));
19194   tmp_tmp = ANDHI (tmp_tmp, 2047);
19195   tmp_tmp = ORHI (tmp_tmp, SLLSI (ANDSI (FLD (f_s5), 31), 11));
19196   {
19197     UHI opval = tmp_tmp;
19198     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, FLD (f_FRk), opval);
19199     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19200   }
19201 }
19202
19203   return vpc;
19204 #undef FLD
19205 }
19206
19207 /* mhdseth: mhdseth$pack $s5,$FRintk */
19208
19209 static SEM_PC
19210 SEM_FN_NAME (frvbf,mhdseth) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19211 {
19212 #define FLD(f) abuf->fields.sfmt_mhdseth.f
19213   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19214   int UNUSED written = 0;
19215   IADDR UNUSED pc = abuf->addr;
19216   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19217
19218 {
19219   {
19220     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
19221     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19222     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19223   }
19224 {
19225   HI tmp_tmp;
19226   tmp_tmp = GET_H_FR_HI (((FLD (f_FRk)) + (0)));
19227   tmp_tmp = ANDHI (tmp_tmp, 2047);
19228   tmp_tmp = ORHI (tmp_tmp, SLLSI (ANDSI (FLD (f_s5), 31), 11));
19229   {
19230     UHI opval = tmp_tmp;
19231     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
19232     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19233   }
19234 }
19235 {
19236   HI tmp_tmp;
19237   tmp_tmp = GET_H_FR_LO (((FLD (f_FRk)) + (0)));
19238   tmp_tmp = ANDHI (tmp_tmp, 2047);
19239   tmp_tmp = ORHI (tmp_tmp, SLLSI (ANDSI (FLD (f_s5), 31), 11));
19240   {
19241     UHI opval = tmp_tmp;
19242     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
19243     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19244   }
19245 }
19246 }
19247
19248   return vpc;
19249 #undef FLD
19250 }
19251
19252 /* mand: mand$pack $FRinti,$FRintj,$FRintk */
19253
19254 static SEM_PC
19255 SEM_FN_NAME (frvbf,mand) (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 = ANDSI (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 /* mor: mor$pack $FRinti,$FRintj,$FRintk */
19274
19275 static SEM_PC
19276 SEM_FN_NAME (frvbf,mor) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19277 {
19278 #define FLD(f) abuf->fields.sfmt_mwcut.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   {
19285     SI opval = ORSI (GET_H_FR_INT (FLD (f_FRi)), GET_H_FR_INT (FLD (f_FRj)));
19286     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19287     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19288   }
19289
19290   return vpc;
19291 #undef FLD
19292 }
19293
19294 /* mxor: mxor$pack $FRinti,$FRintj,$FRintk */
19295
19296 static SEM_PC
19297 SEM_FN_NAME (frvbf,mxor) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19298 {
19299 #define FLD(f) abuf->fields.sfmt_mwcut.f
19300   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19301   int UNUSED written = 0;
19302   IADDR UNUSED pc = abuf->addr;
19303   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19304
19305   {
19306     SI opval = XORSI (GET_H_FR_INT (FLD (f_FRi)), GET_H_FR_INT (FLD (f_FRj)));
19307     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19308     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19309   }
19310
19311   return vpc;
19312 #undef FLD
19313 }
19314
19315 /* cmand: cmand$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
19316
19317 static SEM_PC
19318 SEM_FN_NAME (frvbf,cmand) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19319 {
19320 #define FLD(f) abuf->fields.sfmt_cmand.f
19321   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19322   int UNUSED written = 0;
19323   IADDR UNUSED pc = abuf->addr;
19324   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19325
19326 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
19327   {
19328     SI opval = ANDSI (GET_H_FR_INT (FLD (f_FRi)), GET_H_FR_INT (FLD (f_FRj)));
19329     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19330     written |= (1 << 4);
19331     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19332   }
19333 }
19334
19335   abuf->written = written;
19336   return vpc;
19337 #undef FLD
19338 }
19339
19340 /* cmor: cmor$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
19341
19342 static SEM_PC
19343 SEM_FN_NAME (frvbf,cmor) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19344 {
19345 #define FLD(f) abuf->fields.sfmt_cmand.f
19346   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19347   int UNUSED written = 0;
19348   IADDR UNUSED pc = abuf->addr;
19349   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19350
19351 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
19352   {
19353     SI opval = ORSI (GET_H_FR_INT (FLD (f_FRi)), GET_H_FR_INT (FLD (f_FRj)));
19354     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19355     written |= (1 << 4);
19356     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19357   }
19358 }
19359
19360   abuf->written = written;
19361   return vpc;
19362 #undef FLD
19363 }
19364
19365 /* cmxor: cmxor$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
19366
19367 static SEM_PC
19368 SEM_FN_NAME (frvbf,cmxor) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19369 {
19370 #define FLD(f) abuf->fields.sfmt_cmand.f
19371   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19372   int UNUSED written = 0;
19373   IADDR UNUSED pc = abuf->addr;
19374   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19375
19376 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
19377   {
19378     SI opval = XORSI (GET_H_FR_INT (FLD (f_FRi)), GET_H_FR_INT (FLD (f_FRj)));
19379     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19380     written |= (1 << 4);
19381     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19382   }
19383 }
19384
19385   abuf->written = written;
19386   return vpc;
19387 #undef FLD
19388 }
19389
19390 /* mnot: mnot$pack $FRintj,$FRintk */
19391
19392 static SEM_PC
19393 SEM_FN_NAME (frvbf,mnot) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19394 {
19395 #define FLD(f) abuf->fields.sfmt_mcut.f
19396   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19397   int UNUSED written = 0;
19398   IADDR UNUSED pc = abuf->addr;
19399   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19400
19401   {
19402     SI opval = INVSI (GET_H_FR_INT (FLD (f_FRj)));
19403     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19404     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19405   }
19406
19407   return vpc;
19408 #undef FLD
19409 }
19410
19411 /* cmnot: cmnot$pack $FRintj,$FRintk,$CCi,$cond */
19412
19413 static SEM_PC
19414 SEM_FN_NAME (frvbf,cmnot) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19415 {
19416 #define FLD(f) abuf->fields.sfmt_cmand.f
19417   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19418   int UNUSED written = 0;
19419   IADDR UNUSED pc = abuf->addr;
19420   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19421
19422 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
19423   {
19424     SI opval = INVSI (GET_H_FR_INT (FLD (f_FRj)));
19425     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19426     written |= (1 << 3);
19427     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19428   }
19429 }
19430
19431   abuf->written = written;
19432   return vpc;
19433 #undef FLD
19434 }
19435
19436 /* mrotli: mrotli$pack $FRinti,$u6,$FRintk */
19437
19438 static SEM_PC
19439 SEM_FN_NAME (frvbf,mrotli) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19440 {
19441 #define FLD(f) abuf->fields.sfmt_mwcuti.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 = ROLSI (GET_H_FR_INT (FLD (f_FRi)), ANDSI (FLD (f_u6), 31));
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 /* mrotri: mrotri$pack $FRinti,$u6,$FRintk */
19458
19459 static SEM_PC
19460 SEM_FN_NAME (frvbf,mrotri) (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 = RORSI (GET_H_FR_INT (FLD (f_FRi)), ANDSI (FLD (f_u6), 31));
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 /* mwcut: mwcut$pack $FRinti,$FRintj,$FRintk */
19479
19480 static SEM_PC
19481 SEM_FN_NAME (frvbf,mwcut) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19482 {
19483 #define FLD(f) abuf->fields.sfmt_mwcut.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_cut (current_cpu, GET_H_FR_INT (FLD (f_FRi)), GET_H_FR_INT (((FLD (f_FRi)) + (1))), GET_H_FR_INT (FLD (f_FRj)));
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 /* mwcuti: mwcuti$pack $FRinti,$u6,$FRintk */
19500
19501 static SEM_PC
19502 SEM_FN_NAME (frvbf,mwcuti) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19503 {
19504 #define FLD(f) abuf->fields.sfmt_mwcuti.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_cut (current_cpu, GET_H_FR_INT (FLD (f_FRi)), GET_H_FR_INT (((FLD (f_FRi)) + (1))), FLD (f_u6));
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 /* mcut: mcut$pack $ACC40Si,$FRintj,$FRintk */
19521
19522 static SEM_PC
19523 SEM_FN_NAME (frvbf,mcut) (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 (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 /* mcuti: mcuti$pack $ACC40Si,$s6,$FRintk */
19542
19543 static SEM_PC
19544 SEM_FN_NAME (frvbf,mcuti) (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 (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 /* mcutss: mcutss$pack $ACC40Si,$FRintj,$FRintk */
19563
19564 static SEM_PC
19565 SEM_FN_NAME (frvbf,mcutss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19566 {
19567 #define FLD(f) abuf->fields.sfmt_mcut.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   {
19574     SI opval = frvbf_media_cut_ss (current_cpu, GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_FR_INT (FLD (f_FRj)));
19575     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19576     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19577   }
19578
19579   return vpc;
19580 #undef FLD
19581 }
19582
19583 /* mcutssi: mcutssi$pack $ACC40Si,$s6,$FRintk */
19584
19585 static SEM_PC
19586 SEM_FN_NAME (frvbf,mcutssi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19587 {
19588 #define FLD(f) abuf->fields.sfmt_mcuti.f
19589   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19590   int UNUSED written = 0;
19591   IADDR UNUSED pc = abuf->addr;
19592   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19593
19594   {
19595     SI opval = frvbf_media_cut_ss (current_cpu, GET_H_ACC40S (FLD (f_ACC40Si)), FLD (f_s6));
19596     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19597     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19598   }
19599
19600   return vpc;
19601 #undef FLD
19602 }
19603
19604 /* mdcutssi: mdcutssi$pack $ACC40Si,$s6,$FRintkeven */
19605
19606 static SEM_PC
19607 SEM_FN_NAME (frvbf,mdcutssi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19608 {
19609 #define FLD(f) abuf->fields.sfmt_mdcutssi.f
19610   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19611   int UNUSED written = 0;
19612   IADDR UNUSED pc = abuf->addr;
19613   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19614
19615 if (ANDSI (FLD (f_ACC40Si), SUBSI (2, 1))) {
19616 frvbf_media_acc_not_aligned (current_cpu);
19617 } else {
19618 if (ANDSI (FLD (f_FRk), SUBSI (2, 1))) {
19619 frvbf_media_register_not_aligned (current_cpu);
19620 } else {
19621 {
19622   {
19623     SI opval = frvbf_media_cut_ss (current_cpu, GET_H_ACC40S (FLD (f_ACC40Si)), FLD (f_s6));
19624     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19625     written |= (1 << 5);
19626     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19627   }
19628   {
19629     USI opval = frvbf_media_cut_ss (current_cpu, GET_H_ACC40S (((FLD (f_ACC40Si)) + (1))), FLD (f_s6));
19630     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (1)), opval);
19631     written |= (1 << 6);
19632     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19633   }
19634 }
19635 }
19636 }
19637
19638   abuf->written = written;
19639   return vpc;
19640 #undef FLD
19641 }
19642
19643 /* maveh: maveh$pack $FRinti,$FRintj,$FRintk */
19644
19645 static SEM_PC
19646 SEM_FN_NAME (frvbf,maveh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19647 {
19648 #define FLD(f) abuf->fields.sfmt_mwcut.f
19649   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19650   int UNUSED written = 0;
19651   IADDR UNUSED pc = abuf->addr;
19652   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19653
19654   {
19655     SI opval = frvbf_media_average (current_cpu, GET_H_FR_INT (FLD (f_FRi)), GET_H_FR_INT (FLD (f_FRj)));
19656     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19657     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19658   }
19659
19660   return vpc;
19661 #undef FLD
19662 }
19663
19664 /* msllhi: msllhi$pack $FRinti,$u6,$FRintk */
19665
19666 static SEM_PC
19667 SEM_FN_NAME (frvbf,msllhi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19668 {
19669 #define FLD(f) abuf->fields.sfmt_msllhi.f
19670   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19671   int UNUSED written = 0;
19672   IADDR UNUSED pc = abuf->addr;
19673   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19674
19675 {
19676   {
19677     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRi)));
19678     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRi), opval);
19679     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19680   }
19681   {
19682     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
19683     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19684     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19685   }
19686   {
19687     UHI opval = SLLHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), ANDSI (FLD (f_u6), 15));
19688     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
19689     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19690   }
19691   {
19692     UHI opval = SLLHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), ANDSI (FLD (f_u6), 15));
19693     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
19694     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19695   }
19696 }
19697
19698   return vpc;
19699 #undef FLD
19700 }
19701
19702 /* msrlhi: msrlhi$pack $FRinti,$u6,$FRintk */
19703
19704 static SEM_PC
19705 SEM_FN_NAME (frvbf,msrlhi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19706 {
19707 #define FLD(f) abuf->fields.sfmt_msllhi.f
19708   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19709   int UNUSED written = 0;
19710   IADDR UNUSED pc = abuf->addr;
19711   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19712
19713 {
19714   {
19715     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRi)));
19716     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRi), opval);
19717     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19718   }
19719   {
19720     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
19721     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19722     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19723   }
19724   {
19725     UHI opval = SRLHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), ANDSI (FLD (f_u6), 15));
19726     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
19727     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19728   }
19729   {
19730     UHI opval = SRLHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), ANDSI (FLD (f_u6), 15));
19731     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
19732     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19733   }
19734 }
19735
19736   return vpc;
19737 #undef FLD
19738 }
19739
19740 /* msrahi: msrahi$pack $FRinti,$u6,$FRintk */
19741
19742 static SEM_PC
19743 SEM_FN_NAME (frvbf,msrahi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19744 {
19745 #define FLD(f) abuf->fields.sfmt_msllhi.f
19746   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19747   int UNUSED written = 0;
19748   IADDR UNUSED pc = abuf->addr;
19749   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19750
19751 {
19752   {
19753     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRi)));
19754     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRi), opval);
19755     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19756   }
19757   {
19758     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
19759     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19760     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19761   }
19762   {
19763     UHI opval = SRAHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), ANDSI (FLD (f_u6), 15));
19764     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
19765     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19766   }
19767   {
19768     UHI opval = SRAHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), ANDSI (FLD (f_u6), 15));
19769     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
19770     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19771   }
19772 }
19773
19774   return vpc;
19775 #undef FLD
19776 }
19777
19778 /* mdrotli: mdrotli$pack $FRintieven,$s6,$FRintkeven */
19779
19780 static SEM_PC
19781 SEM_FN_NAME (frvbf,mdrotli) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19782 {
19783 #define FLD(f) abuf->fields.sfmt_mdrotli.f
19784   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19785   int UNUSED written = 0;
19786   IADDR UNUSED pc = abuf->addr;
19787   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19788
19789 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1)))) {
19790 frvbf_media_register_not_aligned (current_cpu);
19791 } else {
19792 {
19793   {
19794     SI opval = ROLSI (GET_H_FR_INT (FLD (f_FRi)), ANDSI (FLD (f_s6), 31));
19795     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19796     written |= (1 << 5);
19797     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19798   }
19799   {
19800     USI opval = ROLSI (GET_H_FR_INT (((FLD (f_FRi)) + (1))), ANDSI (FLD (f_s6), 31));
19801     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (1)), opval);
19802     written |= (1 << 6);
19803     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19804   }
19805 }
19806 }
19807
19808   abuf->written = written;
19809   return vpc;
19810 #undef FLD
19811 }
19812
19813 /* mcplhi: mcplhi$pack $FRinti,$u6,$FRintk */
19814
19815 static SEM_PC
19816 SEM_FN_NAME (frvbf,mcplhi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19817 {
19818 #define FLD(f) abuf->fields.sfmt_mcplhi.f
19819   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19820   int UNUSED written = 0;
19821   IADDR UNUSED pc = abuf->addr;
19822   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19823
19824 {
19825   HI tmp_arg1;
19826   HI tmp_arg2;
19827   HI tmp_shift;
19828   {
19829     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRi)));
19830     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRi), opval);
19831     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19832   }
19833   {
19834     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
19835     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19836     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19837   }
19838   tmp_shift = ANDSI (FLD (f_u6), 15);
19839   tmp_arg1 = SLLHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), tmp_shift);
19840 if (NEHI (tmp_shift, 0)) {
19841 {
19842   tmp_arg2 = GET_H_FR_HI (((FLD (f_FRi)) + (1)));
19843   tmp_arg2 = SRLHI (SLLHI (tmp_arg2, SUBSI (15, tmp_shift)), SUBSI (15, tmp_shift));
19844   tmp_arg1 = ORHI (tmp_arg1, tmp_arg2);
19845 }
19846 }
19847   {
19848     UHI opval = tmp_arg1;
19849     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
19850     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19851   }
19852 }
19853
19854   return vpc;
19855 #undef FLD
19856 }
19857
19858 /* mcpli: mcpli$pack $FRinti,$u6,$FRintk */
19859
19860 static SEM_PC
19861 SEM_FN_NAME (frvbf,mcpli) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19862 {
19863 #define FLD(f) abuf->fields.sfmt_mwcuti.f
19864   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19865   int UNUSED written = 0;
19866   IADDR UNUSED pc = abuf->addr;
19867   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19868
19869 {
19870   SI tmp_tmp;
19871   SI tmp_shift;
19872   tmp_shift = ANDSI (FLD (f_u6), 31);
19873   tmp_tmp = SLLSI (GET_H_FR_INT (FLD (f_FRi)), tmp_shift);
19874 if (NESI (tmp_shift, 0)) {
19875 {
19876   SI tmp_tmp1;
19877   tmp_tmp1 = SRLSI (SLLSI (GET_H_FR_INT (((FLD (f_FRi)) + (1))), SUBSI (31, tmp_shift)), SUBSI (31, tmp_shift));
19878   tmp_tmp = ORSI (tmp_tmp, tmp_tmp1);
19879 }
19880 }
19881   {
19882     SI opval = tmp_tmp;
19883     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19884     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19885   }
19886 }
19887
19888   return vpc;
19889 #undef FLD
19890 }
19891
19892 /* msaths: msaths$pack $FRinti,$FRintj,$FRintk */
19893
19894 static SEM_PC
19895 SEM_FN_NAME (frvbf,msaths) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19896 {
19897 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
19898   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19899   int UNUSED written = 0;
19900   IADDR UNUSED pc = abuf->addr;
19901   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19902
19903 {
19904   HI tmp_argihi;
19905   HI tmp_argilo;
19906   HI tmp_argjhi;
19907   HI tmp_argjlo;
19908 {
19909   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
19910   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
19911   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
19912   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
19913 }
19914 if (GTHI (tmp_argihi, tmp_argjhi)) {
19915   {
19916     UHI opval = tmp_argjhi;
19917     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
19918     written |= (1 << 9);
19919     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19920   }
19921 } else {
19922 if (LTHI (tmp_argihi, INVHI (tmp_argjhi))) {
19923   {
19924     UHI opval = INVHI (tmp_argjhi);
19925     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
19926     written |= (1 << 9);
19927     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19928   }
19929 } else {
19930   {
19931     UHI opval = tmp_argihi;
19932     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
19933     written |= (1 << 9);
19934     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19935   }
19936 }
19937 }
19938 if (GTHI (tmp_argilo, tmp_argjlo)) {
19939   {
19940     UHI opval = tmp_argjlo;
19941     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
19942     written |= (1 << 10);
19943     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19944   }
19945 } else {
19946 if (LTHI (tmp_argilo, INVHI (tmp_argjlo))) {
19947   {
19948     UHI opval = INVHI (tmp_argjlo);
19949     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
19950     written |= (1 << 10);
19951     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19952   }
19953 } else {
19954   {
19955     UHI opval = tmp_argilo;
19956     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
19957     written |= (1 << 10);
19958     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19959   }
19960 }
19961 }
19962 }
19963
19964   abuf->written = written;
19965   return vpc;
19966 #undef FLD
19967 }
19968
19969 /* mqsaths: mqsaths$pack $FRintieven,$FRintjeven,$FRintkeven */
19970
19971 static SEM_PC
19972 SEM_FN_NAME (frvbf,mqsaths) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19973 {
19974 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
19975   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19976   int UNUSED written = 0;
19977   IADDR UNUSED pc = abuf->addr;
19978   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19979
19980 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
19981 frvbf_media_register_not_aligned (current_cpu);
19982 } else {
19983 {
19984   HI tmp_argihi;
19985   HI tmp_argilo;
19986   HI tmp_argjhi;
19987   HI tmp_argjlo;
19988   {
19989     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
19990     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19991     written |= (1 << 14);
19992     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19993   }
19994 {
19995   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
19996   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
19997   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
19998   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
19999 }
20000 if (GTHI (tmp_argihi, tmp_argjhi)) {
20001   {
20002     UHI opval = tmp_argjhi;
20003     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20004     written |= (1 << 15);
20005     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20006   }
20007 } else {
20008 if (LTHI (tmp_argihi, INVHI (tmp_argjhi))) {
20009   {
20010     UHI opval = INVHI (tmp_argjhi);
20011     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20012     written |= (1 << 15);
20013     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20014   }
20015 } else {
20016   {
20017     UHI opval = tmp_argihi;
20018     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20019     written |= (1 << 15);
20020     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20021   }
20022 }
20023 }
20024 if (GTHI (tmp_argilo, tmp_argjlo)) {
20025   {
20026     UHI opval = tmp_argjlo;
20027     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20028     written |= (1 << 17);
20029     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20030   }
20031 } else {
20032 if (LTHI (tmp_argilo, INVHI (tmp_argjlo))) {
20033   {
20034     UHI opval = INVHI (tmp_argjlo);
20035     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20036     written |= (1 << 17);
20037     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20038   }
20039 } else {
20040   {
20041     UHI opval = tmp_argilo;
20042     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20043     written |= (1 << 17);
20044     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20045   }
20046 }
20047 }
20048 {
20049   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20050   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20051   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20052   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20053 }
20054 if (GTHI (tmp_argihi, tmp_argjhi)) {
20055   {
20056     UHI opval = tmp_argjhi;
20057     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
20058     written |= (1 << 16);
20059     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20060   }
20061 } else {
20062 if (LTHI (tmp_argihi, INVHI (tmp_argjhi))) {
20063   {
20064     UHI opval = INVHI (tmp_argjhi);
20065     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
20066     written |= (1 << 16);
20067     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20068   }
20069 } else {
20070   {
20071     UHI opval = tmp_argihi;
20072     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
20073     written |= (1 << 16);
20074     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20075   }
20076 }
20077 }
20078 if (GTHI (tmp_argilo, tmp_argjlo)) {
20079   {
20080     UHI opval = tmp_argjlo;
20081     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
20082     written |= (1 << 18);
20083     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20084   }
20085 } else {
20086 if (LTHI (tmp_argilo, INVHI (tmp_argjlo))) {
20087   {
20088     UHI opval = INVHI (tmp_argjlo);
20089     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
20090     written |= (1 << 18);
20091     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20092   }
20093 } else {
20094   {
20095     UHI opval = tmp_argilo;
20096     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
20097     written |= (1 << 18);
20098     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20099   }
20100 }
20101 }
20102 }
20103 }
20104
20105   abuf->written = written;
20106   return vpc;
20107 #undef FLD
20108 }
20109
20110 /* msathu: msathu$pack $FRinti,$FRintj,$FRintk */
20111
20112 static SEM_PC
20113 SEM_FN_NAME (frvbf,msathu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20114 {
20115 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
20116   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20117   int UNUSED written = 0;
20118   IADDR UNUSED pc = abuf->addr;
20119   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20120
20121 {
20122   UHI tmp_argihi;
20123   UHI tmp_argilo;
20124   UHI tmp_argjhi;
20125   UHI tmp_argjlo;
20126 {
20127   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20128   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20129   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20130   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20131 }
20132 if (GTUHI (tmp_argihi, tmp_argjhi)) {
20133   {
20134     UHI opval = tmp_argjhi;
20135     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20136     written |= (1 << 9);
20137     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20138   }
20139 } else {
20140   {
20141     UHI opval = tmp_argihi;
20142     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20143     written |= (1 << 9);
20144     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20145   }
20146 }
20147 if (GTUHI (tmp_argilo, tmp_argjlo)) {
20148   {
20149     UHI opval = tmp_argjlo;
20150     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20151     written |= (1 << 10);
20152     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20153   }
20154 } else {
20155   {
20156     UHI opval = tmp_argilo;
20157     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20158     written |= (1 << 10);
20159     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20160   }
20161 }
20162 }
20163
20164   abuf->written = written;
20165   return vpc;
20166 #undef FLD
20167 }
20168
20169 /* mcmpsh: mcmpsh$pack $FRinti,$FRintj,$FCCk */
20170
20171 static SEM_PC
20172 SEM_FN_NAME (frvbf,mcmpsh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20173 {
20174 #define FLD(f) abuf->fields.sfmt_mcmpsh.f
20175   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20176   int UNUSED written = 0;
20177   IADDR UNUSED pc = abuf->addr;
20178   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20179
20180 if (ANDSI (FLD (f_FCCk), SUBSI (2, 1))) {
20181 frvbf_media_cr_not_aligned (current_cpu);
20182 } else {
20183 {
20184   HI tmp_argihi;
20185   HI tmp_argilo;
20186   HI tmp_argjhi;
20187   HI tmp_argjlo;
20188 {
20189   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20190   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20191   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20192   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20193 }
20194 if (GTHI (tmp_argihi, tmp_argjhi)) {
20195   {
20196     UQI opval = 2;
20197     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCk)]), opval);
20198     written |= (1 << 9);
20199     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20200   }
20201 } else {
20202 if (EQHI (tmp_argihi, tmp_argjhi)) {
20203   {
20204     UQI opval = 8;
20205     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCk)]), opval);
20206     written |= (1 << 9);
20207     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20208   }
20209 } else {
20210 if (LTHI (tmp_argihi, tmp_argjhi)) {
20211   {
20212     UQI opval = 4;
20213     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCk)]), opval);
20214     written |= (1 << 9);
20215     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20216   }
20217 } else {
20218   {
20219     UQI opval = 1;
20220     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCk)]), opval);
20221     written |= (1 << 9);
20222     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20223   }
20224 }
20225 }
20226 }
20227 if (GTHI (tmp_argilo, tmp_argjlo)) {
20228   {
20229     UQI opval = 2;
20230     sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCk)) + (1))]), opval);
20231     written |= (1 << 10);
20232     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20233   }
20234 } else {
20235 if (EQHI (tmp_argilo, tmp_argjlo)) {
20236   {
20237     UQI opval = 8;
20238     sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCk)) + (1))]), opval);
20239     written |= (1 << 10);
20240     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20241   }
20242 } else {
20243 if (LTHI (tmp_argilo, tmp_argjlo)) {
20244   {
20245     UQI opval = 4;
20246     sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCk)) + (1))]), opval);
20247     written |= (1 << 10);
20248     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20249   }
20250 } else {
20251   {
20252     UQI opval = 1;
20253     sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCk)) + (1))]), opval);
20254     written |= (1 << 10);
20255     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20256   }
20257 }
20258 }
20259 }
20260 }
20261 }
20262
20263   abuf->written = written;
20264   return vpc;
20265 #undef FLD
20266 }
20267
20268 /* mcmpuh: mcmpuh$pack $FRinti,$FRintj,$FCCk */
20269
20270 static SEM_PC
20271 SEM_FN_NAME (frvbf,mcmpuh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20272 {
20273 #define FLD(f) abuf->fields.sfmt_mcmpsh.f
20274   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20275   int UNUSED written = 0;
20276   IADDR UNUSED pc = abuf->addr;
20277   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20278
20279 if (ANDSI (FLD (f_FCCk), SUBSI (2, 1))) {
20280 frvbf_media_cr_not_aligned (current_cpu);
20281 } else {
20282 {
20283   UHI tmp_argihi;
20284   UHI tmp_argilo;
20285   UHI tmp_argjhi;
20286   UHI tmp_argjlo;
20287 {
20288   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20289   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20290   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20291   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20292 }
20293 if (GTUHI (tmp_argihi, tmp_argjhi)) {
20294   {
20295     UQI opval = 2;
20296     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCk)]), opval);
20297     written |= (1 << 9);
20298     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20299   }
20300 } else {
20301 if (EQHI (tmp_argihi, tmp_argjhi)) {
20302   {
20303     UQI opval = 8;
20304     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCk)]), opval);
20305     written |= (1 << 9);
20306     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20307   }
20308 } else {
20309 if (LTUHI (tmp_argihi, tmp_argjhi)) {
20310   {
20311     UQI opval = 4;
20312     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCk)]), opval);
20313     written |= (1 << 9);
20314     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20315   }
20316 } else {
20317   {
20318     UQI opval = 1;
20319     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCk)]), opval);
20320     written |= (1 << 9);
20321     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20322   }
20323 }
20324 }
20325 }
20326 if (GTUHI (tmp_argilo, tmp_argjlo)) {
20327   {
20328     UQI opval = 2;
20329     sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCk)) + (1))]), opval);
20330     written |= (1 << 10);
20331     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20332   }
20333 } else {
20334 if (EQHI (tmp_argilo, tmp_argjlo)) {
20335   {
20336     UQI opval = 8;
20337     sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCk)) + (1))]), opval);
20338     written |= (1 << 10);
20339     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20340   }
20341 } else {
20342 if (LTUHI (tmp_argilo, tmp_argjlo)) {
20343   {
20344     UQI opval = 4;
20345     sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCk)) + (1))]), opval);
20346     written |= (1 << 10);
20347     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20348   }
20349 } else {
20350   {
20351     UQI opval = 1;
20352     sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCk)) + (1))]), opval);
20353     written |= (1 << 10);
20354     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20355   }
20356 }
20357 }
20358 }
20359 }
20360 }
20361
20362   abuf->written = written;
20363   return vpc;
20364 #undef FLD
20365 }
20366
20367 /* mabshs: mabshs$pack $FRintj,$FRintk */
20368
20369 static SEM_PC
20370 SEM_FN_NAME (frvbf,mabshs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20371 {
20372 #define FLD(f) abuf->fields.sfmt_mabshs.f
20373   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20374   int UNUSED written = 0;
20375   IADDR UNUSED pc = abuf->addr;
20376   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20377
20378 {
20379   HI tmp_arghi;
20380   HI tmp_arglo;
20381   {
20382     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRj)));
20383     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRj), opval);
20384     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
20385   }
20386   {
20387     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
20388     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
20389     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
20390   }
20391   tmp_arghi = GET_H_FR_HI (((FLD (f_FRj)) + (0)));
20392   tmp_arglo = GET_H_FR_LO (((FLD (f_FRj)) + (0)));
20393 if (GTDI (ABSHI (tmp_arghi), 32767)) {
20394 {
20395   {
20396     UHI opval = 32767;
20397     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20398     written |= (1 << 8);
20399     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20400   }
20401 frvbf_media_overflow (current_cpu, 8);
20402 }
20403 } else {
20404 if (LTDI (ABSHI (tmp_arghi), -32768)) {
20405 {
20406   {
20407     UHI opval = -32768;
20408     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20409     written |= (1 << 8);
20410     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20411   }
20412 frvbf_media_overflow (current_cpu, 8);
20413 }
20414 } else {
20415   {
20416     UHI opval = ABSHI (tmp_arghi);
20417     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20418     written |= (1 << 8);
20419     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20420   }
20421 }
20422 }
20423 if (GTDI (ABSHI (tmp_arglo), 32767)) {
20424 {
20425   {
20426     UHI opval = 32767;
20427     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20428     written |= (1 << 9);
20429     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20430   }
20431 frvbf_media_overflow (current_cpu, 4);
20432 }
20433 } else {
20434 if (LTDI (ABSHI (tmp_arglo), -32768)) {
20435 {
20436   {
20437     UHI opval = -32768;
20438     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20439     written |= (1 << 9);
20440     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20441   }
20442 frvbf_media_overflow (current_cpu, 4);
20443 }
20444 } else {
20445   {
20446     UHI opval = ABSHI (tmp_arglo);
20447     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20448     written |= (1 << 9);
20449     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20450   }
20451 }
20452 }
20453 }
20454
20455   abuf->written = written;
20456   return vpc;
20457 #undef FLD
20458 }
20459
20460 /* maddhss: maddhss$pack $FRinti,$FRintj,$FRintk */
20461
20462 static SEM_PC
20463 SEM_FN_NAME (frvbf,maddhss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20464 {
20465 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
20466   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20467   int UNUSED written = 0;
20468   IADDR UNUSED pc = abuf->addr;
20469   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20470
20471 {
20472   HI tmp_argihi;
20473   HI tmp_argilo;
20474   HI tmp_argjhi;
20475   HI tmp_argjlo;
20476 {
20477   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20478   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20479   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20480   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20481 }
20482 {
20483   DI tmp_tmp;
20484   tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
20485 if (GTDI (tmp_tmp, 32767)) {
20486 {
20487   {
20488     UHI opval = 32767;
20489     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20490     written |= (1 << 9);
20491     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20492   }
20493 frvbf_media_overflow (current_cpu, 8);
20494 }
20495 } else {
20496 if (LTDI (tmp_tmp, -32768)) {
20497 {
20498   {
20499     UHI opval = -32768;
20500     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20501     written |= (1 << 9);
20502     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20503   }
20504 frvbf_media_overflow (current_cpu, 8);
20505 }
20506 } else {
20507   {
20508     UHI opval = tmp_tmp;
20509     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20510     written |= (1 << 9);
20511     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20512   }
20513 }
20514 }
20515 }
20516 {
20517   DI tmp_tmp;
20518   tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
20519 if (GTDI (tmp_tmp, 32767)) {
20520 {
20521   {
20522     UHI opval = 32767;
20523     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20524     written |= (1 << 10);
20525     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20526   }
20527 frvbf_media_overflow (current_cpu, 4);
20528 }
20529 } else {
20530 if (LTDI (tmp_tmp, -32768)) {
20531 {
20532   {
20533     UHI opval = -32768;
20534     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20535     written |= (1 << 10);
20536     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20537   }
20538 frvbf_media_overflow (current_cpu, 4);
20539 }
20540 } else {
20541   {
20542     UHI opval = tmp_tmp;
20543     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20544     written |= (1 << 10);
20545     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20546   }
20547 }
20548 }
20549 }
20550 }
20551
20552   abuf->written = written;
20553   return vpc;
20554 #undef FLD
20555 }
20556
20557 /* maddhus: maddhus$pack $FRinti,$FRintj,$FRintk */
20558
20559 static SEM_PC
20560 SEM_FN_NAME (frvbf,maddhus) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20561 {
20562 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
20563   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20564   int UNUSED written = 0;
20565   IADDR UNUSED pc = abuf->addr;
20566   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20567
20568 {
20569   UHI tmp_argihi;
20570   UHI tmp_argilo;
20571   UHI tmp_argjhi;
20572   UHI tmp_argjlo;
20573 {
20574   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20575   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20576   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20577   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20578 }
20579 {
20580   DI tmp_tmp;
20581   tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
20582 if (GTDI (tmp_tmp, 65535)) {
20583 {
20584   {
20585     UHI opval = 65535;
20586     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20587     written |= (1 << 9);
20588     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20589   }
20590 frvbf_media_overflow (current_cpu, 8);
20591 }
20592 } else {
20593 if (LTDI (tmp_tmp, 0)) {
20594 {
20595   {
20596     UHI opval = 0;
20597     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20598     written |= (1 << 9);
20599     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20600   }
20601 frvbf_media_overflow (current_cpu, 8);
20602 }
20603 } else {
20604   {
20605     UHI opval = tmp_tmp;
20606     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20607     written |= (1 << 9);
20608     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20609   }
20610 }
20611 }
20612 }
20613 {
20614   DI tmp_tmp;
20615   tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
20616 if (GTDI (tmp_tmp, 65535)) {
20617 {
20618   {
20619     UHI opval = 65535;
20620     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20621     written |= (1 << 10);
20622     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20623   }
20624 frvbf_media_overflow (current_cpu, 4);
20625 }
20626 } else {
20627 if (LTDI (tmp_tmp, 0)) {
20628 {
20629   {
20630     UHI opval = 0;
20631     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20632     written |= (1 << 10);
20633     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20634   }
20635 frvbf_media_overflow (current_cpu, 4);
20636 }
20637 } else {
20638   {
20639     UHI opval = tmp_tmp;
20640     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20641     written |= (1 << 10);
20642     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20643   }
20644 }
20645 }
20646 }
20647 }
20648
20649   abuf->written = written;
20650   return vpc;
20651 #undef FLD
20652 }
20653
20654 /* msubhss: msubhss$pack $FRinti,$FRintj,$FRintk */
20655
20656 static SEM_PC
20657 SEM_FN_NAME (frvbf,msubhss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20658 {
20659 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
20660   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20661   int UNUSED written = 0;
20662   IADDR UNUSED pc = abuf->addr;
20663   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20664
20665 {
20666   HI tmp_argihi;
20667   HI tmp_argilo;
20668   HI tmp_argjhi;
20669   HI tmp_argjlo;
20670 {
20671   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20672   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20673   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20674   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20675 }
20676 {
20677   DI tmp_tmp;
20678   tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
20679 if (GTDI (tmp_tmp, 32767)) {
20680 {
20681   {
20682     UHI opval = 32767;
20683     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20684     written |= (1 << 9);
20685     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20686   }
20687 frvbf_media_overflow (current_cpu, 8);
20688 }
20689 } else {
20690 if (LTDI (tmp_tmp, -32768)) {
20691 {
20692   {
20693     UHI opval = -32768;
20694     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20695     written |= (1 << 9);
20696     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20697   }
20698 frvbf_media_overflow (current_cpu, 8);
20699 }
20700 } else {
20701   {
20702     UHI opval = tmp_tmp;
20703     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20704     written |= (1 << 9);
20705     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20706   }
20707 }
20708 }
20709 }
20710 {
20711   DI tmp_tmp;
20712   tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
20713 if (GTDI (tmp_tmp, 32767)) {
20714 {
20715   {
20716     UHI opval = 32767;
20717     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20718     written |= (1 << 10);
20719     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20720   }
20721 frvbf_media_overflow (current_cpu, 4);
20722 }
20723 } else {
20724 if (LTDI (tmp_tmp, -32768)) {
20725 {
20726   {
20727     UHI opval = -32768;
20728     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20729     written |= (1 << 10);
20730     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20731   }
20732 frvbf_media_overflow (current_cpu, 4);
20733 }
20734 } else {
20735   {
20736     UHI opval = tmp_tmp;
20737     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20738     written |= (1 << 10);
20739     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20740   }
20741 }
20742 }
20743 }
20744 }
20745
20746   abuf->written = written;
20747   return vpc;
20748 #undef FLD
20749 }
20750
20751 /* msubhus: msubhus$pack $FRinti,$FRintj,$FRintk */
20752
20753 static SEM_PC
20754 SEM_FN_NAME (frvbf,msubhus) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20755 {
20756 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
20757   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20758   int UNUSED written = 0;
20759   IADDR UNUSED pc = abuf->addr;
20760   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20761
20762 {
20763   UHI tmp_argihi;
20764   UHI tmp_argilo;
20765   UHI tmp_argjhi;
20766   UHI tmp_argjlo;
20767 {
20768   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20769   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20770   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20771   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20772 }
20773 {
20774   DI tmp_tmp;
20775   tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
20776 if (GTDI (tmp_tmp, 65535)) {
20777 {
20778   {
20779     UHI opval = 65535;
20780     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20781     written |= (1 << 9);
20782     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20783   }
20784 frvbf_media_overflow (current_cpu, 8);
20785 }
20786 } else {
20787 if (LTDI (tmp_tmp, 0)) {
20788 {
20789   {
20790     UHI opval = 0;
20791     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20792     written |= (1 << 9);
20793     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20794   }
20795 frvbf_media_overflow (current_cpu, 8);
20796 }
20797 } else {
20798   {
20799     UHI opval = tmp_tmp;
20800     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20801     written |= (1 << 9);
20802     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20803   }
20804 }
20805 }
20806 }
20807 {
20808   DI tmp_tmp;
20809   tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
20810 if (GTDI (tmp_tmp, 65535)) {
20811 {
20812   {
20813     UHI opval = 65535;
20814     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20815     written |= (1 << 10);
20816     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20817   }
20818 frvbf_media_overflow (current_cpu, 4);
20819 }
20820 } else {
20821 if (LTDI (tmp_tmp, 0)) {
20822 {
20823   {
20824     UHI opval = 0;
20825     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20826     written |= (1 << 10);
20827     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20828   }
20829 frvbf_media_overflow (current_cpu, 4);
20830 }
20831 } else {
20832   {
20833     UHI opval = tmp_tmp;
20834     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20835     written |= (1 << 10);
20836     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20837   }
20838 }
20839 }
20840 }
20841 }
20842
20843   abuf->written = written;
20844   return vpc;
20845 #undef FLD
20846 }
20847
20848 /* cmaddhss: cmaddhss$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
20849
20850 static SEM_PC
20851 SEM_FN_NAME (frvbf,cmaddhss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20852 {
20853 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
20854   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20855   int UNUSED written = 0;
20856   IADDR UNUSED pc = abuf->addr;
20857   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20858
20859 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
20860 {
20861   HI tmp_argihi;
20862   HI tmp_argilo;
20863   HI tmp_argjhi;
20864   HI tmp_argjlo;
20865 {
20866   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20867   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20868   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20869   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20870 }
20871 {
20872   DI tmp_tmp;
20873   tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
20874 if (GTDI (tmp_tmp, 32767)) {
20875 {
20876   {
20877     UHI opval = 32767;
20878     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20879     written |= (1 << 11);
20880     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20881   }
20882 frvbf_media_overflow (current_cpu, 8);
20883 }
20884 } else {
20885 if (LTDI (tmp_tmp, -32768)) {
20886 {
20887   {
20888     UHI opval = -32768;
20889     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20890     written |= (1 << 11);
20891     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20892   }
20893 frvbf_media_overflow (current_cpu, 8);
20894 }
20895 } else {
20896   {
20897     UHI opval = tmp_tmp;
20898     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20899     written |= (1 << 11);
20900     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20901   }
20902 }
20903 }
20904 }
20905 {
20906   DI tmp_tmp;
20907   tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
20908 if (GTDI (tmp_tmp, 32767)) {
20909 {
20910   {
20911     UHI opval = 32767;
20912     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20913     written |= (1 << 12);
20914     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20915   }
20916 frvbf_media_overflow (current_cpu, 4);
20917 }
20918 } else {
20919 if (LTDI (tmp_tmp, -32768)) {
20920 {
20921   {
20922     UHI opval = -32768;
20923     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20924     written |= (1 << 12);
20925     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20926   }
20927 frvbf_media_overflow (current_cpu, 4);
20928 }
20929 } else {
20930   {
20931     UHI opval = tmp_tmp;
20932     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20933     written |= (1 << 12);
20934     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20935   }
20936 }
20937 }
20938 }
20939 }
20940 }
20941
20942   abuf->written = written;
20943   return vpc;
20944 #undef FLD
20945 }
20946
20947 /* cmaddhus: cmaddhus$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
20948
20949 static SEM_PC
20950 SEM_FN_NAME (frvbf,cmaddhus) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20951 {
20952 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
20953   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20954   int UNUSED written = 0;
20955   IADDR UNUSED pc = abuf->addr;
20956   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20957
20958 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
20959 {
20960   UHI tmp_argihi;
20961   UHI tmp_argilo;
20962   UHI tmp_argjhi;
20963   UHI tmp_argjlo;
20964 {
20965   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20966   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20967   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20968   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20969 }
20970 {
20971   DI tmp_tmp;
20972   tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
20973 if (GTDI (tmp_tmp, 65535)) {
20974 {
20975   {
20976     UHI opval = 65535;
20977     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20978     written |= (1 << 11);
20979     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20980   }
20981 frvbf_media_overflow (current_cpu, 8);
20982 }
20983 } else {
20984 if (LTDI (tmp_tmp, 0)) {
20985 {
20986   {
20987     UHI opval = 0;
20988     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20989     written |= (1 << 11);
20990     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20991   }
20992 frvbf_media_overflow (current_cpu, 8);
20993 }
20994 } else {
20995   {
20996     UHI opval = tmp_tmp;
20997     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20998     written |= (1 << 11);
20999     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21000   }
21001 }
21002 }
21003 }
21004 {
21005   DI tmp_tmp;
21006   tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
21007 if (GTDI (tmp_tmp, 65535)) {
21008 {
21009   {
21010     UHI opval = 65535;
21011     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21012     written |= (1 << 12);
21013     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21014   }
21015 frvbf_media_overflow (current_cpu, 4);
21016 }
21017 } else {
21018 if (LTDI (tmp_tmp, 0)) {
21019 {
21020   {
21021     UHI opval = 0;
21022     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21023     written |= (1 << 12);
21024     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21025   }
21026 frvbf_media_overflow (current_cpu, 4);
21027 }
21028 } else {
21029   {
21030     UHI opval = tmp_tmp;
21031     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21032     written |= (1 << 12);
21033     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21034   }
21035 }
21036 }
21037 }
21038 }
21039 }
21040
21041   abuf->written = written;
21042   return vpc;
21043 #undef FLD
21044 }
21045
21046 /* cmsubhss: cmsubhss$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
21047
21048 static SEM_PC
21049 SEM_FN_NAME (frvbf,cmsubhss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
21050 {
21051 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
21052   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
21053   int UNUSED written = 0;
21054   IADDR UNUSED pc = abuf->addr;
21055   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
21056
21057 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
21058 {
21059   HI tmp_argihi;
21060   HI tmp_argilo;
21061   HI tmp_argjhi;
21062   HI tmp_argjlo;
21063 {
21064   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21065   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21066   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21067   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21068 }
21069 {
21070   DI tmp_tmp;
21071   tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
21072 if (GTDI (tmp_tmp, 32767)) {
21073 {
21074   {
21075     UHI opval = 32767;
21076     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21077     written |= (1 << 11);
21078     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21079   }
21080 frvbf_media_overflow (current_cpu, 8);
21081 }
21082 } else {
21083 if (LTDI (tmp_tmp, -32768)) {
21084 {
21085   {
21086     UHI opval = -32768;
21087     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21088     written |= (1 << 11);
21089     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21090   }
21091 frvbf_media_overflow (current_cpu, 8);
21092 }
21093 } else {
21094   {
21095     UHI opval = tmp_tmp;
21096     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21097     written |= (1 << 11);
21098     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21099   }
21100 }
21101 }
21102 }
21103 {
21104   DI tmp_tmp;
21105   tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
21106 if (GTDI (tmp_tmp, 32767)) {
21107 {
21108   {
21109     UHI opval = 32767;
21110     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21111     written |= (1 << 12);
21112     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21113   }
21114 frvbf_media_overflow (current_cpu, 4);
21115 }
21116 } else {
21117 if (LTDI (tmp_tmp, -32768)) {
21118 {
21119   {
21120     UHI opval = -32768;
21121     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21122     written |= (1 << 12);
21123     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21124   }
21125 frvbf_media_overflow (current_cpu, 4);
21126 }
21127 } else {
21128   {
21129     UHI opval = tmp_tmp;
21130     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21131     written |= (1 << 12);
21132     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21133   }
21134 }
21135 }
21136 }
21137 }
21138 }
21139
21140   abuf->written = written;
21141   return vpc;
21142 #undef FLD
21143 }
21144
21145 /* cmsubhus: cmsubhus$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
21146
21147 static SEM_PC
21148 SEM_FN_NAME (frvbf,cmsubhus) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
21149 {
21150 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
21151   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
21152   int UNUSED written = 0;
21153   IADDR UNUSED pc = abuf->addr;
21154   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
21155
21156 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
21157 {
21158   UHI tmp_argihi;
21159   UHI tmp_argilo;
21160   UHI tmp_argjhi;
21161   UHI tmp_argjlo;
21162 {
21163   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21164   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21165   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21166   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21167 }
21168 {
21169   DI tmp_tmp;
21170   tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
21171 if (GTDI (tmp_tmp, 65535)) {
21172 {
21173   {
21174     UHI opval = 65535;
21175     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21176     written |= (1 << 11);
21177     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21178   }
21179 frvbf_media_overflow (current_cpu, 8);
21180 }
21181 } else {
21182 if (LTDI (tmp_tmp, 0)) {
21183 {
21184   {
21185     UHI opval = 0;
21186     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21187     written |= (1 << 11);
21188     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21189   }
21190 frvbf_media_overflow (current_cpu, 8);
21191 }
21192 } else {
21193   {
21194     UHI opval = tmp_tmp;
21195     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21196     written |= (1 << 11);
21197     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21198   }
21199 }
21200 }
21201 }
21202 {
21203   DI tmp_tmp;
21204   tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
21205 if (GTDI (tmp_tmp, 65535)) {
21206 {
21207   {
21208     UHI opval = 65535;
21209     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21210     written |= (1 << 12);
21211     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21212   }
21213 frvbf_media_overflow (current_cpu, 4);
21214 }
21215 } else {
21216 if (LTDI (tmp_tmp, 0)) {
21217 {
21218   {
21219     UHI opval = 0;
21220     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21221     written |= (1 << 12);
21222     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21223   }
21224 frvbf_media_overflow (current_cpu, 4);
21225 }
21226 } else {
21227   {
21228     UHI opval = tmp_tmp;
21229     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21230     written |= (1 << 12);
21231     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21232   }
21233 }
21234 }
21235 }
21236 }
21237 }
21238
21239   abuf->written = written;
21240   return vpc;
21241 #undef FLD
21242 }
21243
21244 /* mqaddhss: mqaddhss$pack $FRintieven,$FRintjeven,$FRintkeven */
21245
21246 static SEM_PC
21247 SEM_FN_NAME (frvbf,mqaddhss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
21248 {
21249 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
21250   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
21251   int UNUSED written = 0;
21252   IADDR UNUSED pc = abuf->addr;
21253   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
21254
21255 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
21256 frvbf_media_register_not_aligned (current_cpu);
21257 } else {
21258 {
21259   HI tmp_argihi;
21260   HI tmp_argilo;
21261   HI tmp_argjhi;
21262   HI tmp_argjlo;
21263   {
21264     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
21265     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
21266     written |= (1 << 14);
21267     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
21268   }
21269 {
21270   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21271   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21272   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21273   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21274 }
21275 {
21276   DI tmp_tmp;
21277   tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
21278 if (GTDI (tmp_tmp, 32767)) {
21279 {
21280   {
21281     UHI opval = 32767;
21282     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21283     written |= (1 << 15);
21284     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21285   }
21286 frvbf_media_overflow (current_cpu, 8);
21287 }
21288 } else {
21289 if (LTDI (tmp_tmp, -32768)) {
21290 {
21291   {
21292     UHI opval = -32768;
21293     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21294     written |= (1 << 15);
21295     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21296   }
21297 frvbf_media_overflow (current_cpu, 8);
21298 }
21299 } else {
21300   {
21301     UHI opval = tmp_tmp;
21302     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21303     written |= (1 << 15);
21304     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21305   }
21306 }
21307 }
21308 }
21309 {
21310   DI tmp_tmp;
21311   tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
21312 if (GTDI (tmp_tmp, 32767)) {
21313 {
21314   {
21315     UHI opval = 32767;
21316     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21317     written |= (1 << 17);
21318     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21319   }
21320 frvbf_media_overflow (current_cpu, 4);
21321 }
21322 } else {
21323 if (LTDI (tmp_tmp, -32768)) {
21324 {
21325   {
21326     UHI opval = -32768;
21327     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21328     written |= (1 << 17);
21329     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21330   }
21331 frvbf_media_overflow (current_cpu, 4);
21332 }
21333 } else {
21334   {
21335     UHI opval = tmp_tmp;
21336     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21337     written |= (1 << 17);
21338     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21339   }
21340 }
21341 }
21342 }
21343 {
21344   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21345   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21346   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21347   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21348 }
21349 {
21350   DI tmp_tmp;
21351   tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
21352 if (GTDI (tmp_tmp, 32767)) {
21353 {
21354   {
21355     UHI opval = 32767;
21356     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21357     written |= (1 << 16);
21358     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21359   }
21360 frvbf_media_overflow (current_cpu, 2);
21361 }
21362 } else {
21363 if (LTDI (tmp_tmp, -32768)) {
21364 {
21365   {
21366     UHI opval = -32768;
21367     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21368     written |= (1 << 16);
21369     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21370   }
21371 frvbf_media_overflow (current_cpu, 2);
21372 }
21373 } else {
21374   {
21375     UHI opval = tmp_tmp;
21376     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21377     written |= (1 << 16);
21378     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21379   }
21380 }
21381 }
21382 }
21383 {
21384   DI tmp_tmp;
21385   tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
21386 if (GTDI (tmp_tmp, 32767)) {
21387 {
21388   {
21389     UHI opval = 32767;
21390     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21391     written |= (1 << 18);
21392     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21393   }
21394 frvbf_media_overflow (current_cpu, 1);
21395 }
21396 } else {
21397 if (LTDI (tmp_tmp, -32768)) {
21398 {
21399   {
21400     UHI opval = -32768;
21401     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21402     written |= (1 << 18);
21403     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21404   }
21405 frvbf_media_overflow (current_cpu, 1);
21406 }
21407 } else {
21408   {
21409     UHI opval = tmp_tmp;
21410     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21411     written |= (1 << 18);
21412     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21413   }
21414 }
21415 }
21416 }
21417 }
21418 }
21419
21420   abuf->written = written;
21421   return vpc;
21422 #undef FLD
21423 }
21424
21425 /* mqaddhus: mqaddhus$pack $FRintieven,$FRintjeven,$FRintkeven */
21426
21427 static SEM_PC
21428 SEM_FN_NAME (frvbf,mqaddhus) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
21429 {
21430 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
21431   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
21432   int UNUSED written = 0;
21433   IADDR UNUSED pc = abuf->addr;
21434   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
21435
21436 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
21437 frvbf_media_register_not_aligned (current_cpu);
21438 } else {
21439 {
21440   UHI tmp_argihi;
21441   UHI tmp_argilo;
21442   UHI tmp_argjhi;
21443   UHI tmp_argjlo;
21444   {
21445     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
21446     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
21447     written |= (1 << 14);
21448     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
21449   }
21450 {
21451   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21452   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21453   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21454   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21455 }
21456 {
21457   DI tmp_tmp;
21458   tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
21459 if (GTDI (tmp_tmp, 65535)) {
21460 {
21461   {
21462     UHI opval = 65535;
21463     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21464     written |= (1 << 15);
21465     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21466   }
21467 frvbf_media_overflow (current_cpu, 8);
21468 }
21469 } else {
21470 if (LTDI (tmp_tmp, 0)) {
21471 {
21472   {
21473     UHI opval = 0;
21474     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21475     written |= (1 << 15);
21476     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21477   }
21478 frvbf_media_overflow (current_cpu, 8);
21479 }
21480 } else {
21481   {
21482     UHI opval = tmp_tmp;
21483     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21484     written |= (1 << 15);
21485     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21486   }
21487 }
21488 }
21489 }
21490 {
21491   DI tmp_tmp;
21492   tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
21493 if (GTDI (tmp_tmp, 65535)) {
21494 {
21495   {
21496     UHI opval = 65535;
21497     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21498     written |= (1 << 17);
21499     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21500   }
21501 frvbf_media_overflow (current_cpu, 4);
21502 }
21503 } else {
21504 if (LTDI (tmp_tmp, 0)) {
21505 {
21506   {
21507     UHI opval = 0;
21508     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21509     written |= (1 << 17);
21510     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21511   }
21512 frvbf_media_overflow (current_cpu, 4);
21513 }
21514 } else {
21515   {
21516     UHI opval = tmp_tmp;
21517     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21518     written |= (1 << 17);
21519     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21520   }
21521 }
21522 }
21523 }
21524 {
21525   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21526   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21527   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21528   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21529 }
21530 {
21531   DI tmp_tmp;
21532   tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
21533 if (GTDI (tmp_tmp, 65535)) {
21534 {
21535   {
21536     UHI opval = 65535;
21537     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21538     written |= (1 << 16);
21539     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21540   }
21541 frvbf_media_overflow (current_cpu, 2);
21542 }
21543 } else {
21544 if (LTDI (tmp_tmp, 0)) {
21545 {
21546   {
21547     UHI opval = 0;
21548     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21549     written |= (1 << 16);
21550     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21551   }
21552 frvbf_media_overflow (current_cpu, 2);
21553 }
21554 } else {
21555   {
21556     UHI opval = tmp_tmp;
21557     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21558     written |= (1 << 16);
21559     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21560   }
21561 }
21562 }
21563 }
21564 {
21565   DI tmp_tmp;
21566   tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
21567 if (GTDI (tmp_tmp, 65535)) {
21568 {
21569   {
21570     UHI opval = 65535;
21571     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21572     written |= (1 << 18);
21573     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21574   }
21575 frvbf_media_overflow (current_cpu, 1);
21576 }
21577 } else {
21578 if (LTDI (tmp_tmp, 0)) {
21579 {
21580   {
21581     UHI opval = 0;
21582     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21583     written |= (1 << 18);
21584     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21585   }
21586 frvbf_media_overflow (current_cpu, 1);
21587 }
21588 } else {
21589   {
21590     UHI opval = tmp_tmp;
21591     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21592     written |= (1 << 18);
21593     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21594   }
21595 }
21596 }
21597 }
21598 }
21599 }
21600
21601   abuf->written = written;
21602   return vpc;
21603 #undef FLD
21604 }
21605
21606 /* mqsubhss: mqsubhss$pack $FRintieven,$FRintjeven,$FRintkeven */
21607
21608 static SEM_PC
21609 SEM_FN_NAME (frvbf,mqsubhss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
21610 {
21611 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
21612   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
21613   int UNUSED written = 0;
21614   IADDR UNUSED pc = abuf->addr;
21615   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
21616
21617 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
21618 frvbf_media_register_not_aligned (current_cpu);
21619 } else {
21620 {
21621   HI tmp_argihi;
21622   HI tmp_argilo;
21623   HI tmp_argjhi;
21624   HI tmp_argjlo;
21625   {
21626     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
21627     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
21628     written |= (1 << 14);
21629     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
21630   }
21631 {
21632   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21633   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21634   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21635   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21636 }
21637 {
21638   DI tmp_tmp;
21639   tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
21640 if (GTDI (tmp_tmp, 32767)) {
21641 {
21642   {
21643     UHI opval = 32767;
21644     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21645     written |= (1 << 15);
21646     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21647   }
21648 frvbf_media_overflow (current_cpu, 8);
21649 }
21650 } else {
21651 if (LTDI (tmp_tmp, -32768)) {
21652 {
21653   {
21654     UHI opval = -32768;
21655     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21656     written |= (1 << 15);
21657     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21658   }
21659 frvbf_media_overflow (current_cpu, 8);
21660 }
21661 } else {
21662   {
21663     UHI opval = tmp_tmp;
21664     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21665     written |= (1 << 15);
21666     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21667   }
21668 }
21669 }
21670 }
21671 {
21672   DI tmp_tmp;
21673   tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
21674 if (GTDI (tmp_tmp, 32767)) {
21675 {
21676   {
21677     UHI opval = 32767;
21678     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21679     written |= (1 << 17);
21680     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21681   }
21682 frvbf_media_overflow (current_cpu, 4);
21683 }
21684 } else {
21685 if (LTDI (tmp_tmp, -32768)) {
21686 {
21687   {
21688     UHI opval = -32768;
21689     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21690     written |= (1 << 17);
21691     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21692   }
21693 frvbf_media_overflow (current_cpu, 4);
21694 }
21695 } else {
21696   {
21697     UHI opval = tmp_tmp;
21698     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21699     written |= (1 << 17);
21700     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21701   }
21702 }
21703 }
21704 }
21705 {
21706   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21707   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21708   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21709   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21710 }
21711 {
21712   DI tmp_tmp;
21713   tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
21714 if (GTDI (tmp_tmp, 32767)) {
21715 {
21716   {
21717     UHI opval = 32767;
21718     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21719     written |= (1 << 16);
21720     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21721   }
21722 frvbf_media_overflow (current_cpu, 2);
21723 }
21724 } else {
21725 if (LTDI (tmp_tmp, -32768)) {
21726 {
21727   {
21728     UHI opval = -32768;
21729     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21730     written |= (1 << 16);
21731     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21732   }
21733 frvbf_media_overflow (current_cpu, 2);
21734 }
21735 } else {
21736   {
21737     UHI opval = tmp_tmp;
21738     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21739     written |= (1 << 16);
21740     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21741   }
21742 }
21743 }
21744 }
21745 {
21746   DI tmp_tmp;
21747   tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
21748 if (GTDI (tmp_tmp, 32767)) {
21749 {
21750   {
21751     UHI opval = 32767;
21752     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21753     written |= (1 << 18);
21754     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21755   }
21756 frvbf_media_overflow (current_cpu, 1);
21757 }
21758 } else {
21759 if (LTDI (tmp_tmp, -32768)) {
21760 {
21761   {
21762     UHI opval = -32768;
21763     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21764     written |= (1 << 18);
21765     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21766   }
21767 frvbf_media_overflow (current_cpu, 1);
21768 }
21769 } else {
21770   {
21771     UHI opval = tmp_tmp;
21772     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21773     written |= (1 << 18);
21774     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21775   }
21776 }
21777 }
21778 }
21779 }
21780 }
21781
21782   abuf->written = written;
21783   return vpc;
21784 #undef FLD
21785 }
21786
21787 /* mqsubhus: mqsubhus$pack $FRintieven,$FRintjeven,$FRintkeven */
21788
21789 static SEM_PC
21790 SEM_FN_NAME (frvbf,mqsubhus) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
21791 {
21792 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
21793   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
21794   int UNUSED written = 0;
21795   IADDR UNUSED pc = abuf->addr;
21796   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
21797
21798 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
21799 frvbf_media_register_not_aligned (current_cpu);
21800 } else {
21801 {
21802   UHI tmp_argihi;
21803   UHI tmp_argilo;
21804   UHI tmp_argjhi;
21805   UHI tmp_argjlo;
21806   {
21807     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
21808     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
21809     written |= (1 << 14);
21810     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
21811   }
21812 {
21813   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21814   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21815   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21816   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21817 }
21818 {
21819   DI tmp_tmp;
21820   tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
21821 if (GTDI (tmp_tmp, 65535)) {
21822 {
21823   {
21824     UHI opval = 65535;
21825     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21826     written |= (1 << 15);
21827     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21828   }
21829 frvbf_media_overflow (current_cpu, 8);
21830 }
21831 } else {
21832 if (LTDI (tmp_tmp, 0)) {
21833 {
21834   {
21835     UHI opval = 0;
21836     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21837     written |= (1 << 15);
21838     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21839   }
21840 frvbf_media_overflow (current_cpu, 8);
21841 }
21842 } else {
21843   {
21844     UHI opval = tmp_tmp;
21845     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21846     written |= (1 << 15);
21847     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21848   }
21849 }
21850 }
21851 }
21852 {
21853   DI tmp_tmp;
21854   tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
21855 if (GTDI (tmp_tmp, 65535)) {
21856 {
21857   {
21858     UHI opval = 65535;
21859     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21860     written |= (1 << 17);
21861     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21862   }
21863 frvbf_media_overflow (current_cpu, 4);
21864 }
21865 } else {
21866 if (LTDI (tmp_tmp, 0)) {
21867 {
21868   {
21869     UHI opval = 0;
21870     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21871     written |= (1 << 17);
21872     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21873   }
21874 frvbf_media_overflow (current_cpu, 4);
21875 }
21876 } else {
21877   {
21878     UHI opval = tmp_tmp;
21879     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21880     written |= (1 << 17);
21881     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21882   }
21883 }
21884 }
21885 }
21886 {
21887   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21888   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21889   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21890   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21891 }
21892 {
21893   DI tmp_tmp;
21894   tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
21895 if (GTDI (tmp_tmp, 65535)) {
21896 {
21897   {
21898     UHI opval = 65535;
21899     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21900     written |= (1 << 16);
21901     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21902   }
21903 frvbf_media_overflow (current_cpu, 2);
21904 }
21905 } else {
21906 if (LTDI (tmp_tmp, 0)) {
21907 {
21908   {
21909     UHI opval = 0;
21910     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21911     written |= (1 << 16);
21912     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21913   }
21914 frvbf_media_overflow (current_cpu, 2);
21915 }
21916 } else {
21917   {
21918     UHI opval = tmp_tmp;
21919     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21920     written |= (1 << 16);
21921     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21922   }
21923 }
21924 }
21925 }
21926 {
21927   DI tmp_tmp;
21928   tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
21929 if (GTDI (tmp_tmp, 65535)) {
21930 {
21931   {
21932     UHI opval = 65535;
21933     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21934     written |= (1 << 18);
21935     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21936   }
21937 frvbf_media_overflow (current_cpu, 1);
21938 }
21939 } else {
21940 if (LTDI (tmp_tmp, 0)) {
21941 {
21942   {
21943     UHI opval = 0;
21944     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21945     written |= (1 << 18);
21946     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21947   }
21948 frvbf_media_overflow (current_cpu, 1);
21949 }
21950 } else {
21951   {
21952     UHI opval = tmp_tmp;
21953     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21954     written |= (1 << 18);
21955     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21956   }
21957 }
21958 }
21959 }
21960 }
21961 }
21962
21963   abuf->written = written;
21964   return vpc;
21965 #undef FLD
21966 }
21967
21968 /* cmqaddhss: cmqaddhss$pack $FRintieven,$FRintjeven,$FRintkeven,$CCi,$cond */
21969
21970 static SEM_PC
21971 SEM_FN_NAME (frvbf,cmqaddhss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
21972 {
21973 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
21974   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
21975   int UNUSED written = 0;
21976   IADDR UNUSED pc = abuf->addr;
21977   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
21978
21979 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
21980 frvbf_media_register_not_aligned (current_cpu);
21981 } else {
21982 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
21983 {
21984   HI tmp_argihi;
21985   HI tmp_argilo;
21986   HI tmp_argjhi;
21987   HI tmp_argjlo;
21988   {
21989     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
21990     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
21991     written |= (1 << 16);
21992     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
21993   }
21994 {
21995   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21996   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21997   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21998   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21999 }
22000 {
22001   DI tmp_tmp;
22002   tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
22003 if (GTDI (tmp_tmp, 32767)) {
22004 {
22005   {
22006     UHI opval = 32767;
22007     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22008     written |= (1 << 17);
22009     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22010   }
22011 frvbf_media_overflow (current_cpu, 8);
22012 }
22013 } else {
22014 if (LTDI (tmp_tmp, -32768)) {
22015 {
22016   {
22017     UHI opval = -32768;
22018     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22019     written |= (1 << 17);
22020     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22021   }
22022 frvbf_media_overflow (current_cpu, 8);
22023 }
22024 } else {
22025   {
22026     UHI opval = tmp_tmp;
22027     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22028     written |= (1 << 17);
22029     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22030   }
22031 }
22032 }
22033 }
22034 {
22035   DI tmp_tmp;
22036   tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
22037 if (GTDI (tmp_tmp, 32767)) {
22038 {
22039   {
22040     UHI opval = 32767;
22041     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22042     written |= (1 << 19);
22043     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22044   }
22045 frvbf_media_overflow (current_cpu, 4);
22046 }
22047 } else {
22048 if (LTDI (tmp_tmp, -32768)) {
22049 {
22050   {
22051     UHI opval = -32768;
22052     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22053     written |= (1 << 19);
22054     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22055   }
22056 frvbf_media_overflow (current_cpu, 4);
22057 }
22058 } else {
22059   {
22060     UHI opval = tmp_tmp;
22061     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22062     written |= (1 << 19);
22063     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22064   }
22065 }
22066 }
22067 }
22068 {
22069   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22070   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22071   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22072   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22073 }
22074 {
22075   DI tmp_tmp;
22076   tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
22077 if (GTDI (tmp_tmp, 32767)) {
22078 {
22079   {
22080     UHI opval = 32767;
22081     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22082     written |= (1 << 18);
22083     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22084   }
22085 frvbf_media_overflow (current_cpu, 2);
22086 }
22087 } else {
22088 if (LTDI (tmp_tmp, -32768)) {
22089 {
22090   {
22091     UHI opval = -32768;
22092     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22093     written |= (1 << 18);
22094     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22095   }
22096 frvbf_media_overflow (current_cpu, 2);
22097 }
22098 } else {
22099   {
22100     UHI opval = tmp_tmp;
22101     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22102     written |= (1 << 18);
22103     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22104   }
22105 }
22106 }
22107 }
22108 {
22109   DI tmp_tmp;
22110   tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
22111 if (GTDI (tmp_tmp, 32767)) {
22112 {
22113   {
22114     UHI opval = 32767;
22115     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22116     written |= (1 << 20);
22117     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22118   }
22119 frvbf_media_overflow (current_cpu, 1);
22120 }
22121 } else {
22122 if (LTDI (tmp_tmp, -32768)) {
22123 {
22124   {
22125     UHI opval = -32768;
22126     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22127     written |= (1 << 20);
22128     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22129   }
22130 frvbf_media_overflow (current_cpu, 1);
22131 }
22132 } else {
22133   {
22134     UHI opval = tmp_tmp;
22135     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22136     written |= (1 << 20);
22137     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22138   }
22139 }
22140 }
22141 }
22142 }
22143 }
22144 }
22145
22146   abuf->written = written;
22147   return vpc;
22148 #undef FLD
22149 }
22150
22151 /* cmqaddhus: cmqaddhus$pack $FRintieven,$FRintjeven,$FRintkeven,$CCi,$cond */
22152
22153 static SEM_PC
22154 SEM_FN_NAME (frvbf,cmqaddhus) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
22155 {
22156 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
22157   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
22158   int UNUSED written = 0;
22159   IADDR UNUSED pc = abuf->addr;
22160   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
22161
22162 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
22163 frvbf_media_register_not_aligned (current_cpu);
22164 } else {
22165 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
22166 {
22167   UHI tmp_argihi;
22168   UHI tmp_argilo;
22169   UHI tmp_argjhi;
22170   UHI tmp_argjlo;
22171   {
22172     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
22173     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
22174     written |= (1 << 16);
22175     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
22176   }
22177 {
22178   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22179   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22180   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22181   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22182 }
22183 {
22184   DI tmp_tmp;
22185   tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
22186 if (GTDI (tmp_tmp, 65535)) {
22187 {
22188   {
22189     UHI opval = 65535;
22190     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22191     written |= (1 << 17);
22192     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22193   }
22194 frvbf_media_overflow (current_cpu, 8);
22195 }
22196 } else {
22197 if (LTDI (tmp_tmp, 0)) {
22198 {
22199   {
22200     UHI opval = 0;
22201     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22202     written |= (1 << 17);
22203     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22204   }
22205 frvbf_media_overflow (current_cpu, 8);
22206 }
22207 } else {
22208   {
22209     UHI opval = tmp_tmp;
22210     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22211     written |= (1 << 17);
22212     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22213   }
22214 }
22215 }
22216 }
22217 {
22218   DI tmp_tmp;
22219   tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
22220 if (GTDI (tmp_tmp, 65535)) {
22221 {
22222   {
22223     UHI opval = 65535;
22224     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22225     written |= (1 << 19);
22226     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22227   }
22228 frvbf_media_overflow (current_cpu, 4);
22229 }
22230 } else {
22231 if (LTDI (tmp_tmp, 0)) {
22232 {
22233   {
22234     UHI opval = 0;
22235     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22236     written |= (1 << 19);
22237     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22238   }
22239 frvbf_media_overflow (current_cpu, 4);
22240 }
22241 } else {
22242   {
22243     UHI opval = tmp_tmp;
22244     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22245     written |= (1 << 19);
22246     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22247   }
22248 }
22249 }
22250 }
22251 {
22252   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22253   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22254   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22255   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22256 }
22257 {
22258   DI tmp_tmp;
22259   tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
22260 if (GTDI (tmp_tmp, 65535)) {
22261 {
22262   {
22263     UHI opval = 65535;
22264     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22265     written |= (1 << 18);
22266     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22267   }
22268 frvbf_media_overflow (current_cpu, 2);
22269 }
22270 } else {
22271 if (LTDI (tmp_tmp, 0)) {
22272 {
22273   {
22274     UHI opval = 0;
22275     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22276     written |= (1 << 18);
22277     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22278   }
22279 frvbf_media_overflow (current_cpu, 2);
22280 }
22281 } else {
22282   {
22283     UHI opval = tmp_tmp;
22284     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22285     written |= (1 << 18);
22286     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22287   }
22288 }
22289 }
22290 }
22291 {
22292   DI tmp_tmp;
22293   tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
22294 if (GTDI (tmp_tmp, 65535)) {
22295 {
22296   {
22297     UHI opval = 65535;
22298     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22299     written |= (1 << 20);
22300     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22301   }
22302 frvbf_media_overflow (current_cpu, 1);
22303 }
22304 } else {
22305 if (LTDI (tmp_tmp, 0)) {
22306 {
22307   {
22308     UHI opval = 0;
22309     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22310     written |= (1 << 20);
22311     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22312   }
22313 frvbf_media_overflow (current_cpu, 1);
22314 }
22315 } else {
22316   {
22317     UHI opval = tmp_tmp;
22318     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22319     written |= (1 << 20);
22320     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22321   }
22322 }
22323 }
22324 }
22325 }
22326 }
22327 }
22328
22329   abuf->written = written;
22330   return vpc;
22331 #undef FLD
22332 }
22333
22334 /* cmqsubhss: cmqsubhss$pack $FRintieven,$FRintjeven,$FRintkeven,$CCi,$cond */
22335
22336 static SEM_PC
22337 SEM_FN_NAME (frvbf,cmqsubhss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
22338 {
22339 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
22340   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
22341   int UNUSED written = 0;
22342   IADDR UNUSED pc = abuf->addr;
22343   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
22344
22345 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
22346 frvbf_media_register_not_aligned (current_cpu);
22347 } else {
22348 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
22349 {
22350   HI tmp_argihi;
22351   HI tmp_argilo;
22352   HI tmp_argjhi;
22353   HI tmp_argjlo;
22354   {
22355     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
22356     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
22357     written |= (1 << 16);
22358     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
22359   }
22360 {
22361   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22362   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22363   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22364   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22365 }
22366 {
22367   DI tmp_tmp;
22368   tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
22369 if (GTDI (tmp_tmp, 32767)) {
22370 {
22371   {
22372     UHI opval = 32767;
22373     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22374     written |= (1 << 17);
22375     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22376   }
22377 frvbf_media_overflow (current_cpu, 8);
22378 }
22379 } else {
22380 if (LTDI (tmp_tmp, -32768)) {
22381 {
22382   {
22383     UHI opval = -32768;
22384     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22385     written |= (1 << 17);
22386     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22387   }
22388 frvbf_media_overflow (current_cpu, 8);
22389 }
22390 } else {
22391   {
22392     UHI opval = tmp_tmp;
22393     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22394     written |= (1 << 17);
22395     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22396   }
22397 }
22398 }
22399 }
22400 {
22401   DI tmp_tmp;
22402   tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
22403 if (GTDI (tmp_tmp, 32767)) {
22404 {
22405   {
22406     UHI opval = 32767;
22407     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22408     written |= (1 << 19);
22409     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22410   }
22411 frvbf_media_overflow (current_cpu, 4);
22412 }
22413 } else {
22414 if (LTDI (tmp_tmp, -32768)) {
22415 {
22416   {
22417     UHI opval = -32768;
22418     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22419     written |= (1 << 19);
22420     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22421   }
22422 frvbf_media_overflow (current_cpu, 4);
22423 }
22424 } else {
22425   {
22426     UHI opval = tmp_tmp;
22427     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22428     written |= (1 << 19);
22429     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22430   }
22431 }
22432 }
22433 }
22434 {
22435   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22436   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22437   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22438   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22439 }
22440 {
22441   DI tmp_tmp;
22442   tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
22443 if (GTDI (tmp_tmp, 32767)) {
22444 {
22445   {
22446     UHI opval = 32767;
22447     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22448     written |= (1 << 18);
22449     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22450   }
22451 frvbf_media_overflow (current_cpu, 2);
22452 }
22453 } else {
22454 if (LTDI (tmp_tmp, -32768)) {
22455 {
22456   {
22457     UHI opval = -32768;
22458     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22459     written |= (1 << 18);
22460     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22461   }
22462 frvbf_media_overflow (current_cpu, 2);
22463 }
22464 } else {
22465   {
22466     UHI opval = tmp_tmp;
22467     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22468     written |= (1 << 18);
22469     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22470   }
22471 }
22472 }
22473 }
22474 {
22475   DI tmp_tmp;
22476   tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
22477 if (GTDI (tmp_tmp, 32767)) {
22478 {
22479   {
22480     UHI opval = 32767;
22481     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22482     written |= (1 << 20);
22483     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22484   }
22485 frvbf_media_overflow (current_cpu, 1);
22486 }
22487 } else {
22488 if (LTDI (tmp_tmp, -32768)) {
22489 {
22490   {
22491     UHI opval = -32768;
22492     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22493     written |= (1 << 20);
22494     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22495   }
22496 frvbf_media_overflow (current_cpu, 1);
22497 }
22498 } else {
22499   {
22500     UHI opval = tmp_tmp;
22501     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22502     written |= (1 << 20);
22503     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22504   }
22505 }
22506 }
22507 }
22508 }
22509 }
22510 }
22511
22512   abuf->written = written;
22513   return vpc;
22514 #undef FLD
22515 }
22516
22517 /* cmqsubhus: cmqsubhus$pack $FRintieven,$FRintjeven,$FRintkeven,$CCi,$cond */
22518
22519 static SEM_PC
22520 SEM_FN_NAME (frvbf,cmqsubhus) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
22521 {
22522 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
22523   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
22524   int UNUSED written = 0;
22525   IADDR UNUSED pc = abuf->addr;
22526   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
22527
22528 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
22529 frvbf_media_register_not_aligned (current_cpu);
22530 } else {
22531 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
22532 {
22533   UHI tmp_argihi;
22534   UHI tmp_argilo;
22535   UHI tmp_argjhi;
22536   UHI tmp_argjlo;
22537   {
22538     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
22539     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
22540     written |= (1 << 16);
22541     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
22542   }
22543 {
22544   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22545   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22546   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22547   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22548 }
22549 {
22550   DI tmp_tmp;
22551   tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
22552 if (GTDI (tmp_tmp, 65535)) {
22553 {
22554   {
22555     UHI opval = 65535;
22556     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22557     written |= (1 << 17);
22558     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22559   }
22560 frvbf_media_overflow (current_cpu, 8);
22561 }
22562 } else {
22563 if (LTDI (tmp_tmp, 0)) {
22564 {
22565   {
22566     UHI opval = 0;
22567     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22568     written |= (1 << 17);
22569     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22570   }
22571 frvbf_media_overflow (current_cpu, 8);
22572 }
22573 } else {
22574   {
22575     UHI opval = tmp_tmp;
22576     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22577     written |= (1 << 17);
22578     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22579   }
22580 }
22581 }
22582 }
22583 {
22584   DI tmp_tmp;
22585   tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
22586 if (GTDI (tmp_tmp, 65535)) {
22587 {
22588   {
22589     UHI opval = 65535;
22590     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22591     written |= (1 << 19);
22592     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22593   }
22594 frvbf_media_overflow (current_cpu, 4);
22595 }
22596 } else {
22597 if (LTDI (tmp_tmp, 0)) {
22598 {
22599   {
22600     UHI opval = 0;
22601     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22602     written |= (1 << 19);
22603     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22604   }
22605 frvbf_media_overflow (current_cpu, 4);
22606 }
22607 } else {
22608   {
22609     UHI opval = tmp_tmp;
22610     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22611     written |= (1 << 19);
22612     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22613   }
22614 }
22615 }
22616 }
22617 {
22618   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22619   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22620   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22621   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22622 }
22623 {
22624   DI tmp_tmp;
22625   tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
22626 if (GTDI (tmp_tmp, 65535)) {
22627 {
22628   {
22629     UHI opval = 65535;
22630     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22631     written |= (1 << 18);
22632     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22633   }
22634 frvbf_media_overflow (current_cpu, 2);
22635 }
22636 } else {
22637 if (LTDI (tmp_tmp, 0)) {
22638 {
22639   {
22640     UHI opval = 0;
22641     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22642     written |= (1 << 18);
22643     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22644   }
22645 frvbf_media_overflow (current_cpu, 2);
22646 }
22647 } else {
22648   {
22649     UHI opval = tmp_tmp;
22650     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22651     written |= (1 << 18);
22652     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22653   }
22654 }
22655 }
22656 }
22657 {
22658   DI tmp_tmp;
22659   tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
22660 if (GTDI (tmp_tmp, 65535)) {
22661 {
22662   {
22663     UHI opval = 65535;
22664     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22665     written |= (1 << 20);
22666     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22667   }
22668 frvbf_media_overflow (current_cpu, 1);
22669 }
22670 } else {
22671 if (LTDI (tmp_tmp, 0)) {
22672 {
22673   {
22674     UHI opval = 0;
22675     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22676     written |= (1 << 20);
22677     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22678   }
22679 frvbf_media_overflow (current_cpu, 1);
22680 }
22681 } else {
22682   {
22683     UHI opval = tmp_tmp;
22684     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22685     written |= (1 << 20);
22686     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22687   }
22688 }
22689 }
22690 }
22691 }
22692 }
22693 }
22694
22695   abuf->written = written;
22696   return vpc;
22697 #undef FLD
22698 }
22699
22700 /* maddaccs: maddaccs$pack $ACC40Si,$ACC40Sk */
22701
22702 static SEM_PC
22703 SEM_FN_NAME (frvbf,maddaccs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
22704 {
22705 #define FLD(f) abuf->fields.sfmt_mdasaccs.f
22706   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
22707   int UNUSED written = 0;
22708   IADDR UNUSED pc = abuf->addr;
22709   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
22710
22711 if (ANDSI (FLD (f_ACC40Si), SUBSI (2, 1))) {
22712 frvbf_media_acc_not_aligned (current_cpu);
22713 } else {
22714 {
22715   DI tmp_tmp;
22716   tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_ACC40S (((FLD (f_ACC40Si)) + (1))));
22717 if (GTDI (tmp_tmp, 549755813887)) {
22718 {
22719   {
22720     DI opval = 549755813887;
22721     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
22722     written |= (1 << 3);
22723     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22724   }
22725 frvbf_media_overflow (current_cpu, 8);
22726 }
22727 } else {
22728 if (LTDI (tmp_tmp, INVDI (549755813887))) {
22729 {
22730   {
22731     DI opval = INVDI (549755813887);
22732     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
22733     written |= (1 << 3);
22734     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22735   }
22736 frvbf_media_overflow (current_cpu, 8);
22737 }
22738 } else {
22739   {
22740     DI opval = tmp_tmp;
22741     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
22742     written |= (1 << 3);
22743     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22744   }
22745 }
22746 }
22747 }
22748 }
22749
22750   abuf->written = written;
22751   return vpc;
22752 #undef FLD
22753 }
22754
22755 /* msubaccs: msubaccs$pack $ACC40Si,$ACC40Sk */
22756
22757 static SEM_PC
22758 SEM_FN_NAME (frvbf,msubaccs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
22759 {
22760 #define FLD(f) abuf->fields.sfmt_mdasaccs.f
22761   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
22762   int UNUSED written = 0;
22763   IADDR UNUSED pc = abuf->addr;
22764   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
22765
22766 if (ANDSI (FLD (f_ACC40Si), SUBSI (2, 1))) {
22767 frvbf_media_acc_not_aligned (current_cpu);
22768 } else {
22769 {
22770   DI tmp_tmp;
22771   tmp_tmp = SUBDI (GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_ACC40S (((FLD (f_ACC40Si)) + (1))));
22772 if (GTDI (tmp_tmp, 549755813887)) {
22773 {
22774   {
22775     DI opval = 549755813887;
22776     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
22777     written |= (1 << 3);
22778     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22779   }
22780 frvbf_media_overflow (current_cpu, 8);
22781 }
22782 } else {
22783 if (LTDI (tmp_tmp, INVDI (549755813887))) {
22784 {
22785   {
22786     DI opval = INVDI (549755813887);
22787     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
22788     written |= (1 << 3);
22789     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22790   }
22791 frvbf_media_overflow (current_cpu, 8);
22792 }
22793 } else {
22794   {
22795     DI opval = tmp_tmp;
22796     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
22797     written |= (1 << 3);
22798     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22799   }
22800 }
22801 }
22802 }
22803 }
22804
22805   abuf->written = written;
22806   return vpc;
22807 #undef FLD
22808 }
22809
22810 /* mdaddaccs: mdaddaccs$pack $ACC40Si,$ACC40Sk */
22811
22812 static SEM_PC
22813 SEM_FN_NAME (frvbf,mdaddaccs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
22814 {
22815 #define FLD(f) abuf->fields.sfmt_mdasaccs.f
22816   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
22817   int UNUSED written = 0;
22818   IADDR UNUSED pc = abuf->addr;
22819   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
22820
22821 if (ANDSI (FLD (f_ACC40Si), SUBSI (4, 1))) {
22822 frvbf_media_acc_not_aligned (current_cpu);
22823 } else {
22824 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
22825 frvbf_media_acc_not_aligned (current_cpu);
22826 } else {
22827 {
22828 {
22829   DI tmp_tmp;
22830   tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_ACC40S (((FLD (f_ACC40Si)) + (1))));
22831 if (GTDI (tmp_tmp, 549755813887)) {
22832 {
22833   {
22834     DI opval = 549755813887;
22835     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
22836     written |= (1 << 6);
22837     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22838   }
22839 frvbf_media_overflow (current_cpu, 8);
22840 }
22841 } else {
22842 if (LTDI (tmp_tmp, INVDI (549755813887))) {
22843 {
22844   {
22845     DI opval = INVDI (549755813887);
22846     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
22847     written |= (1 << 6);
22848     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22849   }
22850 frvbf_media_overflow (current_cpu, 8);
22851 }
22852 } else {
22853   {
22854     DI opval = tmp_tmp;
22855     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
22856     written |= (1 << 6);
22857     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22858   }
22859 }
22860 }
22861 }
22862 {
22863   DI tmp_tmp;
22864   tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Si)) + (2))), GET_H_ACC40S (((FLD (f_ACC40Si)) + (3))));
22865 if (GTDI (tmp_tmp, 549755813887)) {
22866 {
22867   {
22868     DI opval = 549755813887;
22869     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
22870     written |= (1 << 7);
22871     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22872   }
22873 frvbf_media_overflow (current_cpu, 4);
22874 }
22875 } else {
22876 if (LTDI (tmp_tmp, INVDI (549755813887))) {
22877 {
22878   {
22879     DI opval = INVDI (549755813887);
22880     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
22881     written |= (1 << 7);
22882     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22883   }
22884 frvbf_media_overflow (current_cpu, 4);
22885 }
22886 } else {
22887   {
22888     DI opval = tmp_tmp;
22889     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
22890     written |= (1 << 7);
22891     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22892   }
22893 }
22894 }
22895 }
22896 }
22897 }
22898 }
22899
22900   abuf->written = written;
22901   return vpc;
22902 #undef FLD
22903 }
22904
22905 /* mdsubaccs: mdsubaccs$pack $ACC40Si,$ACC40Sk */
22906
22907 static SEM_PC
22908 SEM_FN_NAME (frvbf,mdsubaccs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
22909 {
22910 #define FLD(f) abuf->fields.sfmt_mdasaccs.f
22911   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
22912   int UNUSED written = 0;
22913   IADDR UNUSED pc = abuf->addr;
22914   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
22915
22916 if (ANDSI (FLD (f_ACC40Si), SUBSI (4, 1))) {
22917 frvbf_media_acc_not_aligned (current_cpu);
22918 } else {
22919 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
22920 frvbf_media_acc_not_aligned (current_cpu);
22921 } else {
22922 {
22923 {
22924   DI tmp_tmp;
22925   tmp_tmp = SUBDI (GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_ACC40S (((FLD (f_ACC40Si)) + (1))));
22926 if (GTDI (tmp_tmp, 549755813887)) {
22927 {
22928   {
22929     DI opval = 549755813887;
22930     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
22931     written |= (1 << 6);
22932     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22933   }
22934 frvbf_media_overflow (current_cpu, 8);
22935 }
22936 } else {
22937 if (LTDI (tmp_tmp, INVDI (549755813887))) {
22938 {
22939   {
22940     DI opval = INVDI (549755813887);
22941     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
22942     written |= (1 << 6);
22943     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22944   }
22945 frvbf_media_overflow (current_cpu, 8);
22946 }
22947 } else {
22948   {
22949     DI opval = tmp_tmp;
22950     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
22951     written |= (1 << 6);
22952     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22953   }
22954 }
22955 }
22956 }
22957 {
22958   DI tmp_tmp;
22959   tmp_tmp = SUBDI (GET_H_ACC40S (((FLD (f_ACC40Si)) + (2))), GET_H_ACC40S (((FLD (f_ACC40Si)) + (3))));
22960 if (GTDI (tmp_tmp, 549755813887)) {
22961 {
22962   {
22963     DI opval = 549755813887;
22964     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
22965     written |= (1 << 7);
22966     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22967   }
22968 frvbf_media_overflow (current_cpu, 4);
22969 }
22970 } else {
22971 if (LTDI (tmp_tmp, INVDI (549755813887))) {
22972 {
22973   {
22974     DI opval = INVDI (549755813887);
22975     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
22976     written |= (1 << 7);
22977     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22978   }
22979 frvbf_media_overflow (current_cpu, 4);
22980 }
22981 } else {
22982   {
22983     DI opval = tmp_tmp;
22984     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
22985     written |= (1 << 7);
22986     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22987   }
22988 }
22989 }
22990 }
22991 }
22992 }
22993 }
22994
22995   abuf->written = written;
22996   return vpc;
22997 #undef FLD
22998 }
22999
23000 /* masaccs: masaccs$pack $ACC40Si,$ACC40Sk */
23001
23002 static SEM_PC
23003 SEM_FN_NAME (frvbf,masaccs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23004 {
23005 #define FLD(f) abuf->fields.sfmt_mdasaccs.f
23006   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23007   int UNUSED written = 0;
23008   IADDR UNUSED pc = abuf->addr;
23009   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23010
23011 if (ANDSI (FLD (f_ACC40Si), SUBSI (2, 1))) {
23012 frvbf_media_acc_not_aligned (current_cpu);
23013 } else {
23014 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
23015 frvbf_media_acc_not_aligned (current_cpu);
23016 } else {
23017 {
23018 {
23019   DI tmp_tmp;
23020   tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_ACC40S (((FLD (f_ACC40Si)) + (1))));
23021 if (GTDI (tmp_tmp, 549755813887)) {
23022 {
23023   {
23024     DI opval = 549755813887;
23025     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23026     written |= (1 << 4);
23027     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23028   }
23029 frvbf_media_overflow (current_cpu, 8);
23030 }
23031 } else {
23032 if (LTDI (tmp_tmp, INVDI (549755813887))) {
23033 {
23034   {
23035     DI opval = INVDI (549755813887);
23036     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23037     written |= (1 << 4);
23038     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23039   }
23040 frvbf_media_overflow (current_cpu, 8);
23041 }
23042 } else {
23043   {
23044     DI opval = tmp_tmp;
23045     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23046     written |= (1 << 4);
23047     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23048   }
23049 }
23050 }
23051 }
23052 {
23053   DI tmp_tmp;
23054   tmp_tmp = SUBDI (GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_ACC40S (((FLD (f_ACC40Si)) + (1))));
23055 if (GTDI (tmp_tmp, 549755813887)) {
23056 {
23057   {
23058     DI opval = 549755813887;
23059     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23060     written |= (1 << 5);
23061     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23062   }
23063 frvbf_media_overflow (current_cpu, 4);
23064 }
23065 } else {
23066 if (LTDI (tmp_tmp, INVDI (549755813887))) {
23067 {
23068   {
23069     DI opval = INVDI (549755813887);
23070     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23071     written |= (1 << 5);
23072     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23073   }
23074 frvbf_media_overflow (current_cpu, 4);
23075 }
23076 } else {
23077   {
23078     DI opval = tmp_tmp;
23079     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23080     written |= (1 << 5);
23081     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23082   }
23083 }
23084 }
23085 }
23086 }
23087 }
23088 }
23089
23090   abuf->written = written;
23091   return vpc;
23092 #undef FLD
23093 }
23094
23095 /* mdasaccs: mdasaccs$pack $ACC40Si,$ACC40Sk */
23096
23097 static SEM_PC
23098 SEM_FN_NAME (frvbf,mdasaccs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23099 {
23100 #define FLD(f) abuf->fields.sfmt_mdasaccs.f
23101   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23102   int UNUSED written = 0;
23103   IADDR UNUSED pc = abuf->addr;
23104   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23105
23106 if (ANDSI (FLD (f_ACC40Si), SUBSI (4, 1))) {
23107 frvbf_media_acc_not_aligned (current_cpu);
23108 } else {
23109 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
23110 frvbf_media_acc_not_aligned (current_cpu);
23111 } else {
23112 {
23113 {
23114   DI tmp_tmp;
23115   tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_ACC40S (((FLD (f_ACC40Si)) + (1))));
23116 if (GTDI (tmp_tmp, 549755813887)) {
23117 {
23118   {
23119     DI opval = 549755813887;
23120     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23121     written |= (1 << 6);
23122     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23123   }
23124 frvbf_media_overflow (current_cpu, 8);
23125 }
23126 } else {
23127 if (LTDI (tmp_tmp, INVDI (549755813887))) {
23128 {
23129   {
23130     DI opval = INVDI (549755813887);
23131     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23132     written |= (1 << 6);
23133     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23134   }
23135 frvbf_media_overflow (current_cpu, 8);
23136 }
23137 } else {
23138   {
23139     DI opval = tmp_tmp;
23140     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23141     written |= (1 << 6);
23142     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23143   }
23144 }
23145 }
23146 }
23147 {
23148   DI tmp_tmp;
23149   tmp_tmp = SUBDI (GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_ACC40S (((FLD (f_ACC40Si)) + (1))));
23150 if (GTDI (tmp_tmp, 549755813887)) {
23151 {
23152   {
23153     DI opval = 549755813887;
23154     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23155     written |= (1 << 7);
23156     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23157   }
23158 frvbf_media_overflow (current_cpu, 4);
23159 }
23160 } else {
23161 if (LTDI (tmp_tmp, INVDI (549755813887))) {
23162 {
23163   {
23164     DI opval = INVDI (549755813887);
23165     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23166     written |= (1 << 7);
23167     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23168   }
23169 frvbf_media_overflow (current_cpu, 4);
23170 }
23171 } else {
23172   {
23173     DI opval = tmp_tmp;
23174     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23175     written |= (1 << 7);
23176     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23177   }
23178 }
23179 }
23180 }
23181 {
23182   DI tmp_tmp;
23183   tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Si)) + (2))), GET_H_ACC40S (((FLD (f_ACC40Si)) + (3))));
23184 if (GTDI (tmp_tmp, 549755813887)) {
23185 {
23186   {
23187     DI opval = 549755813887;
23188     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
23189     written |= (1 << 8);
23190     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23191   }
23192 frvbf_media_overflow (current_cpu, 2);
23193 }
23194 } else {
23195 if (LTDI (tmp_tmp, INVDI (549755813887))) {
23196 {
23197   {
23198     DI opval = INVDI (549755813887);
23199     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
23200     written |= (1 << 8);
23201     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23202   }
23203 frvbf_media_overflow (current_cpu, 2);
23204 }
23205 } else {
23206   {
23207     DI opval = tmp_tmp;
23208     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
23209     written |= (1 << 8);
23210     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23211   }
23212 }
23213 }
23214 }
23215 {
23216   DI tmp_tmp;
23217   tmp_tmp = SUBDI (GET_H_ACC40S (((FLD (f_ACC40Si)) + (2))), GET_H_ACC40S (((FLD (f_ACC40Si)) + (3))));
23218 if (GTDI (tmp_tmp, 549755813887)) {
23219 {
23220   {
23221     DI opval = 549755813887;
23222     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
23223     written |= (1 << 9);
23224     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23225   }
23226 frvbf_media_overflow (current_cpu, 1);
23227 }
23228 } else {
23229 if (LTDI (tmp_tmp, INVDI (549755813887))) {
23230 {
23231   {
23232     DI opval = INVDI (549755813887);
23233     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
23234     written |= (1 << 9);
23235     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23236   }
23237 frvbf_media_overflow (current_cpu, 1);
23238 }
23239 } else {
23240   {
23241     DI opval = tmp_tmp;
23242     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
23243     written |= (1 << 9);
23244     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23245   }
23246 }
23247 }
23248 }
23249 }
23250 }
23251 }
23252
23253   abuf->written = written;
23254   return vpc;
23255 #undef FLD
23256 }
23257
23258 /* mmulhs: mmulhs$pack $FRinti,$FRintj,$ACC40Sk */
23259
23260 static SEM_PC
23261 SEM_FN_NAME (frvbf,mmulhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23262 {
23263 #define FLD(f) abuf->fields.sfmt_cmmachs.f
23264   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23265   int UNUSED written = 0;
23266   IADDR UNUSED pc = abuf->addr;
23267   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23268
23269 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
23270 frvbf_media_acc_not_aligned (current_cpu);
23271 } else {
23272 {
23273   HI tmp_argihi;
23274   HI tmp_argilo;
23275   HI tmp_argjhi;
23276   HI tmp_argjlo;
23277 {
23278   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23279   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23280   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23281   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23282 }
23283   {
23284     DI opval = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
23285     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23286     written |= (1 << 9);
23287     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23288   }
23289   {
23290     DI opval = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
23291     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23292     written |= (1 << 10);
23293     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23294   }
23295 }
23296 }
23297
23298   abuf->written = written;
23299   return vpc;
23300 #undef FLD
23301 }
23302
23303 /* mmulhu: mmulhu$pack $FRinti,$FRintj,$ACC40Sk */
23304
23305 static SEM_PC
23306 SEM_FN_NAME (frvbf,mmulhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23307 {
23308 #define FLD(f) abuf->fields.sfmt_cmmachs.f
23309   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23310   int UNUSED written = 0;
23311   IADDR UNUSED pc = abuf->addr;
23312   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23313
23314 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
23315 frvbf_media_acc_not_aligned (current_cpu);
23316 } else {
23317 {
23318   UHI tmp_argihi;
23319   UHI tmp_argilo;
23320   UHI tmp_argjhi;
23321   UHI tmp_argjlo;
23322 {
23323   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23324   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23325   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23326   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23327 }
23328   {
23329     DI opval = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
23330     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23331     written |= (1 << 9);
23332     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23333   }
23334   {
23335     DI opval = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
23336     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23337     written |= (1 << 10);
23338     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23339   }
23340 }
23341 }
23342
23343   abuf->written = written;
23344   return vpc;
23345 #undef FLD
23346 }
23347
23348 /* mmulxhs: mmulxhs$pack $FRinti,$FRintj,$ACC40Sk */
23349
23350 static SEM_PC
23351 SEM_FN_NAME (frvbf,mmulxhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23352 {
23353 #define FLD(f) abuf->fields.sfmt_cmmachs.f
23354   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23355   int UNUSED written = 0;
23356   IADDR UNUSED pc = abuf->addr;
23357   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23358
23359 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
23360 frvbf_media_acc_not_aligned (current_cpu);
23361 } else {
23362 {
23363   HI tmp_argihi;
23364   HI tmp_argilo;
23365   HI tmp_argjhi;
23366   HI tmp_argjlo;
23367 {
23368   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23369   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23370   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23371   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23372 }
23373   {
23374     DI opval = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo));
23375     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23376     written |= (1 << 9);
23377     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23378   }
23379   {
23380     DI opval = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi));
23381     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23382     written |= (1 << 10);
23383     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23384   }
23385 }
23386 }
23387
23388   abuf->written = written;
23389   return vpc;
23390 #undef FLD
23391 }
23392
23393 /* mmulxhu: mmulxhu$pack $FRinti,$FRintj,$ACC40Sk */
23394
23395 static SEM_PC
23396 SEM_FN_NAME (frvbf,mmulxhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23397 {
23398 #define FLD(f) abuf->fields.sfmt_cmmachs.f
23399   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23400   int UNUSED written = 0;
23401   IADDR UNUSED pc = abuf->addr;
23402   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23403
23404 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
23405 frvbf_media_acc_not_aligned (current_cpu);
23406 } else {
23407 {
23408   UHI tmp_argihi;
23409   UHI tmp_argilo;
23410   UHI tmp_argjhi;
23411   UHI tmp_argjlo;
23412 {
23413   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23414   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23415   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23416   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23417 }
23418   {
23419     DI opval = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjlo));
23420     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23421     written |= (1 << 9);
23422     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23423   }
23424   {
23425     DI opval = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjhi));
23426     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23427     written |= (1 << 10);
23428     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23429   }
23430 }
23431 }
23432
23433   abuf->written = written;
23434   return vpc;
23435 #undef FLD
23436 }
23437
23438 /* cmmulhs: cmmulhs$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
23439
23440 static SEM_PC
23441 SEM_FN_NAME (frvbf,cmmulhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23442 {
23443 #define FLD(f) abuf->fields.sfmt_cmmachs.f
23444   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23445   int UNUSED written = 0;
23446   IADDR UNUSED pc = abuf->addr;
23447   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23448
23449 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
23450 frvbf_media_acc_not_aligned (current_cpu);
23451 } else {
23452 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
23453 {
23454   HI tmp_argihi;
23455   HI tmp_argilo;
23456   HI tmp_argjhi;
23457   HI tmp_argjlo;
23458 {
23459   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23460   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23461   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23462   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23463 }
23464   {
23465     DI opval = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
23466     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23467     written |= (1 << 11);
23468     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23469   }
23470   {
23471     DI opval = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
23472     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23473     written |= (1 << 12);
23474     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23475   }
23476 }
23477 }
23478 }
23479
23480   abuf->written = written;
23481   return vpc;
23482 #undef FLD
23483 }
23484
23485 /* cmmulhu: cmmulhu$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
23486
23487 static SEM_PC
23488 SEM_FN_NAME (frvbf,cmmulhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23489 {
23490 #define FLD(f) abuf->fields.sfmt_cmmachs.f
23491   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23492   int UNUSED written = 0;
23493   IADDR UNUSED pc = abuf->addr;
23494   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23495
23496 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
23497 frvbf_media_acc_not_aligned (current_cpu);
23498 } else {
23499 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
23500 {
23501   UHI tmp_argihi;
23502   UHI tmp_argilo;
23503   UHI tmp_argjhi;
23504   UHI tmp_argjlo;
23505 {
23506   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23507   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23508   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23509   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23510 }
23511   {
23512     DI opval = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
23513     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23514     written |= (1 << 11);
23515     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23516   }
23517   {
23518     DI opval = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
23519     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23520     written |= (1 << 12);
23521     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23522   }
23523 }
23524 }
23525 }
23526
23527   abuf->written = written;
23528   return vpc;
23529 #undef FLD
23530 }
23531
23532 /* mqmulhs: mqmulhs$pack $FRintieven,$FRintjeven,$ACC40Sk */
23533
23534 static SEM_PC
23535 SEM_FN_NAME (frvbf,mqmulhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23536 {
23537 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
23538   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23539   int UNUSED written = 0;
23540   IADDR UNUSED pc = abuf->addr;
23541   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23542
23543 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
23544 frvbf_media_acc_not_aligned (current_cpu);
23545 } else {
23546 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
23547 frvbf_media_register_not_aligned (current_cpu);
23548 } else {
23549 {
23550   HI tmp_argihi;
23551   HI tmp_argilo;
23552   HI tmp_argjhi;
23553   HI tmp_argjlo;
23554 {
23555   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23556   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23557   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23558   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23559 }
23560   {
23561     DI opval = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
23562     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23563     written |= (1 << 13);
23564     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23565   }
23566   {
23567     DI opval = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
23568     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23569     written |= (1 << 14);
23570     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23571   }
23572 {
23573   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23574   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23575   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23576   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23577 }
23578   {
23579     DI opval = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
23580     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
23581     written |= (1 << 15);
23582     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23583   }
23584   {
23585     DI opval = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
23586     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
23587     written |= (1 << 16);
23588     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23589   }
23590 }
23591 }
23592 }
23593
23594   abuf->written = written;
23595   return vpc;
23596 #undef FLD
23597 }
23598
23599 /* mqmulhu: mqmulhu$pack $FRintieven,$FRintjeven,$ACC40Sk */
23600
23601 static SEM_PC
23602 SEM_FN_NAME (frvbf,mqmulhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23603 {
23604 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
23605   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23606   int UNUSED written = 0;
23607   IADDR UNUSED pc = abuf->addr;
23608   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23609
23610 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
23611 frvbf_media_acc_not_aligned (current_cpu);
23612 } else {
23613 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
23614 frvbf_media_register_not_aligned (current_cpu);
23615 } else {
23616 {
23617   UHI tmp_argihi;
23618   UHI tmp_argilo;
23619   UHI tmp_argjhi;
23620   UHI tmp_argjlo;
23621 {
23622   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23623   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23624   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23625   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23626 }
23627   {
23628     DI opval = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
23629     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23630     written |= (1 << 13);
23631     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23632   }
23633   {
23634     DI opval = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
23635     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23636     written |= (1 << 14);
23637     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23638   }
23639 {
23640   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23641   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23642   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23643   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23644 }
23645   {
23646     DI opval = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
23647     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
23648     written |= (1 << 15);
23649     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23650   }
23651   {
23652     DI opval = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
23653     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
23654     written |= (1 << 16);
23655     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23656   }
23657 }
23658 }
23659 }
23660
23661   abuf->written = written;
23662   return vpc;
23663 #undef FLD
23664 }
23665
23666 /* mqmulxhs: mqmulxhs$pack $FRintieven,$FRintjeven,$ACC40Sk */
23667
23668 static SEM_PC
23669 SEM_FN_NAME (frvbf,mqmulxhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23670 {
23671 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
23672   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23673   int UNUSED written = 0;
23674   IADDR UNUSED pc = abuf->addr;
23675   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23676
23677 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
23678 frvbf_media_acc_not_aligned (current_cpu);
23679 } else {
23680 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
23681 frvbf_media_register_not_aligned (current_cpu);
23682 } else {
23683 {
23684   HI tmp_argihi;
23685   HI tmp_argilo;
23686   HI tmp_argjhi;
23687   HI tmp_argjlo;
23688 {
23689   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23690   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23691   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23692   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23693 }
23694   {
23695     DI opval = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo));
23696     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23697     written |= (1 << 13);
23698     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23699   }
23700   {
23701     DI opval = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi));
23702     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23703     written |= (1 << 14);
23704     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23705   }
23706 {
23707   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23708   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23709   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23710   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23711 }
23712   {
23713     DI opval = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo));
23714     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
23715     written |= (1 << 15);
23716     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23717   }
23718   {
23719     DI opval = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi));
23720     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
23721     written |= (1 << 16);
23722     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23723   }
23724 }
23725 }
23726 }
23727
23728   abuf->written = written;
23729   return vpc;
23730 #undef FLD
23731 }
23732
23733 /* mqmulxhu: mqmulxhu$pack $FRintieven,$FRintjeven,$ACC40Sk */
23734
23735 static SEM_PC
23736 SEM_FN_NAME (frvbf,mqmulxhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23737 {
23738 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
23739   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23740   int UNUSED written = 0;
23741   IADDR UNUSED pc = abuf->addr;
23742   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23743
23744 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
23745 frvbf_media_acc_not_aligned (current_cpu);
23746 } else {
23747 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
23748 frvbf_media_register_not_aligned (current_cpu);
23749 } else {
23750 {
23751   UHI tmp_argihi;
23752   UHI tmp_argilo;
23753   UHI tmp_argjhi;
23754   UHI tmp_argjlo;
23755 {
23756   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23757   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23758   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23759   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23760 }
23761   {
23762     DI opval = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjlo));
23763     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23764     written |= (1 << 13);
23765     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23766   }
23767   {
23768     DI opval = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjhi));
23769     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23770     written |= (1 << 14);
23771     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23772   }
23773 {
23774   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23775   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23776   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23777   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23778 }
23779   {
23780     DI opval = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjlo));
23781     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
23782     written |= (1 << 15);
23783     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23784   }
23785   {
23786     DI opval = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjhi));
23787     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
23788     written |= (1 << 16);
23789     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23790   }
23791 }
23792 }
23793 }
23794
23795   abuf->written = written;
23796   return vpc;
23797 #undef FLD
23798 }
23799
23800 /* cmqmulhs: cmqmulhs$pack $FRintieven,$FRintjeven,$ACC40Sk,$CCi,$cond */
23801
23802 static SEM_PC
23803 SEM_FN_NAME (frvbf,cmqmulhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23804 {
23805 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
23806   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23807   int UNUSED written = 0;
23808   IADDR UNUSED pc = abuf->addr;
23809   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23810
23811 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
23812 frvbf_media_acc_not_aligned (current_cpu);
23813 } else {
23814 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
23815 frvbf_media_register_not_aligned (current_cpu);
23816 } else {
23817 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
23818 {
23819   HI tmp_argihi;
23820   HI tmp_argilo;
23821   HI tmp_argjhi;
23822   HI tmp_argjlo;
23823 {
23824   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23825   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23826   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23827   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23828 }
23829   {
23830     DI opval = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
23831     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23832     written |= (1 << 15);
23833     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23834   }
23835   {
23836     DI opval = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
23837     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23838     written |= (1 << 16);
23839     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23840   }
23841 {
23842   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23843   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23844   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23845   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23846 }
23847   {
23848     DI opval = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
23849     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
23850     written |= (1 << 17);
23851     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23852   }
23853   {
23854     DI opval = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
23855     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
23856     written |= (1 << 18);
23857     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23858   }
23859 }
23860 }
23861 }
23862 }
23863
23864   abuf->written = written;
23865   return vpc;
23866 #undef FLD
23867 }
23868
23869 /* cmqmulhu: cmqmulhu$pack $FRintieven,$FRintjeven,$ACC40Sk,$CCi,$cond */
23870
23871 static SEM_PC
23872 SEM_FN_NAME (frvbf,cmqmulhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23873 {
23874 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
23875   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23876   int UNUSED written = 0;
23877   IADDR UNUSED pc = abuf->addr;
23878   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23879
23880 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
23881 frvbf_media_acc_not_aligned (current_cpu);
23882 } else {
23883 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
23884 frvbf_media_register_not_aligned (current_cpu);
23885 } else {
23886 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
23887 {
23888   UHI tmp_argihi;
23889   UHI tmp_argilo;
23890   UHI tmp_argjhi;
23891   UHI tmp_argjlo;
23892 {
23893   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23894   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23895   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23896   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23897 }
23898   {
23899     DI opval = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
23900     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23901     written |= (1 << 15);
23902     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23903   }
23904   {
23905     DI opval = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
23906     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23907     written |= (1 << 16);
23908     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23909   }
23910 {
23911   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23912   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23913   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23914   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23915 }
23916   {
23917     DI opval = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
23918     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
23919     written |= (1 << 17);
23920     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23921   }
23922   {
23923     DI opval = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
23924     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
23925     written |= (1 << 18);
23926     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23927   }
23928 }
23929 }
23930 }
23931 }
23932
23933   abuf->written = written;
23934   return vpc;
23935 #undef FLD
23936 }
23937
23938 /* mmachs: mmachs$pack $FRinti,$FRintj,$ACC40Sk */
23939
23940 static SEM_PC
23941 SEM_FN_NAME (frvbf,mmachs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23942 {
23943 #define FLD(f) abuf->fields.sfmt_cmmachs.f
23944   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23945   int UNUSED written = 0;
23946   IADDR UNUSED pc = abuf->addr;
23947   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23948
23949 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
23950 frvbf_media_acc_not_aligned (current_cpu);
23951 } else {
23952 {
23953   HI tmp_argihi;
23954   HI tmp_argilo;
23955   HI tmp_argjhi;
23956   HI tmp_argjlo;
23957 {
23958   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23959   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23960   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23961   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23962 }
23963 {
23964   DI tmp_tmp;
23965   tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Sk)), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi)));
23966 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
23967 {
23968   {
23969     DI opval = MAKEDI (127, 0xffffffff);
23970     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23971     written |= (1 << 11);
23972     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23973   }
23974 frvbf_media_overflow (current_cpu, 8);
23975 }
23976 } else {
23977 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
23978 {
23979   {
23980     DI opval = MAKEDI (0xffffff80, 0);
23981     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23982     written |= (1 << 11);
23983     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23984   }
23985 frvbf_media_overflow (current_cpu, 8);
23986 }
23987 } else {
23988   {
23989     DI opval = tmp_tmp;
23990     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23991     written |= (1 << 11);
23992     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23993   }
23994 }
23995 }
23996 }
23997 {
23998   DI tmp_tmp;
23999   tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (1))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo)));
24000 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24001 {
24002   {
24003     DI opval = MAKEDI (127, 0xffffffff);
24004     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24005     written |= (1 << 12);
24006     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24007   }
24008 frvbf_media_overflow (current_cpu, 4);
24009 }
24010 } else {
24011 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24012 {
24013   {
24014     DI opval = MAKEDI (0xffffff80, 0);
24015     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24016     written |= (1 << 12);
24017     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24018   }
24019 frvbf_media_overflow (current_cpu, 4);
24020 }
24021 } else {
24022   {
24023     DI opval = tmp_tmp;
24024     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24025     written |= (1 << 12);
24026     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24027   }
24028 }
24029 }
24030 }
24031 }
24032 }
24033
24034   abuf->written = written;
24035   return vpc;
24036 #undef FLD
24037 }
24038
24039 /* mmachu: mmachu$pack $FRinti,$FRintj,$ACC40Uk */
24040
24041 static SEM_PC
24042 SEM_FN_NAME (frvbf,mmachu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
24043 {
24044 #define FLD(f) abuf->fields.sfmt_cmmachu.f
24045   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
24046   int UNUSED written = 0;
24047   IADDR UNUSED pc = abuf->addr;
24048   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
24049
24050 if (ANDSI (FLD (f_ACC40Uk), SUBSI (2, 1))) {
24051 frvbf_media_acc_not_aligned (current_cpu);
24052 } else {
24053 {
24054   UHI tmp_argihi;
24055   UHI tmp_argilo;
24056   UHI tmp_argjhi;
24057   UHI tmp_argjlo;
24058 {
24059   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24060   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24061   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24062   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24063 }
24064 {
24065   DI tmp_tmp;
24066   tmp_tmp = ADDDI (GET_H_ACC40U (FLD (f_ACC40Uk)), MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi)));
24067 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
24068 {
24069   {
24070     UDI opval = MAKEDI (255, 0xffffffff);
24071     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24072     written |= (1 << 11);
24073     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24074   }
24075 frvbf_media_overflow (current_cpu, 8);
24076 }
24077 } else {
24078 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
24079 {
24080   {
24081     UDI opval = MAKEDI (0, 0);
24082     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24083     written |= (1 << 11);
24084     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24085   }
24086 frvbf_media_overflow (current_cpu, 8);
24087 }
24088 } else {
24089   {
24090     UDI opval = tmp_tmp;
24091     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24092     written |= (1 << 11);
24093     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24094   }
24095 }
24096 }
24097 }
24098 {
24099   DI tmp_tmp;
24100   tmp_tmp = ADDDI (GET_H_ACC40U (((FLD (f_ACC40Uk)) + (1))), MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo)));
24101 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
24102 {
24103   {
24104     UDI opval = MAKEDI (255, 0xffffffff);
24105     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
24106     written |= (1 << 12);
24107     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24108   }
24109 frvbf_media_overflow (current_cpu, 4);
24110 }
24111 } else {
24112 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
24113 {
24114   {
24115     UDI opval = MAKEDI (0, 0);
24116     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
24117     written |= (1 << 12);
24118     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24119   }
24120 frvbf_media_overflow (current_cpu, 4);
24121 }
24122 } else {
24123   {
24124     UDI opval = tmp_tmp;
24125     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
24126     written |= (1 << 12);
24127     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24128   }
24129 }
24130 }
24131 }
24132 }
24133 }
24134
24135   abuf->written = written;
24136   return vpc;
24137 #undef FLD
24138 }
24139
24140 /* mmrdhs: mmrdhs$pack $FRinti,$FRintj,$ACC40Sk */
24141
24142 static SEM_PC
24143 SEM_FN_NAME (frvbf,mmrdhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
24144 {
24145 #define FLD(f) abuf->fields.sfmt_cmmachs.f
24146   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
24147   int UNUSED written = 0;
24148   IADDR UNUSED pc = abuf->addr;
24149   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
24150
24151 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
24152 frvbf_media_acc_not_aligned (current_cpu);
24153 } else {
24154 {
24155   HI tmp_argihi;
24156   HI tmp_argilo;
24157   HI tmp_argjhi;
24158   HI tmp_argjlo;
24159 {
24160   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24161   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24162   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24163   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24164 }
24165 {
24166   DI tmp_tmp;
24167   tmp_tmp = SUBDI (GET_H_ACC40S (FLD (f_ACC40Sk)), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi)));
24168 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24169 {
24170   {
24171     DI opval = MAKEDI (127, 0xffffffff);
24172     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24173     written |= (1 << 11);
24174     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24175   }
24176 frvbf_media_overflow (current_cpu, 8);
24177 }
24178 } else {
24179 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24180 {
24181   {
24182     DI opval = MAKEDI (0xffffff80, 0);
24183     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24184     written |= (1 << 11);
24185     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24186   }
24187 frvbf_media_overflow (current_cpu, 8);
24188 }
24189 } else {
24190   {
24191     DI opval = tmp_tmp;
24192     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24193     written |= (1 << 11);
24194     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24195   }
24196 }
24197 }
24198 }
24199 {
24200   DI tmp_tmp;
24201   tmp_tmp = SUBDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (1))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo)));
24202 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24203 {
24204   {
24205     DI opval = MAKEDI (127, 0xffffffff);
24206     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24207     written |= (1 << 12);
24208     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24209   }
24210 frvbf_media_overflow (current_cpu, 4);
24211 }
24212 } else {
24213 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24214 {
24215   {
24216     DI opval = MAKEDI (0xffffff80, 0);
24217     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24218     written |= (1 << 12);
24219     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24220   }
24221 frvbf_media_overflow (current_cpu, 4);
24222 }
24223 } else {
24224   {
24225     DI opval = tmp_tmp;
24226     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24227     written |= (1 << 12);
24228     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24229   }
24230 }
24231 }
24232 }
24233 }
24234 }
24235
24236   abuf->written = written;
24237   return vpc;
24238 #undef FLD
24239 }
24240
24241 /* mmrdhu: mmrdhu$pack $FRinti,$FRintj,$ACC40Uk */
24242
24243 static SEM_PC
24244 SEM_FN_NAME (frvbf,mmrdhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
24245 {
24246 #define FLD(f) abuf->fields.sfmt_cmmachu.f
24247   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
24248   int UNUSED written = 0;
24249   IADDR UNUSED pc = abuf->addr;
24250   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
24251
24252 if (ANDSI (FLD (f_ACC40Uk), SUBSI (2, 1))) {
24253 frvbf_media_acc_not_aligned (current_cpu);
24254 } else {
24255 {
24256   UHI tmp_argihi;
24257   UHI tmp_argilo;
24258   UHI tmp_argjhi;
24259   UHI tmp_argjlo;
24260 {
24261   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24262   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24263   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24264   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24265 }
24266 {
24267   DI tmp_tmp;
24268   tmp_tmp = SUBDI (GET_H_ACC40U (FLD (f_ACC40Uk)), MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi)));
24269 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
24270 {
24271   {
24272     UDI opval = MAKEDI (255, 0xffffffff);
24273     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24274     written |= (1 << 11);
24275     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24276   }
24277 frvbf_media_overflow (current_cpu, 8);
24278 }
24279 } else {
24280 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
24281 {
24282   {
24283     UDI opval = MAKEDI (0, 0);
24284     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24285     written |= (1 << 11);
24286     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24287   }
24288 frvbf_media_overflow (current_cpu, 8);
24289 }
24290 } else {
24291   {
24292     UDI opval = tmp_tmp;
24293     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24294     written |= (1 << 11);
24295     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24296   }
24297 }
24298 }
24299 }
24300 {
24301   DI tmp_tmp;
24302   tmp_tmp = SUBDI (GET_H_ACC40U (((FLD (f_ACC40Uk)) + (1))), MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo)));
24303 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
24304 {
24305   {
24306     UDI opval = MAKEDI (255, 0xffffffff);
24307     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
24308     written |= (1 << 12);
24309     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24310   }
24311 frvbf_media_overflow (current_cpu, 4);
24312 }
24313 } else {
24314 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
24315 {
24316   {
24317     UDI opval = MAKEDI (0, 0);
24318     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
24319     written |= (1 << 12);
24320     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24321   }
24322 frvbf_media_overflow (current_cpu, 4);
24323 }
24324 } else {
24325   {
24326     UDI opval = tmp_tmp;
24327     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
24328     written |= (1 << 12);
24329     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24330   }
24331 }
24332 }
24333 }
24334 }
24335 }
24336
24337   abuf->written = written;
24338   return vpc;
24339 #undef FLD
24340 }
24341
24342 /* cmmachs: cmmachs$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
24343
24344 static SEM_PC
24345 SEM_FN_NAME (frvbf,cmmachs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
24346 {
24347 #define FLD(f) abuf->fields.sfmt_cmmachs.f
24348   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
24349   int UNUSED written = 0;
24350   IADDR UNUSED pc = abuf->addr;
24351   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
24352
24353 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
24354 frvbf_media_acc_not_aligned (current_cpu);
24355 } else {
24356 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
24357 {
24358   HI tmp_argihi;
24359   HI tmp_argilo;
24360   HI tmp_argjhi;
24361   HI tmp_argjlo;
24362 {
24363   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24364   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24365   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24366   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24367 }
24368 {
24369   DI tmp_tmp;
24370   tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Sk)), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi)));
24371 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24372 {
24373   {
24374     DI opval = MAKEDI (127, 0xffffffff);
24375     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24376     written |= (1 << 13);
24377     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24378   }
24379 frvbf_media_overflow (current_cpu, 8);
24380 }
24381 } else {
24382 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24383 {
24384   {
24385     DI opval = MAKEDI (0xffffff80, 0);
24386     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24387     written |= (1 << 13);
24388     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24389   }
24390 frvbf_media_overflow (current_cpu, 8);
24391 }
24392 } else {
24393   {
24394     DI opval = tmp_tmp;
24395     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24396     written |= (1 << 13);
24397     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24398   }
24399 }
24400 }
24401 }
24402 {
24403   DI tmp_tmp;
24404   tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (1))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo)));
24405 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24406 {
24407   {
24408     DI opval = MAKEDI (127, 0xffffffff);
24409     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24410     written |= (1 << 14);
24411     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24412   }
24413 frvbf_media_overflow (current_cpu, 4);
24414 }
24415 } else {
24416 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24417 {
24418   {
24419     DI opval = MAKEDI (0xffffff80, 0);
24420     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24421     written |= (1 << 14);
24422     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24423   }
24424 frvbf_media_overflow (current_cpu, 4);
24425 }
24426 } else {
24427   {
24428     DI opval = tmp_tmp;
24429     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24430     written |= (1 << 14);
24431     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24432   }
24433 }
24434 }
24435 }
24436 }
24437 }
24438 }
24439
24440   abuf->written = written;
24441   return vpc;
24442 #undef FLD
24443 }
24444
24445 /* cmmachu: cmmachu$pack $FRinti,$FRintj,$ACC40Uk,$CCi,$cond */
24446
24447 static SEM_PC
24448 SEM_FN_NAME (frvbf,cmmachu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
24449 {
24450 #define FLD(f) abuf->fields.sfmt_cmmachu.f
24451   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
24452   int UNUSED written = 0;
24453   IADDR UNUSED pc = abuf->addr;
24454   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
24455
24456 if (ANDSI (FLD (f_ACC40Uk), SUBSI (2, 1))) {
24457 frvbf_media_acc_not_aligned (current_cpu);
24458 } else {
24459 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
24460 {
24461   UHI tmp_argihi;
24462   UHI tmp_argilo;
24463   UHI tmp_argjhi;
24464   UHI tmp_argjlo;
24465 {
24466   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24467   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24468   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24469   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24470 }
24471 {
24472   DI tmp_tmp;
24473   tmp_tmp = ADDDI (GET_H_ACC40U (FLD (f_ACC40Uk)), MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi)));
24474 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
24475 {
24476   {
24477     UDI opval = MAKEDI (255, 0xffffffff);
24478     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24479     written |= (1 << 13);
24480     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24481   }
24482 frvbf_media_overflow (current_cpu, 8);
24483 }
24484 } else {
24485 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
24486 {
24487   {
24488     UDI opval = MAKEDI (0, 0);
24489     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24490     written |= (1 << 13);
24491     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24492   }
24493 frvbf_media_overflow (current_cpu, 8);
24494 }
24495 } else {
24496   {
24497     UDI opval = tmp_tmp;
24498     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24499     written |= (1 << 13);
24500     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24501   }
24502 }
24503 }
24504 }
24505 {
24506   DI tmp_tmp;
24507   tmp_tmp = ADDDI (GET_H_ACC40U (((FLD (f_ACC40Uk)) + (1))), MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo)));
24508 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
24509 {
24510   {
24511     UDI opval = MAKEDI (255, 0xffffffff);
24512     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
24513     written |= (1 << 14);
24514     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24515   }
24516 frvbf_media_overflow (current_cpu, 4);
24517 }
24518 } else {
24519 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
24520 {
24521   {
24522     UDI opval = MAKEDI (0, 0);
24523     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
24524     written |= (1 << 14);
24525     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24526   }
24527 frvbf_media_overflow (current_cpu, 4);
24528 }
24529 } else {
24530   {
24531     UDI opval = tmp_tmp;
24532     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
24533     written |= (1 << 14);
24534     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24535   }
24536 }
24537 }
24538 }
24539 }
24540 }
24541 }
24542
24543   abuf->written = written;
24544   return vpc;
24545 #undef FLD
24546 }
24547
24548 /* mqmachs: mqmachs$pack $FRintieven,$FRintjeven,$ACC40Sk */
24549
24550 static SEM_PC
24551 SEM_FN_NAME (frvbf,mqmachs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
24552 {
24553 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
24554   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
24555   int UNUSED written = 0;
24556   IADDR UNUSED pc = abuf->addr;
24557   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
24558
24559 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
24560 frvbf_media_acc_not_aligned (current_cpu);
24561 } else {
24562 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
24563 frvbf_media_register_not_aligned (current_cpu);
24564 } else {
24565 {
24566   HI tmp_argihi;
24567   HI tmp_argilo;
24568   HI tmp_argjhi;
24569   HI tmp_argjlo;
24570 {
24571   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24572   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24573   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24574   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24575 }
24576 {
24577   DI tmp_tmp;
24578   tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Sk)), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi)));
24579 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24580 {
24581   {
24582     DI opval = MAKEDI (127, 0xffffffff);
24583     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24584     written |= (1 << 17);
24585     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24586   }
24587 frvbf_media_overflow (current_cpu, 8);
24588 }
24589 } else {
24590 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24591 {
24592   {
24593     DI opval = MAKEDI (0xffffff80, 0);
24594     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24595     written |= (1 << 17);
24596     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24597   }
24598 frvbf_media_overflow (current_cpu, 8);
24599 }
24600 } else {
24601   {
24602     DI opval = tmp_tmp;
24603     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24604     written |= (1 << 17);
24605     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24606   }
24607 }
24608 }
24609 }
24610 {
24611   DI tmp_tmp;
24612   tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (1))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo)));
24613 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24614 {
24615   {
24616     DI opval = MAKEDI (127, 0xffffffff);
24617     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24618     written |= (1 << 18);
24619     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24620   }
24621 frvbf_media_overflow (current_cpu, 4);
24622 }
24623 } else {
24624 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24625 {
24626   {
24627     DI opval = MAKEDI (0xffffff80, 0);
24628     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24629     written |= (1 << 18);
24630     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24631   }
24632 frvbf_media_overflow (current_cpu, 4);
24633 }
24634 } else {
24635   {
24636     DI opval = tmp_tmp;
24637     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24638     written |= (1 << 18);
24639     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24640   }
24641 }
24642 }
24643 }
24644 {
24645   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24646   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24647   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24648   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24649 }
24650 {
24651   DI tmp_tmp;
24652   tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (2))), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi)));
24653 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24654 {
24655   {
24656     DI opval = MAKEDI (127, 0xffffffff);
24657     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
24658     written |= (1 << 19);
24659     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24660   }
24661 frvbf_media_overflow (current_cpu, 2);
24662 }
24663 } else {
24664 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24665 {
24666   {
24667     DI opval = MAKEDI (0xffffff80, 0);
24668     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
24669     written |= (1 << 19);
24670     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24671   }
24672 frvbf_media_overflow (current_cpu, 2);
24673 }
24674 } else {
24675   {
24676     DI opval = tmp_tmp;
24677     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
24678     written |= (1 << 19);
24679     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24680   }
24681 }
24682 }
24683 }
24684 {
24685   DI tmp_tmp;
24686   tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (3))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo)));
24687 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24688 {
24689   {
24690     DI opval = MAKEDI (127, 0xffffffff);
24691     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
24692     written |= (1 << 20);
24693     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24694   }
24695 frvbf_media_overflow (current_cpu, 1);
24696 }
24697 } else {
24698 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24699 {
24700   {
24701     DI opval = MAKEDI (0xffffff80, 0);
24702     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
24703     written |= (1 << 20);
24704     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24705   }
24706 frvbf_media_overflow (current_cpu, 1);
24707 }
24708 } else {
24709   {
24710     DI opval = tmp_tmp;
24711     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
24712     written |= (1 << 20);
24713     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24714   }
24715 }
24716 }
24717 }
24718 }
24719 }
24720 }
24721
24722   abuf->written = written;
24723   return vpc;
24724 #undef FLD
24725 }
24726
24727 /* mqmachu: mqmachu$pack $FRintieven,$FRintjeven,$ACC40Uk */
24728
24729 static SEM_PC
24730 SEM_FN_NAME (frvbf,mqmachu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
24731 {
24732 #define FLD(f) abuf->fields.sfmt_cmqmachu.f
24733   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
24734   int UNUSED written = 0;
24735   IADDR UNUSED pc = abuf->addr;
24736   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
24737
24738 if (ANDSI (FLD (f_ACC40Uk), SUBSI (4, 1))) {
24739 frvbf_media_acc_not_aligned (current_cpu);
24740 } else {
24741 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
24742 frvbf_media_register_not_aligned (current_cpu);
24743 } else {
24744 {
24745   UHI tmp_argihi;
24746   UHI tmp_argilo;
24747   UHI tmp_argjhi;
24748   UHI tmp_argjlo;
24749 {
24750   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24751   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24752   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24753   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24754 }
24755 {
24756   DI tmp_tmp;
24757   tmp_tmp = ADDDI (GET_H_ACC40U (FLD (f_ACC40Uk)), MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi)));
24758 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
24759 {
24760   {
24761     UDI opval = MAKEDI (255, 0xffffffff);
24762     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24763     written |= (1 << 17);
24764     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24765   }
24766 frvbf_media_overflow (current_cpu, 8);
24767 }
24768 } else {
24769 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
24770 {
24771   {
24772     UDI opval = MAKEDI (0, 0);
24773     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24774     written |= (1 << 17);
24775     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24776   }
24777 frvbf_media_overflow (current_cpu, 8);
24778 }
24779 } else {
24780   {
24781     UDI opval = tmp_tmp;
24782     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24783     written |= (1 << 17);
24784     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24785   }
24786 }
24787 }
24788 }
24789 {
24790   DI tmp_tmp;
24791   tmp_tmp = ADDDI (GET_H_ACC40U (((FLD (f_ACC40Uk)) + (1))), MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo)));
24792 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
24793 {
24794   {
24795     UDI opval = MAKEDI (255, 0xffffffff);
24796     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
24797     written |= (1 << 18);
24798     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24799   }
24800 frvbf_media_overflow (current_cpu, 4);
24801 }
24802 } else {
24803 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
24804 {
24805   {
24806     UDI opval = MAKEDI (0, 0);
24807     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
24808     written |= (1 << 18);
24809     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24810   }
24811 frvbf_media_overflow (current_cpu, 4);
24812 }
24813 } else {
24814   {
24815     UDI opval = tmp_tmp;
24816     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
24817     written |= (1 << 18);
24818     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24819   }
24820 }
24821 }
24822 }
24823 {
24824   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24825   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24826   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24827   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24828 }
24829 {
24830   DI tmp_tmp;
24831   tmp_tmp = ADDDI (GET_H_ACC40U (((FLD (f_ACC40Uk)) + (2))), MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi)));
24832 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
24833 {
24834   {
24835     UDI opval = MAKEDI (255, 0xffffffff);
24836     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (2)), opval);
24837     written |= (1 << 19);
24838     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24839   }
24840 frvbf_media_overflow (current_cpu, 2);
24841 }
24842 } else {
24843 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
24844 {
24845   {
24846     UDI opval = MAKEDI (0, 0);
24847     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (2)), opval);
24848     written |= (1 << 19);
24849     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24850   }
24851 frvbf_media_overflow (current_cpu, 2);
24852 }
24853 } else {
24854   {
24855     UDI opval = tmp_tmp;
24856     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (2)), opval);
24857     written |= (1 << 19);
24858     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24859   }
24860 }
24861 }
24862 }
24863 {
24864   DI tmp_tmp;
24865   tmp_tmp = ADDDI (GET_H_ACC40U (((FLD (f_ACC40Uk)) + (3))), MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo)));
24866 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
24867 {
24868   {
24869     UDI opval = MAKEDI (255, 0xffffffff);
24870     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (3)), opval);
24871     written |= (1 << 20);
24872     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24873   }
24874 frvbf_media_overflow (current_cpu, 1);
24875 }
24876 } else {
24877 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
24878 {
24879   {
24880     UDI opval = MAKEDI (0, 0);
24881     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (3)), opval);
24882     written |= (1 << 20);
24883     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24884   }
24885 frvbf_media_overflow (current_cpu, 1);
24886 }
24887 } else {
24888   {
24889     UDI opval = tmp_tmp;
24890     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (3)), opval);
24891     written |= (1 << 20);
24892     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24893   }
24894 }
24895 }
24896 }
24897 }
24898 }
24899 }
24900
24901   abuf->written = written;
24902   return vpc;
24903 #undef FLD
24904 }
24905
24906 /* cmqmachs: cmqmachs$pack $FRintieven,$FRintjeven,$ACC40Sk,$CCi,$cond */
24907
24908 static SEM_PC
24909 SEM_FN_NAME (frvbf,cmqmachs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
24910 {
24911 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
24912   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
24913   int UNUSED written = 0;
24914   IADDR UNUSED pc = abuf->addr;
24915   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
24916
24917 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
24918 frvbf_media_acc_not_aligned (current_cpu);
24919 } else {
24920 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
24921 frvbf_media_register_not_aligned (current_cpu);
24922 } else {
24923 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
24924 {
24925   HI tmp_argihi;
24926   HI tmp_argilo;
24927   HI tmp_argjhi;
24928   HI tmp_argjlo;
24929 {
24930   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24931   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24932   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24933   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24934 }
24935 {
24936   DI tmp_tmp;
24937   tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Sk)), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi)));
24938 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24939 {
24940   {
24941     DI opval = MAKEDI (127, 0xffffffff);
24942     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24943     written |= (1 << 19);
24944     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24945   }
24946 frvbf_media_overflow (current_cpu, 8);
24947 }
24948 } else {
24949 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24950 {
24951   {
24952     DI opval = MAKEDI (0xffffff80, 0);
24953     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24954     written |= (1 << 19);
24955     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24956   }
24957 frvbf_media_overflow (current_cpu, 8);
24958 }
24959 } else {
24960   {
24961     DI opval = tmp_tmp;
24962     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24963     written |= (1 << 19);
24964     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24965   }
24966 }
24967 }
24968 }
24969 {
24970   DI tmp_tmp;
24971   tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (1))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo)));
24972 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24973 {
24974   {
24975     DI opval = MAKEDI (127, 0xffffffff);
24976     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24977     written |= (1 << 20);
24978     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24979   }
24980 frvbf_media_overflow (current_cpu, 4);
24981 }
24982 } else {
24983 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24984 {
24985   {
24986     DI opval = MAKEDI (0xffffff80, 0);
24987     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24988     written |= (1 << 20);
24989     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24990   }
24991 frvbf_media_overflow (current_cpu, 4);
24992 }
24993 } else {
24994   {
24995     DI opval = tmp_tmp;
24996     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24997     written |= (1 << 20);
24998     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24999   }
25000 }
25001 }
25002 }
25003 {
25004   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25005   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25006   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25007   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25008 }
25009 {
25010   DI tmp_tmp;
25011   tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (2))), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi)));
25012 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25013 {
25014   {
25015     DI opval = MAKEDI (127, 0xffffffff);
25016     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
25017     written |= (1 << 21);
25018     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25019   }
25020 frvbf_media_overflow (current_cpu, 2);
25021 }
25022 } else {
25023 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25024 {
25025   {
25026     DI opval = MAKEDI (0xffffff80, 0);
25027     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
25028     written |= (1 << 21);
25029     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25030   }
25031 frvbf_media_overflow (current_cpu, 2);
25032 }
25033 } else {
25034   {
25035     DI opval = tmp_tmp;
25036     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
25037     written |= (1 << 21);
25038     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25039   }
25040 }
25041 }
25042 }
25043 {
25044   DI tmp_tmp;
25045   tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (3))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo)));
25046 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25047 {
25048   {
25049     DI opval = MAKEDI (127, 0xffffffff);
25050     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
25051     written |= (1 << 22);
25052     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25053   }
25054 frvbf_media_overflow (current_cpu, 1);
25055 }
25056 } else {
25057 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25058 {
25059   {
25060     DI opval = MAKEDI (0xffffff80, 0);
25061     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
25062     written |= (1 << 22);
25063     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25064   }
25065 frvbf_media_overflow (current_cpu, 1);
25066 }
25067 } else {
25068   {
25069     DI opval = tmp_tmp;
25070     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
25071     written |= (1 << 22);
25072     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25073   }
25074 }
25075 }
25076 }
25077 }
25078 }
25079 }
25080 }
25081
25082   abuf->written = written;
25083   return vpc;
25084 #undef FLD
25085 }
25086
25087 /* cmqmachu: cmqmachu$pack $FRintieven,$FRintjeven,$ACC40Uk,$CCi,$cond */
25088
25089 static SEM_PC
25090 SEM_FN_NAME (frvbf,cmqmachu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
25091 {
25092 #define FLD(f) abuf->fields.sfmt_cmqmachu.f
25093   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
25094   int UNUSED written = 0;
25095   IADDR UNUSED pc = abuf->addr;
25096   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
25097
25098 if (ANDSI (FLD (f_ACC40Uk), SUBSI (4, 1))) {
25099 frvbf_media_acc_not_aligned (current_cpu);
25100 } else {
25101 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
25102 frvbf_media_register_not_aligned (current_cpu);
25103 } else {
25104 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
25105 {
25106   UHI tmp_argihi;
25107   UHI tmp_argilo;
25108   UHI tmp_argjhi;
25109   UHI tmp_argjlo;
25110 {
25111   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25112   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25113   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25114   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25115 }
25116 {
25117   DI tmp_tmp;
25118   tmp_tmp = ADDDI (GET_H_ACC40U (FLD (f_ACC40Uk)), MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi)));
25119 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
25120 {
25121   {
25122     UDI opval = MAKEDI (255, 0xffffffff);
25123     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
25124     written |= (1 << 19);
25125     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25126   }
25127 frvbf_media_overflow (current_cpu, 8);
25128 }
25129 } else {
25130 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
25131 {
25132   {
25133     UDI opval = MAKEDI (0, 0);
25134     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
25135     written |= (1 << 19);
25136     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25137   }
25138 frvbf_media_overflow (current_cpu, 8);
25139 }
25140 } else {
25141   {
25142     UDI opval = tmp_tmp;
25143     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
25144     written |= (1 << 19);
25145     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25146   }
25147 }
25148 }
25149 }
25150 {
25151   DI tmp_tmp;
25152   tmp_tmp = ADDDI (GET_H_ACC40U (((FLD (f_ACC40Uk)) + (1))), MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo)));
25153 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
25154 {
25155   {
25156     UDI opval = MAKEDI (255, 0xffffffff);
25157     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
25158     written |= (1 << 20);
25159     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25160   }
25161 frvbf_media_overflow (current_cpu, 4);
25162 }
25163 } else {
25164 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
25165 {
25166   {
25167     UDI opval = MAKEDI (0, 0);
25168     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
25169     written |= (1 << 20);
25170     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25171   }
25172 frvbf_media_overflow (current_cpu, 4);
25173 }
25174 } else {
25175   {
25176     UDI opval = tmp_tmp;
25177     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
25178     written |= (1 << 20);
25179     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25180   }
25181 }
25182 }
25183 }
25184 {
25185   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25186   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25187   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25188   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25189 }
25190 {
25191   DI tmp_tmp;
25192   tmp_tmp = ADDDI (GET_H_ACC40U (((FLD (f_ACC40Uk)) + (2))), MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi)));
25193 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
25194 {
25195   {
25196     UDI opval = MAKEDI (255, 0xffffffff);
25197     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (2)), opval);
25198     written |= (1 << 21);
25199     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25200   }
25201 frvbf_media_overflow (current_cpu, 2);
25202 }
25203 } else {
25204 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
25205 {
25206   {
25207     UDI opval = MAKEDI (0, 0);
25208     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (2)), opval);
25209     written |= (1 << 21);
25210     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25211   }
25212 frvbf_media_overflow (current_cpu, 2);
25213 }
25214 } else {
25215   {
25216     UDI opval = tmp_tmp;
25217     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (2)), opval);
25218     written |= (1 << 21);
25219     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25220   }
25221 }
25222 }
25223 }
25224 {
25225   DI tmp_tmp;
25226   tmp_tmp = ADDDI (GET_H_ACC40U (((FLD (f_ACC40Uk)) + (3))), MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo)));
25227 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
25228 {
25229   {
25230     UDI opval = MAKEDI (255, 0xffffffff);
25231     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (3)), opval);
25232     written |= (1 << 22);
25233     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25234   }
25235 frvbf_media_overflow (current_cpu, 1);
25236 }
25237 } else {
25238 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
25239 {
25240   {
25241     UDI opval = MAKEDI (0, 0);
25242     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (3)), opval);
25243     written |= (1 << 22);
25244     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25245   }
25246 frvbf_media_overflow (current_cpu, 1);
25247 }
25248 } else {
25249   {
25250     UDI opval = tmp_tmp;
25251     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (3)), opval);
25252     written |= (1 << 22);
25253     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25254   }
25255 }
25256 }
25257 }
25258 }
25259 }
25260 }
25261 }
25262
25263   abuf->written = written;
25264   return vpc;
25265 #undef FLD
25266 }
25267
25268 /* mqxmachs: mqxmachs$pack $FRintieven,$FRintjeven,$ACC40Sk */
25269
25270 static SEM_PC
25271 SEM_FN_NAME (frvbf,mqxmachs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
25272 {
25273 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
25274   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
25275   int UNUSED written = 0;
25276   IADDR UNUSED pc = abuf->addr;
25277   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
25278
25279 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
25280 frvbf_media_acc_not_aligned (current_cpu);
25281 } else {
25282 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
25283 frvbf_media_register_not_aligned (current_cpu);
25284 } else {
25285 {
25286   HI tmp_argihi;
25287   HI tmp_argilo;
25288   HI tmp_argjhi;
25289   HI tmp_argjlo;
25290 {
25291   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25292   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25293   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25294   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25295 }
25296 {
25297   DI tmp_tmp;
25298   tmp_tmp = ADDDI (GET_H_ACC40S (((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, ((FLD (f_ACC40Sk)) + (2)), opval);
25304     written |= (1 << 19);
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, ((FLD (f_ACC40Sk)) + (2)), opval);
25315     written |= (1 << 19);
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, ((FLD (f_ACC40Sk)) + (2)), opval);
25324     written |= (1 << 19);
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 (((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, ((FLD (f_ACC40Sk)) + (3)), opval);
25338     written |= (1 << 20);
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, ((FLD (f_ACC40Sk)) + (3)), opval);
25349     written |= (1 << 20);
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, ((FLD (f_ACC40Sk)) + (3)), opval);
25358     written |= (1 << 20);
25359     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25360   }
25361 }
25362 }
25363 }
25364 {
25365   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25366   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25367   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25368   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25369 }
25370 {
25371   DI tmp_tmp;
25372   tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Sk)), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi)));
25373 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25374 {
25375   {
25376     DI opval = MAKEDI (127, 0xffffffff);
25377     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25378     written |= (1 << 17);
25379     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25380   }
25381 frvbf_media_overflow (current_cpu, 8);
25382 }
25383 } else {
25384 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25385 {
25386   {
25387     DI opval = MAKEDI (0xffffff80, 0);
25388     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25389     written |= (1 << 17);
25390     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25391   }
25392 frvbf_media_overflow (current_cpu, 8);
25393 }
25394 } else {
25395   {
25396     DI opval = tmp_tmp;
25397     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25398     written |= (1 << 17);
25399     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25400   }
25401 }
25402 }
25403 }
25404 {
25405   DI tmp_tmp;
25406   tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (1))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo)));
25407 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25408 {
25409   {
25410     DI opval = MAKEDI (127, 0xffffffff);
25411     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
25412     written |= (1 << 18);
25413     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25414   }
25415 frvbf_media_overflow (current_cpu, 4);
25416 }
25417 } else {
25418 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25419 {
25420   {
25421     DI opval = MAKEDI (0xffffff80, 0);
25422     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
25423     written |= (1 << 18);
25424     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25425   }
25426 frvbf_media_overflow (current_cpu, 4);
25427 }
25428 } else {
25429   {
25430     DI opval = tmp_tmp;
25431     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
25432     written |= (1 << 18);
25433     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25434   }
25435 }
25436 }
25437 }
25438 }
25439 }
25440 }
25441
25442   abuf->written = written;
25443   return vpc;
25444 #undef FLD
25445 }
25446
25447 /* mqxmacxhs: mqxmacxhs$pack $FRintieven,$FRintjeven,$ACC40Sk */
25448
25449 static SEM_PC
25450 SEM_FN_NAME (frvbf,mqxmacxhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
25451 {
25452 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
25453   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
25454   int UNUSED written = 0;
25455   IADDR UNUSED pc = abuf->addr;
25456   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
25457
25458 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
25459 frvbf_media_acc_not_aligned (current_cpu);
25460 } else {
25461 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
25462 frvbf_media_register_not_aligned (current_cpu);
25463 } else {
25464 {
25465   HI tmp_argihi;
25466   HI tmp_argilo;
25467   HI tmp_argjhi;
25468   HI tmp_argjlo;
25469 {
25470   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25471   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25472   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25473   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25474 }
25475 {
25476   DI tmp_tmp;
25477   tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (2))), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo)));
25478 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25479 {
25480   {
25481     DI opval = MAKEDI (127, 0xffffffff);
25482     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
25483     written |= (1 << 19);
25484     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25485   }
25486 frvbf_media_overflow (current_cpu, 2);
25487 }
25488 } else {
25489 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25490 {
25491   {
25492     DI opval = MAKEDI (0xffffff80, 0);
25493     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
25494     written |= (1 << 19);
25495     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25496   }
25497 frvbf_media_overflow (current_cpu, 2);
25498 }
25499 } else {
25500   {
25501     DI opval = tmp_tmp;
25502     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
25503     written |= (1 << 19);
25504     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25505   }
25506 }
25507 }
25508 }
25509 {
25510   DI tmp_tmp;
25511   tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (3))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi)));
25512 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25513 {
25514   {
25515     DI opval = MAKEDI (127, 0xffffffff);
25516     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
25517     written |= (1 << 20);
25518     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25519   }
25520 frvbf_media_overflow (current_cpu, 1);
25521 }
25522 } else {
25523 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25524 {
25525   {
25526     DI opval = MAKEDI (0xffffff80, 0);
25527     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
25528     written |= (1 << 20);
25529     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25530   }
25531 frvbf_media_overflow (current_cpu, 1);
25532 }
25533 } else {
25534   {
25535     DI opval = tmp_tmp;
25536     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
25537     written |= (1 << 20);
25538     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25539   }
25540 }
25541 }
25542 }
25543 {
25544   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25545   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25546   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25547   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25548 }
25549 {
25550   DI tmp_tmp;
25551   tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Sk)), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo)));
25552 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25553 {
25554   {
25555     DI opval = MAKEDI (127, 0xffffffff);
25556     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25557     written |= (1 << 17);
25558     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25559   }
25560 frvbf_media_overflow (current_cpu, 8);
25561 }
25562 } else {
25563 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25564 {
25565   {
25566     DI opval = MAKEDI (0xffffff80, 0);
25567     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25568     written |= (1 << 17);
25569     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25570   }
25571 frvbf_media_overflow (current_cpu, 8);
25572 }
25573 } else {
25574   {
25575     DI opval = tmp_tmp;
25576     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25577     written |= (1 << 17);
25578     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25579   }
25580 }
25581 }
25582 }
25583 {
25584   DI tmp_tmp;
25585   tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (1))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi)));
25586 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25587 {
25588   {
25589     DI opval = MAKEDI (127, 0xffffffff);
25590     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
25591     written |= (1 << 18);
25592     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25593   }
25594 frvbf_media_overflow (current_cpu, 4);
25595 }
25596 } else {
25597 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25598 {
25599   {
25600     DI opval = MAKEDI (0xffffff80, 0);
25601     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
25602     written |= (1 << 18);
25603     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25604   }
25605 frvbf_media_overflow (current_cpu, 4);
25606 }
25607 } else {
25608   {
25609     DI opval = tmp_tmp;
25610     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
25611     written |= (1 << 18);
25612     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25613   }
25614 }
25615 }
25616 }
25617 }
25618 }
25619 }
25620
25621   abuf->written = written;
25622   return vpc;
25623 #undef FLD
25624 }
25625
25626 /* mqmacxhs: mqmacxhs$pack $FRintieven,$FRintjeven,$ACC40Sk */
25627
25628 static SEM_PC
25629 SEM_FN_NAME (frvbf,mqmacxhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
25630 {
25631 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
25632   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
25633   int UNUSED written = 0;
25634   IADDR UNUSED pc = abuf->addr;
25635   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
25636
25637 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
25638 frvbf_media_acc_not_aligned (current_cpu);
25639 } else {
25640 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
25641 frvbf_media_register_not_aligned (current_cpu);
25642 } else {
25643 {
25644   HI tmp_argihi;
25645   HI tmp_argilo;
25646   HI tmp_argjhi;
25647   HI tmp_argjlo;
25648 {
25649   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25650   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25651   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25652   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25653 }
25654 {
25655   DI tmp_tmp;
25656   tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Sk)), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo)));
25657 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25658 {
25659   {
25660     DI opval = MAKEDI (127, 0xffffffff);
25661     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25662     written |= (1 << 17);
25663     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25664   }
25665 frvbf_media_overflow (current_cpu, 8);
25666 }
25667 } else {
25668 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25669 {
25670   {
25671     DI opval = MAKEDI (0xffffff80, 0);
25672     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25673     written |= (1 << 17);
25674     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25675   }
25676 frvbf_media_overflow (current_cpu, 8);
25677 }
25678 } else {
25679   {
25680     DI opval = tmp_tmp;
25681     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25682     written |= (1 << 17);
25683     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25684   }
25685 }
25686 }
25687 }
25688 {
25689   DI tmp_tmp;
25690   tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (1))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi)));
25691 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25692 {
25693   {
25694     DI opval = MAKEDI (127, 0xffffffff);
25695     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
25696     written |= (1 << 18);
25697     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25698   }
25699 frvbf_media_overflow (current_cpu, 4);
25700 }
25701 } else {
25702 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25703 {
25704   {
25705     DI opval = MAKEDI (0xffffff80, 0);
25706     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
25707     written |= (1 << 18);
25708     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25709   }
25710 frvbf_media_overflow (current_cpu, 4);
25711 }
25712 } else {
25713   {
25714     DI opval = tmp_tmp;
25715     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
25716     written |= (1 << 18);
25717     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25718   }
25719 }
25720 }
25721 }
25722 {
25723   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25724   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25725   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25726   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25727 }
25728 {
25729   DI tmp_tmp;
25730   tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (2))), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo)));
25731 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25732 {
25733   {
25734     DI opval = MAKEDI (127, 0xffffffff);
25735     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
25736     written |= (1 << 19);
25737     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25738   }
25739 frvbf_media_overflow (current_cpu, 2);
25740 }
25741 } else {
25742 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25743 {
25744   {
25745     DI opval = MAKEDI (0xffffff80, 0);
25746     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
25747     written |= (1 << 19);
25748     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25749   }
25750 frvbf_media_overflow (current_cpu, 2);
25751 }
25752 } else {
25753   {
25754     DI opval = tmp_tmp;
25755     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
25756     written |= (1 << 19);
25757     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25758   }
25759 }
25760 }
25761 }
25762 {
25763   DI tmp_tmp;
25764   tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (3))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi)));
25765 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25766 {
25767   {
25768     DI opval = MAKEDI (127, 0xffffffff);
25769     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
25770     written |= (1 << 20);
25771     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25772   }
25773 frvbf_media_overflow (current_cpu, 1);
25774 }
25775 } else {
25776 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25777 {
25778   {
25779     DI opval = MAKEDI (0xffffff80, 0);
25780     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
25781     written |= (1 << 20);
25782     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25783   }
25784 frvbf_media_overflow (current_cpu, 1);
25785 }
25786 } else {
25787   {
25788     DI opval = tmp_tmp;
25789     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
25790     written |= (1 << 20);
25791     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25792   }
25793 }
25794 }
25795 }
25796 }
25797 }
25798 }
25799
25800   abuf->written = written;
25801   return vpc;
25802 #undef FLD
25803 }
25804
25805 /* mcpxrs: mcpxrs$pack $FRinti,$FRintj,$ACC40Sk */
25806
25807 static SEM_PC
25808 SEM_FN_NAME (frvbf,mcpxrs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
25809 {
25810 #define FLD(f) abuf->fields.sfmt_cmmachs.f
25811   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
25812   int UNUSED written = 0;
25813   IADDR UNUSED pc = abuf->addr;
25814   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
25815
25816 {
25817   HI tmp_argihi;
25818   HI tmp_argilo;
25819   HI tmp_argjhi;
25820   HI tmp_argjlo;
25821 {
25822   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25823   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25824   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25825   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25826 }
25827 {
25828   DI tmp_tmp1;
25829   DI tmp_tmp2;
25830   tmp_tmp1 = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
25831   tmp_tmp2 = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
25832   tmp_tmp1 = SUBDI (tmp_tmp1, tmp_tmp2);
25833 if (GTDI (tmp_tmp1, MAKEDI (127, 0xffffffff))) {
25834 {
25835   {
25836     DI opval = MAKEDI (127, 0xffffffff);
25837     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25838     written |= (1 << 8);
25839     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25840   }
25841 frvbf_media_overflow (current_cpu, 8);
25842 }
25843 } else {
25844 if (LTDI (tmp_tmp1, MAKEDI (0xffffff80, 0))) {
25845 {
25846   {
25847     DI opval = MAKEDI (0xffffff80, 0);
25848     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25849     written |= (1 << 8);
25850     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25851   }
25852 frvbf_media_overflow (current_cpu, 8);
25853 }
25854 } else {
25855   {
25856     DI opval = tmp_tmp1;
25857     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25858     written |= (1 << 8);
25859     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25860   }
25861 }
25862 }
25863 }
25864 }
25865
25866   abuf->written = written;
25867   return vpc;
25868 #undef FLD
25869 }
25870
25871 /* mcpxru: mcpxru$pack $FRinti,$FRintj,$ACC40Sk */
25872
25873 static SEM_PC
25874 SEM_FN_NAME (frvbf,mcpxru) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
25875 {
25876 #define FLD(f) abuf->fields.sfmt_cmmachs.f
25877   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
25878   int UNUSED written = 0;
25879   IADDR UNUSED pc = abuf->addr;
25880   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
25881
25882 {
25883   UHI tmp_argihi;
25884   UHI tmp_argilo;
25885   UHI tmp_argjhi;
25886   UHI tmp_argjlo;
25887 {
25888   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25889   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25890   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25891   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25892 }
25893 {
25894   DI tmp_tmp1;
25895   DI tmp_tmp2;
25896   tmp_tmp1 = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
25897   tmp_tmp2 = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
25898   tmp_tmp1 = SUBDI (tmp_tmp1, tmp_tmp2);
25899 if (GTDI (tmp_tmp1, MAKEDI (255, 0xffffffff))) {
25900 {
25901   {
25902     DI opval = MAKEDI (255, 0xffffffff);
25903     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25904     written |= (1 << 8);
25905     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25906   }
25907 frvbf_media_overflow (current_cpu, 8);
25908 }
25909 } else {
25910 if (LTDI (tmp_tmp1, MAKEDI (0, 0))) {
25911 {
25912   {
25913     DI opval = MAKEDI (0, 0);
25914     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25915     written |= (1 << 8);
25916     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25917   }
25918 frvbf_media_overflow (current_cpu, 8);
25919 }
25920 } else {
25921   {
25922     DI opval = tmp_tmp1;
25923     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25924     written |= (1 << 8);
25925     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25926   }
25927 }
25928 }
25929 }
25930 }
25931
25932   abuf->written = written;
25933   return vpc;
25934 #undef FLD
25935 }
25936
25937 /* mcpxis: mcpxis$pack $FRinti,$FRintj,$ACC40Sk */
25938
25939 static SEM_PC
25940 SEM_FN_NAME (frvbf,mcpxis) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
25941 {
25942 #define FLD(f) abuf->fields.sfmt_cmmachs.f
25943   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
25944   int UNUSED written = 0;
25945   IADDR UNUSED pc = abuf->addr;
25946   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
25947
25948 {
25949   HI tmp_argihi;
25950   HI tmp_argilo;
25951   HI tmp_argjhi;
25952   HI tmp_argjlo;
25953 {
25954   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25955   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25956   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25957   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25958 }
25959 {
25960   DI tmp_tmp1;
25961   DI tmp_tmp2;
25962   tmp_tmp1 = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo));
25963   tmp_tmp2 = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi));
25964   tmp_tmp1 = ADDDI (tmp_tmp1, tmp_tmp2);
25965 if (GTDI (tmp_tmp1, MAKEDI (127, 0xffffffff))) {
25966 {
25967   {
25968     DI opval = MAKEDI (127, 0xffffffff);
25969     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25970     written |= (1 << 8);
25971     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25972   }
25973 frvbf_media_overflow (current_cpu, 8);
25974 }
25975 } else {
25976 if (LTDI (tmp_tmp1, MAKEDI (0xffffff80, 0))) {
25977 {
25978   {
25979     DI opval = MAKEDI (0xffffff80, 0);
25980     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25981     written |= (1 << 8);
25982     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25983   }
25984 frvbf_media_overflow (current_cpu, 8);
25985 }
25986 } else {
25987   {
25988     DI opval = tmp_tmp1;
25989     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25990     written |= (1 << 8);
25991     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25992   }
25993 }
25994 }
25995 }
25996 }
25997
25998   abuf->written = written;
25999   return vpc;
26000 #undef FLD
26001 }
26002
26003 /* mcpxiu: mcpxiu$pack $FRinti,$FRintj,$ACC40Sk */
26004
26005 static SEM_PC
26006 SEM_FN_NAME (frvbf,mcpxiu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26007 {
26008 #define FLD(f) abuf->fields.sfmt_cmmachs.f
26009   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26010   int UNUSED written = 0;
26011   IADDR UNUSED pc = abuf->addr;
26012   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26013
26014 {
26015   UHI tmp_argihi;
26016   UHI tmp_argilo;
26017   UHI tmp_argjhi;
26018   UHI tmp_argjlo;
26019 {
26020   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26021   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26022   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26023   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26024 }
26025 {
26026   DI tmp_tmp1;
26027   DI tmp_tmp2;
26028   tmp_tmp1 = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjlo));
26029   tmp_tmp2 = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjhi));
26030   tmp_tmp1 = ADDDI (tmp_tmp1, tmp_tmp2);
26031 if (GTDI (tmp_tmp1, MAKEDI (255, 0xffffffff))) {
26032 {
26033   {
26034     DI opval = MAKEDI (255, 0xffffffff);
26035     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26036     written |= (1 << 8);
26037     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26038   }
26039 frvbf_media_overflow (current_cpu, 8);
26040 }
26041 } else {
26042 if (LTDI (tmp_tmp1, MAKEDI (0, 0))) {
26043 {
26044   {
26045     DI opval = MAKEDI (0, 0);
26046     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26047     written |= (1 << 8);
26048     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26049   }
26050 frvbf_media_overflow (current_cpu, 8);
26051 }
26052 } else {
26053   {
26054     DI opval = tmp_tmp1;
26055     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26056     written |= (1 << 8);
26057     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26058   }
26059 }
26060 }
26061 }
26062 }
26063
26064   abuf->written = written;
26065   return vpc;
26066 #undef FLD
26067 }
26068
26069 /* cmcpxrs: cmcpxrs$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
26070
26071 static SEM_PC
26072 SEM_FN_NAME (frvbf,cmcpxrs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26073 {
26074 #define FLD(f) abuf->fields.sfmt_cmmachs.f
26075   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26076   int UNUSED written = 0;
26077   IADDR UNUSED pc = abuf->addr;
26078   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26079
26080 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
26081 {
26082   HI tmp_argihi;
26083   HI tmp_argilo;
26084   HI tmp_argjhi;
26085   HI tmp_argjlo;
26086 {
26087   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26088   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26089   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26090   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26091 }
26092 {
26093   DI tmp_tmp1;
26094   DI tmp_tmp2;
26095   tmp_tmp1 = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
26096   tmp_tmp2 = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
26097   tmp_tmp1 = SUBDI (tmp_tmp1, tmp_tmp2);
26098 if (GTDI (tmp_tmp1, MAKEDI (127, 0xffffffff))) {
26099 {
26100   {
26101     DI opval = MAKEDI (127, 0xffffffff);
26102     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26103     written |= (1 << 10);
26104     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26105   }
26106 frvbf_media_overflow (current_cpu, 8);
26107 }
26108 } else {
26109 if (LTDI (tmp_tmp1, MAKEDI (0xffffff80, 0))) {
26110 {
26111   {
26112     DI opval = MAKEDI (0xffffff80, 0);
26113     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26114     written |= (1 << 10);
26115     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26116   }
26117 frvbf_media_overflow (current_cpu, 8);
26118 }
26119 } else {
26120   {
26121     DI opval = tmp_tmp1;
26122     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26123     written |= (1 << 10);
26124     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26125   }
26126 }
26127 }
26128 }
26129 }
26130 }
26131
26132   abuf->written = written;
26133   return vpc;
26134 #undef FLD
26135 }
26136
26137 /* cmcpxru: cmcpxru$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
26138
26139 static SEM_PC
26140 SEM_FN_NAME (frvbf,cmcpxru) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26141 {
26142 #define FLD(f) abuf->fields.sfmt_cmmachs.f
26143   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26144   int UNUSED written = 0;
26145   IADDR UNUSED pc = abuf->addr;
26146   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26147
26148 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
26149 {
26150   UHI tmp_argihi;
26151   UHI tmp_argilo;
26152   UHI tmp_argjhi;
26153   UHI tmp_argjlo;
26154 {
26155   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26156   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26157   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26158   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26159 }
26160 {
26161   DI tmp_tmp1;
26162   DI tmp_tmp2;
26163   tmp_tmp1 = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
26164   tmp_tmp2 = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
26165   tmp_tmp1 = SUBDI (tmp_tmp1, tmp_tmp2);
26166 if (GTDI (tmp_tmp1, MAKEDI (255, 0xffffffff))) {
26167 {
26168   {
26169     DI opval = MAKEDI (255, 0xffffffff);
26170     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26171     written |= (1 << 10);
26172     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26173   }
26174 frvbf_media_overflow (current_cpu, 8);
26175 }
26176 } else {
26177 if (LTDI (tmp_tmp1, MAKEDI (0, 0))) {
26178 {
26179   {
26180     DI opval = MAKEDI (0, 0);
26181     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26182     written |= (1 << 10);
26183     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26184   }
26185 frvbf_media_overflow (current_cpu, 8);
26186 }
26187 } else {
26188   {
26189     DI opval = tmp_tmp1;
26190     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26191     written |= (1 << 10);
26192     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26193   }
26194 }
26195 }
26196 }
26197 }
26198 }
26199
26200   abuf->written = written;
26201   return vpc;
26202 #undef FLD
26203 }
26204
26205 /* cmcpxis: cmcpxis$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
26206
26207 static SEM_PC
26208 SEM_FN_NAME (frvbf,cmcpxis) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26209 {
26210 #define FLD(f) abuf->fields.sfmt_cmmachs.f
26211   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26212   int UNUSED written = 0;
26213   IADDR UNUSED pc = abuf->addr;
26214   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26215
26216 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
26217 {
26218   HI tmp_argihi;
26219   HI tmp_argilo;
26220   HI tmp_argjhi;
26221   HI tmp_argjlo;
26222 {
26223   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26224   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26225   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26226   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26227 }
26228 {
26229   DI tmp_tmp1;
26230   DI tmp_tmp2;
26231   tmp_tmp1 = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo));
26232   tmp_tmp2 = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi));
26233   tmp_tmp1 = ADDDI (tmp_tmp1, tmp_tmp2);
26234 if (GTDI (tmp_tmp1, MAKEDI (127, 0xffffffff))) {
26235 {
26236   {
26237     DI opval = MAKEDI (127, 0xffffffff);
26238     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26239     written |= (1 << 10);
26240     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26241   }
26242 frvbf_media_overflow (current_cpu, 8);
26243 }
26244 } else {
26245 if (LTDI (tmp_tmp1, MAKEDI (0xffffff80, 0))) {
26246 {
26247   {
26248     DI opval = MAKEDI (0xffffff80, 0);
26249     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26250     written |= (1 << 10);
26251     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26252   }
26253 frvbf_media_overflow (current_cpu, 8);
26254 }
26255 } else {
26256   {
26257     DI opval = tmp_tmp1;
26258     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26259     written |= (1 << 10);
26260     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26261   }
26262 }
26263 }
26264 }
26265 }
26266 }
26267
26268   abuf->written = written;
26269   return vpc;
26270 #undef FLD
26271 }
26272
26273 /* cmcpxiu: cmcpxiu$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
26274
26275 static SEM_PC
26276 SEM_FN_NAME (frvbf,cmcpxiu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26277 {
26278 #define FLD(f) abuf->fields.sfmt_cmmachs.f
26279   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26280   int UNUSED written = 0;
26281   IADDR UNUSED pc = abuf->addr;
26282   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26283
26284 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
26285 {
26286   UHI tmp_argihi;
26287   UHI tmp_argilo;
26288   UHI tmp_argjhi;
26289   UHI tmp_argjlo;
26290 {
26291   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26292   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26293   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26294   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26295 }
26296 {
26297   DI tmp_tmp1;
26298   DI tmp_tmp2;
26299   tmp_tmp1 = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjlo));
26300   tmp_tmp2 = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjhi));
26301   tmp_tmp1 = ADDDI (tmp_tmp1, tmp_tmp2);
26302 if (GTDI (tmp_tmp1, MAKEDI (255, 0xffffffff))) {
26303 {
26304   {
26305     DI opval = MAKEDI (255, 0xffffffff);
26306     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26307     written |= (1 << 10);
26308     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26309   }
26310 frvbf_media_overflow (current_cpu, 8);
26311 }
26312 } else {
26313 if (LTDI (tmp_tmp1, MAKEDI (0, 0))) {
26314 {
26315   {
26316     DI opval = MAKEDI (0, 0);
26317     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26318     written |= (1 << 10);
26319     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26320   }
26321 frvbf_media_overflow (current_cpu, 8);
26322 }
26323 } else {
26324   {
26325     DI opval = tmp_tmp1;
26326     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26327     written |= (1 << 10);
26328     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26329   }
26330 }
26331 }
26332 }
26333 }
26334 }
26335
26336   abuf->written = written;
26337   return vpc;
26338 #undef FLD
26339 }
26340
26341 /* mqcpxrs: mqcpxrs$pack $FRintieven,$FRintjeven,$ACC40Sk */
26342
26343 static SEM_PC
26344 SEM_FN_NAME (frvbf,mqcpxrs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26345 {
26346 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
26347   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26348   int UNUSED written = 0;
26349   IADDR UNUSED pc = abuf->addr;
26350   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26351
26352 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
26353 frvbf_media_acc_not_aligned (current_cpu);
26354 } else {
26355 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
26356 frvbf_media_register_not_aligned (current_cpu);
26357 } else {
26358 {
26359   HI tmp_argihi;
26360   HI tmp_argilo;
26361   HI tmp_argjhi;
26362   HI tmp_argjlo;
26363 {
26364   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26365   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26366   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26367   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26368 }
26369 {
26370   DI tmp_tmp1;
26371   DI tmp_tmp2;
26372   tmp_tmp1 = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
26373   tmp_tmp2 = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
26374   tmp_tmp1 = SUBDI (tmp_tmp1, tmp_tmp2);
26375 if (GTDI (tmp_tmp1, MAKEDI (127, 0xffffffff))) {
26376 {
26377   {
26378     DI opval = MAKEDI (127, 0xffffffff);
26379     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26380     written |= (1 << 13);
26381     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26382   }
26383 frvbf_media_overflow (current_cpu, 8);
26384 }
26385 } else {
26386 if (LTDI (tmp_tmp1, MAKEDI (0xffffff80, 0))) {
26387 {
26388   {
26389     DI opval = MAKEDI (0xffffff80, 0);
26390     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26391     written |= (1 << 13);
26392     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26393   }
26394 frvbf_media_overflow (current_cpu, 8);
26395 }
26396 } else {
26397   {
26398     DI opval = tmp_tmp1;
26399     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26400     written |= (1 << 13);
26401     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26402   }
26403 }
26404 }
26405 }
26406 {
26407   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26408   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26409   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26410   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26411 }
26412 {
26413   DI tmp_tmp1;
26414   DI tmp_tmp2;
26415   tmp_tmp1 = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
26416   tmp_tmp2 = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
26417   tmp_tmp1 = SUBDI (tmp_tmp1, tmp_tmp2);
26418 if (GTDI (tmp_tmp1, MAKEDI (127, 0xffffffff))) {
26419 {
26420   {
26421     DI opval = MAKEDI (127, 0xffffffff);
26422     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
26423     written |= (1 << 14);
26424     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26425   }
26426 frvbf_media_overflow (current_cpu, 4);
26427 }
26428 } else {
26429 if (LTDI (tmp_tmp1, MAKEDI (0xffffff80, 0))) {
26430 {
26431   {
26432     DI opval = MAKEDI (0xffffff80, 0);
26433     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
26434     written |= (1 << 14);
26435     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26436   }
26437 frvbf_media_overflow (current_cpu, 4);
26438 }
26439 } else {
26440   {
26441     DI opval = tmp_tmp1;
26442     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
26443     written |= (1 << 14);
26444     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26445   }
26446 }
26447 }
26448 }
26449 }
26450 }
26451 }
26452
26453   abuf->written = written;
26454   return vpc;
26455 #undef FLD
26456 }
26457
26458 /* mqcpxru: mqcpxru$pack $FRintieven,$FRintjeven,$ACC40Sk */
26459
26460 static SEM_PC
26461 SEM_FN_NAME (frvbf,mqcpxru) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26462 {
26463 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
26464   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26465   int UNUSED written = 0;
26466   IADDR UNUSED pc = abuf->addr;
26467   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26468
26469 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
26470 frvbf_media_acc_not_aligned (current_cpu);
26471 } else {
26472 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
26473 frvbf_media_register_not_aligned (current_cpu);
26474 } else {
26475 {
26476   UHI tmp_argihi;
26477   UHI tmp_argilo;
26478   UHI tmp_argjhi;
26479   UHI tmp_argjlo;
26480 {
26481   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26482   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26483   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26484   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26485 }
26486 {
26487   DI tmp_tmp1;
26488   DI tmp_tmp2;
26489   tmp_tmp1 = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
26490   tmp_tmp2 = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
26491   tmp_tmp1 = SUBDI (tmp_tmp1, tmp_tmp2);
26492 if (GTDI (tmp_tmp1, MAKEDI (255, 0xffffffff))) {
26493 {
26494   {
26495     DI opval = MAKEDI (255, 0xffffffff);
26496     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26497     written |= (1 << 13);
26498     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26499   }
26500 frvbf_media_overflow (current_cpu, 8);
26501 }
26502 } else {
26503 if (LTDI (tmp_tmp1, MAKEDI (0, 0))) {
26504 {
26505   {
26506     DI opval = MAKEDI (0, 0);
26507     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26508     written |= (1 << 13);
26509     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26510   }
26511 frvbf_media_overflow (current_cpu, 8);
26512 }
26513 } else {
26514   {
26515     DI opval = tmp_tmp1;
26516     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26517     written |= (1 << 13);
26518     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26519   }
26520 }
26521 }
26522 }
26523 {
26524   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26525   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26526   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26527   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26528 }
26529 {
26530   DI tmp_tmp1;
26531   DI tmp_tmp2;
26532   tmp_tmp1 = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
26533   tmp_tmp2 = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
26534   tmp_tmp1 = SUBDI (tmp_tmp1, tmp_tmp2);
26535 if (GTDI (tmp_tmp1, MAKEDI (255, 0xffffffff))) {
26536 {
26537   {
26538     DI opval = MAKEDI (255, 0xffffffff);
26539     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
26540     written |= (1 << 14);
26541     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26542   }
26543 frvbf_media_overflow (current_cpu, 4);
26544 }
26545 } else {
26546 if (LTDI (tmp_tmp1, MAKEDI (0, 0))) {
26547 {
26548   {
26549     DI opval = MAKEDI (0, 0);
26550     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
26551     written |= (1 << 14);
26552     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26553   }
26554 frvbf_media_overflow (current_cpu, 4);
26555 }
26556 } else {
26557   {
26558     DI opval = tmp_tmp1;
26559     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
26560     written |= (1 << 14);
26561     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26562   }
26563 }
26564 }
26565 }
26566 }
26567 }
26568 }
26569
26570   abuf->written = written;
26571   return vpc;
26572 #undef FLD
26573 }
26574
26575 /* mqcpxis: mqcpxis$pack $FRintieven,$FRintjeven,$ACC40Sk */
26576
26577 static SEM_PC
26578 SEM_FN_NAME (frvbf,mqcpxis) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26579 {
26580 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
26581   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26582   int UNUSED written = 0;
26583   IADDR UNUSED pc = abuf->addr;
26584   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26585
26586 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
26587 frvbf_media_acc_not_aligned (current_cpu);
26588 } else {
26589 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
26590 frvbf_media_register_not_aligned (current_cpu);
26591 } else {
26592 {
26593   HI tmp_argihi;
26594   HI tmp_argilo;
26595   HI tmp_argjhi;
26596   HI tmp_argjlo;
26597 {
26598   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26599   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26600   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26601   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26602 }
26603 {
26604   DI tmp_tmp1;
26605   DI tmp_tmp2;
26606   tmp_tmp1 = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo));
26607   tmp_tmp2 = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi));
26608   tmp_tmp1 = ADDDI (tmp_tmp1, tmp_tmp2);
26609 if (GTDI (tmp_tmp1, MAKEDI (127, 0xffffffff))) {
26610 {
26611   {
26612     DI opval = MAKEDI (127, 0xffffffff);
26613     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26614     written |= (1 << 13);
26615     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26616   }
26617 frvbf_media_overflow (current_cpu, 8);
26618 }
26619 } else {
26620 if (LTDI (tmp_tmp1, MAKEDI (0xffffff80, 0))) {
26621 {
26622   {
26623     DI opval = MAKEDI (0xffffff80, 0);
26624     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26625     written |= (1 << 13);
26626     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26627   }
26628 frvbf_media_overflow (current_cpu, 8);
26629 }
26630 } else {
26631   {
26632     DI opval = tmp_tmp1;
26633     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26634     written |= (1 << 13);
26635     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26636   }
26637 }
26638 }
26639 }
26640 {
26641   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26642   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26643   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26644   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26645 }
26646 {
26647   DI tmp_tmp1;
26648   DI tmp_tmp2;
26649   tmp_tmp1 = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo));
26650   tmp_tmp2 = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi));
26651   tmp_tmp1 = ADDDI (tmp_tmp1, tmp_tmp2);
26652 if (GTDI (tmp_tmp1, MAKEDI (127, 0xffffffff))) {
26653 {
26654   {
26655     DI opval = MAKEDI (127, 0xffffffff);
26656     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
26657     written |= (1 << 14);
26658     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26659   }
26660 frvbf_media_overflow (current_cpu, 4);
26661 }
26662 } else {
26663 if (LTDI (tmp_tmp1, MAKEDI (0xffffff80, 0))) {
26664 {
26665   {
26666     DI opval = MAKEDI (0xffffff80, 0);
26667     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
26668     written |= (1 << 14);
26669     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26670   }
26671 frvbf_media_overflow (current_cpu, 4);
26672 }
26673 } else {
26674   {
26675     DI opval = tmp_tmp1;
26676     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
26677     written |= (1 << 14);
26678     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26679   }
26680 }
26681 }
26682 }
26683 }
26684 }
26685 }
26686
26687   abuf->written = written;
26688   return vpc;
26689 #undef FLD
26690 }
26691
26692 /* mqcpxiu: mqcpxiu$pack $FRintieven,$FRintjeven,$ACC40Sk */
26693
26694 static SEM_PC
26695 SEM_FN_NAME (frvbf,mqcpxiu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26696 {
26697 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
26698   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26699   int UNUSED written = 0;
26700   IADDR UNUSED pc = abuf->addr;
26701   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26702
26703 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
26704 frvbf_media_acc_not_aligned (current_cpu);
26705 } else {
26706 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
26707 frvbf_media_register_not_aligned (current_cpu);
26708 } else {
26709 {
26710   UHI tmp_argihi;
26711   UHI tmp_argilo;
26712   UHI tmp_argjhi;
26713   UHI tmp_argjlo;
26714 {
26715   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26716   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26717   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26718   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26719 }
26720 {
26721   DI tmp_tmp1;
26722   DI tmp_tmp2;
26723   tmp_tmp1 = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjlo));
26724   tmp_tmp2 = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjhi));
26725   tmp_tmp1 = ADDDI (tmp_tmp1, tmp_tmp2);
26726 if (GTDI (tmp_tmp1, MAKEDI (255, 0xffffffff))) {
26727 {
26728   {
26729     DI opval = MAKEDI (255, 0xffffffff);
26730     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26731     written |= (1 << 13);
26732     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26733   }
26734 frvbf_media_overflow (current_cpu, 8);
26735 }
26736 } else {
26737 if (LTDI (tmp_tmp1, MAKEDI (0, 0))) {
26738 {
26739   {
26740     DI opval = MAKEDI (0, 0);
26741     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26742     written |= (1 << 13);
26743     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26744   }
26745 frvbf_media_overflow (current_cpu, 8);
26746 }
26747 } else {
26748   {
26749     DI opval = tmp_tmp1;
26750     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26751     written |= (1 << 13);
26752     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26753   }
26754 }
26755 }
26756 }
26757 {
26758   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26759   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26760   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26761   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26762 }
26763 {
26764   DI tmp_tmp1;
26765   DI tmp_tmp2;
26766   tmp_tmp1 = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjlo));
26767   tmp_tmp2 = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjhi));
26768   tmp_tmp1 = ADDDI (tmp_tmp1, tmp_tmp2);
26769 if (GTDI (tmp_tmp1, MAKEDI (255, 0xffffffff))) {
26770 {
26771   {
26772     DI opval = MAKEDI (255, 0xffffffff);
26773     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
26774     written |= (1 << 14);
26775     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26776   }
26777 frvbf_media_overflow (current_cpu, 4);
26778 }
26779 } else {
26780 if (LTDI (tmp_tmp1, MAKEDI (0, 0))) {
26781 {
26782   {
26783     DI opval = MAKEDI (0, 0);
26784     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
26785     written |= (1 << 14);
26786     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26787   }
26788 frvbf_media_overflow (current_cpu, 4);
26789 }
26790 } else {
26791   {
26792     DI opval = tmp_tmp1;
26793     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
26794     written |= (1 << 14);
26795     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26796   }
26797 }
26798 }
26799 }
26800 }
26801 }
26802 }
26803
26804   abuf->written = written;
26805   return vpc;
26806 #undef FLD
26807 }
26808
26809 /* mexpdhw: mexpdhw$pack $FRinti,$u6,$FRintk */
26810
26811 static SEM_PC
26812 SEM_FN_NAME (frvbf,mexpdhw) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26813 {
26814 #define FLD(f) abuf->fields.sfmt_cmexpdhw.f
26815   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26816   int UNUSED written = 0;
26817   IADDR UNUSED pc = abuf->addr;
26818   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26819
26820 {
26821   UHI tmp_tmp;
26822 if (ANDSI (FLD (f_u6), 1)) {
26823   tmp_tmp = GET_H_FR_LO (((FLD (f_FRi)) + (0)));
26824 } else {
26825   tmp_tmp = GET_H_FR_HI (((FLD (f_FRi)) + (0)));
26826 }
26827   {
26828     UHI opval = tmp_tmp;
26829     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
26830     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
26831   }
26832   {
26833     UHI opval = tmp_tmp;
26834     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
26835     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
26836   }
26837 }
26838
26839   return vpc;
26840 #undef FLD
26841 }
26842
26843 /* cmexpdhw: cmexpdhw$pack $FRinti,$u6,$FRintk,$CCi,$cond */
26844
26845 static SEM_PC
26846 SEM_FN_NAME (frvbf,cmexpdhw) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26847 {
26848 #define FLD(f) abuf->fields.sfmt_cmexpdhw.f
26849   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26850   int UNUSED written = 0;
26851   IADDR UNUSED pc = abuf->addr;
26852   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26853
26854 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
26855 {
26856   UHI tmp_tmp;
26857 if (ANDSI (FLD (f_u6), 1)) {
26858   tmp_tmp = GET_H_FR_LO (((FLD (f_FRi)) + (0)));
26859 } else {
26860   tmp_tmp = GET_H_FR_HI (((FLD (f_FRi)) + (0)));
26861 }
26862   {
26863     UHI opval = tmp_tmp;
26864     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
26865     written |= (1 << 7);
26866     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
26867   }
26868   {
26869     UHI opval = tmp_tmp;
26870     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
26871     written |= (1 << 8);
26872     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
26873   }
26874 }
26875 }
26876
26877   abuf->written = written;
26878   return vpc;
26879 #undef FLD
26880 }
26881
26882 /* mexpdhd: mexpdhd$pack $FRinti,$u6,$FRintkeven */
26883
26884 static SEM_PC
26885 SEM_FN_NAME (frvbf,mexpdhd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26886 {
26887 #define FLD(f) abuf->fields.sfmt_cmexpdhd.f
26888   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26889   int UNUSED written = 0;
26890   IADDR UNUSED pc = abuf->addr;
26891   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26892
26893 if (ANDSI (FLD (f_FRk), SUBSI (2, 1))) {
26894 frvbf_media_register_not_aligned (current_cpu);
26895 } else {
26896 {
26897   UHI tmp_tmp;
26898   {
26899     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
26900     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
26901     written |= (1 << 6);
26902     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
26903   }
26904 if (ANDSI (FLD (f_u6), 1)) {
26905   tmp_tmp = GET_H_FR_LO (((FLD (f_FRi)) + (0)));
26906 } else {
26907   tmp_tmp = GET_H_FR_HI (((FLD (f_FRi)) + (0)));
26908 }
26909   {
26910     UHI opval = tmp_tmp;
26911     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
26912     written |= (1 << 7);
26913     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
26914   }
26915   {
26916     UHI opval = tmp_tmp;
26917     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
26918     written |= (1 << 9);
26919     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
26920   }
26921   {
26922     UHI opval = tmp_tmp;
26923     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
26924     written |= (1 << 8);
26925     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
26926   }
26927   {
26928     UHI opval = tmp_tmp;
26929     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
26930     written |= (1 << 10);
26931     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
26932   }
26933 }
26934 }
26935
26936   abuf->written = written;
26937   return vpc;
26938 #undef FLD
26939 }
26940
26941 /* cmexpdhd: cmexpdhd$pack $FRinti,$u6,$FRintkeven,$CCi,$cond */
26942
26943 static SEM_PC
26944 SEM_FN_NAME (frvbf,cmexpdhd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26945 {
26946 #define FLD(f) abuf->fields.sfmt_cmexpdhd.f
26947   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26948   int UNUSED written = 0;
26949   IADDR UNUSED pc = abuf->addr;
26950   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26951
26952 if (ANDSI (FLD (f_FRk), SUBSI (2, 1))) {
26953 frvbf_media_register_not_aligned (current_cpu);
26954 } else {
26955 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
26956 {
26957   UHI tmp_tmp;
26958   {
26959     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
26960     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
26961     written |= (1 << 8);
26962     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
26963   }
26964 if (ANDSI (FLD (f_u6), 1)) {
26965   tmp_tmp = GET_H_FR_LO (((FLD (f_FRi)) + (0)));
26966 } else {
26967   tmp_tmp = GET_H_FR_HI (((FLD (f_FRi)) + (0)));
26968 }
26969   {
26970     UHI opval = tmp_tmp;
26971     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
26972     written |= (1 << 9);
26973     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
26974   }
26975   {
26976     UHI opval = tmp_tmp;
26977     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
26978     written |= (1 << 11);
26979     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
26980   }
26981   {
26982     UHI opval = tmp_tmp;
26983     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
26984     written |= (1 << 10);
26985     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
26986   }
26987   {
26988     UHI opval = tmp_tmp;
26989     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
26990     written |= (1 << 12);
26991     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
26992   }
26993 }
26994 }
26995 }
26996
26997   abuf->written = written;
26998   return vpc;
26999 #undef FLD
27000 }
27001
27002 /* mpackh: mpackh$pack $FRinti,$FRintj,$FRintk */
27003
27004 static SEM_PC
27005 SEM_FN_NAME (frvbf,mpackh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27006 {
27007 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
27008   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27009   int UNUSED written = 0;
27010   IADDR UNUSED pc = abuf->addr;
27011   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27012
27013 {
27014   {
27015     UHI opval = GET_H_FR_LO (((FLD (f_FRi)) + (0)));
27016     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
27017     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27018   }
27019   {
27020     UHI opval = GET_H_FR_LO (((FLD (f_FRj)) + (0)));
27021     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
27022     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27023   }
27024 }
27025
27026   return vpc;
27027 #undef FLD
27028 }
27029
27030 /* mdpackh: mdpackh$pack $FRintieven,$FRintjeven,$FRintkeven */
27031
27032 static SEM_PC
27033 SEM_FN_NAME (frvbf,mdpackh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27034 {
27035 #define FLD(f) abuf->fields.sfmt_mdpackh.f
27036   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27037   int UNUSED written = 0;
27038   IADDR UNUSED pc = abuf->addr;
27039   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27040
27041 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
27042 frvbf_media_register_not_aligned (current_cpu);
27043 } else {
27044 {
27045   {
27046     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRi)));
27047     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRi), opval);
27048     written |= (1 << 10);
27049     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27050   }
27051   {
27052     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRj)));
27053     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRj), opval);
27054     written |= (1 << 11);
27055     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27056   }
27057   {
27058     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27059     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27060     written |= (1 << 12);
27061     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27062   }
27063 {
27064   {
27065     UHI opval = GET_H_FR_LO (((FLD (f_FRi)) + (0)));
27066     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
27067     written |= (1 << 13);
27068     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27069   }
27070   {
27071     UHI opval = GET_H_FR_LO (((FLD (f_FRj)) + (0)));
27072     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
27073     written |= (1 << 15);
27074     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27075   }
27076 }
27077 {
27078   {
27079     UHI opval = GET_H_FR_LO (((FLD (f_FRi)) + (1)));
27080     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
27081     written |= (1 << 14);
27082     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27083   }
27084   {
27085     UHI opval = GET_H_FR_LO (((FLD (f_FRj)) + (1)));
27086     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
27087     written |= (1 << 16);
27088     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27089   }
27090 }
27091 }
27092 }
27093
27094   abuf->written = written;
27095   return vpc;
27096 #undef FLD
27097 }
27098
27099 /* munpackh: munpackh$pack $FRinti,$FRintkeven */
27100
27101 static SEM_PC
27102 SEM_FN_NAME (frvbf,munpackh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27103 {
27104 #define FLD(f) abuf->fields.sfmt_munpackh.f
27105   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27106   int UNUSED written = 0;
27107   IADDR UNUSED pc = abuf->addr;
27108   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27109
27110 if (ANDSI (FLD (f_FRk), SUBSI (2, 1))) {
27111 frvbf_media_register_not_aligned (current_cpu);
27112 } else {
27113 {
27114   {
27115     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRi)));
27116     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRi), opval);
27117     written |= (1 << 6);
27118     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27119   }
27120   {
27121     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27122     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27123     written |= (1 << 7);
27124     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27125   }
27126 {
27127   {
27128     UHI opval = GET_H_FR_HI (((FLD (f_FRi)) + (0)));
27129     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
27130     written |= (1 << 8);
27131     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27132   }
27133   {
27134     UHI opval = GET_H_FR_HI (((FLD (f_FRi)) + (0)));
27135     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
27136     written |= (1 << 10);
27137     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27138   }
27139   {
27140     UHI opval = GET_H_FR_LO (((FLD (f_FRi)) + (0)));
27141     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (ADDSI (0, 1))), opval);
27142     written |= (1 << 9);
27143     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27144   }
27145   {
27146     UHI opval = GET_H_FR_LO (((FLD (f_FRi)) + (0)));
27147     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (ADDSI (0, 1))), opval);
27148     written |= (1 << 11);
27149     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27150   }
27151 }
27152 }
27153 }
27154
27155   abuf->written = written;
27156   return vpc;
27157 #undef FLD
27158 }
27159
27160 /* mdunpackh: mdunpackh$pack $FRintieven,$FRintk */
27161
27162 static SEM_PC
27163 SEM_FN_NAME (frvbf,mdunpackh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27164 {
27165 #define FLD(f) abuf->fields.sfmt_mdunpackh.f
27166   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27167   int UNUSED written = 0;
27168   IADDR UNUSED pc = abuf->addr;
27169   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27170
27171 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (4, 1)))) {
27172 frvbf_media_register_not_aligned (current_cpu);
27173 } else {
27174 {
27175   {
27176     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRi)));
27177     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRi), opval);
27178     written |= (1 << 8);
27179     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27180   }
27181   {
27182     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27183     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27184     written |= (1 << 9);
27185     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27186   }
27187 {
27188   {
27189     UHI opval = GET_H_FR_HI (((FLD (f_FRi)) + (0)));
27190     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
27191     written |= (1 << 10);
27192     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27193   }
27194   {
27195     UHI opval = GET_H_FR_HI (((FLD (f_FRi)) + (0)));
27196     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
27197     written |= (1 << 14);
27198     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27199   }
27200   {
27201     UHI opval = GET_H_FR_LO (((FLD (f_FRi)) + (0)));
27202     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (ADDSI (0, 1))), opval);
27203     written |= (1 << 12);
27204     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27205   }
27206   {
27207     UHI opval = GET_H_FR_LO (((FLD (f_FRi)) + (0)));
27208     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (ADDSI (0, 1))), opval);
27209     written |= (1 << 16);
27210     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27211   }
27212 }
27213 {
27214   {
27215     UHI opval = GET_H_FR_HI (((FLD (f_FRi)) + (1)));
27216     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (2)), opval);
27217     written |= (1 << 11);
27218     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27219   }
27220   {
27221     UHI opval = GET_H_FR_HI (((FLD (f_FRi)) + (1)));
27222     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (2)), opval);
27223     written |= (1 << 15);
27224     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27225   }
27226   {
27227     UHI opval = GET_H_FR_LO (((FLD (f_FRi)) + (1)));
27228     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (ADDSI (2, 1))), opval);
27229     written |= (1 << 13);
27230     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27231   }
27232   {
27233     UHI opval = GET_H_FR_LO (((FLD (f_FRi)) + (1)));
27234     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (ADDSI (2, 1))), opval);
27235     written |= (1 << 17);
27236     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27237   }
27238 }
27239 }
27240 }
27241
27242   abuf->written = written;
27243   return vpc;
27244 #undef FLD
27245 }
27246
27247 /* mbtoh: mbtoh$pack $FRintj,$FRintkeven */
27248
27249 static SEM_PC
27250 SEM_FN_NAME (frvbf,mbtoh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27251 {
27252 #define FLD(f) abuf->fields.sfmt_cmbtoh.f
27253   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27254   int UNUSED written = 0;
27255   IADDR UNUSED pc = abuf->addr;
27256   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27257
27258 {
27259   {
27260     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRj)));
27261     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRj), opval);
27262     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27263   }
27264   {
27265     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27266     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27267     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27268   }
27269 if (ANDSI (FLD (f_FRk), SUBSI (2, 1))) {
27270 frvbf_media_register_not_aligned (current_cpu);
27271 } else {
27272 {
27273   {
27274     UHI opval = GET_H_FR_3 (((FLD (f_FRj)) + (0)));
27275     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
27276     written |= (1 << 10);
27277     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27278   }
27279   {
27280     UHI opval = GET_H_FR_2 (((FLD (f_FRj)) + (0)));
27281     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
27282     written |= (1 << 12);
27283     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27284   }
27285   {
27286     UHI opval = GET_H_FR_1 (((FLD (f_FRj)) + (0)));
27287     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
27288     written |= (1 << 11);
27289     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27290   }
27291   {
27292     UHI opval = GET_H_FR_0 (((FLD (f_FRj)) + (0)));
27293     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
27294     written |= (1 << 13);
27295     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27296   }
27297 }
27298 }
27299 }
27300
27301   abuf->written = written;
27302   return vpc;
27303 #undef FLD
27304 }
27305
27306 /* cmbtoh: cmbtoh$pack $FRintj,$FRintkeven,$CCi,$cond */
27307
27308 static SEM_PC
27309 SEM_FN_NAME (frvbf,cmbtoh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27310 {
27311 #define FLD(f) abuf->fields.sfmt_cmbtoh.f
27312   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27313   int UNUSED written = 0;
27314   IADDR UNUSED pc = abuf->addr;
27315   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27316
27317 {
27318   {
27319     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRj)));
27320     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRj), opval);
27321     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27322   }
27323   {
27324     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27325     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27326     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27327   }
27328 if (ANDSI (FLD (f_FRk), SUBSI (2, 1))) {
27329 frvbf_media_register_not_aligned (current_cpu);
27330 } else {
27331 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
27332 {
27333   {
27334     UHI opval = GET_H_FR_3 (((FLD (f_FRj)) + (0)));
27335     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
27336     written |= (1 << 12);
27337     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27338   }
27339   {
27340     UHI opval = GET_H_FR_2 (((FLD (f_FRj)) + (0)));
27341     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
27342     written |= (1 << 14);
27343     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27344   }
27345   {
27346     UHI opval = GET_H_FR_1 (((FLD (f_FRj)) + (0)));
27347     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
27348     written |= (1 << 13);
27349     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27350   }
27351   {
27352     UHI opval = GET_H_FR_0 (((FLD (f_FRj)) + (0)));
27353     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
27354     written |= (1 << 15);
27355     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27356   }
27357 }
27358 }
27359 }
27360 }
27361
27362   abuf->written = written;
27363   return vpc;
27364 #undef FLD
27365 }
27366
27367 /* mhtob: mhtob$pack $FRintjeven,$FRintk */
27368
27369 static SEM_PC
27370 SEM_FN_NAME (frvbf,mhtob) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27371 {
27372 #define FLD(f) abuf->fields.sfmt_cmhtob.f
27373   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27374   int UNUSED written = 0;
27375   IADDR UNUSED pc = abuf->addr;
27376   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27377
27378 {
27379   {
27380     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRj)));
27381     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRj), opval);
27382     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27383   }
27384   {
27385     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27386     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27387     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27388   }
27389 if (ANDSI (FLD (f_FRj), SUBSI (2, 1))) {
27390 frvbf_media_register_not_aligned (current_cpu);
27391 } else {
27392 {
27393   {
27394     UHI opval = GET_H_FR_HI (((FLD (f_FRj)) + (0)));
27395     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_3_set, ((FLD (f_FRk)) + (0)), opval);
27396     written |= (1 << 13);
27397     TRACE_RESULT (current_cpu, abuf, "fr_3", 'x', opval);
27398   }
27399   {
27400     UHI opval = GET_H_FR_LO (((FLD (f_FRj)) + (0)));
27401     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_2_set, ((FLD (f_FRk)) + (0)), opval);
27402     written |= (1 << 12);
27403     TRACE_RESULT (current_cpu, abuf, "fr_2", 'x', opval);
27404   }
27405   {
27406     UHI opval = GET_H_FR_HI (((FLD (f_FRj)) + (1)));
27407     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_1_set, ((FLD (f_FRk)) + (0)), opval);
27408     written |= (1 << 11);
27409     TRACE_RESULT (current_cpu, abuf, "fr_1", 'x', opval);
27410   }
27411   {
27412     UHI opval = GET_H_FR_LO (((FLD (f_FRj)) + (1)));
27413     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_0_set, ((FLD (f_FRk)) + (0)), opval);
27414     written |= (1 << 10);
27415     TRACE_RESULT (current_cpu, abuf, "fr_0", 'x', opval);
27416   }
27417 }
27418 }
27419 }
27420
27421   abuf->written = written;
27422   return vpc;
27423 #undef FLD
27424 }
27425
27426 /* cmhtob: cmhtob$pack $FRintjeven,$FRintk,$CCi,$cond */
27427
27428 static SEM_PC
27429 SEM_FN_NAME (frvbf,cmhtob) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27430 {
27431 #define FLD(f) abuf->fields.sfmt_cmhtob.f
27432   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27433   int UNUSED written = 0;
27434   IADDR UNUSED pc = abuf->addr;
27435   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27436
27437 {
27438   {
27439     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRj)));
27440     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRj), opval);
27441     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27442   }
27443   {
27444     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27445     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27446     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27447   }
27448 if (ANDSI (FLD (f_FRj), SUBSI (2, 1))) {
27449 frvbf_media_register_not_aligned (current_cpu);
27450 } else {
27451 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
27452 {
27453   {
27454     UHI opval = GET_H_FR_HI (((FLD (f_FRj)) + (0)));
27455     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_3_set, ((FLD (f_FRk)) + (0)), opval);
27456     written |= (1 << 15);
27457     TRACE_RESULT (current_cpu, abuf, "fr_3", 'x', opval);
27458   }
27459   {
27460     UHI opval = GET_H_FR_LO (((FLD (f_FRj)) + (0)));
27461     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_2_set, ((FLD (f_FRk)) + (0)), opval);
27462     written |= (1 << 14);
27463     TRACE_RESULT (current_cpu, abuf, "fr_2", 'x', opval);
27464   }
27465   {
27466     UHI opval = GET_H_FR_HI (((FLD (f_FRj)) + (1)));
27467     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_1_set, ((FLD (f_FRk)) + (0)), opval);
27468     written |= (1 << 13);
27469     TRACE_RESULT (current_cpu, abuf, "fr_1", 'x', opval);
27470   }
27471   {
27472     UHI opval = GET_H_FR_LO (((FLD (f_FRj)) + (1)));
27473     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_0_set, ((FLD (f_FRk)) + (0)), opval);
27474     written |= (1 << 12);
27475     TRACE_RESULT (current_cpu, abuf, "fr_0", 'x', opval);
27476   }
27477 }
27478 }
27479 }
27480 }
27481
27482   abuf->written = written;
27483   return vpc;
27484 #undef FLD
27485 }
27486
27487 /* mbtohe: mbtohe$pack $FRintj,$FRintk */
27488
27489 static SEM_PC
27490 SEM_FN_NAME (frvbf,mbtohe) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27491 {
27492 #define FLD(f) abuf->fields.sfmt_cmbtohe.f
27493   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27494   int UNUSED written = 0;
27495   IADDR UNUSED pc = abuf->addr;
27496   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27497
27498 {
27499   {
27500     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRj)));
27501     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRj), opval);
27502     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27503   }
27504   {
27505     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27506     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27507     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27508   }
27509 if (ANDSI (FLD (f_FRk), SUBSI (4, 1))) {
27510 frvbf_media_register_not_aligned (current_cpu);
27511 } else {
27512 {
27513   {
27514     UHI opval = GET_H_FR_3 (((FLD (f_FRj)) + (0)));
27515     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
27516     written |= (1 << 10);
27517     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27518   }
27519   {
27520     UHI opval = GET_H_FR_3 (((FLD (f_FRj)) + (0)));
27521     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
27522     written |= (1 << 14);
27523     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27524   }
27525   {
27526     UHI opval = GET_H_FR_2 (((FLD (f_FRj)) + (0)));
27527     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
27528     written |= (1 << 11);
27529     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27530   }
27531   {
27532     UHI opval = GET_H_FR_2 (((FLD (f_FRj)) + (0)));
27533     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
27534     written |= (1 << 15);
27535     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27536   }
27537   {
27538     UHI opval = GET_H_FR_1 (((FLD (f_FRj)) + (0)));
27539     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (2)), opval);
27540     written |= (1 << 12);
27541     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27542   }
27543   {
27544     UHI opval = GET_H_FR_1 (((FLD (f_FRj)) + (0)));
27545     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (2)), opval);
27546     written |= (1 << 16);
27547     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27548   }
27549   {
27550     UHI opval = GET_H_FR_0 (((FLD (f_FRj)) + (0)));
27551     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (3)), opval);
27552     written |= (1 << 13);
27553     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27554   }
27555   {
27556     UHI opval = GET_H_FR_0 (((FLD (f_FRj)) + (0)));
27557     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (3)), opval);
27558     written |= (1 << 17);
27559     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27560   }
27561 }
27562 }
27563 }
27564
27565   abuf->written = written;
27566   return vpc;
27567 #undef FLD
27568 }
27569
27570 /* cmbtohe: cmbtohe$pack $FRintj,$FRintk,$CCi,$cond */
27571
27572 static SEM_PC
27573 SEM_FN_NAME (frvbf,cmbtohe) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27574 {
27575 #define FLD(f) abuf->fields.sfmt_cmbtohe.f
27576   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27577   int UNUSED written = 0;
27578   IADDR UNUSED pc = abuf->addr;
27579   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27580
27581 {
27582   {
27583     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRj)));
27584     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRj), opval);
27585     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27586   }
27587   {
27588     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27589     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27590     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27591   }
27592 if (ANDSI (FLD (f_FRk), SUBSI (4, 1))) {
27593 frvbf_media_register_not_aligned (current_cpu);
27594 } else {
27595 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
27596 {
27597   {
27598     UHI opval = GET_H_FR_3 (((FLD (f_FRj)) + (0)));
27599     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
27600     written |= (1 << 12);
27601     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27602   }
27603   {
27604     UHI opval = GET_H_FR_3 (((FLD (f_FRj)) + (0)));
27605     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
27606     written |= (1 << 16);
27607     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27608   }
27609   {
27610     UHI opval = GET_H_FR_2 (((FLD (f_FRj)) + (0)));
27611     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
27612     written |= (1 << 13);
27613     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27614   }
27615   {
27616     UHI opval = GET_H_FR_2 (((FLD (f_FRj)) + (0)));
27617     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
27618     written |= (1 << 17);
27619     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27620   }
27621   {
27622     UHI opval = GET_H_FR_1 (((FLD (f_FRj)) + (0)));
27623     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (2)), opval);
27624     written |= (1 << 14);
27625     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27626   }
27627   {
27628     UHI opval = GET_H_FR_1 (((FLD (f_FRj)) + (0)));
27629     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (2)), opval);
27630     written |= (1 << 18);
27631     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27632   }
27633   {
27634     UHI opval = GET_H_FR_0 (((FLD (f_FRj)) + (0)));
27635     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (3)), opval);
27636     written |= (1 << 15);
27637     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27638   }
27639   {
27640     UHI opval = GET_H_FR_0 (((FLD (f_FRj)) + (0)));
27641     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (3)), opval);
27642     written |= (1 << 19);
27643     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27644   }
27645 }
27646 }
27647 }
27648 }
27649
27650   abuf->written = written;
27651   return vpc;
27652 #undef FLD
27653 }
27654
27655 /* mnop: mnop$pack */
27656
27657 static SEM_PC
27658 SEM_FN_NAME (frvbf,mnop) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27659 {
27660 #define FLD(f) abuf->fields.fmt_empty.f
27661   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27662   int UNUSED written = 0;
27663   IADDR UNUSED pc = abuf->addr;
27664   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27665
27666 ((void) 0); /*nop*/
27667
27668   return vpc;
27669 #undef FLD
27670 }
27671
27672 /* mclracc-0: mclracc$pack $ACC40Sk,$A0 */
27673
27674 static SEM_PC
27675 SEM_FN_NAME (frvbf,mclracc_0) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27676 {
27677 #define FLD(f) abuf->fields.sfmt_mdasaccs.f
27678   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27679   int UNUSED written = 0;
27680   IADDR UNUSED pc = abuf->addr;
27681   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27682
27683 frvbf_clear_accumulators (current_cpu, FLD (f_ACC40Sk), 0);
27684
27685   return vpc;
27686 #undef FLD
27687 }
27688
27689 /* mclracc-1: mclracc$pack $ACC40Sk,$A1 */
27690
27691 static SEM_PC
27692 SEM_FN_NAME (frvbf,mclracc_1) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27693 {
27694 #define FLD(f) abuf->fields.sfmt_mdasaccs.f
27695   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27696   int UNUSED written = 0;
27697   IADDR UNUSED pc = abuf->addr;
27698   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27699
27700 frvbf_clear_accumulators (current_cpu, FLD (f_ACC40Sk), 1);
27701
27702   return vpc;
27703 #undef FLD
27704 }
27705
27706 /* mrdacc: mrdacc$pack $ACC40Si,$FRintk */
27707
27708 static SEM_PC
27709 SEM_FN_NAME (frvbf,mrdacc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27710 {
27711 #define FLD(f) abuf->fields.sfmt_mcuti.f
27712   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27713   int UNUSED written = 0;
27714   IADDR UNUSED pc = abuf->addr;
27715   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27716
27717   {
27718     SI opval = GET_H_ACC40S (FLD (f_ACC40Si));
27719     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27720     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27721   }
27722
27723   return vpc;
27724 #undef FLD
27725 }
27726
27727 /* mrdaccg: mrdaccg$pack $ACCGi,$FRintk */
27728
27729 static SEM_PC
27730 SEM_FN_NAME (frvbf,mrdaccg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27731 {
27732 #define FLD(f) abuf->fields.sfmt_mrdaccg.f
27733   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27734   int UNUSED written = 0;
27735   IADDR UNUSED pc = abuf->addr;
27736   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27737
27738   {
27739     SI opval = GET_H_ACCG (FLD (f_ACCGi));
27740     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27741     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27742   }
27743
27744   return vpc;
27745 #undef FLD
27746 }
27747
27748 /* mwtacc: mwtacc$pack $FRinti,$ACC40Sk */
27749
27750 static SEM_PC
27751 SEM_FN_NAME (frvbf,mwtacc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27752 {
27753 #define FLD(f) abuf->fields.sfmt_cmmachs.f
27754   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27755   int UNUSED written = 0;
27756   IADDR UNUSED pc = abuf->addr;
27757   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27758
27759   {
27760     DI opval = ORDI (ANDDI (GET_H_ACC40S (FLD (f_ACC40Sk)), MAKEDI (0xffffffff, 0)), GET_H_FR_INT (FLD (f_FRi)));
27761     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
27762     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
27763   }
27764
27765   return vpc;
27766 #undef FLD
27767 }
27768
27769 /* mwtaccg: mwtaccg$pack $FRinti,$ACCGk */
27770
27771 static SEM_PC
27772 SEM_FN_NAME (frvbf,mwtaccg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27773 {
27774 #define FLD(f) abuf->fields.sfmt_mwtaccg.f
27775   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27776   int UNUSED written = 0;
27777   IADDR UNUSED pc = abuf->addr;
27778   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27779
27780   {
27781     USI opval = GET_H_FR_INT (FLD (f_FRi));
27782     sim_queue_fn_si_write (current_cpu, frvbf_h_accg_set, FLD (f_ACCGk), opval);
27783     TRACE_RESULT (current_cpu, abuf, "accg", 'x', opval);
27784   }
27785
27786   return vpc;
27787 #undef FLD
27788 }
27789
27790 /* mcop1: mcop1$pack $FRi,$FRj,$FRk */
27791
27792 static SEM_PC
27793 SEM_FN_NAME (frvbf,mcop1) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27794 {
27795 #define FLD(f) abuf->fields.fmt_empty.f
27796   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27797   int UNUSED written = 0;
27798   IADDR UNUSED pc = abuf->addr;
27799   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27800
27801 frvbf_media_cop (current_cpu, 1);
27802
27803   return vpc;
27804 #undef FLD
27805 }
27806
27807 /* mcop2: mcop2$pack $FRi,$FRj,$FRk */
27808
27809 static SEM_PC
27810 SEM_FN_NAME (frvbf,mcop2) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27811 {
27812 #define FLD(f) abuf->fields.fmt_empty.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 frvbf_media_cop (current_cpu, 2);
27819
27820   return vpc;
27821 #undef FLD
27822 }
27823
27824 /* fnop: fnop$pack */
27825
27826 static SEM_PC
27827 SEM_FN_NAME (frvbf,fnop) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27828 {
27829 #define FLD(f) abuf->fields.fmt_empty.f
27830   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27831   int UNUSED written = 0;
27832   IADDR UNUSED pc = abuf->addr;
27833   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27834
27835 ((void) 0); /*nop*/
27836
27837   return vpc;
27838 #undef FLD
27839 }
27840
27841 /* Table of all semantic fns.  */
27842
27843 static const struct sem_fn_desc sem_fns[] = {
27844   { FRVBF_INSN_X_INVALID, SEM_FN_NAME (frvbf,x_invalid) },
27845   { FRVBF_INSN_X_AFTER, SEM_FN_NAME (frvbf,x_after) },
27846   { FRVBF_INSN_X_BEFORE, SEM_FN_NAME (frvbf,x_before) },
27847   { FRVBF_INSN_X_CTI_CHAIN, SEM_FN_NAME (frvbf,x_cti_chain) },
27848   { FRVBF_INSN_X_CHAIN, SEM_FN_NAME (frvbf,x_chain) },
27849   { FRVBF_INSN_X_BEGIN, SEM_FN_NAME (frvbf,x_begin) },
27850   { FRVBF_INSN_ADD, SEM_FN_NAME (frvbf,add) },
27851   { FRVBF_INSN_SUB, SEM_FN_NAME (frvbf,sub) },
27852   { FRVBF_INSN_AND, SEM_FN_NAME (frvbf,and) },
27853   { FRVBF_INSN_OR, SEM_FN_NAME (frvbf,or) },
27854   { FRVBF_INSN_XOR, SEM_FN_NAME (frvbf,xor) },
27855   { FRVBF_INSN_NOT, SEM_FN_NAME (frvbf,not) },
27856   { FRVBF_INSN_SDIV, SEM_FN_NAME (frvbf,sdiv) },
27857   { FRVBF_INSN_NSDIV, SEM_FN_NAME (frvbf,nsdiv) },
27858   { FRVBF_INSN_UDIV, SEM_FN_NAME (frvbf,udiv) },
27859   { FRVBF_INSN_NUDIV, SEM_FN_NAME (frvbf,nudiv) },
27860   { FRVBF_INSN_SMUL, SEM_FN_NAME (frvbf,smul) },
27861   { FRVBF_INSN_UMUL, SEM_FN_NAME (frvbf,umul) },
27862   { FRVBF_INSN_SLL, SEM_FN_NAME (frvbf,sll) },
27863   { FRVBF_INSN_SRL, SEM_FN_NAME (frvbf,srl) },
27864   { FRVBF_INSN_SRA, SEM_FN_NAME (frvbf,sra) },
27865   { FRVBF_INSN_SCAN, SEM_FN_NAME (frvbf,scan) },
27866   { FRVBF_INSN_CADD, SEM_FN_NAME (frvbf,cadd) },
27867   { FRVBF_INSN_CSUB, SEM_FN_NAME (frvbf,csub) },
27868   { FRVBF_INSN_CAND, SEM_FN_NAME (frvbf,cand) },
27869   { FRVBF_INSN_COR, SEM_FN_NAME (frvbf,cor) },
27870   { FRVBF_INSN_CXOR, SEM_FN_NAME (frvbf,cxor) },
27871   { FRVBF_INSN_CNOT, SEM_FN_NAME (frvbf,cnot) },
27872   { FRVBF_INSN_CSMUL, SEM_FN_NAME (frvbf,csmul) },
27873   { FRVBF_INSN_CSDIV, SEM_FN_NAME (frvbf,csdiv) },
27874   { FRVBF_INSN_CUDIV, SEM_FN_NAME (frvbf,cudiv) },
27875   { FRVBF_INSN_CSLL, SEM_FN_NAME (frvbf,csll) },
27876   { FRVBF_INSN_CSRL, SEM_FN_NAME (frvbf,csrl) },
27877   { FRVBF_INSN_CSRA, SEM_FN_NAME (frvbf,csra) },
27878   { FRVBF_INSN_CSCAN, SEM_FN_NAME (frvbf,cscan) },
27879   { FRVBF_INSN_ADDCC, SEM_FN_NAME (frvbf,addcc) },
27880   { FRVBF_INSN_SUBCC, SEM_FN_NAME (frvbf,subcc) },
27881   { FRVBF_INSN_ANDCC, SEM_FN_NAME (frvbf,andcc) },
27882   { FRVBF_INSN_ORCC, SEM_FN_NAME (frvbf,orcc) },
27883   { FRVBF_INSN_XORCC, SEM_FN_NAME (frvbf,xorcc) },
27884   { FRVBF_INSN_SLLCC, SEM_FN_NAME (frvbf,sllcc) },
27885   { FRVBF_INSN_SRLCC, SEM_FN_NAME (frvbf,srlcc) },
27886   { FRVBF_INSN_SRACC, SEM_FN_NAME (frvbf,sracc) },
27887   { FRVBF_INSN_SMULCC, SEM_FN_NAME (frvbf,smulcc) },
27888   { FRVBF_INSN_UMULCC, SEM_FN_NAME (frvbf,umulcc) },
27889   { FRVBF_INSN_CADDCC, SEM_FN_NAME (frvbf,caddcc) },
27890   { FRVBF_INSN_CSUBCC, SEM_FN_NAME (frvbf,csubcc) },
27891   { FRVBF_INSN_CSMULCC, SEM_FN_NAME (frvbf,csmulcc) },
27892   { FRVBF_INSN_CANDCC, SEM_FN_NAME (frvbf,candcc) },
27893   { FRVBF_INSN_CORCC, SEM_FN_NAME (frvbf,corcc) },
27894   { FRVBF_INSN_CXORCC, SEM_FN_NAME (frvbf,cxorcc) },
27895   { FRVBF_INSN_CSLLCC, SEM_FN_NAME (frvbf,csllcc) },
27896   { FRVBF_INSN_CSRLCC, SEM_FN_NAME (frvbf,csrlcc) },
27897   { FRVBF_INSN_CSRACC, SEM_FN_NAME (frvbf,csracc) },
27898   { FRVBF_INSN_ADDX, SEM_FN_NAME (frvbf,addx) },
27899   { FRVBF_INSN_SUBX, SEM_FN_NAME (frvbf,subx) },
27900   { FRVBF_INSN_ADDXCC, SEM_FN_NAME (frvbf,addxcc) },
27901   { FRVBF_INSN_SUBXCC, SEM_FN_NAME (frvbf,subxcc) },
27902   { FRVBF_INSN_ADDI, SEM_FN_NAME (frvbf,addi) },
27903   { FRVBF_INSN_SUBI, SEM_FN_NAME (frvbf,subi) },
27904   { FRVBF_INSN_ANDI, SEM_FN_NAME (frvbf,andi) },
27905   { FRVBF_INSN_ORI, SEM_FN_NAME (frvbf,ori) },
27906   { FRVBF_INSN_XORI, SEM_FN_NAME (frvbf,xori) },
27907   { FRVBF_INSN_SDIVI, SEM_FN_NAME (frvbf,sdivi) },
27908   { FRVBF_INSN_NSDIVI, SEM_FN_NAME (frvbf,nsdivi) },
27909   { FRVBF_INSN_UDIVI, SEM_FN_NAME (frvbf,udivi) },
27910   { FRVBF_INSN_NUDIVI, SEM_FN_NAME (frvbf,nudivi) },
27911   { FRVBF_INSN_SMULI, SEM_FN_NAME (frvbf,smuli) },
27912   { FRVBF_INSN_UMULI, SEM_FN_NAME (frvbf,umuli) },
27913   { FRVBF_INSN_SLLI, SEM_FN_NAME (frvbf,slli) },
27914   { FRVBF_INSN_SRLI, SEM_FN_NAME (frvbf,srli) },
27915   { FRVBF_INSN_SRAI, SEM_FN_NAME (frvbf,srai) },
27916   { FRVBF_INSN_SCANI, SEM_FN_NAME (frvbf,scani) },
27917   { FRVBF_INSN_ADDICC, SEM_FN_NAME (frvbf,addicc) },
27918   { FRVBF_INSN_SUBICC, SEM_FN_NAME (frvbf,subicc) },
27919   { FRVBF_INSN_ANDICC, SEM_FN_NAME (frvbf,andicc) },
27920   { FRVBF_INSN_ORICC, SEM_FN_NAME (frvbf,oricc) },
27921   { FRVBF_INSN_XORICC, SEM_FN_NAME (frvbf,xoricc) },
27922   { FRVBF_INSN_SMULICC, SEM_FN_NAME (frvbf,smulicc) },
27923   { FRVBF_INSN_UMULICC, SEM_FN_NAME (frvbf,umulicc) },
27924   { FRVBF_INSN_SLLICC, SEM_FN_NAME (frvbf,sllicc) },
27925   { FRVBF_INSN_SRLICC, SEM_FN_NAME (frvbf,srlicc) },
27926   { FRVBF_INSN_SRAICC, SEM_FN_NAME (frvbf,sraicc) },
27927   { FRVBF_INSN_ADDXI, SEM_FN_NAME (frvbf,addxi) },
27928   { FRVBF_INSN_SUBXI, SEM_FN_NAME (frvbf,subxi) },
27929   { FRVBF_INSN_ADDXICC, SEM_FN_NAME (frvbf,addxicc) },
27930   { FRVBF_INSN_SUBXICC, SEM_FN_NAME (frvbf,subxicc) },
27931   { FRVBF_INSN_CMPB, SEM_FN_NAME (frvbf,cmpb) },
27932   { FRVBF_INSN_CMPBA, SEM_FN_NAME (frvbf,cmpba) },
27933   { FRVBF_INSN_SETLO, SEM_FN_NAME (frvbf,setlo) },
27934   { FRVBF_INSN_SETHI, SEM_FN_NAME (frvbf,sethi) },
27935   { FRVBF_INSN_SETLOS, SEM_FN_NAME (frvbf,setlos) },
27936   { FRVBF_INSN_LDSB, SEM_FN_NAME (frvbf,ldsb) },
27937   { FRVBF_INSN_LDUB, SEM_FN_NAME (frvbf,ldub) },
27938   { FRVBF_INSN_LDSH, SEM_FN_NAME (frvbf,ldsh) },
27939   { FRVBF_INSN_LDUH, SEM_FN_NAME (frvbf,lduh) },
27940   { FRVBF_INSN_LD, SEM_FN_NAME (frvbf,ld) },
27941   { FRVBF_INSN_LDBF, SEM_FN_NAME (frvbf,ldbf) },
27942   { FRVBF_INSN_LDHF, SEM_FN_NAME (frvbf,ldhf) },
27943   { FRVBF_INSN_LDF, SEM_FN_NAME (frvbf,ldf) },
27944   { FRVBF_INSN_LDC, SEM_FN_NAME (frvbf,ldc) },
27945   { FRVBF_INSN_NLDSB, SEM_FN_NAME (frvbf,nldsb) },
27946   { FRVBF_INSN_NLDUB, SEM_FN_NAME (frvbf,nldub) },
27947   { FRVBF_INSN_NLDSH, SEM_FN_NAME (frvbf,nldsh) },
27948   { FRVBF_INSN_NLDUH, SEM_FN_NAME (frvbf,nlduh) },
27949   { FRVBF_INSN_NLD, SEM_FN_NAME (frvbf,nld) },
27950   { FRVBF_INSN_NLDBF, SEM_FN_NAME (frvbf,nldbf) },
27951   { FRVBF_INSN_NLDHF, SEM_FN_NAME (frvbf,nldhf) },
27952   { FRVBF_INSN_NLDF, SEM_FN_NAME (frvbf,nldf) },
27953   { FRVBF_INSN_LDD, SEM_FN_NAME (frvbf,ldd) },
27954   { FRVBF_INSN_LDDF, SEM_FN_NAME (frvbf,lddf) },
27955   { FRVBF_INSN_LDDC, SEM_FN_NAME (frvbf,lddc) },
27956   { FRVBF_INSN_NLDD, SEM_FN_NAME (frvbf,nldd) },
27957   { FRVBF_INSN_NLDDF, SEM_FN_NAME (frvbf,nlddf) },
27958   { FRVBF_INSN_LDQ, SEM_FN_NAME (frvbf,ldq) },
27959   { FRVBF_INSN_LDQF, SEM_FN_NAME (frvbf,ldqf) },
27960   { FRVBF_INSN_LDQC, SEM_FN_NAME (frvbf,ldqc) },
27961   { FRVBF_INSN_NLDQ, SEM_FN_NAME (frvbf,nldq) },
27962   { FRVBF_INSN_NLDQF, SEM_FN_NAME (frvbf,nldqf) },
27963   { FRVBF_INSN_LDSBU, SEM_FN_NAME (frvbf,ldsbu) },
27964   { FRVBF_INSN_LDUBU, SEM_FN_NAME (frvbf,ldubu) },
27965   { FRVBF_INSN_LDSHU, SEM_FN_NAME (frvbf,ldshu) },
27966   { FRVBF_INSN_LDUHU, SEM_FN_NAME (frvbf,lduhu) },
27967   { FRVBF_INSN_LDU, SEM_FN_NAME (frvbf,ldu) },
27968   { FRVBF_INSN_NLDSBU, SEM_FN_NAME (frvbf,nldsbu) },
27969   { FRVBF_INSN_NLDUBU, SEM_FN_NAME (frvbf,nldubu) },
27970   { FRVBF_INSN_NLDSHU, SEM_FN_NAME (frvbf,nldshu) },
27971   { FRVBF_INSN_NLDUHU, SEM_FN_NAME (frvbf,nlduhu) },
27972   { FRVBF_INSN_NLDU, SEM_FN_NAME (frvbf,nldu) },
27973   { FRVBF_INSN_LDBFU, SEM_FN_NAME (frvbf,ldbfu) },
27974   { FRVBF_INSN_LDHFU, SEM_FN_NAME (frvbf,ldhfu) },
27975   { FRVBF_INSN_LDFU, SEM_FN_NAME (frvbf,ldfu) },
27976   { FRVBF_INSN_LDCU, SEM_FN_NAME (frvbf,ldcu) },
27977   { FRVBF_INSN_NLDBFU, SEM_FN_NAME (frvbf,nldbfu) },
27978   { FRVBF_INSN_NLDHFU, SEM_FN_NAME (frvbf,nldhfu) },
27979   { FRVBF_INSN_NLDFU, SEM_FN_NAME (frvbf,nldfu) },
27980   { FRVBF_INSN_LDDU, SEM_FN_NAME (frvbf,lddu) },
27981   { FRVBF_INSN_NLDDU, SEM_FN_NAME (frvbf,nlddu) },
27982   { FRVBF_INSN_LDDFU, SEM_FN_NAME (frvbf,lddfu) },
27983   { FRVBF_INSN_LDDCU, SEM_FN_NAME (frvbf,lddcu) },
27984   { FRVBF_INSN_NLDDFU, SEM_FN_NAME (frvbf,nlddfu) },
27985   { FRVBF_INSN_LDQU, SEM_FN_NAME (frvbf,ldqu) },
27986   { FRVBF_INSN_NLDQU, SEM_FN_NAME (frvbf,nldqu) },
27987   { FRVBF_INSN_LDQFU, SEM_FN_NAME (frvbf,ldqfu) },
27988   { FRVBF_INSN_LDQCU, SEM_FN_NAME (frvbf,ldqcu) },
27989   { FRVBF_INSN_NLDQFU, SEM_FN_NAME (frvbf,nldqfu) },
27990   { FRVBF_INSN_LDSBI, SEM_FN_NAME (frvbf,ldsbi) },
27991   { FRVBF_INSN_LDSHI, SEM_FN_NAME (frvbf,ldshi) },
27992   { FRVBF_INSN_LDI, SEM_FN_NAME (frvbf,ldi) },
27993   { FRVBF_INSN_LDUBI, SEM_FN_NAME (frvbf,ldubi) },
27994   { FRVBF_INSN_LDUHI, SEM_FN_NAME (frvbf,lduhi) },
27995   { FRVBF_INSN_LDBFI, SEM_FN_NAME (frvbf,ldbfi) },
27996   { FRVBF_INSN_LDHFI, SEM_FN_NAME (frvbf,ldhfi) },
27997   { FRVBF_INSN_LDFI, SEM_FN_NAME (frvbf,ldfi) },
27998   { FRVBF_INSN_NLDSBI, SEM_FN_NAME (frvbf,nldsbi) },
27999   { FRVBF_INSN_NLDUBI, SEM_FN_NAME (frvbf,nldubi) },
28000   { FRVBF_INSN_NLDSHI, SEM_FN_NAME (frvbf,nldshi) },
28001   { FRVBF_INSN_NLDUHI, SEM_FN_NAME (frvbf,nlduhi) },
28002   { FRVBF_INSN_NLDI, SEM_FN_NAME (frvbf,nldi) },
28003   { FRVBF_INSN_NLDBFI, SEM_FN_NAME (frvbf,nldbfi) },
28004   { FRVBF_INSN_NLDHFI, SEM_FN_NAME (frvbf,nldhfi) },
28005   { FRVBF_INSN_NLDFI, SEM_FN_NAME (frvbf,nldfi) },
28006   { FRVBF_INSN_LDDI, SEM_FN_NAME (frvbf,lddi) },
28007   { FRVBF_INSN_LDDFI, SEM_FN_NAME (frvbf,lddfi) },
28008   { FRVBF_INSN_NLDDI, SEM_FN_NAME (frvbf,nlddi) },
28009   { FRVBF_INSN_NLDDFI, SEM_FN_NAME (frvbf,nlddfi) },
28010   { FRVBF_INSN_LDQI, SEM_FN_NAME (frvbf,ldqi) },
28011   { FRVBF_INSN_LDQFI, SEM_FN_NAME (frvbf,ldqfi) },
28012   { FRVBF_INSN_NLDQI, SEM_FN_NAME (frvbf,nldqi) },
28013   { FRVBF_INSN_NLDQFI, SEM_FN_NAME (frvbf,nldqfi) },
28014   { FRVBF_INSN_STB, SEM_FN_NAME (frvbf,stb) },
28015   { FRVBF_INSN_STH, SEM_FN_NAME (frvbf,sth) },
28016   { FRVBF_INSN_ST, SEM_FN_NAME (frvbf,st) },
28017   { FRVBF_INSN_STBF, SEM_FN_NAME (frvbf,stbf) },
28018   { FRVBF_INSN_STHF, SEM_FN_NAME (frvbf,sthf) },
28019   { FRVBF_INSN_STF, SEM_FN_NAME (frvbf,stf) },
28020   { FRVBF_INSN_STC, SEM_FN_NAME (frvbf,stc) },
28021   { FRVBF_INSN_RSTB, SEM_FN_NAME (frvbf,rstb) },
28022   { FRVBF_INSN_RSTH, SEM_FN_NAME (frvbf,rsth) },
28023   { FRVBF_INSN_RST, SEM_FN_NAME (frvbf,rst) },
28024   { FRVBF_INSN_RSTBF, SEM_FN_NAME (frvbf,rstbf) },
28025   { FRVBF_INSN_RSTHF, SEM_FN_NAME (frvbf,rsthf) },
28026   { FRVBF_INSN_RSTF, SEM_FN_NAME (frvbf,rstf) },
28027   { FRVBF_INSN_STD, SEM_FN_NAME (frvbf,std) },
28028   { FRVBF_INSN_STDF, SEM_FN_NAME (frvbf,stdf) },
28029   { FRVBF_INSN_STDC, SEM_FN_NAME (frvbf,stdc) },
28030   { FRVBF_INSN_RSTD, SEM_FN_NAME (frvbf,rstd) },
28031   { FRVBF_INSN_RSTDF, SEM_FN_NAME (frvbf,rstdf) },
28032   { FRVBF_INSN_STQ, SEM_FN_NAME (frvbf,stq) },
28033   { FRVBF_INSN_STQF, SEM_FN_NAME (frvbf,stqf) },
28034   { FRVBF_INSN_STQC, SEM_FN_NAME (frvbf,stqc) },
28035   { FRVBF_INSN_RSTQ, SEM_FN_NAME (frvbf,rstq) },
28036   { FRVBF_INSN_RSTQF, SEM_FN_NAME (frvbf,rstqf) },
28037   { FRVBF_INSN_STBU, SEM_FN_NAME (frvbf,stbu) },
28038   { FRVBF_INSN_STHU, SEM_FN_NAME (frvbf,sthu) },
28039   { FRVBF_INSN_STU, SEM_FN_NAME (frvbf,stu) },
28040   { FRVBF_INSN_STBFU, SEM_FN_NAME (frvbf,stbfu) },
28041   { FRVBF_INSN_STHFU, SEM_FN_NAME (frvbf,sthfu) },
28042   { FRVBF_INSN_STFU, SEM_FN_NAME (frvbf,stfu) },
28043   { FRVBF_INSN_STCU, SEM_FN_NAME (frvbf,stcu) },
28044   { FRVBF_INSN_STDU, SEM_FN_NAME (frvbf,stdu) },
28045   { FRVBF_INSN_STDFU, SEM_FN_NAME (frvbf,stdfu) },
28046   { FRVBF_INSN_STDCU, SEM_FN_NAME (frvbf,stdcu) },
28047   { FRVBF_INSN_STQU, SEM_FN_NAME (frvbf,stqu) },
28048   { FRVBF_INSN_STQFU, SEM_FN_NAME (frvbf,stqfu) },
28049   { FRVBF_INSN_STQCU, SEM_FN_NAME (frvbf,stqcu) },
28050   { FRVBF_INSN_CLDSB, SEM_FN_NAME (frvbf,cldsb) },
28051   { FRVBF_INSN_CLDUB, SEM_FN_NAME (frvbf,cldub) },
28052   { FRVBF_INSN_CLDSH, SEM_FN_NAME (frvbf,cldsh) },
28053   { FRVBF_INSN_CLDUH, SEM_FN_NAME (frvbf,clduh) },
28054   { FRVBF_INSN_CLD, SEM_FN_NAME (frvbf,cld) },
28055   { FRVBF_INSN_CLDBF, SEM_FN_NAME (frvbf,cldbf) },
28056   { FRVBF_INSN_CLDHF, SEM_FN_NAME (frvbf,cldhf) },
28057   { FRVBF_INSN_CLDF, SEM_FN_NAME (frvbf,cldf) },
28058   { FRVBF_INSN_CLDD, SEM_FN_NAME (frvbf,cldd) },
28059   { FRVBF_INSN_CLDDF, SEM_FN_NAME (frvbf,clddf) },
28060   { FRVBF_INSN_CLDQ, SEM_FN_NAME (frvbf,cldq) },
28061   { FRVBF_INSN_CLDSBU, SEM_FN_NAME (frvbf,cldsbu) },
28062   { FRVBF_INSN_CLDUBU, SEM_FN_NAME (frvbf,cldubu) },
28063   { FRVBF_INSN_CLDSHU, SEM_FN_NAME (frvbf,cldshu) },
28064   { FRVBF_INSN_CLDUHU, SEM_FN_NAME (frvbf,clduhu) },
28065   { FRVBF_INSN_CLDU, SEM_FN_NAME (frvbf,cldu) },
28066   { FRVBF_INSN_CLDBFU, SEM_FN_NAME (frvbf,cldbfu) },
28067   { FRVBF_INSN_CLDHFU, SEM_FN_NAME (frvbf,cldhfu) },
28068   { FRVBF_INSN_CLDFU, SEM_FN_NAME (frvbf,cldfu) },
28069   { FRVBF_INSN_CLDDU, SEM_FN_NAME (frvbf,clddu) },
28070   { FRVBF_INSN_CLDDFU, SEM_FN_NAME (frvbf,clddfu) },
28071   { FRVBF_INSN_CLDQU, SEM_FN_NAME (frvbf,cldqu) },
28072   { FRVBF_INSN_CSTB, SEM_FN_NAME (frvbf,cstb) },
28073   { FRVBF_INSN_CSTH, SEM_FN_NAME (frvbf,csth) },
28074   { FRVBF_INSN_CST, SEM_FN_NAME (frvbf,cst) },
28075   { FRVBF_INSN_CSTBF, SEM_FN_NAME (frvbf,cstbf) },
28076   { FRVBF_INSN_CSTHF, SEM_FN_NAME (frvbf,csthf) },
28077   { FRVBF_INSN_CSTF, SEM_FN_NAME (frvbf,cstf) },
28078   { FRVBF_INSN_CSTD, SEM_FN_NAME (frvbf,cstd) },
28079   { FRVBF_INSN_CSTDF, SEM_FN_NAME (frvbf,cstdf) },
28080   { FRVBF_INSN_CSTQ, SEM_FN_NAME (frvbf,cstq) },
28081   { FRVBF_INSN_CSTBU, SEM_FN_NAME (frvbf,cstbu) },
28082   { FRVBF_INSN_CSTHU, SEM_FN_NAME (frvbf,csthu) },
28083   { FRVBF_INSN_CSTU, SEM_FN_NAME (frvbf,cstu) },
28084   { FRVBF_INSN_CSTBFU, SEM_FN_NAME (frvbf,cstbfu) },
28085   { FRVBF_INSN_CSTHFU, SEM_FN_NAME (frvbf,csthfu) },
28086   { FRVBF_INSN_CSTFU, SEM_FN_NAME (frvbf,cstfu) },
28087   { FRVBF_INSN_CSTDU, SEM_FN_NAME (frvbf,cstdu) },
28088   { FRVBF_INSN_CSTDFU, SEM_FN_NAME (frvbf,cstdfu) },
28089   { FRVBF_INSN_STBI, SEM_FN_NAME (frvbf,stbi) },
28090   { FRVBF_INSN_STHI, SEM_FN_NAME (frvbf,sthi) },
28091   { FRVBF_INSN_STI, SEM_FN_NAME (frvbf,sti) },
28092   { FRVBF_INSN_STBFI, SEM_FN_NAME (frvbf,stbfi) },
28093   { FRVBF_INSN_STHFI, SEM_FN_NAME (frvbf,sthfi) },
28094   { FRVBF_INSN_STFI, SEM_FN_NAME (frvbf,stfi) },
28095   { FRVBF_INSN_STDI, SEM_FN_NAME (frvbf,stdi) },
28096   { FRVBF_INSN_STDFI, SEM_FN_NAME (frvbf,stdfi) },
28097   { FRVBF_INSN_STQI, SEM_FN_NAME (frvbf,stqi) },
28098   { FRVBF_INSN_STQFI, SEM_FN_NAME (frvbf,stqfi) },
28099   { FRVBF_INSN_SWAP, SEM_FN_NAME (frvbf,swap) },
28100   { FRVBF_INSN_SWAPI, SEM_FN_NAME (frvbf,swapi) },
28101   { FRVBF_INSN_CSWAP, SEM_FN_NAME (frvbf,cswap) },
28102   { FRVBF_INSN_MOVGF, SEM_FN_NAME (frvbf,movgf) },
28103   { FRVBF_INSN_MOVFG, SEM_FN_NAME (frvbf,movfg) },
28104   { FRVBF_INSN_MOVGFD, SEM_FN_NAME (frvbf,movgfd) },
28105   { FRVBF_INSN_MOVFGD, SEM_FN_NAME (frvbf,movfgd) },
28106   { FRVBF_INSN_MOVGFQ, SEM_FN_NAME (frvbf,movgfq) },
28107   { FRVBF_INSN_MOVFGQ, SEM_FN_NAME (frvbf,movfgq) },
28108   { FRVBF_INSN_CMOVGF, SEM_FN_NAME (frvbf,cmovgf) },
28109   { FRVBF_INSN_CMOVFG, SEM_FN_NAME (frvbf,cmovfg) },
28110   { FRVBF_INSN_CMOVGFD, SEM_FN_NAME (frvbf,cmovgfd) },
28111   { FRVBF_INSN_CMOVFGD, SEM_FN_NAME (frvbf,cmovfgd) },
28112   { FRVBF_INSN_MOVGS, SEM_FN_NAME (frvbf,movgs) },
28113   { FRVBF_INSN_MOVSG, SEM_FN_NAME (frvbf,movsg) },
28114   { FRVBF_INSN_BRA, SEM_FN_NAME (frvbf,bra) },
28115   { FRVBF_INSN_BNO, SEM_FN_NAME (frvbf,bno) },
28116   { FRVBF_INSN_BEQ, SEM_FN_NAME (frvbf,beq) },
28117   { FRVBF_INSN_BNE, SEM_FN_NAME (frvbf,bne) },
28118   { FRVBF_INSN_BLE, SEM_FN_NAME (frvbf,ble) },
28119   { FRVBF_INSN_BGT, SEM_FN_NAME (frvbf,bgt) },
28120   { FRVBF_INSN_BLT, SEM_FN_NAME (frvbf,blt) },
28121   { FRVBF_INSN_BGE, SEM_FN_NAME (frvbf,bge) },
28122   { FRVBF_INSN_BLS, SEM_FN_NAME (frvbf,bls) },
28123   { FRVBF_INSN_BHI, SEM_FN_NAME (frvbf,bhi) },
28124   { FRVBF_INSN_BC, SEM_FN_NAME (frvbf,bc) },
28125   { FRVBF_INSN_BNC, SEM_FN_NAME (frvbf,bnc) },
28126   { FRVBF_INSN_BN, SEM_FN_NAME (frvbf,bn) },
28127   { FRVBF_INSN_BP, SEM_FN_NAME (frvbf,bp) },
28128   { FRVBF_INSN_BV, SEM_FN_NAME (frvbf,bv) },
28129   { FRVBF_INSN_BNV, SEM_FN_NAME (frvbf,bnv) },
28130   { FRVBF_INSN_FBRA, SEM_FN_NAME (frvbf,fbra) },
28131   { FRVBF_INSN_FBNO, SEM_FN_NAME (frvbf,fbno) },
28132   { FRVBF_INSN_FBNE, SEM_FN_NAME (frvbf,fbne) },
28133   { FRVBF_INSN_FBEQ, SEM_FN_NAME (frvbf,fbeq) },
28134   { FRVBF_INSN_FBLG, SEM_FN_NAME (frvbf,fblg) },
28135   { FRVBF_INSN_FBUE, SEM_FN_NAME (frvbf,fbue) },
28136   { FRVBF_INSN_FBUL, SEM_FN_NAME (frvbf,fbul) },
28137   { FRVBF_INSN_FBGE, SEM_FN_NAME (frvbf,fbge) },
28138   { FRVBF_INSN_FBLT, SEM_FN_NAME (frvbf,fblt) },
28139   { FRVBF_INSN_FBUGE, SEM_FN_NAME (frvbf,fbuge) },
28140   { FRVBF_INSN_FBUG, SEM_FN_NAME (frvbf,fbug) },
28141   { FRVBF_INSN_FBLE, SEM_FN_NAME (frvbf,fble) },
28142   { FRVBF_INSN_FBGT, SEM_FN_NAME (frvbf,fbgt) },
28143   { FRVBF_INSN_FBULE, SEM_FN_NAME (frvbf,fbule) },
28144   { FRVBF_INSN_FBU, SEM_FN_NAME (frvbf,fbu) },
28145   { FRVBF_INSN_FBO, SEM_FN_NAME (frvbf,fbo) },
28146   { FRVBF_INSN_BCTRLR, SEM_FN_NAME (frvbf,bctrlr) },
28147   { FRVBF_INSN_BRALR, SEM_FN_NAME (frvbf,bralr) },
28148   { FRVBF_INSN_BNOLR, SEM_FN_NAME (frvbf,bnolr) },
28149   { FRVBF_INSN_BEQLR, SEM_FN_NAME (frvbf,beqlr) },
28150   { FRVBF_INSN_BNELR, SEM_FN_NAME (frvbf,bnelr) },
28151   { FRVBF_INSN_BLELR, SEM_FN_NAME (frvbf,blelr) },
28152   { FRVBF_INSN_BGTLR, SEM_FN_NAME (frvbf,bgtlr) },
28153   { FRVBF_INSN_BLTLR, SEM_FN_NAME (frvbf,bltlr) },
28154   { FRVBF_INSN_BGELR, SEM_FN_NAME (frvbf,bgelr) },
28155   { FRVBF_INSN_BLSLR, SEM_FN_NAME (frvbf,blslr) },
28156   { FRVBF_INSN_BHILR, SEM_FN_NAME (frvbf,bhilr) },
28157   { FRVBF_INSN_BCLR, SEM_FN_NAME (frvbf,bclr) },
28158   { FRVBF_INSN_BNCLR, SEM_FN_NAME (frvbf,bnclr) },
28159   { FRVBF_INSN_BNLR, SEM_FN_NAME (frvbf,bnlr) },
28160   { FRVBF_INSN_BPLR, SEM_FN_NAME (frvbf,bplr) },
28161   { FRVBF_INSN_BVLR, SEM_FN_NAME (frvbf,bvlr) },
28162   { FRVBF_INSN_BNVLR, SEM_FN_NAME (frvbf,bnvlr) },
28163   { FRVBF_INSN_FBRALR, SEM_FN_NAME (frvbf,fbralr) },
28164   { FRVBF_INSN_FBNOLR, SEM_FN_NAME (frvbf,fbnolr) },
28165   { FRVBF_INSN_FBEQLR, SEM_FN_NAME (frvbf,fbeqlr) },
28166   { FRVBF_INSN_FBNELR, SEM_FN_NAME (frvbf,fbnelr) },
28167   { FRVBF_INSN_FBLGLR, SEM_FN_NAME (frvbf,fblglr) },
28168   { FRVBF_INSN_FBUELR, SEM_FN_NAME (frvbf,fbuelr) },
28169   { FRVBF_INSN_FBULLR, SEM_FN_NAME (frvbf,fbullr) },
28170   { FRVBF_INSN_FBGELR, SEM_FN_NAME (frvbf,fbgelr) },
28171   { FRVBF_INSN_FBLTLR, SEM_FN_NAME (frvbf,fbltlr) },
28172   { FRVBF_INSN_FBUGELR, SEM_FN_NAME (frvbf,fbugelr) },
28173   { FRVBF_INSN_FBUGLR, SEM_FN_NAME (frvbf,fbuglr) },
28174   { FRVBF_INSN_FBLELR, SEM_FN_NAME (frvbf,fblelr) },
28175   { FRVBF_INSN_FBGTLR, SEM_FN_NAME (frvbf,fbgtlr) },
28176   { FRVBF_INSN_FBULELR, SEM_FN_NAME (frvbf,fbulelr) },
28177   { FRVBF_INSN_FBULR, SEM_FN_NAME (frvbf,fbulr) },
28178   { FRVBF_INSN_FBOLR, SEM_FN_NAME (frvbf,fbolr) },
28179   { FRVBF_INSN_BCRALR, SEM_FN_NAME (frvbf,bcralr) },
28180   { FRVBF_INSN_BCNOLR, SEM_FN_NAME (frvbf,bcnolr) },
28181   { FRVBF_INSN_BCEQLR, SEM_FN_NAME (frvbf,bceqlr) },
28182   { FRVBF_INSN_BCNELR, SEM_FN_NAME (frvbf,bcnelr) },
28183   { FRVBF_INSN_BCLELR, SEM_FN_NAME (frvbf,bclelr) },
28184   { FRVBF_INSN_BCGTLR, SEM_FN_NAME (frvbf,bcgtlr) },
28185   { FRVBF_INSN_BCLTLR, SEM_FN_NAME (frvbf,bcltlr) },
28186   { FRVBF_INSN_BCGELR, SEM_FN_NAME (frvbf,bcgelr) },
28187   { FRVBF_INSN_BCLSLR, SEM_FN_NAME (frvbf,bclslr) },
28188   { FRVBF_INSN_BCHILR, SEM_FN_NAME (frvbf,bchilr) },
28189   { FRVBF_INSN_BCCLR, SEM_FN_NAME (frvbf,bcclr) },
28190   { FRVBF_INSN_BCNCLR, SEM_FN_NAME (frvbf,bcnclr) },
28191   { FRVBF_INSN_BCNLR, SEM_FN_NAME (frvbf,bcnlr) },
28192   { FRVBF_INSN_BCPLR, SEM_FN_NAME (frvbf,bcplr) },
28193   { FRVBF_INSN_BCVLR, SEM_FN_NAME (frvbf,bcvlr) },
28194   { FRVBF_INSN_BCNVLR, SEM_FN_NAME (frvbf,bcnvlr) },
28195   { FRVBF_INSN_FCBRALR, SEM_FN_NAME (frvbf,fcbralr) },
28196   { FRVBF_INSN_FCBNOLR, SEM_FN_NAME (frvbf,fcbnolr) },
28197   { FRVBF_INSN_FCBEQLR, SEM_FN_NAME (frvbf,fcbeqlr) },
28198   { FRVBF_INSN_FCBNELR, SEM_FN_NAME (frvbf,fcbnelr) },
28199   { FRVBF_INSN_FCBLGLR, SEM_FN_NAME (frvbf,fcblglr) },
28200   { FRVBF_INSN_FCBUELR, SEM_FN_NAME (frvbf,fcbuelr) },
28201   { FRVBF_INSN_FCBULLR, SEM_FN_NAME (frvbf,fcbullr) },
28202   { FRVBF_INSN_FCBGELR, SEM_FN_NAME (frvbf,fcbgelr) },
28203   { FRVBF_INSN_FCBLTLR, SEM_FN_NAME (frvbf,fcbltlr) },
28204   { FRVBF_INSN_FCBUGELR, SEM_FN_NAME (frvbf,fcbugelr) },
28205   { FRVBF_INSN_FCBUGLR, SEM_FN_NAME (frvbf,fcbuglr) },
28206   { FRVBF_INSN_FCBLELR, SEM_FN_NAME (frvbf,fcblelr) },
28207   { FRVBF_INSN_FCBGTLR, SEM_FN_NAME (frvbf,fcbgtlr) },
28208   { FRVBF_INSN_FCBULELR, SEM_FN_NAME (frvbf,fcbulelr) },
28209   { FRVBF_INSN_FCBULR, SEM_FN_NAME (frvbf,fcbulr) },
28210   { FRVBF_INSN_FCBOLR, SEM_FN_NAME (frvbf,fcbolr) },
28211   { FRVBF_INSN_JMPL, SEM_FN_NAME (frvbf,jmpl) },
28212   { FRVBF_INSN_CALLL, SEM_FN_NAME (frvbf,calll) },
28213   { FRVBF_INSN_JMPIL, SEM_FN_NAME (frvbf,jmpil) },
28214   { FRVBF_INSN_CALLIL, SEM_FN_NAME (frvbf,callil) },
28215   { FRVBF_INSN_CALL, SEM_FN_NAME (frvbf,call) },
28216   { FRVBF_INSN_RETT, SEM_FN_NAME (frvbf,rett) },
28217   { FRVBF_INSN_REI, SEM_FN_NAME (frvbf,rei) },
28218   { FRVBF_INSN_TRA, SEM_FN_NAME (frvbf,tra) },
28219   { FRVBF_INSN_TNO, SEM_FN_NAME (frvbf,tno) },
28220   { FRVBF_INSN_TEQ, SEM_FN_NAME (frvbf,teq) },
28221   { FRVBF_INSN_TNE, SEM_FN_NAME (frvbf,tne) },
28222   { FRVBF_INSN_TLE, SEM_FN_NAME (frvbf,tle) },
28223   { FRVBF_INSN_TGT, SEM_FN_NAME (frvbf,tgt) },
28224   { FRVBF_INSN_TLT, SEM_FN_NAME (frvbf,tlt) },
28225   { FRVBF_INSN_TGE, SEM_FN_NAME (frvbf,tge) },
28226   { FRVBF_INSN_TLS, SEM_FN_NAME (frvbf,tls) },
28227   { FRVBF_INSN_THI, SEM_FN_NAME (frvbf,thi) },
28228   { FRVBF_INSN_TC, SEM_FN_NAME (frvbf,tc) },
28229   { FRVBF_INSN_TNC, SEM_FN_NAME (frvbf,tnc) },
28230   { FRVBF_INSN_TN, SEM_FN_NAME (frvbf,tn) },
28231   { FRVBF_INSN_TP, SEM_FN_NAME (frvbf,tp) },
28232   { FRVBF_INSN_TV, SEM_FN_NAME (frvbf,tv) },
28233   { FRVBF_INSN_TNV, SEM_FN_NAME (frvbf,tnv) },
28234   { FRVBF_INSN_FTRA, SEM_FN_NAME (frvbf,ftra) },
28235   { FRVBF_INSN_FTNO, SEM_FN_NAME (frvbf,ftno) },
28236   { FRVBF_INSN_FTNE, SEM_FN_NAME (frvbf,ftne) },
28237   { FRVBF_INSN_FTEQ, SEM_FN_NAME (frvbf,fteq) },
28238   { FRVBF_INSN_FTLG, SEM_FN_NAME (frvbf,ftlg) },
28239   { FRVBF_INSN_FTUE, SEM_FN_NAME (frvbf,ftue) },
28240   { FRVBF_INSN_FTUL, SEM_FN_NAME (frvbf,ftul) },
28241   { FRVBF_INSN_FTGE, SEM_FN_NAME (frvbf,ftge) },
28242   { FRVBF_INSN_FTLT, SEM_FN_NAME (frvbf,ftlt) },
28243   { FRVBF_INSN_FTUGE, SEM_FN_NAME (frvbf,ftuge) },
28244   { FRVBF_INSN_FTUG, SEM_FN_NAME (frvbf,ftug) },
28245   { FRVBF_INSN_FTLE, SEM_FN_NAME (frvbf,ftle) },
28246   { FRVBF_INSN_FTGT, SEM_FN_NAME (frvbf,ftgt) },
28247   { FRVBF_INSN_FTULE, SEM_FN_NAME (frvbf,ftule) },
28248   { FRVBF_INSN_FTU, SEM_FN_NAME (frvbf,ftu) },
28249   { FRVBF_INSN_FTO, SEM_FN_NAME (frvbf,fto) },
28250   { FRVBF_INSN_TIRA, SEM_FN_NAME (frvbf,tira) },
28251   { FRVBF_INSN_TINO, SEM_FN_NAME (frvbf,tino) },
28252   { FRVBF_INSN_TIEQ, SEM_FN_NAME (frvbf,tieq) },
28253   { FRVBF_INSN_TINE, SEM_FN_NAME (frvbf,tine) },
28254   { FRVBF_INSN_TILE, SEM_FN_NAME (frvbf,tile) },
28255   { FRVBF_INSN_TIGT, SEM_FN_NAME (frvbf,tigt) },
28256   { FRVBF_INSN_TILT, SEM_FN_NAME (frvbf,tilt) },
28257   { FRVBF_INSN_TIGE, SEM_FN_NAME (frvbf,tige) },
28258   { FRVBF_INSN_TILS, SEM_FN_NAME (frvbf,tils) },
28259   { FRVBF_INSN_TIHI, SEM_FN_NAME (frvbf,tihi) },
28260   { FRVBF_INSN_TIC, SEM_FN_NAME (frvbf,tic) },
28261   { FRVBF_INSN_TINC, SEM_FN_NAME (frvbf,tinc) },
28262   { FRVBF_INSN_TIN, SEM_FN_NAME (frvbf,tin) },
28263   { FRVBF_INSN_TIP, SEM_FN_NAME (frvbf,tip) },
28264   { FRVBF_INSN_TIV, SEM_FN_NAME (frvbf,tiv) },
28265   { FRVBF_INSN_TINV, SEM_FN_NAME (frvbf,tinv) },
28266   { FRVBF_INSN_FTIRA, SEM_FN_NAME (frvbf,ftira) },
28267   { FRVBF_INSN_FTINO, SEM_FN_NAME (frvbf,ftino) },
28268   { FRVBF_INSN_FTINE, SEM_FN_NAME (frvbf,ftine) },
28269   { FRVBF_INSN_FTIEQ, SEM_FN_NAME (frvbf,ftieq) },
28270   { FRVBF_INSN_FTILG, SEM_FN_NAME (frvbf,ftilg) },
28271   { FRVBF_INSN_FTIUE, SEM_FN_NAME (frvbf,ftiue) },
28272   { FRVBF_INSN_FTIUL, SEM_FN_NAME (frvbf,ftiul) },
28273   { FRVBF_INSN_FTIGE, SEM_FN_NAME (frvbf,ftige) },
28274   { FRVBF_INSN_FTILT, SEM_FN_NAME (frvbf,ftilt) },
28275   { FRVBF_INSN_FTIUGE, SEM_FN_NAME (frvbf,ftiuge) },
28276   { FRVBF_INSN_FTIUG, SEM_FN_NAME (frvbf,ftiug) },
28277   { FRVBF_INSN_FTILE, SEM_FN_NAME (frvbf,ftile) },
28278   { FRVBF_INSN_FTIGT, SEM_FN_NAME (frvbf,ftigt) },
28279   { FRVBF_INSN_FTIULE, SEM_FN_NAME (frvbf,ftiule) },
28280   { FRVBF_INSN_FTIU, SEM_FN_NAME (frvbf,ftiu) },
28281   { FRVBF_INSN_FTIO, SEM_FN_NAME (frvbf,ftio) },
28282   { FRVBF_INSN_BREAK, SEM_FN_NAME (frvbf,break) },
28283   { FRVBF_INSN_MTRAP, SEM_FN_NAME (frvbf,mtrap) },
28284   { FRVBF_INSN_ANDCR, SEM_FN_NAME (frvbf,andcr) },
28285   { FRVBF_INSN_ORCR, SEM_FN_NAME (frvbf,orcr) },
28286   { FRVBF_INSN_XORCR, SEM_FN_NAME (frvbf,xorcr) },
28287   { FRVBF_INSN_NANDCR, SEM_FN_NAME (frvbf,nandcr) },
28288   { FRVBF_INSN_NORCR, SEM_FN_NAME (frvbf,norcr) },
28289   { FRVBF_INSN_ANDNCR, SEM_FN_NAME (frvbf,andncr) },
28290   { FRVBF_INSN_ORNCR, SEM_FN_NAME (frvbf,orncr) },
28291   { FRVBF_INSN_NANDNCR, SEM_FN_NAME (frvbf,nandncr) },
28292   { FRVBF_INSN_NORNCR, SEM_FN_NAME (frvbf,norncr) },
28293   { FRVBF_INSN_NOTCR, SEM_FN_NAME (frvbf,notcr) },
28294   { FRVBF_INSN_CKRA, SEM_FN_NAME (frvbf,ckra) },
28295   { FRVBF_INSN_CKNO, SEM_FN_NAME (frvbf,ckno) },
28296   { FRVBF_INSN_CKEQ, SEM_FN_NAME (frvbf,ckeq) },
28297   { FRVBF_INSN_CKNE, SEM_FN_NAME (frvbf,ckne) },
28298   { FRVBF_INSN_CKLE, SEM_FN_NAME (frvbf,ckle) },
28299   { FRVBF_INSN_CKGT, SEM_FN_NAME (frvbf,ckgt) },
28300   { FRVBF_INSN_CKLT, SEM_FN_NAME (frvbf,cklt) },
28301   { FRVBF_INSN_CKGE, SEM_FN_NAME (frvbf,ckge) },
28302   { FRVBF_INSN_CKLS, SEM_FN_NAME (frvbf,ckls) },
28303   { FRVBF_INSN_CKHI, SEM_FN_NAME (frvbf,ckhi) },
28304   { FRVBF_INSN_CKC, SEM_FN_NAME (frvbf,ckc) },
28305   { FRVBF_INSN_CKNC, SEM_FN_NAME (frvbf,cknc) },
28306   { FRVBF_INSN_CKN, SEM_FN_NAME (frvbf,ckn) },
28307   { FRVBF_INSN_CKP, SEM_FN_NAME (frvbf,ckp) },
28308   { FRVBF_INSN_CKV, SEM_FN_NAME (frvbf,ckv) },
28309   { FRVBF_INSN_CKNV, SEM_FN_NAME (frvbf,cknv) },
28310   { FRVBF_INSN_FCKRA, SEM_FN_NAME (frvbf,fckra) },
28311   { FRVBF_INSN_FCKNO, SEM_FN_NAME (frvbf,fckno) },
28312   { FRVBF_INSN_FCKNE, SEM_FN_NAME (frvbf,fckne) },
28313   { FRVBF_INSN_FCKEQ, SEM_FN_NAME (frvbf,fckeq) },
28314   { FRVBF_INSN_FCKLG, SEM_FN_NAME (frvbf,fcklg) },
28315   { FRVBF_INSN_FCKUE, SEM_FN_NAME (frvbf,fckue) },
28316   { FRVBF_INSN_FCKUL, SEM_FN_NAME (frvbf,fckul) },
28317   { FRVBF_INSN_FCKGE, SEM_FN_NAME (frvbf,fckge) },
28318   { FRVBF_INSN_FCKLT, SEM_FN_NAME (frvbf,fcklt) },
28319   { FRVBF_INSN_FCKUGE, SEM_FN_NAME (frvbf,fckuge) },
28320   { FRVBF_INSN_FCKUG, SEM_FN_NAME (frvbf,fckug) },
28321   { FRVBF_INSN_FCKLE, SEM_FN_NAME (frvbf,fckle) },
28322   { FRVBF_INSN_FCKGT, SEM_FN_NAME (frvbf,fckgt) },
28323   { FRVBF_INSN_FCKULE, SEM_FN_NAME (frvbf,fckule) },
28324   { FRVBF_INSN_FCKU, SEM_FN_NAME (frvbf,fcku) },
28325   { FRVBF_INSN_FCKO, SEM_FN_NAME (frvbf,fcko) },
28326   { FRVBF_INSN_CCKRA, SEM_FN_NAME (frvbf,cckra) },
28327   { FRVBF_INSN_CCKNO, SEM_FN_NAME (frvbf,cckno) },
28328   { FRVBF_INSN_CCKEQ, SEM_FN_NAME (frvbf,cckeq) },
28329   { FRVBF_INSN_CCKNE, SEM_FN_NAME (frvbf,cckne) },
28330   { FRVBF_INSN_CCKLE, SEM_FN_NAME (frvbf,cckle) },
28331   { FRVBF_INSN_CCKGT, SEM_FN_NAME (frvbf,cckgt) },
28332   { FRVBF_INSN_CCKLT, SEM_FN_NAME (frvbf,ccklt) },
28333   { FRVBF_INSN_CCKGE, SEM_FN_NAME (frvbf,cckge) },
28334   { FRVBF_INSN_CCKLS, SEM_FN_NAME (frvbf,cckls) },
28335   { FRVBF_INSN_CCKHI, SEM_FN_NAME (frvbf,cckhi) },
28336   { FRVBF_INSN_CCKC, SEM_FN_NAME (frvbf,cckc) },
28337   { FRVBF_INSN_CCKNC, SEM_FN_NAME (frvbf,ccknc) },
28338   { FRVBF_INSN_CCKN, SEM_FN_NAME (frvbf,cckn) },
28339   { FRVBF_INSN_CCKP, SEM_FN_NAME (frvbf,cckp) },
28340   { FRVBF_INSN_CCKV, SEM_FN_NAME (frvbf,cckv) },
28341   { FRVBF_INSN_CCKNV, SEM_FN_NAME (frvbf,ccknv) },
28342   { FRVBF_INSN_CFCKRA, SEM_FN_NAME (frvbf,cfckra) },
28343   { FRVBF_INSN_CFCKNO, SEM_FN_NAME (frvbf,cfckno) },
28344   { FRVBF_INSN_CFCKNE, SEM_FN_NAME (frvbf,cfckne) },
28345   { FRVBF_INSN_CFCKEQ, SEM_FN_NAME (frvbf,cfckeq) },
28346   { FRVBF_INSN_CFCKLG, SEM_FN_NAME (frvbf,cfcklg) },
28347   { FRVBF_INSN_CFCKUE, SEM_FN_NAME (frvbf,cfckue) },
28348   { FRVBF_INSN_CFCKUL, SEM_FN_NAME (frvbf,cfckul) },
28349   { FRVBF_INSN_CFCKGE, SEM_FN_NAME (frvbf,cfckge) },
28350   { FRVBF_INSN_CFCKLT, SEM_FN_NAME (frvbf,cfcklt) },
28351   { FRVBF_INSN_CFCKUGE, SEM_FN_NAME (frvbf,cfckuge) },
28352   { FRVBF_INSN_CFCKUG, SEM_FN_NAME (frvbf,cfckug) },
28353   { FRVBF_INSN_CFCKLE, SEM_FN_NAME (frvbf,cfckle) },
28354   { FRVBF_INSN_CFCKGT, SEM_FN_NAME (frvbf,cfckgt) },
28355   { FRVBF_INSN_CFCKULE, SEM_FN_NAME (frvbf,cfckule) },
28356   { FRVBF_INSN_CFCKU, SEM_FN_NAME (frvbf,cfcku) },
28357   { FRVBF_INSN_CFCKO, SEM_FN_NAME (frvbf,cfcko) },
28358   { FRVBF_INSN_CJMPL, SEM_FN_NAME (frvbf,cjmpl) },
28359   { FRVBF_INSN_CCALLL, SEM_FN_NAME (frvbf,ccalll) },
28360   { FRVBF_INSN_ICI, SEM_FN_NAME (frvbf,ici) },
28361   { FRVBF_INSN_DCI, SEM_FN_NAME (frvbf,dci) },
28362   { FRVBF_INSN_ICEI, SEM_FN_NAME (frvbf,icei) },
28363   { FRVBF_INSN_DCEI, SEM_FN_NAME (frvbf,dcei) },
28364   { FRVBF_INSN_DCF, SEM_FN_NAME (frvbf,dcf) },
28365   { FRVBF_INSN_DCEF, SEM_FN_NAME (frvbf,dcef) },
28366   { FRVBF_INSN_WITLB, SEM_FN_NAME (frvbf,witlb) },
28367   { FRVBF_INSN_WDTLB, SEM_FN_NAME (frvbf,wdtlb) },
28368   { FRVBF_INSN_ITLBI, SEM_FN_NAME (frvbf,itlbi) },
28369   { FRVBF_INSN_DTLBI, SEM_FN_NAME (frvbf,dtlbi) },
28370   { FRVBF_INSN_ICPL, SEM_FN_NAME (frvbf,icpl) },
28371   { FRVBF_INSN_DCPL, SEM_FN_NAME (frvbf,dcpl) },
28372   { FRVBF_INSN_ICUL, SEM_FN_NAME (frvbf,icul) },
28373   { FRVBF_INSN_DCUL, SEM_FN_NAME (frvbf,dcul) },
28374   { FRVBF_INSN_BAR, SEM_FN_NAME (frvbf,bar) },
28375   { FRVBF_INSN_MEMBAR, SEM_FN_NAME (frvbf,membar) },
28376   { FRVBF_INSN_COP1, SEM_FN_NAME (frvbf,cop1) },
28377   { FRVBF_INSN_COP2, SEM_FN_NAME (frvbf,cop2) },
28378   { FRVBF_INSN_CLRGR, SEM_FN_NAME (frvbf,clrgr) },
28379   { FRVBF_INSN_CLRFR, SEM_FN_NAME (frvbf,clrfr) },
28380   { FRVBF_INSN_CLRGA, SEM_FN_NAME (frvbf,clrga) },
28381   { FRVBF_INSN_CLRFA, SEM_FN_NAME (frvbf,clrfa) },
28382   { FRVBF_INSN_COMMITGR, SEM_FN_NAME (frvbf,commitgr) },
28383   { FRVBF_INSN_COMMITFR, SEM_FN_NAME (frvbf,commitfr) },
28384   { FRVBF_INSN_COMMITGA, SEM_FN_NAME (frvbf,commitga) },
28385   { FRVBF_INSN_COMMITFA, SEM_FN_NAME (frvbf,commitfa) },
28386   { FRVBF_INSN_FITOS, SEM_FN_NAME (frvbf,fitos) },
28387   { FRVBF_INSN_FSTOI, SEM_FN_NAME (frvbf,fstoi) },
28388   { FRVBF_INSN_FITOD, SEM_FN_NAME (frvbf,fitod) },
28389   { FRVBF_INSN_FDTOI, SEM_FN_NAME (frvbf,fdtoi) },
28390   { FRVBF_INSN_FDITOS, SEM_FN_NAME (frvbf,fditos) },
28391   { FRVBF_INSN_FDSTOI, SEM_FN_NAME (frvbf,fdstoi) },
28392   { FRVBF_INSN_NFDITOS, SEM_FN_NAME (frvbf,nfditos) },
28393   { FRVBF_INSN_NFDSTOI, SEM_FN_NAME (frvbf,nfdstoi) },
28394   { FRVBF_INSN_CFITOS, SEM_FN_NAME (frvbf,cfitos) },
28395   { FRVBF_INSN_CFSTOI, SEM_FN_NAME (frvbf,cfstoi) },
28396   { FRVBF_INSN_NFITOS, SEM_FN_NAME (frvbf,nfitos) },
28397   { FRVBF_INSN_NFSTOI, SEM_FN_NAME (frvbf,nfstoi) },
28398   { FRVBF_INSN_FMOVS, SEM_FN_NAME (frvbf,fmovs) },
28399   { FRVBF_INSN_FMOVD, SEM_FN_NAME (frvbf,fmovd) },
28400   { FRVBF_INSN_FDMOVS, SEM_FN_NAME (frvbf,fdmovs) },
28401   { FRVBF_INSN_CFMOVS, SEM_FN_NAME (frvbf,cfmovs) },
28402   { FRVBF_INSN_FNEGS, SEM_FN_NAME (frvbf,fnegs) },
28403   { FRVBF_INSN_FNEGD, SEM_FN_NAME (frvbf,fnegd) },
28404   { FRVBF_INSN_FDNEGS, SEM_FN_NAME (frvbf,fdnegs) },
28405   { FRVBF_INSN_CFNEGS, SEM_FN_NAME (frvbf,cfnegs) },
28406   { FRVBF_INSN_FABSS, SEM_FN_NAME (frvbf,fabss) },
28407   { FRVBF_INSN_FABSD, SEM_FN_NAME (frvbf,fabsd) },
28408   { FRVBF_INSN_FDABSS, SEM_FN_NAME (frvbf,fdabss) },
28409   { FRVBF_INSN_CFABSS, SEM_FN_NAME (frvbf,cfabss) },
28410   { FRVBF_INSN_FSQRTS, SEM_FN_NAME (frvbf,fsqrts) },
28411   { FRVBF_INSN_FDSQRTS, SEM_FN_NAME (frvbf,fdsqrts) },
28412   { FRVBF_INSN_NFDSQRTS, SEM_FN_NAME (frvbf,nfdsqrts) },
28413   { FRVBF_INSN_FSQRTD, SEM_FN_NAME (frvbf,fsqrtd) },
28414   { FRVBF_INSN_CFSQRTS, SEM_FN_NAME (frvbf,cfsqrts) },
28415   { FRVBF_INSN_NFSQRTS, SEM_FN_NAME (frvbf,nfsqrts) },
28416   { FRVBF_INSN_FADDS, SEM_FN_NAME (frvbf,fadds) },
28417   { FRVBF_INSN_FSUBS, SEM_FN_NAME (frvbf,fsubs) },
28418   { FRVBF_INSN_FMULS, SEM_FN_NAME (frvbf,fmuls) },
28419   { FRVBF_INSN_FDIVS, SEM_FN_NAME (frvbf,fdivs) },
28420   { FRVBF_INSN_FADDD, SEM_FN_NAME (frvbf,faddd) },
28421   { FRVBF_INSN_FSUBD, SEM_FN_NAME (frvbf,fsubd) },
28422   { FRVBF_INSN_FMULD, SEM_FN_NAME (frvbf,fmuld) },
28423   { FRVBF_INSN_FDIVD, SEM_FN_NAME (frvbf,fdivd) },
28424   { FRVBF_INSN_CFADDS, SEM_FN_NAME (frvbf,cfadds) },
28425   { FRVBF_INSN_CFSUBS, SEM_FN_NAME (frvbf,cfsubs) },
28426   { FRVBF_INSN_CFMULS, SEM_FN_NAME (frvbf,cfmuls) },
28427   { FRVBF_INSN_CFDIVS, SEM_FN_NAME (frvbf,cfdivs) },
28428   { FRVBF_INSN_NFADDS, SEM_FN_NAME (frvbf,nfadds) },
28429   { FRVBF_INSN_NFSUBS, SEM_FN_NAME (frvbf,nfsubs) },
28430   { FRVBF_INSN_NFMULS, SEM_FN_NAME (frvbf,nfmuls) },
28431   { FRVBF_INSN_NFDIVS, SEM_FN_NAME (frvbf,nfdivs) },
28432   { FRVBF_INSN_FCMPS, SEM_FN_NAME (frvbf,fcmps) },
28433   { FRVBF_INSN_FCMPD, SEM_FN_NAME (frvbf,fcmpd) },
28434   { FRVBF_INSN_CFCMPS, SEM_FN_NAME (frvbf,cfcmps) },
28435   { FRVBF_INSN_FDCMPS, SEM_FN_NAME (frvbf,fdcmps) },
28436   { FRVBF_INSN_FMADDS, SEM_FN_NAME (frvbf,fmadds) },
28437   { FRVBF_INSN_FMSUBS, SEM_FN_NAME (frvbf,fmsubs) },
28438   { FRVBF_INSN_FMADDD, SEM_FN_NAME (frvbf,fmaddd) },
28439   { FRVBF_INSN_FMSUBD, SEM_FN_NAME (frvbf,fmsubd) },
28440   { FRVBF_INSN_FDMADDS, SEM_FN_NAME (frvbf,fdmadds) },
28441   { FRVBF_INSN_NFDMADDS, SEM_FN_NAME (frvbf,nfdmadds) },
28442   { FRVBF_INSN_CFMADDS, SEM_FN_NAME (frvbf,cfmadds) },
28443   { FRVBF_INSN_CFMSUBS, SEM_FN_NAME (frvbf,cfmsubs) },
28444   { FRVBF_INSN_NFMADDS, SEM_FN_NAME (frvbf,nfmadds) },
28445   { FRVBF_INSN_NFMSUBS, SEM_FN_NAME (frvbf,nfmsubs) },
28446   { FRVBF_INSN_FMAS, SEM_FN_NAME (frvbf,fmas) },
28447   { FRVBF_INSN_FMSS, SEM_FN_NAME (frvbf,fmss) },
28448   { FRVBF_INSN_FDMAS, SEM_FN_NAME (frvbf,fdmas) },
28449   { FRVBF_INSN_FDMSS, SEM_FN_NAME (frvbf,fdmss) },
28450   { FRVBF_INSN_NFDMAS, SEM_FN_NAME (frvbf,nfdmas) },
28451   { FRVBF_INSN_NFDMSS, SEM_FN_NAME (frvbf,nfdmss) },
28452   { FRVBF_INSN_CFMAS, SEM_FN_NAME (frvbf,cfmas) },
28453   { FRVBF_INSN_CFMSS, SEM_FN_NAME (frvbf,cfmss) },
28454   { FRVBF_INSN_FMAD, SEM_FN_NAME (frvbf,fmad) },
28455   { FRVBF_INSN_FMSD, SEM_FN_NAME (frvbf,fmsd) },
28456   { FRVBF_INSN_NFMAS, SEM_FN_NAME (frvbf,nfmas) },
28457   { FRVBF_INSN_NFMSS, SEM_FN_NAME (frvbf,nfmss) },
28458   { FRVBF_INSN_FDADDS, SEM_FN_NAME (frvbf,fdadds) },
28459   { FRVBF_INSN_FDSUBS, SEM_FN_NAME (frvbf,fdsubs) },
28460   { FRVBF_INSN_FDMULS, SEM_FN_NAME (frvbf,fdmuls) },
28461   { FRVBF_INSN_FDDIVS, SEM_FN_NAME (frvbf,fddivs) },
28462   { FRVBF_INSN_FDSADS, SEM_FN_NAME (frvbf,fdsads) },
28463   { FRVBF_INSN_FDMULCS, SEM_FN_NAME (frvbf,fdmulcs) },
28464   { FRVBF_INSN_NFDMULCS, SEM_FN_NAME (frvbf,nfdmulcs) },
28465   { FRVBF_INSN_NFDADDS, SEM_FN_NAME (frvbf,nfdadds) },
28466   { FRVBF_INSN_NFDSUBS, SEM_FN_NAME (frvbf,nfdsubs) },
28467   { FRVBF_INSN_NFDMULS, SEM_FN_NAME (frvbf,nfdmuls) },
28468   { FRVBF_INSN_NFDDIVS, SEM_FN_NAME (frvbf,nfddivs) },
28469   { FRVBF_INSN_NFDSADS, SEM_FN_NAME (frvbf,nfdsads) },
28470   { FRVBF_INSN_NFDCMPS, SEM_FN_NAME (frvbf,nfdcmps) },
28471   { FRVBF_INSN_MHSETLOS, SEM_FN_NAME (frvbf,mhsetlos) },
28472   { FRVBF_INSN_MHSETHIS, SEM_FN_NAME (frvbf,mhsethis) },
28473   { FRVBF_INSN_MHDSETS, SEM_FN_NAME (frvbf,mhdsets) },
28474   { FRVBF_INSN_MHSETLOH, SEM_FN_NAME (frvbf,mhsetloh) },
28475   { FRVBF_INSN_MHSETHIH, SEM_FN_NAME (frvbf,mhsethih) },
28476   { FRVBF_INSN_MHDSETH, SEM_FN_NAME (frvbf,mhdseth) },
28477   { FRVBF_INSN_MAND, SEM_FN_NAME (frvbf,mand) },
28478   { FRVBF_INSN_MOR, SEM_FN_NAME (frvbf,mor) },
28479   { FRVBF_INSN_MXOR, SEM_FN_NAME (frvbf,mxor) },
28480   { FRVBF_INSN_CMAND, SEM_FN_NAME (frvbf,cmand) },
28481   { FRVBF_INSN_CMOR, SEM_FN_NAME (frvbf,cmor) },
28482   { FRVBF_INSN_CMXOR, SEM_FN_NAME (frvbf,cmxor) },
28483   { FRVBF_INSN_MNOT, SEM_FN_NAME (frvbf,mnot) },
28484   { FRVBF_INSN_CMNOT, SEM_FN_NAME (frvbf,cmnot) },
28485   { FRVBF_INSN_MROTLI, SEM_FN_NAME (frvbf,mrotli) },
28486   { FRVBF_INSN_MROTRI, SEM_FN_NAME (frvbf,mrotri) },
28487   { FRVBF_INSN_MWCUT, SEM_FN_NAME (frvbf,mwcut) },
28488   { FRVBF_INSN_MWCUTI, SEM_FN_NAME (frvbf,mwcuti) },
28489   { FRVBF_INSN_MCUT, SEM_FN_NAME (frvbf,mcut) },
28490   { FRVBF_INSN_MCUTI, SEM_FN_NAME (frvbf,mcuti) },
28491   { FRVBF_INSN_MCUTSS, SEM_FN_NAME (frvbf,mcutss) },
28492   { FRVBF_INSN_MCUTSSI, SEM_FN_NAME (frvbf,mcutssi) },
28493   { FRVBF_INSN_MDCUTSSI, SEM_FN_NAME (frvbf,mdcutssi) },
28494   { FRVBF_INSN_MAVEH, SEM_FN_NAME (frvbf,maveh) },
28495   { FRVBF_INSN_MSLLHI, SEM_FN_NAME (frvbf,msllhi) },
28496   { FRVBF_INSN_MSRLHI, SEM_FN_NAME (frvbf,msrlhi) },
28497   { FRVBF_INSN_MSRAHI, SEM_FN_NAME (frvbf,msrahi) },
28498   { FRVBF_INSN_MDROTLI, SEM_FN_NAME (frvbf,mdrotli) },
28499   { FRVBF_INSN_MCPLHI, SEM_FN_NAME (frvbf,mcplhi) },
28500   { FRVBF_INSN_MCPLI, SEM_FN_NAME (frvbf,mcpli) },
28501   { FRVBF_INSN_MSATHS, SEM_FN_NAME (frvbf,msaths) },
28502   { FRVBF_INSN_MQSATHS, SEM_FN_NAME (frvbf,mqsaths) },
28503   { FRVBF_INSN_MSATHU, SEM_FN_NAME (frvbf,msathu) },
28504   { FRVBF_INSN_MCMPSH, SEM_FN_NAME (frvbf,mcmpsh) },
28505   { FRVBF_INSN_MCMPUH, SEM_FN_NAME (frvbf,mcmpuh) },
28506   { FRVBF_INSN_MABSHS, SEM_FN_NAME (frvbf,mabshs) },
28507   { FRVBF_INSN_MADDHSS, SEM_FN_NAME (frvbf,maddhss) },
28508   { FRVBF_INSN_MADDHUS, SEM_FN_NAME (frvbf,maddhus) },
28509   { FRVBF_INSN_MSUBHSS, SEM_FN_NAME (frvbf,msubhss) },
28510   { FRVBF_INSN_MSUBHUS, SEM_FN_NAME (frvbf,msubhus) },
28511   { FRVBF_INSN_CMADDHSS, SEM_FN_NAME (frvbf,cmaddhss) },
28512   { FRVBF_INSN_CMADDHUS, SEM_FN_NAME (frvbf,cmaddhus) },
28513   { FRVBF_INSN_CMSUBHSS, SEM_FN_NAME (frvbf,cmsubhss) },
28514   { FRVBF_INSN_CMSUBHUS, SEM_FN_NAME (frvbf,cmsubhus) },
28515   { FRVBF_INSN_MQADDHSS, SEM_FN_NAME (frvbf,mqaddhss) },
28516   { FRVBF_INSN_MQADDHUS, SEM_FN_NAME (frvbf,mqaddhus) },
28517   { FRVBF_INSN_MQSUBHSS, SEM_FN_NAME (frvbf,mqsubhss) },
28518   { FRVBF_INSN_MQSUBHUS, SEM_FN_NAME (frvbf,mqsubhus) },
28519   { FRVBF_INSN_CMQADDHSS, SEM_FN_NAME (frvbf,cmqaddhss) },
28520   { FRVBF_INSN_CMQADDHUS, SEM_FN_NAME (frvbf,cmqaddhus) },
28521   { FRVBF_INSN_CMQSUBHSS, SEM_FN_NAME (frvbf,cmqsubhss) },
28522   { FRVBF_INSN_CMQSUBHUS, SEM_FN_NAME (frvbf,cmqsubhus) },
28523   { FRVBF_INSN_MADDACCS, SEM_FN_NAME (frvbf,maddaccs) },
28524   { FRVBF_INSN_MSUBACCS, SEM_FN_NAME (frvbf,msubaccs) },
28525   { FRVBF_INSN_MDADDACCS, SEM_FN_NAME (frvbf,mdaddaccs) },
28526   { FRVBF_INSN_MDSUBACCS, SEM_FN_NAME (frvbf,mdsubaccs) },
28527   { FRVBF_INSN_MASACCS, SEM_FN_NAME (frvbf,masaccs) },
28528   { FRVBF_INSN_MDASACCS, SEM_FN_NAME (frvbf,mdasaccs) },
28529   { FRVBF_INSN_MMULHS, SEM_FN_NAME (frvbf,mmulhs) },
28530   { FRVBF_INSN_MMULHU, SEM_FN_NAME (frvbf,mmulhu) },
28531   { FRVBF_INSN_MMULXHS, SEM_FN_NAME (frvbf,mmulxhs) },
28532   { FRVBF_INSN_MMULXHU, SEM_FN_NAME (frvbf,mmulxhu) },
28533   { FRVBF_INSN_CMMULHS, SEM_FN_NAME (frvbf,cmmulhs) },
28534   { FRVBF_INSN_CMMULHU, SEM_FN_NAME (frvbf,cmmulhu) },
28535   { FRVBF_INSN_MQMULHS, SEM_FN_NAME (frvbf,mqmulhs) },
28536   { FRVBF_INSN_MQMULHU, SEM_FN_NAME (frvbf,mqmulhu) },
28537   { FRVBF_INSN_MQMULXHS, SEM_FN_NAME (frvbf,mqmulxhs) },
28538   { FRVBF_INSN_MQMULXHU, SEM_FN_NAME (frvbf,mqmulxhu) },
28539   { FRVBF_INSN_CMQMULHS, SEM_FN_NAME (frvbf,cmqmulhs) },
28540   { FRVBF_INSN_CMQMULHU, SEM_FN_NAME (frvbf,cmqmulhu) },
28541   { FRVBF_INSN_MMACHS, SEM_FN_NAME (frvbf,mmachs) },
28542   { FRVBF_INSN_MMACHU, SEM_FN_NAME (frvbf,mmachu) },
28543   { FRVBF_INSN_MMRDHS, SEM_FN_NAME (frvbf,mmrdhs) },
28544   { FRVBF_INSN_MMRDHU, SEM_FN_NAME (frvbf,mmrdhu) },
28545   { FRVBF_INSN_CMMACHS, SEM_FN_NAME (frvbf,cmmachs) },
28546   { FRVBF_INSN_CMMACHU, SEM_FN_NAME (frvbf,cmmachu) },
28547   { FRVBF_INSN_MQMACHS, SEM_FN_NAME (frvbf,mqmachs) },
28548   { FRVBF_INSN_MQMACHU, SEM_FN_NAME (frvbf,mqmachu) },
28549   { FRVBF_INSN_CMQMACHS, SEM_FN_NAME (frvbf,cmqmachs) },
28550   { FRVBF_INSN_CMQMACHU, SEM_FN_NAME (frvbf,cmqmachu) },
28551   { FRVBF_INSN_MQXMACHS, SEM_FN_NAME (frvbf,mqxmachs) },
28552   { FRVBF_INSN_MQXMACXHS, SEM_FN_NAME (frvbf,mqxmacxhs) },
28553   { FRVBF_INSN_MQMACXHS, SEM_FN_NAME (frvbf,mqmacxhs) },
28554   { FRVBF_INSN_MCPXRS, SEM_FN_NAME (frvbf,mcpxrs) },
28555   { FRVBF_INSN_MCPXRU, SEM_FN_NAME (frvbf,mcpxru) },
28556   { FRVBF_INSN_MCPXIS, SEM_FN_NAME (frvbf,mcpxis) },
28557   { FRVBF_INSN_MCPXIU, SEM_FN_NAME (frvbf,mcpxiu) },
28558   { FRVBF_INSN_CMCPXRS, SEM_FN_NAME (frvbf,cmcpxrs) },
28559   { FRVBF_INSN_CMCPXRU, SEM_FN_NAME (frvbf,cmcpxru) },
28560   { FRVBF_INSN_CMCPXIS, SEM_FN_NAME (frvbf,cmcpxis) },
28561   { FRVBF_INSN_CMCPXIU, SEM_FN_NAME (frvbf,cmcpxiu) },
28562   { FRVBF_INSN_MQCPXRS, SEM_FN_NAME (frvbf,mqcpxrs) },
28563   { FRVBF_INSN_MQCPXRU, SEM_FN_NAME (frvbf,mqcpxru) },
28564   { FRVBF_INSN_MQCPXIS, SEM_FN_NAME (frvbf,mqcpxis) },
28565   { FRVBF_INSN_MQCPXIU, SEM_FN_NAME (frvbf,mqcpxiu) },
28566   { FRVBF_INSN_MEXPDHW, SEM_FN_NAME (frvbf,mexpdhw) },
28567   { FRVBF_INSN_CMEXPDHW, SEM_FN_NAME (frvbf,cmexpdhw) },
28568   { FRVBF_INSN_MEXPDHD, SEM_FN_NAME (frvbf,mexpdhd) },
28569   { FRVBF_INSN_CMEXPDHD, SEM_FN_NAME (frvbf,cmexpdhd) },
28570   { FRVBF_INSN_MPACKH, SEM_FN_NAME (frvbf,mpackh) },
28571   { FRVBF_INSN_MDPACKH, SEM_FN_NAME (frvbf,mdpackh) },
28572   { FRVBF_INSN_MUNPACKH, SEM_FN_NAME (frvbf,munpackh) },
28573   { FRVBF_INSN_MDUNPACKH, SEM_FN_NAME (frvbf,mdunpackh) },
28574   { FRVBF_INSN_MBTOH, SEM_FN_NAME (frvbf,mbtoh) },
28575   { FRVBF_INSN_CMBTOH, SEM_FN_NAME (frvbf,cmbtoh) },
28576   { FRVBF_INSN_MHTOB, SEM_FN_NAME (frvbf,mhtob) },
28577   { FRVBF_INSN_CMHTOB, SEM_FN_NAME (frvbf,cmhtob) },
28578   { FRVBF_INSN_MBTOHE, SEM_FN_NAME (frvbf,mbtohe) },
28579   { FRVBF_INSN_CMBTOHE, SEM_FN_NAME (frvbf,cmbtohe) },
28580   { FRVBF_INSN_MNOP, SEM_FN_NAME (frvbf,mnop) },
28581   { FRVBF_INSN_MCLRACC_0, SEM_FN_NAME (frvbf,mclracc_0) },
28582   { FRVBF_INSN_MCLRACC_1, SEM_FN_NAME (frvbf,mclracc_1) },
28583   { FRVBF_INSN_MRDACC, SEM_FN_NAME (frvbf,mrdacc) },
28584   { FRVBF_INSN_MRDACCG, SEM_FN_NAME (frvbf,mrdaccg) },
28585   { FRVBF_INSN_MWTACC, SEM_FN_NAME (frvbf,mwtacc) },
28586   { FRVBF_INSN_MWTACCG, SEM_FN_NAME (frvbf,mwtaccg) },
28587   { FRVBF_INSN_MCOP1, SEM_FN_NAME (frvbf,mcop1) },
28588   { FRVBF_INSN_MCOP2, SEM_FN_NAME (frvbf,mcop2) },
28589   { FRVBF_INSN_FNOP, SEM_FN_NAME (frvbf,fnop) },
28590   { 0, 0 }
28591 };
28592
28593 /* Add the semantic fns to IDESC_TABLE.  */
28594
28595 void
28596 SEM_FN_NAME (frvbf,init_idesc_table) (SIM_CPU *current_cpu)
28597 {
28598   IDESC *idesc_table = CPU_IDESC (current_cpu);
28599   const struct sem_fn_desc *sf;
28600   int mach_num = MACH_NUM (CPU_MACH (current_cpu));
28601
28602   for (sf = &sem_fns[0]; sf->fn != 0; ++sf)
28603     {
28604       const CGEN_INSN *insn = idesc_table[sf->index].idata;
28605       int valid_p = (CGEN_INSN_VIRTUAL_P (insn)
28606                      || CGEN_INSN_MACH_HAS_P (insn, mach_num));
28607 #if FAST_P
28608       if (valid_p)
28609         idesc_table[sf->index].sem_fast = sf->fn;
28610       else
28611         idesc_table[sf->index].sem_fast = SEM_FN_NAME (frvbf,x_invalid);
28612 #else
28613       if (valid_p)
28614         idesc_table[sf->index].sem_full = sf->fn;
28615       else
28616         idesc_table[sf->index].sem_full = SEM_FN_NAME (frvbf,x_invalid);
28617 #endif
28618     }
28619 }
28620