New simulator for Fujitsu frv contributed by Red Hat.
[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_setlos.f
16536   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16537   int UNUSED written = 0;
16538   IADDR UNUSED pc = abuf->addr;
16539   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16540
16541 frvbf_clear_ne_flags (current_cpu, FLD (f_GRk), 0);
16542
16543   return vpc;
16544 #undef FLD
16545 }
16546
16547 /* clrfr: clrfr$pack $FRk */
16548
16549 static SEM_PC
16550 SEM_FN_NAME (frvbf,clrfr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16551 {
16552 #define FLD(f) abuf->fields.sfmt_mhsethis.f
16553   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16554   int UNUSED written = 0;
16555   IADDR UNUSED pc = abuf->addr;
16556   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16557
16558 frvbf_clear_ne_flags (current_cpu, FLD (f_FRk), 1);
16559
16560   return vpc;
16561 #undef FLD
16562 }
16563
16564 /* clrga: clrga$pack */
16565
16566 static SEM_PC
16567 SEM_FN_NAME (frvbf,clrga) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16568 {
16569 #define FLD(f) abuf->fields.fmt_empty.f
16570   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16571   int UNUSED written = 0;
16572   IADDR UNUSED pc = abuf->addr;
16573   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16574
16575 frvbf_clear_ne_flags (current_cpu, -1, 0);
16576
16577   return vpc;
16578 #undef FLD
16579 }
16580
16581 /* clrfa: clrfa$pack */
16582
16583 static SEM_PC
16584 SEM_FN_NAME (frvbf,clrfa) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16585 {
16586 #define FLD(f) abuf->fields.fmt_empty.f
16587   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16588   int UNUSED written = 0;
16589   IADDR UNUSED pc = abuf->addr;
16590   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16591
16592 frvbf_clear_ne_flags (current_cpu, -1, 1);
16593
16594   return vpc;
16595 #undef FLD
16596 }
16597
16598 /* commitgr: commitgr$pack $GRk */
16599
16600 static SEM_PC
16601 SEM_FN_NAME (frvbf,commitgr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16602 {
16603 #define FLD(f) abuf->fields.sfmt_setlos.f
16604   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16605   int UNUSED written = 0;
16606   IADDR UNUSED pc = abuf->addr;
16607   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16608
16609 frvbf_commit (current_cpu, FLD (f_GRk), 0);
16610
16611   return vpc;
16612 #undef FLD
16613 }
16614
16615 /* commitfr: commitfr$pack $FRk */
16616
16617 static SEM_PC
16618 SEM_FN_NAME (frvbf,commitfr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16619 {
16620 #define FLD(f) abuf->fields.sfmt_mhsethis.f
16621   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16622   int UNUSED written = 0;
16623   IADDR UNUSED pc = abuf->addr;
16624   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16625
16626 frvbf_commit (current_cpu, FLD (f_FRk), 1);
16627
16628   return vpc;
16629 #undef FLD
16630 }
16631
16632 /* commitga: commitga$pack */
16633
16634 static SEM_PC
16635 SEM_FN_NAME (frvbf,commitga) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16636 {
16637 #define FLD(f) abuf->fields.fmt_empty.f
16638   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16639   int UNUSED written = 0;
16640   IADDR UNUSED pc = abuf->addr;
16641   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16642
16643 frvbf_commit (current_cpu, -1, 0);
16644
16645   return vpc;
16646 #undef FLD
16647 }
16648
16649 /* commitfa: commitfa$pack */
16650
16651 static SEM_PC
16652 SEM_FN_NAME (frvbf,commitfa) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16653 {
16654 #define FLD(f) abuf->fields.fmt_empty.f
16655   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16656   int UNUSED written = 0;
16657   IADDR UNUSED pc = abuf->addr;
16658   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16659
16660 frvbf_commit (current_cpu, -1, 1);
16661
16662   return vpc;
16663 #undef FLD
16664 }
16665
16666 /* fitos: fitos$pack $FRintj,$FRk */
16667
16668 static SEM_PC
16669 SEM_FN_NAME (frvbf,fitos) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16670 {
16671 #define FLD(f) abuf->fields.sfmt_fditos.f
16672   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16673   int UNUSED written = 0;
16674   IADDR UNUSED pc = abuf->addr;
16675   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16676
16677   {
16678     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->floatsisf) (CGEN_CPU_FPU (current_cpu), GET_H_FR_INT (FLD (f_FRj)));
16679     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
16680     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
16681   }
16682
16683   return vpc;
16684 #undef FLD
16685 }
16686
16687 /* fstoi: fstoi$pack $FRj,$FRintk */
16688
16689 static SEM_PC
16690 SEM_FN_NAME (frvbf,fstoi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16691 {
16692 #define FLD(f) abuf->fields.sfmt_fdstoi.f
16693   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16694   int UNUSED written = 0;
16695   IADDR UNUSED pc = abuf->addr;
16696   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16697
16698   {
16699     SI opval = (* CGEN_CPU_FPU (current_cpu)->ops->fixsfsi) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
16700     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
16701     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
16702   }
16703
16704   return vpc;
16705 #undef FLD
16706 }
16707
16708 /* fitod: fitod$pack $FRintj,$FRdoublek */
16709
16710 static SEM_PC
16711 SEM_FN_NAME (frvbf,fitod) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16712 {
16713 #define FLD(f) abuf->fields.sfmt_fitod.f
16714   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16715   int UNUSED written = 0;
16716   IADDR UNUSED pc = abuf->addr;
16717   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16718
16719   {
16720     DF opval = (* CGEN_CPU_FPU (current_cpu)->ops->floatsidf) (CGEN_CPU_FPU (current_cpu), GET_H_FR_INT (FLD (f_FRj)));
16721     sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
16722     TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
16723   }
16724
16725   return vpc;
16726 #undef FLD
16727 }
16728
16729 /* fdtoi: fdtoi$pack $FRdoublej,$FRintk */
16730
16731 static SEM_PC
16732 SEM_FN_NAME (frvbf,fdtoi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16733 {
16734 #define FLD(f) abuf->fields.sfmt_fdtoi.f
16735   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16736   int UNUSED written = 0;
16737   IADDR UNUSED pc = abuf->addr;
16738   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16739
16740   {
16741     SI opval = (* CGEN_CPU_FPU (current_cpu)->ops->fixdfsi) (CGEN_CPU_FPU (current_cpu), GET_H_FR_DOUBLE (FLD (f_FRj)));
16742     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
16743     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
16744   }
16745
16746   return vpc;
16747 #undef FLD
16748 }
16749
16750 /* fditos: fditos$pack $FRintj,$FRk */
16751
16752 static SEM_PC
16753 SEM_FN_NAME (frvbf,fditos) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16754 {
16755 #define FLD(f) abuf->fields.sfmt_fditos.f
16756   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16757   int UNUSED written = 0;
16758   IADDR UNUSED pc = abuf->addr;
16759   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16760
16761 {
16762   {
16763     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->floatsisf) (CGEN_CPU_FPU (current_cpu), GET_H_FR_INT (FLD (f_FRj)));
16764     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
16765     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
16766   }
16767   {
16768     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->floatsisf) (CGEN_CPU_FPU (current_cpu), GET_H_FR_INT (((FLD (f_FRj)) + (1))));
16769     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
16770     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
16771   }
16772 }
16773
16774   return vpc;
16775 #undef FLD
16776 }
16777
16778 /* fdstoi: fdstoi$pack $FRj,$FRintk */
16779
16780 static SEM_PC
16781 SEM_FN_NAME (frvbf,fdstoi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16782 {
16783 #define FLD(f) abuf->fields.sfmt_fdstoi.f
16784   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16785   int UNUSED written = 0;
16786   IADDR UNUSED pc = abuf->addr;
16787   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16788
16789 {
16790   {
16791     SI opval = (* CGEN_CPU_FPU (current_cpu)->ops->fixsfsi) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
16792     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
16793     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
16794   }
16795   {
16796     USI opval = (* CGEN_CPU_FPU (current_cpu)->ops->fixsfsi) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRj)) + (1))));
16797     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (1)), opval);
16798     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
16799   }
16800 }
16801
16802   return vpc;
16803 #undef FLD
16804 }
16805
16806 /* nfditos: nfditos$pack $FRintj,$FRk */
16807
16808 static SEM_PC
16809 SEM_FN_NAME (frvbf,nfditos) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16810 {
16811 #define FLD(f) abuf->fields.sfmt_fditos.f
16812   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16813   int UNUSED written = 0;
16814   IADDR UNUSED pc = abuf->addr;
16815   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16816
16817 {
16818 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
16819   {
16820     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->floatsisf) (CGEN_CPU_FPU (current_cpu), GET_H_FR_INT (FLD (f_FRj)));
16821     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
16822     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
16823   }
16824 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
16825   {
16826     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->floatsisf) (CGEN_CPU_FPU (current_cpu), GET_H_FR_INT (((FLD (f_FRj)) + (1))));
16827     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
16828     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
16829   }
16830 }
16831
16832   return vpc;
16833 #undef FLD
16834 }
16835
16836 /* nfdstoi: nfdstoi$pack $FRj,$FRintk */
16837
16838 static SEM_PC
16839 SEM_FN_NAME (frvbf,nfdstoi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16840 {
16841 #define FLD(f) abuf->fields.sfmt_fdstoi.f
16842   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16843   int UNUSED written = 0;
16844   IADDR UNUSED pc = abuf->addr;
16845   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16846
16847 {
16848 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
16849   {
16850     SI opval = (* CGEN_CPU_FPU (current_cpu)->ops->fixsfsi) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
16851     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
16852     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
16853   }
16854 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
16855   {
16856     USI opval = (* CGEN_CPU_FPU (current_cpu)->ops->fixsfsi) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRj)) + (1))));
16857     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (1)), opval);
16858     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
16859   }
16860 }
16861
16862   return vpc;
16863 #undef FLD
16864 }
16865
16866 /* cfitos: cfitos$pack $FRintj,$FRk,$CCi,$cond */
16867
16868 static SEM_PC
16869 SEM_FN_NAME (frvbf,cfitos) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16870 {
16871 #define FLD(f) abuf->fields.sfmt_cfitos.f
16872   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16873   int UNUSED written = 0;
16874   IADDR UNUSED pc = abuf->addr;
16875   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16876
16877 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
16878   {
16879     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->floatsisf) (CGEN_CPU_FPU (current_cpu), GET_H_FR_INT (FLD (f_FRj)));
16880     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
16881     written |= (1 << 3);
16882     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
16883   }
16884 }
16885
16886   abuf->written = written;
16887   return vpc;
16888 #undef FLD
16889 }
16890
16891 /* cfstoi: cfstoi$pack $FRj,$FRintk,$CCi,$cond */
16892
16893 static SEM_PC
16894 SEM_FN_NAME (frvbf,cfstoi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16895 {
16896 #define FLD(f) abuf->fields.sfmt_cfstoi.f
16897   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16898   int UNUSED written = 0;
16899   IADDR UNUSED pc = abuf->addr;
16900   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16901
16902 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
16903   {
16904     SI opval = (* CGEN_CPU_FPU (current_cpu)->ops->fixsfsi) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
16905     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
16906     written |= (1 << 3);
16907     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
16908   }
16909 }
16910
16911   abuf->written = written;
16912   return vpc;
16913 #undef FLD
16914 }
16915
16916 /* nfitos: nfitos$pack $FRintj,$FRk */
16917
16918 static SEM_PC
16919 SEM_FN_NAME (frvbf,nfitos) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16920 {
16921 #define FLD(f) abuf->fields.sfmt_fditos.f
16922   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16923   int UNUSED written = 0;
16924   IADDR UNUSED pc = abuf->addr;
16925   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16926
16927 {
16928 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
16929   {
16930     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->floatsisf) (CGEN_CPU_FPU (current_cpu), GET_H_FR_INT (FLD (f_FRj)));
16931     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
16932     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
16933   }
16934 }
16935
16936   return vpc;
16937 #undef FLD
16938 }
16939
16940 /* nfstoi: nfstoi$pack $FRj,$FRintk */
16941
16942 static SEM_PC
16943 SEM_FN_NAME (frvbf,nfstoi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16944 {
16945 #define FLD(f) abuf->fields.sfmt_fdstoi.f
16946   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16947   int UNUSED written = 0;
16948   IADDR UNUSED pc = abuf->addr;
16949   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16950
16951 {
16952 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
16953   {
16954     SI opval = (* CGEN_CPU_FPU (current_cpu)->ops->fixsfsi) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
16955     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
16956     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
16957   }
16958 }
16959
16960   return vpc;
16961 #undef FLD
16962 }
16963
16964 /* fmovs: fmovs$pack $FRj,$FRk */
16965
16966 static SEM_PC
16967 SEM_FN_NAME (frvbf,fmovs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16968 {
16969 #define FLD(f) abuf->fields.sfmt_cfmadds.f
16970   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16971   int UNUSED written = 0;
16972   IADDR UNUSED pc = abuf->addr;
16973   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16974
16975   {
16976     SF opval = GET_H_FR (FLD (f_FRj));
16977     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
16978     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
16979   }
16980
16981   return vpc;
16982 #undef FLD
16983 }
16984
16985 /* fmovd: fmovd$pack $FRdoublej,$FRdoublek */
16986
16987 static SEM_PC
16988 SEM_FN_NAME (frvbf,fmovd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16989 {
16990 #define FLD(f) abuf->fields.sfmt_fmaddd.f
16991   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16992   int UNUSED written = 0;
16993   IADDR UNUSED pc = abuf->addr;
16994   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16995
16996   {
16997     DF opval = GET_H_FR_DOUBLE (FLD (f_FRj));
16998     sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
16999     TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
17000   }
17001
17002   return vpc;
17003 #undef FLD
17004 }
17005
17006 /* fdmovs: fdmovs$pack $FRj,$FRk */
17007
17008 static SEM_PC
17009 SEM_FN_NAME (frvbf,fdmovs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17010 {
17011 #define FLD(f) abuf->fields.sfmt_fdmadds.f
17012   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17013   int UNUSED written = 0;
17014   IADDR UNUSED pc = abuf->addr;
17015   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17016
17017 {
17018   {
17019     SF opval = GET_H_FR (FLD (f_FRj));
17020     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17021     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17022   }
17023   {
17024     SF opval = GET_H_FR (((FLD (f_FRj)) + (1)));
17025     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
17026     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17027   }
17028 }
17029
17030   return vpc;
17031 #undef FLD
17032 }
17033
17034 /* cfmovs: cfmovs$pack $FRj,$FRk,$CCi,$cond */
17035
17036 static SEM_PC
17037 SEM_FN_NAME (frvbf,cfmovs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17038 {
17039 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17040   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17041   int UNUSED written = 0;
17042   IADDR UNUSED pc = abuf->addr;
17043   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17044
17045 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
17046   {
17047     SF opval = GET_H_FR (FLD (f_FRj));
17048     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17049     written |= (1 << 3);
17050     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17051   }
17052 }
17053
17054   abuf->written = written;
17055   return vpc;
17056 #undef FLD
17057 }
17058
17059 /* fnegs: fnegs$pack $FRj,$FRk */
17060
17061 static SEM_PC
17062 SEM_FN_NAME (frvbf,fnegs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17063 {
17064 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17065   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17066   int UNUSED written = 0;
17067   IADDR UNUSED pc = abuf->addr;
17068   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17069
17070   {
17071     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->negsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17072     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17073     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17074   }
17075
17076   return vpc;
17077 #undef FLD
17078 }
17079
17080 /* fnegd: fnegd$pack $FRdoublej,$FRdoublek */
17081
17082 static SEM_PC
17083 SEM_FN_NAME (frvbf,fnegd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17084 {
17085 #define FLD(f) abuf->fields.sfmt_fmaddd.f
17086   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17087   int UNUSED written = 0;
17088   IADDR UNUSED pc = abuf->addr;
17089   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17090
17091   {
17092     DF opval = (* CGEN_CPU_FPU (current_cpu)->ops->negdf) (CGEN_CPU_FPU (current_cpu), GET_H_FR_DOUBLE (FLD (f_FRj)));
17093     sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
17094     TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
17095   }
17096
17097   return vpc;
17098 #undef FLD
17099 }
17100
17101 /* fdnegs: fdnegs$pack $FRj,$FRk */
17102
17103 static SEM_PC
17104 SEM_FN_NAME (frvbf,fdnegs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17105 {
17106 #define FLD(f) abuf->fields.sfmt_fdmadds.f
17107   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17108   int UNUSED written = 0;
17109   IADDR UNUSED pc = abuf->addr;
17110   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17111
17112 {
17113   {
17114     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->negsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17115     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17116     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17117   }
17118   {
17119     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->negsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRj)) + (1))));
17120     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
17121     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17122   }
17123 }
17124
17125   return vpc;
17126 #undef FLD
17127 }
17128
17129 /* cfnegs: cfnegs$pack $FRj,$FRk,$CCi,$cond */
17130
17131 static SEM_PC
17132 SEM_FN_NAME (frvbf,cfnegs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17133 {
17134 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17135   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17136   int UNUSED written = 0;
17137   IADDR UNUSED pc = abuf->addr;
17138   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17139
17140 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
17141   {
17142     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->negsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17143     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17144     written |= (1 << 3);
17145     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17146   }
17147 }
17148
17149   abuf->written = written;
17150   return vpc;
17151 #undef FLD
17152 }
17153
17154 /* fabss: fabss$pack $FRj,$FRk */
17155
17156 static SEM_PC
17157 SEM_FN_NAME (frvbf,fabss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17158 {
17159 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17160   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17161   int UNUSED written = 0;
17162   IADDR UNUSED pc = abuf->addr;
17163   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17164
17165   {
17166     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->abssf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17167     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17168     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17169   }
17170
17171   return vpc;
17172 #undef FLD
17173 }
17174
17175 /* fabsd: fabsd$pack $FRdoublej,$FRdoublek */
17176
17177 static SEM_PC
17178 SEM_FN_NAME (frvbf,fabsd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17179 {
17180 #define FLD(f) abuf->fields.sfmt_fmaddd.f
17181   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17182   int UNUSED written = 0;
17183   IADDR UNUSED pc = abuf->addr;
17184   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17185
17186   {
17187     DF opval = (* CGEN_CPU_FPU (current_cpu)->ops->absdf) (CGEN_CPU_FPU (current_cpu), GET_H_FR_DOUBLE (FLD (f_FRj)));
17188     sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
17189     TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
17190   }
17191
17192   return vpc;
17193 #undef FLD
17194 }
17195
17196 /* fdabss: fdabss$pack $FRj,$FRk */
17197
17198 static SEM_PC
17199 SEM_FN_NAME (frvbf,fdabss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17200 {
17201 #define FLD(f) abuf->fields.sfmt_fdmadds.f
17202   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17203   int UNUSED written = 0;
17204   IADDR UNUSED pc = abuf->addr;
17205   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17206
17207 {
17208   {
17209     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->abssf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17210     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17211     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17212   }
17213   {
17214     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->abssf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRj)) + (1))));
17215     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
17216     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17217   }
17218 }
17219
17220   return vpc;
17221 #undef FLD
17222 }
17223
17224 /* cfabss: cfabss$pack $FRj,$FRk,$CCi,$cond */
17225
17226 static SEM_PC
17227 SEM_FN_NAME (frvbf,cfabss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17228 {
17229 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17230   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17231   int UNUSED written = 0;
17232   IADDR UNUSED pc = abuf->addr;
17233   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17234
17235 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
17236   {
17237     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->abssf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17238     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17239     written |= (1 << 3);
17240     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17241   }
17242 }
17243
17244   abuf->written = written;
17245   return vpc;
17246 #undef FLD
17247 }
17248
17249 /* fsqrts: fsqrts$pack $FRj,$FRk */
17250
17251 static SEM_PC
17252 SEM_FN_NAME (frvbf,fsqrts) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17253 {
17254 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17255   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17256   int UNUSED written = 0;
17257   IADDR UNUSED pc = abuf->addr;
17258   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17259
17260   {
17261     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->sqrtsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17262     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17263     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17264   }
17265
17266   return vpc;
17267 #undef FLD
17268 }
17269
17270 /* fdsqrts: fdsqrts$pack $FRj,$FRk */
17271
17272 static SEM_PC
17273 SEM_FN_NAME (frvbf,fdsqrts) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17274 {
17275 #define FLD(f) abuf->fields.sfmt_fdmadds.f
17276   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17277   int UNUSED written = 0;
17278   IADDR UNUSED pc = abuf->addr;
17279   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17280
17281 {
17282   {
17283     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->sqrtsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17284     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17285     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17286   }
17287   {
17288     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->sqrtsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRj)) + (1))));
17289     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
17290     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17291   }
17292 }
17293
17294   return vpc;
17295 #undef FLD
17296 }
17297
17298 /* nfdsqrts: nfdsqrts$pack $FRj,$FRk */
17299
17300 static SEM_PC
17301 SEM_FN_NAME (frvbf,nfdsqrts) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17302 {
17303 #define FLD(f) abuf->fields.sfmt_fdmadds.f
17304   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17305   int UNUSED written = 0;
17306   IADDR UNUSED pc = abuf->addr;
17307   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17308
17309 {
17310 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
17311   {
17312     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->sqrtsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17313     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17314     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17315   }
17316 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
17317   {
17318     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->sqrtsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRj)) + (1))));
17319     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
17320     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17321   }
17322 }
17323
17324   return vpc;
17325 #undef FLD
17326 }
17327
17328 /* fsqrtd: fsqrtd$pack $FRdoublej,$FRdoublek */
17329
17330 static SEM_PC
17331 SEM_FN_NAME (frvbf,fsqrtd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17332 {
17333 #define FLD(f) abuf->fields.sfmt_fmaddd.f
17334   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17335   int UNUSED written = 0;
17336   IADDR UNUSED pc = abuf->addr;
17337   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17338
17339   {
17340     DF opval = (* CGEN_CPU_FPU (current_cpu)->ops->sqrtdf) (CGEN_CPU_FPU (current_cpu), GET_H_FR_DOUBLE (FLD (f_FRj)));
17341     sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
17342     TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
17343   }
17344
17345   return vpc;
17346 #undef FLD
17347 }
17348
17349 /* cfsqrts: cfsqrts$pack $FRj,$FRk,$CCi,$cond */
17350
17351 static SEM_PC
17352 SEM_FN_NAME (frvbf,cfsqrts) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17353 {
17354 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17355   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17356   int UNUSED written = 0;
17357   IADDR UNUSED pc = abuf->addr;
17358   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17359
17360 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
17361   {
17362     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->sqrtsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17363     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17364     written |= (1 << 3);
17365     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17366   }
17367 }
17368
17369   abuf->written = written;
17370   return vpc;
17371 #undef FLD
17372 }
17373
17374 /* nfsqrts: nfsqrts$pack $FRj,$FRk */
17375
17376 static SEM_PC
17377 SEM_FN_NAME (frvbf,nfsqrts) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17378 {
17379 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17380   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17381   int UNUSED written = 0;
17382   IADDR UNUSED pc = abuf->addr;
17383   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17384
17385 {
17386 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
17387   {
17388     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->sqrtsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17389     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17390     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17391   }
17392 }
17393
17394   return vpc;
17395 #undef FLD
17396 }
17397
17398 /* fadds: fadds$pack $FRi,$FRj,$FRk */
17399
17400 static SEM_PC
17401 SEM_FN_NAME (frvbf,fadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17402 {
17403 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17404   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17405   int UNUSED written = 0;
17406   IADDR UNUSED pc = abuf->addr;
17407   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17408
17409   {
17410     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->addsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)));
17411     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17412     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17413   }
17414
17415   return vpc;
17416 #undef FLD
17417 }
17418
17419 /* fsubs: fsubs$pack $FRi,$FRj,$FRk */
17420
17421 static SEM_PC
17422 SEM_FN_NAME (frvbf,fsubs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17423 {
17424 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17425   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17426   int UNUSED written = 0;
17427   IADDR UNUSED pc = abuf->addr;
17428   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17429
17430   {
17431     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->subsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)));
17432     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17433     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17434   }
17435
17436   return vpc;
17437 #undef FLD
17438 }
17439
17440 /* fmuls: fmuls$pack $FRi,$FRj,$FRk */
17441
17442 static SEM_PC
17443 SEM_FN_NAME (frvbf,fmuls) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17444 {
17445 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17446   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17447   int UNUSED written = 0;
17448   IADDR UNUSED pc = abuf->addr;
17449   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17450
17451   {
17452     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->mulsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)));
17453     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17454     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17455   }
17456
17457   return vpc;
17458 #undef FLD
17459 }
17460
17461 /* fdivs: fdivs$pack $FRi,$FRj,$FRk */
17462
17463 static SEM_PC
17464 SEM_FN_NAME (frvbf,fdivs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17465 {
17466 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17467   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17468   int UNUSED written = 0;
17469   IADDR UNUSED pc = abuf->addr;
17470   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17471
17472   {
17473     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->divsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)));
17474     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17475     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17476   }
17477
17478   return vpc;
17479 #undef FLD
17480 }
17481
17482 /* faddd: faddd$pack $FRdoublei,$FRdoublej,$FRdoublek */
17483
17484 static SEM_PC
17485 SEM_FN_NAME (frvbf,faddd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17486 {
17487 #define FLD(f) abuf->fields.sfmt_fmaddd.f
17488   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17489   int UNUSED written = 0;
17490   IADDR UNUSED pc = abuf->addr;
17491   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17492
17493   {
17494     DF opval = (* CGEN_CPU_FPU (current_cpu)->ops->adddf) (CGEN_CPU_FPU (current_cpu), GET_H_FR_DOUBLE (FLD (f_FRi)), GET_H_FR_DOUBLE (FLD (f_FRj)));
17495     sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
17496     TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
17497   }
17498
17499   return vpc;
17500 #undef FLD
17501 }
17502
17503 /* fsubd: fsubd$pack $FRdoublei,$FRdoublej,$FRdoublek */
17504
17505 static SEM_PC
17506 SEM_FN_NAME (frvbf,fsubd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17507 {
17508 #define FLD(f) abuf->fields.sfmt_fmaddd.f
17509   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17510   int UNUSED written = 0;
17511   IADDR UNUSED pc = abuf->addr;
17512   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17513
17514   {
17515     DF opval = (* CGEN_CPU_FPU (current_cpu)->ops->subdf) (CGEN_CPU_FPU (current_cpu), GET_H_FR_DOUBLE (FLD (f_FRi)), GET_H_FR_DOUBLE (FLD (f_FRj)));
17516     sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
17517     TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
17518   }
17519
17520   return vpc;
17521 #undef FLD
17522 }
17523
17524 /* fmuld: fmuld$pack $FRdoublei,$FRdoublej,$FRdoublek */
17525
17526 static SEM_PC
17527 SEM_FN_NAME (frvbf,fmuld) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17528 {
17529 #define FLD(f) abuf->fields.sfmt_fmaddd.f
17530   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17531   int UNUSED written = 0;
17532   IADDR UNUSED pc = abuf->addr;
17533   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17534
17535   {
17536     DF opval = (* CGEN_CPU_FPU (current_cpu)->ops->muldf) (CGEN_CPU_FPU (current_cpu), GET_H_FR_DOUBLE (FLD (f_FRi)), GET_H_FR_DOUBLE (FLD (f_FRj)));
17537     sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
17538     TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
17539   }
17540
17541   return vpc;
17542 #undef FLD
17543 }
17544
17545 /* fdivd: fdivd$pack $FRdoublei,$FRdoublej,$FRdoublek */
17546
17547 static SEM_PC
17548 SEM_FN_NAME (frvbf,fdivd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17549 {
17550 #define FLD(f) abuf->fields.sfmt_fmaddd.f
17551   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17552   int UNUSED written = 0;
17553   IADDR UNUSED pc = abuf->addr;
17554   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17555
17556   {
17557     DF opval = (* CGEN_CPU_FPU (current_cpu)->ops->divdf) (CGEN_CPU_FPU (current_cpu), GET_H_FR_DOUBLE (FLD (f_FRi)), GET_H_FR_DOUBLE (FLD (f_FRj)));
17558     sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
17559     TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
17560   }
17561
17562   return vpc;
17563 #undef FLD
17564 }
17565
17566 /* cfadds: cfadds$pack $FRi,$FRj,$FRk,$CCi,$cond */
17567
17568 static SEM_PC
17569 SEM_FN_NAME (frvbf,cfadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17570 {
17571 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17572   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17573   int UNUSED written = 0;
17574   IADDR UNUSED pc = abuf->addr;
17575   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17576
17577 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
17578   {
17579     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->addsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)));
17580     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17581     written |= (1 << 4);
17582     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17583   }
17584 }
17585
17586   abuf->written = written;
17587   return vpc;
17588 #undef FLD
17589 }
17590
17591 /* cfsubs: cfsubs$pack $FRi,$FRj,$FRk,$CCi,$cond */
17592
17593 static SEM_PC
17594 SEM_FN_NAME (frvbf,cfsubs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17595 {
17596 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17597   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17598   int UNUSED written = 0;
17599   IADDR UNUSED pc = abuf->addr;
17600   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17601
17602 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
17603   {
17604     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->subsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)));
17605     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17606     written |= (1 << 4);
17607     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17608   }
17609 }
17610
17611   abuf->written = written;
17612   return vpc;
17613 #undef FLD
17614 }
17615
17616 /* cfmuls: cfmuls$pack $FRi,$FRj,$FRk,$CCi,$cond */
17617
17618 static SEM_PC
17619 SEM_FN_NAME (frvbf,cfmuls) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17620 {
17621 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17622   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17623   int UNUSED written = 0;
17624   IADDR UNUSED pc = abuf->addr;
17625   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17626
17627 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
17628   {
17629     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->mulsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)));
17630     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17631     written |= (1 << 4);
17632     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17633   }
17634 }
17635
17636   abuf->written = written;
17637   return vpc;
17638 #undef FLD
17639 }
17640
17641 /* cfdivs: cfdivs$pack $FRi,$FRj,$FRk,$CCi,$cond */
17642
17643 static SEM_PC
17644 SEM_FN_NAME (frvbf,cfdivs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17645 {
17646 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17647   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17648   int UNUSED written = 0;
17649   IADDR UNUSED pc = abuf->addr;
17650   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17651
17652 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
17653   {
17654     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->divsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)));
17655     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17656     written |= (1 << 4);
17657     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17658   }
17659 }
17660
17661   abuf->written = written;
17662   return vpc;
17663 #undef FLD
17664 }
17665
17666 /* nfadds: nfadds$pack $FRi,$FRj,$FRk */
17667
17668 static SEM_PC
17669 SEM_FN_NAME (frvbf,nfadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17670 {
17671 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17672   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17673   int UNUSED written = 0;
17674   IADDR UNUSED pc = abuf->addr;
17675   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17676
17677 {
17678 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
17679   {
17680     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->addsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)));
17681     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17682     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17683   }
17684 }
17685
17686   return vpc;
17687 #undef FLD
17688 }
17689
17690 /* nfsubs: nfsubs$pack $FRi,$FRj,$FRk */
17691
17692 static SEM_PC
17693 SEM_FN_NAME (frvbf,nfsubs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17694 {
17695 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17696   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17697   int UNUSED written = 0;
17698   IADDR UNUSED pc = abuf->addr;
17699   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17700
17701 {
17702 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
17703   {
17704     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->subsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)));
17705     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17706     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17707   }
17708 }
17709
17710   return vpc;
17711 #undef FLD
17712 }
17713
17714 /* nfmuls: nfmuls$pack $FRi,$FRj,$FRk */
17715
17716 static SEM_PC
17717 SEM_FN_NAME (frvbf,nfmuls) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17718 {
17719 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17720   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17721   int UNUSED written = 0;
17722   IADDR UNUSED pc = abuf->addr;
17723   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17724
17725 {
17726 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
17727   {
17728     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->mulsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)));
17729     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17730     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17731   }
17732 }
17733
17734   return vpc;
17735 #undef FLD
17736 }
17737
17738 /* nfdivs: nfdivs$pack $FRi,$FRj,$FRk */
17739
17740 static SEM_PC
17741 SEM_FN_NAME (frvbf,nfdivs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17742 {
17743 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17744   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17745   int UNUSED written = 0;
17746   IADDR UNUSED pc = abuf->addr;
17747   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17748
17749 {
17750 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
17751   {
17752     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->divsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)));
17753     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17754     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17755   }
17756 }
17757
17758   return vpc;
17759 #undef FLD
17760 }
17761
17762 /* fcmps: fcmps$pack $FRi,$FRj,$FCCi_2 */
17763
17764 static SEM_PC
17765 SEM_FN_NAME (frvbf,fcmps) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17766 {
17767 #define FLD(f) abuf->fields.sfmt_cfcmps.f
17768   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17769   int UNUSED written = 0;
17770   IADDR UNUSED pc = abuf->addr;
17771   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17772
17773 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)))) {
17774   {
17775     UQI opval = 2;
17776     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17777     written |= (1 << 2);
17778     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17779   }
17780 } else {
17781 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)))) {
17782   {
17783     UQI opval = 8;
17784     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17785     written |= (1 << 2);
17786     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17787   }
17788 } else {
17789 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)))) {
17790   {
17791     UQI opval = 4;
17792     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17793     written |= (1 << 2);
17794     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17795   }
17796 } else {
17797   {
17798     UQI opval = 1;
17799     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17800     written |= (1 << 2);
17801     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17802   }
17803 }
17804 }
17805 }
17806
17807   abuf->written = written;
17808   return vpc;
17809 #undef FLD
17810 }
17811
17812 /* fcmpd: fcmpd$pack $FRdoublei,$FRdoublej,$FCCi_2 */
17813
17814 static SEM_PC
17815 SEM_FN_NAME (frvbf,fcmpd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17816 {
17817 #define FLD(f) abuf->fields.sfmt_fcmpd.f
17818   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17819   int UNUSED written = 0;
17820   IADDR UNUSED pc = abuf->addr;
17821   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17822
17823 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)))) {
17824   {
17825     UQI opval = 2;
17826     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17827     written |= (1 << 2);
17828     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17829   }
17830 } else {
17831 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)))) {
17832   {
17833     UQI opval = 8;
17834     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17835     written |= (1 << 2);
17836     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17837   }
17838 } else {
17839 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)))) {
17840   {
17841     UQI opval = 4;
17842     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17843     written |= (1 << 2);
17844     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17845   }
17846 } else {
17847   {
17848     UQI opval = 1;
17849     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17850     written |= (1 << 2);
17851     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17852   }
17853 }
17854 }
17855 }
17856
17857   abuf->written = written;
17858   return vpc;
17859 #undef FLD
17860 }
17861
17862 /* cfcmps: cfcmps$pack $FRi,$FRj,$FCCi_2,$CCi,$cond */
17863
17864 static SEM_PC
17865 SEM_FN_NAME (frvbf,cfcmps) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17866 {
17867 #define FLD(f) abuf->fields.sfmt_cfcmps.f
17868   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17869   int UNUSED written = 0;
17870   IADDR UNUSED pc = abuf->addr;
17871   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17872
17873 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
17874 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)))) {
17875   {
17876     UQI opval = 2;
17877     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17878     written |= (1 << 4);
17879     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17880   }
17881 } else {
17882 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)))) {
17883   {
17884     UQI opval = 8;
17885     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17886     written |= (1 << 4);
17887     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17888   }
17889 } else {
17890 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)))) {
17891   {
17892     UQI opval = 4;
17893     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17894     written |= (1 << 4);
17895     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17896   }
17897 } else {
17898   {
17899     UQI opval = 1;
17900     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17901     written |= (1 << 4);
17902     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17903   }
17904 }
17905 }
17906 }
17907 }
17908
17909   abuf->written = written;
17910   return vpc;
17911 #undef FLD
17912 }
17913
17914 /* fdcmps: fdcmps$pack $FRi,$FRj,$FCCi_2 */
17915
17916 static SEM_PC
17917 SEM_FN_NAME (frvbf,fdcmps) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17918 {
17919 #define FLD(f) abuf->fields.sfmt_nfdcmps.f
17920   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17921   int UNUSED written = 0;
17922   IADDR UNUSED pc = abuf->addr;
17923   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17924
17925 {
17926 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)))) {
17927   {
17928     UQI opval = 2;
17929     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17930     written |= (1 << 7);
17931     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17932   }
17933 } else {
17934 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)))) {
17935   {
17936     UQI opval = 8;
17937     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17938     written |= (1 << 7);
17939     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17940   }
17941 } else {
17942 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)))) {
17943   {
17944     UQI opval = 4;
17945     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17946     written |= (1 << 7);
17947     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17948   }
17949 } else {
17950   {
17951     UQI opval = 1;
17952     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17953     written |= (1 << 7);
17954     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17955   }
17956 }
17957 }
17958 }
17959 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))))) {
17960   {
17961     UQI opval = 2;
17962     sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCi_2)) + (1))]), opval);
17963     written |= (1 << 8);
17964     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17965   }
17966 } else {
17967 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))))) {
17968   {
17969     UQI opval = 8;
17970     sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCi_2)) + (1))]), opval);
17971     written |= (1 << 8);
17972     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17973   }
17974 } else {
17975 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))))) {
17976   {
17977     UQI opval = 4;
17978     sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCi_2)) + (1))]), opval);
17979     written |= (1 << 8);
17980     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17981   }
17982 } else {
17983   {
17984     UQI opval = 1;
17985     sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCi_2)) + (1))]), opval);
17986     written |= (1 << 8);
17987     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17988   }
17989 }
17990 }
17991 }
17992 }
17993
17994   abuf->written = written;
17995   return vpc;
17996 #undef FLD
17997 }
17998
17999 /* fmadds: fmadds$pack $FRi,$FRj,$FRk */
18000
18001 static SEM_PC
18002 SEM_FN_NAME (frvbf,fmadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18003 {
18004 #define FLD(f) abuf->fields.sfmt_cfmadds.f
18005   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18006   int UNUSED written = 0;
18007   IADDR UNUSED pc = abuf->addr;
18008   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18009
18010   {
18011     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->addsf) (CGEN_CPU_FPU (current_cpu), (* CGEN_CPU_FPU (current_cpu)->ops->mulsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj))), GET_H_FR (FLD (f_FRk)));
18012     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18013     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18014   }
18015
18016   return vpc;
18017 #undef FLD
18018 }
18019
18020 /* fmsubs: fmsubs$pack $FRi,$FRj,$FRk */
18021
18022 static SEM_PC
18023 SEM_FN_NAME (frvbf,fmsubs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18024 {
18025 #define FLD(f) abuf->fields.sfmt_cfmadds.f
18026   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18027   int UNUSED written = 0;
18028   IADDR UNUSED pc = abuf->addr;
18029   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18030
18031   {
18032     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->subsf) (CGEN_CPU_FPU (current_cpu), (* CGEN_CPU_FPU (current_cpu)->ops->mulsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj))), GET_H_FR (FLD (f_FRk)));
18033     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18034     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18035   }
18036
18037   return vpc;
18038 #undef FLD
18039 }
18040
18041 /* fmaddd: fmaddd$pack $FRdoublei,$FRdoublej,$FRdoublek */
18042
18043 static SEM_PC
18044 SEM_FN_NAME (frvbf,fmaddd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18045 {
18046 #define FLD(f) abuf->fields.sfmt_fmaddd.f
18047   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18048   int UNUSED written = 0;
18049   IADDR UNUSED pc = abuf->addr;
18050   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18051
18052   {
18053     DF opval = (* CGEN_CPU_FPU (current_cpu)->ops->adddf) (CGEN_CPU_FPU (current_cpu), (* CGEN_CPU_FPU (current_cpu)->ops->muldf) (CGEN_CPU_FPU (current_cpu), GET_H_FR_DOUBLE (FLD (f_FRi)), GET_H_FR_DOUBLE (FLD (f_FRj))), GET_H_FR_DOUBLE (FLD (f_FRk)));
18054     sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
18055     TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
18056   }
18057
18058   return vpc;
18059 #undef FLD
18060 }
18061
18062 /* fmsubd: fmsubd$pack $FRdoublei,$FRdoublej,$FRdoublek */
18063
18064 static SEM_PC
18065 SEM_FN_NAME (frvbf,fmsubd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18066 {
18067 #define FLD(f) abuf->fields.sfmt_fmaddd.f
18068   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18069   int UNUSED written = 0;
18070   IADDR UNUSED pc = abuf->addr;
18071   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18072
18073   {
18074     DF opval = (* CGEN_CPU_FPU (current_cpu)->ops->subdf) (CGEN_CPU_FPU (current_cpu), (* CGEN_CPU_FPU (current_cpu)->ops->muldf) (CGEN_CPU_FPU (current_cpu), GET_H_FR_DOUBLE (FLD (f_FRi)), GET_H_FR_DOUBLE (FLD (f_FRj))), GET_H_FR_DOUBLE (FLD (f_FRk)));
18075     sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
18076     TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
18077   }
18078
18079   return vpc;
18080 #undef FLD
18081 }
18082
18083 /* fdmadds: fdmadds$pack $FRi,$FRj,$FRk */
18084
18085 static SEM_PC
18086 SEM_FN_NAME (frvbf,fdmadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18087 {
18088 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18089   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18090   int UNUSED written = 0;
18091   IADDR UNUSED pc = abuf->addr;
18092   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18093
18094 {
18095   {
18096     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->addsf) (CGEN_CPU_FPU (current_cpu), (* CGEN_CPU_FPU (current_cpu)->ops->mulsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj))), GET_H_FR (FLD (f_FRk)));
18097     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18098     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18099   }
18100   {
18101     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->addsf) (CGEN_CPU_FPU (current_cpu), (* CGEN_CPU_FPU (current_cpu)->ops->mulsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (1))), GET_H_FR (((FLD (f_FRj)) + (1)))), GET_H_FR (((FLD (f_FRk)) + (1))));
18102     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18103     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18104   }
18105 }
18106
18107   return vpc;
18108 #undef FLD
18109 }
18110
18111 /* nfdmadds: nfdmadds$pack $FRi,$FRj,$FRk */
18112
18113 static SEM_PC
18114 SEM_FN_NAME (frvbf,nfdmadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18115 {
18116 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18117   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18118   int UNUSED written = 0;
18119   IADDR UNUSED pc = abuf->addr;
18120   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18121
18122 {
18123 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18124   {
18125     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->addsf) (CGEN_CPU_FPU (current_cpu), (* CGEN_CPU_FPU (current_cpu)->ops->mulsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj))), GET_H_FR (FLD (f_FRk)));
18126     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18127     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18128   }
18129 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18130   {
18131     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->addsf) (CGEN_CPU_FPU (current_cpu), (* CGEN_CPU_FPU (current_cpu)->ops->mulsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (1))), GET_H_FR (((FLD (f_FRj)) + (1)))), GET_H_FR (((FLD (f_FRk)) + (1))));
18132     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18133     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18134   }
18135 }
18136
18137   return vpc;
18138 #undef FLD
18139 }
18140
18141 /* cfmadds: cfmadds$pack $FRi,$FRj,$FRk,$CCi,$cond */
18142
18143 static SEM_PC
18144 SEM_FN_NAME (frvbf,cfmadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18145 {
18146 #define FLD(f) abuf->fields.sfmt_cfmadds.f
18147   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18148   int UNUSED written = 0;
18149   IADDR UNUSED pc = abuf->addr;
18150   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18151
18152 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
18153   {
18154     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->addsf) (CGEN_CPU_FPU (current_cpu), (* CGEN_CPU_FPU (current_cpu)->ops->mulsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj))), GET_H_FR (FLD (f_FRk)));
18155     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18156     written |= (1 << 5);
18157     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18158   }
18159 }
18160
18161   abuf->written = written;
18162   return vpc;
18163 #undef FLD
18164 }
18165
18166 /* cfmsubs: cfmsubs$pack $FRi,$FRj,$FRk,$CCi,$cond */
18167
18168 static SEM_PC
18169 SEM_FN_NAME (frvbf,cfmsubs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18170 {
18171 #define FLD(f) abuf->fields.sfmt_cfmadds.f
18172   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18173   int UNUSED written = 0;
18174   IADDR UNUSED pc = abuf->addr;
18175   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18176
18177 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
18178   {
18179     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->subsf) (CGEN_CPU_FPU (current_cpu), (* CGEN_CPU_FPU (current_cpu)->ops->mulsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj))), GET_H_FR (FLD (f_FRk)));
18180     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18181     written |= (1 << 5);
18182     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18183   }
18184 }
18185
18186   abuf->written = written;
18187   return vpc;
18188 #undef FLD
18189 }
18190
18191 /* nfmadds: nfmadds$pack $FRi,$FRj,$FRk */
18192
18193 static SEM_PC
18194 SEM_FN_NAME (frvbf,nfmadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18195 {
18196 #define FLD(f) abuf->fields.sfmt_cfmadds.f
18197   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18198   int UNUSED written = 0;
18199   IADDR UNUSED pc = abuf->addr;
18200   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18201
18202 {
18203 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18204   {
18205     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->addsf) (CGEN_CPU_FPU (current_cpu), (* CGEN_CPU_FPU (current_cpu)->ops->mulsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj))), GET_H_FR (FLD (f_FRk)));
18206     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18207     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18208   }
18209 }
18210
18211   return vpc;
18212 #undef FLD
18213 }
18214
18215 /* nfmsubs: nfmsubs$pack $FRi,$FRj,$FRk */
18216
18217 static SEM_PC
18218 SEM_FN_NAME (frvbf,nfmsubs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18219 {
18220 #define FLD(f) abuf->fields.sfmt_cfmadds.f
18221   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18222   int UNUSED written = 0;
18223   IADDR UNUSED pc = abuf->addr;
18224   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18225
18226 {
18227 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18228   {
18229     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->subsf) (CGEN_CPU_FPU (current_cpu), (* CGEN_CPU_FPU (current_cpu)->ops->mulsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj))), GET_H_FR (FLD (f_FRk)));
18230     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18231     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18232   }
18233 }
18234
18235   return vpc;
18236 #undef FLD
18237 }
18238
18239 /* fmas: fmas$pack $FRi,$FRj,$FRk */
18240
18241 static SEM_PC
18242 SEM_FN_NAME (frvbf,fmas) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18243 {
18244 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18245   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18246   int UNUSED written = 0;
18247   IADDR UNUSED pc = abuf->addr;
18248   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18249
18250 {
18251   {
18252     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->mulsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)));
18253     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18254     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18255   }
18256   {
18257     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->addsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (1))), GET_H_FR (((FLD (f_FRj)) + (1))));
18258     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18259     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18260   }
18261 }
18262
18263   return vpc;
18264 #undef FLD
18265 }
18266
18267 /* fmss: fmss$pack $FRi,$FRj,$FRk */
18268
18269 static SEM_PC
18270 SEM_FN_NAME (frvbf,fmss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18271 {
18272 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18273   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18274   int UNUSED written = 0;
18275   IADDR UNUSED pc = abuf->addr;
18276   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18277
18278 {
18279   {
18280     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->mulsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)));
18281     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18282     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18283   }
18284   {
18285     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->subsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (1))), GET_H_FR (((FLD (f_FRj)) + (1))));
18286     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18287     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18288   }
18289 }
18290
18291   return vpc;
18292 #undef FLD
18293 }
18294
18295 /* fdmas: fdmas$pack $FRi,$FRj,$FRk */
18296
18297 static SEM_PC
18298 SEM_FN_NAME (frvbf,fdmas) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18299 {
18300 #define FLD(f) abuf->fields.sfmt_fdmas.f
18301   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18302   int UNUSED written = 0;
18303   IADDR UNUSED pc = abuf->addr;
18304   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18305
18306 {
18307   {
18308     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->mulsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)));
18309     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18310     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18311   }
18312   {
18313     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->addsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (1))), GET_H_FR (((FLD (f_FRj)) + (1))));
18314     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18315     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18316   }
18317   {
18318     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->mulsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (2))), GET_H_FR (((FLD (f_FRj)) + (2))));
18319     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (2)), opval);
18320     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18321   }
18322   {
18323     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->addsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (3))), GET_H_FR (((FLD (f_FRj)) + (3))));
18324     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (3)), opval);
18325     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18326   }
18327 }
18328
18329   return vpc;
18330 #undef FLD
18331 }
18332
18333 /* fdmss: fdmss$pack $FRi,$FRj,$FRk */
18334
18335 static SEM_PC
18336 SEM_FN_NAME (frvbf,fdmss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18337 {
18338 #define FLD(f) abuf->fields.sfmt_fdmas.f
18339   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18340   int UNUSED written = 0;
18341   IADDR UNUSED pc = abuf->addr;
18342   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18343
18344 {
18345   {
18346     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->mulsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)));
18347     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18348     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18349   }
18350   {
18351     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->subsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (1))), GET_H_FR (((FLD (f_FRj)) + (1))));
18352     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18353     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18354   }
18355   {
18356     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->mulsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (2))), GET_H_FR (((FLD (f_FRj)) + (2))));
18357     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (2)), opval);
18358     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18359   }
18360   {
18361     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->subsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (3))), GET_H_FR (((FLD (f_FRj)) + (3))));
18362     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (3)), opval);
18363     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18364   }
18365 }
18366
18367   return vpc;
18368 #undef FLD
18369 }
18370
18371 /* nfdmas: nfdmas$pack $FRi,$FRj,$FRk */
18372
18373 static SEM_PC
18374 SEM_FN_NAME (frvbf,nfdmas) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18375 {
18376 #define FLD(f) abuf->fields.sfmt_fdmas.f
18377   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18378   int UNUSED written = 0;
18379   IADDR UNUSED pc = abuf->addr;
18380   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18381
18382 {
18383 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18384 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18385 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 2));
18386 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 3));
18387   {
18388     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->mulsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)));
18389     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18390     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18391   }
18392   {
18393     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->addsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (1))), GET_H_FR (((FLD (f_FRj)) + (1))));
18394     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18395     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18396   }
18397   {
18398     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->mulsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (2))), GET_H_FR (((FLD (f_FRj)) + (2))));
18399     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (2)), opval);
18400     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18401   }
18402   {
18403     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->addsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (3))), GET_H_FR (((FLD (f_FRj)) + (3))));
18404     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (3)), opval);
18405     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18406   }
18407 }
18408
18409   return vpc;
18410 #undef FLD
18411 }
18412
18413 /* nfdmss: nfdmss$pack $FRi,$FRj,$FRk */
18414
18415 static SEM_PC
18416 SEM_FN_NAME (frvbf,nfdmss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18417 {
18418 #define FLD(f) abuf->fields.sfmt_fdmas.f
18419   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18420   int UNUSED written = 0;
18421   IADDR UNUSED pc = abuf->addr;
18422   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18423
18424 {
18425 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18426 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18427 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 2));
18428 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 3));
18429   {
18430     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->mulsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)));
18431     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18432     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18433   }
18434   {
18435     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->subsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (1))), GET_H_FR (((FLD (f_FRj)) + (1))));
18436     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18437     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18438   }
18439   {
18440     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->mulsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (2))), GET_H_FR (((FLD (f_FRj)) + (2))));
18441     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (2)), opval);
18442     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18443   }
18444   {
18445     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->subsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (3))), GET_H_FR (((FLD (f_FRj)) + (3))));
18446     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (3)), opval);
18447     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18448   }
18449 }
18450
18451   return vpc;
18452 #undef FLD
18453 }
18454
18455 /* cfmas: cfmas$pack $FRi,$FRj,$FRk,$CCi,$cond */
18456
18457 static SEM_PC
18458 SEM_FN_NAME (frvbf,cfmas) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18459 {
18460 #define FLD(f) abuf->fields.sfmt_cfmas.f
18461   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18462   int UNUSED written = 0;
18463   IADDR UNUSED pc = abuf->addr;
18464   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18465
18466 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
18467 {
18468   {
18469     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->mulsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)));
18470     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18471     written |= (1 << 9);
18472     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18473   }
18474   {
18475     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->addsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (1))), GET_H_FR (((FLD (f_FRj)) + (1))));
18476     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18477     written |= (1 << 10);
18478     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18479   }
18480 }
18481 }
18482
18483   abuf->written = written;
18484   return vpc;
18485 #undef FLD
18486 }
18487
18488 /* cfmss: cfmss$pack $FRi,$FRj,$FRk,$CCi,$cond */
18489
18490 static SEM_PC
18491 SEM_FN_NAME (frvbf,cfmss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18492 {
18493 #define FLD(f) abuf->fields.sfmt_cfmas.f
18494   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18495   int UNUSED written = 0;
18496   IADDR UNUSED pc = abuf->addr;
18497   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18498
18499 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
18500 {
18501   {
18502     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->mulsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)));
18503     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18504     written |= (1 << 9);
18505     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18506   }
18507   {
18508     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->subsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (1))), GET_H_FR (((FLD (f_FRj)) + (1))));
18509     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18510     written |= (1 << 10);
18511     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18512   }
18513 }
18514 }
18515
18516   abuf->written = written;
18517   return vpc;
18518 #undef FLD
18519 }
18520
18521 /* fmad: fmad$pack $FRi,$FRj,$FRk */
18522
18523 static SEM_PC
18524 SEM_FN_NAME (frvbf,fmad) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18525 {
18526 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18527   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18528   int UNUSED written = 0;
18529   IADDR UNUSED pc = abuf->addr;
18530   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18531
18532 {
18533   {
18534     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->ftruncdfsf) (CGEN_CPU_FPU (current_cpu), (* CGEN_CPU_FPU (current_cpu)->ops->muldf) (CGEN_CPU_FPU (current_cpu), (* CGEN_CPU_FPU (current_cpu)->ops->fextsfdf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi))), (* CGEN_CPU_FPU (current_cpu)->ops->fextsfdf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)))));
18535     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18536     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18537   }
18538   {
18539     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->ftruncdfsf) (CGEN_CPU_FPU (current_cpu), (* CGEN_CPU_FPU (current_cpu)->ops->adddf) (CGEN_CPU_FPU (current_cpu), (* CGEN_CPU_FPU (current_cpu)->ops->fextsfdf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (1)))), (* CGEN_CPU_FPU (current_cpu)->ops->fextsfdf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRj)) + (1))))));
18540     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18541     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18542   }
18543 }
18544
18545   return vpc;
18546 #undef FLD
18547 }
18548
18549 /* fmsd: fmsd$pack $FRi,$FRj,$FRk */
18550
18551 static SEM_PC
18552 SEM_FN_NAME (frvbf,fmsd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18553 {
18554 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18555   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18556   int UNUSED written = 0;
18557   IADDR UNUSED pc = abuf->addr;
18558   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18559
18560 {
18561   {
18562     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->ftruncdfsf) (CGEN_CPU_FPU (current_cpu), (* CGEN_CPU_FPU (current_cpu)->ops->muldf) (CGEN_CPU_FPU (current_cpu), (* CGEN_CPU_FPU (current_cpu)->ops->fextsfdf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi))), (* CGEN_CPU_FPU (current_cpu)->ops->fextsfdf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)))));
18563     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18564     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18565   }
18566   {
18567     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->ftruncdfsf) (CGEN_CPU_FPU (current_cpu), (* CGEN_CPU_FPU (current_cpu)->ops->subdf) (CGEN_CPU_FPU (current_cpu), (* CGEN_CPU_FPU (current_cpu)->ops->fextsfdf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (1)))), (* CGEN_CPU_FPU (current_cpu)->ops->fextsfdf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRj)) + (1))))));
18568     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18569     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18570   }
18571 }
18572
18573   return vpc;
18574 #undef FLD
18575 }
18576
18577 /* nfmas: nfmas$pack $FRi,$FRj,$FRk */
18578
18579 static SEM_PC
18580 SEM_FN_NAME (frvbf,nfmas) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18581 {
18582 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18583   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18584   int UNUSED written = 0;
18585   IADDR UNUSED pc = abuf->addr;
18586   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18587
18588 {
18589 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18590   {
18591     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->mulsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)));
18592     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18593     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18594   }
18595 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18596   {
18597     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->addsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (1))), GET_H_FR (((FLD (f_FRj)) + (1))));
18598     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18599     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18600   }
18601 }
18602
18603   return vpc;
18604 #undef FLD
18605 }
18606
18607 /* nfmss: nfmss$pack $FRi,$FRj,$FRk */
18608
18609 static SEM_PC
18610 SEM_FN_NAME (frvbf,nfmss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18611 {
18612 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18613   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18614   int UNUSED written = 0;
18615   IADDR UNUSED pc = abuf->addr;
18616   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18617
18618 {
18619 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18620   {
18621     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->mulsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)));
18622     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18623     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18624   }
18625 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18626   {
18627     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->subsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (1))), GET_H_FR (((FLD (f_FRj)) + (1))));
18628     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18629     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18630   }
18631 }
18632
18633   return vpc;
18634 #undef FLD
18635 }
18636
18637 /* fdadds: fdadds$pack $FRi,$FRj,$FRk */
18638
18639 static SEM_PC
18640 SEM_FN_NAME (frvbf,fdadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18641 {
18642 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18643   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18644   int UNUSED written = 0;
18645   IADDR UNUSED pc = abuf->addr;
18646   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18647
18648 {
18649   {
18650     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->addsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)));
18651     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18652     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18653   }
18654   {
18655     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->addsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (1))), GET_H_FR (((FLD (f_FRj)) + (1))));
18656     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18657     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18658   }
18659 }
18660
18661   return vpc;
18662 #undef FLD
18663 }
18664
18665 /* fdsubs: fdsubs$pack $FRi,$FRj,$FRk */
18666
18667 static SEM_PC
18668 SEM_FN_NAME (frvbf,fdsubs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18669 {
18670 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18671   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18672   int UNUSED written = 0;
18673   IADDR UNUSED pc = abuf->addr;
18674   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18675
18676 {
18677   {
18678     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->subsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)));
18679     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18680     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18681   }
18682   {
18683     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->subsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (1))), GET_H_FR (((FLD (f_FRj)) + (1))));
18684     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18685     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18686   }
18687 }
18688
18689   return vpc;
18690 #undef FLD
18691 }
18692
18693 /* fdmuls: fdmuls$pack $FRi,$FRj,$FRk */
18694
18695 static SEM_PC
18696 SEM_FN_NAME (frvbf,fdmuls) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18697 {
18698 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18699   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18700   int UNUSED written = 0;
18701   IADDR UNUSED pc = abuf->addr;
18702   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18703
18704 {
18705   {
18706     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->mulsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)));
18707     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18708     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18709   }
18710   {
18711     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->mulsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (1))), GET_H_FR (((FLD (f_FRj)) + (1))));
18712     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18713     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18714   }
18715 }
18716
18717   return vpc;
18718 #undef FLD
18719 }
18720
18721 /* fddivs: fddivs$pack $FRi,$FRj,$FRk */
18722
18723 static SEM_PC
18724 SEM_FN_NAME (frvbf,fddivs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18725 {
18726 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18727   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18728   int UNUSED written = 0;
18729   IADDR UNUSED pc = abuf->addr;
18730   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18731
18732 {
18733   {
18734     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->divsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)));
18735     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18736     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18737   }
18738   {
18739     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->divsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (1))), GET_H_FR (((FLD (f_FRj)) + (1))));
18740     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18741     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18742   }
18743 }
18744
18745   return vpc;
18746 #undef FLD
18747 }
18748
18749 /* fdsads: fdsads$pack $FRi,$FRj,$FRk */
18750
18751 static SEM_PC
18752 SEM_FN_NAME (frvbf,fdsads) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18753 {
18754 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18755   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18756   int UNUSED written = 0;
18757   IADDR UNUSED pc = abuf->addr;
18758   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18759
18760 {
18761   {
18762     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->addsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)));
18763     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18764     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18765   }
18766   {
18767     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->subsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (1))), GET_H_FR (((FLD (f_FRj)) + (1))));
18768     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18769     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18770   }
18771 }
18772
18773   return vpc;
18774 #undef FLD
18775 }
18776
18777 /* fdmulcs: fdmulcs$pack $FRi,$FRj,$FRk */
18778
18779 static SEM_PC
18780 SEM_FN_NAME (frvbf,fdmulcs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18781 {
18782 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18783   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18784   int UNUSED written = 0;
18785   IADDR UNUSED pc = abuf->addr;
18786   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18787
18788 {
18789   {
18790     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->mulsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (((FLD (f_FRj)) + (1))));
18791     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18792     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18793   }
18794   {
18795     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->mulsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (1))), GET_H_FR (FLD (f_FRj)));
18796     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18797     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18798   }
18799 }
18800
18801   return vpc;
18802 #undef FLD
18803 }
18804
18805 /* nfdmulcs: nfdmulcs$pack $FRi,$FRj,$FRk */
18806
18807 static SEM_PC
18808 SEM_FN_NAME (frvbf,nfdmulcs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18809 {
18810 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18811   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18812   int UNUSED written = 0;
18813   IADDR UNUSED pc = abuf->addr;
18814   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18815
18816 {
18817 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18818   {
18819     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->mulsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (((FLD (f_FRj)) + (1))));
18820     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18821     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18822   }
18823 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18824   {
18825     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->mulsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (1))), GET_H_FR (FLD (f_FRj)));
18826     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18827     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18828   }
18829 }
18830
18831   return vpc;
18832 #undef FLD
18833 }
18834
18835 /* nfdadds: nfdadds$pack $FRi,$FRj,$FRk */
18836
18837 static SEM_PC
18838 SEM_FN_NAME (frvbf,nfdadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18839 {
18840 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18841   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18842   int UNUSED written = 0;
18843   IADDR UNUSED pc = abuf->addr;
18844   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18845
18846 {
18847 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18848   {
18849     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->addsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)));
18850     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18851     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18852   }
18853 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18854   {
18855     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->addsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (1))), GET_H_FR (((FLD (f_FRj)) + (1))));
18856     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18857     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18858   }
18859 }
18860
18861   return vpc;
18862 #undef FLD
18863 }
18864
18865 /* nfdsubs: nfdsubs$pack $FRi,$FRj,$FRk */
18866
18867 static SEM_PC
18868 SEM_FN_NAME (frvbf,nfdsubs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18869 {
18870 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18871   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18872   int UNUSED written = 0;
18873   IADDR UNUSED pc = abuf->addr;
18874   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18875
18876 {
18877 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18878   {
18879     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->subsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)));
18880     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18881     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18882   }
18883 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18884   {
18885     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->subsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (1))), GET_H_FR (((FLD (f_FRj)) + (1))));
18886     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18887     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18888   }
18889 }
18890
18891   return vpc;
18892 #undef FLD
18893 }
18894
18895 /* nfdmuls: nfdmuls$pack $FRi,$FRj,$FRk */
18896
18897 static SEM_PC
18898 SEM_FN_NAME (frvbf,nfdmuls) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18899 {
18900 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18901   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18902   int UNUSED written = 0;
18903   IADDR UNUSED pc = abuf->addr;
18904   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18905
18906 {
18907 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18908   {
18909     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->mulsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)));
18910     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18911     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18912   }
18913 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18914   {
18915     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->mulsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (1))), GET_H_FR (((FLD (f_FRj)) + (1))));
18916     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18917     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18918   }
18919 }
18920
18921   return vpc;
18922 #undef FLD
18923 }
18924
18925 /* nfddivs: nfddivs$pack $FRi,$FRj,$FRk */
18926
18927 static SEM_PC
18928 SEM_FN_NAME (frvbf,nfddivs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18929 {
18930 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18931   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18932   int UNUSED written = 0;
18933   IADDR UNUSED pc = abuf->addr;
18934   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18935
18936 {
18937 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18938   {
18939     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->divsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)));
18940     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18941     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18942   }
18943 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18944   {
18945     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->divsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (1))), GET_H_FR (((FLD (f_FRj)) + (1))));
18946     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18947     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18948   }
18949 }
18950
18951   return vpc;
18952 #undef FLD
18953 }
18954
18955 /* nfdsads: nfdsads$pack $FRi,$FRj,$FRk */
18956
18957 static SEM_PC
18958 SEM_FN_NAME (frvbf,nfdsads) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18959 {
18960 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18961   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18962   int UNUSED written = 0;
18963   IADDR UNUSED pc = abuf->addr;
18964   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18965
18966 {
18967 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18968   {
18969     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->addsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)));
18970     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18971     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18972   }
18973 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18974   {
18975     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->subsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (1))), GET_H_FR (((FLD (f_FRj)) + (1))));
18976     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18977     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18978   }
18979 }
18980
18981   return vpc;
18982 #undef FLD
18983 }
18984
18985 /* nfdcmps: nfdcmps$pack $FRi,$FRj,$FCCi_2 */
18986
18987 static SEM_PC
18988 SEM_FN_NAME (frvbf,nfdcmps) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18989 {
18990 #define FLD(f) abuf->fields.sfmt_nfdcmps.f
18991   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18992   int UNUSED written = 0;
18993   IADDR UNUSED pc = abuf->addr;
18994   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18995
18996 {
18997 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18998 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)))) {
18999   {
19000     UQI opval = 2;
19001     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
19002     written |= (1 << 8);
19003     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
19004   }
19005 } else {
19006 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)))) {
19007   {
19008     UQI opval = 8;
19009     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
19010     written |= (1 << 8);
19011     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
19012   }
19013 } else {
19014 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)))) {
19015   {
19016     UQI opval = 4;
19017     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
19018     written |= (1 << 8);
19019     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
19020   }
19021 } else {
19022   {
19023     UQI opval = 1;
19024     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
19025     written |= (1 << 8);
19026     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
19027   }
19028 }
19029 }
19030 }
19031 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
19032 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))))) {
19033   {
19034     UQI opval = 2;
19035     sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCi_2)) + (1))]), opval);
19036     written |= (1 << 9);
19037     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
19038   }
19039 } else {
19040 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))))) {
19041   {
19042     UQI opval = 8;
19043     sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCi_2)) + (1))]), opval);
19044     written |= (1 << 9);
19045     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
19046   }
19047 } else {
19048 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))))) {
19049   {
19050     UQI opval = 4;
19051     sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCi_2)) + (1))]), opval);
19052     written |= (1 << 9);
19053     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
19054   }
19055 } else {
19056   {
19057     UQI opval = 1;
19058     sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCi_2)) + (1))]), opval);
19059     written |= (1 << 9);
19060     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
19061   }
19062 }
19063 }
19064 }
19065 }
19066
19067   abuf->written = written;
19068   return vpc;
19069 #undef FLD
19070 }
19071
19072 /* mhsetlos: mhsetlos$pack $u12,$FRklo */
19073
19074 static SEM_PC
19075 SEM_FN_NAME (frvbf,mhsetlos) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19076 {
19077 #define FLD(f) abuf->fields.sfmt_mhsetlos.f
19078   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19079   int UNUSED written = 0;
19080   IADDR UNUSED pc = abuf->addr;
19081   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19082
19083   {
19084     UHI opval = FLD (f_u12);
19085     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, FLD (f_FRk), opval);
19086     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19087   }
19088
19089   return vpc;
19090 #undef FLD
19091 }
19092
19093 /* mhsethis: mhsethis$pack $u12,$FRkhi */
19094
19095 static SEM_PC
19096 SEM_FN_NAME (frvbf,mhsethis) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19097 {
19098 #define FLD(f) abuf->fields.sfmt_mhsethis.f
19099   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19100   int UNUSED written = 0;
19101   IADDR UNUSED pc = abuf->addr;
19102   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19103
19104   {
19105     UHI opval = FLD (f_u12);
19106     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, FLD (f_FRk), opval);
19107     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19108   }
19109
19110   return vpc;
19111 #undef FLD
19112 }
19113
19114 /* mhdsets: mhdsets$pack $u12,$FRintk */
19115
19116 static SEM_PC
19117 SEM_FN_NAME (frvbf,mhdsets) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19118 {
19119 #define FLD(f) abuf->fields.sfmt_mhdsets.f
19120   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19121   int UNUSED written = 0;
19122   IADDR UNUSED pc = abuf->addr;
19123   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19124
19125 {
19126   {
19127     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
19128     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19129     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19130   }
19131   {
19132     UHI opval = FLD (f_u12);
19133     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
19134     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19135   }
19136   {
19137     UHI opval = FLD (f_u12);
19138     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
19139     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19140   }
19141 }
19142
19143   return vpc;
19144 #undef FLD
19145 }
19146
19147 /* mhsetloh: mhsetloh$pack $s5,$FRklo */
19148
19149 static SEM_PC
19150 SEM_FN_NAME (frvbf,mhsetloh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19151 {
19152 #define FLD(f) abuf->fields.sfmt_mhsetloh.f
19153   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19154   int UNUSED written = 0;
19155   IADDR UNUSED pc = abuf->addr;
19156   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19157
19158 {
19159   HI tmp_tmp;
19160   tmp_tmp = GET_H_FR_LO (FLD (f_FRk));
19161   tmp_tmp = ANDHI (tmp_tmp, 2047);
19162   tmp_tmp = ORHI (tmp_tmp, SLLSI (ANDSI (FLD (f_s5), 31), 11));
19163   {
19164     UHI opval = tmp_tmp;
19165     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, FLD (f_FRk), opval);
19166     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19167   }
19168 }
19169
19170   return vpc;
19171 #undef FLD
19172 }
19173
19174 /* mhsethih: mhsethih$pack $s5,$FRkhi */
19175
19176 static SEM_PC
19177 SEM_FN_NAME (frvbf,mhsethih) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19178 {
19179 #define FLD(f) abuf->fields.sfmt_mhsethih.f
19180   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19181   int UNUSED written = 0;
19182   IADDR UNUSED pc = abuf->addr;
19183   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19184
19185 {
19186   HI tmp_tmp;
19187   tmp_tmp = GET_H_FR_HI (FLD (f_FRk));
19188   tmp_tmp = ANDHI (tmp_tmp, 2047);
19189   tmp_tmp = ORHI (tmp_tmp, SLLSI (ANDSI (FLD (f_s5), 31), 11));
19190   {
19191     UHI opval = tmp_tmp;
19192     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, FLD (f_FRk), opval);
19193     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19194   }
19195 }
19196
19197   return vpc;
19198 #undef FLD
19199 }
19200
19201 /* mhdseth: mhdseth$pack $s5,$FRintk */
19202
19203 static SEM_PC
19204 SEM_FN_NAME (frvbf,mhdseth) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19205 {
19206 #define FLD(f) abuf->fields.sfmt_mhdseth.f
19207   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19208   int UNUSED written = 0;
19209   IADDR UNUSED pc = abuf->addr;
19210   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19211
19212 {
19213   {
19214     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
19215     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19216     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19217   }
19218 {
19219   HI tmp_tmp;
19220   tmp_tmp = GET_H_FR_HI (((FLD (f_FRk)) + (0)));
19221   tmp_tmp = ANDHI (tmp_tmp, 2047);
19222   tmp_tmp = ORHI (tmp_tmp, SLLSI (ANDSI (FLD (f_s5), 31), 11));
19223   {
19224     UHI opval = tmp_tmp;
19225     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
19226     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19227   }
19228 }
19229 {
19230   HI tmp_tmp;
19231   tmp_tmp = GET_H_FR_LO (((FLD (f_FRk)) + (0)));
19232   tmp_tmp = ANDHI (tmp_tmp, 2047);
19233   tmp_tmp = ORHI (tmp_tmp, SLLSI (ANDSI (FLD (f_s5), 31), 11));
19234   {
19235     UHI opval = tmp_tmp;
19236     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
19237     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19238   }
19239 }
19240 }
19241
19242   return vpc;
19243 #undef FLD
19244 }
19245
19246 /* mand: mand$pack $FRinti,$FRintj,$FRintk */
19247
19248 static SEM_PC
19249 SEM_FN_NAME (frvbf,mand) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19250 {
19251 #define FLD(f) abuf->fields.sfmt_mwcut.f
19252   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19253   int UNUSED written = 0;
19254   IADDR UNUSED pc = abuf->addr;
19255   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19256
19257   {
19258     SI opval = ANDSI (GET_H_FR_INT (FLD (f_FRi)), GET_H_FR_INT (FLD (f_FRj)));
19259     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19260     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19261   }
19262
19263   return vpc;
19264 #undef FLD
19265 }
19266
19267 /* mor: mor$pack $FRinti,$FRintj,$FRintk */
19268
19269 static SEM_PC
19270 SEM_FN_NAME (frvbf,mor) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19271 {
19272 #define FLD(f) abuf->fields.sfmt_mwcut.f
19273   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19274   int UNUSED written = 0;
19275   IADDR UNUSED pc = abuf->addr;
19276   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19277
19278   {
19279     SI opval = ORSI (GET_H_FR_INT (FLD (f_FRi)), GET_H_FR_INT (FLD (f_FRj)));
19280     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19281     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19282   }
19283
19284   return vpc;
19285 #undef FLD
19286 }
19287
19288 /* mxor: mxor$pack $FRinti,$FRintj,$FRintk */
19289
19290 static SEM_PC
19291 SEM_FN_NAME (frvbf,mxor) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19292 {
19293 #define FLD(f) abuf->fields.sfmt_mwcut.f
19294   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19295   int UNUSED written = 0;
19296   IADDR UNUSED pc = abuf->addr;
19297   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19298
19299   {
19300     SI opval = XORSI (GET_H_FR_INT (FLD (f_FRi)), GET_H_FR_INT (FLD (f_FRj)));
19301     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19302     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19303   }
19304
19305   return vpc;
19306 #undef FLD
19307 }
19308
19309 /* cmand: cmand$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
19310
19311 static SEM_PC
19312 SEM_FN_NAME (frvbf,cmand) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19313 {
19314 #define FLD(f) abuf->fields.sfmt_cmand.f
19315   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19316   int UNUSED written = 0;
19317   IADDR UNUSED pc = abuf->addr;
19318   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19319
19320 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
19321   {
19322     SI opval = ANDSI (GET_H_FR_INT (FLD (f_FRi)), GET_H_FR_INT (FLD (f_FRj)));
19323     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19324     written |= (1 << 4);
19325     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19326   }
19327 }
19328
19329   abuf->written = written;
19330   return vpc;
19331 #undef FLD
19332 }
19333
19334 /* cmor: cmor$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
19335
19336 static SEM_PC
19337 SEM_FN_NAME (frvbf,cmor) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19338 {
19339 #define FLD(f) abuf->fields.sfmt_cmand.f
19340   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19341   int UNUSED written = 0;
19342   IADDR UNUSED pc = abuf->addr;
19343   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19344
19345 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
19346   {
19347     SI opval = ORSI (GET_H_FR_INT (FLD (f_FRi)), GET_H_FR_INT (FLD (f_FRj)));
19348     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19349     written |= (1 << 4);
19350     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19351   }
19352 }
19353
19354   abuf->written = written;
19355   return vpc;
19356 #undef FLD
19357 }
19358
19359 /* cmxor: cmxor$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
19360
19361 static SEM_PC
19362 SEM_FN_NAME (frvbf,cmxor) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19363 {
19364 #define FLD(f) abuf->fields.sfmt_cmand.f
19365   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19366   int UNUSED written = 0;
19367   IADDR UNUSED pc = abuf->addr;
19368   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19369
19370 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
19371   {
19372     SI opval = XORSI (GET_H_FR_INT (FLD (f_FRi)), GET_H_FR_INT (FLD (f_FRj)));
19373     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19374     written |= (1 << 4);
19375     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19376   }
19377 }
19378
19379   abuf->written = written;
19380   return vpc;
19381 #undef FLD
19382 }
19383
19384 /* mnot: mnot$pack $FRintj,$FRintk */
19385
19386 static SEM_PC
19387 SEM_FN_NAME (frvbf,mnot) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19388 {
19389 #define FLD(f) abuf->fields.sfmt_mcut.f
19390   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19391   int UNUSED written = 0;
19392   IADDR UNUSED pc = abuf->addr;
19393   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19394
19395   {
19396     SI opval = INVSI (GET_H_FR_INT (FLD (f_FRj)));
19397     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19398     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19399   }
19400
19401   return vpc;
19402 #undef FLD
19403 }
19404
19405 /* cmnot: cmnot$pack $FRintj,$FRintk,$CCi,$cond */
19406
19407 static SEM_PC
19408 SEM_FN_NAME (frvbf,cmnot) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19409 {
19410 #define FLD(f) abuf->fields.sfmt_cmand.f
19411   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19412   int UNUSED written = 0;
19413   IADDR UNUSED pc = abuf->addr;
19414   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19415
19416 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
19417   {
19418     SI opval = INVSI (GET_H_FR_INT (FLD (f_FRj)));
19419     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19420     written |= (1 << 3);
19421     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19422   }
19423 }
19424
19425   abuf->written = written;
19426   return vpc;
19427 #undef FLD
19428 }
19429
19430 /* mrotli: mrotli$pack $FRinti,$u6,$FRintk */
19431
19432 static SEM_PC
19433 SEM_FN_NAME (frvbf,mrotli) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19434 {
19435 #define FLD(f) abuf->fields.sfmt_mwcuti.f
19436   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19437   int UNUSED written = 0;
19438   IADDR UNUSED pc = abuf->addr;
19439   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19440
19441   {
19442     SI opval = ROLSI (GET_H_FR_INT (FLD (f_FRi)), ANDSI (FLD (f_u6), 31));
19443     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19444     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19445   }
19446
19447   return vpc;
19448 #undef FLD
19449 }
19450
19451 /* mrotri: mrotri$pack $FRinti,$u6,$FRintk */
19452
19453 static SEM_PC
19454 SEM_FN_NAME (frvbf,mrotri) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19455 {
19456 #define FLD(f) abuf->fields.sfmt_mwcuti.f
19457   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19458   int UNUSED written = 0;
19459   IADDR UNUSED pc = abuf->addr;
19460   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19461
19462   {
19463     SI opval = RORSI (GET_H_FR_INT (FLD (f_FRi)), ANDSI (FLD (f_u6), 31));
19464     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19465     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19466   }
19467
19468   return vpc;
19469 #undef FLD
19470 }
19471
19472 /* mwcut: mwcut$pack $FRinti,$FRintj,$FRintk */
19473
19474 static SEM_PC
19475 SEM_FN_NAME (frvbf,mwcut) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19476 {
19477 #define FLD(f) abuf->fields.sfmt_mwcut.f
19478   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19479   int UNUSED written = 0;
19480   IADDR UNUSED pc = abuf->addr;
19481   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19482
19483   {
19484     SI opval = frvbf_cut (current_cpu, GET_H_FR_INT (FLD (f_FRi)), GET_H_FR_INT (((FLD (f_FRi)) + (1))), GET_H_FR_INT (FLD (f_FRj)));
19485     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19486     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19487   }
19488
19489   return vpc;
19490 #undef FLD
19491 }
19492
19493 /* mwcuti: mwcuti$pack $FRinti,$u6,$FRintk */
19494
19495 static SEM_PC
19496 SEM_FN_NAME (frvbf,mwcuti) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19497 {
19498 #define FLD(f) abuf->fields.sfmt_mwcuti.f
19499   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19500   int UNUSED written = 0;
19501   IADDR UNUSED pc = abuf->addr;
19502   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19503
19504   {
19505     SI opval = frvbf_cut (current_cpu, GET_H_FR_INT (FLD (f_FRi)), GET_H_FR_INT (((FLD (f_FRi)) + (1))), FLD (f_u6));
19506     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19507     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19508   }
19509
19510   return vpc;
19511 #undef FLD
19512 }
19513
19514 /* mcut: mcut$pack $ACC40Si,$FRintj,$FRintk */
19515
19516 static SEM_PC
19517 SEM_FN_NAME (frvbf,mcut) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19518 {
19519 #define FLD(f) abuf->fields.sfmt_mcut.f
19520   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19521   int UNUSED written = 0;
19522   IADDR UNUSED pc = abuf->addr;
19523   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19524
19525   {
19526     SI opval = frvbf_media_cut (current_cpu, GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_FR_INT (FLD (f_FRj)));
19527     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19528     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19529   }
19530
19531   return vpc;
19532 #undef FLD
19533 }
19534
19535 /* mcuti: mcuti$pack $ACC40Si,$s6,$FRintk */
19536
19537 static SEM_PC
19538 SEM_FN_NAME (frvbf,mcuti) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19539 {
19540 #define FLD(f) abuf->fields.sfmt_mcuti.f
19541   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19542   int UNUSED written = 0;
19543   IADDR UNUSED pc = abuf->addr;
19544   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19545
19546   {
19547     SI opval = frvbf_media_cut (current_cpu, GET_H_ACC40S (FLD (f_ACC40Si)), FLD (f_s6));
19548     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19549     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19550   }
19551
19552   return vpc;
19553 #undef FLD
19554 }
19555
19556 /* mcutss: mcutss$pack $ACC40Si,$FRintj,$FRintk */
19557
19558 static SEM_PC
19559 SEM_FN_NAME (frvbf,mcutss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19560 {
19561 #define FLD(f) abuf->fields.sfmt_mcut.f
19562   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19563   int UNUSED written = 0;
19564   IADDR UNUSED pc = abuf->addr;
19565   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19566
19567   {
19568     SI opval = frvbf_media_cut_ss (current_cpu, GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_FR_INT (FLD (f_FRj)));
19569     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19570     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19571   }
19572
19573   return vpc;
19574 #undef FLD
19575 }
19576
19577 /* mcutssi: mcutssi$pack $ACC40Si,$s6,$FRintk */
19578
19579 static SEM_PC
19580 SEM_FN_NAME (frvbf,mcutssi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19581 {
19582 #define FLD(f) abuf->fields.sfmt_mcuti.f
19583   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19584   int UNUSED written = 0;
19585   IADDR UNUSED pc = abuf->addr;
19586   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19587
19588   {
19589     SI opval = frvbf_media_cut_ss (current_cpu, GET_H_ACC40S (FLD (f_ACC40Si)), FLD (f_s6));
19590     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19591     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19592   }
19593
19594   return vpc;
19595 #undef FLD
19596 }
19597
19598 /* mdcutssi: mdcutssi$pack $ACC40Si,$s6,$FRintkeven */
19599
19600 static SEM_PC
19601 SEM_FN_NAME (frvbf,mdcutssi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19602 {
19603 #define FLD(f) abuf->fields.sfmt_mdcutssi.f
19604   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19605   int UNUSED written = 0;
19606   IADDR UNUSED pc = abuf->addr;
19607   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19608
19609 if (ANDSI (FLD (f_ACC40Si), SUBSI (2, 1))) {
19610 frvbf_media_acc_not_aligned (current_cpu);
19611 } else {
19612 if (ANDSI (FLD (f_FRk), SUBSI (2, 1))) {
19613 frvbf_media_register_not_aligned (current_cpu);
19614 } else {
19615 {
19616   {
19617     SI opval = frvbf_media_cut_ss (current_cpu, GET_H_ACC40S (FLD (f_ACC40Si)), FLD (f_s6));
19618     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19619     written |= (1 << 5);
19620     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19621   }
19622   {
19623     USI opval = frvbf_media_cut_ss (current_cpu, GET_H_ACC40S (((FLD (f_ACC40Si)) + (1))), FLD (f_s6));
19624     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (1)), opval);
19625     written |= (1 << 6);
19626     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19627   }
19628 }
19629 }
19630 }
19631
19632   abuf->written = written;
19633   return vpc;
19634 #undef FLD
19635 }
19636
19637 /* maveh: maveh$pack $FRinti,$FRintj,$FRintk */
19638
19639 static SEM_PC
19640 SEM_FN_NAME (frvbf,maveh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19641 {
19642 #define FLD(f) abuf->fields.sfmt_mwcut.f
19643   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19644   int UNUSED written = 0;
19645   IADDR UNUSED pc = abuf->addr;
19646   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19647
19648   {
19649     SI opval = frvbf_media_average (current_cpu, GET_H_FR_INT (FLD (f_FRi)), GET_H_FR_INT (FLD (f_FRj)));
19650     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19651     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19652   }
19653
19654   return vpc;
19655 #undef FLD
19656 }
19657
19658 /* msllhi: msllhi$pack $FRinti,$u6,$FRintk */
19659
19660 static SEM_PC
19661 SEM_FN_NAME (frvbf,msllhi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19662 {
19663 #define FLD(f) abuf->fields.sfmt_msllhi.f
19664   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19665   int UNUSED written = 0;
19666   IADDR UNUSED pc = abuf->addr;
19667   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19668
19669 {
19670   {
19671     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRi)));
19672     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRi), opval);
19673     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19674   }
19675   {
19676     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
19677     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19678     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19679   }
19680   {
19681     UHI opval = SLLHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), ANDSI (FLD (f_u6), 15));
19682     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
19683     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19684   }
19685   {
19686     UHI opval = SLLHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), ANDSI (FLD (f_u6), 15));
19687     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
19688     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19689   }
19690 }
19691
19692   return vpc;
19693 #undef FLD
19694 }
19695
19696 /* msrlhi: msrlhi$pack $FRinti,$u6,$FRintk */
19697
19698 static SEM_PC
19699 SEM_FN_NAME (frvbf,msrlhi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19700 {
19701 #define FLD(f) abuf->fields.sfmt_msllhi.f
19702   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19703   int UNUSED written = 0;
19704   IADDR UNUSED pc = abuf->addr;
19705   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19706
19707 {
19708   {
19709     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRi)));
19710     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRi), opval);
19711     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19712   }
19713   {
19714     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
19715     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19716     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19717   }
19718   {
19719     UHI opval = SRLHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), ANDSI (FLD (f_u6), 15));
19720     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
19721     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19722   }
19723   {
19724     UHI opval = SRLHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), ANDSI (FLD (f_u6), 15));
19725     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
19726     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19727   }
19728 }
19729
19730   return vpc;
19731 #undef FLD
19732 }
19733
19734 /* msrahi: msrahi$pack $FRinti,$u6,$FRintk */
19735
19736 static SEM_PC
19737 SEM_FN_NAME (frvbf,msrahi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19738 {
19739 #define FLD(f) abuf->fields.sfmt_msllhi.f
19740   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19741   int UNUSED written = 0;
19742   IADDR UNUSED pc = abuf->addr;
19743   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19744
19745 {
19746   {
19747     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRi)));
19748     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRi), opval);
19749     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19750   }
19751   {
19752     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
19753     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19754     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19755   }
19756   {
19757     UHI opval = SRAHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), ANDSI (FLD (f_u6), 15));
19758     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
19759     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19760   }
19761   {
19762     UHI opval = SRAHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), ANDSI (FLD (f_u6), 15));
19763     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
19764     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19765   }
19766 }
19767
19768   return vpc;
19769 #undef FLD
19770 }
19771
19772 /* mdrotli: mdrotli$pack $FRintieven,$s6,$FRintkeven */
19773
19774 static SEM_PC
19775 SEM_FN_NAME (frvbf,mdrotli) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19776 {
19777 #define FLD(f) abuf->fields.sfmt_mdrotli.f
19778   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19779   int UNUSED written = 0;
19780   IADDR UNUSED pc = abuf->addr;
19781   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19782
19783 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1)))) {
19784 frvbf_media_register_not_aligned (current_cpu);
19785 } else {
19786 {
19787   {
19788     SI opval = ROLSI (GET_H_FR_INT (FLD (f_FRi)), ANDSI (FLD (f_s6), 31));
19789     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19790     written |= (1 << 5);
19791     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19792   }
19793   {
19794     USI opval = ROLSI (GET_H_FR_INT (((FLD (f_FRi)) + (1))), ANDSI (FLD (f_s6), 31));
19795     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (1)), opval);
19796     written |= (1 << 6);
19797     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19798   }
19799 }
19800 }
19801
19802   abuf->written = written;
19803   return vpc;
19804 #undef FLD
19805 }
19806
19807 /* mcplhi: mcplhi$pack $FRinti,$u6,$FRintk */
19808
19809 static SEM_PC
19810 SEM_FN_NAME (frvbf,mcplhi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19811 {
19812 #define FLD(f) abuf->fields.sfmt_mcplhi.f
19813   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19814   int UNUSED written = 0;
19815   IADDR UNUSED pc = abuf->addr;
19816   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19817
19818 {
19819   HI tmp_arg1;
19820   HI tmp_arg2;
19821   HI tmp_shift;
19822   {
19823     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRi)));
19824     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRi), opval);
19825     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19826   }
19827   {
19828     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
19829     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19830     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19831   }
19832   tmp_shift = ANDSI (FLD (f_u6), 15);
19833   tmp_arg1 = SLLHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), tmp_shift);
19834 if (NEHI (tmp_shift, 0)) {
19835 {
19836   tmp_arg2 = GET_H_FR_HI (((FLD (f_FRi)) + (1)));
19837   tmp_arg2 = SRLHI (SLLHI (tmp_arg2, SUBSI (15, tmp_shift)), SUBSI (15, tmp_shift));
19838   tmp_arg1 = ORHI (tmp_arg1, tmp_arg2);
19839 }
19840 }
19841   {
19842     UHI opval = tmp_arg1;
19843     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
19844     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19845   }
19846 }
19847
19848   return vpc;
19849 #undef FLD
19850 }
19851
19852 /* mcpli: mcpli$pack $FRinti,$u6,$FRintk */
19853
19854 static SEM_PC
19855 SEM_FN_NAME (frvbf,mcpli) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19856 {
19857 #define FLD(f) abuf->fields.sfmt_mwcuti.f
19858   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19859   int UNUSED written = 0;
19860   IADDR UNUSED pc = abuf->addr;
19861   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19862
19863 {
19864   SI tmp_tmp;
19865   SI tmp_shift;
19866   tmp_shift = ANDSI (FLD (f_u6), 31);
19867   tmp_tmp = SLLSI (GET_H_FR_INT (FLD (f_FRi)), tmp_shift);
19868 if (NESI (tmp_shift, 0)) {
19869 {
19870   SI tmp_tmp1;
19871   tmp_tmp1 = SRLSI (SLLSI (GET_H_FR_INT (((FLD (f_FRi)) + (1))), SUBSI (31, tmp_shift)), SUBSI (31, tmp_shift));
19872   tmp_tmp = ORSI (tmp_tmp, tmp_tmp1);
19873 }
19874 }
19875   {
19876     SI opval = tmp_tmp;
19877     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19878     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19879   }
19880 }
19881
19882   return vpc;
19883 #undef FLD
19884 }
19885
19886 /* msaths: msaths$pack $FRinti,$FRintj,$FRintk */
19887
19888 static SEM_PC
19889 SEM_FN_NAME (frvbf,msaths) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19890 {
19891 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
19892   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19893   int UNUSED written = 0;
19894   IADDR UNUSED pc = abuf->addr;
19895   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19896
19897 {
19898   HI tmp_argihi;
19899   HI tmp_argilo;
19900   HI tmp_argjhi;
19901   HI tmp_argjlo;
19902 {
19903   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
19904   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
19905   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
19906   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
19907 }
19908 if (GTHI (tmp_argihi, tmp_argjhi)) {
19909   {
19910     UHI opval = tmp_argjhi;
19911     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
19912     written |= (1 << 9);
19913     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19914   }
19915 } else {
19916 if (LTHI (tmp_argihi, INVHI (tmp_argjhi))) {
19917   {
19918     UHI opval = INVHI (tmp_argjhi);
19919     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
19920     written |= (1 << 9);
19921     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19922   }
19923 } else {
19924   {
19925     UHI opval = tmp_argihi;
19926     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
19927     written |= (1 << 9);
19928     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19929   }
19930 }
19931 }
19932 if (GTHI (tmp_argilo, tmp_argjlo)) {
19933   {
19934     UHI opval = tmp_argjlo;
19935     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
19936     written |= (1 << 10);
19937     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19938   }
19939 } else {
19940 if (LTHI (tmp_argilo, INVHI (tmp_argjlo))) {
19941   {
19942     UHI opval = INVHI (tmp_argjlo);
19943     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
19944     written |= (1 << 10);
19945     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19946   }
19947 } else {
19948   {
19949     UHI opval = tmp_argilo;
19950     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
19951     written |= (1 << 10);
19952     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19953   }
19954 }
19955 }
19956 }
19957
19958   abuf->written = written;
19959   return vpc;
19960 #undef FLD
19961 }
19962
19963 /* mqsaths: mqsaths$pack $FRintieven,$FRintjeven,$FRintkeven */
19964
19965 static SEM_PC
19966 SEM_FN_NAME (frvbf,mqsaths) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19967 {
19968 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
19969   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19970   int UNUSED written = 0;
19971   IADDR UNUSED pc = abuf->addr;
19972   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19973
19974 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
19975 frvbf_media_register_not_aligned (current_cpu);
19976 } else {
19977 {
19978   HI tmp_argihi;
19979   HI tmp_argilo;
19980   HI tmp_argjhi;
19981   HI tmp_argjlo;
19982   {
19983     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
19984     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19985     written |= (1 << 14);
19986     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19987   }
19988 {
19989   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
19990   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
19991   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
19992   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
19993 }
19994 if (GTHI (tmp_argihi, tmp_argjhi)) {
19995   {
19996     UHI opval = tmp_argjhi;
19997     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
19998     written |= (1 << 15);
19999     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20000   }
20001 } else {
20002 if (LTHI (tmp_argihi, INVHI (tmp_argjhi))) {
20003   {
20004     UHI opval = INVHI (tmp_argjhi);
20005     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20006     written |= (1 << 15);
20007     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20008   }
20009 } else {
20010   {
20011     UHI opval = tmp_argihi;
20012     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20013     written |= (1 << 15);
20014     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20015   }
20016 }
20017 }
20018 if (GTHI (tmp_argilo, tmp_argjlo)) {
20019   {
20020     UHI opval = tmp_argjlo;
20021     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20022     written |= (1 << 17);
20023     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20024   }
20025 } else {
20026 if (LTHI (tmp_argilo, INVHI (tmp_argjlo))) {
20027   {
20028     UHI opval = INVHI (tmp_argjlo);
20029     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20030     written |= (1 << 17);
20031     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20032   }
20033 } else {
20034   {
20035     UHI opval = tmp_argilo;
20036     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20037     written |= (1 << 17);
20038     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20039   }
20040 }
20041 }
20042 {
20043   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20044   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20045   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20046   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20047 }
20048 if (GTHI (tmp_argihi, tmp_argjhi)) {
20049   {
20050     UHI opval = tmp_argjhi;
20051     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
20052     written |= (1 << 16);
20053     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20054   }
20055 } else {
20056 if (LTHI (tmp_argihi, INVHI (tmp_argjhi))) {
20057   {
20058     UHI opval = INVHI (tmp_argjhi);
20059     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
20060     written |= (1 << 16);
20061     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20062   }
20063 } else {
20064   {
20065     UHI opval = tmp_argihi;
20066     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
20067     written |= (1 << 16);
20068     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20069   }
20070 }
20071 }
20072 if (GTHI (tmp_argilo, tmp_argjlo)) {
20073   {
20074     UHI opval = tmp_argjlo;
20075     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
20076     written |= (1 << 18);
20077     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20078   }
20079 } else {
20080 if (LTHI (tmp_argilo, INVHI (tmp_argjlo))) {
20081   {
20082     UHI opval = INVHI (tmp_argjlo);
20083     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
20084     written |= (1 << 18);
20085     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20086   }
20087 } else {
20088   {
20089     UHI opval = tmp_argilo;
20090     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
20091     written |= (1 << 18);
20092     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20093   }
20094 }
20095 }
20096 }
20097 }
20098
20099   abuf->written = written;
20100   return vpc;
20101 #undef FLD
20102 }
20103
20104 /* msathu: msathu$pack $FRinti,$FRintj,$FRintk */
20105
20106 static SEM_PC
20107 SEM_FN_NAME (frvbf,msathu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20108 {
20109 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
20110   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20111   int UNUSED written = 0;
20112   IADDR UNUSED pc = abuf->addr;
20113   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20114
20115 {
20116   UHI tmp_argihi;
20117   UHI tmp_argilo;
20118   UHI tmp_argjhi;
20119   UHI tmp_argjlo;
20120 {
20121   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20122   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20123   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20124   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20125 }
20126 if (GTUHI (tmp_argihi, tmp_argjhi)) {
20127   {
20128     UHI opval = tmp_argjhi;
20129     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20130     written |= (1 << 9);
20131     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20132   }
20133 } else {
20134   {
20135     UHI opval = tmp_argihi;
20136     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20137     written |= (1 << 9);
20138     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20139   }
20140 }
20141 if (GTUHI (tmp_argilo, tmp_argjlo)) {
20142   {
20143     UHI opval = tmp_argjlo;
20144     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20145     written |= (1 << 10);
20146     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20147   }
20148 } else {
20149   {
20150     UHI opval = tmp_argilo;
20151     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20152     written |= (1 << 10);
20153     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20154   }
20155 }
20156 }
20157
20158   abuf->written = written;
20159   return vpc;
20160 #undef FLD
20161 }
20162
20163 /* mcmpsh: mcmpsh$pack $FRinti,$FRintj,$FCCk */
20164
20165 static SEM_PC
20166 SEM_FN_NAME (frvbf,mcmpsh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20167 {
20168 #define FLD(f) abuf->fields.sfmt_mcmpsh.f
20169   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20170   int UNUSED written = 0;
20171   IADDR UNUSED pc = abuf->addr;
20172   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20173
20174 if (ANDSI (FLD (f_FCCk), SUBSI (2, 1))) {
20175 frvbf_media_cr_not_aligned (current_cpu);
20176 } else {
20177 {
20178   HI tmp_argihi;
20179   HI tmp_argilo;
20180   HI tmp_argjhi;
20181   HI tmp_argjlo;
20182 {
20183   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20184   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20185   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20186   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20187 }
20188 if (GTHI (tmp_argihi, tmp_argjhi)) {
20189   {
20190     UQI opval = 2;
20191     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCk)]), opval);
20192     written |= (1 << 9);
20193     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20194   }
20195 } else {
20196 if (EQHI (tmp_argihi, tmp_argjhi)) {
20197   {
20198     UQI opval = 8;
20199     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCk)]), opval);
20200     written |= (1 << 9);
20201     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20202   }
20203 } else {
20204 if (LTHI (tmp_argihi, tmp_argjhi)) {
20205   {
20206     UQI opval = 4;
20207     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCk)]), opval);
20208     written |= (1 << 9);
20209     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20210   }
20211 } else {
20212   {
20213     UQI opval = 1;
20214     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCk)]), opval);
20215     written |= (1 << 9);
20216     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20217   }
20218 }
20219 }
20220 }
20221 if (GTHI (tmp_argilo, tmp_argjlo)) {
20222   {
20223     UQI opval = 2;
20224     sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCk)) + (1))]), opval);
20225     written |= (1 << 10);
20226     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20227   }
20228 } else {
20229 if (EQHI (tmp_argilo, tmp_argjlo)) {
20230   {
20231     UQI opval = 8;
20232     sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCk)) + (1))]), opval);
20233     written |= (1 << 10);
20234     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20235   }
20236 } else {
20237 if (LTHI (tmp_argilo, tmp_argjlo)) {
20238   {
20239     UQI opval = 4;
20240     sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCk)) + (1))]), opval);
20241     written |= (1 << 10);
20242     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20243   }
20244 } else {
20245   {
20246     UQI opval = 1;
20247     sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCk)) + (1))]), opval);
20248     written |= (1 << 10);
20249     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20250   }
20251 }
20252 }
20253 }
20254 }
20255 }
20256
20257   abuf->written = written;
20258   return vpc;
20259 #undef FLD
20260 }
20261
20262 /* mcmpuh: mcmpuh$pack $FRinti,$FRintj,$FCCk */
20263
20264 static SEM_PC
20265 SEM_FN_NAME (frvbf,mcmpuh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20266 {
20267 #define FLD(f) abuf->fields.sfmt_mcmpsh.f
20268   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20269   int UNUSED written = 0;
20270   IADDR UNUSED pc = abuf->addr;
20271   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20272
20273 if (ANDSI (FLD (f_FCCk), SUBSI (2, 1))) {
20274 frvbf_media_cr_not_aligned (current_cpu);
20275 } else {
20276 {
20277   UHI tmp_argihi;
20278   UHI tmp_argilo;
20279   UHI tmp_argjhi;
20280   UHI tmp_argjlo;
20281 {
20282   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20283   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20284   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20285   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20286 }
20287 if (GTUHI (tmp_argihi, tmp_argjhi)) {
20288   {
20289     UQI opval = 2;
20290     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCk)]), opval);
20291     written |= (1 << 9);
20292     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20293   }
20294 } else {
20295 if (EQHI (tmp_argihi, tmp_argjhi)) {
20296   {
20297     UQI opval = 8;
20298     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCk)]), opval);
20299     written |= (1 << 9);
20300     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20301   }
20302 } else {
20303 if (LTUHI (tmp_argihi, tmp_argjhi)) {
20304   {
20305     UQI opval = 4;
20306     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCk)]), opval);
20307     written |= (1 << 9);
20308     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20309   }
20310 } else {
20311   {
20312     UQI opval = 1;
20313     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCk)]), opval);
20314     written |= (1 << 9);
20315     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20316   }
20317 }
20318 }
20319 }
20320 if (GTUHI (tmp_argilo, tmp_argjlo)) {
20321   {
20322     UQI opval = 2;
20323     sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCk)) + (1))]), opval);
20324     written |= (1 << 10);
20325     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20326   }
20327 } else {
20328 if (EQHI (tmp_argilo, tmp_argjlo)) {
20329   {
20330     UQI opval = 8;
20331     sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCk)) + (1))]), opval);
20332     written |= (1 << 10);
20333     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20334   }
20335 } else {
20336 if (LTUHI (tmp_argilo, tmp_argjlo)) {
20337   {
20338     UQI opval = 4;
20339     sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCk)) + (1))]), opval);
20340     written |= (1 << 10);
20341     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20342   }
20343 } else {
20344   {
20345     UQI opval = 1;
20346     sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCk)) + (1))]), opval);
20347     written |= (1 << 10);
20348     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20349   }
20350 }
20351 }
20352 }
20353 }
20354 }
20355
20356   abuf->written = written;
20357   return vpc;
20358 #undef FLD
20359 }
20360
20361 /* mabshs: mabshs$pack $FRintj,$FRintk */
20362
20363 static SEM_PC
20364 SEM_FN_NAME (frvbf,mabshs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20365 {
20366 #define FLD(f) abuf->fields.sfmt_mabshs.f
20367   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20368   int UNUSED written = 0;
20369   IADDR UNUSED pc = abuf->addr;
20370   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20371
20372 {
20373   HI tmp_arghi;
20374   HI tmp_arglo;
20375   {
20376     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRj)));
20377     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRj), opval);
20378     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
20379   }
20380   {
20381     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
20382     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
20383     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
20384   }
20385   tmp_arghi = GET_H_FR_HI (((FLD (f_FRj)) + (0)));
20386   tmp_arglo = GET_H_FR_LO (((FLD (f_FRj)) + (0)));
20387 if (GTDI (ABSHI (tmp_arghi), 32767)) {
20388 {
20389   {
20390     UHI opval = 32767;
20391     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20392     written |= (1 << 8);
20393     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20394   }
20395 frvbf_media_overflow (current_cpu, 8);
20396 }
20397 } else {
20398 if (LTDI (ABSHI (tmp_arghi), -32768)) {
20399 {
20400   {
20401     UHI opval = -32768;
20402     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20403     written |= (1 << 8);
20404     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20405   }
20406 frvbf_media_overflow (current_cpu, 8);
20407 }
20408 } else {
20409   {
20410     UHI opval = ABSHI (tmp_arghi);
20411     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20412     written |= (1 << 8);
20413     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20414   }
20415 }
20416 }
20417 if (GTDI (ABSHI (tmp_arglo), 32767)) {
20418 {
20419   {
20420     UHI opval = 32767;
20421     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20422     written |= (1 << 9);
20423     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20424   }
20425 frvbf_media_overflow (current_cpu, 4);
20426 }
20427 } else {
20428 if (LTDI (ABSHI (tmp_arglo), -32768)) {
20429 {
20430   {
20431     UHI opval = -32768;
20432     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20433     written |= (1 << 9);
20434     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20435   }
20436 frvbf_media_overflow (current_cpu, 4);
20437 }
20438 } else {
20439   {
20440     UHI opval = ABSHI (tmp_arglo);
20441     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20442     written |= (1 << 9);
20443     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20444   }
20445 }
20446 }
20447 }
20448
20449   abuf->written = written;
20450   return vpc;
20451 #undef FLD
20452 }
20453
20454 /* maddhss: maddhss$pack $FRinti,$FRintj,$FRintk */
20455
20456 static SEM_PC
20457 SEM_FN_NAME (frvbf,maddhss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20458 {
20459 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
20460   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20461   int UNUSED written = 0;
20462   IADDR UNUSED pc = abuf->addr;
20463   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20464
20465 {
20466   HI tmp_argihi;
20467   HI tmp_argilo;
20468   HI tmp_argjhi;
20469   HI tmp_argjlo;
20470 {
20471   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20472   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20473   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20474   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20475 }
20476 {
20477   DI tmp_tmp;
20478   tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
20479 if (GTDI (tmp_tmp, 32767)) {
20480 {
20481   {
20482     UHI opval = 32767;
20483     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20484     written |= (1 << 9);
20485     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20486   }
20487 frvbf_media_overflow (current_cpu, 8);
20488 }
20489 } else {
20490 if (LTDI (tmp_tmp, -32768)) {
20491 {
20492   {
20493     UHI opval = -32768;
20494     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20495     written |= (1 << 9);
20496     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20497   }
20498 frvbf_media_overflow (current_cpu, 8);
20499 }
20500 } else {
20501   {
20502     UHI opval = tmp_tmp;
20503     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20504     written |= (1 << 9);
20505     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20506   }
20507 }
20508 }
20509 }
20510 {
20511   DI tmp_tmp;
20512   tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
20513 if (GTDI (tmp_tmp, 32767)) {
20514 {
20515   {
20516     UHI opval = 32767;
20517     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20518     written |= (1 << 10);
20519     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20520   }
20521 frvbf_media_overflow (current_cpu, 4);
20522 }
20523 } else {
20524 if (LTDI (tmp_tmp, -32768)) {
20525 {
20526   {
20527     UHI opval = -32768;
20528     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20529     written |= (1 << 10);
20530     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20531   }
20532 frvbf_media_overflow (current_cpu, 4);
20533 }
20534 } else {
20535   {
20536     UHI opval = tmp_tmp;
20537     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20538     written |= (1 << 10);
20539     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20540   }
20541 }
20542 }
20543 }
20544 }
20545
20546   abuf->written = written;
20547   return vpc;
20548 #undef FLD
20549 }
20550
20551 /* maddhus: maddhus$pack $FRinti,$FRintj,$FRintk */
20552
20553 static SEM_PC
20554 SEM_FN_NAME (frvbf,maddhus) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20555 {
20556 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
20557   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20558   int UNUSED written = 0;
20559   IADDR UNUSED pc = abuf->addr;
20560   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20561
20562 {
20563   UHI tmp_argihi;
20564   UHI tmp_argilo;
20565   UHI tmp_argjhi;
20566   UHI tmp_argjlo;
20567 {
20568   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20569   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20570   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20571   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20572 }
20573 {
20574   DI tmp_tmp;
20575   tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
20576 if (GTDI (tmp_tmp, 65535)) {
20577 {
20578   {
20579     UHI opval = 65535;
20580     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20581     written |= (1 << 9);
20582     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20583   }
20584 frvbf_media_overflow (current_cpu, 8);
20585 }
20586 } else {
20587 if (LTDI (tmp_tmp, 0)) {
20588 {
20589   {
20590     UHI opval = 0;
20591     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20592     written |= (1 << 9);
20593     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20594   }
20595 frvbf_media_overflow (current_cpu, 8);
20596 }
20597 } else {
20598   {
20599     UHI opval = tmp_tmp;
20600     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20601     written |= (1 << 9);
20602     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20603   }
20604 }
20605 }
20606 }
20607 {
20608   DI tmp_tmp;
20609   tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
20610 if (GTDI (tmp_tmp, 65535)) {
20611 {
20612   {
20613     UHI opval = 65535;
20614     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20615     written |= (1 << 10);
20616     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20617   }
20618 frvbf_media_overflow (current_cpu, 4);
20619 }
20620 } else {
20621 if (LTDI (tmp_tmp, 0)) {
20622 {
20623   {
20624     UHI opval = 0;
20625     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20626     written |= (1 << 10);
20627     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20628   }
20629 frvbf_media_overflow (current_cpu, 4);
20630 }
20631 } else {
20632   {
20633     UHI opval = tmp_tmp;
20634     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20635     written |= (1 << 10);
20636     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20637   }
20638 }
20639 }
20640 }
20641 }
20642
20643   abuf->written = written;
20644   return vpc;
20645 #undef FLD
20646 }
20647
20648 /* msubhss: msubhss$pack $FRinti,$FRintj,$FRintk */
20649
20650 static SEM_PC
20651 SEM_FN_NAME (frvbf,msubhss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20652 {
20653 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
20654   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20655   int UNUSED written = 0;
20656   IADDR UNUSED pc = abuf->addr;
20657   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20658
20659 {
20660   HI tmp_argihi;
20661   HI tmp_argilo;
20662   HI tmp_argjhi;
20663   HI tmp_argjlo;
20664 {
20665   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20666   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20667   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20668   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20669 }
20670 {
20671   DI tmp_tmp;
20672   tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
20673 if (GTDI (tmp_tmp, 32767)) {
20674 {
20675   {
20676     UHI opval = 32767;
20677     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20678     written |= (1 << 9);
20679     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20680   }
20681 frvbf_media_overflow (current_cpu, 8);
20682 }
20683 } else {
20684 if (LTDI (tmp_tmp, -32768)) {
20685 {
20686   {
20687     UHI opval = -32768;
20688     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20689     written |= (1 << 9);
20690     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20691   }
20692 frvbf_media_overflow (current_cpu, 8);
20693 }
20694 } else {
20695   {
20696     UHI opval = tmp_tmp;
20697     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20698     written |= (1 << 9);
20699     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20700   }
20701 }
20702 }
20703 }
20704 {
20705   DI tmp_tmp;
20706   tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
20707 if (GTDI (tmp_tmp, 32767)) {
20708 {
20709   {
20710     UHI opval = 32767;
20711     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20712     written |= (1 << 10);
20713     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20714   }
20715 frvbf_media_overflow (current_cpu, 4);
20716 }
20717 } else {
20718 if (LTDI (tmp_tmp, -32768)) {
20719 {
20720   {
20721     UHI opval = -32768;
20722     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20723     written |= (1 << 10);
20724     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20725   }
20726 frvbf_media_overflow (current_cpu, 4);
20727 }
20728 } else {
20729   {
20730     UHI opval = tmp_tmp;
20731     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20732     written |= (1 << 10);
20733     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20734   }
20735 }
20736 }
20737 }
20738 }
20739
20740   abuf->written = written;
20741   return vpc;
20742 #undef FLD
20743 }
20744
20745 /* msubhus: msubhus$pack $FRinti,$FRintj,$FRintk */
20746
20747 static SEM_PC
20748 SEM_FN_NAME (frvbf,msubhus) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20749 {
20750 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
20751   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20752   int UNUSED written = 0;
20753   IADDR UNUSED pc = abuf->addr;
20754   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20755
20756 {
20757   UHI tmp_argihi;
20758   UHI tmp_argilo;
20759   UHI tmp_argjhi;
20760   UHI tmp_argjlo;
20761 {
20762   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20763   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20764   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20765   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20766 }
20767 {
20768   DI tmp_tmp;
20769   tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
20770 if (GTDI (tmp_tmp, 65535)) {
20771 {
20772   {
20773     UHI opval = 65535;
20774     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20775     written |= (1 << 9);
20776     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20777   }
20778 frvbf_media_overflow (current_cpu, 8);
20779 }
20780 } else {
20781 if (LTDI (tmp_tmp, 0)) {
20782 {
20783   {
20784     UHI opval = 0;
20785     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20786     written |= (1 << 9);
20787     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20788   }
20789 frvbf_media_overflow (current_cpu, 8);
20790 }
20791 } else {
20792   {
20793     UHI opval = tmp_tmp;
20794     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20795     written |= (1 << 9);
20796     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20797   }
20798 }
20799 }
20800 }
20801 {
20802   DI tmp_tmp;
20803   tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
20804 if (GTDI (tmp_tmp, 65535)) {
20805 {
20806   {
20807     UHI opval = 65535;
20808     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20809     written |= (1 << 10);
20810     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20811   }
20812 frvbf_media_overflow (current_cpu, 4);
20813 }
20814 } else {
20815 if (LTDI (tmp_tmp, 0)) {
20816 {
20817   {
20818     UHI opval = 0;
20819     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20820     written |= (1 << 10);
20821     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20822   }
20823 frvbf_media_overflow (current_cpu, 4);
20824 }
20825 } else {
20826   {
20827     UHI opval = tmp_tmp;
20828     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20829     written |= (1 << 10);
20830     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20831   }
20832 }
20833 }
20834 }
20835 }
20836
20837   abuf->written = written;
20838   return vpc;
20839 #undef FLD
20840 }
20841
20842 /* cmaddhss: cmaddhss$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
20843
20844 static SEM_PC
20845 SEM_FN_NAME (frvbf,cmaddhss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20846 {
20847 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
20848   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20849   int UNUSED written = 0;
20850   IADDR UNUSED pc = abuf->addr;
20851   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20852
20853 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
20854 {
20855   HI tmp_argihi;
20856   HI tmp_argilo;
20857   HI tmp_argjhi;
20858   HI tmp_argjlo;
20859 {
20860   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20861   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20862   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20863   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20864 }
20865 {
20866   DI tmp_tmp;
20867   tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
20868 if (GTDI (tmp_tmp, 32767)) {
20869 {
20870   {
20871     UHI opval = 32767;
20872     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20873     written |= (1 << 11);
20874     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20875   }
20876 frvbf_media_overflow (current_cpu, 8);
20877 }
20878 } else {
20879 if (LTDI (tmp_tmp, -32768)) {
20880 {
20881   {
20882     UHI opval = -32768;
20883     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20884     written |= (1 << 11);
20885     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20886   }
20887 frvbf_media_overflow (current_cpu, 8);
20888 }
20889 } else {
20890   {
20891     UHI opval = tmp_tmp;
20892     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20893     written |= (1 << 11);
20894     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20895   }
20896 }
20897 }
20898 }
20899 {
20900   DI tmp_tmp;
20901   tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
20902 if (GTDI (tmp_tmp, 32767)) {
20903 {
20904   {
20905     UHI opval = 32767;
20906     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20907     written |= (1 << 12);
20908     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20909   }
20910 frvbf_media_overflow (current_cpu, 4);
20911 }
20912 } else {
20913 if (LTDI (tmp_tmp, -32768)) {
20914 {
20915   {
20916     UHI opval = -32768;
20917     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20918     written |= (1 << 12);
20919     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20920   }
20921 frvbf_media_overflow (current_cpu, 4);
20922 }
20923 } else {
20924   {
20925     UHI opval = tmp_tmp;
20926     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20927     written |= (1 << 12);
20928     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20929   }
20930 }
20931 }
20932 }
20933 }
20934 }
20935
20936   abuf->written = written;
20937   return vpc;
20938 #undef FLD
20939 }
20940
20941 /* cmaddhus: cmaddhus$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
20942
20943 static SEM_PC
20944 SEM_FN_NAME (frvbf,cmaddhus) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20945 {
20946 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
20947   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20948   int UNUSED written = 0;
20949   IADDR UNUSED pc = abuf->addr;
20950   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20951
20952 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
20953 {
20954   UHI tmp_argihi;
20955   UHI tmp_argilo;
20956   UHI tmp_argjhi;
20957   UHI tmp_argjlo;
20958 {
20959   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20960   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20961   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20962   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20963 }
20964 {
20965   DI tmp_tmp;
20966   tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
20967 if (GTDI (tmp_tmp, 65535)) {
20968 {
20969   {
20970     UHI opval = 65535;
20971     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20972     written |= (1 << 11);
20973     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20974   }
20975 frvbf_media_overflow (current_cpu, 8);
20976 }
20977 } else {
20978 if (LTDI (tmp_tmp, 0)) {
20979 {
20980   {
20981     UHI opval = 0;
20982     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20983     written |= (1 << 11);
20984     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20985   }
20986 frvbf_media_overflow (current_cpu, 8);
20987 }
20988 } else {
20989   {
20990     UHI opval = tmp_tmp;
20991     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20992     written |= (1 << 11);
20993     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20994   }
20995 }
20996 }
20997 }
20998 {
20999   DI tmp_tmp;
21000   tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
21001 if (GTDI (tmp_tmp, 65535)) {
21002 {
21003   {
21004     UHI opval = 65535;
21005     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21006     written |= (1 << 12);
21007     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21008   }
21009 frvbf_media_overflow (current_cpu, 4);
21010 }
21011 } else {
21012 if (LTDI (tmp_tmp, 0)) {
21013 {
21014   {
21015     UHI opval = 0;
21016     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21017     written |= (1 << 12);
21018     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21019   }
21020 frvbf_media_overflow (current_cpu, 4);
21021 }
21022 } else {
21023   {
21024     UHI opval = tmp_tmp;
21025     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21026     written |= (1 << 12);
21027     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21028   }
21029 }
21030 }
21031 }
21032 }
21033 }
21034
21035   abuf->written = written;
21036   return vpc;
21037 #undef FLD
21038 }
21039
21040 /* cmsubhss: cmsubhss$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
21041
21042 static SEM_PC
21043 SEM_FN_NAME (frvbf,cmsubhss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
21044 {
21045 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
21046   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
21047   int UNUSED written = 0;
21048   IADDR UNUSED pc = abuf->addr;
21049   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
21050
21051 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
21052 {
21053   HI tmp_argihi;
21054   HI tmp_argilo;
21055   HI tmp_argjhi;
21056   HI tmp_argjlo;
21057 {
21058   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21059   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21060   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21061   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21062 }
21063 {
21064   DI tmp_tmp;
21065   tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
21066 if (GTDI (tmp_tmp, 32767)) {
21067 {
21068   {
21069     UHI opval = 32767;
21070     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21071     written |= (1 << 11);
21072     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21073   }
21074 frvbf_media_overflow (current_cpu, 8);
21075 }
21076 } else {
21077 if (LTDI (tmp_tmp, -32768)) {
21078 {
21079   {
21080     UHI opval = -32768;
21081     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21082     written |= (1 << 11);
21083     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21084   }
21085 frvbf_media_overflow (current_cpu, 8);
21086 }
21087 } else {
21088   {
21089     UHI opval = tmp_tmp;
21090     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21091     written |= (1 << 11);
21092     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21093   }
21094 }
21095 }
21096 }
21097 {
21098   DI tmp_tmp;
21099   tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
21100 if (GTDI (tmp_tmp, 32767)) {
21101 {
21102   {
21103     UHI opval = 32767;
21104     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21105     written |= (1 << 12);
21106     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21107   }
21108 frvbf_media_overflow (current_cpu, 4);
21109 }
21110 } else {
21111 if (LTDI (tmp_tmp, -32768)) {
21112 {
21113   {
21114     UHI opval = -32768;
21115     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21116     written |= (1 << 12);
21117     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21118   }
21119 frvbf_media_overflow (current_cpu, 4);
21120 }
21121 } else {
21122   {
21123     UHI opval = tmp_tmp;
21124     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21125     written |= (1 << 12);
21126     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21127   }
21128 }
21129 }
21130 }
21131 }
21132 }
21133
21134   abuf->written = written;
21135   return vpc;
21136 #undef FLD
21137 }
21138
21139 /* cmsubhus: cmsubhus$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
21140
21141 static SEM_PC
21142 SEM_FN_NAME (frvbf,cmsubhus) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
21143 {
21144 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
21145   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
21146   int UNUSED written = 0;
21147   IADDR UNUSED pc = abuf->addr;
21148   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
21149
21150 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
21151 {
21152   UHI tmp_argihi;
21153   UHI tmp_argilo;
21154   UHI tmp_argjhi;
21155   UHI tmp_argjlo;
21156 {
21157   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21158   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21159   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21160   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21161 }
21162 {
21163   DI tmp_tmp;
21164   tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
21165 if (GTDI (tmp_tmp, 65535)) {
21166 {
21167   {
21168     UHI opval = 65535;
21169     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21170     written |= (1 << 11);
21171     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21172   }
21173 frvbf_media_overflow (current_cpu, 8);
21174 }
21175 } else {
21176 if (LTDI (tmp_tmp, 0)) {
21177 {
21178   {
21179     UHI opval = 0;
21180     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21181     written |= (1 << 11);
21182     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21183   }
21184 frvbf_media_overflow (current_cpu, 8);
21185 }
21186 } else {
21187   {
21188     UHI opval = tmp_tmp;
21189     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21190     written |= (1 << 11);
21191     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21192   }
21193 }
21194 }
21195 }
21196 {
21197   DI tmp_tmp;
21198   tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
21199 if (GTDI (tmp_tmp, 65535)) {
21200 {
21201   {
21202     UHI opval = 65535;
21203     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21204     written |= (1 << 12);
21205     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21206   }
21207 frvbf_media_overflow (current_cpu, 4);
21208 }
21209 } else {
21210 if (LTDI (tmp_tmp, 0)) {
21211 {
21212   {
21213     UHI opval = 0;
21214     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21215     written |= (1 << 12);
21216     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21217   }
21218 frvbf_media_overflow (current_cpu, 4);
21219 }
21220 } else {
21221   {
21222     UHI opval = tmp_tmp;
21223     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21224     written |= (1 << 12);
21225     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21226   }
21227 }
21228 }
21229 }
21230 }
21231 }
21232
21233   abuf->written = written;
21234   return vpc;
21235 #undef FLD
21236 }
21237
21238 /* mqaddhss: mqaddhss$pack $FRintieven,$FRintjeven,$FRintkeven */
21239
21240 static SEM_PC
21241 SEM_FN_NAME (frvbf,mqaddhss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
21242 {
21243 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
21244   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
21245   int UNUSED written = 0;
21246   IADDR UNUSED pc = abuf->addr;
21247   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
21248
21249 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
21250 frvbf_media_register_not_aligned (current_cpu);
21251 } else {
21252 {
21253   HI tmp_argihi;
21254   HI tmp_argilo;
21255   HI tmp_argjhi;
21256   HI tmp_argjlo;
21257   {
21258     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
21259     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
21260     written |= (1 << 14);
21261     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
21262   }
21263 {
21264   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21265   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21266   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21267   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21268 }
21269 {
21270   DI tmp_tmp;
21271   tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
21272 if (GTDI (tmp_tmp, 32767)) {
21273 {
21274   {
21275     UHI opval = 32767;
21276     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21277     written |= (1 << 15);
21278     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21279   }
21280 frvbf_media_overflow (current_cpu, 8);
21281 }
21282 } else {
21283 if (LTDI (tmp_tmp, -32768)) {
21284 {
21285   {
21286     UHI opval = -32768;
21287     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21288     written |= (1 << 15);
21289     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21290   }
21291 frvbf_media_overflow (current_cpu, 8);
21292 }
21293 } else {
21294   {
21295     UHI opval = tmp_tmp;
21296     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21297     written |= (1 << 15);
21298     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21299   }
21300 }
21301 }
21302 }
21303 {
21304   DI tmp_tmp;
21305   tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
21306 if (GTDI (tmp_tmp, 32767)) {
21307 {
21308   {
21309     UHI opval = 32767;
21310     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21311     written |= (1 << 17);
21312     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21313   }
21314 frvbf_media_overflow (current_cpu, 4);
21315 }
21316 } else {
21317 if (LTDI (tmp_tmp, -32768)) {
21318 {
21319   {
21320     UHI opval = -32768;
21321     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21322     written |= (1 << 17);
21323     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21324   }
21325 frvbf_media_overflow (current_cpu, 4);
21326 }
21327 } else {
21328   {
21329     UHI opval = tmp_tmp;
21330     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21331     written |= (1 << 17);
21332     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21333   }
21334 }
21335 }
21336 }
21337 {
21338   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21339   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21340   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21341   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21342 }
21343 {
21344   DI tmp_tmp;
21345   tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
21346 if (GTDI (tmp_tmp, 32767)) {
21347 {
21348   {
21349     UHI opval = 32767;
21350     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21351     written |= (1 << 16);
21352     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21353   }
21354 frvbf_media_overflow (current_cpu, 2);
21355 }
21356 } else {
21357 if (LTDI (tmp_tmp, -32768)) {
21358 {
21359   {
21360     UHI opval = -32768;
21361     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21362     written |= (1 << 16);
21363     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21364   }
21365 frvbf_media_overflow (current_cpu, 2);
21366 }
21367 } else {
21368   {
21369     UHI opval = tmp_tmp;
21370     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21371     written |= (1 << 16);
21372     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21373   }
21374 }
21375 }
21376 }
21377 {
21378   DI tmp_tmp;
21379   tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
21380 if (GTDI (tmp_tmp, 32767)) {
21381 {
21382   {
21383     UHI opval = 32767;
21384     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21385     written |= (1 << 18);
21386     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21387   }
21388 frvbf_media_overflow (current_cpu, 1);
21389 }
21390 } else {
21391 if (LTDI (tmp_tmp, -32768)) {
21392 {
21393   {
21394     UHI opval = -32768;
21395     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21396     written |= (1 << 18);
21397     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21398   }
21399 frvbf_media_overflow (current_cpu, 1);
21400 }
21401 } else {
21402   {
21403     UHI opval = tmp_tmp;
21404     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21405     written |= (1 << 18);
21406     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21407   }
21408 }
21409 }
21410 }
21411 }
21412 }
21413
21414   abuf->written = written;
21415   return vpc;
21416 #undef FLD
21417 }
21418
21419 /* mqaddhus: mqaddhus$pack $FRintieven,$FRintjeven,$FRintkeven */
21420
21421 static SEM_PC
21422 SEM_FN_NAME (frvbf,mqaddhus) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
21423 {
21424 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
21425   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
21426   int UNUSED written = 0;
21427   IADDR UNUSED pc = abuf->addr;
21428   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
21429
21430 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
21431 frvbf_media_register_not_aligned (current_cpu);
21432 } else {
21433 {
21434   UHI tmp_argihi;
21435   UHI tmp_argilo;
21436   UHI tmp_argjhi;
21437   UHI tmp_argjlo;
21438   {
21439     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
21440     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
21441     written |= (1 << 14);
21442     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
21443   }
21444 {
21445   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21446   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21447   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21448   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21449 }
21450 {
21451   DI tmp_tmp;
21452   tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
21453 if (GTDI (tmp_tmp, 65535)) {
21454 {
21455   {
21456     UHI opval = 65535;
21457     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21458     written |= (1 << 15);
21459     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21460   }
21461 frvbf_media_overflow (current_cpu, 8);
21462 }
21463 } else {
21464 if (LTDI (tmp_tmp, 0)) {
21465 {
21466   {
21467     UHI opval = 0;
21468     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21469     written |= (1 << 15);
21470     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21471   }
21472 frvbf_media_overflow (current_cpu, 8);
21473 }
21474 } else {
21475   {
21476     UHI opval = tmp_tmp;
21477     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21478     written |= (1 << 15);
21479     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21480   }
21481 }
21482 }
21483 }
21484 {
21485   DI tmp_tmp;
21486   tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
21487 if (GTDI (tmp_tmp, 65535)) {
21488 {
21489   {
21490     UHI opval = 65535;
21491     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21492     written |= (1 << 17);
21493     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21494   }
21495 frvbf_media_overflow (current_cpu, 4);
21496 }
21497 } else {
21498 if (LTDI (tmp_tmp, 0)) {
21499 {
21500   {
21501     UHI opval = 0;
21502     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21503     written |= (1 << 17);
21504     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21505   }
21506 frvbf_media_overflow (current_cpu, 4);
21507 }
21508 } else {
21509   {
21510     UHI opval = tmp_tmp;
21511     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21512     written |= (1 << 17);
21513     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21514   }
21515 }
21516 }
21517 }
21518 {
21519   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21520   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21521   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21522   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21523 }
21524 {
21525   DI tmp_tmp;
21526   tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
21527 if (GTDI (tmp_tmp, 65535)) {
21528 {
21529   {
21530     UHI opval = 65535;
21531     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21532     written |= (1 << 16);
21533     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21534   }
21535 frvbf_media_overflow (current_cpu, 2);
21536 }
21537 } else {
21538 if (LTDI (tmp_tmp, 0)) {
21539 {
21540   {
21541     UHI opval = 0;
21542     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21543     written |= (1 << 16);
21544     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21545   }
21546 frvbf_media_overflow (current_cpu, 2);
21547 }
21548 } else {
21549   {
21550     UHI opval = tmp_tmp;
21551     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21552     written |= (1 << 16);
21553     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21554   }
21555 }
21556 }
21557 }
21558 {
21559   DI tmp_tmp;
21560   tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
21561 if (GTDI (tmp_tmp, 65535)) {
21562 {
21563   {
21564     UHI opval = 65535;
21565     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21566     written |= (1 << 18);
21567     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21568   }
21569 frvbf_media_overflow (current_cpu, 1);
21570 }
21571 } else {
21572 if (LTDI (tmp_tmp, 0)) {
21573 {
21574   {
21575     UHI opval = 0;
21576     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21577     written |= (1 << 18);
21578     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21579   }
21580 frvbf_media_overflow (current_cpu, 1);
21581 }
21582 } else {
21583   {
21584     UHI opval = tmp_tmp;
21585     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21586     written |= (1 << 18);
21587     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21588   }
21589 }
21590 }
21591 }
21592 }
21593 }
21594
21595   abuf->written = written;
21596   return vpc;
21597 #undef FLD
21598 }
21599
21600 /* mqsubhss: mqsubhss$pack $FRintieven,$FRintjeven,$FRintkeven */
21601
21602 static SEM_PC
21603 SEM_FN_NAME (frvbf,mqsubhss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
21604 {
21605 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
21606   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
21607   int UNUSED written = 0;
21608   IADDR UNUSED pc = abuf->addr;
21609   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
21610
21611 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
21612 frvbf_media_register_not_aligned (current_cpu);
21613 } else {
21614 {
21615   HI tmp_argihi;
21616   HI tmp_argilo;
21617   HI tmp_argjhi;
21618   HI tmp_argjlo;
21619   {
21620     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
21621     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
21622     written |= (1 << 14);
21623     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
21624   }
21625 {
21626   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21627   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21628   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21629   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21630 }
21631 {
21632   DI tmp_tmp;
21633   tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
21634 if (GTDI (tmp_tmp, 32767)) {
21635 {
21636   {
21637     UHI opval = 32767;
21638     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21639     written |= (1 << 15);
21640     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21641   }
21642 frvbf_media_overflow (current_cpu, 8);
21643 }
21644 } else {
21645 if (LTDI (tmp_tmp, -32768)) {
21646 {
21647   {
21648     UHI opval = -32768;
21649     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21650     written |= (1 << 15);
21651     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21652   }
21653 frvbf_media_overflow (current_cpu, 8);
21654 }
21655 } else {
21656   {
21657     UHI opval = tmp_tmp;
21658     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21659     written |= (1 << 15);
21660     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21661   }
21662 }
21663 }
21664 }
21665 {
21666   DI tmp_tmp;
21667   tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
21668 if (GTDI (tmp_tmp, 32767)) {
21669 {
21670   {
21671     UHI opval = 32767;
21672     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21673     written |= (1 << 17);
21674     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21675   }
21676 frvbf_media_overflow (current_cpu, 4);
21677 }
21678 } else {
21679 if (LTDI (tmp_tmp, -32768)) {
21680 {
21681   {
21682     UHI opval = -32768;
21683     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21684     written |= (1 << 17);
21685     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21686   }
21687 frvbf_media_overflow (current_cpu, 4);
21688 }
21689 } else {
21690   {
21691     UHI opval = tmp_tmp;
21692     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21693     written |= (1 << 17);
21694     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21695   }
21696 }
21697 }
21698 }
21699 {
21700   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21701   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21702   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21703   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21704 }
21705 {
21706   DI tmp_tmp;
21707   tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
21708 if (GTDI (tmp_tmp, 32767)) {
21709 {
21710   {
21711     UHI opval = 32767;
21712     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21713     written |= (1 << 16);
21714     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21715   }
21716 frvbf_media_overflow (current_cpu, 2);
21717 }
21718 } else {
21719 if (LTDI (tmp_tmp, -32768)) {
21720 {
21721   {
21722     UHI opval = -32768;
21723     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21724     written |= (1 << 16);
21725     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21726   }
21727 frvbf_media_overflow (current_cpu, 2);
21728 }
21729 } else {
21730   {
21731     UHI opval = tmp_tmp;
21732     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21733     written |= (1 << 16);
21734     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21735   }
21736 }
21737 }
21738 }
21739 {
21740   DI tmp_tmp;
21741   tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
21742 if (GTDI (tmp_tmp, 32767)) {
21743 {
21744   {
21745     UHI opval = 32767;
21746     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21747     written |= (1 << 18);
21748     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21749   }
21750 frvbf_media_overflow (current_cpu, 1);
21751 }
21752 } else {
21753 if (LTDI (tmp_tmp, -32768)) {
21754 {
21755   {
21756     UHI opval = -32768;
21757     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21758     written |= (1 << 18);
21759     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21760   }
21761 frvbf_media_overflow (current_cpu, 1);
21762 }
21763 } else {
21764   {
21765     UHI opval = tmp_tmp;
21766     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21767     written |= (1 << 18);
21768     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21769   }
21770 }
21771 }
21772 }
21773 }
21774 }
21775
21776   abuf->written = written;
21777   return vpc;
21778 #undef FLD
21779 }
21780
21781 /* mqsubhus: mqsubhus$pack $FRintieven,$FRintjeven,$FRintkeven */
21782
21783 static SEM_PC
21784 SEM_FN_NAME (frvbf,mqsubhus) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
21785 {
21786 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
21787   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
21788   int UNUSED written = 0;
21789   IADDR UNUSED pc = abuf->addr;
21790   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
21791
21792 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
21793 frvbf_media_register_not_aligned (current_cpu);
21794 } else {
21795 {
21796   UHI tmp_argihi;
21797   UHI tmp_argilo;
21798   UHI tmp_argjhi;
21799   UHI tmp_argjlo;
21800   {
21801     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
21802     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
21803     written |= (1 << 14);
21804     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
21805   }
21806 {
21807   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21808   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21809   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21810   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21811 }
21812 {
21813   DI tmp_tmp;
21814   tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
21815 if (GTDI (tmp_tmp, 65535)) {
21816 {
21817   {
21818     UHI opval = 65535;
21819     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21820     written |= (1 << 15);
21821     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21822   }
21823 frvbf_media_overflow (current_cpu, 8);
21824 }
21825 } else {
21826 if (LTDI (tmp_tmp, 0)) {
21827 {
21828   {
21829     UHI opval = 0;
21830     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21831     written |= (1 << 15);
21832     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21833   }
21834 frvbf_media_overflow (current_cpu, 8);
21835 }
21836 } else {
21837   {
21838     UHI opval = tmp_tmp;
21839     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21840     written |= (1 << 15);
21841     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21842   }
21843 }
21844 }
21845 }
21846 {
21847   DI tmp_tmp;
21848   tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
21849 if (GTDI (tmp_tmp, 65535)) {
21850 {
21851   {
21852     UHI opval = 65535;
21853     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21854     written |= (1 << 17);
21855     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21856   }
21857 frvbf_media_overflow (current_cpu, 4);
21858 }
21859 } else {
21860 if (LTDI (tmp_tmp, 0)) {
21861 {
21862   {
21863     UHI opval = 0;
21864     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21865     written |= (1 << 17);
21866     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21867   }
21868 frvbf_media_overflow (current_cpu, 4);
21869 }
21870 } else {
21871   {
21872     UHI opval = tmp_tmp;
21873     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21874     written |= (1 << 17);
21875     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21876   }
21877 }
21878 }
21879 }
21880 {
21881   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21882   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21883   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21884   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21885 }
21886 {
21887   DI tmp_tmp;
21888   tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
21889 if (GTDI (tmp_tmp, 65535)) {
21890 {
21891   {
21892     UHI opval = 65535;
21893     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21894     written |= (1 << 16);
21895     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21896   }
21897 frvbf_media_overflow (current_cpu, 2);
21898 }
21899 } else {
21900 if (LTDI (tmp_tmp, 0)) {
21901 {
21902   {
21903     UHI opval = 0;
21904     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21905     written |= (1 << 16);
21906     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21907   }
21908 frvbf_media_overflow (current_cpu, 2);
21909 }
21910 } else {
21911   {
21912     UHI opval = tmp_tmp;
21913     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21914     written |= (1 << 16);
21915     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21916   }
21917 }
21918 }
21919 }
21920 {
21921   DI tmp_tmp;
21922   tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
21923 if (GTDI (tmp_tmp, 65535)) {
21924 {
21925   {
21926     UHI opval = 65535;
21927     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21928     written |= (1 << 18);
21929     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21930   }
21931 frvbf_media_overflow (current_cpu, 1);
21932 }
21933 } else {
21934 if (LTDI (tmp_tmp, 0)) {
21935 {
21936   {
21937     UHI opval = 0;
21938     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21939     written |= (1 << 18);
21940     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21941   }
21942 frvbf_media_overflow (current_cpu, 1);
21943 }
21944 } else {
21945   {
21946     UHI opval = tmp_tmp;
21947     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21948     written |= (1 << 18);
21949     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21950   }
21951 }
21952 }
21953 }
21954 }
21955 }
21956
21957   abuf->written = written;
21958   return vpc;
21959 #undef FLD
21960 }
21961
21962 /* cmqaddhss: cmqaddhss$pack $FRintieven,$FRintjeven,$FRintkeven,$CCi,$cond */
21963
21964 static SEM_PC
21965 SEM_FN_NAME (frvbf,cmqaddhss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
21966 {
21967 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
21968   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
21969   int UNUSED written = 0;
21970   IADDR UNUSED pc = abuf->addr;
21971   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
21972
21973 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
21974 frvbf_media_register_not_aligned (current_cpu);
21975 } else {
21976 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
21977 {
21978   HI tmp_argihi;
21979   HI tmp_argilo;
21980   HI tmp_argjhi;
21981   HI tmp_argjlo;
21982   {
21983     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
21984     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
21985     written |= (1 << 16);
21986     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
21987   }
21988 {
21989   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21990   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21991   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21992   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21993 }
21994 {
21995   DI tmp_tmp;
21996   tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
21997 if (GTDI (tmp_tmp, 32767)) {
21998 {
21999   {
22000     UHI opval = 32767;
22001     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22002     written |= (1 << 17);
22003     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22004   }
22005 frvbf_media_overflow (current_cpu, 8);
22006 }
22007 } else {
22008 if (LTDI (tmp_tmp, -32768)) {
22009 {
22010   {
22011     UHI opval = -32768;
22012     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22013     written |= (1 << 17);
22014     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22015   }
22016 frvbf_media_overflow (current_cpu, 8);
22017 }
22018 } else {
22019   {
22020     UHI opval = tmp_tmp;
22021     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22022     written |= (1 << 17);
22023     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22024   }
22025 }
22026 }
22027 }
22028 {
22029   DI tmp_tmp;
22030   tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
22031 if (GTDI (tmp_tmp, 32767)) {
22032 {
22033   {
22034     UHI opval = 32767;
22035     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22036     written |= (1 << 19);
22037     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22038   }
22039 frvbf_media_overflow (current_cpu, 4);
22040 }
22041 } else {
22042 if (LTDI (tmp_tmp, -32768)) {
22043 {
22044   {
22045     UHI opval = -32768;
22046     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22047     written |= (1 << 19);
22048     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22049   }
22050 frvbf_media_overflow (current_cpu, 4);
22051 }
22052 } else {
22053   {
22054     UHI opval = tmp_tmp;
22055     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22056     written |= (1 << 19);
22057     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22058   }
22059 }
22060 }
22061 }
22062 {
22063   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22064   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22065   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22066   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22067 }
22068 {
22069   DI tmp_tmp;
22070   tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
22071 if (GTDI (tmp_tmp, 32767)) {
22072 {
22073   {
22074     UHI opval = 32767;
22075     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22076     written |= (1 << 18);
22077     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22078   }
22079 frvbf_media_overflow (current_cpu, 2);
22080 }
22081 } else {
22082 if (LTDI (tmp_tmp, -32768)) {
22083 {
22084   {
22085     UHI opval = -32768;
22086     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22087     written |= (1 << 18);
22088     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22089   }
22090 frvbf_media_overflow (current_cpu, 2);
22091 }
22092 } else {
22093   {
22094     UHI opval = tmp_tmp;
22095     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22096     written |= (1 << 18);
22097     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22098   }
22099 }
22100 }
22101 }
22102 {
22103   DI tmp_tmp;
22104   tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
22105 if (GTDI (tmp_tmp, 32767)) {
22106 {
22107   {
22108     UHI opval = 32767;
22109     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22110     written |= (1 << 20);
22111     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22112   }
22113 frvbf_media_overflow (current_cpu, 1);
22114 }
22115 } else {
22116 if (LTDI (tmp_tmp, -32768)) {
22117 {
22118   {
22119     UHI opval = -32768;
22120     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22121     written |= (1 << 20);
22122     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22123   }
22124 frvbf_media_overflow (current_cpu, 1);
22125 }
22126 } else {
22127   {
22128     UHI opval = tmp_tmp;
22129     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22130     written |= (1 << 20);
22131     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22132   }
22133 }
22134 }
22135 }
22136 }
22137 }
22138 }
22139
22140   abuf->written = written;
22141   return vpc;
22142 #undef FLD
22143 }
22144
22145 /* cmqaddhus: cmqaddhus$pack $FRintieven,$FRintjeven,$FRintkeven,$CCi,$cond */
22146
22147 static SEM_PC
22148 SEM_FN_NAME (frvbf,cmqaddhus) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
22149 {
22150 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
22151   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
22152   int UNUSED written = 0;
22153   IADDR UNUSED pc = abuf->addr;
22154   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
22155
22156 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
22157 frvbf_media_register_not_aligned (current_cpu);
22158 } else {
22159 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
22160 {
22161   UHI tmp_argihi;
22162   UHI tmp_argilo;
22163   UHI tmp_argjhi;
22164   UHI tmp_argjlo;
22165   {
22166     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
22167     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
22168     written |= (1 << 16);
22169     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
22170   }
22171 {
22172   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22173   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22174   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22175   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22176 }
22177 {
22178   DI tmp_tmp;
22179   tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
22180 if (GTDI (tmp_tmp, 65535)) {
22181 {
22182   {
22183     UHI opval = 65535;
22184     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22185     written |= (1 << 17);
22186     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22187   }
22188 frvbf_media_overflow (current_cpu, 8);
22189 }
22190 } else {
22191 if (LTDI (tmp_tmp, 0)) {
22192 {
22193   {
22194     UHI opval = 0;
22195     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22196     written |= (1 << 17);
22197     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22198   }
22199 frvbf_media_overflow (current_cpu, 8);
22200 }
22201 } else {
22202   {
22203     UHI opval = tmp_tmp;
22204     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22205     written |= (1 << 17);
22206     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22207   }
22208 }
22209 }
22210 }
22211 {
22212   DI tmp_tmp;
22213   tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
22214 if (GTDI (tmp_tmp, 65535)) {
22215 {
22216   {
22217     UHI opval = 65535;
22218     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22219     written |= (1 << 19);
22220     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22221   }
22222 frvbf_media_overflow (current_cpu, 4);
22223 }
22224 } else {
22225 if (LTDI (tmp_tmp, 0)) {
22226 {
22227   {
22228     UHI opval = 0;
22229     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22230     written |= (1 << 19);
22231     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22232   }
22233 frvbf_media_overflow (current_cpu, 4);
22234 }
22235 } else {
22236   {
22237     UHI opval = tmp_tmp;
22238     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22239     written |= (1 << 19);
22240     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22241   }
22242 }
22243 }
22244 }
22245 {
22246   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22247   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22248   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22249   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22250 }
22251 {
22252   DI tmp_tmp;
22253   tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
22254 if (GTDI (tmp_tmp, 65535)) {
22255 {
22256   {
22257     UHI opval = 65535;
22258     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22259     written |= (1 << 18);
22260     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22261   }
22262 frvbf_media_overflow (current_cpu, 2);
22263 }
22264 } else {
22265 if (LTDI (tmp_tmp, 0)) {
22266 {
22267   {
22268     UHI opval = 0;
22269     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22270     written |= (1 << 18);
22271     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22272   }
22273 frvbf_media_overflow (current_cpu, 2);
22274 }
22275 } else {
22276   {
22277     UHI opval = tmp_tmp;
22278     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22279     written |= (1 << 18);
22280     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22281   }
22282 }
22283 }
22284 }
22285 {
22286   DI tmp_tmp;
22287   tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
22288 if (GTDI (tmp_tmp, 65535)) {
22289 {
22290   {
22291     UHI opval = 65535;
22292     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22293     written |= (1 << 20);
22294     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22295   }
22296 frvbf_media_overflow (current_cpu, 1);
22297 }
22298 } else {
22299 if (LTDI (tmp_tmp, 0)) {
22300 {
22301   {
22302     UHI opval = 0;
22303     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22304     written |= (1 << 20);
22305     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22306   }
22307 frvbf_media_overflow (current_cpu, 1);
22308 }
22309 } else {
22310   {
22311     UHI opval = tmp_tmp;
22312     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22313     written |= (1 << 20);
22314     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22315   }
22316 }
22317 }
22318 }
22319 }
22320 }
22321 }
22322
22323   abuf->written = written;
22324   return vpc;
22325 #undef FLD
22326 }
22327
22328 /* cmqsubhss: cmqsubhss$pack $FRintieven,$FRintjeven,$FRintkeven,$CCi,$cond */
22329
22330 static SEM_PC
22331 SEM_FN_NAME (frvbf,cmqsubhss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
22332 {
22333 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
22334   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
22335   int UNUSED written = 0;
22336   IADDR UNUSED pc = abuf->addr;
22337   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
22338
22339 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
22340 frvbf_media_register_not_aligned (current_cpu);
22341 } else {
22342 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
22343 {
22344   HI tmp_argihi;
22345   HI tmp_argilo;
22346   HI tmp_argjhi;
22347   HI tmp_argjlo;
22348   {
22349     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
22350     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
22351     written |= (1 << 16);
22352     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
22353   }
22354 {
22355   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22356   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22357   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22358   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22359 }
22360 {
22361   DI tmp_tmp;
22362   tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
22363 if (GTDI (tmp_tmp, 32767)) {
22364 {
22365   {
22366     UHI opval = 32767;
22367     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22368     written |= (1 << 17);
22369     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22370   }
22371 frvbf_media_overflow (current_cpu, 8);
22372 }
22373 } else {
22374 if (LTDI (tmp_tmp, -32768)) {
22375 {
22376   {
22377     UHI opval = -32768;
22378     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22379     written |= (1 << 17);
22380     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22381   }
22382 frvbf_media_overflow (current_cpu, 8);
22383 }
22384 } else {
22385   {
22386     UHI opval = tmp_tmp;
22387     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22388     written |= (1 << 17);
22389     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22390   }
22391 }
22392 }
22393 }
22394 {
22395   DI tmp_tmp;
22396   tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
22397 if (GTDI (tmp_tmp, 32767)) {
22398 {
22399   {
22400     UHI opval = 32767;
22401     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22402     written |= (1 << 19);
22403     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22404   }
22405 frvbf_media_overflow (current_cpu, 4);
22406 }
22407 } else {
22408 if (LTDI (tmp_tmp, -32768)) {
22409 {
22410   {
22411     UHI opval = -32768;
22412     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22413     written |= (1 << 19);
22414     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22415   }
22416 frvbf_media_overflow (current_cpu, 4);
22417 }
22418 } else {
22419   {
22420     UHI opval = tmp_tmp;
22421     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22422     written |= (1 << 19);
22423     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22424   }
22425 }
22426 }
22427 }
22428 {
22429   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22430   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22431   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22432   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22433 }
22434 {
22435   DI tmp_tmp;
22436   tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
22437 if (GTDI (tmp_tmp, 32767)) {
22438 {
22439   {
22440     UHI opval = 32767;
22441     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22442     written |= (1 << 18);
22443     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22444   }
22445 frvbf_media_overflow (current_cpu, 2);
22446 }
22447 } else {
22448 if (LTDI (tmp_tmp, -32768)) {
22449 {
22450   {
22451     UHI opval = -32768;
22452     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22453     written |= (1 << 18);
22454     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22455   }
22456 frvbf_media_overflow (current_cpu, 2);
22457 }
22458 } else {
22459   {
22460     UHI opval = tmp_tmp;
22461     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22462     written |= (1 << 18);
22463     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22464   }
22465 }
22466 }
22467 }
22468 {
22469   DI tmp_tmp;
22470   tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
22471 if (GTDI (tmp_tmp, 32767)) {
22472 {
22473   {
22474     UHI opval = 32767;
22475     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22476     written |= (1 << 20);
22477     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22478   }
22479 frvbf_media_overflow (current_cpu, 1);
22480 }
22481 } else {
22482 if (LTDI (tmp_tmp, -32768)) {
22483 {
22484   {
22485     UHI opval = -32768;
22486     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22487     written |= (1 << 20);
22488     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22489   }
22490 frvbf_media_overflow (current_cpu, 1);
22491 }
22492 } else {
22493   {
22494     UHI opval = tmp_tmp;
22495     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22496     written |= (1 << 20);
22497     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22498   }
22499 }
22500 }
22501 }
22502 }
22503 }
22504 }
22505
22506   abuf->written = written;
22507   return vpc;
22508 #undef FLD
22509 }
22510
22511 /* cmqsubhus: cmqsubhus$pack $FRintieven,$FRintjeven,$FRintkeven,$CCi,$cond */
22512
22513 static SEM_PC
22514 SEM_FN_NAME (frvbf,cmqsubhus) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
22515 {
22516 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
22517   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
22518   int UNUSED written = 0;
22519   IADDR UNUSED pc = abuf->addr;
22520   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
22521
22522 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
22523 frvbf_media_register_not_aligned (current_cpu);
22524 } else {
22525 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
22526 {
22527   UHI tmp_argihi;
22528   UHI tmp_argilo;
22529   UHI tmp_argjhi;
22530   UHI tmp_argjlo;
22531   {
22532     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
22533     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
22534     written |= (1 << 16);
22535     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
22536   }
22537 {
22538   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22539   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22540   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22541   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22542 }
22543 {
22544   DI tmp_tmp;
22545   tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
22546 if (GTDI (tmp_tmp, 65535)) {
22547 {
22548   {
22549     UHI opval = 65535;
22550     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22551     written |= (1 << 17);
22552     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22553   }
22554 frvbf_media_overflow (current_cpu, 8);
22555 }
22556 } else {
22557 if (LTDI (tmp_tmp, 0)) {
22558 {
22559   {
22560     UHI opval = 0;
22561     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22562     written |= (1 << 17);
22563     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22564   }
22565 frvbf_media_overflow (current_cpu, 8);
22566 }
22567 } else {
22568   {
22569     UHI opval = tmp_tmp;
22570     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22571     written |= (1 << 17);
22572     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22573   }
22574 }
22575 }
22576 }
22577 {
22578   DI tmp_tmp;
22579   tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
22580 if (GTDI (tmp_tmp, 65535)) {
22581 {
22582   {
22583     UHI opval = 65535;
22584     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22585     written |= (1 << 19);
22586     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22587   }
22588 frvbf_media_overflow (current_cpu, 4);
22589 }
22590 } else {
22591 if (LTDI (tmp_tmp, 0)) {
22592 {
22593   {
22594     UHI opval = 0;
22595     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22596     written |= (1 << 19);
22597     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22598   }
22599 frvbf_media_overflow (current_cpu, 4);
22600 }
22601 } else {
22602   {
22603     UHI opval = tmp_tmp;
22604     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22605     written |= (1 << 19);
22606     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22607   }
22608 }
22609 }
22610 }
22611 {
22612   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22613   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22614   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22615   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22616 }
22617 {
22618   DI tmp_tmp;
22619   tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
22620 if (GTDI (tmp_tmp, 65535)) {
22621 {
22622   {
22623     UHI opval = 65535;
22624     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22625     written |= (1 << 18);
22626     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22627   }
22628 frvbf_media_overflow (current_cpu, 2);
22629 }
22630 } else {
22631 if (LTDI (tmp_tmp, 0)) {
22632 {
22633   {
22634     UHI opval = 0;
22635     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22636     written |= (1 << 18);
22637     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22638   }
22639 frvbf_media_overflow (current_cpu, 2);
22640 }
22641 } else {
22642   {
22643     UHI opval = tmp_tmp;
22644     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22645     written |= (1 << 18);
22646     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22647   }
22648 }
22649 }
22650 }
22651 {
22652   DI tmp_tmp;
22653   tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
22654 if (GTDI (tmp_tmp, 65535)) {
22655 {
22656   {
22657     UHI opval = 65535;
22658     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22659     written |= (1 << 20);
22660     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22661   }
22662 frvbf_media_overflow (current_cpu, 1);
22663 }
22664 } else {
22665 if (LTDI (tmp_tmp, 0)) {
22666 {
22667   {
22668     UHI opval = 0;
22669     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22670     written |= (1 << 20);
22671     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22672   }
22673 frvbf_media_overflow (current_cpu, 1);
22674 }
22675 } else {
22676   {
22677     UHI opval = tmp_tmp;
22678     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22679     written |= (1 << 20);
22680     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22681   }
22682 }
22683 }
22684 }
22685 }
22686 }
22687 }
22688
22689   abuf->written = written;
22690   return vpc;
22691 #undef FLD
22692 }
22693
22694 /* maddaccs: maddaccs$pack $ACC40Si,$ACC40Sk */
22695
22696 static SEM_PC
22697 SEM_FN_NAME (frvbf,maddaccs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
22698 {
22699 #define FLD(f) abuf->fields.sfmt_mdasaccs.f
22700   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
22701   int UNUSED written = 0;
22702   IADDR UNUSED pc = abuf->addr;
22703   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
22704
22705 if (ANDSI (FLD (f_ACC40Si), SUBSI (2, 1))) {
22706 frvbf_media_acc_not_aligned (current_cpu);
22707 } else {
22708 {
22709   DI tmp_tmp;
22710   tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_ACC40S (((FLD (f_ACC40Si)) + (1))));
22711 if (GTDI (tmp_tmp, 549755813887)) {
22712 {
22713   {
22714     DI opval = 549755813887;
22715     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
22716     written |= (1 << 3);
22717     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22718   }
22719 frvbf_media_overflow (current_cpu, 8);
22720 }
22721 } else {
22722 if (LTDI (tmp_tmp, INVDI (549755813887))) {
22723 {
22724   {
22725     DI opval = INVDI (549755813887);
22726     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
22727     written |= (1 << 3);
22728     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22729   }
22730 frvbf_media_overflow (current_cpu, 8);
22731 }
22732 } else {
22733   {
22734     DI opval = tmp_tmp;
22735     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
22736     written |= (1 << 3);
22737     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22738   }
22739 }
22740 }
22741 }
22742 }
22743
22744   abuf->written = written;
22745   return vpc;
22746 #undef FLD
22747 }
22748
22749 /* msubaccs: msubaccs$pack $ACC40Si,$ACC40Sk */
22750
22751 static SEM_PC
22752 SEM_FN_NAME (frvbf,msubaccs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
22753 {
22754 #define FLD(f) abuf->fields.sfmt_mdasaccs.f
22755   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
22756   int UNUSED written = 0;
22757   IADDR UNUSED pc = abuf->addr;
22758   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
22759
22760 if (ANDSI (FLD (f_ACC40Si), SUBSI (2, 1))) {
22761 frvbf_media_acc_not_aligned (current_cpu);
22762 } else {
22763 {
22764   DI tmp_tmp;
22765   tmp_tmp = SUBDI (GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_ACC40S (((FLD (f_ACC40Si)) + (1))));
22766 if (GTDI (tmp_tmp, 549755813887)) {
22767 {
22768   {
22769     DI opval = 549755813887;
22770     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
22771     written |= (1 << 3);
22772     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22773   }
22774 frvbf_media_overflow (current_cpu, 8);
22775 }
22776 } else {
22777 if (LTDI (tmp_tmp, INVDI (549755813887))) {
22778 {
22779   {
22780     DI opval = INVDI (549755813887);
22781     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
22782     written |= (1 << 3);
22783     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22784   }
22785 frvbf_media_overflow (current_cpu, 8);
22786 }
22787 } else {
22788   {
22789     DI opval = tmp_tmp;
22790     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
22791     written |= (1 << 3);
22792     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22793   }
22794 }
22795 }
22796 }
22797 }
22798
22799   abuf->written = written;
22800   return vpc;
22801 #undef FLD
22802 }
22803
22804 /* mdaddaccs: mdaddaccs$pack $ACC40Si,$ACC40Sk */
22805
22806 static SEM_PC
22807 SEM_FN_NAME (frvbf,mdaddaccs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
22808 {
22809 #define FLD(f) abuf->fields.sfmt_mdasaccs.f
22810   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
22811   int UNUSED written = 0;
22812   IADDR UNUSED pc = abuf->addr;
22813   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
22814
22815 if (ANDSI (FLD (f_ACC40Si), SUBSI (4, 1))) {
22816 frvbf_media_acc_not_aligned (current_cpu);
22817 } else {
22818 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
22819 frvbf_media_acc_not_aligned (current_cpu);
22820 } else {
22821 {
22822 {
22823   DI tmp_tmp;
22824   tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_ACC40S (((FLD (f_ACC40Si)) + (1))));
22825 if (GTDI (tmp_tmp, 549755813887)) {
22826 {
22827   {
22828     DI opval = 549755813887;
22829     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
22830     written |= (1 << 6);
22831     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22832   }
22833 frvbf_media_overflow (current_cpu, 8);
22834 }
22835 } else {
22836 if (LTDI (tmp_tmp, INVDI (549755813887))) {
22837 {
22838   {
22839     DI opval = INVDI (549755813887);
22840     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
22841     written |= (1 << 6);
22842     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22843   }
22844 frvbf_media_overflow (current_cpu, 8);
22845 }
22846 } else {
22847   {
22848     DI opval = tmp_tmp;
22849     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
22850     written |= (1 << 6);
22851     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22852   }
22853 }
22854 }
22855 }
22856 {
22857   DI tmp_tmp;
22858   tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Si)) + (2))), GET_H_ACC40S (((FLD (f_ACC40Si)) + (3))));
22859 if (GTDI (tmp_tmp, 549755813887)) {
22860 {
22861   {
22862     DI opval = 549755813887;
22863     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
22864     written |= (1 << 7);
22865     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22866   }
22867 frvbf_media_overflow (current_cpu, 4);
22868 }
22869 } else {
22870 if (LTDI (tmp_tmp, INVDI (549755813887))) {
22871 {
22872   {
22873     DI opval = INVDI (549755813887);
22874     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
22875     written |= (1 << 7);
22876     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22877   }
22878 frvbf_media_overflow (current_cpu, 4);
22879 }
22880 } else {
22881   {
22882     DI opval = tmp_tmp;
22883     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
22884     written |= (1 << 7);
22885     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22886   }
22887 }
22888 }
22889 }
22890 }
22891 }
22892 }
22893
22894   abuf->written = written;
22895   return vpc;
22896 #undef FLD
22897 }
22898
22899 /* mdsubaccs: mdsubaccs$pack $ACC40Si,$ACC40Sk */
22900
22901 static SEM_PC
22902 SEM_FN_NAME (frvbf,mdsubaccs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
22903 {
22904 #define FLD(f) abuf->fields.sfmt_mdasaccs.f
22905   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
22906   int UNUSED written = 0;
22907   IADDR UNUSED pc = abuf->addr;
22908   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
22909
22910 if (ANDSI (FLD (f_ACC40Si), SUBSI (4, 1))) {
22911 frvbf_media_acc_not_aligned (current_cpu);
22912 } else {
22913 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
22914 frvbf_media_acc_not_aligned (current_cpu);
22915 } else {
22916 {
22917 {
22918   DI tmp_tmp;
22919   tmp_tmp = SUBDI (GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_ACC40S (((FLD (f_ACC40Si)) + (1))));
22920 if (GTDI (tmp_tmp, 549755813887)) {
22921 {
22922   {
22923     DI opval = 549755813887;
22924     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
22925     written |= (1 << 6);
22926     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22927   }
22928 frvbf_media_overflow (current_cpu, 8);
22929 }
22930 } else {
22931 if (LTDI (tmp_tmp, INVDI (549755813887))) {
22932 {
22933   {
22934     DI opval = INVDI (549755813887);
22935     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
22936     written |= (1 << 6);
22937     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22938   }
22939 frvbf_media_overflow (current_cpu, 8);
22940 }
22941 } else {
22942   {
22943     DI opval = tmp_tmp;
22944     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
22945     written |= (1 << 6);
22946     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22947   }
22948 }
22949 }
22950 }
22951 {
22952   DI tmp_tmp;
22953   tmp_tmp = SUBDI (GET_H_ACC40S (((FLD (f_ACC40Si)) + (2))), GET_H_ACC40S (((FLD (f_ACC40Si)) + (3))));
22954 if (GTDI (tmp_tmp, 549755813887)) {
22955 {
22956   {
22957     DI opval = 549755813887;
22958     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
22959     written |= (1 << 7);
22960     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22961   }
22962 frvbf_media_overflow (current_cpu, 4);
22963 }
22964 } else {
22965 if (LTDI (tmp_tmp, INVDI (549755813887))) {
22966 {
22967   {
22968     DI opval = INVDI (549755813887);
22969     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
22970     written |= (1 << 7);
22971     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22972   }
22973 frvbf_media_overflow (current_cpu, 4);
22974 }
22975 } else {
22976   {
22977     DI opval = tmp_tmp;
22978     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
22979     written |= (1 << 7);
22980     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22981   }
22982 }
22983 }
22984 }
22985 }
22986 }
22987 }
22988
22989   abuf->written = written;
22990   return vpc;
22991 #undef FLD
22992 }
22993
22994 /* masaccs: masaccs$pack $ACC40Si,$ACC40Sk */
22995
22996 static SEM_PC
22997 SEM_FN_NAME (frvbf,masaccs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
22998 {
22999 #define FLD(f) abuf->fields.sfmt_mdasaccs.f
23000   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23001   int UNUSED written = 0;
23002   IADDR UNUSED pc = abuf->addr;
23003   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23004
23005 if (ANDSI (FLD (f_ACC40Si), SUBSI (2, 1))) {
23006 frvbf_media_acc_not_aligned (current_cpu);
23007 } else {
23008 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
23009 frvbf_media_acc_not_aligned (current_cpu);
23010 } else {
23011 {
23012 {
23013   DI tmp_tmp;
23014   tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_ACC40S (((FLD (f_ACC40Si)) + (1))));
23015 if (GTDI (tmp_tmp, 549755813887)) {
23016 {
23017   {
23018     DI opval = 549755813887;
23019     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23020     written |= (1 << 4);
23021     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23022   }
23023 frvbf_media_overflow (current_cpu, 8);
23024 }
23025 } else {
23026 if (LTDI (tmp_tmp, INVDI (549755813887))) {
23027 {
23028   {
23029     DI opval = INVDI (549755813887);
23030     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23031     written |= (1 << 4);
23032     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23033   }
23034 frvbf_media_overflow (current_cpu, 8);
23035 }
23036 } else {
23037   {
23038     DI opval = tmp_tmp;
23039     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23040     written |= (1 << 4);
23041     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23042   }
23043 }
23044 }
23045 }
23046 {
23047   DI tmp_tmp;
23048   tmp_tmp = SUBDI (GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_ACC40S (((FLD (f_ACC40Si)) + (1))));
23049 if (GTDI (tmp_tmp, 549755813887)) {
23050 {
23051   {
23052     DI opval = 549755813887;
23053     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23054     written |= (1 << 5);
23055     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23056   }
23057 frvbf_media_overflow (current_cpu, 4);
23058 }
23059 } else {
23060 if (LTDI (tmp_tmp, INVDI (549755813887))) {
23061 {
23062   {
23063     DI opval = INVDI (549755813887);
23064     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23065     written |= (1 << 5);
23066     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23067   }
23068 frvbf_media_overflow (current_cpu, 4);
23069 }
23070 } else {
23071   {
23072     DI opval = tmp_tmp;
23073     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23074     written |= (1 << 5);
23075     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23076   }
23077 }
23078 }
23079 }
23080 }
23081 }
23082 }
23083
23084   abuf->written = written;
23085   return vpc;
23086 #undef FLD
23087 }
23088
23089 /* mdasaccs: mdasaccs$pack $ACC40Si,$ACC40Sk */
23090
23091 static SEM_PC
23092 SEM_FN_NAME (frvbf,mdasaccs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23093 {
23094 #define FLD(f) abuf->fields.sfmt_mdasaccs.f
23095   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23096   int UNUSED written = 0;
23097   IADDR UNUSED pc = abuf->addr;
23098   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23099
23100 if (ANDSI (FLD (f_ACC40Si), SUBSI (4, 1))) {
23101 frvbf_media_acc_not_aligned (current_cpu);
23102 } else {
23103 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
23104 frvbf_media_acc_not_aligned (current_cpu);
23105 } else {
23106 {
23107 {
23108   DI tmp_tmp;
23109   tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_ACC40S (((FLD (f_ACC40Si)) + (1))));
23110 if (GTDI (tmp_tmp, 549755813887)) {
23111 {
23112   {
23113     DI opval = 549755813887;
23114     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23115     written |= (1 << 6);
23116     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23117   }
23118 frvbf_media_overflow (current_cpu, 8);
23119 }
23120 } else {
23121 if (LTDI (tmp_tmp, INVDI (549755813887))) {
23122 {
23123   {
23124     DI opval = INVDI (549755813887);
23125     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23126     written |= (1 << 6);
23127     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23128   }
23129 frvbf_media_overflow (current_cpu, 8);
23130 }
23131 } else {
23132   {
23133     DI opval = tmp_tmp;
23134     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23135     written |= (1 << 6);
23136     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23137   }
23138 }
23139 }
23140 }
23141 {
23142   DI tmp_tmp;
23143   tmp_tmp = SUBDI (GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_ACC40S (((FLD (f_ACC40Si)) + (1))));
23144 if (GTDI (tmp_tmp, 549755813887)) {
23145 {
23146   {
23147     DI opval = 549755813887;
23148     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23149     written |= (1 << 7);
23150     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23151   }
23152 frvbf_media_overflow (current_cpu, 4);
23153 }
23154 } else {
23155 if (LTDI (tmp_tmp, INVDI (549755813887))) {
23156 {
23157   {
23158     DI opval = INVDI (549755813887);
23159     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23160     written |= (1 << 7);
23161     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23162   }
23163 frvbf_media_overflow (current_cpu, 4);
23164 }
23165 } else {
23166   {
23167     DI opval = tmp_tmp;
23168     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23169     written |= (1 << 7);
23170     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23171   }
23172 }
23173 }
23174 }
23175 {
23176   DI tmp_tmp;
23177   tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Si)) + (2))), GET_H_ACC40S (((FLD (f_ACC40Si)) + (3))));
23178 if (GTDI (tmp_tmp, 549755813887)) {
23179 {
23180   {
23181     DI opval = 549755813887;
23182     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
23183     written |= (1 << 8);
23184     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23185   }
23186 frvbf_media_overflow (current_cpu, 2);
23187 }
23188 } else {
23189 if (LTDI (tmp_tmp, INVDI (549755813887))) {
23190 {
23191   {
23192     DI opval = INVDI (549755813887);
23193     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
23194     written |= (1 << 8);
23195     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23196   }
23197 frvbf_media_overflow (current_cpu, 2);
23198 }
23199 } else {
23200   {
23201     DI opval = tmp_tmp;
23202     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
23203     written |= (1 << 8);
23204     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23205   }
23206 }
23207 }
23208 }
23209 {
23210   DI tmp_tmp;
23211   tmp_tmp = SUBDI (GET_H_ACC40S (((FLD (f_ACC40Si)) + (2))), GET_H_ACC40S (((FLD (f_ACC40Si)) + (3))));
23212 if (GTDI (tmp_tmp, 549755813887)) {
23213 {
23214   {
23215     DI opval = 549755813887;
23216     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
23217     written |= (1 << 9);
23218     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23219   }
23220 frvbf_media_overflow (current_cpu, 1);
23221 }
23222 } else {
23223 if (LTDI (tmp_tmp, INVDI (549755813887))) {
23224 {
23225   {
23226     DI opval = INVDI (549755813887);
23227     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
23228     written |= (1 << 9);
23229     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23230   }
23231 frvbf_media_overflow (current_cpu, 1);
23232 }
23233 } else {
23234   {
23235     DI opval = tmp_tmp;
23236     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
23237     written |= (1 << 9);
23238     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23239   }
23240 }
23241 }
23242 }
23243 }
23244 }
23245 }
23246
23247   abuf->written = written;
23248   return vpc;
23249 #undef FLD
23250 }
23251
23252 /* mmulhs: mmulhs$pack $FRinti,$FRintj,$ACC40Sk */
23253
23254 static SEM_PC
23255 SEM_FN_NAME (frvbf,mmulhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23256 {
23257 #define FLD(f) abuf->fields.sfmt_cmmachs.f
23258   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23259   int UNUSED written = 0;
23260   IADDR UNUSED pc = abuf->addr;
23261   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23262
23263 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
23264 frvbf_media_acc_not_aligned (current_cpu);
23265 } else {
23266 {
23267   HI tmp_argihi;
23268   HI tmp_argilo;
23269   HI tmp_argjhi;
23270   HI tmp_argjlo;
23271 {
23272   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23273   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23274   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23275   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23276 }
23277   {
23278     DI opval = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
23279     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23280     written |= (1 << 9);
23281     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23282   }
23283   {
23284     DI opval = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
23285     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23286     written |= (1 << 10);
23287     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23288   }
23289 }
23290 }
23291
23292   abuf->written = written;
23293   return vpc;
23294 #undef FLD
23295 }
23296
23297 /* mmulhu: mmulhu$pack $FRinti,$FRintj,$ACC40Sk */
23298
23299 static SEM_PC
23300 SEM_FN_NAME (frvbf,mmulhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23301 {
23302 #define FLD(f) abuf->fields.sfmt_cmmachs.f
23303   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23304   int UNUSED written = 0;
23305   IADDR UNUSED pc = abuf->addr;
23306   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23307
23308 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
23309 frvbf_media_acc_not_aligned (current_cpu);
23310 } else {
23311 {
23312   UHI tmp_argihi;
23313   UHI tmp_argilo;
23314   UHI tmp_argjhi;
23315   UHI tmp_argjlo;
23316 {
23317   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23318   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23319   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23320   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23321 }
23322   {
23323     DI opval = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
23324     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23325     written |= (1 << 9);
23326     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23327   }
23328   {
23329     DI opval = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
23330     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23331     written |= (1 << 10);
23332     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23333   }
23334 }
23335 }
23336
23337   abuf->written = written;
23338   return vpc;
23339 #undef FLD
23340 }
23341
23342 /* mmulxhs: mmulxhs$pack $FRinti,$FRintj,$ACC40Sk */
23343
23344 static SEM_PC
23345 SEM_FN_NAME (frvbf,mmulxhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23346 {
23347 #define FLD(f) abuf->fields.sfmt_cmmachs.f
23348   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23349   int UNUSED written = 0;
23350   IADDR UNUSED pc = abuf->addr;
23351   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23352
23353 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
23354 frvbf_media_acc_not_aligned (current_cpu);
23355 } else {
23356 {
23357   HI tmp_argihi;
23358   HI tmp_argilo;
23359   HI tmp_argjhi;
23360   HI tmp_argjlo;
23361 {
23362   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23363   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23364   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23365   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23366 }
23367   {
23368     DI opval = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo));
23369     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23370     written |= (1 << 9);
23371     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23372   }
23373   {
23374     DI opval = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi));
23375     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23376     written |= (1 << 10);
23377     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23378   }
23379 }
23380 }
23381
23382   abuf->written = written;
23383   return vpc;
23384 #undef FLD
23385 }
23386
23387 /* mmulxhu: mmulxhu$pack $FRinti,$FRintj,$ACC40Sk */
23388
23389 static SEM_PC
23390 SEM_FN_NAME (frvbf,mmulxhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23391 {
23392 #define FLD(f) abuf->fields.sfmt_cmmachs.f
23393   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23394   int UNUSED written = 0;
23395   IADDR UNUSED pc = abuf->addr;
23396   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23397
23398 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
23399 frvbf_media_acc_not_aligned (current_cpu);
23400 } else {
23401 {
23402   UHI tmp_argihi;
23403   UHI tmp_argilo;
23404   UHI tmp_argjhi;
23405   UHI tmp_argjlo;
23406 {
23407   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23408   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23409   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23410   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23411 }
23412   {
23413     DI opval = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjlo));
23414     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23415     written |= (1 << 9);
23416     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23417   }
23418   {
23419     DI opval = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjhi));
23420     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23421     written |= (1 << 10);
23422     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23423   }
23424 }
23425 }
23426
23427   abuf->written = written;
23428   return vpc;
23429 #undef FLD
23430 }
23431
23432 /* cmmulhs: cmmulhs$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
23433
23434 static SEM_PC
23435 SEM_FN_NAME (frvbf,cmmulhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23436 {
23437 #define FLD(f) abuf->fields.sfmt_cmmachs.f
23438   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23439   int UNUSED written = 0;
23440   IADDR UNUSED pc = abuf->addr;
23441   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23442
23443 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
23444 frvbf_media_acc_not_aligned (current_cpu);
23445 } else {
23446 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
23447 {
23448   HI tmp_argihi;
23449   HI tmp_argilo;
23450   HI tmp_argjhi;
23451   HI tmp_argjlo;
23452 {
23453   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23454   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23455   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23456   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23457 }
23458   {
23459     DI opval = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
23460     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23461     written |= (1 << 11);
23462     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23463   }
23464   {
23465     DI opval = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
23466     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23467     written |= (1 << 12);
23468     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23469   }
23470 }
23471 }
23472 }
23473
23474   abuf->written = written;
23475   return vpc;
23476 #undef FLD
23477 }
23478
23479 /* cmmulhu: cmmulhu$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
23480
23481 static SEM_PC
23482 SEM_FN_NAME (frvbf,cmmulhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23483 {
23484 #define FLD(f) abuf->fields.sfmt_cmmachs.f
23485   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23486   int UNUSED written = 0;
23487   IADDR UNUSED pc = abuf->addr;
23488   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23489
23490 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
23491 frvbf_media_acc_not_aligned (current_cpu);
23492 } else {
23493 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
23494 {
23495   UHI tmp_argihi;
23496   UHI tmp_argilo;
23497   UHI tmp_argjhi;
23498   UHI tmp_argjlo;
23499 {
23500   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23501   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23502   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23503   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23504 }
23505   {
23506     DI opval = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
23507     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23508     written |= (1 << 11);
23509     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23510   }
23511   {
23512     DI opval = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
23513     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23514     written |= (1 << 12);
23515     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23516   }
23517 }
23518 }
23519 }
23520
23521   abuf->written = written;
23522   return vpc;
23523 #undef FLD
23524 }
23525
23526 /* mqmulhs: mqmulhs$pack $FRintieven,$FRintjeven,$ACC40Sk */
23527
23528 static SEM_PC
23529 SEM_FN_NAME (frvbf,mqmulhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23530 {
23531 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
23532   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23533   int UNUSED written = 0;
23534   IADDR UNUSED pc = abuf->addr;
23535   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23536
23537 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
23538 frvbf_media_acc_not_aligned (current_cpu);
23539 } else {
23540 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
23541 frvbf_media_register_not_aligned (current_cpu);
23542 } else {
23543 {
23544   HI tmp_argihi;
23545   HI tmp_argilo;
23546   HI tmp_argjhi;
23547   HI tmp_argjlo;
23548 {
23549   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23550   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23551   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23552   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23553 }
23554   {
23555     DI opval = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
23556     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23557     written |= (1 << 13);
23558     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23559   }
23560   {
23561     DI opval = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
23562     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23563     written |= (1 << 14);
23564     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23565   }
23566 {
23567   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23568   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23569   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23570   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23571 }
23572   {
23573     DI opval = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
23574     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
23575     written |= (1 << 15);
23576     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23577   }
23578   {
23579     DI opval = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
23580     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
23581     written |= (1 << 16);
23582     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23583   }
23584 }
23585 }
23586 }
23587
23588   abuf->written = written;
23589   return vpc;
23590 #undef FLD
23591 }
23592
23593 /* mqmulhu: mqmulhu$pack $FRintieven,$FRintjeven,$ACC40Sk */
23594
23595 static SEM_PC
23596 SEM_FN_NAME (frvbf,mqmulhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23597 {
23598 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
23599   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23600   int UNUSED written = 0;
23601   IADDR UNUSED pc = abuf->addr;
23602   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23603
23604 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
23605 frvbf_media_acc_not_aligned (current_cpu);
23606 } else {
23607 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
23608 frvbf_media_register_not_aligned (current_cpu);
23609 } else {
23610 {
23611   UHI tmp_argihi;
23612   UHI tmp_argilo;
23613   UHI tmp_argjhi;
23614   UHI tmp_argjlo;
23615 {
23616   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23617   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23618   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23619   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23620 }
23621   {
23622     DI opval = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
23623     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23624     written |= (1 << 13);
23625     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23626   }
23627   {
23628     DI opval = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
23629     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23630     written |= (1 << 14);
23631     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23632   }
23633 {
23634   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23635   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23636   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23637   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23638 }
23639   {
23640     DI opval = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
23641     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
23642     written |= (1 << 15);
23643     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23644   }
23645   {
23646     DI opval = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
23647     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
23648     written |= (1 << 16);
23649     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23650   }
23651 }
23652 }
23653 }
23654
23655   abuf->written = written;
23656   return vpc;
23657 #undef FLD
23658 }
23659
23660 /* mqmulxhs: mqmulxhs$pack $FRintieven,$FRintjeven,$ACC40Sk */
23661
23662 static SEM_PC
23663 SEM_FN_NAME (frvbf,mqmulxhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23664 {
23665 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
23666   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23667   int UNUSED written = 0;
23668   IADDR UNUSED pc = abuf->addr;
23669   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23670
23671 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
23672 frvbf_media_acc_not_aligned (current_cpu);
23673 } else {
23674 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
23675 frvbf_media_register_not_aligned (current_cpu);
23676 } else {
23677 {
23678   HI tmp_argihi;
23679   HI tmp_argilo;
23680   HI tmp_argjhi;
23681   HI tmp_argjlo;
23682 {
23683   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23684   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23685   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23686   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23687 }
23688   {
23689     DI opval = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo));
23690     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23691     written |= (1 << 13);
23692     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23693   }
23694   {
23695     DI opval = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi));
23696     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23697     written |= (1 << 14);
23698     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23699   }
23700 {
23701   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23702   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23703   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23704   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23705 }
23706   {
23707     DI opval = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo));
23708     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
23709     written |= (1 << 15);
23710     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23711   }
23712   {
23713     DI opval = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi));
23714     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
23715     written |= (1 << 16);
23716     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23717   }
23718 }
23719 }
23720 }
23721
23722   abuf->written = written;
23723   return vpc;
23724 #undef FLD
23725 }
23726
23727 /* mqmulxhu: mqmulxhu$pack $FRintieven,$FRintjeven,$ACC40Sk */
23728
23729 static SEM_PC
23730 SEM_FN_NAME (frvbf,mqmulxhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23731 {
23732 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
23733   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23734   int UNUSED written = 0;
23735   IADDR UNUSED pc = abuf->addr;
23736   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23737
23738 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
23739 frvbf_media_acc_not_aligned (current_cpu);
23740 } else {
23741 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
23742 frvbf_media_register_not_aligned (current_cpu);
23743 } else {
23744 {
23745   UHI tmp_argihi;
23746   UHI tmp_argilo;
23747   UHI tmp_argjhi;
23748   UHI tmp_argjlo;
23749 {
23750   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23751   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23752   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23753   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23754 }
23755   {
23756     DI opval = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjlo));
23757     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23758     written |= (1 << 13);
23759     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23760   }
23761   {
23762     DI opval = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjhi));
23763     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23764     written |= (1 << 14);
23765     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23766   }
23767 {
23768   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23769   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23770   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23771   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23772 }
23773   {
23774     DI opval = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjlo));
23775     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
23776     written |= (1 << 15);
23777     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23778   }
23779   {
23780     DI opval = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjhi));
23781     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
23782     written |= (1 << 16);
23783     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23784   }
23785 }
23786 }
23787 }
23788
23789   abuf->written = written;
23790   return vpc;
23791 #undef FLD
23792 }
23793
23794 /* cmqmulhs: cmqmulhs$pack $FRintieven,$FRintjeven,$ACC40Sk,$CCi,$cond */
23795
23796 static SEM_PC
23797 SEM_FN_NAME (frvbf,cmqmulhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23798 {
23799 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
23800   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23801   int UNUSED written = 0;
23802   IADDR UNUSED pc = abuf->addr;
23803   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23804
23805 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
23806 frvbf_media_acc_not_aligned (current_cpu);
23807 } else {
23808 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
23809 frvbf_media_register_not_aligned (current_cpu);
23810 } else {
23811 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
23812 {
23813   HI tmp_argihi;
23814   HI tmp_argilo;
23815   HI tmp_argjhi;
23816   HI tmp_argjlo;
23817 {
23818   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23819   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23820   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23821   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23822 }
23823   {
23824     DI opval = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
23825     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23826     written |= (1 << 15);
23827     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23828   }
23829   {
23830     DI opval = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
23831     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23832     written |= (1 << 16);
23833     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23834   }
23835 {
23836   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23837   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23838   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23839   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23840 }
23841   {
23842     DI opval = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
23843     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
23844     written |= (1 << 17);
23845     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23846   }
23847   {
23848     DI opval = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
23849     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
23850     written |= (1 << 18);
23851     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23852   }
23853 }
23854 }
23855 }
23856 }
23857
23858   abuf->written = written;
23859   return vpc;
23860 #undef FLD
23861 }
23862
23863 /* cmqmulhu: cmqmulhu$pack $FRintieven,$FRintjeven,$ACC40Sk,$CCi,$cond */
23864
23865 static SEM_PC
23866 SEM_FN_NAME (frvbf,cmqmulhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23867 {
23868 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
23869   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23870   int UNUSED written = 0;
23871   IADDR UNUSED pc = abuf->addr;
23872   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23873
23874 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
23875 frvbf_media_acc_not_aligned (current_cpu);
23876 } else {
23877 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
23878 frvbf_media_register_not_aligned (current_cpu);
23879 } else {
23880 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
23881 {
23882   UHI tmp_argihi;
23883   UHI tmp_argilo;
23884   UHI tmp_argjhi;
23885   UHI tmp_argjlo;
23886 {
23887   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23888   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23889   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23890   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23891 }
23892   {
23893     DI opval = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
23894     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23895     written |= (1 << 15);
23896     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23897   }
23898   {
23899     DI opval = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
23900     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23901     written |= (1 << 16);
23902     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23903   }
23904 {
23905   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23906   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23907   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23908   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23909 }
23910   {
23911     DI opval = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
23912     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
23913     written |= (1 << 17);
23914     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23915   }
23916   {
23917     DI opval = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
23918     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
23919     written |= (1 << 18);
23920     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23921   }
23922 }
23923 }
23924 }
23925 }
23926
23927   abuf->written = written;
23928   return vpc;
23929 #undef FLD
23930 }
23931
23932 /* mmachs: mmachs$pack $FRinti,$FRintj,$ACC40Sk */
23933
23934 static SEM_PC
23935 SEM_FN_NAME (frvbf,mmachs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23936 {
23937 #define FLD(f) abuf->fields.sfmt_cmmachs.f
23938   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23939   int UNUSED written = 0;
23940   IADDR UNUSED pc = abuf->addr;
23941   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23942
23943 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
23944 frvbf_media_acc_not_aligned (current_cpu);
23945 } else {
23946 {
23947   HI tmp_argihi;
23948   HI tmp_argilo;
23949   HI tmp_argjhi;
23950   HI tmp_argjlo;
23951 {
23952   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23953   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23954   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23955   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23956 }
23957 {
23958   DI tmp_tmp;
23959   tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Sk)), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi)));
23960 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
23961 {
23962   {
23963     DI opval = MAKEDI (127, 0xffffffff);
23964     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23965     written |= (1 << 11);
23966     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23967   }
23968 frvbf_media_overflow (current_cpu, 8);
23969 }
23970 } else {
23971 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
23972 {
23973   {
23974     DI opval = MAKEDI (0xffffff80, 0);
23975     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23976     written |= (1 << 11);
23977     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23978   }
23979 frvbf_media_overflow (current_cpu, 8);
23980 }
23981 } else {
23982   {
23983     DI opval = tmp_tmp;
23984     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23985     written |= (1 << 11);
23986     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23987   }
23988 }
23989 }
23990 }
23991 {
23992   DI tmp_tmp;
23993   tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (1))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo)));
23994 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
23995 {
23996   {
23997     DI opval = MAKEDI (127, 0xffffffff);
23998     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23999     written |= (1 << 12);
24000     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24001   }
24002 frvbf_media_overflow (current_cpu, 4);
24003 }
24004 } else {
24005 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24006 {
24007   {
24008     DI opval = MAKEDI (0xffffff80, 0);
24009     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24010     written |= (1 << 12);
24011     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24012   }
24013 frvbf_media_overflow (current_cpu, 4);
24014 }
24015 } else {
24016   {
24017     DI opval = tmp_tmp;
24018     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24019     written |= (1 << 12);
24020     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24021   }
24022 }
24023 }
24024 }
24025 }
24026 }
24027
24028   abuf->written = written;
24029   return vpc;
24030 #undef FLD
24031 }
24032
24033 /* mmachu: mmachu$pack $FRinti,$FRintj,$ACC40Uk */
24034
24035 static SEM_PC
24036 SEM_FN_NAME (frvbf,mmachu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
24037 {
24038 #define FLD(f) abuf->fields.sfmt_cmmachu.f
24039   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
24040   int UNUSED written = 0;
24041   IADDR UNUSED pc = abuf->addr;
24042   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
24043
24044 if (ANDSI (FLD (f_ACC40Uk), SUBSI (2, 1))) {
24045 frvbf_media_acc_not_aligned (current_cpu);
24046 } else {
24047 {
24048   UHI tmp_argihi;
24049   UHI tmp_argilo;
24050   UHI tmp_argjhi;
24051   UHI tmp_argjlo;
24052 {
24053   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24054   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24055   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24056   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24057 }
24058 {
24059   DI tmp_tmp;
24060   tmp_tmp = ADDDI (GET_H_ACC40U (FLD (f_ACC40Uk)), MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi)));
24061 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
24062 {
24063   {
24064     UDI opval = MAKEDI (255, 0xffffffff);
24065     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24066     written |= (1 << 11);
24067     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24068   }
24069 frvbf_media_overflow (current_cpu, 8);
24070 }
24071 } else {
24072 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
24073 {
24074   {
24075     UDI opval = MAKEDI (0, 0);
24076     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24077     written |= (1 << 11);
24078     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24079   }
24080 frvbf_media_overflow (current_cpu, 8);
24081 }
24082 } else {
24083   {
24084     UDI opval = tmp_tmp;
24085     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24086     written |= (1 << 11);
24087     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24088   }
24089 }
24090 }
24091 }
24092 {
24093   DI tmp_tmp;
24094   tmp_tmp = ADDDI (GET_H_ACC40U (((FLD (f_ACC40Uk)) + (1))), MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo)));
24095 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
24096 {
24097   {
24098     UDI opval = MAKEDI (255, 0xffffffff);
24099     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
24100     written |= (1 << 12);
24101     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24102   }
24103 frvbf_media_overflow (current_cpu, 4);
24104 }
24105 } else {
24106 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
24107 {
24108   {
24109     UDI opval = MAKEDI (0, 0);
24110     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
24111     written |= (1 << 12);
24112     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24113   }
24114 frvbf_media_overflow (current_cpu, 4);
24115 }
24116 } else {
24117   {
24118     UDI opval = tmp_tmp;
24119     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
24120     written |= (1 << 12);
24121     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24122   }
24123 }
24124 }
24125 }
24126 }
24127 }
24128
24129   abuf->written = written;
24130   return vpc;
24131 #undef FLD
24132 }
24133
24134 /* mmrdhs: mmrdhs$pack $FRinti,$FRintj,$ACC40Sk */
24135
24136 static SEM_PC
24137 SEM_FN_NAME (frvbf,mmrdhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
24138 {
24139 #define FLD(f) abuf->fields.sfmt_cmmachs.f
24140   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
24141   int UNUSED written = 0;
24142   IADDR UNUSED pc = abuf->addr;
24143   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
24144
24145 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
24146 frvbf_media_acc_not_aligned (current_cpu);
24147 } else {
24148 {
24149   HI tmp_argihi;
24150   HI tmp_argilo;
24151   HI tmp_argjhi;
24152   HI tmp_argjlo;
24153 {
24154   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24155   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24156   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24157   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24158 }
24159 {
24160   DI tmp_tmp;
24161   tmp_tmp = SUBDI (GET_H_ACC40S (FLD (f_ACC40Sk)), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi)));
24162 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24163 {
24164   {
24165     DI opval = MAKEDI (127, 0xffffffff);
24166     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24167     written |= (1 << 11);
24168     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24169   }
24170 frvbf_media_overflow (current_cpu, 8);
24171 }
24172 } else {
24173 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24174 {
24175   {
24176     DI opval = MAKEDI (0xffffff80, 0);
24177     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24178     written |= (1 << 11);
24179     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24180   }
24181 frvbf_media_overflow (current_cpu, 8);
24182 }
24183 } else {
24184   {
24185     DI opval = tmp_tmp;
24186     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24187     written |= (1 << 11);
24188     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24189   }
24190 }
24191 }
24192 }
24193 {
24194   DI tmp_tmp;
24195   tmp_tmp = SUBDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (1))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo)));
24196 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24197 {
24198   {
24199     DI opval = MAKEDI (127, 0xffffffff);
24200     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24201     written |= (1 << 12);
24202     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24203   }
24204 frvbf_media_overflow (current_cpu, 4);
24205 }
24206 } else {
24207 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24208 {
24209   {
24210     DI opval = MAKEDI (0xffffff80, 0);
24211     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24212     written |= (1 << 12);
24213     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24214   }
24215 frvbf_media_overflow (current_cpu, 4);
24216 }
24217 } else {
24218   {
24219     DI opval = tmp_tmp;
24220     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24221     written |= (1 << 12);
24222     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24223   }
24224 }
24225 }
24226 }
24227 }
24228 }
24229
24230   abuf->written = written;
24231   return vpc;
24232 #undef FLD
24233 }
24234
24235 /* mmrdhu: mmrdhu$pack $FRinti,$FRintj,$ACC40Uk */
24236
24237 static SEM_PC
24238 SEM_FN_NAME (frvbf,mmrdhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
24239 {
24240 #define FLD(f) abuf->fields.sfmt_cmmachu.f
24241   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
24242   int UNUSED written = 0;
24243   IADDR UNUSED pc = abuf->addr;
24244   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
24245
24246 if (ANDSI (FLD (f_ACC40Uk), SUBSI (2, 1))) {
24247 frvbf_media_acc_not_aligned (current_cpu);
24248 } else {
24249 {
24250   UHI tmp_argihi;
24251   UHI tmp_argilo;
24252   UHI tmp_argjhi;
24253   UHI tmp_argjlo;
24254 {
24255   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24256   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24257   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24258   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24259 }
24260 {
24261   DI tmp_tmp;
24262   tmp_tmp = SUBDI (GET_H_ACC40U (FLD (f_ACC40Uk)), MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi)));
24263 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
24264 {
24265   {
24266     UDI opval = MAKEDI (255, 0xffffffff);
24267     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24268     written |= (1 << 11);
24269     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24270   }
24271 frvbf_media_overflow (current_cpu, 8);
24272 }
24273 } else {
24274 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
24275 {
24276   {
24277     UDI opval = MAKEDI (0, 0);
24278     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24279     written |= (1 << 11);
24280     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24281   }
24282 frvbf_media_overflow (current_cpu, 8);
24283 }
24284 } else {
24285   {
24286     UDI opval = tmp_tmp;
24287     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24288     written |= (1 << 11);
24289     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24290   }
24291 }
24292 }
24293 }
24294 {
24295   DI tmp_tmp;
24296   tmp_tmp = SUBDI (GET_H_ACC40U (((FLD (f_ACC40Uk)) + (1))), MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo)));
24297 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
24298 {
24299   {
24300     UDI opval = MAKEDI (255, 0xffffffff);
24301     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
24302     written |= (1 << 12);
24303     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24304   }
24305 frvbf_media_overflow (current_cpu, 4);
24306 }
24307 } else {
24308 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
24309 {
24310   {
24311     UDI opval = MAKEDI (0, 0);
24312     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
24313     written |= (1 << 12);
24314     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24315   }
24316 frvbf_media_overflow (current_cpu, 4);
24317 }
24318 } else {
24319   {
24320     UDI opval = tmp_tmp;
24321     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
24322     written |= (1 << 12);
24323     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24324   }
24325 }
24326 }
24327 }
24328 }
24329 }
24330
24331   abuf->written = written;
24332   return vpc;
24333 #undef FLD
24334 }
24335
24336 /* cmmachs: cmmachs$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
24337
24338 static SEM_PC
24339 SEM_FN_NAME (frvbf,cmmachs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
24340 {
24341 #define FLD(f) abuf->fields.sfmt_cmmachs.f
24342   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
24343   int UNUSED written = 0;
24344   IADDR UNUSED pc = abuf->addr;
24345   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
24346
24347 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
24348 frvbf_media_acc_not_aligned (current_cpu);
24349 } else {
24350 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
24351 {
24352   HI tmp_argihi;
24353   HI tmp_argilo;
24354   HI tmp_argjhi;
24355   HI tmp_argjlo;
24356 {
24357   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24358   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24359   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24360   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24361 }
24362 {
24363   DI tmp_tmp;
24364   tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Sk)), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi)));
24365 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24366 {
24367   {
24368     DI opval = MAKEDI (127, 0xffffffff);
24369     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24370     written |= (1 << 13);
24371     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24372   }
24373 frvbf_media_overflow (current_cpu, 8);
24374 }
24375 } else {
24376 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24377 {
24378   {
24379     DI opval = MAKEDI (0xffffff80, 0);
24380     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24381     written |= (1 << 13);
24382     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24383   }
24384 frvbf_media_overflow (current_cpu, 8);
24385 }
24386 } else {
24387   {
24388     DI opval = tmp_tmp;
24389     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24390     written |= (1 << 13);
24391     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24392   }
24393 }
24394 }
24395 }
24396 {
24397   DI tmp_tmp;
24398   tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (1))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo)));
24399 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24400 {
24401   {
24402     DI opval = MAKEDI (127, 0xffffffff);
24403     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24404     written |= (1 << 14);
24405     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24406   }
24407 frvbf_media_overflow (current_cpu, 4);
24408 }
24409 } else {
24410 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24411 {
24412   {
24413     DI opval = MAKEDI (0xffffff80, 0);
24414     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24415     written |= (1 << 14);
24416     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24417   }
24418 frvbf_media_overflow (current_cpu, 4);
24419 }
24420 } else {
24421   {
24422     DI opval = tmp_tmp;
24423     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24424     written |= (1 << 14);
24425     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24426   }
24427 }
24428 }
24429 }
24430 }
24431 }
24432 }
24433
24434   abuf->written = written;
24435   return vpc;
24436 #undef FLD
24437 }
24438
24439 /* cmmachu: cmmachu$pack $FRinti,$FRintj,$ACC40Uk,$CCi,$cond */
24440
24441 static SEM_PC
24442 SEM_FN_NAME (frvbf,cmmachu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
24443 {
24444 #define FLD(f) abuf->fields.sfmt_cmmachu.f
24445   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
24446   int UNUSED written = 0;
24447   IADDR UNUSED pc = abuf->addr;
24448   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
24449
24450 if (ANDSI (FLD (f_ACC40Uk), SUBSI (2, 1))) {
24451 frvbf_media_acc_not_aligned (current_cpu);
24452 } else {
24453 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
24454 {
24455   UHI tmp_argihi;
24456   UHI tmp_argilo;
24457   UHI tmp_argjhi;
24458   UHI tmp_argjlo;
24459 {
24460   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24461   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24462   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24463   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24464 }
24465 {
24466   DI tmp_tmp;
24467   tmp_tmp = ADDDI (GET_H_ACC40U (FLD (f_ACC40Uk)), MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi)));
24468 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
24469 {
24470   {
24471     UDI opval = MAKEDI (255, 0xffffffff);
24472     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24473     written |= (1 << 13);
24474     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24475   }
24476 frvbf_media_overflow (current_cpu, 8);
24477 }
24478 } else {
24479 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
24480 {
24481   {
24482     UDI opval = MAKEDI (0, 0);
24483     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24484     written |= (1 << 13);
24485     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24486   }
24487 frvbf_media_overflow (current_cpu, 8);
24488 }
24489 } else {
24490   {
24491     UDI opval = tmp_tmp;
24492     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24493     written |= (1 << 13);
24494     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24495   }
24496 }
24497 }
24498 }
24499 {
24500   DI tmp_tmp;
24501   tmp_tmp = ADDDI (GET_H_ACC40U (((FLD (f_ACC40Uk)) + (1))), MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo)));
24502 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
24503 {
24504   {
24505     UDI opval = MAKEDI (255, 0xffffffff);
24506     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
24507     written |= (1 << 14);
24508     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24509   }
24510 frvbf_media_overflow (current_cpu, 4);
24511 }
24512 } else {
24513 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
24514 {
24515   {
24516     UDI opval = MAKEDI (0, 0);
24517     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
24518     written |= (1 << 14);
24519     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24520   }
24521 frvbf_media_overflow (current_cpu, 4);
24522 }
24523 } else {
24524   {
24525     UDI opval = tmp_tmp;
24526     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
24527     written |= (1 << 14);
24528     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24529   }
24530 }
24531 }
24532 }
24533 }
24534 }
24535 }
24536
24537   abuf->written = written;
24538   return vpc;
24539 #undef FLD
24540 }
24541
24542 /* mqmachs: mqmachs$pack $FRintieven,$FRintjeven,$ACC40Sk */
24543
24544 static SEM_PC
24545 SEM_FN_NAME (frvbf,mqmachs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
24546 {
24547 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
24548   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
24549   int UNUSED written = 0;
24550   IADDR UNUSED pc = abuf->addr;
24551   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
24552
24553 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
24554 frvbf_media_acc_not_aligned (current_cpu);
24555 } else {
24556 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
24557 frvbf_media_register_not_aligned (current_cpu);
24558 } else {
24559 {
24560   HI tmp_argihi;
24561   HI tmp_argilo;
24562   HI tmp_argjhi;
24563   HI tmp_argjlo;
24564 {
24565   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24566   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24567   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24568   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24569 }
24570 {
24571   DI tmp_tmp;
24572   tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Sk)), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi)));
24573 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24574 {
24575   {
24576     DI opval = MAKEDI (127, 0xffffffff);
24577     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24578     written |= (1 << 17);
24579     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24580   }
24581 frvbf_media_overflow (current_cpu, 8);
24582 }
24583 } else {
24584 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24585 {
24586   {
24587     DI opval = MAKEDI (0xffffff80, 0);
24588     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24589     written |= (1 << 17);
24590     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24591   }
24592 frvbf_media_overflow (current_cpu, 8);
24593 }
24594 } else {
24595   {
24596     DI opval = tmp_tmp;
24597     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24598     written |= (1 << 17);
24599     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24600   }
24601 }
24602 }
24603 }
24604 {
24605   DI tmp_tmp;
24606   tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (1))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo)));
24607 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24608 {
24609   {
24610     DI opval = MAKEDI (127, 0xffffffff);
24611     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24612     written |= (1 << 18);
24613     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24614   }
24615 frvbf_media_overflow (current_cpu, 4);
24616 }
24617 } else {
24618 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24619 {
24620   {
24621     DI opval = MAKEDI (0xffffff80, 0);
24622     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24623     written |= (1 << 18);
24624     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24625   }
24626 frvbf_media_overflow (current_cpu, 4);
24627 }
24628 } else {
24629   {
24630     DI opval = tmp_tmp;
24631     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24632     written |= (1 << 18);
24633     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24634   }
24635 }
24636 }
24637 }
24638 {
24639   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24640   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24641   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24642   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24643 }
24644 {
24645   DI tmp_tmp;
24646   tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (2))), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi)));
24647 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24648 {
24649   {
24650     DI opval = MAKEDI (127, 0xffffffff);
24651     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
24652     written |= (1 << 19);
24653     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24654   }
24655 frvbf_media_overflow (current_cpu, 2);
24656 }
24657 } else {
24658 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24659 {
24660   {
24661     DI opval = MAKEDI (0xffffff80, 0);
24662     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
24663     written |= (1 << 19);
24664     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24665   }
24666 frvbf_media_overflow (current_cpu, 2);
24667 }
24668 } else {
24669   {
24670     DI opval = tmp_tmp;
24671     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
24672     written |= (1 << 19);
24673     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24674   }
24675 }
24676 }
24677 }
24678 {
24679   DI tmp_tmp;
24680   tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (3))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo)));
24681 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24682 {
24683   {
24684     DI opval = MAKEDI (127, 0xffffffff);
24685     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
24686     written |= (1 << 20);
24687     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24688   }
24689 frvbf_media_overflow (current_cpu, 1);
24690 }
24691 } else {
24692 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24693 {
24694   {
24695     DI opval = MAKEDI (0xffffff80, 0);
24696     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
24697     written |= (1 << 20);
24698     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24699   }
24700 frvbf_media_overflow (current_cpu, 1);
24701 }
24702 } else {
24703   {
24704     DI opval = tmp_tmp;
24705     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
24706     written |= (1 << 20);
24707     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24708   }
24709 }
24710 }
24711 }
24712 }
24713 }
24714 }
24715
24716   abuf->written = written;
24717   return vpc;
24718 #undef FLD
24719 }
24720
24721 /* mqmachu: mqmachu$pack $FRintieven,$FRintjeven,$ACC40Uk */
24722
24723 static SEM_PC
24724 SEM_FN_NAME (frvbf,mqmachu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
24725 {
24726 #define FLD(f) abuf->fields.sfmt_cmqmachu.f
24727   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
24728   int UNUSED written = 0;
24729   IADDR UNUSED pc = abuf->addr;
24730   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
24731
24732 if (ANDSI (FLD (f_ACC40Uk), SUBSI (4, 1))) {
24733 frvbf_media_acc_not_aligned (current_cpu);
24734 } else {
24735 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
24736 frvbf_media_register_not_aligned (current_cpu);
24737 } else {
24738 {
24739   UHI tmp_argihi;
24740   UHI tmp_argilo;
24741   UHI tmp_argjhi;
24742   UHI tmp_argjlo;
24743 {
24744   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24745   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24746   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24747   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24748 }
24749 {
24750   DI tmp_tmp;
24751   tmp_tmp = ADDDI (GET_H_ACC40U (FLD (f_ACC40Uk)), MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi)));
24752 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
24753 {
24754   {
24755     UDI opval = MAKEDI (255, 0xffffffff);
24756     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24757     written |= (1 << 17);
24758     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24759   }
24760 frvbf_media_overflow (current_cpu, 8);
24761 }
24762 } else {
24763 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
24764 {
24765   {
24766     UDI opval = MAKEDI (0, 0);
24767     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24768     written |= (1 << 17);
24769     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24770   }
24771 frvbf_media_overflow (current_cpu, 8);
24772 }
24773 } else {
24774   {
24775     UDI opval = tmp_tmp;
24776     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24777     written |= (1 << 17);
24778     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24779   }
24780 }
24781 }
24782 }
24783 {
24784   DI tmp_tmp;
24785   tmp_tmp = ADDDI (GET_H_ACC40U (((FLD (f_ACC40Uk)) + (1))), MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo)));
24786 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
24787 {
24788   {
24789     UDI opval = MAKEDI (255, 0xffffffff);
24790     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
24791     written |= (1 << 18);
24792     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24793   }
24794 frvbf_media_overflow (current_cpu, 4);
24795 }
24796 } else {
24797 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
24798 {
24799   {
24800     UDI opval = MAKEDI (0, 0);
24801     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
24802     written |= (1 << 18);
24803     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24804   }
24805 frvbf_media_overflow (current_cpu, 4);
24806 }
24807 } else {
24808   {
24809     UDI opval = tmp_tmp;
24810     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
24811     written |= (1 << 18);
24812     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24813   }
24814 }
24815 }
24816 }
24817 {
24818   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24819   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24820   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24821   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24822 }
24823 {
24824   DI tmp_tmp;
24825   tmp_tmp = ADDDI (GET_H_ACC40U (((FLD (f_ACC40Uk)) + (2))), MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi)));
24826 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
24827 {
24828   {
24829     UDI opval = MAKEDI (255, 0xffffffff);
24830     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (2)), opval);
24831     written |= (1 << 19);
24832     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24833   }
24834 frvbf_media_overflow (current_cpu, 2);
24835 }
24836 } else {
24837 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
24838 {
24839   {
24840     UDI opval = MAKEDI (0, 0);
24841     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (2)), opval);
24842     written |= (1 << 19);
24843     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24844   }
24845 frvbf_media_overflow (current_cpu, 2);
24846 }
24847 } else {
24848   {
24849     UDI opval = tmp_tmp;
24850     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (2)), opval);
24851     written |= (1 << 19);
24852     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24853   }
24854 }
24855 }
24856 }
24857 {
24858   DI tmp_tmp;
24859   tmp_tmp = ADDDI (GET_H_ACC40U (((FLD (f_ACC40Uk)) + (3))), MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo)));
24860 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
24861 {
24862   {
24863     UDI opval = MAKEDI (255, 0xffffffff);
24864     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (3)), opval);
24865     written |= (1 << 20);
24866     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24867   }
24868 frvbf_media_overflow (current_cpu, 1);
24869 }
24870 } else {
24871 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
24872 {
24873   {
24874     UDI opval = MAKEDI (0, 0);
24875     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (3)), opval);
24876     written |= (1 << 20);
24877     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24878   }
24879 frvbf_media_overflow (current_cpu, 1);
24880 }
24881 } else {
24882   {
24883     UDI opval = tmp_tmp;
24884     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (3)), opval);
24885     written |= (1 << 20);
24886     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24887   }
24888 }
24889 }
24890 }
24891 }
24892 }
24893 }
24894
24895   abuf->written = written;
24896   return vpc;
24897 #undef FLD
24898 }
24899
24900 /* cmqmachs: cmqmachs$pack $FRintieven,$FRintjeven,$ACC40Sk,$CCi,$cond */
24901
24902 static SEM_PC
24903 SEM_FN_NAME (frvbf,cmqmachs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
24904 {
24905 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
24906   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
24907   int UNUSED written = 0;
24908   IADDR UNUSED pc = abuf->addr;
24909   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
24910
24911 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
24912 frvbf_media_acc_not_aligned (current_cpu);
24913 } else {
24914 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
24915 frvbf_media_register_not_aligned (current_cpu);
24916 } else {
24917 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
24918 {
24919   HI tmp_argihi;
24920   HI tmp_argilo;
24921   HI tmp_argjhi;
24922   HI tmp_argjlo;
24923 {
24924   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24925   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24926   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24927   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24928 }
24929 {
24930   DI tmp_tmp;
24931   tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Sk)), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi)));
24932 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24933 {
24934   {
24935     DI opval = MAKEDI (127, 0xffffffff);
24936     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24937     written |= (1 << 19);
24938     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24939   }
24940 frvbf_media_overflow (current_cpu, 8);
24941 }
24942 } else {
24943 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24944 {
24945   {
24946     DI opval = MAKEDI (0xffffff80, 0);
24947     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24948     written |= (1 << 19);
24949     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24950   }
24951 frvbf_media_overflow (current_cpu, 8);
24952 }
24953 } else {
24954   {
24955     DI opval = tmp_tmp;
24956     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24957     written |= (1 << 19);
24958     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24959   }
24960 }
24961 }
24962 }
24963 {
24964   DI tmp_tmp;
24965   tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (1))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo)));
24966 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24967 {
24968   {
24969     DI opval = MAKEDI (127, 0xffffffff);
24970     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24971     written |= (1 << 20);
24972     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24973   }
24974 frvbf_media_overflow (current_cpu, 4);
24975 }
24976 } else {
24977 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24978 {
24979   {
24980     DI opval = MAKEDI (0xffffff80, 0);
24981     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24982     written |= (1 << 20);
24983     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24984   }
24985 frvbf_media_overflow (current_cpu, 4);
24986 }
24987 } else {
24988   {
24989     DI opval = tmp_tmp;
24990     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24991     written |= (1 << 20);
24992     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24993   }
24994 }
24995 }
24996 }
24997 {
24998   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24999   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25000   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25001   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25002 }
25003 {
25004   DI tmp_tmp;
25005   tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (2))), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi)));
25006 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25007 {
25008   {
25009     DI opval = MAKEDI (127, 0xffffffff);
25010     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
25011     written |= (1 << 21);
25012     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25013   }
25014 frvbf_media_overflow (current_cpu, 2);
25015 }
25016 } else {
25017 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25018 {
25019   {
25020     DI opval = MAKEDI (0xffffff80, 0);
25021     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
25022     written |= (1 << 21);
25023     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25024   }
25025 frvbf_media_overflow (current_cpu, 2);
25026 }
25027 } else {
25028   {
25029     DI opval = tmp_tmp;
25030     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
25031     written |= (1 << 21);
25032     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25033   }
25034 }
25035 }
25036 }
25037 {
25038   DI tmp_tmp;
25039   tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (3))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo)));
25040 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25041 {
25042   {
25043     DI opval = MAKEDI (127, 0xffffffff);
25044     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
25045     written |= (1 << 22);
25046     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25047   }
25048 frvbf_media_overflow (current_cpu, 1);
25049 }
25050 } else {
25051 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25052 {
25053   {
25054     DI opval = MAKEDI (0xffffff80, 0);
25055     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
25056     written |= (1 << 22);
25057     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25058   }
25059 frvbf_media_overflow (current_cpu, 1);
25060 }
25061 } else {
25062   {
25063     DI opval = tmp_tmp;
25064     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
25065     written |= (1 << 22);
25066     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25067   }
25068 }
25069 }
25070 }
25071 }
25072 }
25073 }
25074 }
25075
25076   abuf->written = written;
25077   return vpc;
25078 #undef FLD
25079 }
25080
25081 /* cmqmachu: cmqmachu$pack $FRintieven,$FRintjeven,$ACC40Uk,$CCi,$cond */
25082
25083 static SEM_PC
25084 SEM_FN_NAME (frvbf,cmqmachu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
25085 {
25086 #define FLD(f) abuf->fields.sfmt_cmqmachu.f
25087   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
25088   int UNUSED written = 0;
25089   IADDR UNUSED pc = abuf->addr;
25090   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
25091
25092 if (ANDSI (FLD (f_ACC40Uk), SUBSI (4, 1))) {
25093 frvbf_media_acc_not_aligned (current_cpu);
25094 } else {
25095 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
25096 frvbf_media_register_not_aligned (current_cpu);
25097 } else {
25098 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
25099 {
25100   UHI tmp_argihi;
25101   UHI tmp_argilo;
25102   UHI tmp_argjhi;
25103   UHI tmp_argjlo;
25104 {
25105   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25106   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25107   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25108   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25109 }
25110 {
25111   DI tmp_tmp;
25112   tmp_tmp = ADDDI (GET_H_ACC40U (FLD (f_ACC40Uk)), MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi)));
25113 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
25114 {
25115   {
25116     UDI opval = MAKEDI (255, 0xffffffff);
25117     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
25118     written |= (1 << 19);
25119     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25120   }
25121 frvbf_media_overflow (current_cpu, 8);
25122 }
25123 } else {
25124 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
25125 {
25126   {
25127     UDI opval = MAKEDI (0, 0);
25128     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
25129     written |= (1 << 19);
25130     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25131   }
25132 frvbf_media_overflow (current_cpu, 8);
25133 }
25134 } else {
25135   {
25136     UDI opval = tmp_tmp;
25137     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
25138     written |= (1 << 19);
25139     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25140   }
25141 }
25142 }
25143 }
25144 {
25145   DI tmp_tmp;
25146   tmp_tmp = ADDDI (GET_H_ACC40U (((FLD (f_ACC40Uk)) + (1))), MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo)));
25147 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
25148 {
25149   {
25150     UDI opval = MAKEDI (255, 0xffffffff);
25151     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
25152     written |= (1 << 20);
25153     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25154   }
25155 frvbf_media_overflow (current_cpu, 4);
25156 }
25157 } else {
25158 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
25159 {
25160   {
25161     UDI opval = MAKEDI (0, 0);
25162     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
25163     written |= (1 << 20);
25164     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25165   }
25166 frvbf_media_overflow (current_cpu, 4);
25167 }
25168 } else {
25169   {
25170     UDI opval = tmp_tmp;
25171     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
25172     written |= (1 << 20);
25173     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25174   }
25175 }
25176 }
25177 }
25178 {
25179   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25180   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25181   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25182   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25183 }
25184 {
25185   DI tmp_tmp;
25186   tmp_tmp = ADDDI (GET_H_ACC40U (((FLD (f_ACC40Uk)) + (2))), MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi)));
25187 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
25188 {
25189   {
25190     UDI opval = MAKEDI (255, 0xffffffff);
25191     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (2)), opval);
25192     written |= (1 << 21);
25193     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25194   }
25195 frvbf_media_overflow (current_cpu, 2);
25196 }
25197 } else {
25198 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
25199 {
25200   {
25201     UDI opval = MAKEDI (0, 0);
25202     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (2)), opval);
25203     written |= (1 << 21);
25204     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25205   }
25206 frvbf_media_overflow (current_cpu, 2);
25207 }
25208 } else {
25209   {
25210     UDI opval = tmp_tmp;
25211     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (2)), opval);
25212     written |= (1 << 21);
25213     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25214   }
25215 }
25216 }
25217 }
25218 {
25219   DI tmp_tmp;
25220   tmp_tmp = ADDDI (GET_H_ACC40U (((FLD (f_ACC40Uk)) + (3))), MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo)));
25221 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
25222 {
25223   {
25224     UDI opval = MAKEDI (255, 0xffffffff);
25225     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (3)), opval);
25226     written |= (1 << 22);
25227     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25228   }
25229 frvbf_media_overflow (current_cpu, 1);
25230 }
25231 } else {
25232 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
25233 {
25234   {
25235     UDI opval = MAKEDI (0, 0);
25236     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (3)), opval);
25237     written |= (1 << 22);
25238     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25239   }
25240 frvbf_media_overflow (current_cpu, 1);
25241 }
25242 } else {
25243   {
25244     UDI opval = tmp_tmp;
25245     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (3)), opval);
25246     written |= (1 << 22);
25247     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25248   }
25249 }
25250 }
25251 }
25252 }
25253 }
25254 }
25255 }
25256
25257   abuf->written = written;
25258   return vpc;
25259 #undef FLD
25260 }
25261
25262 /* mqxmachs: mqxmachs$pack $FRintieven,$FRintjeven,$ACC40Sk */
25263
25264 static SEM_PC
25265 SEM_FN_NAME (frvbf,mqxmachs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
25266 {
25267 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
25268   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
25269   int UNUSED written = 0;
25270   IADDR UNUSED pc = abuf->addr;
25271   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
25272
25273 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
25274 frvbf_media_acc_not_aligned (current_cpu);
25275 } else {
25276 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
25277 frvbf_media_register_not_aligned (current_cpu);
25278 } else {
25279 {
25280   HI tmp_argihi;
25281   HI tmp_argilo;
25282   HI tmp_argjhi;
25283   HI tmp_argjlo;
25284 {
25285   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25286   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25287   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25288   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25289 }
25290 {
25291   DI tmp_tmp;
25292   tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (2))), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi)));
25293 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25294 {
25295   {
25296     DI opval = MAKEDI (127, 0xffffffff);
25297     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
25298     written |= (1 << 19);
25299     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25300   }
25301 frvbf_media_overflow (current_cpu, 2);
25302 }
25303 } else {
25304 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25305 {
25306   {
25307     DI opval = MAKEDI (0xffffff80, 0);
25308     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
25309     written |= (1 << 19);
25310     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25311   }
25312 frvbf_media_overflow (current_cpu, 2);
25313 }
25314 } else {
25315   {
25316     DI opval = tmp_tmp;
25317     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
25318     written |= (1 << 19);
25319     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25320   }
25321 }
25322 }
25323 }
25324 {
25325   DI tmp_tmp;
25326   tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (3))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo)));
25327 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25328 {
25329   {
25330     DI opval = MAKEDI (127, 0xffffffff);
25331     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
25332     written |= (1 << 20);
25333     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25334   }
25335 frvbf_media_overflow (current_cpu, 1);
25336 }
25337 } else {
25338 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25339 {
25340   {
25341     DI opval = MAKEDI (0xffffff80, 0);
25342     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
25343     written |= (1 << 20);
25344     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25345   }
25346 frvbf_media_overflow (current_cpu, 1);
25347 }
25348 } else {
25349   {
25350     DI opval = tmp_tmp;
25351     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
25352     written |= (1 << 20);
25353     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25354   }
25355 }
25356 }
25357 }
25358 {
25359   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25360   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25361   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25362   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25363 }
25364 {
25365   DI tmp_tmp;
25366   tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Sk)), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi)));
25367 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25368 {
25369   {
25370     DI opval = MAKEDI (127, 0xffffffff);
25371     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25372     written |= (1 << 17);
25373     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25374   }
25375 frvbf_media_overflow (current_cpu, 8);
25376 }
25377 } else {
25378 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25379 {
25380   {
25381     DI opval = MAKEDI (0xffffff80, 0);
25382     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25383     written |= (1 << 17);
25384     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25385   }
25386 frvbf_media_overflow (current_cpu, 8);
25387 }
25388 } else {
25389   {
25390     DI opval = tmp_tmp;
25391     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25392     written |= (1 << 17);
25393     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25394   }
25395 }
25396 }
25397 }
25398 {
25399   DI tmp_tmp;
25400   tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (1))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo)));
25401 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25402 {
25403   {
25404     DI opval = MAKEDI (127, 0xffffffff);
25405     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
25406     written |= (1 << 18);
25407     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25408   }
25409 frvbf_media_overflow (current_cpu, 4);
25410 }
25411 } else {
25412 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25413 {
25414   {
25415     DI opval = MAKEDI (0xffffff80, 0);
25416     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
25417     written |= (1 << 18);
25418     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25419   }
25420 frvbf_media_overflow (current_cpu, 4);
25421 }
25422 } else {
25423   {
25424     DI opval = tmp_tmp;
25425     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
25426     written |= (1 << 18);
25427     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25428   }
25429 }
25430 }
25431 }
25432 }
25433 }
25434 }
25435
25436   abuf->written = written;
25437   return vpc;
25438 #undef FLD
25439 }
25440
25441 /* mqxmacxhs: mqxmacxhs$pack $FRintieven,$FRintjeven,$ACC40Sk */
25442
25443 static SEM_PC
25444 SEM_FN_NAME (frvbf,mqxmacxhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
25445 {
25446 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
25447   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
25448   int UNUSED written = 0;
25449   IADDR UNUSED pc = abuf->addr;
25450   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
25451
25452 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
25453 frvbf_media_acc_not_aligned (current_cpu);
25454 } else {
25455 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
25456 frvbf_media_register_not_aligned (current_cpu);
25457 } else {
25458 {
25459   HI tmp_argihi;
25460   HI tmp_argilo;
25461   HI tmp_argjhi;
25462   HI tmp_argjlo;
25463 {
25464   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25465   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25466   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25467   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25468 }
25469 {
25470   DI tmp_tmp;
25471   tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (2))), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo)));
25472 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25473 {
25474   {
25475     DI opval = MAKEDI (127, 0xffffffff);
25476     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
25477     written |= (1 << 19);
25478     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25479   }
25480 frvbf_media_overflow (current_cpu, 2);
25481 }
25482 } else {
25483 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25484 {
25485   {
25486     DI opval = MAKEDI (0xffffff80, 0);
25487     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
25488     written |= (1 << 19);
25489     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25490   }
25491 frvbf_media_overflow (current_cpu, 2);
25492 }
25493 } else {
25494   {
25495     DI opval = tmp_tmp;
25496     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
25497     written |= (1 << 19);
25498     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25499   }
25500 }
25501 }
25502 }
25503 {
25504   DI tmp_tmp;
25505   tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (3))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi)));
25506 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25507 {
25508   {
25509     DI opval = MAKEDI (127, 0xffffffff);
25510     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
25511     written |= (1 << 20);
25512     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25513   }
25514 frvbf_media_overflow (current_cpu, 1);
25515 }
25516 } else {
25517 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25518 {
25519   {
25520     DI opval = MAKEDI (0xffffff80, 0);
25521     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
25522     written |= (1 << 20);
25523     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25524   }
25525 frvbf_media_overflow (current_cpu, 1);
25526 }
25527 } else {
25528   {
25529     DI opval = tmp_tmp;
25530     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
25531     written |= (1 << 20);
25532     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25533   }
25534 }
25535 }
25536 }
25537 {
25538   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25539   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25540   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25541   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25542 }
25543 {
25544   DI tmp_tmp;
25545   tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Sk)), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo)));
25546 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25547 {
25548   {
25549     DI opval = MAKEDI (127, 0xffffffff);
25550     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25551     written |= (1 << 17);
25552     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25553   }
25554 frvbf_media_overflow (current_cpu, 8);
25555 }
25556 } else {
25557 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25558 {
25559   {
25560     DI opval = MAKEDI (0xffffff80, 0);
25561     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25562     written |= (1 << 17);
25563     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25564   }
25565 frvbf_media_overflow (current_cpu, 8);
25566 }
25567 } else {
25568   {
25569     DI opval = tmp_tmp;
25570     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25571     written |= (1 << 17);
25572     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25573   }
25574 }
25575 }
25576 }
25577 {
25578   DI tmp_tmp;
25579   tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (1))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi)));
25580 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25581 {
25582   {
25583     DI opval = MAKEDI (127, 0xffffffff);
25584     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
25585     written |= (1 << 18);
25586     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25587   }
25588 frvbf_media_overflow (current_cpu, 4);
25589 }
25590 } else {
25591 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25592 {
25593   {
25594     DI opval = MAKEDI (0xffffff80, 0);
25595     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
25596     written |= (1 << 18);
25597     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25598   }
25599 frvbf_media_overflow (current_cpu, 4);
25600 }
25601 } else {
25602   {
25603     DI opval = tmp_tmp;
25604     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
25605     written |= (1 << 18);
25606     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25607   }
25608 }
25609 }
25610 }
25611 }
25612 }
25613 }
25614
25615   abuf->written = written;
25616   return vpc;
25617 #undef FLD
25618 }
25619
25620 /* mqmacxhs: mqmacxhs$pack $FRintieven,$FRintjeven,$ACC40Sk */
25621
25622 static SEM_PC
25623 SEM_FN_NAME (frvbf,mqmacxhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
25624 {
25625 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
25626   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
25627   int UNUSED written = 0;
25628   IADDR UNUSED pc = abuf->addr;
25629   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
25630
25631 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
25632 frvbf_media_acc_not_aligned (current_cpu);
25633 } else {
25634 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
25635 frvbf_media_register_not_aligned (current_cpu);
25636 } else {
25637 {
25638   HI tmp_argihi;
25639   HI tmp_argilo;
25640   HI tmp_argjhi;
25641   HI tmp_argjlo;
25642 {
25643   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25644   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25645   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25646   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25647 }
25648 {
25649   DI tmp_tmp;
25650   tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Sk)), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo)));
25651 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25652 {
25653   {
25654     DI opval = MAKEDI (127, 0xffffffff);
25655     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25656     written |= (1 << 17);
25657     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25658   }
25659 frvbf_media_overflow (current_cpu, 8);
25660 }
25661 } else {
25662 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25663 {
25664   {
25665     DI opval = MAKEDI (0xffffff80, 0);
25666     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25667     written |= (1 << 17);
25668     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25669   }
25670 frvbf_media_overflow (current_cpu, 8);
25671 }
25672 } else {
25673   {
25674     DI opval = tmp_tmp;
25675     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25676     written |= (1 << 17);
25677     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25678   }
25679 }
25680 }
25681 }
25682 {
25683   DI tmp_tmp;
25684   tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (1))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi)));
25685 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25686 {
25687   {
25688     DI opval = MAKEDI (127, 0xffffffff);
25689     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
25690     written |= (1 << 18);
25691     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25692   }
25693 frvbf_media_overflow (current_cpu, 4);
25694 }
25695 } else {
25696 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25697 {
25698   {
25699     DI opval = MAKEDI (0xffffff80, 0);
25700     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
25701     written |= (1 << 18);
25702     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25703   }
25704 frvbf_media_overflow (current_cpu, 4);
25705 }
25706 } else {
25707   {
25708     DI opval = tmp_tmp;
25709     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
25710     written |= (1 << 18);
25711     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25712   }
25713 }
25714 }
25715 }
25716 {
25717   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25718   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25719   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25720   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25721 }
25722 {
25723   DI tmp_tmp;
25724   tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (2))), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo)));
25725 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25726 {
25727   {
25728     DI opval = MAKEDI (127, 0xffffffff);
25729     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
25730     written |= (1 << 19);
25731     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25732   }
25733 frvbf_media_overflow (current_cpu, 2);
25734 }
25735 } else {
25736 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25737 {
25738   {
25739     DI opval = MAKEDI (0xffffff80, 0);
25740     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
25741     written |= (1 << 19);
25742     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25743   }
25744 frvbf_media_overflow (current_cpu, 2);
25745 }
25746 } else {
25747   {
25748     DI opval = tmp_tmp;
25749     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
25750     written |= (1 << 19);
25751     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25752   }
25753 }
25754 }
25755 }
25756 {
25757   DI tmp_tmp;
25758   tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (3))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi)));
25759 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25760 {
25761   {
25762     DI opval = MAKEDI (127, 0xffffffff);
25763     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
25764     written |= (1 << 20);
25765     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25766   }
25767 frvbf_media_overflow (current_cpu, 1);
25768 }
25769 } else {
25770 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25771 {
25772   {
25773     DI opval = MAKEDI (0xffffff80, 0);
25774     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
25775     written |= (1 << 20);
25776     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25777   }
25778 frvbf_media_overflow (current_cpu, 1);
25779 }
25780 } else {
25781   {
25782     DI opval = tmp_tmp;
25783     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
25784     written |= (1 << 20);
25785     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25786   }
25787 }
25788 }
25789 }
25790 }
25791 }
25792 }
25793
25794   abuf->written = written;
25795   return vpc;
25796 #undef FLD
25797 }
25798
25799 /* mcpxrs: mcpxrs$pack $FRinti,$FRintj,$ACC40Sk */
25800
25801 static SEM_PC
25802 SEM_FN_NAME (frvbf,mcpxrs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
25803 {
25804 #define FLD(f) abuf->fields.sfmt_cmmachs.f
25805   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
25806   int UNUSED written = 0;
25807   IADDR UNUSED pc = abuf->addr;
25808   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
25809
25810 {
25811   HI tmp_argihi;
25812   HI tmp_argilo;
25813   HI tmp_argjhi;
25814   HI tmp_argjlo;
25815 {
25816   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25817   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25818   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25819   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25820 }
25821 {
25822   DI tmp_tmp1;
25823   DI tmp_tmp2;
25824   tmp_tmp1 = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
25825   tmp_tmp2 = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
25826   tmp_tmp1 = SUBDI (tmp_tmp1, tmp_tmp2);
25827 if (GTDI (tmp_tmp1, MAKEDI (127, 0xffffffff))) {
25828 {
25829   {
25830     DI opval = MAKEDI (127, 0xffffffff);
25831     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25832     written |= (1 << 8);
25833     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25834   }
25835 frvbf_media_overflow (current_cpu, 8);
25836 }
25837 } else {
25838 if (LTDI (tmp_tmp1, MAKEDI (0xffffff80, 0))) {
25839 {
25840   {
25841     DI opval = MAKEDI (0xffffff80, 0);
25842     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25843     written |= (1 << 8);
25844     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25845   }
25846 frvbf_media_overflow (current_cpu, 8);
25847 }
25848 } else {
25849   {
25850     DI opval = tmp_tmp1;
25851     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25852     written |= (1 << 8);
25853     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25854   }
25855 }
25856 }
25857 }
25858 }
25859
25860   abuf->written = written;
25861   return vpc;
25862 #undef FLD
25863 }
25864
25865 /* mcpxru: mcpxru$pack $FRinti,$FRintj,$ACC40Sk */
25866
25867 static SEM_PC
25868 SEM_FN_NAME (frvbf,mcpxru) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
25869 {
25870 #define FLD(f) abuf->fields.sfmt_cmmachs.f
25871   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
25872   int UNUSED written = 0;
25873   IADDR UNUSED pc = abuf->addr;
25874   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
25875
25876 {
25877   UHI tmp_argihi;
25878   UHI tmp_argilo;
25879   UHI tmp_argjhi;
25880   UHI tmp_argjlo;
25881 {
25882   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25883   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25884   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25885   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25886 }
25887 {
25888   DI tmp_tmp1;
25889   DI tmp_tmp2;
25890   tmp_tmp1 = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
25891   tmp_tmp2 = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
25892   tmp_tmp1 = SUBDI (tmp_tmp1, tmp_tmp2);
25893 if (GTDI (tmp_tmp1, MAKEDI (255, 0xffffffff))) {
25894 {
25895   {
25896     DI opval = MAKEDI (255, 0xffffffff);
25897     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25898     written |= (1 << 8);
25899     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25900   }
25901 frvbf_media_overflow (current_cpu, 8);
25902 }
25903 } else {
25904 if (LTDI (tmp_tmp1, MAKEDI (0, 0))) {
25905 {
25906   {
25907     DI opval = MAKEDI (0, 0);
25908     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25909     written |= (1 << 8);
25910     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25911   }
25912 frvbf_media_overflow (current_cpu, 8);
25913 }
25914 } else {
25915   {
25916     DI opval = tmp_tmp1;
25917     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25918     written |= (1 << 8);
25919     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25920   }
25921 }
25922 }
25923 }
25924 }
25925
25926   abuf->written = written;
25927   return vpc;
25928 #undef FLD
25929 }
25930
25931 /* mcpxis: mcpxis$pack $FRinti,$FRintj,$ACC40Sk */
25932
25933 static SEM_PC
25934 SEM_FN_NAME (frvbf,mcpxis) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
25935 {
25936 #define FLD(f) abuf->fields.sfmt_cmmachs.f
25937   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
25938   int UNUSED written = 0;
25939   IADDR UNUSED pc = abuf->addr;
25940   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
25941
25942 {
25943   HI tmp_argihi;
25944   HI tmp_argilo;
25945   HI tmp_argjhi;
25946   HI tmp_argjlo;
25947 {
25948   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25949   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25950   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25951   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25952 }
25953 {
25954   DI tmp_tmp1;
25955   DI tmp_tmp2;
25956   tmp_tmp1 = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo));
25957   tmp_tmp2 = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi));
25958   tmp_tmp1 = ADDDI (tmp_tmp1, tmp_tmp2);
25959 if (GTDI (tmp_tmp1, MAKEDI (127, 0xffffffff))) {
25960 {
25961   {
25962     DI opval = MAKEDI (127, 0xffffffff);
25963     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25964     written |= (1 << 8);
25965     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25966   }
25967 frvbf_media_overflow (current_cpu, 8);
25968 }
25969 } else {
25970 if (LTDI (tmp_tmp1, MAKEDI (0xffffff80, 0))) {
25971 {
25972   {
25973     DI opval = MAKEDI (0xffffff80, 0);
25974     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25975     written |= (1 << 8);
25976     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25977   }
25978 frvbf_media_overflow (current_cpu, 8);
25979 }
25980 } else {
25981   {
25982     DI opval = tmp_tmp1;
25983     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25984     written |= (1 << 8);
25985     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25986   }
25987 }
25988 }
25989 }
25990 }
25991
25992   abuf->written = written;
25993   return vpc;
25994 #undef FLD
25995 }
25996
25997 /* mcpxiu: mcpxiu$pack $FRinti,$FRintj,$ACC40Sk */
25998
25999 static SEM_PC
26000 SEM_FN_NAME (frvbf,mcpxiu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26001 {
26002 #define FLD(f) abuf->fields.sfmt_cmmachs.f
26003   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26004   int UNUSED written = 0;
26005   IADDR UNUSED pc = abuf->addr;
26006   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26007
26008 {
26009   UHI tmp_argihi;
26010   UHI tmp_argilo;
26011   UHI tmp_argjhi;
26012   UHI tmp_argjlo;
26013 {
26014   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26015   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26016   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26017   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26018 }
26019 {
26020   DI tmp_tmp1;
26021   DI tmp_tmp2;
26022   tmp_tmp1 = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjlo));
26023   tmp_tmp2 = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjhi));
26024   tmp_tmp1 = ADDDI (tmp_tmp1, tmp_tmp2);
26025 if (GTDI (tmp_tmp1, MAKEDI (255, 0xffffffff))) {
26026 {
26027   {
26028     DI opval = MAKEDI (255, 0xffffffff);
26029     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26030     written |= (1 << 8);
26031     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26032   }
26033 frvbf_media_overflow (current_cpu, 8);
26034 }
26035 } else {
26036 if (LTDI (tmp_tmp1, MAKEDI (0, 0))) {
26037 {
26038   {
26039     DI opval = MAKEDI (0, 0);
26040     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26041     written |= (1 << 8);
26042     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26043   }
26044 frvbf_media_overflow (current_cpu, 8);
26045 }
26046 } else {
26047   {
26048     DI opval = tmp_tmp1;
26049     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26050     written |= (1 << 8);
26051     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26052   }
26053 }
26054 }
26055 }
26056 }
26057
26058   abuf->written = written;
26059   return vpc;
26060 #undef FLD
26061 }
26062
26063 /* cmcpxrs: cmcpxrs$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
26064
26065 static SEM_PC
26066 SEM_FN_NAME (frvbf,cmcpxrs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26067 {
26068 #define FLD(f) abuf->fields.sfmt_cmmachs.f
26069   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26070   int UNUSED written = 0;
26071   IADDR UNUSED pc = abuf->addr;
26072   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26073
26074 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
26075 {
26076   HI tmp_argihi;
26077   HI tmp_argilo;
26078   HI tmp_argjhi;
26079   HI tmp_argjlo;
26080 {
26081   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26082   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26083   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26084   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26085 }
26086 {
26087   DI tmp_tmp1;
26088   DI tmp_tmp2;
26089   tmp_tmp1 = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
26090   tmp_tmp2 = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
26091   tmp_tmp1 = SUBDI (tmp_tmp1, tmp_tmp2);
26092 if (GTDI (tmp_tmp1, MAKEDI (127, 0xffffffff))) {
26093 {
26094   {
26095     DI opval = MAKEDI (127, 0xffffffff);
26096     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26097     written |= (1 << 10);
26098     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26099   }
26100 frvbf_media_overflow (current_cpu, 8);
26101 }
26102 } else {
26103 if (LTDI (tmp_tmp1, MAKEDI (0xffffff80, 0))) {
26104 {
26105   {
26106     DI opval = MAKEDI (0xffffff80, 0);
26107     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26108     written |= (1 << 10);
26109     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26110   }
26111 frvbf_media_overflow (current_cpu, 8);
26112 }
26113 } else {
26114   {
26115     DI opval = tmp_tmp1;
26116     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26117     written |= (1 << 10);
26118     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26119   }
26120 }
26121 }
26122 }
26123 }
26124 }
26125
26126   abuf->written = written;
26127   return vpc;
26128 #undef FLD
26129 }
26130
26131 /* cmcpxru: cmcpxru$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
26132
26133 static SEM_PC
26134 SEM_FN_NAME (frvbf,cmcpxru) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26135 {
26136 #define FLD(f) abuf->fields.sfmt_cmmachs.f
26137   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26138   int UNUSED written = 0;
26139   IADDR UNUSED pc = abuf->addr;
26140   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26141
26142 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
26143 {
26144   UHI tmp_argihi;
26145   UHI tmp_argilo;
26146   UHI tmp_argjhi;
26147   UHI tmp_argjlo;
26148 {
26149   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26150   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26151   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26152   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26153 }
26154 {
26155   DI tmp_tmp1;
26156   DI tmp_tmp2;
26157   tmp_tmp1 = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
26158   tmp_tmp2 = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
26159   tmp_tmp1 = SUBDI (tmp_tmp1, tmp_tmp2);
26160 if (GTDI (tmp_tmp1, MAKEDI (255, 0xffffffff))) {
26161 {
26162   {
26163     DI opval = MAKEDI (255, 0xffffffff);
26164     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26165     written |= (1 << 10);
26166     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26167   }
26168 frvbf_media_overflow (current_cpu, 8);
26169 }
26170 } else {
26171 if (LTDI (tmp_tmp1, MAKEDI (0, 0))) {
26172 {
26173   {
26174     DI opval = MAKEDI (0, 0);
26175     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26176     written |= (1 << 10);
26177     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26178   }
26179 frvbf_media_overflow (current_cpu, 8);
26180 }
26181 } else {
26182   {
26183     DI opval = tmp_tmp1;
26184     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26185     written |= (1 << 10);
26186     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26187   }
26188 }
26189 }
26190 }
26191 }
26192 }
26193
26194   abuf->written = written;
26195   return vpc;
26196 #undef FLD
26197 }
26198
26199 /* cmcpxis: cmcpxis$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
26200
26201 static SEM_PC
26202 SEM_FN_NAME (frvbf,cmcpxis) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26203 {
26204 #define FLD(f) abuf->fields.sfmt_cmmachs.f
26205   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26206   int UNUSED written = 0;
26207   IADDR UNUSED pc = abuf->addr;
26208   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26209
26210 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
26211 {
26212   HI tmp_argihi;
26213   HI tmp_argilo;
26214   HI tmp_argjhi;
26215   HI tmp_argjlo;
26216 {
26217   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26218   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26219   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26220   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26221 }
26222 {
26223   DI tmp_tmp1;
26224   DI tmp_tmp2;
26225   tmp_tmp1 = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo));
26226   tmp_tmp2 = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi));
26227   tmp_tmp1 = ADDDI (tmp_tmp1, tmp_tmp2);
26228 if (GTDI (tmp_tmp1, MAKEDI (127, 0xffffffff))) {
26229 {
26230   {
26231     DI opval = MAKEDI (127, 0xffffffff);
26232     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26233     written |= (1 << 10);
26234     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26235   }
26236 frvbf_media_overflow (current_cpu, 8);
26237 }
26238 } else {
26239 if (LTDI (tmp_tmp1, MAKEDI (0xffffff80, 0))) {
26240 {
26241   {
26242     DI opval = MAKEDI (0xffffff80, 0);
26243     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26244     written |= (1 << 10);
26245     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26246   }
26247 frvbf_media_overflow (current_cpu, 8);
26248 }
26249 } else {
26250   {
26251     DI opval = tmp_tmp1;
26252     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26253     written |= (1 << 10);
26254     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26255   }
26256 }
26257 }
26258 }
26259 }
26260 }
26261
26262   abuf->written = written;
26263   return vpc;
26264 #undef FLD
26265 }
26266
26267 /* cmcpxiu: cmcpxiu$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
26268
26269 static SEM_PC
26270 SEM_FN_NAME (frvbf,cmcpxiu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26271 {
26272 #define FLD(f) abuf->fields.sfmt_cmmachs.f
26273   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26274   int UNUSED written = 0;
26275   IADDR UNUSED pc = abuf->addr;
26276   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26277
26278 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
26279 {
26280   UHI tmp_argihi;
26281   UHI tmp_argilo;
26282   UHI tmp_argjhi;
26283   UHI tmp_argjlo;
26284 {
26285   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26286   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26287   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26288   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26289 }
26290 {
26291   DI tmp_tmp1;
26292   DI tmp_tmp2;
26293   tmp_tmp1 = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjlo));
26294   tmp_tmp2 = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjhi));
26295   tmp_tmp1 = ADDDI (tmp_tmp1, tmp_tmp2);
26296 if (GTDI (tmp_tmp1, MAKEDI (255, 0xffffffff))) {
26297 {
26298   {
26299     DI opval = MAKEDI (255, 0xffffffff);
26300     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26301     written |= (1 << 10);
26302     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26303   }
26304 frvbf_media_overflow (current_cpu, 8);
26305 }
26306 } else {
26307 if (LTDI (tmp_tmp1, MAKEDI (0, 0))) {
26308 {
26309   {
26310     DI opval = MAKEDI (0, 0);
26311     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26312     written |= (1 << 10);
26313     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26314   }
26315 frvbf_media_overflow (current_cpu, 8);
26316 }
26317 } else {
26318   {
26319     DI opval = tmp_tmp1;
26320     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26321     written |= (1 << 10);
26322     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26323   }
26324 }
26325 }
26326 }
26327 }
26328 }
26329
26330   abuf->written = written;
26331   return vpc;
26332 #undef FLD
26333 }
26334
26335 /* mqcpxrs: mqcpxrs$pack $FRintieven,$FRintjeven,$ACC40Sk */
26336
26337 static SEM_PC
26338 SEM_FN_NAME (frvbf,mqcpxrs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26339 {
26340 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
26341   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26342   int UNUSED written = 0;
26343   IADDR UNUSED pc = abuf->addr;
26344   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26345
26346 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
26347 frvbf_media_acc_not_aligned (current_cpu);
26348 } else {
26349 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
26350 frvbf_media_register_not_aligned (current_cpu);
26351 } else {
26352 {
26353   HI tmp_argihi;
26354   HI tmp_argilo;
26355   HI tmp_argjhi;
26356   HI tmp_argjlo;
26357 {
26358   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26359   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26360   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26361   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26362 }
26363 {
26364   DI tmp_tmp1;
26365   DI tmp_tmp2;
26366   tmp_tmp1 = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
26367   tmp_tmp2 = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
26368   tmp_tmp1 = SUBDI (tmp_tmp1, tmp_tmp2);
26369 if (GTDI (tmp_tmp1, MAKEDI (127, 0xffffffff))) {
26370 {
26371   {
26372     DI opval = MAKEDI (127, 0xffffffff);
26373     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26374     written |= (1 << 13);
26375     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26376   }
26377 frvbf_media_overflow (current_cpu, 8);
26378 }
26379 } else {
26380 if (LTDI (tmp_tmp1, MAKEDI (0xffffff80, 0))) {
26381 {
26382   {
26383     DI opval = MAKEDI (0xffffff80, 0);
26384     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26385     written |= (1 << 13);
26386     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26387   }
26388 frvbf_media_overflow (current_cpu, 8);
26389 }
26390 } else {
26391   {
26392     DI opval = tmp_tmp1;
26393     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26394     written |= (1 << 13);
26395     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26396   }
26397 }
26398 }
26399 }
26400 {
26401   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26402   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26403   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26404   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26405 }
26406 {
26407   DI tmp_tmp1;
26408   DI tmp_tmp2;
26409   tmp_tmp1 = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
26410   tmp_tmp2 = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
26411   tmp_tmp1 = SUBDI (tmp_tmp1, tmp_tmp2);
26412 if (GTDI (tmp_tmp1, MAKEDI (127, 0xffffffff))) {
26413 {
26414   {
26415     DI opval = MAKEDI (127, 0xffffffff);
26416     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
26417     written |= (1 << 14);
26418     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26419   }
26420 frvbf_media_overflow (current_cpu, 4);
26421 }
26422 } else {
26423 if (LTDI (tmp_tmp1, MAKEDI (0xffffff80, 0))) {
26424 {
26425   {
26426     DI opval = MAKEDI (0xffffff80, 0);
26427     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
26428     written |= (1 << 14);
26429     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26430   }
26431 frvbf_media_overflow (current_cpu, 4);
26432 }
26433 } else {
26434   {
26435     DI opval = tmp_tmp1;
26436     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
26437     written |= (1 << 14);
26438     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26439   }
26440 }
26441 }
26442 }
26443 }
26444 }
26445 }
26446
26447   abuf->written = written;
26448   return vpc;
26449 #undef FLD
26450 }
26451
26452 /* mqcpxru: mqcpxru$pack $FRintieven,$FRintjeven,$ACC40Sk */
26453
26454 static SEM_PC
26455 SEM_FN_NAME (frvbf,mqcpxru) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26456 {
26457 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
26458   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26459   int UNUSED written = 0;
26460   IADDR UNUSED pc = abuf->addr;
26461   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26462
26463 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
26464 frvbf_media_acc_not_aligned (current_cpu);
26465 } else {
26466 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
26467 frvbf_media_register_not_aligned (current_cpu);
26468 } else {
26469 {
26470   UHI tmp_argihi;
26471   UHI tmp_argilo;
26472   UHI tmp_argjhi;
26473   UHI tmp_argjlo;
26474 {
26475   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26476   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26477   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26478   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26479 }
26480 {
26481   DI tmp_tmp1;
26482   DI tmp_tmp2;
26483   tmp_tmp1 = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
26484   tmp_tmp2 = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
26485   tmp_tmp1 = SUBDI (tmp_tmp1, tmp_tmp2);
26486 if (GTDI (tmp_tmp1, MAKEDI (255, 0xffffffff))) {
26487 {
26488   {
26489     DI opval = MAKEDI (255, 0xffffffff);
26490     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26491     written |= (1 << 13);
26492     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26493   }
26494 frvbf_media_overflow (current_cpu, 8);
26495 }
26496 } else {
26497 if (LTDI (tmp_tmp1, MAKEDI (0, 0))) {
26498 {
26499   {
26500     DI opval = MAKEDI (0, 0);
26501     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26502     written |= (1 << 13);
26503     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26504   }
26505 frvbf_media_overflow (current_cpu, 8);
26506 }
26507 } else {
26508   {
26509     DI opval = tmp_tmp1;
26510     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26511     written |= (1 << 13);
26512     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26513   }
26514 }
26515 }
26516 }
26517 {
26518   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26519   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26520   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26521   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26522 }
26523 {
26524   DI tmp_tmp1;
26525   DI tmp_tmp2;
26526   tmp_tmp1 = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
26527   tmp_tmp2 = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
26528   tmp_tmp1 = SUBDI (tmp_tmp1, tmp_tmp2);
26529 if (GTDI (tmp_tmp1, MAKEDI (255, 0xffffffff))) {
26530 {
26531   {
26532     DI opval = MAKEDI (255, 0xffffffff);
26533     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
26534     written |= (1 << 14);
26535     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26536   }
26537 frvbf_media_overflow (current_cpu, 4);
26538 }
26539 } else {
26540 if (LTDI (tmp_tmp1, MAKEDI (0, 0))) {
26541 {
26542   {
26543     DI opval = MAKEDI (0, 0);
26544     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
26545     written |= (1 << 14);
26546     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26547   }
26548 frvbf_media_overflow (current_cpu, 4);
26549 }
26550 } else {
26551   {
26552     DI opval = tmp_tmp1;
26553     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
26554     written |= (1 << 14);
26555     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26556   }
26557 }
26558 }
26559 }
26560 }
26561 }
26562 }
26563
26564   abuf->written = written;
26565   return vpc;
26566 #undef FLD
26567 }
26568
26569 /* mqcpxis: mqcpxis$pack $FRintieven,$FRintjeven,$ACC40Sk */
26570
26571 static SEM_PC
26572 SEM_FN_NAME (frvbf,mqcpxis) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26573 {
26574 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
26575   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26576   int UNUSED written = 0;
26577   IADDR UNUSED pc = abuf->addr;
26578   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26579
26580 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
26581 frvbf_media_acc_not_aligned (current_cpu);
26582 } else {
26583 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
26584 frvbf_media_register_not_aligned (current_cpu);
26585 } else {
26586 {
26587   HI tmp_argihi;
26588   HI tmp_argilo;
26589   HI tmp_argjhi;
26590   HI tmp_argjlo;
26591 {
26592   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26593   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26594   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26595   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26596 }
26597 {
26598   DI tmp_tmp1;
26599   DI tmp_tmp2;
26600   tmp_tmp1 = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo));
26601   tmp_tmp2 = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi));
26602   tmp_tmp1 = ADDDI (tmp_tmp1, tmp_tmp2);
26603 if (GTDI (tmp_tmp1, MAKEDI (127, 0xffffffff))) {
26604 {
26605   {
26606     DI opval = MAKEDI (127, 0xffffffff);
26607     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26608     written |= (1 << 13);
26609     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26610   }
26611 frvbf_media_overflow (current_cpu, 8);
26612 }
26613 } else {
26614 if (LTDI (tmp_tmp1, MAKEDI (0xffffff80, 0))) {
26615 {
26616   {
26617     DI opval = MAKEDI (0xffffff80, 0);
26618     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26619     written |= (1 << 13);
26620     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26621   }
26622 frvbf_media_overflow (current_cpu, 8);
26623 }
26624 } else {
26625   {
26626     DI opval = tmp_tmp1;
26627     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26628     written |= (1 << 13);
26629     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26630   }
26631 }
26632 }
26633 }
26634 {
26635   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26636   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26637   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26638   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26639 }
26640 {
26641   DI tmp_tmp1;
26642   DI tmp_tmp2;
26643   tmp_tmp1 = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo));
26644   tmp_tmp2 = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi));
26645   tmp_tmp1 = ADDDI (tmp_tmp1, tmp_tmp2);
26646 if (GTDI (tmp_tmp1, MAKEDI (127, 0xffffffff))) {
26647 {
26648   {
26649     DI opval = MAKEDI (127, 0xffffffff);
26650     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
26651     written |= (1 << 14);
26652     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26653   }
26654 frvbf_media_overflow (current_cpu, 4);
26655 }
26656 } else {
26657 if (LTDI (tmp_tmp1, MAKEDI (0xffffff80, 0))) {
26658 {
26659   {
26660     DI opval = MAKEDI (0xffffff80, 0);
26661     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
26662     written |= (1 << 14);
26663     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26664   }
26665 frvbf_media_overflow (current_cpu, 4);
26666 }
26667 } else {
26668   {
26669     DI opval = tmp_tmp1;
26670     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
26671     written |= (1 << 14);
26672     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26673   }
26674 }
26675 }
26676 }
26677 }
26678 }
26679 }
26680
26681   abuf->written = written;
26682   return vpc;
26683 #undef FLD
26684 }
26685
26686 /* mqcpxiu: mqcpxiu$pack $FRintieven,$FRintjeven,$ACC40Sk */
26687
26688 static SEM_PC
26689 SEM_FN_NAME (frvbf,mqcpxiu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26690 {
26691 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
26692   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26693   int UNUSED written = 0;
26694   IADDR UNUSED pc = abuf->addr;
26695   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26696
26697 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
26698 frvbf_media_acc_not_aligned (current_cpu);
26699 } else {
26700 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
26701 frvbf_media_register_not_aligned (current_cpu);
26702 } else {
26703 {
26704   UHI tmp_argihi;
26705   UHI tmp_argilo;
26706   UHI tmp_argjhi;
26707   UHI tmp_argjlo;
26708 {
26709   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26710   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26711   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26712   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26713 }
26714 {
26715   DI tmp_tmp1;
26716   DI tmp_tmp2;
26717   tmp_tmp1 = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjlo));
26718   tmp_tmp2 = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjhi));
26719   tmp_tmp1 = ADDDI (tmp_tmp1, tmp_tmp2);
26720 if (GTDI (tmp_tmp1, MAKEDI (255, 0xffffffff))) {
26721 {
26722   {
26723     DI opval = MAKEDI (255, 0xffffffff);
26724     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26725     written |= (1 << 13);
26726     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26727   }
26728 frvbf_media_overflow (current_cpu, 8);
26729 }
26730 } else {
26731 if (LTDI (tmp_tmp1, MAKEDI (0, 0))) {
26732 {
26733   {
26734     DI opval = MAKEDI (0, 0);
26735     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26736     written |= (1 << 13);
26737     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26738   }
26739 frvbf_media_overflow (current_cpu, 8);
26740 }
26741 } else {
26742   {
26743     DI opval = tmp_tmp1;
26744     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26745     written |= (1 << 13);
26746     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26747   }
26748 }
26749 }
26750 }
26751 {
26752   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26753   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26754   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26755   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26756 }
26757 {
26758   DI tmp_tmp1;
26759   DI tmp_tmp2;
26760   tmp_tmp1 = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjlo));
26761   tmp_tmp2 = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjhi));
26762   tmp_tmp1 = ADDDI (tmp_tmp1, tmp_tmp2);
26763 if (GTDI (tmp_tmp1, MAKEDI (255, 0xffffffff))) {
26764 {
26765   {
26766     DI opval = MAKEDI (255, 0xffffffff);
26767     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
26768     written |= (1 << 14);
26769     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26770   }
26771 frvbf_media_overflow (current_cpu, 4);
26772 }
26773 } else {
26774 if (LTDI (tmp_tmp1, MAKEDI (0, 0))) {
26775 {
26776   {
26777     DI opval = MAKEDI (0, 0);
26778     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
26779     written |= (1 << 14);
26780     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26781   }
26782 frvbf_media_overflow (current_cpu, 4);
26783 }
26784 } else {
26785   {
26786     DI opval = tmp_tmp1;
26787     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
26788     written |= (1 << 14);
26789     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26790   }
26791 }
26792 }
26793 }
26794 }
26795 }
26796 }
26797
26798   abuf->written = written;
26799   return vpc;
26800 #undef FLD
26801 }
26802
26803 /* mexpdhw: mexpdhw$pack $FRinti,$u6,$FRintk */
26804
26805 static SEM_PC
26806 SEM_FN_NAME (frvbf,mexpdhw) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26807 {
26808 #define FLD(f) abuf->fields.sfmt_cmexpdhw.f
26809   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26810   int UNUSED written = 0;
26811   IADDR UNUSED pc = abuf->addr;
26812   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26813
26814 {
26815   UHI tmp_tmp;
26816 if (ANDSI (FLD (f_u6), 1)) {
26817   tmp_tmp = GET_H_FR_LO (((FLD (f_FRi)) + (0)));
26818 } else {
26819   tmp_tmp = GET_H_FR_HI (((FLD (f_FRi)) + (0)));
26820 }
26821   {
26822     UHI opval = tmp_tmp;
26823     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
26824     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
26825   }
26826   {
26827     UHI opval = tmp_tmp;
26828     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
26829     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
26830   }
26831 }
26832
26833   return vpc;
26834 #undef FLD
26835 }
26836
26837 /* cmexpdhw: cmexpdhw$pack $FRinti,$u6,$FRintk,$CCi,$cond */
26838
26839 static SEM_PC
26840 SEM_FN_NAME (frvbf,cmexpdhw) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26841 {
26842 #define FLD(f) abuf->fields.sfmt_cmexpdhw.f
26843   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26844   int UNUSED written = 0;
26845   IADDR UNUSED pc = abuf->addr;
26846   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26847
26848 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
26849 {
26850   UHI tmp_tmp;
26851 if (ANDSI (FLD (f_u6), 1)) {
26852   tmp_tmp = GET_H_FR_LO (((FLD (f_FRi)) + (0)));
26853 } else {
26854   tmp_tmp = GET_H_FR_HI (((FLD (f_FRi)) + (0)));
26855 }
26856   {
26857     UHI opval = tmp_tmp;
26858     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
26859     written |= (1 << 7);
26860     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
26861   }
26862   {
26863     UHI opval = tmp_tmp;
26864     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
26865     written |= (1 << 8);
26866     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
26867   }
26868 }
26869 }
26870
26871   abuf->written = written;
26872   return vpc;
26873 #undef FLD
26874 }
26875
26876 /* mexpdhd: mexpdhd$pack $FRinti,$u6,$FRintkeven */
26877
26878 static SEM_PC
26879 SEM_FN_NAME (frvbf,mexpdhd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26880 {
26881 #define FLD(f) abuf->fields.sfmt_cmexpdhd.f
26882   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26883   int UNUSED written = 0;
26884   IADDR UNUSED pc = abuf->addr;
26885   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26886
26887 if (ANDSI (FLD (f_FRk), SUBSI (2, 1))) {
26888 frvbf_media_register_not_aligned (current_cpu);
26889 } else {
26890 {
26891   UHI tmp_tmp;
26892   {
26893     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
26894     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
26895     written |= (1 << 6);
26896     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
26897   }
26898 if (ANDSI (FLD (f_u6), 1)) {
26899   tmp_tmp = GET_H_FR_LO (((FLD (f_FRi)) + (0)));
26900 } else {
26901   tmp_tmp = GET_H_FR_HI (((FLD (f_FRi)) + (0)));
26902 }
26903   {
26904     UHI opval = tmp_tmp;
26905     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
26906     written |= (1 << 7);
26907     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
26908   }
26909   {
26910     UHI opval = tmp_tmp;
26911     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
26912     written |= (1 << 9);
26913     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
26914   }
26915   {
26916     UHI opval = tmp_tmp;
26917     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
26918     written |= (1 << 8);
26919     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
26920   }
26921   {
26922     UHI opval = tmp_tmp;
26923     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
26924     written |= (1 << 10);
26925     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
26926   }
26927 }
26928 }
26929
26930   abuf->written = written;
26931   return vpc;
26932 #undef FLD
26933 }
26934
26935 /* cmexpdhd: cmexpdhd$pack $FRinti,$u6,$FRintkeven,$CCi,$cond */
26936
26937 static SEM_PC
26938 SEM_FN_NAME (frvbf,cmexpdhd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26939 {
26940 #define FLD(f) abuf->fields.sfmt_cmexpdhd.f
26941   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26942   int UNUSED written = 0;
26943   IADDR UNUSED pc = abuf->addr;
26944   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26945
26946 if (ANDSI (FLD (f_FRk), SUBSI (2, 1))) {
26947 frvbf_media_register_not_aligned (current_cpu);
26948 } else {
26949 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
26950 {
26951   UHI tmp_tmp;
26952   {
26953     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
26954     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
26955     written |= (1 << 8);
26956     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
26957   }
26958 if (ANDSI (FLD (f_u6), 1)) {
26959   tmp_tmp = GET_H_FR_LO (((FLD (f_FRi)) + (0)));
26960 } else {
26961   tmp_tmp = GET_H_FR_HI (((FLD (f_FRi)) + (0)));
26962 }
26963   {
26964     UHI opval = tmp_tmp;
26965     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
26966     written |= (1 << 9);
26967     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
26968   }
26969   {
26970     UHI opval = tmp_tmp;
26971     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
26972     written |= (1 << 11);
26973     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
26974   }
26975   {
26976     UHI opval = tmp_tmp;
26977     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
26978     written |= (1 << 10);
26979     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
26980   }
26981   {
26982     UHI opval = tmp_tmp;
26983     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
26984     written |= (1 << 12);
26985     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
26986   }
26987 }
26988 }
26989 }
26990
26991   abuf->written = written;
26992   return vpc;
26993 #undef FLD
26994 }
26995
26996 /* mpackh: mpackh$pack $FRinti,$FRintj,$FRintk */
26997
26998 static SEM_PC
26999 SEM_FN_NAME (frvbf,mpackh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27000 {
27001 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
27002   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27003   int UNUSED written = 0;
27004   IADDR UNUSED pc = abuf->addr;
27005   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27006
27007 {
27008   {
27009     UHI opval = GET_H_FR_LO (((FLD (f_FRi)) + (0)));
27010     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
27011     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27012   }
27013   {
27014     UHI opval = GET_H_FR_LO (((FLD (f_FRj)) + (0)));
27015     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
27016     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27017   }
27018 }
27019
27020   return vpc;
27021 #undef FLD
27022 }
27023
27024 /* mdpackh: mdpackh$pack $FRintieven,$FRintjeven,$FRintkeven */
27025
27026 static SEM_PC
27027 SEM_FN_NAME (frvbf,mdpackh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27028 {
27029 #define FLD(f) abuf->fields.sfmt_mdpackh.f
27030   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27031   int UNUSED written = 0;
27032   IADDR UNUSED pc = abuf->addr;
27033   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27034
27035 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
27036 frvbf_media_register_not_aligned (current_cpu);
27037 } else {
27038 {
27039   {
27040     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRi)));
27041     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRi), opval);
27042     written |= (1 << 10);
27043     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27044   }
27045   {
27046     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRj)));
27047     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRj), opval);
27048     written |= (1 << 11);
27049     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27050   }
27051   {
27052     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27053     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27054     written |= (1 << 12);
27055     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27056   }
27057 {
27058   {
27059     UHI opval = GET_H_FR_LO (((FLD (f_FRi)) + (0)));
27060     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
27061     written |= (1 << 13);
27062     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27063   }
27064   {
27065     UHI opval = GET_H_FR_LO (((FLD (f_FRj)) + (0)));
27066     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
27067     written |= (1 << 15);
27068     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27069   }
27070 }
27071 {
27072   {
27073     UHI opval = GET_H_FR_LO (((FLD (f_FRi)) + (1)));
27074     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
27075     written |= (1 << 14);
27076     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27077   }
27078   {
27079     UHI opval = GET_H_FR_LO (((FLD (f_FRj)) + (1)));
27080     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
27081     written |= (1 << 16);
27082     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27083   }
27084 }
27085 }
27086 }
27087
27088   abuf->written = written;
27089   return vpc;
27090 #undef FLD
27091 }
27092
27093 /* munpackh: munpackh$pack $FRinti,$FRintkeven */
27094
27095 static SEM_PC
27096 SEM_FN_NAME (frvbf,munpackh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27097 {
27098 #define FLD(f) abuf->fields.sfmt_munpackh.f
27099   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27100   int UNUSED written = 0;
27101   IADDR UNUSED pc = abuf->addr;
27102   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27103
27104 if (ANDSI (FLD (f_FRk), SUBSI (2, 1))) {
27105 frvbf_media_register_not_aligned (current_cpu);
27106 } else {
27107 {
27108   {
27109     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRi)));
27110     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRi), opval);
27111     written |= (1 << 6);
27112     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27113   }
27114   {
27115     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27116     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27117     written |= (1 << 7);
27118     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27119   }
27120 {
27121   {
27122     UHI opval = GET_H_FR_HI (((FLD (f_FRi)) + (0)));
27123     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
27124     written |= (1 << 8);
27125     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27126   }
27127   {
27128     UHI opval = GET_H_FR_HI (((FLD (f_FRi)) + (0)));
27129     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
27130     written |= (1 << 10);
27131     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27132   }
27133   {
27134     UHI opval = GET_H_FR_LO (((FLD (f_FRi)) + (0)));
27135     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (ADDSI (0, 1))), opval);
27136     written |= (1 << 9);
27137     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27138   }
27139   {
27140     UHI opval = GET_H_FR_LO (((FLD (f_FRi)) + (0)));
27141     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (ADDSI (0, 1))), opval);
27142     written |= (1 << 11);
27143     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27144   }
27145 }
27146 }
27147 }
27148
27149   abuf->written = written;
27150   return vpc;
27151 #undef FLD
27152 }
27153
27154 /* mdunpackh: mdunpackh$pack $FRintieven,$FRintk */
27155
27156 static SEM_PC
27157 SEM_FN_NAME (frvbf,mdunpackh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27158 {
27159 #define FLD(f) abuf->fields.sfmt_mdunpackh.f
27160   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27161   int UNUSED written = 0;
27162   IADDR UNUSED pc = abuf->addr;
27163   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27164
27165 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (4, 1)))) {
27166 frvbf_media_register_not_aligned (current_cpu);
27167 } else {
27168 {
27169   {
27170     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRi)));
27171     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRi), opval);
27172     written |= (1 << 8);
27173     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27174   }
27175   {
27176     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27177     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27178     written |= (1 << 9);
27179     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27180   }
27181 {
27182   {
27183     UHI opval = GET_H_FR_HI (((FLD (f_FRi)) + (0)));
27184     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
27185     written |= (1 << 10);
27186     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27187   }
27188   {
27189     UHI opval = GET_H_FR_HI (((FLD (f_FRi)) + (0)));
27190     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
27191     written |= (1 << 14);
27192     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27193   }
27194   {
27195     UHI opval = GET_H_FR_LO (((FLD (f_FRi)) + (0)));
27196     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (ADDSI (0, 1))), opval);
27197     written |= (1 << 12);
27198     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27199   }
27200   {
27201     UHI opval = GET_H_FR_LO (((FLD (f_FRi)) + (0)));
27202     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (ADDSI (0, 1))), opval);
27203     written |= (1 << 16);
27204     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27205   }
27206 }
27207 {
27208   {
27209     UHI opval = GET_H_FR_HI (((FLD (f_FRi)) + (1)));
27210     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (2)), opval);
27211     written |= (1 << 11);
27212     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27213   }
27214   {
27215     UHI opval = GET_H_FR_HI (((FLD (f_FRi)) + (1)));
27216     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (2)), opval);
27217     written |= (1 << 15);
27218     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27219   }
27220   {
27221     UHI opval = GET_H_FR_LO (((FLD (f_FRi)) + (1)));
27222     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (ADDSI (2, 1))), opval);
27223     written |= (1 << 13);
27224     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27225   }
27226   {
27227     UHI opval = GET_H_FR_LO (((FLD (f_FRi)) + (1)));
27228     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (ADDSI (2, 1))), opval);
27229     written |= (1 << 17);
27230     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27231   }
27232 }
27233 }
27234 }
27235
27236   abuf->written = written;
27237   return vpc;
27238 #undef FLD
27239 }
27240
27241 /* mbtoh: mbtoh$pack $FRintj,$FRintkeven */
27242
27243 static SEM_PC
27244 SEM_FN_NAME (frvbf,mbtoh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27245 {
27246 #define FLD(f) abuf->fields.sfmt_cmbtoh.f
27247   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27248   int UNUSED written = 0;
27249   IADDR UNUSED pc = abuf->addr;
27250   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27251
27252 {
27253   {
27254     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRj)));
27255     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRj), opval);
27256     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27257   }
27258   {
27259     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27260     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27261     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27262   }
27263 if (ANDSI (FLD (f_FRk), SUBSI (2, 1))) {
27264 frvbf_media_register_not_aligned (current_cpu);
27265 } else {
27266 {
27267   {
27268     UHI opval = GET_H_FR_3 (((FLD (f_FRj)) + (0)));
27269     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
27270     written |= (1 << 10);
27271     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27272   }
27273   {
27274     UHI opval = GET_H_FR_2 (((FLD (f_FRj)) + (0)));
27275     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
27276     written |= (1 << 12);
27277     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27278   }
27279   {
27280     UHI opval = GET_H_FR_1 (((FLD (f_FRj)) + (0)));
27281     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
27282     written |= (1 << 11);
27283     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27284   }
27285   {
27286     UHI opval = GET_H_FR_0 (((FLD (f_FRj)) + (0)));
27287     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
27288     written |= (1 << 13);
27289     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27290   }
27291 }
27292 }
27293 }
27294
27295   abuf->written = written;
27296   return vpc;
27297 #undef FLD
27298 }
27299
27300 /* cmbtoh: cmbtoh$pack $FRintj,$FRintkeven,$CCi,$cond */
27301
27302 static SEM_PC
27303 SEM_FN_NAME (frvbf,cmbtoh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27304 {
27305 #define FLD(f) abuf->fields.sfmt_cmbtoh.f
27306   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27307   int UNUSED written = 0;
27308   IADDR UNUSED pc = abuf->addr;
27309   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27310
27311 {
27312   {
27313     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRj)));
27314     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRj), opval);
27315     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27316   }
27317   {
27318     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27319     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27320     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27321   }
27322 if (ANDSI (FLD (f_FRk), SUBSI (2, 1))) {
27323 frvbf_media_register_not_aligned (current_cpu);
27324 } else {
27325 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
27326 {
27327   {
27328     UHI opval = GET_H_FR_3 (((FLD (f_FRj)) + (0)));
27329     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
27330     written |= (1 << 12);
27331     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27332   }
27333   {
27334     UHI opval = GET_H_FR_2 (((FLD (f_FRj)) + (0)));
27335     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
27336     written |= (1 << 14);
27337     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27338   }
27339   {
27340     UHI opval = GET_H_FR_1 (((FLD (f_FRj)) + (0)));
27341     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
27342     written |= (1 << 13);
27343     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27344   }
27345   {
27346     UHI opval = GET_H_FR_0 (((FLD (f_FRj)) + (0)));
27347     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
27348     written |= (1 << 15);
27349     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27350   }
27351 }
27352 }
27353 }
27354 }
27355
27356   abuf->written = written;
27357   return vpc;
27358 #undef FLD
27359 }
27360
27361 /* mhtob: mhtob$pack $FRintjeven,$FRintk */
27362
27363 static SEM_PC
27364 SEM_FN_NAME (frvbf,mhtob) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27365 {
27366 #define FLD(f) abuf->fields.sfmt_cmhtob.f
27367   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27368   int UNUSED written = 0;
27369   IADDR UNUSED pc = abuf->addr;
27370   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27371
27372 {
27373   {
27374     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRj)));
27375     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRj), opval);
27376     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27377   }
27378   {
27379     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27380     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27381     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27382   }
27383 if (ANDSI (FLD (f_FRj), SUBSI (2, 1))) {
27384 frvbf_media_register_not_aligned (current_cpu);
27385 } else {
27386 {
27387   {
27388     UHI opval = GET_H_FR_HI (((FLD (f_FRj)) + (0)));
27389     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_3_set, ((FLD (f_FRk)) + (0)), opval);
27390     written |= (1 << 13);
27391     TRACE_RESULT (current_cpu, abuf, "fr_3", 'x', opval);
27392   }
27393   {
27394     UHI opval = GET_H_FR_LO (((FLD (f_FRj)) + (0)));
27395     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_2_set, ((FLD (f_FRk)) + (0)), opval);
27396     written |= (1 << 12);
27397     TRACE_RESULT (current_cpu, abuf, "fr_2", 'x', opval);
27398   }
27399   {
27400     UHI opval = GET_H_FR_HI (((FLD (f_FRj)) + (1)));
27401     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_1_set, ((FLD (f_FRk)) + (0)), opval);
27402     written |= (1 << 11);
27403     TRACE_RESULT (current_cpu, abuf, "fr_1", 'x', opval);
27404   }
27405   {
27406     UHI opval = GET_H_FR_LO (((FLD (f_FRj)) + (1)));
27407     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_0_set, ((FLD (f_FRk)) + (0)), opval);
27408     written |= (1 << 10);
27409     TRACE_RESULT (current_cpu, abuf, "fr_0", 'x', opval);
27410   }
27411 }
27412 }
27413 }
27414
27415   abuf->written = written;
27416   return vpc;
27417 #undef FLD
27418 }
27419
27420 /* cmhtob: cmhtob$pack $FRintjeven,$FRintk,$CCi,$cond */
27421
27422 static SEM_PC
27423 SEM_FN_NAME (frvbf,cmhtob) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27424 {
27425 #define FLD(f) abuf->fields.sfmt_cmhtob.f
27426   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27427   int UNUSED written = 0;
27428   IADDR UNUSED pc = abuf->addr;
27429   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27430
27431 {
27432   {
27433     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRj)));
27434     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRj), opval);
27435     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27436   }
27437   {
27438     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27439     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27440     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27441   }
27442 if (ANDSI (FLD (f_FRj), SUBSI (2, 1))) {
27443 frvbf_media_register_not_aligned (current_cpu);
27444 } else {
27445 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
27446 {
27447   {
27448     UHI opval = GET_H_FR_HI (((FLD (f_FRj)) + (0)));
27449     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_3_set, ((FLD (f_FRk)) + (0)), opval);
27450     written |= (1 << 15);
27451     TRACE_RESULT (current_cpu, abuf, "fr_3", 'x', opval);
27452   }
27453   {
27454     UHI opval = GET_H_FR_LO (((FLD (f_FRj)) + (0)));
27455     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_2_set, ((FLD (f_FRk)) + (0)), opval);
27456     written |= (1 << 14);
27457     TRACE_RESULT (current_cpu, abuf, "fr_2", 'x', opval);
27458   }
27459   {
27460     UHI opval = GET_H_FR_HI (((FLD (f_FRj)) + (1)));
27461     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_1_set, ((FLD (f_FRk)) + (0)), opval);
27462     written |= (1 << 13);
27463     TRACE_RESULT (current_cpu, abuf, "fr_1", 'x', opval);
27464   }
27465   {
27466     UHI opval = GET_H_FR_LO (((FLD (f_FRj)) + (1)));
27467     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_0_set, ((FLD (f_FRk)) + (0)), opval);
27468     written |= (1 << 12);
27469     TRACE_RESULT (current_cpu, abuf, "fr_0", 'x', opval);
27470   }
27471 }
27472 }
27473 }
27474 }
27475
27476   abuf->written = written;
27477   return vpc;
27478 #undef FLD
27479 }
27480
27481 /* mbtohe: mbtohe$pack $FRintj,$FRintk */
27482
27483 static SEM_PC
27484 SEM_FN_NAME (frvbf,mbtohe) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27485 {
27486 #define FLD(f) abuf->fields.sfmt_cmbtohe.f
27487   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27488   int UNUSED written = 0;
27489   IADDR UNUSED pc = abuf->addr;
27490   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27491
27492 {
27493   {
27494     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRj)));
27495     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRj), opval);
27496     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27497   }
27498   {
27499     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27500     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27501     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27502   }
27503 if (ANDSI (FLD (f_FRk), SUBSI (4, 1))) {
27504 frvbf_media_register_not_aligned (current_cpu);
27505 } else {
27506 {
27507   {
27508     UHI opval = GET_H_FR_3 (((FLD (f_FRj)) + (0)));
27509     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
27510     written |= (1 << 10);
27511     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27512   }
27513   {
27514     UHI opval = GET_H_FR_3 (((FLD (f_FRj)) + (0)));
27515     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
27516     written |= (1 << 14);
27517     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27518   }
27519   {
27520     UHI opval = GET_H_FR_2 (((FLD (f_FRj)) + (0)));
27521     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
27522     written |= (1 << 11);
27523     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27524   }
27525   {
27526     UHI opval = GET_H_FR_2 (((FLD (f_FRj)) + (0)));
27527     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
27528     written |= (1 << 15);
27529     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27530   }
27531   {
27532     UHI opval = GET_H_FR_1 (((FLD (f_FRj)) + (0)));
27533     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (2)), opval);
27534     written |= (1 << 12);
27535     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27536   }
27537   {
27538     UHI opval = GET_H_FR_1 (((FLD (f_FRj)) + (0)));
27539     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (2)), opval);
27540     written |= (1 << 16);
27541     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27542   }
27543   {
27544     UHI opval = GET_H_FR_0 (((FLD (f_FRj)) + (0)));
27545     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (3)), opval);
27546     written |= (1 << 13);
27547     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27548   }
27549   {
27550     UHI opval = GET_H_FR_0 (((FLD (f_FRj)) + (0)));
27551     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (3)), opval);
27552     written |= (1 << 17);
27553     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27554   }
27555 }
27556 }
27557 }
27558
27559   abuf->written = written;
27560   return vpc;
27561 #undef FLD
27562 }
27563
27564 /* cmbtohe: cmbtohe$pack $FRintj,$FRintk,$CCi,$cond */
27565
27566 static SEM_PC
27567 SEM_FN_NAME (frvbf,cmbtohe) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27568 {
27569 #define FLD(f) abuf->fields.sfmt_cmbtohe.f
27570   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27571   int UNUSED written = 0;
27572   IADDR UNUSED pc = abuf->addr;
27573   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27574
27575 {
27576   {
27577     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRj)));
27578     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRj), opval);
27579     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27580   }
27581   {
27582     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27583     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27584     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27585   }
27586 if (ANDSI (FLD (f_FRk), SUBSI (4, 1))) {
27587 frvbf_media_register_not_aligned (current_cpu);
27588 } else {
27589 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
27590 {
27591   {
27592     UHI opval = GET_H_FR_3 (((FLD (f_FRj)) + (0)));
27593     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
27594     written |= (1 << 12);
27595     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27596   }
27597   {
27598     UHI opval = GET_H_FR_3 (((FLD (f_FRj)) + (0)));
27599     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
27600     written |= (1 << 16);
27601     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27602   }
27603   {
27604     UHI opval = GET_H_FR_2 (((FLD (f_FRj)) + (0)));
27605     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
27606     written |= (1 << 13);
27607     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27608   }
27609   {
27610     UHI opval = GET_H_FR_2 (((FLD (f_FRj)) + (0)));
27611     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
27612     written |= (1 << 17);
27613     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27614   }
27615   {
27616     UHI opval = GET_H_FR_1 (((FLD (f_FRj)) + (0)));
27617     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (2)), opval);
27618     written |= (1 << 14);
27619     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27620   }
27621   {
27622     UHI opval = GET_H_FR_1 (((FLD (f_FRj)) + (0)));
27623     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (2)), opval);
27624     written |= (1 << 18);
27625     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27626   }
27627   {
27628     UHI opval = GET_H_FR_0 (((FLD (f_FRj)) + (0)));
27629     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (3)), opval);
27630     written |= (1 << 15);
27631     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27632   }
27633   {
27634     UHI opval = GET_H_FR_0 (((FLD (f_FRj)) + (0)));
27635     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (3)), opval);
27636     written |= (1 << 19);
27637     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27638   }
27639 }
27640 }
27641 }
27642 }
27643
27644   abuf->written = written;
27645   return vpc;
27646 #undef FLD
27647 }
27648
27649 /* mclracc: mclracc$pack $ACC40Sk,$A */
27650
27651 static SEM_PC
27652 SEM_FN_NAME (frvbf,mclracc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27653 {
27654 #define FLD(f) abuf->fields.sfmt_mclracc.f
27655   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27656   int UNUSED written = 0;
27657   IADDR UNUSED pc = abuf->addr;
27658   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27659
27660 frvbf_clear_accumulators (current_cpu, FLD (f_ACC40Sk), FLD (f_A));
27661
27662   return vpc;
27663 #undef FLD
27664 }
27665
27666 /* mrdacc: mrdacc$pack $ACC40Si,$FRintk */
27667
27668 static SEM_PC
27669 SEM_FN_NAME (frvbf,mrdacc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27670 {
27671 #define FLD(f) abuf->fields.sfmt_mcuti.f
27672   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27673   int UNUSED written = 0;
27674   IADDR UNUSED pc = abuf->addr;
27675   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27676
27677   {
27678     SI opval = GET_H_ACC40S (FLD (f_ACC40Si));
27679     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27680     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27681   }
27682
27683   return vpc;
27684 #undef FLD
27685 }
27686
27687 /* mrdaccg: mrdaccg$pack $ACCGi,$FRintk */
27688
27689 static SEM_PC
27690 SEM_FN_NAME (frvbf,mrdaccg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27691 {
27692 #define FLD(f) abuf->fields.sfmt_mrdaccg.f
27693   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27694   int UNUSED written = 0;
27695   IADDR UNUSED pc = abuf->addr;
27696   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27697
27698   {
27699     SI opval = GET_H_ACCG (FLD (f_ACCGi));
27700     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27701     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27702   }
27703
27704   return vpc;
27705 #undef FLD
27706 }
27707
27708 /* mwtacc: mwtacc$pack $FRinti,$ACC40Sk */
27709
27710 static SEM_PC
27711 SEM_FN_NAME (frvbf,mwtacc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27712 {
27713 #define FLD(f) abuf->fields.sfmt_cmmachs.f
27714   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27715   int UNUSED written = 0;
27716   IADDR UNUSED pc = abuf->addr;
27717   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27718
27719   {
27720     DI opval = ORDI (ANDDI (GET_H_ACC40S (FLD (f_ACC40Sk)), MAKEDI (0xffffffff, 0)), GET_H_FR_INT (FLD (f_FRi)));
27721     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
27722     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
27723   }
27724
27725   return vpc;
27726 #undef FLD
27727 }
27728
27729 /* mwtaccg: mwtaccg$pack $FRinti,$ACCGk */
27730
27731 static SEM_PC
27732 SEM_FN_NAME (frvbf,mwtaccg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27733 {
27734 #define FLD(f) abuf->fields.sfmt_mwtaccg.f
27735   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27736   int UNUSED written = 0;
27737   IADDR UNUSED pc = abuf->addr;
27738   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27739
27740   {
27741     USI opval = GET_H_FR_INT (FLD (f_FRi));
27742     sim_queue_fn_si_write (current_cpu, frvbf_h_accg_set, FLD (f_ACCGk), opval);
27743     TRACE_RESULT (current_cpu, abuf, "accg", 'x', opval);
27744   }
27745
27746   return vpc;
27747 #undef FLD
27748 }
27749
27750 /* mcop1: mcop1$pack $FRi,$FRj,$FRk */
27751
27752 static SEM_PC
27753 SEM_FN_NAME (frvbf,mcop1) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27754 {
27755 #define FLD(f) abuf->fields.fmt_empty.f
27756   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27757   int UNUSED written = 0;
27758   IADDR UNUSED pc = abuf->addr;
27759   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27760
27761 frvbf_media_cop (current_cpu, 1);
27762
27763   return vpc;
27764 #undef FLD
27765 }
27766
27767 /* mcop2: mcop2$pack $FRi,$FRj,$FRk */
27768
27769 static SEM_PC
27770 SEM_FN_NAME (frvbf,mcop2) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27771 {
27772 #define FLD(f) abuf->fields.fmt_empty.f
27773   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27774   int UNUSED written = 0;
27775   IADDR UNUSED pc = abuf->addr;
27776   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27777
27778 frvbf_media_cop (current_cpu, 2);
27779
27780   return vpc;
27781 #undef FLD
27782 }
27783
27784 /* fnop: fnop$pack */
27785
27786 static SEM_PC
27787 SEM_FN_NAME (frvbf,fnop) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27788 {
27789 #define FLD(f) abuf->fields.fmt_empty.f
27790   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27791   int UNUSED written = 0;
27792   IADDR UNUSED pc = abuf->addr;
27793   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27794
27795 ((void) 0); /*nop*/
27796
27797   return vpc;
27798 #undef FLD
27799 }
27800
27801 /* Table of all semantic fns.  */
27802
27803 static const struct sem_fn_desc sem_fns[] = {
27804   { FRVBF_INSN_X_INVALID, SEM_FN_NAME (frvbf,x_invalid) },
27805   { FRVBF_INSN_X_AFTER, SEM_FN_NAME (frvbf,x_after) },
27806   { FRVBF_INSN_X_BEFORE, SEM_FN_NAME (frvbf,x_before) },
27807   { FRVBF_INSN_X_CTI_CHAIN, SEM_FN_NAME (frvbf,x_cti_chain) },
27808   { FRVBF_INSN_X_CHAIN, SEM_FN_NAME (frvbf,x_chain) },
27809   { FRVBF_INSN_X_BEGIN, SEM_FN_NAME (frvbf,x_begin) },
27810   { FRVBF_INSN_ADD, SEM_FN_NAME (frvbf,add) },
27811   { FRVBF_INSN_SUB, SEM_FN_NAME (frvbf,sub) },
27812   { FRVBF_INSN_AND, SEM_FN_NAME (frvbf,and) },
27813   { FRVBF_INSN_OR, SEM_FN_NAME (frvbf,or) },
27814   { FRVBF_INSN_XOR, SEM_FN_NAME (frvbf,xor) },
27815   { FRVBF_INSN_NOT, SEM_FN_NAME (frvbf,not) },
27816   { FRVBF_INSN_SDIV, SEM_FN_NAME (frvbf,sdiv) },
27817   { FRVBF_INSN_NSDIV, SEM_FN_NAME (frvbf,nsdiv) },
27818   { FRVBF_INSN_UDIV, SEM_FN_NAME (frvbf,udiv) },
27819   { FRVBF_INSN_NUDIV, SEM_FN_NAME (frvbf,nudiv) },
27820   { FRVBF_INSN_SMUL, SEM_FN_NAME (frvbf,smul) },
27821   { FRVBF_INSN_UMUL, SEM_FN_NAME (frvbf,umul) },
27822   { FRVBF_INSN_SLL, SEM_FN_NAME (frvbf,sll) },
27823   { FRVBF_INSN_SRL, SEM_FN_NAME (frvbf,srl) },
27824   { FRVBF_INSN_SRA, SEM_FN_NAME (frvbf,sra) },
27825   { FRVBF_INSN_SCAN, SEM_FN_NAME (frvbf,scan) },
27826   { FRVBF_INSN_CADD, SEM_FN_NAME (frvbf,cadd) },
27827   { FRVBF_INSN_CSUB, SEM_FN_NAME (frvbf,csub) },
27828   { FRVBF_INSN_CAND, SEM_FN_NAME (frvbf,cand) },
27829   { FRVBF_INSN_COR, SEM_FN_NAME (frvbf,cor) },
27830   { FRVBF_INSN_CXOR, SEM_FN_NAME (frvbf,cxor) },
27831   { FRVBF_INSN_CNOT, SEM_FN_NAME (frvbf,cnot) },
27832   { FRVBF_INSN_CSMUL, SEM_FN_NAME (frvbf,csmul) },
27833   { FRVBF_INSN_CSDIV, SEM_FN_NAME (frvbf,csdiv) },
27834   { FRVBF_INSN_CUDIV, SEM_FN_NAME (frvbf,cudiv) },
27835   { FRVBF_INSN_CSLL, SEM_FN_NAME (frvbf,csll) },
27836   { FRVBF_INSN_CSRL, SEM_FN_NAME (frvbf,csrl) },
27837   { FRVBF_INSN_CSRA, SEM_FN_NAME (frvbf,csra) },
27838   { FRVBF_INSN_CSCAN, SEM_FN_NAME (frvbf,cscan) },
27839   { FRVBF_INSN_ADDCC, SEM_FN_NAME (frvbf,addcc) },
27840   { FRVBF_INSN_SUBCC, SEM_FN_NAME (frvbf,subcc) },
27841   { FRVBF_INSN_ANDCC, SEM_FN_NAME (frvbf,andcc) },
27842   { FRVBF_INSN_ORCC, SEM_FN_NAME (frvbf,orcc) },
27843   { FRVBF_INSN_XORCC, SEM_FN_NAME (frvbf,xorcc) },
27844   { FRVBF_INSN_SLLCC, SEM_FN_NAME (frvbf,sllcc) },
27845   { FRVBF_INSN_SRLCC, SEM_FN_NAME (frvbf,srlcc) },
27846   { FRVBF_INSN_SRACC, SEM_FN_NAME (frvbf,sracc) },
27847   { FRVBF_INSN_SMULCC, SEM_FN_NAME (frvbf,smulcc) },
27848   { FRVBF_INSN_UMULCC, SEM_FN_NAME (frvbf,umulcc) },
27849   { FRVBF_INSN_CADDCC, SEM_FN_NAME (frvbf,caddcc) },
27850   { FRVBF_INSN_CSUBCC, SEM_FN_NAME (frvbf,csubcc) },
27851   { FRVBF_INSN_CSMULCC, SEM_FN_NAME (frvbf,csmulcc) },
27852   { FRVBF_INSN_CANDCC, SEM_FN_NAME (frvbf,candcc) },
27853   { FRVBF_INSN_CORCC, SEM_FN_NAME (frvbf,corcc) },
27854   { FRVBF_INSN_CXORCC, SEM_FN_NAME (frvbf,cxorcc) },
27855   { FRVBF_INSN_CSLLCC, SEM_FN_NAME (frvbf,csllcc) },
27856   { FRVBF_INSN_CSRLCC, SEM_FN_NAME (frvbf,csrlcc) },
27857   { FRVBF_INSN_CSRACC, SEM_FN_NAME (frvbf,csracc) },
27858   { FRVBF_INSN_ADDX, SEM_FN_NAME (frvbf,addx) },
27859   { FRVBF_INSN_SUBX, SEM_FN_NAME (frvbf,subx) },
27860   { FRVBF_INSN_ADDXCC, SEM_FN_NAME (frvbf,addxcc) },
27861   { FRVBF_INSN_SUBXCC, SEM_FN_NAME (frvbf,subxcc) },
27862   { FRVBF_INSN_ADDI, SEM_FN_NAME (frvbf,addi) },
27863   { FRVBF_INSN_SUBI, SEM_FN_NAME (frvbf,subi) },
27864   { FRVBF_INSN_ANDI, SEM_FN_NAME (frvbf,andi) },
27865   { FRVBF_INSN_ORI, SEM_FN_NAME (frvbf,ori) },
27866   { FRVBF_INSN_XORI, SEM_FN_NAME (frvbf,xori) },
27867   { FRVBF_INSN_SDIVI, SEM_FN_NAME (frvbf,sdivi) },
27868   { FRVBF_INSN_NSDIVI, SEM_FN_NAME (frvbf,nsdivi) },
27869   { FRVBF_INSN_UDIVI, SEM_FN_NAME (frvbf,udivi) },
27870   { FRVBF_INSN_NUDIVI, SEM_FN_NAME (frvbf,nudivi) },
27871   { FRVBF_INSN_SMULI, SEM_FN_NAME (frvbf,smuli) },
27872   { FRVBF_INSN_UMULI, SEM_FN_NAME (frvbf,umuli) },
27873   { FRVBF_INSN_SLLI, SEM_FN_NAME (frvbf,slli) },
27874   { FRVBF_INSN_SRLI, SEM_FN_NAME (frvbf,srli) },
27875   { FRVBF_INSN_SRAI, SEM_FN_NAME (frvbf,srai) },
27876   { FRVBF_INSN_SCANI, SEM_FN_NAME (frvbf,scani) },
27877   { FRVBF_INSN_ADDICC, SEM_FN_NAME (frvbf,addicc) },
27878   { FRVBF_INSN_SUBICC, SEM_FN_NAME (frvbf,subicc) },
27879   { FRVBF_INSN_ANDICC, SEM_FN_NAME (frvbf,andicc) },
27880   { FRVBF_INSN_ORICC, SEM_FN_NAME (frvbf,oricc) },
27881   { FRVBF_INSN_XORICC, SEM_FN_NAME (frvbf,xoricc) },
27882   { FRVBF_INSN_SMULICC, SEM_FN_NAME (frvbf,smulicc) },
27883   { FRVBF_INSN_UMULICC, SEM_FN_NAME (frvbf,umulicc) },
27884   { FRVBF_INSN_SLLICC, SEM_FN_NAME (frvbf,sllicc) },
27885   { FRVBF_INSN_SRLICC, SEM_FN_NAME (frvbf,srlicc) },
27886   { FRVBF_INSN_SRAICC, SEM_FN_NAME (frvbf,sraicc) },
27887   { FRVBF_INSN_ADDXI, SEM_FN_NAME (frvbf,addxi) },
27888   { FRVBF_INSN_SUBXI, SEM_FN_NAME (frvbf,subxi) },
27889   { FRVBF_INSN_ADDXICC, SEM_FN_NAME (frvbf,addxicc) },
27890   { FRVBF_INSN_SUBXICC, SEM_FN_NAME (frvbf,subxicc) },
27891   { FRVBF_INSN_CMPB, SEM_FN_NAME (frvbf,cmpb) },
27892   { FRVBF_INSN_CMPBA, SEM_FN_NAME (frvbf,cmpba) },
27893   { FRVBF_INSN_SETLO, SEM_FN_NAME (frvbf,setlo) },
27894   { FRVBF_INSN_SETHI, SEM_FN_NAME (frvbf,sethi) },
27895   { FRVBF_INSN_SETLOS, SEM_FN_NAME (frvbf,setlos) },
27896   { FRVBF_INSN_LDSB, SEM_FN_NAME (frvbf,ldsb) },
27897   { FRVBF_INSN_LDUB, SEM_FN_NAME (frvbf,ldub) },
27898   { FRVBF_INSN_LDSH, SEM_FN_NAME (frvbf,ldsh) },
27899   { FRVBF_INSN_LDUH, SEM_FN_NAME (frvbf,lduh) },
27900   { FRVBF_INSN_LD, SEM_FN_NAME (frvbf,ld) },
27901   { FRVBF_INSN_LDBF, SEM_FN_NAME (frvbf,ldbf) },
27902   { FRVBF_INSN_LDHF, SEM_FN_NAME (frvbf,ldhf) },
27903   { FRVBF_INSN_LDF, SEM_FN_NAME (frvbf,ldf) },
27904   { FRVBF_INSN_LDC, SEM_FN_NAME (frvbf,ldc) },
27905   { FRVBF_INSN_NLDSB, SEM_FN_NAME (frvbf,nldsb) },
27906   { FRVBF_INSN_NLDUB, SEM_FN_NAME (frvbf,nldub) },
27907   { FRVBF_INSN_NLDSH, SEM_FN_NAME (frvbf,nldsh) },
27908   { FRVBF_INSN_NLDUH, SEM_FN_NAME (frvbf,nlduh) },
27909   { FRVBF_INSN_NLD, SEM_FN_NAME (frvbf,nld) },
27910   { FRVBF_INSN_NLDBF, SEM_FN_NAME (frvbf,nldbf) },
27911   { FRVBF_INSN_NLDHF, SEM_FN_NAME (frvbf,nldhf) },
27912   { FRVBF_INSN_NLDF, SEM_FN_NAME (frvbf,nldf) },
27913   { FRVBF_INSN_LDD, SEM_FN_NAME (frvbf,ldd) },
27914   { FRVBF_INSN_LDDF, SEM_FN_NAME (frvbf,lddf) },
27915   { FRVBF_INSN_LDDC, SEM_FN_NAME (frvbf,lddc) },
27916   { FRVBF_INSN_NLDD, SEM_FN_NAME (frvbf,nldd) },
27917   { FRVBF_INSN_NLDDF, SEM_FN_NAME (frvbf,nlddf) },
27918   { FRVBF_INSN_LDQ, SEM_FN_NAME (frvbf,ldq) },
27919   { FRVBF_INSN_LDQF, SEM_FN_NAME (frvbf,ldqf) },
27920   { FRVBF_INSN_LDQC, SEM_FN_NAME (frvbf,ldqc) },
27921   { FRVBF_INSN_NLDQ, SEM_FN_NAME (frvbf,nldq) },
27922   { FRVBF_INSN_NLDQF, SEM_FN_NAME (frvbf,nldqf) },
27923   { FRVBF_INSN_LDSBU, SEM_FN_NAME (frvbf,ldsbu) },
27924   { FRVBF_INSN_LDUBU, SEM_FN_NAME (frvbf,ldubu) },
27925   { FRVBF_INSN_LDSHU, SEM_FN_NAME (frvbf,ldshu) },
27926   { FRVBF_INSN_LDUHU, SEM_FN_NAME (frvbf,lduhu) },
27927   { FRVBF_INSN_LDU, SEM_FN_NAME (frvbf,ldu) },
27928   { FRVBF_INSN_NLDSBU, SEM_FN_NAME (frvbf,nldsbu) },
27929   { FRVBF_INSN_NLDUBU, SEM_FN_NAME (frvbf,nldubu) },
27930   { FRVBF_INSN_NLDSHU, SEM_FN_NAME (frvbf,nldshu) },
27931   { FRVBF_INSN_NLDUHU, SEM_FN_NAME (frvbf,nlduhu) },
27932   { FRVBF_INSN_NLDU, SEM_FN_NAME (frvbf,nldu) },
27933   { FRVBF_INSN_LDBFU, SEM_FN_NAME (frvbf,ldbfu) },
27934   { FRVBF_INSN_LDHFU, SEM_FN_NAME (frvbf,ldhfu) },
27935   { FRVBF_INSN_LDFU, SEM_FN_NAME (frvbf,ldfu) },
27936   { FRVBF_INSN_LDCU, SEM_FN_NAME (frvbf,ldcu) },
27937   { FRVBF_INSN_NLDBFU, SEM_FN_NAME (frvbf,nldbfu) },
27938   { FRVBF_INSN_NLDHFU, SEM_FN_NAME (frvbf,nldhfu) },
27939   { FRVBF_INSN_NLDFU, SEM_FN_NAME (frvbf,nldfu) },
27940   { FRVBF_INSN_LDDU, SEM_FN_NAME (frvbf,lddu) },
27941   { FRVBF_INSN_NLDDU, SEM_FN_NAME (frvbf,nlddu) },
27942   { FRVBF_INSN_LDDFU, SEM_FN_NAME (frvbf,lddfu) },
27943   { FRVBF_INSN_LDDCU, SEM_FN_NAME (frvbf,lddcu) },
27944   { FRVBF_INSN_NLDDFU, SEM_FN_NAME (frvbf,nlddfu) },
27945   { FRVBF_INSN_LDQU, SEM_FN_NAME (frvbf,ldqu) },
27946   { FRVBF_INSN_NLDQU, SEM_FN_NAME (frvbf,nldqu) },
27947   { FRVBF_INSN_LDQFU, SEM_FN_NAME (frvbf,ldqfu) },
27948   { FRVBF_INSN_LDQCU, SEM_FN_NAME (frvbf,ldqcu) },
27949   { FRVBF_INSN_NLDQFU, SEM_FN_NAME (frvbf,nldqfu) },
27950   { FRVBF_INSN_LDSBI, SEM_FN_NAME (frvbf,ldsbi) },
27951   { FRVBF_INSN_LDSHI, SEM_FN_NAME (frvbf,ldshi) },
27952   { FRVBF_INSN_LDI, SEM_FN_NAME (frvbf,ldi) },
27953   { FRVBF_INSN_LDUBI, SEM_FN_NAME (frvbf,ldubi) },
27954   { FRVBF_INSN_LDUHI, SEM_FN_NAME (frvbf,lduhi) },
27955   { FRVBF_INSN_LDBFI, SEM_FN_NAME (frvbf,ldbfi) },
27956   { FRVBF_INSN_LDHFI, SEM_FN_NAME (frvbf,ldhfi) },
27957   { FRVBF_INSN_LDFI, SEM_FN_NAME (frvbf,ldfi) },
27958   { FRVBF_INSN_NLDSBI, SEM_FN_NAME (frvbf,nldsbi) },
27959   { FRVBF_INSN_NLDUBI, SEM_FN_NAME (frvbf,nldubi) },
27960   { FRVBF_INSN_NLDSHI, SEM_FN_NAME (frvbf,nldshi) },
27961   { FRVBF_INSN_NLDUHI, SEM_FN_NAME (frvbf,nlduhi) },
27962   { FRVBF_INSN_NLDI, SEM_FN_NAME (frvbf,nldi) },
27963   { FRVBF_INSN_NLDBFI, SEM_FN_NAME (frvbf,nldbfi) },
27964   { FRVBF_INSN_NLDHFI, SEM_FN_NAME (frvbf,nldhfi) },
27965   { FRVBF_INSN_NLDFI, SEM_FN_NAME (frvbf,nldfi) },
27966   { FRVBF_INSN_LDDI, SEM_FN_NAME (frvbf,lddi) },
27967   { FRVBF_INSN_LDDFI, SEM_FN_NAME (frvbf,lddfi) },
27968   { FRVBF_INSN_NLDDI, SEM_FN_NAME (frvbf,nlddi) },
27969   { FRVBF_INSN_NLDDFI, SEM_FN_NAME (frvbf,nlddfi) },
27970   { FRVBF_INSN_LDQI, SEM_FN_NAME (frvbf,ldqi) },
27971   { FRVBF_INSN_LDQFI, SEM_FN_NAME (frvbf,ldqfi) },
27972   { FRVBF_INSN_NLDQI, SEM_FN_NAME (frvbf,nldqi) },
27973   { FRVBF_INSN_NLDQFI, SEM_FN_NAME (frvbf,nldqfi) },
27974   { FRVBF_INSN_STB, SEM_FN_NAME (frvbf,stb) },
27975   { FRVBF_INSN_STH, SEM_FN_NAME (frvbf,sth) },
27976   { FRVBF_INSN_ST, SEM_FN_NAME (frvbf,st) },
27977   { FRVBF_INSN_STBF, SEM_FN_NAME (frvbf,stbf) },
27978   { FRVBF_INSN_STHF, SEM_FN_NAME (frvbf,sthf) },
27979   { FRVBF_INSN_STF, SEM_FN_NAME (frvbf,stf) },
27980   { FRVBF_INSN_STC, SEM_FN_NAME (frvbf,stc) },
27981   { FRVBF_INSN_RSTB, SEM_FN_NAME (frvbf,rstb) },
27982   { FRVBF_INSN_RSTH, SEM_FN_NAME (frvbf,rsth) },
27983   { FRVBF_INSN_RST, SEM_FN_NAME (frvbf,rst) },
27984   { FRVBF_INSN_RSTBF, SEM_FN_NAME (frvbf,rstbf) },
27985   { FRVBF_INSN_RSTHF, SEM_FN_NAME (frvbf,rsthf) },
27986   { FRVBF_INSN_RSTF, SEM_FN_NAME (frvbf,rstf) },
27987   { FRVBF_INSN_STD, SEM_FN_NAME (frvbf,std) },
27988   { FRVBF_INSN_STDF, SEM_FN_NAME (frvbf,stdf) },
27989   { FRVBF_INSN_STDC, SEM_FN_NAME (frvbf,stdc) },
27990   { FRVBF_INSN_RSTD, SEM_FN_NAME (frvbf,rstd) },
27991   { FRVBF_INSN_RSTDF, SEM_FN_NAME (frvbf,rstdf) },
27992   { FRVBF_INSN_STQ, SEM_FN_NAME (frvbf,stq) },
27993   { FRVBF_INSN_STQF, SEM_FN_NAME (frvbf,stqf) },
27994   { FRVBF_INSN_STQC, SEM_FN_NAME (frvbf,stqc) },
27995   { FRVBF_INSN_RSTQ, SEM_FN_NAME (frvbf,rstq) },
27996   { FRVBF_INSN_RSTQF, SEM_FN_NAME (frvbf,rstqf) },
27997   { FRVBF_INSN_STBU, SEM_FN_NAME (frvbf,stbu) },
27998   { FRVBF_INSN_STHU, SEM_FN_NAME (frvbf,sthu) },
27999   { FRVBF_INSN_STU, SEM_FN_NAME (frvbf,stu) },
28000   { FRVBF_INSN_STBFU, SEM_FN_NAME (frvbf,stbfu) },
28001   { FRVBF_INSN_STHFU, SEM_FN_NAME (frvbf,sthfu) },
28002   { FRVBF_INSN_STFU, SEM_FN_NAME (frvbf,stfu) },
28003   { FRVBF_INSN_STCU, SEM_FN_NAME (frvbf,stcu) },
28004   { FRVBF_INSN_STDU, SEM_FN_NAME (frvbf,stdu) },
28005   { FRVBF_INSN_STDFU, SEM_FN_NAME (frvbf,stdfu) },
28006   { FRVBF_INSN_STDCU, SEM_FN_NAME (frvbf,stdcu) },
28007   { FRVBF_INSN_STQU, SEM_FN_NAME (frvbf,stqu) },
28008   { FRVBF_INSN_STQFU, SEM_FN_NAME (frvbf,stqfu) },
28009   { FRVBF_INSN_STQCU, SEM_FN_NAME (frvbf,stqcu) },
28010   { FRVBF_INSN_CLDSB, SEM_FN_NAME (frvbf,cldsb) },
28011   { FRVBF_INSN_CLDUB, SEM_FN_NAME (frvbf,cldub) },
28012   { FRVBF_INSN_CLDSH, SEM_FN_NAME (frvbf,cldsh) },
28013   { FRVBF_INSN_CLDUH, SEM_FN_NAME (frvbf,clduh) },
28014   { FRVBF_INSN_CLD, SEM_FN_NAME (frvbf,cld) },
28015   { FRVBF_INSN_CLDBF, SEM_FN_NAME (frvbf,cldbf) },
28016   { FRVBF_INSN_CLDHF, SEM_FN_NAME (frvbf,cldhf) },
28017   { FRVBF_INSN_CLDF, SEM_FN_NAME (frvbf,cldf) },
28018   { FRVBF_INSN_CLDD, SEM_FN_NAME (frvbf,cldd) },
28019   { FRVBF_INSN_CLDDF, SEM_FN_NAME (frvbf,clddf) },
28020   { FRVBF_INSN_CLDQ, SEM_FN_NAME (frvbf,cldq) },
28021   { FRVBF_INSN_CLDSBU, SEM_FN_NAME (frvbf,cldsbu) },
28022   { FRVBF_INSN_CLDUBU, SEM_FN_NAME (frvbf,cldubu) },
28023   { FRVBF_INSN_CLDSHU, SEM_FN_NAME (frvbf,cldshu) },
28024   { FRVBF_INSN_CLDUHU, SEM_FN_NAME (frvbf,clduhu) },
28025   { FRVBF_INSN_CLDU, SEM_FN_NAME (frvbf,cldu) },
28026   { FRVBF_INSN_CLDBFU, SEM_FN_NAME (frvbf,cldbfu) },
28027   { FRVBF_INSN_CLDHFU, SEM_FN_NAME (frvbf,cldhfu) },
28028   { FRVBF_INSN_CLDFU, SEM_FN_NAME (frvbf,cldfu) },
28029   { FRVBF_INSN_CLDDU, SEM_FN_NAME (frvbf,clddu) },
28030   { FRVBF_INSN_CLDDFU, SEM_FN_NAME (frvbf,clddfu) },
28031   { FRVBF_INSN_CLDQU, SEM_FN_NAME (frvbf,cldqu) },
28032   { FRVBF_INSN_CSTB, SEM_FN_NAME (frvbf,cstb) },
28033   { FRVBF_INSN_CSTH, SEM_FN_NAME (frvbf,csth) },
28034   { FRVBF_INSN_CST, SEM_FN_NAME (frvbf,cst) },
28035   { FRVBF_INSN_CSTBF, SEM_FN_NAME (frvbf,cstbf) },
28036   { FRVBF_INSN_CSTHF, SEM_FN_NAME (frvbf,csthf) },
28037   { FRVBF_INSN_CSTF, SEM_FN_NAME (frvbf,cstf) },
28038   { FRVBF_INSN_CSTD, SEM_FN_NAME (frvbf,cstd) },
28039   { FRVBF_INSN_CSTDF, SEM_FN_NAME (frvbf,cstdf) },
28040   { FRVBF_INSN_CSTQ, SEM_FN_NAME (frvbf,cstq) },
28041   { FRVBF_INSN_CSTBU, SEM_FN_NAME (frvbf,cstbu) },
28042   { FRVBF_INSN_CSTHU, SEM_FN_NAME (frvbf,csthu) },
28043   { FRVBF_INSN_CSTU, SEM_FN_NAME (frvbf,cstu) },
28044   { FRVBF_INSN_CSTBFU, SEM_FN_NAME (frvbf,cstbfu) },
28045   { FRVBF_INSN_CSTHFU, SEM_FN_NAME (frvbf,csthfu) },
28046   { FRVBF_INSN_CSTFU, SEM_FN_NAME (frvbf,cstfu) },
28047   { FRVBF_INSN_CSTDU, SEM_FN_NAME (frvbf,cstdu) },
28048   { FRVBF_INSN_CSTDFU, SEM_FN_NAME (frvbf,cstdfu) },
28049   { FRVBF_INSN_STBI, SEM_FN_NAME (frvbf,stbi) },
28050   { FRVBF_INSN_STHI, SEM_FN_NAME (frvbf,sthi) },
28051   { FRVBF_INSN_STI, SEM_FN_NAME (frvbf,sti) },
28052   { FRVBF_INSN_STBFI, SEM_FN_NAME (frvbf,stbfi) },
28053   { FRVBF_INSN_STHFI, SEM_FN_NAME (frvbf,sthfi) },
28054   { FRVBF_INSN_STFI, SEM_FN_NAME (frvbf,stfi) },
28055   { FRVBF_INSN_STDI, SEM_FN_NAME (frvbf,stdi) },
28056   { FRVBF_INSN_STDFI, SEM_FN_NAME (frvbf,stdfi) },
28057   { FRVBF_INSN_STQI, SEM_FN_NAME (frvbf,stqi) },
28058   { FRVBF_INSN_STQFI, SEM_FN_NAME (frvbf,stqfi) },
28059   { FRVBF_INSN_SWAP, SEM_FN_NAME (frvbf,swap) },
28060   { FRVBF_INSN_SWAPI, SEM_FN_NAME (frvbf,swapi) },
28061   { FRVBF_INSN_CSWAP, SEM_FN_NAME (frvbf,cswap) },
28062   { FRVBF_INSN_MOVGF, SEM_FN_NAME (frvbf,movgf) },
28063   { FRVBF_INSN_MOVFG, SEM_FN_NAME (frvbf,movfg) },
28064   { FRVBF_INSN_MOVGFD, SEM_FN_NAME (frvbf,movgfd) },
28065   { FRVBF_INSN_MOVFGD, SEM_FN_NAME (frvbf,movfgd) },
28066   { FRVBF_INSN_MOVGFQ, SEM_FN_NAME (frvbf,movgfq) },
28067   { FRVBF_INSN_MOVFGQ, SEM_FN_NAME (frvbf,movfgq) },
28068   { FRVBF_INSN_CMOVGF, SEM_FN_NAME (frvbf,cmovgf) },
28069   { FRVBF_INSN_CMOVFG, SEM_FN_NAME (frvbf,cmovfg) },
28070   { FRVBF_INSN_CMOVGFD, SEM_FN_NAME (frvbf,cmovgfd) },
28071   { FRVBF_INSN_CMOVFGD, SEM_FN_NAME (frvbf,cmovfgd) },
28072   { FRVBF_INSN_MOVGS, SEM_FN_NAME (frvbf,movgs) },
28073   { FRVBF_INSN_MOVSG, SEM_FN_NAME (frvbf,movsg) },
28074   { FRVBF_INSN_BRA, SEM_FN_NAME (frvbf,bra) },
28075   { FRVBF_INSN_BNO, SEM_FN_NAME (frvbf,bno) },
28076   { FRVBF_INSN_BEQ, SEM_FN_NAME (frvbf,beq) },
28077   { FRVBF_INSN_BNE, SEM_FN_NAME (frvbf,bne) },
28078   { FRVBF_INSN_BLE, SEM_FN_NAME (frvbf,ble) },
28079   { FRVBF_INSN_BGT, SEM_FN_NAME (frvbf,bgt) },
28080   { FRVBF_INSN_BLT, SEM_FN_NAME (frvbf,blt) },
28081   { FRVBF_INSN_BGE, SEM_FN_NAME (frvbf,bge) },
28082   { FRVBF_INSN_BLS, SEM_FN_NAME (frvbf,bls) },
28083   { FRVBF_INSN_BHI, SEM_FN_NAME (frvbf,bhi) },
28084   { FRVBF_INSN_BC, SEM_FN_NAME (frvbf,bc) },
28085   { FRVBF_INSN_BNC, SEM_FN_NAME (frvbf,bnc) },
28086   { FRVBF_INSN_BN, SEM_FN_NAME (frvbf,bn) },
28087   { FRVBF_INSN_BP, SEM_FN_NAME (frvbf,bp) },
28088   { FRVBF_INSN_BV, SEM_FN_NAME (frvbf,bv) },
28089   { FRVBF_INSN_BNV, SEM_FN_NAME (frvbf,bnv) },
28090   { FRVBF_INSN_FBRA, SEM_FN_NAME (frvbf,fbra) },
28091   { FRVBF_INSN_FBNO, SEM_FN_NAME (frvbf,fbno) },
28092   { FRVBF_INSN_FBNE, SEM_FN_NAME (frvbf,fbne) },
28093   { FRVBF_INSN_FBEQ, SEM_FN_NAME (frvbf,fbeq) },
28094   { FRVBF_INSN_FBLG, SEM_FN_NAME (frvbf,fblg) },
28095   { FRVBF_INSN_FBUE, SEM_FN_NAME (frvbf,fbue) },
28096   { FRVBF_INSN_FBUL, SEM_FN_NAME (frvbf,fbul) },
28097   { FRVBF_INSN_FBGE, SEM_FN_NAME (frvbf,fbge) },
28098   { FRVBF_INSN_FBLT, SEM_FN_NAME (frvbf,fblt) },
28099   { FRVBF_INSN_FBUGE, SEM_FN_NAME (frvbf,fbuge) },
28100   { FRVBF_INSN_FBUG, SEM_FN_NAME (frvbf,fbug) },
28101   { FRVBF_INSN_FBLE, SEM_FN_NAME (frvbf,fble) },
28102   { FRVBF_INSN_FBGT, SEM_FN_NAME (frvbf,fbgt) },
28103   { FRVBF_INSN_FBULE, SEM_FN_NAME (frvbf,fbule) },
28104   { FRVBF_INSN_FBU, SEM_FN_NAME (frvbf,fbu) },
28105   { FRVBF_INSN_FBO, SEM_FN_NAME (frvbf,fbo) },
28106   { FRVBF_INSN_BCTRLR, SEM_FN_NAME (frvbf,bctrlr) },
28107   { FRVBF_INSN_BRALR, SEM_FN_NAME (frvbf,bralr) },
28108   { FRVBF_INSN_BNOLR, SEM_FN_NAME (frvbf,bnolr) },
28109   { FRVBF_INSN_BEQLR, SEM_FN_NAME (frvbf,beqlr) },
28110   { FRVBF_INSN_BNELR, SEM_FN_NAME (frvbf,bnelr) },
28111   { FRVBF_INSN_BLELR, SEM_FN_NAME (frvbf,blelr) },
28112   { FRVBF_INSN_BGTLR, SEM_FN_NAME (frvbf,bgtlr) },
28113   { FRVBF_INSN_BLTLR, SEM_FN_NAME (frvbf,bltlr) },
28114   { FRVBF_INSN_BGELR, SEM_FN_NAME (frvbf,bgelr) },
28115   { FRVBF_INSN_BLSLR, SEM_FN_NAME (frvbf,blslr) },
28116   { FRVBF_INSN_BHILR, SEM_FN_NAME (frvbf,bhilr) },
28117   { FRVBF_INSN_BCLR, SEM_FN_NAME (frvbf,bclr) },
28118   { FRVBF_INSN_BNCLR, SEM_FN_NAME (frvbf,bnclr) },
28119   { FRVBF_INSN_BNLR, SEM_FN_NAME (frvbf,bnlr) },
28120   { FRVBF_INSN_BPLR, SEM_FN_NAME (frvbf,bplr) },
28121   { FRVBF_INSN_BVLR, SEM_FN_NAME (frvbf,bvlr) },
28122   { FRVBF_INSN_BNVLR, SEM_FN_NAME (frvbf,bnvlr) },
28123   { FRVBF_INSN_FBRALR, SEM_FN_NAME (frvbf,fbralr) },
28124   { FRVBF_INSN_FBNOLR, SEM_FN_NAME (frvbf,fbnolr) },
28125   { FRVBF_INSN_FBEQLR, SEM_FN_NAME (frvbf,fbeqlr) },
28126   { FRVBF_INSN_FBNELR, SEM_FN_NAME (frvbf,fbnelr) },
28127   { FRVBF_INSN_FBLGLR, SEM_FN_NAME (frvbf,fblglr) },
28128   { FRVBF_INSN_FBUELR, SEM_FN_NAME (frvbf,fbuelr) },
28129   { FRVBF_INSN_FBULLR, SEM_FN_NAME (frvbf,fbullr) },
28130   { FRVBF_INSN_FBGELR, SEM_FN_NAME (frvbf,fbgelr) },
28131   { FRVBF_INSN_FBLTLR, SEM_FN_NAME (frvbf,fbltlr) },
28132   { FRVBF_INSN_FBUGELR, SEM_FN_NAME (frvbf,fbugelr) },
28133   { FRVBF_INSN_FBUGLR, SEM_FN_NAME (frvbf,fbuglr) },
28134   { FRVBF_INSN_FBLELR, SEM_FN_NAME (frvbf,fblelr) },
28135   { FRVBF_INSN_FBGTLR, SEM_FN_NAME (frvbf,fbgtlr) },
28136   { FRVBF_INSN_FBULELR, SEM_FN_NAME (frvbf,fbulelr) },
28137   { FRVBF_INSN_FBULR, SEM_FN_NAME (frvbf,fbulr) },
28138   { FRVBF_INSN_FBOLR, SEM_FN_NAME (frvbf,fbolr) },
28139   { FRVBF_INSN_BCRALR, SEM_FN_NAME (frvbf,bcralr) },
28140   { FRVBF_INSN_BCNOLR, SEM_FN_NAME (frvbf,bcnolr) },
28141   { FRVBF_INSN_BCEQLR, SEM_FN_NAME (frvbf,bceqlr) },
28142   { FRVBF_INSN_BCNELR, SEM_FN_NAME (frvbf,bcnelr) },
28143   { FRVBF_INSN_BCLELR, SEM_FN_NAME (frvbf,bclelr) },
28144   { FRVBF_INSN_BCGTLR, SEM_FN_NAME (frvbf,bcgtlr) },
28145   { FRVBF_INSN_BCLTLR, SEM_FN_NAME (frvbf,bcltlr) },
28146   { FRVBF_INSN_BCGELR, SEM_FN_NAME (frvbf,bcgelr) },
28147   { FRVBF_INSN_BCLSLR, SEM_FN_NAME (frvbf,bclslr) },
28148   { FRVBF_INSN_BCHILR, SEM_FN_NAME (frvbf,bchilr) },
28149   { FRVBF_INSN_BCCLR, SEM_FN_NAME (frvbf,bcclr) },
28150   { FRVBF_INSN_BCNCLR, SEM_FN_NAME (frvbf,bcnclr) },
28151   { FRVBF_INSN_BCNLR, SEM_FN_NAME (frvbf,bcnlr) },
28152   { FRVBF_INSN_BCPLR, SEM_FN_NAME (frvbf,bcplr) },
28153   { FRVBF_INSN_BCVLR, SEM_FN_NAME (frvbf,bcvlr) },
28154   { FRVBF_INSN_BCNVLR, SEM_FN_NAME (frvbf,bcnvlr) },
28155   { FRVBF_INSN_FCBRALR, SEM_FN_NAME (frvbf,fcbralr) },
28156   { FRVBF_INSN_FCBNOLR, SEM_FN_NAME (frvbf,fcbnolr) },
28157   { FRVBF_INSN_FCBEQLR, SEM_FN_NAME (frvbf,fcbeqlr) },
28158   { FRVBF_INSN_FCBNELR, SEM_FN_NAME (frvbf,fcbnelr) },
28159   { FRVBF_INSN_FCBLGLR, SEM_FN_NAME (frvbf,fcblglr) },
28160   { FRVBF_INSN_FCBUELR, SEM_FN_NAME (frvbf,fcbuelr) },
28161   { FRVBF_INSN_FCBULLR, SEM_FN_NAME (frvbf,fcbullr) },
28162   { FRVBF_INSN_FCBGELR, SEM_FN_NAME (frvbf,fcbgelr) },
28163   { FRVBF_INSN_FCBLTLR, SEM_FN_NAME (frvbf,fcbltlr) },
28164   { FRVBF_INSN_FCBUGELR, SEM_FN_NAME (frvbf,fcbugelr) },
28165   { FRVBF_INSN_FCBUGLR, SEM_FN_NAME (frvbf,fcbuglr) },
28166   { FRVBF_INSN_FCBLELR, SEM_FN_NAME (frvbf,fcblelr) },
28167   { FRVBF_INSN_FCBGTLR, SEM_FN_NAME (frvbf,fcbgtlr) },
28168   { FRVBF_INSN_FCBULELR, SEM_FN_NAME (frvbf,fcbulelr) },
28169   { FRVBF_INSN_FCBULR, SEM_FN_NAME (frvbf,fcbulr) },
28170   { FRVBF_INSN_FCBOLR, SEM_FN_NAME (frvbf,fcbolr) },
28171   { FRVBF_INSN_JMPL, SEM_FN_NAME (frvbf,jmpl) },
28172   { FRVBF_INSN_CALLL, SEM_FN_NAME (frvbf,calll) },
28173   { FRVBF_INSN_JMPIL, SEM_FN_NAME (frvbf,jmpil) },
28174   { FRVBF_INSN_CALLIL, SEM_FN_NAME (frvbf,callil) },
28175   { FRVBF_INSN_CALL, SEM_FN_NAME (frvbf,call) },
28176   { FRVBF_INSN_RETT, SEM_FN_NAME (frvbf,rett) },
28177   { FRVBF_INSN_REI, SEM_FN_NAME (frvbf,rei) },
28178   { FRVBF_INSN_TRA, SEM_FN_NAME (frvbf,tra) },
28179   { FRVBF_INSN_TNO, SEM_FN_NAME (frvbf,tno) },
28180   { FRVBF_INSN_TEQ, SEM_FN_NAME (frvbf,teq) },
28181   { FRVBF_INSN_TNE, SEM_FN_NAME (frvbf,tne) },
28182   { FRVBF_INSN_TLE, SEM_FN_NAME (frvbf,tle) },
28183   { FRVBF_INSN_TGT, SEM_FN_NAME (frvbf,tgt) },
28184   { FRVBF_INSN_TLT, SEM_FN_NAME (frvbf,tlt) },
28185   { FRVBF_INSN_TGE, SEM_FN_NAME (frvbf,tge) },
28186   { FRVBF_INSN_TLS, SEM_FN_NAME (frvbf,tls) },
28187   { FRVBF_INSN_THI, SEM_FN_NAME (frvbf,thi) },
28188   { FRVBF_INSN_TC, SEM_FN_NAME (frvbf,tc) },
28189   { FRVBF_INSN_TNC, SEM_FN_NAME (frvbf,tnc) },
28190   { FRVBF_INSN_TN, SEM_FN_NAME (frvbf,tn) },
28191   { FRVBF_INSN_TP, SEM_FN_NAME (frvbf,tp) },
28192   { FRVBF_INSN_TV, SEM_FN_NAME (frvbf,tv) },
28193   { FRVBF_INSN_TNV, SEM_FN_NAME (frvbf,tnv) },
28194   { FRVBF_INSN_FTRA, SEM_FN_NAME (frvbf,ftra) },
28195   { FRVBF_INSN_FTNO, SEM_FN_NAME (frvbf,ftno) },
28196   { FRVBF_INSN_FTNE, SEM_FN_NAME (frvbf,ftne) },
28197   { FRVBF_INSN_FTEQ, SEM_FN_NAME (frvbf,fteq) },
28198   { FRVBF_INSN_FTLG, SEM_FN_NAME (frvbf,ftlg) },
28199   { FRVBF_INSN_FTUE, SEM_FN_NAME (frvbf,ftue) },
28200   { FRVBF_INSN_FTUL, SEM_FN_NAME (frvbf,ftul) },
28201   { FRVBF_INSN_FTGE, SEM_FN_NAME (frvbf,ftge) },
28202   { FRVBF_INSN_FTLT, SEM_FN_NAME (frvbf,ftlt) },
28203   { FRVBF_INSN_FTUGE, SEM_FN_NAME (frvbf,ftuge) },
28204   { FRVBF_INSN_FTUG, SEM_FN_NAME (frvbf,ftug) },
28205   { FRVBF_INSN_FTLE, SEM_FN_NAME (frvbf,ftle) },
28206   { FRVBF_INSN_FTGT, SEM_FN_NAME (frvbf,ftgt) },
28207   { FRVBF_INSN_FTULE, SEM_FN_NAME (frvbf,ftule) },
28208   { FRVBF_INSN_FTU, SEM_FN_NAME (frvbf,ftu) },
28209   { FRVBF_INSN_FTO, SEM_FN_NAME (frvbf,fto) },
28210   { FRVBF_INSN_TIRA, SEM_FN_NAME (frvbf,tira) },
28211   { FRVBF_INSN_TINO, SEM_FN_NAME (frvbf,tino) },
28212   { FRVBF_INSN_TIEQ, SEM_FN_NAME (frvbf,tieq) },
28213   { FRVBF_INSN_TINE, SEM_FN_NAME (frvbf,tine) },
28214   { FRVBF_INSN_TILE, SEM_FN_NAME (frvbf,tile) },
28215   { FRVBF_INSN_TIGT, SEM_FN_NAME (frvbf,tigt) },
28216   { FRVBF_INSN_TILT, SEM_FN_NAME (frvbf,tilt) },
28217   { FRVBF_INSN_TIGE, SEM_FN_NAME (frvbf,tige) },
28218   { FRVBF_INSN_TILS, SEM_FN_NAME (frvbf,tils) },
28219   { FRVBF_INSN_TIHI, SEM_FN_NAME (frvbf,tihi) },
28220   { FRVBF_INSN_TIC, SEM_FN_NAME (frvbf,tic) },
28221   { FRVBF_INSN_TINC, SEM_FN_NAME (frvbf,tinc) },
28222   { FRVBF_INSN_TIN, SEM_FN_NAME (frvbf,tin) },
28223   { FRVBF_INSN_TIP, SEM_FN_NAME (frvbf,tip) },
28224   { FRVBF_INSN_TIV, SEM_FN_NAME (frvbf,tiv) },
28225   { FRVBF_INSN_TINV, SEM_FN_NAME (frvbf,tinv) },
28226   { FRVBF_INSN_FTIRA, SEM_FN_NAME (frvbf,ftira) },
28227   { FRVBF_INSN_FTINO, SEM_FN_NAME (frvbf,ftino) },
28228   { FRVBF_INSN_FTINE, SEM_FN_NAME (frvbf,ftine) },
28229   { FRVBF_INSN_FTIEQ, SEM_FN_NAME (frvbf,ftieq) },
28230   { FRVBF_INSN_FTILG, SEM_FN_NAME (frvbf,ftilg) },
28231   { FRVBF_INSN_FTIUE, SEM_FN_NAME (frvbf,ftiue) },
28232   { FRVBF_INSN_FTIUL, SEM_FN_NAME (frvbf,ftiul) },
28233   { FRVBF_INSN_FTIGE, SEM_FN_NAME (frvbf,ftige) },
28234   { FRVBF_INSN_FTILT, SEM_FN_NAME (frvbf,ftilt) },
28235   { FRVBF_INSN_FTIUGE, SEM_FN_NAME (frvbf,ftiuge) },
28236   { FRVBF_INSN_FTIUG, SEM_FN_NAME (frvbf,ftiug) },
28237   { FRVBF_INSN_FTILE, SEM_FN_NAME (frvbf,ftile) },
28238   { FRVBF_INSN_FTIGT, SEM_FN_NAME (frvbf,ftigt) },
28239   { FRVBF_INSN_FTIULE, SEM_FN_NAME (frvbf,ftiule) },
28240   { FRVBF_INSN_FTIU, SEM_FN_NAME (frvbf,ftiu) },
28241   { FRVBF_INSN_FTIO, SEM_FN_NAME (frvbf,ftio) },
28242   { FRVBF_INSN_BREAK, SEM_FN_NAME (frvbf,break) },
28243   { FRVBF_INSN_MTRAP, SEM_FN_NAME (frvbf,mtrap) },
28244   { FRVBF_INSN_ANDCR, SEM_FN_NAME (frvbf,andcr) },
28245   { FRVBF_INSN_ORCR, SEM_FN_NAME (frvbf,orcr) },
28246   { FRVBF_INSN_XORCR, SEM_FN_NAME (frvbf,xorcr) },
28247   { FRVBF_INSN_NANDCR, SEM_FN_NAME (frvbf,nandcr) },
28248   { FRVBF_INSN_NORCR, SEM_FN_NAME (frvbf,norcr) },
28249   { FRVBF_INSN_ANDNCR, SEM_FN_NAME (frvbf,andncr) },
28250   { FRVBF_INSN_ORNCR, SEM_FN_NAME (frvbf,orncr) },
28251   { FRVBF_INSN_NANDNCR, SEM_FN_NAME (frvbf,nandncr) },
28252   { FRVBF_INSN_NORNCR, SEM_FN_NAME (frvbf,norncr) },
28253   { FRVBF_INSN_NOTCR, SEM_FN_NAME (frvbf,notcr) },
28254   { FRVBF_INSN_CKRA, SEM_FN_NAME (frvbf,ckra) },
28255   { FRVBF_INSN_CKNO, SEM_FN_NAME (frvbf,ckno) },
28256   { FRVBF_INSN_CKEQ, SEM_FN_NAME (frvbf,ckeq) },
28257   { FRVBF_INSN_CKNE, SEM_FN_NAME (frvbf,ckne) },
28258   { FRVBF_INSN_CKLE, SEM_FN_NAME (frvbf,ckle) },
28259   { FRVBF_INSN_CKGT, SEM_FN_NAME (frvbf,ckgt) },
28260   { FRVBF_INSN_CKLT, SEM_FN_NAME (frvbf,cklt) },
28261   { FRVBF_INSN_CKGE, SEM_FN_NAME (frvbf,ckge) },
28262   { FRVBF_INSN_CKLS, SEM_FN_NAME (frvbf,ckls) },
28263   { FRVBF_INSN_CKHI, SEM_FN_NAME (frvbf,ckhi) },
28264   { FRVBF_INSN_CKC, SEM_FN_NAME (frvbf,ckc) },
28265   { FRVBF_INSN_CKNC, SEM_FN_NAME (frvbf,cknc) },
28266   { FRVBF_INSN_CKN, SEM_FN_NAME (frvbf,ckn) },
28267   { FRVBF_INSN_CKP, SEM_FN_NAME (frvbf,ckp) },
28268   { FRVBF_INSN_CKV, SEM_FN_NAME (frvbf,ckv) },
28269   { FRVBF_INSN_CKNV, SEM_FN_NAME (frvbf,cknv) },
28270   { FRVBF_INSN_FCKRA, SEM_FN_NAME (frvbf,fckra) },
28271   { FRVBF_INSN_FCKNO, SEM_FN_NAME (frvbf,fckno) },
28272   { FRVBF_INSN_FCKNE, SEM_FN_NAME (frvbf,fckne) },
28273   { FRVBF_INSN_FCKEQ, SEM_FN_NAME (frvbf,fckeq) },
28274   { FRVBF_INSN_FCKLG, SEM_FN_NAME (frvbf,fcklg) },
28275   { FRVBF_INSN_FCKUE, SEM_FN_NAME (frvbf,fckue) },
28276   { FRVBF_INSN_FCKUL, SEM_FN_NAME (frvbf,fckul) },
28277   { FRVBF_INSN_FCKGE, SEM_FN_NAME (frvbf,fckge) },
28278   { FRVBF_INSN_FCKLT, SEM_FN_NAME (frvbf,fcklt) },
28279   { FRVBF_INSN_FCKUGE, SEM_FN_NAME (frvbf,fckuge) },
28280   { FRVBF_INSN_FCKUG, SEM_FN_NAME (frvbf,fckug) },
28281   { FRVBF_INSN_FCKLE, SEM_FN_NAME (frvbf,fckle) },
28282   { FRVBF_INSN_FCKGT, SEM_FN_NAME (frvbf,fckgt) },
28283   { FRVBF_INSN_FCKULE, SEM_FN_NAME (frvbf,fckule) },
28284   { FRVBF_INSN_FCKU, SEM_FN_NAME (frvbf,fcku) },
28285   { FRVBF_INSN_FCKO, SEM_FN_NAME (frvbf,fcko) },
28286   { FRVBF_INSN_CCKRA, SEM_FN_NAME (frvbf,cckra) },
28287   { FRVBF_INSN_CCKNO, SEM_FN_NAME (frvbf,cckno) },
28288   { FRVBF_INSN_CCKEQ, SEM_FN_NAME (frvbf,cckeq) },
28289   { FRVBF_INSN_CCKNE, SEM_FN_NAME (frvbf,cckne) },
28290   { FRVBF_INSN_CCKLE, SEM_FN_NAME (frvbf,cckle) },
28291   { FRVBF_INSN_CCKGT, SEM_FN_NAME (frvbf,cckgt) },
28292   { FRVBF_INSN_CCKLT, SEM_FN_NAME (frvbf,ccklt) },
28293   { FRVBF_INSN_CCKGE, SEM_FN_NAME (frvbf,cckge) },
28294   { FRVBF_INSN_CCKLS, SEM_FN_NAME (frvbf,cckls) },
28295   { FRVBF_INSN_CCKHI, SEM_FN_NAME (frvbf,cckhi) },
28296   { FRVBF_INSN_CCKC, SEM_FN_NAME (frvbf,cckc) },
28297   { FRVBF_INSN_CCKNC, SEM_FN_NAME (frvbf,ccknc) },
28298   { FRVBF_INSN_CCKN, SEM_FN_NAME (frvbf,cckn) },
28299   { FRVBF_INSN_CCKP, SEM_FN_NAME (frvbf,cckp) },
28300   { FRVBF_INSN_CCKV, SEM_FN_NAME (frvbf,cckv) },
28301   { FRVBF_INSN_CCKNV, SEM_FN_NAME (frvbf,ccknv) },
28302   { FRVBF_INSN_CFCKRA, SEM_FN_NAME (frvbf,cfckra) },
28303   { FRVBF_INSN_CFCKNO, SEM_FN_NAME (frvbf,cfckno) },
28304   { FRVBF_INSN_CFCKNE, SEM_FN_NAME (frvbf,cfckne) },
28305   { FRVBF_INSN_CFCKEQ, SEM_FN_NAME (frvbf,cfckeq) },
28306   { FRVBF_INSN_CFCKLG, SEM_FN_NAME (frvbf,cfcklg) },
28307   { FRVBF_INSN_CFCKUE, SEM_FN_NAME (frvbf,cfckue) },
28308   { FRVBF_INSN_CFCKUL, SEM_FN_NAME (frvbf,cfckul) },
28309   { FRVBF_INSN_CFCKGE, SEM_FN_NAME (frvbf,cfckge) },
28310   { FRVBF_INSN_CFCKLT, SEM_FN_NAME (frvbf,cfcklt) },
28311   { FRVBF_INSN_CFCKUGE, SEM_FN_NAME (frvbf,cfckuge) },
28312   { FRVBF_INSN_CFCKUG, SEM_FN_NAME (frvbf,cfckug) },
28313   { FRVBF_INSN_CFCKLE, SEM_FN_NAME (frvbf,cfckle) },
28314   { FRVBF_INSN_CFCKGT, SEM_FN_NAME (frvbf,cfckgt) },
28315   { FRVBF_INSN_CFCKULE, SEM_FN_NAME (frvbf,cfckule) },
28316   { FRVBF_INSN_CFCKU, SEM_FN_NAME (frvbf,cfcku) },
28317   { FRVBF_INSN_CFCKO, SEM_FN_NAME (frvbf,cfcko) },
28318   { FRVBF_INSN_CJMPL, SEM_FN_NAME (frvbf,cjmpl) },
28319   { FRVBF_INSN_CCALLL, SEM_FN_NAME (frvbf,ccalll) },
28320   { FRVBF_INSN_ICI, SEM_FN_NAME (frvbf,ici) },
28321   { FRVBF_INSN_DCI, SEM_FN_NAME (frvbf,dci) },
28322   { FRVBF_INSN_ICEI, SEM_FN_NAME (frvbf,icei) },
28323   { FRVBF_INSN_DCEI, SEM_FN_NAME (frvbf,dcei) },
28324   { FRVBF_INSN_DCF, SEM_FN_NAME (frvbf,dcf) },
28325   { FRVBF_INSN_DCEF, SEM_FN_NAME (frvbf,dcef) },
28326   { FRVBF_INSN_WITLB, SEM_FN_NAME (frvbf,witlb) },
28327   { FRVBF_INSN_WDTLB, SEM_FN_NAME (frvbf,wdtlb) },
28328   { FRVBF_INSN_ITLBI, SEM_FN_NAME (frvbf,itlbi) },
28329   { FRVBF_INSN_DTLBI, SEM_FN_NAME (frvbf,dtlbi) },
28330   { FRVBF_INSN_ICPL, SEM_FN_NAME (frvbf,icpl) },
28331   { FRVBF_INSN_DCPL, SEM_FN_NAME (frvbf,dcpl) },
28332   { FRVBF_INSN_ICUL, SEM_FN_NAME (frvbf,icul) },
28333   { FRVBF_INSN_DCUL, SEM_FN_NAME (frvbf,dcul) },
28334   { FRVBF_INSN_BAR, SEM_FN_NAME (frvbf,bar) },
28335   { FRVBF_INSN_MEMBAR, SEM_FN_NAME (frvbf,membar) },
28336   { FRVBF_INSN_COP1, SEM_FN_NAME (frvbf,cop1) },
28337   { FRVBF_INSN_COP2, SEM_FN_NAME (frvbf,cop2) },
28338   { FRVBF_INSN_CLRGR, SEM_FN_NAME (frvbf,clrgr) },
28339   { FRVBF_INSN_CLRFR, SEM_FN_NAME (frvbf,clrfr) },
28340   { FRVBF_INSN_CLRGA, SEM_FN_NAME (frvbf,clrga) },
28341   { FRVBF_INSN_CLRFA, SEM_FN_NAME (frvbf,clrfa) },
28342   { FRVBF_INSN_COMMITGR, SEM_FN_NAME (frvbf,commitgr) },
28343   { FRVBF_INSN_COMMITFR, SEM_FN_NAME (frvbf,commitfr) },
28344   { FRVBF_INSN_COMMITGA, SEM_FN_NAME (frvbf,commitga) },
28345   { FRVBF_INSN_COMMITFA, SEM_FN_NAME (frvbf,commitfa) },
28346   { FRVBF_INSN_FITOS, SEM_FN_NAME (frvbf,fitos) },
28347   { FRVBF_INSN_FSTOI, SEM_FN_NAME (frvbf,fstoi) },
28348   { FRVBF_INSN_FITOD, SEM_FN_NAME (frvbf,fitod) },
28349   { FRVBF_INSN_FDTOI, SEM_FN_NAME (frvbf,fdtoi) },
28350   { FRVBF_INSN_FDITOS, SEM_FN_NAME (frvbf,fditos) },
28351   { FRVBF_INSN_FDSTOI, SEM_FN_NAME (frvbf,fdstoi) },
28352   { FRVBF_INSN_NFDITOS, SEM_FN_NAME (frvbf,nfditos) },
28353   { FRVBF_INSN_NFDSTOI, SEM_FN_NAME (frvbf,nfdstoi) },
28354   { FRVBF_INSN_CFITOS, SEM_FN_NAME (frvbf,cfitos) },
28355   { FRVBF_INSN_CFSTOI, SEM_FN_NAME (frvbf,cfstoi) },
28356   { FRVBF_INSN_NFITOS, SEM_FN_NAME (frvbf,nfitos) },
28357   { FRVBF_INSN_NFSTOI, SEM_FN_NAME (frvbf,nfstoi) },
28358   { FRVBF_INSN_FMOVS, SEM_FN_NAME (frvbf,fmovs) },
28359   { FRVBF_INSN_FMOVD, SEM_FN_NAME (frvbf,fmovd) },
28360   { FRVBF_INSN_FDMOVS, SEM_FN_NAME (frvbf,fdmovs) },
28361   { FRVBF_INSN_CFMOVS, SEM_FN_NAME (frvbf,cfmovs) },
28362   { FRVBF_INSN_FNEGS, SEM_FN_NAME (frvbf,fnegs) },
28363   { FRVBF_INSN_FNEGD, SEM_FN_NAME (frvbf,fnegd) },
28364   { FRVBF_INSN_FDNEGS, SEM_FN_NAME (frvbf,fdnegs) },
28365   { FRVBF_INSN_CFNEGS, SEM_FN_NAME (frvbf,cfnegs) },
28366   { FRVBF_INSN_FABSS, SEM_FN_NAME (frvbf,fabss) },
28367   { FRVBF_INSN_FABSD, SEM_FN_NAME (frvbf,fabsd) },
28368   { FRVBF_INSN_FDABSS, SEM_FN_NAME (frvbf,fdabss) },
28369   { FRVBF_INSN_CFABSS, SEM_FN_NAME (frvbf,cfabss) },
28370   { FRVBF_INSN_FSQRTS, SEM_FN_NAME (frvbf,fsqrts) },
28371   { FRVBF_INSN_FDSQRTS, SEM_FN_NAME (frvbf,fdsqrts) },
28372   { FRVBF_INSN_NFDSQRTS, SEM_FN_NAME (frvbf,nfdsqrts) },
28373   { FRVBF_INSN_FSQRTD, SEM_FN_NAME (frvbf,fsqrtd) },
28374   { FRVBF_INSN_CFSQRTS, SEM_FN_NAME (frvbf,cfsqrts) },
28375   { FRVBF_INSN_NFSQRTS, SEM_FN_NAME (frvbf,nfsqrts) },
28376   { FRVBF_INSN_FADDS, SEM_FN_NAME (frvbf,fadds) },
28377   { FRVBF_INSN_FSUBS, SEM_FN_NAME (frvbf,fsubs) },
28378   { FRVBF_INSN_FMULS, SEM_FN_NAME (frvbf,fmuls) },
28379   { FRVBF_INSN_FDIVS, SEM_FN_NAME (frvbf,fdivs) },
28380   { FRVBF_INSN_FADDD, SEM_FN_NAME (frvbf,faddd) },
28381   { FRVBF_INSN_FSUBD, SEM_FN_NAME (frvbf,fsubd) },
28382   { FRVBF_INSN_FMULD, SEM_FN_NAME (frvbf,fmuld) },
28383   { FRVBF_INSN_FDIVD, SEM_FN_NAME (frvbf,fdivd) },
28384   { FRVBF_INSN_CFADDS, SEM_FN_NAME (frvbf,cfadds) },
28385   { FRVBF_INSN_CFSUBS, SEM_FN_NAME (frvbf,cfsubs) },
28386   { FRVBF_INSN_CFMULS, SEM_FN_NAME (frvbf,cfmuls) },
28387   { FRVBF_INSN_CFDIVS, SEM_FN_NAME (frvbf,cfdivs) },
28388   { FRVBF_INSN_NFADDS, SEM_FN_NAME (frvbf,nfadds) },
28389   { FRVBF_INSN_NFSUBS, SEM_FN_NAME (frvbf,nfsubs) },
28390   { FRVBF_INSN_NFMULS, SEM_FN_NAME (frvbf,nfmuls) },
28391   { FRVBF_INSN_NFDIVS, SEM_FN_NAME (frvbf,nfdivs) },
28392   { FRVBF_INSN_FCMPS, SEM_FN_NAME (frvbf,fcmps) },
28393   { FRVBF_INSN_FCMPD, SEM_FN_NAME (frvbf,fcmpd) },
28394   { FRVBF_INSN_CFCMPS, SEM_FN_NAME (frvbf,cfcmps) },
28395   { FRVBF_INSN_FDCMPS, SEM_FN_NAME (frvbf,fdcmps) },
28396   { FRVBF_INSN_FMADDS, SEM_FN_NAME (frvbf,fmadds) },
28397   { FRVBF_INSN_FMSUBS, SEM_FN_NAME (frvbf,fmsubs) },
28398   { FRVBF_INSN_FMADDD, SEM_FN_NAME (frvbf,fmaddd) },
28399   { FRVBF_INSN_FMSUBD, SEM_FN_NAME (frvbf,fmsubd) },
28400   { FRVBF_INSN_FDMADDS, SEM_FN_NAME (frvbf,fdmadds) },
28401   { FRVBF_INSN_NFDMADDS, SEM_FN_NAME (frvbf,nfdmadds) },
28402   { FRVBF_INSN_CFMADDS, SEM_FN_NAME (frvbf,cfmadds) },
28403   { FRVBF_INSN_CFMSUBS, SEM_FN_NAME (frvbf,cfmsubs) },
28404   { FRVBF_INSN_NFMADDS, SEM_FN_NAME (frvbf,nfmadds) },
28405   { FRVBF_INSN_NFMSUBS, SEM_FN_NAME (frvbf,nfmsubs) },
28406   { FRVBF_INSN_FMAS, SEM_FN_NAME (frvbf,fmas) },
28407   { FRVBF_INSN_FMSS, SEM_FN_NAME (frvbf,fmss) },
28408   { FRVBF_INSN_FDMAS, SEM_FN_NAME (frvbf,fdmas) },
28409   { FRVBF_INSN_FDMSS, SEM_FN_NAME (frvbf,fdmss) },
28410   { FRVBF_INSN_NFDMAS, SEM_FN_NAME (frvbf,nfdmas) },
28411   { FRVBF_INSN_NFDMSS, SEM_FN_NAME (frvbf,nfdmss) },
28412   { FRVBF_INSN_CFMAS, SEM_FN_NAME (frvbf,cfmas) },
28413   { FRVBF_INSN_CFMSS, SEM_FN_NAME (frvbf,cfmss) },
28414   { FRVBF_INSN_FMAD, SEM_FN_NAME (frvbf,fmad) },
28415   { FRVBF_INSN_FMSD, SEM_FN_NAME (frvbf,fmsd) },
28416   { FRVBF_INSN_NFMAS, SEM_FN_NAME (frvbf,nfmas) },
28417   { FRVBF_INSN_NFMSS, SEM_FN_NAME (frvbf,nfmss) },
28418   { FRVBF_INSN_FDADDS, SEM_FN_NAME (frvbf,fdadds) },
28419   { FRVBF_INSN_FDSUBS, SEM_FN_NAME (frvbf,fdsubs) },
28420   { FRVBF_INSN_FDMULS, SEM_FN_NAME (frvbf,fdmuls) },
28421   { FRVBF_INSN_FDDIVS, SEM_FN_NAME (frvbf,fddivs) },
28422   { FRVBF_INSN_FDSADS, SEM_FN_NAME (frvbf,fdsads) },
28423   { FRVBF_INSN_FDMULCS, SEM_FN_NAME (frvbf,fdmulcs) },
28424   { FRVBF_INSN_NFDMULCS, SEM_FN_NAME (frvbf,nfdmulcs) },
28425   { FRVBF_INSN_NFDADDS, SEM_FN_NAME (frvbf,nfdadds) },
28426   { FRVBF_INSN_NFDSUBS, SEM_FN_NAME (frvbf,nfdsubs) },
28427   { FRVBF_INSN_NFDMULS, SEM_FN_NAME (frvbf,nfdmuls) },
28428   { FRVBF_INSN_NFDDIVS, SEM_FN_NAME (frvbf,nfddivs) },
28429   { FRVBF_INSN_NFDSADS, SEM_FN_NAME (frvbf,nfdsads) },
28430   { FRVBF_INSN_NFDCMPS, SEM_FN_NAME (frvbf,nfdcmps) },
28431   { FRVBF_INSN_MHSETLOS, SEM_FN_NAME (frvbf,mhsetlos) },
28432   { FRVBF_INSN_MHSETHIS, SEM_FN_NAME (frvbf,mhsethis) },
28433   { FRVBF_INSN_MHDSETS, SEM_FN_NAME (frvbf,mhdsets) },
28434   { FRVBF_INSN_MHSETLOH, SEM_FN_NAME (frvbf,mhsetloh) },
28435   { FRVBF_INSN_MHSETHIH, SEM_FN_NAME (frvbf,mhsethih) },
28436   { FRVBF_INSN_MHDSETH, SEM_FN_NAME (frvbf,mhdseth) },
28437   { FRVBF_INSN_MAND, SEM_FN_NAME (frvbf,mand) },
28438   { FRVBF_INSN_MOR, SEM_FN_NAME (frvbf,mor) },
28439   { FRVBF_INSN_MXOR, SEM_FN_NAME (frvbf,mxor) },
28440   { FRVBF_INSN_CMAND, SEM_FN_NAME (frvbf,cmand) },
28441   { FRVBF_INSN_CMOR, SEM_FN_NAME (frvbf,cmor) },
28442   { FRVBF_INSN_CMXOR, SEM_FN_NAME (frvbf,cmxor) },
28443   { FRVBF_INSN_MNOT, SEM_FN_NAME (frvbf,mnot) },
28444   { FRVBF_INSN_CMNOT, SEM_FN_NAME (frvbf,cmnot) },
28445   { FRVBF_INSN_MROTLI, SEM_FN_NAME (frvbf,mrotli) },
28446   { FRVBF_INSN_MROTRI, SEM_FN_NAME (frvbf,mrotri) },
28447   { FRVBF_INSN_MWCUT, SEM_FN_NAME (frvbf,mwcut) },
28448   { FRVBF_INSN_MWCUTI, SEM_FN_NAME (frvbf,mwcuti) },
28449   { FRVBF_INSN_MCUT, SEM_FN_NAME (frvbf,mcut) },
28450   { FRVBF_INSN_MCUTI, SEM_FN_NAME (frvbf,mcuti) },
28451   { FRVBF_INSN_MCUTSS, SEM_FN_NAME (frvbf,mcutss) },
28452   { FRVBF_INSN_MCUTSSI, SEM_FN_NAME (frvbf,mcutssi) },
28453   { FRVBF_INSN_MDCUTSSI, SEM_FN_NAME (frvbf,mdcutssi) },
28454   { FRVBF_INSN_MAVEH, SEM_FN_NAME (frvbf,maveh) },
28455   { FRVBF_INSN_MSLLHI, SEM_FN_NAME (frvbf,msllhi) },
28456   { FRVBF_INSN_MSRLHI, SEM_FN_NAME (frvbf,msrlhi) },
28457   { FRVBF_INSN_MSRAHI, SEM_FN_NAME (frvbf,msrahi) },
28458   { FRVBF_INSN_MDROTLI, SEM_FN_NAME (frvbf,mdrotli) },
28459   { FRVBF_INSN_MCPLHI, SEM_FN_NAME (frvbf,mcplhi) },
28460   { FRVBF_INSN_MCPLI, SEM_FN_NAME (frvbf,mcpli) },
28461   { FRVBF_INSN_MSATHS, SEM_FN_NAME (frvbf,msaths) },
28462   { FRVBF_INSN_MQSATHS, SEM_FN_NAME (frvbf,mqsaths) },
28463   { FRVBF_INSN_MSATHU, SEM_FN_NAME (frvbf,msathu) },
28464   { FRVBF_INSN_MCMPSH, SEM_FN_NAME (frvbf,mcmpsh) },
28465   { FRVBF_INSN_MCMPUH, SEM_FN_NAME (frvbf,mcmpuh) },
28466   { FRVBF_INSN_MABSHS, SEM_FN_NAME (frvbf,mabshs) },
28467   { FRVBF_INSN_MADDHSS, SEM_FN_NAME (frvbf,maddhss) },
28468   { FRVBF_INSN_MADDHUS, SEM_FN_NAME (frvbf,maddhus) },
28469   { FRVBF_INSN_MSUBHSS, SEM_FN_NAME (frvbf,msubhss) },
28470   { FRVBF_INSN_MSUBHUS, SEM_FN_NAME (frvbf,msubhus) },
28471   { FRVBF_INSN_CMADDHSS, SEM_FN_NAME (frvbf,cmaddhss) },
28472   { FRVBF_INSN_CMADDHUS, SEM_FN_NAME (frvbf,cmaddhus) },
28473   { FRVBF_INSN_CMSUBHSS, SEM_FN_NAME (frvbf,cmsubhss) },
28474   { FRVBF_INSN_CMSUBHUS, SEM_FN_NAME (frvbf,cmsubhus) },
28475   { FRVBF_INSN_MQADDHSS, SEM_FN_NAME (frvbf,mqaddhss) },
28476   { FRVBF_INSN_MQADDHUS, SEM_FN_NAME (frvbf,mqaddhus) },
28477   { FRVBF_INSN_MQSUBHSS, SEM_FN_NAME (frvbf,mqsubhss) },
28478   { FRVBF_INSN_MQSUBHUS, SEM_FN_NAME (frvbf,mqsubhus) },
28479   { FRVBF_INSN_CMQADDHSS, SEM_FN_NAME (frvbf,cmqaddhss) },
28480   { FRVBF_INSN_CMQADDHUS, SEM_FN_NAME (frvbf,cmqaddhus) },
28481   { FRVBF_INSN_CMQSUBHSS, SEM_FN_NAME (frvbf,cmqsubhss) },
28482   { FRVBF_INSN_CMQSUBHUS, SEM_FN_NAME (frvbf,cmqsubhus) },
28483   { FRVBF_INSN_MADDACCS, SEM_FN_NAME (frvbf,maddaccs) },
28484   { FRVBF_INSN_MSUBACCS, SEM_FN_NAME (frvbf,msubaccs) },
28485   { FRVBF_INSN_MDADDACCS, SEM_FN_NAME (frvbf,mdaddaccs) },
28486   { FRVBF_INSN_MDSUBACCS, SEM_FN_NAME (frvbf,mdsubaccs) },
28487   { FRVBF_INSN_MASACCS, SEM_FN_NAME (frvbf,masaccs) },
28488   { FRVBF_INSN_MDASACCS, SEM_FN_NAME (frvbf,mdasaccs) },
28489   { FRVBF_INSN_MMULHS, SEM_FN_NAME (frvbf,mmulhs) },
28490   { FRVBF_INSN_MMULHU, SEM_FN_NAME (frvbf,mmulhu) },
28491   { FRVBF_INSN_MMULXHS, SEM_FN_NAME (frvbf,mmulxhs) },
28492   { FRVBF_INSN_MMULXHU, SEM_FN_NAME (frvbf,mmulxhu) },
28493   { FRVBF_INSN_CMMULHS, SEM_FN_NAME (frvbf,cmmulhs) },
28494   { FRVBF_INSN_CMMULHU, SEM_FN_NAME (frvbf,cmmulhu) },
28495   { FRVBF_INSN_MQMULHS, SEM_FN_NAME (frvbf,mqmulhs) },
28496   { FRVBF_INSN_MQMULHU, SEM_FN_NAME (frvbf,mqmulhu) },
28497   { FRVBF_INSN_MQMULXHS, SEM_FN_NAME (frvbf,mqmulxhs) },
28498   { FRVBF_INSN_MQMULXHU, SEM_FN_NAME (frvbf,mqmulxhu) },
28499   { FRVBF_INSN_CMQMULHS, SEM_FN_NAME (frvbf,cmqmulhs) },
28500   { FRVBF_INSN_CMQMULHU, SEM_FN_NAME (frvbf,cmqmulhu) },
28501   { FRVBF_INSN_MMACHS, SEM_FN_NAME (frvbf,mmachs) },
28502   { FRVBF_INSN_MMACHU, SEM_FN_NAME (frvbf,mmachu) },
28503   { FRVBF_INSN_MMRDHS, SEM_FN_NAME (frvbf,mmrdhs) },
28504   { FRVBF_INSN_MMRDHU, SEM_FN_NAME (frvbf,mmrdhu) },
28505   { FRVBF_INSN_CMMACHS, SEM_FN_NAME (frvbf,cmmachs) },
28506   { FRVBF_INSN_CMMACHU, SEM_FN_NAME (frvbf,cmmachu) },
28507   { FRVBF_INSN_MQMACHS, SEM_FN_NAME (frvbf,mqmachs) },
28508   { FRVBF_INSN_MQMACHU, SEM_FN_NAME (frvbf,mqmachu) },
28509   { FRVBF_INSN_CMQMACHS, SEM_FN_NAME (frvbf,cmqmachs) },
28510   { FRVBF_INSN_CMQMACHU, SEM_FN_NAME (frvbf,cmqmachu) },
28511   { FRVBF_INSN_MQXMACHS, SEM_FN_NAME (frvbf,mqxmachs) },
28512   { FRVBF_INSN_MQXMACXHS, SEM_FN_NAME (frvbf,mqxmacxhs) },
28513   { FRVBF_INSN_MQMACXHS, SEM_FN_NAME (frvbf,mqmacxhs) },
28514   { FRVBF_INSN_MCPXRS, SEM_FN_NAME (frvbf,mcpxrs) },
28515   { FRVBF_INSN_MCPXRU, SEM_FN_NAME (frvbf,mcpxru) },
28516   { FRVBF_INSN_MCPXIS, SEM_FN_NAME (frvbf,mcpxis) },
28517   { FRVBF_INSN_MCPXIU, SEM_FN_NAME (frvbf,mcpxiu) },
28518   { FRVBF_INSN_CMCPXRS, SEM_FN_NAME (frvbf,cmcpxrs) },
28519   { FRVBF_INSN_CMCPXRU, SEM_FN_NAME (frvbf,cmcpxru) },
28520   { FRVBF_INSN_CMCPXIS, SEM_FN_NAME (frvbf,cmcpxis) },
28521   { FRVBF_INSN_CMCPXIU, SEM_FN_NAME (frvbf,cmcpxiu) },
28522   { FRVBF_INSN_MQCPXRS, SEM_FN_NAME (frvbf,mqcpxrs) },
28523   { FRVBF_INSN_MQCPXRU, SEM_FN_NAME (frvbf,mqcpxru) },
28524   { FRVBF_INSN_MQCPXIS, SEM_FN_NAME (frvbf,mqcpxis) },
28525   { FRVBF_INSN_MQCPXIU, SEM_FN_NAME (frvbf,mqcpxiu) },
28526   { FRVBF_INSN_MEXPDHW, SEM_FN_NAME (frvbf,mexpdhw) },
28527   { FRVBF_INSN_CMEXPDHW, SEM_FN_NAME (frvbf,cmexpdhw) },
28528   { FRVBF_INSN_MEXPDHD, SEM_FN_NAME (frvbf,mexpdhd) },
28529   { FRVBF_INSN_CMEXPDHD, SEM_FN_NAME (frvbf,cmexpdhd) },
28530   { FRVBF_INSN_MPACKH, SEM_FN_NAME (frvbf,mpackh) },
28531   { FRVBF_INSN_MDPACKH, SEM_FN_NAME (frvbf,mdpackh) },
28532   { FRVBF_INSN_MUNPACKH, SEM_FN_NAME (frvbf,munpackh) },
28533   { FRVBF_INSN_MDUNPACKH, SEM_FN_NAME (frvbf,mdunpackh) },
28534   { FRVBF_INSN_MBTOH, SEM_FN_NAME (frvbf,mbtoh) },
28535   { FRVBF_INSN_CMBTOH, SEM_FN_NAME (frvbf,cmbtoh) },
28536   { FRVBF_INSN_MHTOB, SEM_FN_NAME (frvbf,mhtob) },
28537   { FRVBF_INSN_CMHTOB, SEM_FN_NAME (frvbf,cmhtob) },
28538   { FRVBF_INSN_MBTOHE, SEM_FN_NAME (frvbf,mbtohe) },
28539   { FRVBF_INSN_CMBTOHE, SEM_FN_NAME (frvbf,cmbtohe) },
28540   { FRVBF_INSN_MCLRACC, SEM_FN_NAME (frvbf,mclracc) },
28541   { FRVBF_INSN_MRDACC, SEM_FN_NAME (frvbf,mrdacc) },
28542   { FRVBF_INSN_MRDACCG, SEM_FN_NAME (frvbf,mrdaccg) },
28543   { FRVBF_INSN_MWTACC, SEM_FN_NAME (frvbf,mwtacc) },
28544   { FRVBF_INSN_MWTACCG, SEM_FN_NAME (frvbf,mwtaccg) },
28545   { FRVBF_INSN_MCOP1, SEM_FN_NAME (frvbf,mcop1) },
28546   { FRVBF_INSN_MCOP2, SEM_FN_NAME (frvbf,mcop2) },
28547   { FRVBF_INSN_FNOP, SEM_FN_NAME (frvbf,fnop) },
28548   { 0, 0 }
28549 };
28550
28551 /* Add the semantic fns to IDESC_TABLE.  */
28552
28553 void
28554 SEM_FN_NAME (frvbf,init_idesc_table) (SIM_CPU *current_cpu)
28555 {
28556   IDESC *idesc_table = CPU_IDESC (current_cpu);
28557   const struct sem_fn_desc *sf;
28558   int mach_num = MACH_NUM (CPU_MACH (current_cpu));
28559
28560   for (sf = &sem_fns[0]; sf->fn != 0; ++sf)
28561     {
28562       const CGEN_INSN *insn = idesc_table[sf->index].idata;
28563       int valid_p = (CGEN_INSN_VIRTUAL_P (insn)
28564                      || CGEN_INSN_MACH_HAS_P (insn, mach_num));
28565 #if FAST_P
28566       if (valid_p)
28567         idesc_table[sf->index].sem_fast = sf->fn;
28568       else
28569         idesc_table[sf->index].sem_fast = SEM_FN_NAME (frvbf,x_invalid);
28570 #else
28571       if (valid_p)
28572         idesc_table[sf->index].sem_full = sf->fn;
28573       else
28574         idesc_table[sf->index].sem_full = SEM_FN_NAME (frvbf,x_invalid);
28575 #endif
28576     }
28577 }
28578