2003-09-24 Dave Brolley <brolley@redhat.com>
[platform/upstream/binutils.git] / sim / frv / sem.c
1 /* Simulator instruction semantics for frvbf.
2
3 THIS FILE IS MACHINE GENERATED WITH CGEN.
4
5 Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
6
7 This file is part of the GNU simulators.
8
9 This program is free software; you can redistribute it and/or modify
10 it under the terms of the GNU General Public License as published by
11 the Free Software Foundation; either version 2, or (at your option)
12 any later version.
13
14 This program is distributed in the hope that it will be useful,
15 but WITHOUT ANY WARRANTY; without even the implied warranty of
16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17 GNU General Public License for more details.
18
19 You should have received a copy of the GNU General Public License along
20 with this program; if not, write to the Free Software Foundation, Inc.,
21 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
22
23 */
24
25 #define WANT_CPU frvbf
26 #define WANT_CPU_FRVBF
27
28 #include "sim-main.h"
29 #include "cgen-mem.h"
30 #include "cgen-ops.h"
31
32 #undef GET_ATTR
33 #if defined (__STDC__) || defined (ALMOST_STDC) || defined (HAVE_STRINGIZE)
34 #define GET_ATTR(cpu, num, attr) CGEN_ATTR_VALUE (NULL, abuf->idesc->attrs, CGEN_INSN_##attr)
35 #else
36 #define GET_ATTR(cpu, num, attr) CGEN_ATTR_VALUE (NULL, abuf->idesc->attrs, CGEN_INSN_/**/attr)
37 #endif
38
39 /* This is used so that we can compile two copies of the semantic code,
40    one with full feature support and one without that runs fast(er).
41    FAST_P, when desired, is defined on the command line, -DFAST_P=1.  */
42 #if FAST_P
43 #define SEM_FN_NAME(cpu,fn) XCONCAT3 (cpu,_semf_,fn)
44 #undef TRACE_RESULT
45 #define TRACE_RESULT(cpu, abuf, name, type, val)
46 #else
47 #define SEM_FN_NAME(cpu,fn) XCONCAT3 (cpu,_sem_,fn)
48 #endif
49
50 /* x-invalid: --invalid-- */
51
52 static SEM_PC
53 SEM_FN_NAME (frvbf,x_invalid) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
54 {
55 #define FLD(f) abuf->fields.fmt_empty.f
56   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
57   int UNUSED written = 0;
58   IADDR UNUSED pc = abuf->addr;
59   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 0);
60
61   {
62     /* Update the recorded pc in the cpu state struct.
63        Only necessary for WITH_SCACHE case, but to avoid the
64        conditional compilation ....  */
65     SET_H_PC (pc);
66     /* Virtual insns have zero size.  Overwrite vpc with address of next insn
67        using the default-insn-bitsize spec.  When executing insns in parallel
68        we may want to queue the fault and continue execution.  */
69     vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
70     vpc = sim_engine_invalid_insn (current_cpu, pc, vpc);
71   }
72
73   return vpc;
74 #undef FLD
75 }
76
77 /* x-after: --after-- */
78
79 static SEM_PC
80 SEM_FN_NAME (frvbf,x_after) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
81 {
82 #define FLD(f) abuf->fields.fmt_empty.f
83   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
84   int UNUSED written = 0;
85   IADDR UNUSED pc = abuf->addr;
86   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 0);
87
88   {
89 #if WITH_SCACHE_PBB_FRVBF
90     frvbf_pbb_after (current_cpu, sem_arg);
91 #endif
92   }
93
94   return vpc;
95 #undef FLD
96 }
97
98 /* x-before: --before-- */
99
100 static SEM_PC
101 SEM_FN_NAME (frvbf,x_before) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
102 {
103 #define FLD(f) abuf->fields.fmt_empty.f
104   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
105   int UNUSED written = 0;
106   IADDR UNUSED pc = abuf->addr;
107   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 0);
108
109   {
110 #if WITH_SCACHE_PBB_FRVBF
111     frvbf_pbb_before (current_cpu, sem_arg);
112 #endif
113   }
114
115   return vpc;
116 #undef FLD
117 }
118
119 /* x-cti-chain: --cti-chain-- */
120
121 static SEM_PC
122 SEM_FN_NAME (frvbf,x_cti_chain) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
123 {
124 #define FLD(f) abuf->fields.fmt_empty.f
125   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
126   int UNUSED written = 0;
127   IADDR UNUSED pc = abuf->addr;
128   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 0);
129
130   {
131 #if WITH_SCACHE_PBB_FRVBF
132 #ifdef DEFINE_SWITCH
133     vpc = frvbf_pbb_cti_chain (current_cpu, sem_arg,
134                                pbb_br_type, pbb_br_npc);
135     BREAK (sem);
136 #else
137     /* FIXME: Allow provision of explicit ifmt spec in insn spec.  */
138     vpc = frvbf_pbb_cti_chain (current_cpu, sem_arg,
139                                CPU_PBB_BR_TYPE (current_cpu),
140                                CPU_PBB_BR_NPC (current_cpu));
141 #endif
142 #endif
143   }
144
145   return vpc;
146 #undef FLD
147 }
148
149 /* x-chain: --chain-- */
150
151 static SEM_PC
152 SEM_FN_NAME (frvbf,x_chain) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
153 {
154 #define FLD(f) abuf->fields.fmt_empty.f
155   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
156   int UNUSED written = 0;
157   IADDR UNUSED pc = abuf->addr;
158   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 0);
159
160   {
161 #if WITH_SCACHE_PBB_FRVBF
162     vpc = frvbf_pbb_chain (current_cpu, sem_arg);
163 #ifdef DEFINE_SWITCH
164     BREAK (sem);
165 #endif
166 #endif
167   }
168
169   return vpc;
170 #undef FLD
171 }
172
173 /* x-begin: --begin-- */
174
175 static SEM_PC
176 SEM_FN_NAME (frvbf,x_begin) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
177 {
178 #define FLD(f) abuf->fields.fmt_empty.f
179   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
180   int UNUSED written = 0;
181   IADDR UNUSED pc = abuf->addr;
182   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 0);
183
184   {
185 #if WITH_SCACHE_PBB_FRVBF
186 #if defined DEFINE_SWITCH || defined FAST_P
187     /* In the switch case FAST_P is a constant, allowing several optimizations
188        in any called inline functions.  */
189     vpc = frvbf_pbb_begin (current_cpu, FAST_P);
190 #else
191 #if 0 /* cgen engine can't handle dynamic fast/full switching yet.  */
192     vpc = frvbf_pbb_begin (current_cpu, STATE_RUN_FAST_P (CPU_STATE (current_cpu)));
193 #else
194     vpc = frvbf_pbb_begin (current_cpu, 0);
195 #endif
196 #endif
197 #endif
198   }
199
200   return vpc;
201 #undef FLD
202 }
203
204 /* add: add$pack $GRi,$GRj,$GRk */
205
206 static SEM_PC
207 SEM_FN_NAME (frvbf,add) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
208 {
209 #define FLD(f) abuf->fields.sfmt_addcc.f
210   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
211   int UNUSED written = 0;
212   IADDR UNUSED pc = abuf->addr;
213   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
214
215   {
216     SI opval = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
217     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
218     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
219   }
220
221   return vpc;
222 #undef FLD
223 }
224
225 /* sub: sub$pack $GRi,$GRj,$GRk */
226
227 static SEM_PC
228 SEM_FN_NAME (frvbf,sub) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
229 {
230 #define FLD(f) abuf->fields.sfmt_addcc.f
231   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
232   int UNUSED written = 0;
233   IADDR UNUSED pc = abuf->addr;
234   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
235
236   {
237     SI opval = SUBSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
238     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
239     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
240   }
241
242   return vpc;
243 #undef FLD
244 }
245
246 /* and: and$pack $GRi,$GRj,$GRk */
247
248 static SEM_PC
249 SEM_FN_NAME (frvbf,and) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
250 {
251 #define FLD(f) abuf->fields.sfmt_addcc.f
252   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
253   int UNUSED written = 0;
254   IADDR UNUSED pc = abuf->addr;
255   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
256
257   {
258     SI opval = ANDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
259     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
260     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
261   }
262
263   return vpc;
264 #undef FLD
265 }
266
267 /* or: or$pack $GRi,$GRj,$GRk */
268
269 static SEM_PC
270 SEM_FN_NAME (frvbf,or) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
271 {
272 #define FLD(f) abuf->fields.sfmt_addcc.f
273   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
274   int UNUSED written = 0;
275   IADDR UNUSED pc = abuf->addr;
276   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
277
278   {
279     SI opval = ORSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
280     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
281     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
282   }
283
284   return vpc;
285 #undef FLD
286 }
287
288 /* xor: xor$pack $GRi,$GRj,$GRk */
289
290 static SEM_PC
291 SEM_FN_NAME (frvbf,xor) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
292 {
293 #define FLD(f) abuf->fields.sfmt_addcc.f
294   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
295   int UNUSED written = 0;
296   IADDR UNUSED pc = abuf->addr;
297   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
298
299   {
300     SI opval = XORSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
301     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
302     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
303   }
304
305   return vpc;
306 #undef FLD
307 }
308
309 /* not: not$pack $GRj,$GRk */
310
311 static SEM_PC
312 SEM_FN_NAME (frvbf,not) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
313 {
314 #define FLD(f) abuf->fields.sfmt_addcc.f
315   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
316   int UNUSED written = 0;
317   IADDR UNUSED pc = abuf->addr;
318   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
319
320   {
321     SI opval = INVSI (GET_H_GR (FLD (f_GRj)));
322     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
323     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
324   }
325
326   return vpc;
327 #undef FLD
328 }
329
330 /* sdiv: sdiv$pack $GRi,$GRj,$GRk */
331
332 static SEM_PC
333 SEM_FN_NAME (frvbf,sdiv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
334 {
335 #define FLD(f) abuf->fields.sfmt_addcc.f
336   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
337   int UNUSED written = 0;
338   IADDR UNUSED pc = abuf->addr;
339   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
340
341 {
342 frvbf_signed_integer_divide (current_cpu, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), FLD (f_GRk), 0);
343 ; /*clobber*/
344 }
345
346   return vpc;
347 #undef FLD
348 }
349
350 /* nsdiv: nsdiv$pack $GRi,$GRj,$GRk */
351
352 static SEM_PC
353 SEM_FN_NAME (frvbf,nsdiv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
354 {
355 #define FLD(f) abuf->fields.sfmt_addcc.f
356   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
357   int UNUSED written = 0;
358   IADDR UNUSED pc = abuf->addr;
359   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
360
361 {
362 frvbf_signed_integer_divide (current_cpu, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), FLD (f_GRk), 1);
363 ; /*clobber*/
364 }
365
366   return vpc;
367 #undef FLD
368 }
369
370 /* udiv: udiv$pack $GRi,$GRj,$GRk */
371
372 static SEM_PC
373 SEM_FN_NAME (frvbf,udiv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
374 {
375 #define FLD(f) abuf->fields.sfmt_addcc.f
376   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
377   int UNUSED written = 0;
378   IADDR UNUSED pc = abuf->addr;
379   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
380
381 {
382 frvbf_unsigned_integer_divide (current_cpu, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), FLD (f_GRk), 0);
383 ; /*clobber*/
384 }
385
386   return vpc;
387 #undef FLD
388 }
389
390 /* nudiv: nudiv$pack $GRi,$GRj,$GRk */
391
392 static SEM_PC
393 SEM_FN_NAME (frvbf,nudiv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
394 {
395 #define FLD(f) abuf->fields.sfmt_addcc.f
396   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
397   int UNUSED written = 0;
398   IADDR UNUSED pc = abuf->addr;
399   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
400
401 {
402 frvbf_unsigned_integer_divide (current_cpu, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), FLD (f_GRk), 1);
403 ; /*clobber*/
404 }
405
406   return vpc;
407 #undef FLD
408 }
409
410 /* smul: smul$pack $GRi,$GRj,$GRdoublek */
411
412 static SEM_PC
413 SEM_FN_NAME (frvbf,smul) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
414 {
415 #define FLD(f) abuf->fields.sfmt_smulcc.f
416   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
417   int UNUSED written = 0;
418   IADDR UNUSED pc = abuf->addr;
419   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
420
421   {
422     DI opval = MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi))), EXTSIDI (GET_H_GR (FLD (f_GRj))));
423     sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
424     TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
425   }
426
427   return vpc;
428 #undef FLD
429 }
430
431 /* umul: umul$pack $GRi,$GRj,$GRdoublek */
432
433 static SEM_PC
434 SEM_FN_NAME (frvbf,umul) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
435 {
436 #define FLD(f) abuf->fields.sfmt_smulcc.f
437   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
438   int UNUSED written = 0;
439   IADDR UNUSED pc = abuf->addr;
440   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
441
442   {
443     DI opval = MULDI (ZEXTSIDI (GET_H_GR (FLD (f_GRi))), ZEXTSIDI (GET_H_GR (FLD (f_GRj))));
444     sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
445     TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
446   }
447
448   return vpc;
449 #undef FLD
450 }
451
452 /* sll: sll$pack $GRi,$GRj,$GRk */
453
454 static SEM_PC
455 SEM_FN_NAME (frvbf,sll) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
456 {
457 #define FLD(f) abuf->fields.sfmt_addcc.f
458   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
459   int UNUSED written = 0;
460   IADDR UNUSED pc = abuf->addr;
461   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
462
463   {
464     SI opval = SLLSI (GET_H_GR (FLD (f_GRi)), ANDSI (GET_H_GR (FLD (f_GRj)), 31));
465     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
466     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
467   }
468
469   return vpc;
470 #undef FLD
471 }
472
473 /* srl: srl$pack $GRi,$GRj,$GRk */
474
475 static SEM_PC
476 SEM_FN_NAME (frvbf,srl) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
477 {
478 #define FLD(f) abuf->fields.sfmt_addcc.f
479   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
480   int UNUSED written = 0;
481   IADDR UNUSED pc = abuf->addr;
482   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
483
484   {
485     SI opval = SRLSI (GET_H_GR (FLD (f_GRi)), ANDSI (GET_H_GR (FLD (f_GRj)), 31));
486     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
487     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
488   }
489
490   return vpc;
491 #undef FLD
492 }
493
494 /* sra: sra$pack $GRi,$GRj,$GRk */
495
496 static SEM_PC
497 SEM_FN_NAME (frvbf,sra) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
498 {
499 #define FLD(f) abuf->fields.sfmt_addcc.f
500   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
501   int UNUSED written = 0;
502   IADDR UNUSED pc = abuf->addr;
503   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
504
505   {
506     SI opval = SRASI (GET_H_GR (FLD (f_GRi)), ANDSI (GET_H_GR (FLD (f_GRj)), 31));
507     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
508     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
509   }
510
511   return vpc;
512 #undef FLD
513 }
514
515 /* scan: scan$pack $GRi,$GRj,$GRk */
516
517 static SEM_PC
518 SEM_FN_NAME (frvbf,scan) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
519 {
520 #define FLD(f) abuf->fields.sfmt_addcc.f
521   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
522   int UNUSED written = 0;
523   IADDR UNUSED pc = abuf->addr;
524   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
525
526 {
527   SI tmp_tmp1;
528   SI tmp_tmp2;
529   tmp_tmp1 = GET_H_GR (FLD (f_GRi));
530   tmp_tmp2 = SRASI (GET_H_GR (FLD (f_GRj)), 1);
531   {
532     SI opval = frvbf_scan_result (current_cpu, XORSI (tmp_tmp1, tmp_tmp2));
533     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
534     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
535   }
536 }
537
538   return vpc;
539 #undef FLD
540 }
541
542 /* cadd: cadd$pack $GRi,$GRj,$GRk,$CCi,$cond */
543
544 static SEM_PC
545 SEM_FN_NAME (frvbf,cadd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
546 {
547 #define FLD(f) abuf->fields.sfmt_cswap.f
548   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
549   int UNUSED written = 0;
550   IADDR UNUSED pc = abuf->addr;
551   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
552
553 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
554   {
555     SI opval = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
556     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
557     written |= (1 << 4);
558     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
559   }
560 }
561
562   abuf->written = written;
563   return vpc;
564 #undef FLD
565 }
566
567 /* csub: csub$pack $GRi,$GRj,$GRk,$CCi,$cond */
568
569 static SEM_PC
570 SEM_FN_NAME (frvbf,csub) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
571 {
572 #define FLD(f) abuf->fields.sfmt_cswap.f
573   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
574   int UNUSED written = 0;
575   IADDR UNUSED pc = abuf->addr;
576   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
577
578 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
579   {
580     SI opval = SUBSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
581     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
582     written |= (1 << 4);
583     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
584   }
585 }
586
587   abuf->written = written;
588   return vpc;
589 #undef FLD
590 }
591
592 /* cand: cand$pack $GRi,$GRj,$GRk,$CCi,$cond */
593
594 static SEM_PC
595 SEM_FN_NAME (frvbf,cand) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
596 {
597 #define FLD(f) abuf->fields.sfmt_cswap.f
598   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
599   int UNUSED written = 0;
600   IADDR UNUSED pc = abuf->addr;
601   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
602
603 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
604   {
605     SI opval = ANDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
606     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
607     written |= (1 << 4);
608     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
609   }
610 }
611
612   abuf->written = written;
613   return vpc;
614 #undef FLD
615 }
616
617 /* cor: cor$pack $GRi,$GRj,$GRk,$CCi,$cond */
618
619 static SEM_PC
620 SEM_FN_NAME (frvbf,cor) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
621 {
622 #define FLD(f) abuf->fields.sfmt_cswap.f
623   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
624   int UNUSED written = 0;
625   IADDR UNUSED pc = abuf->addr;
626   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
627
628 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
629   {
630     SI opval = ORSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
631     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
632     written |= (1 << 4);
633     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
634   }
635 }
636
637   abuf->written = written;
638   return vpc;
639 #undef FLD
640 }
641
642 /* cxor: cxor$pack $GRi,$GRj,$GRk,$CCi,$cond */
643
644 static SEM_PC
645 SEM_FN_NAME (frvbf,cxor) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
646 {
647 #define FLD(f) abuf->fields.sfmt_cswap.f
648   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
649   int UNUSED written = 0;
650   IADDR UNUSED pc = abuf->addr;
651   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
652
653 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
654   {
655     SI opval = XORSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
656     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
657     written |= (1 << 4);
658     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
659   }
660 }
661
662   abuf->written = written;
663   return vpc;
664 #undef FLD
665 }
666
667 /* cnot: cnot$pack $GRj,$GRk,$CCi,$cond */
668
669 static SEM_PC
670 SEM_FN_NAME (frvbf,cnot) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
671 {
672 #define FLD(f) abuf->fields.sfmt_cswap.f
673   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
674   int UNUSED written = 0;
675   IADDR UNUSED pc = abuf->addr;
676   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
677
678 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
679   {
680     SI opval = INVSI (GET_H_GR (FLD (f_GRj)));
681     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
682     written |= (1 << 3);
683     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
684   }
685 }
686
687   abuf->written = written;
688   return vpc;
689 #undef FLD
690 }
691
692 /* csmul: csmul$pack $GRi,$GRj,$GRdoublek,$CCi,$cond */
693
694 static SEM_PC
695 SEM_FN_NAME (frvbf,csmul) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
696 {
697 #define FLD(f) abuf->fields.sfmt_clddu.f
698   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
699   int UNUSED written = 0;
700   IADDR UNUSED pc = abuf->addr;
701   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
702
703 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
704   {
705     DI opval = MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi))), EXTSIDI (GET_H_GR (FLD (f_GRj))));
706     sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
707     written |= (1 << 4);
708     TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
709   }
710 }
711
712   abuf->written = written;
713   return vpc;
714 #undef FLD
715 }
716
717 /* csdiv: csdiv$pack $GRi,$GRj,$GRk,$CCi,$cond */
718
719 static SEM_PC
720 SEM_FN_NAME (frvbf,csdiv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
721 {
722 #define FLD(f) abuf->fields.sfmt_cswap.f
723   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
724   int UNUSED written = 0;
725   IADDR UNUSED pc = abuf->addr;
726   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
727
728 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
729 {
730 frvbf_signed_integer_divide (current_cpu, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), FLD (f_GRk), 0);
731 ; /*clobber*/
732 }
733 }
734
735   abuf->written = written;
736   return vpc;
737 #undef FLD
738 }
739
740 /* cudiv: cudiv$pack $GRi,$GRj,$GRk,$CCi,$cond */
741
742 static SEM_PC
743 SEM_FN_NAME (frvbf,cudiv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
744 {
745 #define FLD(f) abuf->fields.sfmt_cswap.f
746   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
747   int UNUSED written = 0;
748   IADDR UNUSED pc = abuf->addr;
749   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
750
751 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
752 {
753 frvbf_unsigned_integer_divide (current_cpu, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), FLD (f_GRk), 0);
754 ; /*clobber*/
755 }
756 }
757
758   abuf->written = written;
759   return vpc;
760 #undef FLD
761 }
762
763 /* csll: csll$pack $GRi,$GRj,$GRk,$CCi,$cond */
764
765 static SEM_PC
766 SEM_FN_NAME (frvbf,csll) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
767 {
768 #define FLD(f) abuf->fields.sfmt_cswap.f
769   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
770   int UNUSED written = 0;
771   IADDR UNUSED pc = abuf->addr;
772   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
773
774 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
775   {
776     SI opval = SLLSI (GET_H_GR (FLD (f_GRi)), ANDSI (GET_H_GR (FLD (f_GRj)), 31));
777     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
778     written |= (1 << 4);
779     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
780   }
781 }
782
783   abuf->written = written;
784   return vpc;
785 #undef FLD
786 }
787
788 /* csrl: csrl$pack $GRi,$GRj,$GRk,$CCi,$cond */
789
790 static SEM_PC
791 SEM_FN_NAME (frvbf,csrl) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
792 {
793 #define FLD(f) abuf->fields.sfmt_cswap.f
794   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
795   int UNUSED written = 0;
796   IADDR UNUSED pc = abuf->addr;
797   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
798
799 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
800   {
801     SI opval = SRLSI (GET_H_GR (FLD (f_GRi)), ANDSI (GET_H_GR (FLD (f_GRj)), 31));
802     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
803     written |= (1 << 4);
804     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
805   }
806 }
807
808   abuf->written = written;
809   return vpc;
810 #undef FLD
811 }
812
813 /* csra: csra$pack $GRi,$GRj,$GRk,$CCi,$cond */
814
815 static SEM_PC
816 SEM_FN_NAME (frvbf,csra) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
817 {
818 #define FLD(f) abuf->fields.sfmt_cswap.f
819   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
820   int UNUSED written = 0;
821   IADDR UNUSED pc = abuf->addr;
822   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
823
824 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
825   {
826     SI opval = SRASI (GET_H_GR (FLD (f_GRi)), ANDSI (GET_H_GR (FLD (f_GRj)), 31));
827     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
828     written |= (1 << 4);
829     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
830   }
831 }
832
833   abuf->written = written;
834   return vpc;
835 #undef FLD
836 }
837
838 /* cscan: cscan$pack $GRi,$GRj,$GRk,$CCi,$cond */
839
840 static SEM_PC
841 SEM_FN_NAME (frvbf,cscan) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
842 {
843 #define FLD(f) abuf->fields.sfmt_cswap.f
844   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
845   int UNUSED written = 0;
846   IADDR UNUSED pc = abuf->addr;
847   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
848
849 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
850 {
851   SI tmp_tmp1;
852   SI tmp_tmp2;
853   tmp_tmp1 = GET_H_GR (FLD (f_GRi));
854   tmp_tmp2 = SRASI (GET_H_GR (FLD (f_GRj)), 1);
855   {
856     SI opval = frvbf_scan_result (current_cpu, XORSI (tmp_tmp1, tmp_tmp2));
857     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
858     written |= (1 << 4);
859     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
860   }
861 }
862 }
863
864   abuf->written = written;
865   return vpc;
866 #undef FLD
867 }
868
869 /* addcc: addcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
870
871 static SEM_PC
872 SEM_FN_NAME (frvbf,addcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
873 {
874 #define FLD(f) abuf->fields.sfmt_addcc.f
875   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
876   int UNUSED written = 0;
877   IADDR UNUSED pc = abuf->addr;
878   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
879
880 {
881   BI tmp_tmp;
882   QI tmp_cc;
883   SI tmp_result;
884   tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
885   tmp_tmp = ADDOFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), 0);
886 if (EQBI (tmp_tmp, 0)) {
887   tmp_cc = ANDQI (tmp_cc, 13);
888 } else {
889   tmp_cc = ORQI (tmp_cc, 2);
890 }
891   tmp_tmp = ADDCFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), 0);
892 if (EQBI (tmp_tmp, 0)) {
893   tmp_cc = ANDQI (tmp_cc, 14);
894 } else {
895   tmp_cc = ORQI (tmp_cc, 1);
896 }
897   tmp_result = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
898 if (EQSI (tmp_result, 0)) {
899   tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
900 } else {
901 if (LTSI (tmp_result, 0)) {
902   tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
903 } else {
904   tmp_cc = ANDQI (tmp_cc, 3);
905 }
906 }
907   {
908     SI opval = tmp_result;
909     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
910     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
911   }
912   {
913     UQI opval = tmp_cc;
914     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
915     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
916   }
917 }
918
919   return vpc;
920 #undef FLD
921 }
922
923 /* subcc: subcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
924
925 static SEM_PC
926 SEM_FN_NAME (frvbf,subcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
927 {
928 #define FLD(f) abuf->fields.sfmt_addcc.f
929   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
930   int UNUSED written = 0;
931   IADDR UNUSED pc = abuf->addr;
932   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
933
934 {
935   BI tmp_tmp;
936   QI tmp_cc;
937   SI tmp_result;
938   tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
939   tmp_tmp = SUBOFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), 0);
940 if (EQBI (tmp_tmp, 0)) {
941   tmp_cc = ANDQI (tmp_cc, 13);
942 } else {
943   tmp_cc = ORQI (tmp_cc, 2);
944 }
945   tmp_tmp = SUBCFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), 0);
946 if (EQBI (tmp_tmp, 0)) {
947   tmp_cc = ANDQI (tmp_cc, 14);
948 } else {
949   tmp_cc = ORQI (tmp_cc, 1);
950 }
951   tmp_result = SUBSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
952 if (EQSI (tmp_result, 0)) {
953   tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
954 } else {
955 if (LTSI (tmp_result, 0)) {
956   tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
957 } else {
958   tmp_cc = ANDQI (tmp_cc, 3);
959 }
960 }
961   {
962     SI opval = tmp_result;
963     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
964     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
965   }
966   {
967     UQI opval = tmp_cc;
968     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
969     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
970   }
971 }
972
973   return vpc;
974 #undef FLD
975 }
976
977 /* andcc: andcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
978
979 static SEM_PC
980 SEM_FN_NAME (frvbf,andcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
981 {
982 #define FLD(f) abuf->fields.sfmt_addcc.f
983   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
984   int UNUSED written = 0;
985   IADDR UNUSED pc = abuf->addr;
986   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
987
988 {
989   SI tmp_tmp;
990   tmp_tmp = ANDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
991   {
992     SI opval = tmp_tmp;
993     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
994     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
995   }
996 if (EQSI (tmp_tmp, 0)) {
997   {
998     UQI opval = ORQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 7), 4);
999     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1000     written |= (1 << 4);
1001     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1002   }
1003 } else {
1004 if (LTSI (tmp_tmp, 0)) {
1005   {
1006     UQI opval = ORQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 11), 8);
1007     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1008     written |= (1 << 4);
1009     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1010   }
1011 } else {
1012   {
1013     UQI opval = ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 3);
1014     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1015     written |= (1 << 4);
1016     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1017   }
1018 }
1019 }
1020 }
1021
1022   abuf->written = written;
1023   return vpc;
1024 #undef FLD
1025 }
1026
1027 /* orcc: orcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
1028
1029 static SEM_PC
1030 SEM_FN_NAME (frvbf,orcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1031 {
1032 #define FLD(f) abuf->fields.sfmt_addcc.f
1033   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1034   int UNUSED written = 0;
1035   IADDR UNUSED pc = abuf->addr;
1036   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1037
1038 {
1039   SI tmp_tmp;
1040   tmp_tmp = ORSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
1041   {
1042     SI opval = tmp_tmp;
1043     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1044     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1045   }
1046 if (EQSI (tmp_tmp, 0)) {
1047   {
1048     UQI opval = ORQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 7), 4);
1049     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1050     written |= (1 << 4);
1051     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1052   }
1053 } else {
1054 if (LTSI (tmp_tmp, 0)) {
1055   {
1056     UQI opval = ORQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 11), 8);
1057     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1058     written |= (1 << 4);
1059     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1060   }
1061 } else {
1062   {
1063     UQI opval = ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 3);
1064     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1065     written |= (1 << 4);
1066     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1067   }
1068 }
1069 }
1070 }
1071
1072   abuf->written = written;
1073   return vpc;
1074 #undef FLD
1075 }
1076
1077 /* xorcc: xorcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
1078
1079 static SEM_PC
1080 SEM_FN_NAME (frvbf,xorcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1081 {
1082 #define FLD(f) abuf->fields.sfmt_addcc.f
1083   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1084   int UNUSED written = 0;
1085   IADDR UNUSED pc = abuf->addr;
1086   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1087
1088 {
1089   SI tmp_tmp;
1090   tmp_tmp = XORSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
1091   {
1092     SI opval = tmp_tmp;
1093     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1094     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1095   }
1096 if (EQSI (tmp_tmp, 0)) {
1097   {
1098     UQI opval = ORQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 7), 4);
1099     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1100     written |= (1 << 4);
1101     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1102   }
1103 } else {
1104 if (LTSI (tmp_tmp, 0)) {
1105   {
1106     UQI opval = ORQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 11), 8);
1107     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1108     written |= (1 << 4);
1109     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1110   }
1111 } else {
1112   {
1113     UQI opval = ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 3);
1114     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1115     written |= (1 << 4);
1116     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1117   }
1118 }
1119 }
1120 }
1121
1122   abuf->written = written;
1123   return vpc;
1124 #undef FLD
1125 }
1126
1127 /* sllcc: sllcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
1128
1129 static SEM_PC
1130 SEM_FN_NAME (frvbf,sllcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1131 {
1132 #define FLD(f) abuf->fields.sfmt_addcc.f
1133   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1134   int UNUSED written = 0;
1135   IADDR UNUSED pc = abuf->addr;
1136   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1137
1138 {
1139   SI tmp_shift;
1140   SI tmp_tmp;
1141   QI tmp_cc;
1142   tmp_shift = ANDSI (GET_H_GR (FLD (f_GRj)), 31);
1143   tmp_cc = frvbf_set_icc_for_shift_left (current_cpu, GET_H_GR (FLD (f_GRi)), tmp_shift, CPU (h_iccr[FLD (f_ICCi_1)]));
1144   tmp_tmp = SLLSI (GET_H_GR (FLD (f_GRi)), tmp_shift);
1145   {
1146     SI opval = tmp_tmp;
1147     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1148     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1149   }
1150 if (EQSI (tmp_tmp, 0)) {
1151   tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
1152 } else {
1153 if (LTSI (tmp_tmp, 0)) {
1154   tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
1155 } else {
1156   tmp_cc = ANDQI (tmp_cc, 3);
1157 }
1158 }
1159   {
1160     UQI opval = tmp_cc;
1161     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1162     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1163   }
1164 }
1165
1166   return vpc;
1167 #undef FLD
1168 }
1169
1170 /* srlcc: srlcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
1171
1172 static SEM_PC
1173 SEM_FN_NAME (frvbf,srlcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1174 {
1175 #define FLD(f) abuf->fields.sfmt_addcc.f
1176   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1177   int UNUSED written = 0;
1178   IADDR UNUSED pc = abuf->addr;
1179   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1180
1181 {
1182   SI tmp_shift;
1183   SI tmp_tmp;
1184   QI tmp_cc;
1185   tmp_shift = ANDSI (GET_H_GR (FLD (f_GRj)), 31);
1186   tmp_cc = frvbf_set_icc_for_shift_right (current_cpu, GET_H_GR (FLD (f_GRi)), tmp_shift, CPU (h_iccr[FLD (f_ICCi_1)]));
1187   tmp_tmp = SRLSI (GET_H_GR (FLD (f_GRi)), tmp_shift);
1188   {
1189     SI opval = tmp_tmp;
1190     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1191     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1192   }
1193 if (EQSI (tmp_tmp, 0)) {
1194   tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
1195 } else {
1196 if (LTSI (tmp_tmp, 0)) {
1197   tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
1198 } else {
1199   tmp_cc = ANDQI (tmp_cc, 3);
1200 }
1201 }
1202   {
1203     UQI opval = tmp_cc;
1204     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1205     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1206   }
1207 }
1208
1209   return vpc;
1210 #undef FLD
1211 }
1212
1213 /* sracc: sracc$pack $GRi,$GRj,$GRk,$ICCi_1 */
1214
1215 static SEM_PC
1216 SEM_FN_NAME (frvbf,sracc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1217 {
1218 #define FLD(f) abuf->fields.sfmt_addcc.f
1219   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1220   int UNUSED written = 0;
1221   IADDR UNUSED pc = abuf->addr;
1222   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1223
1224 {
1225   SI tmp_shift;
1226   SI tmp_tmp;
1227   QI tmp_cc;
1228   tmp_shift = ANDSI (GET_H_GR (FLD (f_GRj)), 31);
1229   tmp_cc = frvbf_set_icc_for_shift_right (current_cpu, GET_H_GR (FLD (f_GRi)), tmp_shift, CPU (h_iccr[FLD (f_ICCi_1)]));
1230   tmp_tmp = SRASI (GET_H_GR (FLD (f_GRi)), tmp_shift);
1231   {
1232     SI opval = tmp_tmp;
1233     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1234     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1235   }
1236 if (EQSI (tmp_tmp, 0)) {
1237   tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
1238 } else {
1239 if (LTSI (tmp_tmp, 0)) {
1240   tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
1241 } else {
1242   tmp_cc = ANDQI (tmp_cc, 3);
1243 }
1244 }
1245   {
1246     UQI opval = tmp_cc;
1247     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1248     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1249   }
1250 }
1251
1252   return vpc;
1253 #undef FLD
1254 }
1255
1256 /* smulcc: smulcc$pack $GRi,$GRj,$GRdoublek,$ICCi_1 */
1257
1258 static SEM_PC
1259 SEM_FN_NAME (frvbf,smulcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1260 {
1261 #define FLD(f) abuf->fields.sfmt_smulcc.f
1262   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1263   int UNUSED written = 0;
1264   IADDR UNUSED pc = abuf->addr;
1265   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1266
1267 {
1268   DI tmp_tmp;
1269   QI tmp_cc;
1270   tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
1271   tmp_tmp = MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi))), EXTSIDI (GET_H_GR (FLD (f_GRj))));
1272 if (EQDI (SRLDI (tmp_tmp, 63), 0)) {
1273   tmp_cc = ANDQI (tmp_cc, 7);
1274 } else {
1275   tmp_cc = ORQI (tmp_cc, 8);
1276 }
1277 if (EQBI (EQDI (tmp_tmp, 0), 0)) {
1278   tmp_cc = ANDQI (tmp_cc, 11);
1279 } else {
1280   tmp_cc = ORQI (tmp_cc, 4);
1281 }
1282   {
1283     DI opval = tmp_tmp;
1284     sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
1285     TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
1286   }
1287   {
1288     UQI opval = tmp_cc;
1289     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1290     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1291   }
1292 }
1293
1294   return vpc;
1295 #undef FLD
1296 }
1297
1298 /* umulcc: umulcc$pack $GRi,$GRj,$GRdoublek,$ICCi_1 */
1299
1300 static SEM_PC
1301 SEM_FN_NAME (frvbf,umulcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1302 {
1303 #define FLD(f) abuf->fields.sfmt_smulcc.f
1304   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1305   int UNUSED written = 0;
1306   IADDR UNUSED pc = abuf->addr;
1307   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1308
1309 {
1310   DI tmp_tmp;
1311   QI tmp_cc;
1312   tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
1313   tmp_tmp = MULDI (ZEXTSIDI (GET_H_GR (FLD (f_GRi))), ZEXTSIDI (GET_H_GR (FLD (f_GRj))));
1314 if (EQDI (SRLDI (tmp_tmp, 63), 0)) {
1315   tmp_cc = ANDQI (tmp_cc, 7);
1316 } else {
1317   tmp_cc = ORQI (tmp_cc, 8);
1318 }
1319 if (EQBI (EQDI (tmp_tmp, 0), 0)) {
1320   tmp_cc = ANDQI (tmp_cc, 11);
1321 } else {
1322   tmp_cc = ORQI (tmp_cc, 4);
1323 }
1324   {
1325     DI opval = tmp_tmp;
1326     sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
1327     TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
1328   }
1329   {
1330     UQI opval = tmp_cc;
1331     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1332     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1333   }
1334 }
1335
1336   return vpc;
1337 #undef FLD
1338 }
1339
1340 /* caddcc: caddcc$pack $GRi,$GRj,$GRk,$CCi,$cond */
1341
1342 static SEM_PC
1343 SEM_FN_NAME (frvbf,caddcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1344 {
1345 #define FLD(f) abuf->fields.sfmt_caddcc.f
1346   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1347   int UNUSED written = 0;
1348   IADDR UNUSED pc = abuf->addr;
1349   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1350
1351 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
1352 {
1353   BI tmp_tmp;
1354   QI tmp_cc;
1355   SI tmp_result;
1356   tmp_cc = CPU (h_iccr[((FLD (f_CCi)) & (3))]);
1357   tmp_tmp = ADDOFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), 0);
1358 if (EQBI (tmp_tmp, 0)) {
1359   tmp_cc = ANDQI (tmp_cc, 13);
1360 } else {
1361   tmp_cc = ORQI (tmp_cc, 2);
1362 }
1363   tmp_tmp = ADDCFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), 0);
1364 if (EQBI (tmp_tmp, 0)) {
1365   tmp_cc = ANDQI (tmp_cc, 14);
1366 } else {
1367   tmp_cc = ORQI (tmp_cc, 1);
1368 }
1369   tmp_result = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
1370 if (EQSI (tmp_result, 0)) {
1371   tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
1372 } else {
1373 if (LTSI (tmp_result, 0)) {
1374   tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
1375 } else {
1376   tmp_cc = ANDQI (tmp_cc, 3);
1377 }
1378 }
1379   {
1380     SI opval = tmp_result;
1381     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1382     written |= (1 << 6);
1383     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1384   }
1385   {
1386     UQI opval = tmp_cc;
1387     sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);
1388     written |= (1 << 7);
1389     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1390   }
1391 }
1392 }
1393
1394   abuf->written = written;
1395   return vpc;
1396 #undef FLD
1397 }
1398
1399 /* csubcc: csubcc$pack $GRi,$GRj,$GRk,$CCi,$cond */
1400
1401 static SEM_PC
1402 SEM_FN_NAME (frvbf,csubcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1403 {
1404 #define FLD(f) abuf->fields.sfmt_caddcc.f
1405   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1406   int UNUSED written = 0;
1407   IADDR UNUSED pc = abuf->addr;
1408   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1409
1410 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
1411 {
1412   BI tmp_tmp;
1413   QI tmp_cc;
1414   SI tmp_result;
1415   tmp_cc = CPU (h_iccr[((FLD (f_CCi)) & (3))]);
1416   tmp_tmp = SUBOFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), 0);
1417 if (EQBI (tmp_tmp, 0)) {
1418   tmp_cc = ANDQI (tmp_cc, 13);
1419 } else {
1420   tmp_cc = ORQI (tmp_cc, 2);
1421 }
1422   tmp_tmp = SUBCFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), 0);
1423 if (EQBI (tmp_tmp, 0)) {
1424   tmp_cc = ANDQI (tmp_cc, 14);
1425 } else {
1426   tmp_cc = ORQI (tmp_cc, 1);
1427 }
1428   tmp_result = SUBSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
1429 if (EQSI (tmp_result, 0)) {
1430   tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
1431 } else {
1432 if (LTSI (tmp_result, 0)) {
1433   tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
1434 } else {
1435   tmp_cc = ANDQI (tmp_cc, 3);
1436 }
1437 }
1438   {
1439     SI opval = tmp_result;
1440     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1441     written |= (1 << 6);
1442     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1443   }
1444   {
1445     UQI opval = tmp_cc;
1446     sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);
1447     written |= (1 << 7);
1448     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1449   }
1450 }
1451 }
1452
1453   abuf->written = written;
1454   return vpc;
1455 #undef FLD
1456 }
1457
1458 /* csmulcc: csmulcc$pack $GRi,$GRj,$GRdoublek,$CCi,$cond */
1459
1460 static SEM_PC
1461 SEM_FN_NAME (frvbf,csmulcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1462 {
1463 #define FLD(f) abuf->fields.sfmt_csmulcc.f
1464   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1465   int UNUSED written = 0;
1466   IADDR UNUSED pc = abuf->addr;
1467   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1468
1469 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
1470 {
1471   DI tmp_tmp;
1472   QI tmp_cc;
1473   tmp_cc = CPU (h_iccr[((FLD (f_CCi)) & (3))]);
1474   tmp_tmp = MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi))), EXTSIDI (GET_H_GR (FLD (f_GRj))));
1475 if (EQDI (SRLDI (tmp_tmp, 63), 0)) {
1476   tmp_cc = ANDQI (tmp_cc, 7);
1477 } else {
1478   tmp_cc = ORQI (tmp_cc, 8);
1479 }
1480 if (EQBI (EQDI (tmp_tmp, 0), 0)) {
1481   tmp_cc = ANDQI (tmp_cc, 11);
1482 } else {
1483   tmp_cc = ORQI (tmp_cc, 4);
1484 }
1485   {
1486     DI opval = tmp_tmp;
1487     sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
1488     written |= (1 << 6);
1489     TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
1490   }
1491   {
1492     UQI opval = tmp_cc;
1493     sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);
1494     written |= (1 << 7);
1495     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1496   }
1497 }
1498 }
1499
1500   abuf->written = written;
1501   return vpc;
1502 #undef FLD
1503 }
1504
1505 /* candcc: candcc$pack $GRi,$GRj,$GRk,$CCi,$cond */
1506
1507 static SEM_PC
1508 SEM_FN_NAME (frvbf,candcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1509 {
1510 #define FLD(f) abuf->fields.sfmt_caddcc.f
1511   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1512   int UNUSED written = 0;
1513   IADDR UNUSED pc = abuf->addr;
1514   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1515
1516 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
1517 {
1518   SI tmp_tmp;
1519   tmp_tmp = ANDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
1520   {
1521     SI opval = tmp_tmp;
1522     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1523     written |= (1 << 6);
1524     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1525   }
1526 if (EQSI (tmp_tmp, 0)) {
1527   {
1528     UQI opval = ORQI (ANDQI (CPU (h_iccr[((FLD (f_CCi)) & (3))]), 7), 4);
1529     sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);
1530     written |= (1 << 7);
1531     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1532   }
1533 } else {
1534 if (LTSI (tmp_tmp, 0)) {
1535   {
1536     UQI opval = ORQI (ANDQI (CPU (h_iccr[((FLD (f_CCi)) & (3))]), 11), 8);
1537     sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);
1538     written |= (1 << 7);
1539     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1540   }
1541 } else {
1542   {
1543     UQI opval = ANDQI (CPU (h_iccr[((FLD (f_CCi)) & (3))]), 3);
1544     sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);
1545     written |= (1 << 7);
1546     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1547   }
1548 }
1549 }
1550 }
1551 }
1552
1553   abuf->written = written;
1554   return vpc;
1555 #undef FLD
1556 }
1557
1558 /* corcc: corcc$pack $GRi,$GRj,$GRk,$CCi,$cond */
1559
1560 static SEM_PC
1561 SEM_FN_NAME (frvbf,corcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1562 {
1563 #define FLD(f) abuf->fields.sfmt_caddcc.f
1564   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1565   int UNUSED written = 0;
1566   IADDR UNUSED pc = abuf->addr;
1567   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1568
1569 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
1570 {
1571   SI tmp_tmp;
1572   tmp_tmp = ORSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
1573   {
1574     SI opval = tmp_tmp;
1575     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1576     written |= (1 << 6);
1577     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1578   }
1579 if (EQSI (tmp_tmp, 0)) {
1580   {
1581     UQI opval = ORQI (ANDQI (CPU (h_iccr[((FLD (f_CCi)) & (3))]), 7), 4);
1582     sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);
1583     written |= (1 << 7);
1584     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1585   }
1586 } else {
1587 if (LTSI (tmp_tmp, 0)) {
1588   {
1589     UQI opval = ORQI (ANDQI (CPU (h_iccr[((FLD (f_CCi)) & (3))]), 11), 8);
1590     sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);
1591     written |= (1 << 7);
1592     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1593   }
1594 } else {
1595   {
1596     UQI opval = ANDQI (CPU (h_iccr[((FLD (f_CCi)) & (3))]), 3);
1597     sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);
1598     written |= (1 << 7);
1599     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1600   }
1601 }
1602 }
1603 }
1604 }
1605
1606   abuf->written = written;
1607   return vpc;
1608 #undef FLD
1609 }
1610
1611 /* cxorcc: cxorcc$pack $GRi,$GRj,$GRk,$CCi,$cond */
1612
1613 static SEM_PC
1614 SEM_FN_NAME (frvbf,cxorcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1615 {
1616 #define FLD(f) abuf->fields.sfmt_caddcc.f
1617   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1618   int UNUSED written = 0;
1619   IADDR UNUSED pc = abuf->addr;
1620   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1621
1622 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
1623 {
1624   SI tmp_tmp;
1625   tmp_tmp = XORSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
1626   {
1627     SI opval = tmp_tmp;
1628     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1629     written |= (1 << 6);
1630     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1631   }
1632 if (EQSI (tmp_tmp, 0)) {
1633   {
1634     UQI opval = ORQI (ANDQI (CPU (h_iccr[((FLD (f_CCi)) & (3))]), 7), 4);
1635     sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);
1636     written |= (1 << 7);
1637     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1638   }
1639 } else {
1640 if (LTSI (tmp_tmp, 0)) {
1641   {
1642     UQI opval = ORQI (ANDQI (CPU (h_iccr[((FLD (f_CCi)) & (3))]), 11), 8);
1643     sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);
1644     written |= (1 << 7);
1645     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1646   }
1647 } else {
1648   {
1649     UQI opval = ANDQI (CPU (h_iccr[((FLD (f_CCi)) & (3))]), 3);
1650     sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);
1651     written |= (1 << 7);
1652     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1653   }
1654 }
1655 }
1656 }
1657 }
1658
1659   abuf->written = written;
1660   return vpc;
1661 #undef FLD
1662 }
1663
1664 /* csllcc: csllcc$pack $GRi,$GRj,$GRk,$CCi,$cond */
1665
1666 static SEM_PC
1667 SEM_FN_NAME (frvbf,csllcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1668 {
1669 #define FLD(f) abuf->fields.sfmt_caddcc.f
1670   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1671   int UNUSED written = 0;
1672   IADDR UNUSED pc = abuf->addr;
1673   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1674
1675 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
1676 {
1677   SI tmp_shift;
1678   SI tmp_tmp;
1679   QI tmp_cc;
1680   tmp_shift = ANDSI (GET_H_GR (FLD (f_GRj)), 31);
1681   tmp_cc = frvbf_set_icc_for_shift_left (current_cpu, GET_H_GR (FLD (f_GRi)), tmp_shift, CPU (h_iccr[((FLD (f_CCi)) & (3))]));
1682   tmp_tmp = SLLSI (GET_H_GR (FLD (f_GRi)), tmp_shift);
1683   {
1684     SI opval = tmp_tmp;
1685     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1686     written |= (1 << 6);
1687     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1688   }
1689 if (EQSI (tmp_tmp, 0)) {
1690   tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
1691 } else {
1692 if (LTSI (tmp_tmp, 0)) {
1693   tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
1694 } else {
1695   tmp_cc = ANDQI (tmp_cc, 3);
1696 }
1697 }
1698   {
1699     UQI opval = tmp_cc;
1700     sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);
1701     written |= (1 << 7);
1702     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1703   }
1704 }
1705 }
1706
1707   abuf->written = written;
1708   return vpc;
1709 #undef FLD
1710 }
1711
1712 /* csrlcc: csrlcc$pack $GRi,$GRj,$GRk,$CCi,$cond */
1713
1714 static SEM_PC
1715 SEM_FN_NAME (frvbf,csrlcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1716 {
1717 #define FLD(f) abuf->fields.sfmt_caddcc.f
1718   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1719   int UNUSED written = 0;
1720   IADDR UNUSED pc = abuf->addr;
1721   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1722
1723 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
1724 {
1725   SI tmp_shift;
1726   SI tmp_tmp;
1727   QI tmp_cc;
1728   tmp_shift = ANDSI (GET_H_GR (FLD (f_GRj)), 31);
1729   tmp_cc = frvbf_set_icc_for_shift_right (current_cpu, GET_H_GR (FLD (f_GRi)), tmp_shift, CPU (h_iccr[((FLD (f_CCi)) & (3))]));
1730   tmp_tmp = SRLSI (GET_H_GR (FLD (f_GRi)), tmp_shift);
1731   {
1732     SI opval = tmp_tmp;
1733     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1734     written |= (1 << 6);
1735     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1736   }
1737 if (EQSI (tmp_tmp, 0)) {
1738   tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
1739 } else {
1740 if (LTSI (tmp_tmp, 0)) {
1741   tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
1742 } else {
1743   tmp_cc = ANDQI (tmp_cc, 3);
1744 }
1745 }
1746   {
1747     UQI opval = tmp_cc;
1748     sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);
1749     written |= (1 << 7);
1750     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1751   }
1752 }
1753 }
1754
1755   abuf->written = written;
1756   return vpc;
1757 #undef FLD
1758 }
1759
1760 /* csracc: csracc$pack $GRi,$GRj,$GRk,$CCi,$cond */
1761
1762 static SEM_PC
1763 SEM_FN_NAME (frvbf,csracc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1764 {
1765 #define FLD(f) abuf->fields.sfmt_caddcc.f
1766   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1767   int UNUSED written = 0;
1768   IADDR UNUSED pc = abuf->addr;
1769   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1770
1771 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
1772 {
1773   SI tmp_shift;
1774   SI tmp_tmp;
1775   QI tmp_cc;
1776   tmp_shift = ANDSI (GET_H_GR (FLD (f_GRj)), 31);
1777   tmp_cc = frvbf_set_icc_for_shift_right (current_cpu, GET_H_GR (FLD (f_GRi)), tmp_shift, CPU (h_iccr[((FLD (f_CCi)) & (3))]));
1778   tmp_tmp = SRASI (GET_H_GR (FLD (f_GRi)), tmp_shift);
1779   {
1780     SI opval = tmp_tmp;
1781     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1782     written |= (1 << 6);
1783     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1784   }
1785 if (EQSI (tmp_tmp, 0)) {
1786   tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
1787 } else {
1788 if (LTSI (tmp_tmp, 0)) {
1789   tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
1790 } else {
1791   tmp_cc = ANDQI (tmp_cc, 3);
1792 }
1793 }
1794   {
1795     UQI opval = tmp_cc;
1796     sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);
1797     written |= (1 << 7);
1798     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1799   }
1800 }
1801 }
1802
1803   abuf->written = written;
1804   return vpc;
1805 #undef FLD
1806 }
1807
1808 /* addx: addx$pack $GRi,$GRj,$GRk,$ICCi_1 */
1809
1810 static SEM_PC
1811 SEM_FN_NAME (frvbf,addx) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1812 {
1813 #define FLD(f) abuf->fields.sfmt_addcc.f
1814   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1815   int UNUSED written = 0;
1816   IADDR UNUSED pc = abuf->addr;
1817   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1818
1819   {
1820     SI opval = ADDCSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 1)));
1821     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1822     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1823   }
1824
1825   return vpc;
1826 #undef FLD
1827 }
1828
1829 /* subx: subx$pack $GRi,$GRj,$GRk,$ICCi_1 */
1830
1831 static SEM_PC
1832 SEM_FN_NAME (frvbf,subx) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1833 {
1834 #define FLD(f) abuf->fields.sfmt_addcc.f
1835   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1836   int UNUSED written = 0;
1837   IADDR UNUSED pc = abuf->addr;
1838   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1839
1840   {
1841     SI opval = SUBCSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 1)));
1842     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1843     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1844   }
1845
1846   return vpc;
1847 #undef FLD
1848 }
1849
1850 /* addxcc: addxcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
1851
1852 static SEM_PC
1853 SEM_FN_NAME (frvbf,addxcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1854 {
1855 #define FLD(f) abuf->fields.sfmt_addcc.f
1856   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1857   int UNUSED written = 0;
1858   IADDR UNUSED pc = abuf->addr;
1859   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1860
1861 {
1862   SI tmp_tmp;
1863   QI tmp_cc;
1864   tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
1865   tmp_tmp = ADDCSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), TRUNCQIBI (ANDQI (tmp_cc, 1)));
1866 if (EQSI (ADDOFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), TRUNCQIBI (ANDQI (tmp_cc, 1))), 0)) {
1867   tmp_cc = ANDQI (tmp_cc, 13);
1868 } else {
1869   tmp_cc = ORQI (tmp_cc, 2);
1870 }
1871 if (EQSI (ADDCFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), TRUNCQIBI (ANDQI (tmp_cc, 1))), 0)) {
1872   tmp_cc = ANDQI (tmp_cc, 14);
1873 } else {
1874   tmp_cc = ORQI (tmp_cc, 1);
1875 }
1876 if (EQSI (tmp_tmp, 0)) {
1877   tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
1878 } else {
1879 if (LTSI (tmp_tmp, 0)) {
1880   tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
1881 } else {
1882   tmp_cc = ANDQI (tmp_cc, 3);
1883 }
1884 }
1885   {
1886     SI opval = tmp_tmp;
1887     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1888     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1889   }
1890   {
1891     UQI opval = tmp_cc;
1892     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1893     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1894   }
1895 }
1896
1897   return vpc;
1898 #undef FLD
1899 }
1900
1901 /* subxcc: subxcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
1902
1903 static SEM_PC
1904 SEM_FN_NAME (frvbf,subxcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1905 {
1906 #define FLD(f) abuf->fields.sfmt_addcc.f
1907   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1908   int UNUSED written = 0;
1909   IADDR UNUSED pc = abuf->addr;
1910   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1911
1912 {
1913   SI tmp_tmp;
1914   QI tmp_cc;
1915   tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
1916   tmp_tmp = SUBCSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), TRUNCQIBI (ANDQI (tmp_cc, 1)));
1917 if (EQSI (SUBOFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), TRUNCQIBI (ANDQI (tmp_cc, 1))), 0)) {
1918   tmp_cc = ANDQI (tmp_cc, 13);
1919 } else {
1920   tmp_cc = ORQI (tmp_cc, 2);
1921 }
1922 if (EQSI (SUBCFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), TRUNCQIBI (ANDQI (tmp_cc, 1))), 0)) {
1923   tmp_cc = ANDQI (tmp_cc, 14);
1924 } else {
1925   tmp_cc = ORQI (tmp_cc, 1);
1926 }
1927 if (EQSI (tmp_tmp, 0)) {
1928   tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
1929 } else {
1930 if (LTSI (tmp_tmp, 0)) {
1931   tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
1932 } else {
1933   tmp_cc = ANDQI (tmp_cc, 3);
1934 }
1935 }
1936   {
1937     SI opval = tmp_tmp;
1938     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1939     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1940   }
1941   {
1942     UQI opval = tmp_cc;
1943     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1944     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1945   }
1946 }
1947
1948   return vpc;
1949 #undef FLD
1950 }
1951
1952 /* addi: addi$pack $GRi,$s12,$GRk */
1953
1954 static SEM_PC
1955 SEM_FN_NAME (frvbf,addi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1956 {
1957 #define FLD(f) abuf->fields.sfmt_swapi.f
1958   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1959   int UNUSED written = 0;
1960   IADDR UNUSED pc = abuf->addr;
1961   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1962
1963   {
1964     SI opval = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
1965     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1966     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1967   }
1968
1969   return vpc;
1970 #undef FLD
1971 }
1972
1973 /* subi: subi$pack $GRi,$s12,$GRk */
1974
1975 static SEM_PC
1976 SEM_FN_NAME (frvbf,subi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1977 {
1978 #define FLD(f) abuf->fields.sfmt_swapi.f
1979   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1980   int UNUSED written = 0;
1981   IADDR UNUSED pc = abuf->addr;
1982   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1983
1984   {
1985     SI opval = SUBSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
1986     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1987     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1988   }
1989
1990   return vpc;
1991 #undef FLD
1992 }
1993
1994 /* andi: andi$pack $GRi,$s12,$GRk */
1995
1996 static SEM_PC
1997 SEM_FN_NAME (frvbf,andi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1998 {
1999 #define FLD(f) abuf->fields.sfmt_swapi.f
2000   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2001   int UNUSED written = 0;
2002   IADDR UNUSED pc = abuf->addr;
2003   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2004
2005   {
2006     SI opval = ANDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
2007     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2008     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2009   }
2010
2011   return vpc;
2012 #undef FLD
2013 }
2014
2015 /* ori: ori$pack $GRi,$s12,$GRk */
2016
2017 static SEM_PC
2018 SEM_FN_NAME (frvbf,ori) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2019 {
2020 #define FLD(f) abuf->fields.sfmt_swapi.f
2021   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2022   int UNUSED written = 0;
2023   IADDR UNUSED pc = abuf->addr;
2024   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2025
2026   {
2027     SI opval = ORSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
2028     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2029     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2030   }
2031
2032   return vpc;
2033 #undef FLD
2034 }
2035
2036 /* xori: xori$pack $GRi,$s12,$GRk */
2037
2038 static SEM_PC
2039 SEM_FN_NAME (frvbf,xori) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2040 {
2041 #define FLD(f) abuf->fields.sfmt_swapi.f
2042   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2043   int UNUSED written = 0;
2044   IADDR UNUSED pc = abuf->addr;
2045   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2046
2047   {
2048     SI opval = XORSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
2049     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2050     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2051   }
2052
2053   return vpc;
2054 #undef FLD
2055 }
2056
2057 /* sdivi: sdivi$pack $GRi,$s12,$GRk */
2058
2059 static SEM_PC
2060 SEM_FN_NAME (frvbf,sdivi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2061 {
2062 #define FLD(f) abuf->fields.sfmt_swapi.f
2063   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2064   int UNUSED written = 0;
2065   IADDR UNUSED pc = abuf->addr;
2066   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2067
2068 {
2069 frvbf_signed_integer_divide (current_cpu, GET_H_GR (FLD (f_GRi)), FLD (f_d12), FLD (f_GRk), 0);
2070 ; /*clobber*/
2071 }
2072
2073   return vpc;
2074 #undef FLD
2075 }
2076
2077 /* nsdivi: nsdivi$pack $GRi,$s12,$GRk */
2078
2079 static SEM_PC
2080 SEM_FN_NAME (frvbf,nsdivi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2081 {
2082 #define FLD(f) abuf->fields.sfmt_swapi.f
2083   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2084   int UNUSED written = 0;
2085   IADDR UNUSED pc = abuf->addr;
2086   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2087
2088 {
2089 frvbf_signed_integer_divide (current_cpu, GET_H_GR (FLD (f_GRi)), FLD (f_d12), FLD (f_GRk), 1);
2090 ; /*clobber*/
2091 }
2092
2093   return vpc;
2094 #undef FLD
2095 }
2096
2097 /* udivi: udivi$pack $GRi,$s12,$GRk */
2098
2099 static SEM_PC
2100 SEM_FN_NAME (frvbf,udivi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2101 {
2102 #define FLD(f) abuf->fields.sfmt_swapi.f
2103   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2104   int UNUSED written = 0;
2105   IADDR UNUSED pc = abuf->addr;
2106   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2107
2108 {
2109 frvbf_unsigned_integer_divide (current_cpu, GET_H_GR (FLD (f_GRi)), FLD (f_d12), FLD (f_GRk), 0);
2110 ; /*clobber*/
2111 }
2112
2113   return vpc;
2114 #undef FLD
2115 }
2116
2117 /* nudivi: nudivi$pack $GRi,$s12,$GRk */
2118
2119 static SEM_PC
2120 SEM_FN_NAME (frvbf,nudivi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2121 {
2122 #define FLD(f) abuf->fields.sfmt_swapi.f
2123   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2124   int UNUSED written = 0;
2125   IADDR UNUSED pc = abuf->addr;
2126   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2127
2128 {
2129 frvbf_unsigned_integer_divide (current_cpu, GET_H_GR (FLD (f_GRi)), FLD (f_d12), FLD (f_GRk), 1);
2130 ; /*clobber*/
2131 }
2132
2133   return vpc;
2134 #undef FLD
2135 }
2136
2137 /* smuli: smuli$pack $GRi,$s12,$GRdoublek */
2138
2139 static SEM_PC
2140 SEM_FN_NAME (frvbf,smuli) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2141 {
2142 #define FLD(f) abuf->fields.sfmt_smuli.f
2143   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2144   int UNUSED written = 0;
2145   IADDR UNUSED pc = abuf->addr;
2146   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2147
2148   {
2149     DI opval = MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi))), EXTSIDI (FLD (f_d12)));
2150     sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
2151     TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
2152   }
2153
2154   return vpc;
2155 #undef FLD
2156 }
2157
2158 /* umuli: umuli$pack $GRi,$s12,$GRdoublek */
2159
2160 static SEM_PC
2161 SEM_FN_NAME (frvbf,umuli) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2162 {
2163 #define FLD(f) abuf->fields.sfmt_smuli.f
2164   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2165   int UNUSED written = 0;
2166   IADDR UNUSED pc = abuf->addr;
2167   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2168
2169   {
2170     DI opval = MULDI (ZEXTSIDI (GET_H_GR (FLD (f_GRi))), ZEXTSIDI (FLD (f_d12)));
2171     sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
2172     TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
2173   }
2174
2175   return vpc;
2176 #undef FLD
2177 }
2178
2179 /* slli: slli$pack $GRi,$s12,$GRk */
2180
2181 static SEM_PC
2182 SEM_FN_NAME (frvbf,slli) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2183 {
2184 #define FLD(f) abuf->fields.sfmt_swapi.f
2185   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2186   int UNUSED written = 0;
2187   IADDR UNUSED pc = abuf->addr;
2188   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2189
2190   {
2191     SI opval = SLLSI (GET_H_GR (FLD (f_GRi)), ANDSI (FLD (f_d12), 31));
2192     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2193     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2194   }
2195
2196   return vpc;
2197 #undef FLD
2198 }
2199
2200 /* srli: srli$pack $GRi,$s12,$GRk */
2201
2202 static SEM_PC
2203 SEM_FN_NAME (frvbf,srli) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2204 {
2205 #define FLD(f) abuf->fields.sfmt_swapi.f
2206   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2207   int UNUSED written = 0;
2208   IADDR UNUSED pc = abuf->addr;
2209   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2210
2211   {
2212     SI opval = SRLSI (GET_H_GR (FLD (f_GRi)), ANDSI (FLD (f_d12), 31));
2213     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2214     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2215   }
2216
2217   return vpc;
2218 #undef FLD
2219 }
2220
2221 /* srai: srai$pack $GRi,$s12,$GRk */
2222
2223 static SEM_PC
2224 SEM_FN_NAME (frvbf,srai) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2225 {
2226 #define FLD(f) abuf->fields.sfmt_swapi.f
2227   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2228   int UNUSED written = 0;
2229   IADDR UNUSED pc = abuf->addr;
2230   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2231
2232   {
2233     SI opval = SRASI (GET_H_GR (FLD (f_GRi)), ANDSI (FLD (f_d12), 31));
2234     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2235     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2236   }
2237
2238   return vpc;
2239 #undef FLD
2240 }
2241
2242 /* scani: scani$pack $GRi,$s12,$GRk */
2243
2244 static SEM_PC
2245 SEM_FN_NAME (frvbf,scani) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2246 {
2247 #define FLD(f) abuf->fields.sfmt_swapi.f
2248   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2249   int UNUSED written = 0;
2250   IADDR UNUSED pc = abuf->addr;
2251   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2252
2253 {
2254   SI tmp_tmp1;
2255   SI tmp_tmp2;
2256   tmp_tmp1 = GET_H_GR (FLD (f_GRi));
2257   tmp_tmp2 = SRASI (FLD (f_d12), 1);
2258   {
2259     SI opval = frvbf_scan_result (current_cpu, XORSI (tmp_tmp1, tmp_tmp2));
2260     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2261     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2262   }
2263 }
2264
2265   return vpc;
2266 #undef FLD
2267 }
2268
2269 /* addicc: addicc$pack $GRi,$s10,$GRk,$ICCi_1 */
2270
2271 static SEM_PC
2272 SEM_FN_NAME (frvbf,addicc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2273 {
2274 #define FLD(f) abuf->fields.sfmt_addicc.f
2275   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2276   int UNUSED written = 0;
2277   IADDR UNUSED pc = abuf->addr;
2278   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2279
2280 {
2281   BI tmp_tmp;
2282   QI tmp_cc;
2283   SI tmp_result;
2284   tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
2285   tmp_tmp = ADDOFSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), 0);
2286 if (EQBI (tmp_tmp, 0)) {
2287   tmp_cc = ANDQI (tmp_cc, 13);
2288 } else {
2289   tmp_cc = ORQI (tmp_cc, 2);
2290 }
2291   tmp_tmp = ADDCFSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), 0);
2292 if (EQBI (tmp_tmp, 0)) {
2293   tmp_cc = ANDQI (tmp_cc, 14);
2294 } else {
2295   tmp_cc = ORQI (tmp_cc, 1);
2296 }
2297   tmp_result = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10));
2298 if (EQSI (tmp_result, 0)) {
2299   tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
2300 } else {
2301 if (LTSI (tmp_result, 0)) {
2302   tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
2303 } else {
2304   tmp_cc = ANDQI (tmp_cc, 3);
2305 }
2306 }
2307   {
2308     SI opval = tmp_result;
2309     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2310     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2311   }
2312   {
2313     UQI opval = tmp_cc;
2314     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2315     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2316   }
2317 }
2318
2319   return vpc;
2320 #undef FLD
2321 }
2322
2323 /* subicc: subicc$pack $GRi,$s10,$GRk,$ICCi_1 */
2324
2325 static SEM_PC
2326 SEM_FN_NAME (frvbf,subicc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2327 {
2328 #define FLD(f) abuf->fields.sfmt_addicc.f
2329   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2330   int UNUSED written = 0;
2331   IADDR UNUSED pc = abuf->addr;
2332   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2333
2334 {
2335   BI tmp_tmp;
2336   QI tmp_cc;
2337   SI tmp_result;
2338   tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
2339   tmp_tmp = SUBOFSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), 0);
2340 if (EQBI (tmp_tmp, 0)) {
2341   tmp_cc = ANDQI (tmp_cc, 13);
2342 } else {
2343   tmp_cc = ORQI (tmp_cc, 2);
2344 }
2345   tmp_tmp = SUBCFSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), 0);
2346 if (EQBI (tmp_tmp, 0)) {
2347   tmp_cc = ANDQI (tmp_cc, 14);
2348 } else {
2349   tmp_cc = ORQI (tmp_cc, 1);
2350 }
2351   tmp_result = SUBSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10));
2352 if (EQSI (tmp_result, 0)) {
2353   tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
2354 } else {
2355 if (LTSI (tmp_result, 0)) {
2356   tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
2357 } else {
2358   tmp_cc = ANDQI (tmp_cc, 3);
2359 }
2360 }
2361   {
2362     SI opval = tmp_result;
2363     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2364     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2365   }
2366   {
2367     UQI opval = tmp_cc;
2368     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2369     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2370   }
2371 }
2372
2373   return vpc;
2374 #undef FLD
2375 }
2376
2377 /* andicc: andicc$pack $GRi,$s10,$GRk,$ICCi_1 */
2378
2379 static SEM_PC
2380 SEM_FN_NAME (frvbf,andicc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2381 {
2382 #define FLD(f) abuf->fields.sfmt_addicc.f
2383   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2384   int UNUSED written = 0;
2385   IADDR UNUSED pc = abuf->addr;
2386   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2387
2388 {
2389   SI tmp_tmp;
2390   tmp_tmp = ANDSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10));
2391   {
2392     SI opval = tmp_tmp;
2393     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2394     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2395   }
2396 if (EQSI (tmp_tmp, 0)) {
2397   {
2398     UQI opval = ORQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 7), 4);
2399     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2400     written |= (1 << 4);
2401     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2402   }
2403 } else {
2404 if (LTSI (tmp_tmp, 0)) {
2405   {
2406     UQI opval = ORQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 11), 8);
2407     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2408     written |= (1 << 4);
2409     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2410   }
2411 } else {
2412   {
2413     UQI opval = ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 3);
2414     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2415     written |= (1 << 4);
2416     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2417   }
2418 }
2419 }
2420 }
2421
2422   abuf->written = written;
2423   return vpc;
2424 #undef FLD
2425 }
2426
2427 /* oricc: oricc$pack $GRi,$s10,$GRk,$ICCi_1 */
2428
2429 static SEM_PC
2430 SEM_FN_NAME (frvbf,oricc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2431 {
2432 #define FLD(f) abuf->fields.sfmt_addicc.f
2433   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2434   int UNUSED written = 0;
2435   IADDR UNUSED pc = abuf->addr;
2436   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2437
2438 {
2439   SI tmp_tmp;
2440   tmp_tmp = ORSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10));
2441   {
2442     SI opval = tmp_tmp;
2443     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2444     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2445   }
2446 if (EQSI (tmp_tmp, 0)) {
2447   {
2448     UQI opval = ORQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 7), 4);
2449     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2450     written |= (1 << 4);
2451     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2452   }
2453 } else {
2454 if (LTSI (tmp_tmp, 0)) {
2455   {
2456     UQI opval = ORQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 11), 8);
2457     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2458     written |= (1 << 4);
2459     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2460   }
2461 } else {
2462   {
2463     UQI opval = ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 3);
2464     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2465     written |= (1 << 4);
2466     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2467   }
2468 }
2469 }
2470 }
2471
2472   abuf->written = written;
2473   return vpc;
2474 #undef FLD
2475 }
2476
2477 /* xoricc: xoricc$pack $GRi,$s10,$GRk,$ICCi_1 */
2478
2479 static SEM_PC
2480 SEM_FN_NAME (frvbf,xoricc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2481 {
2482 #define FLD(f) abuf->fields.sfmt_addicc.f
2483   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2484   int UNUSED written = 0;
2485   IADDR UNUSED pc = abuf->addr;
2486   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2487
2488 {
2489   SI tmp_tmp;
2490   tmp_tmp = XORSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10));
2491   {
2492     SI opval = tmp_tmp;
2493     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2494     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2495   }
2496 if (EQSI (tmp_tmp, 0)) {
2497   {
2498     UQI opval = ORQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 7), 4);
2499     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2500     written |= (1 << 4);
2501     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2502   }
2503 } else {
2504 if (LTSI (tmp_tmp, 0)) {
2505   {
2506     UQI opval = ORQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 11), 8);
2507     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2508     written |= (1 << 4);
2509     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2510   }
2511 } else {
2512   {
2513     UQI opval = ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 3);
2514     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2515     written |= (1 << 4);
2516     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2517   }
2518 }
2519 }
2520 }
2521
2522   abuf->written = written;
2523   return vpc;
2524 #undef FLD
2525 }
2526
2527 /* smulicc: smulicc$pack $GRi,$s10,$GRdoublek,$ICCi_1 */
2528
2529 static SEM_PC
2530 SEM_FN_NAME (frvbf,smulicc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2531 {
2532 #define FLD(f) abuf->fields.sfmt_smulicc.f
2533   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2534   int UNUSED written = 0;
2535   IADDR UNUSED pc = abuf->addr;
2536   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2537
2538 {
2539   DI tmp_tmp;
2540   QI tmp_cc;
2541   tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
2542   tmp_tmp = MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi))), EXTSIDI (FLD (f_s10)));
2543 if (EQDI (SRLDI (tmp_tmp, 63), 0)) {
2544   tmp_cc = ANDQI (tmp_cc, 7);
2545 } else {
2546   tmp_cc = ORQI (tmp_cc, 8);
2547 }
2548 if (EQBI (EQDI (tmp_tmp, 0), 0)) {
2549   tmp_cc = ANDQI (tmp_cc, 11);
2550 } else {
2551   tmp_cc = ORQI (tmp_cc, 4);
2552 }
2553   {
2554     DI opval = tmp_tmp;
2555     sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
2556     TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
2557   }
2558   {
2559     UQI opval = tmp_cc;
2560     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2561     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2562   }
2563 }
2564
2565   return vpc;
2566 #undef FLD
2567 }
2568
2569 /* umulicc: umulicc$pack $GRi,$s10,$GRdoublek,$ICCi_1 */
2570
2571 static SEM_PC
2572 SEM_FN_NAME (frvbf,umulicc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2573 {
2574 #define FLD(f) abuf->fields.sfmt_smulicc.f
2575   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2576   int UNUSED written = 0;
2577   IADDR UNUSED pc = abuf->addr;
2578   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2579
2580 {
2581   DI tmp_tmp;
2582   QI tmp_cc;
2583   tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
2584   tmp_tmp = MULDI (ZEXTSIDI (GET_H_GR (FLD (f_GRi))), ZEXTSIDI (FLD (f_s10)));
2585 if (EQDI (SRLDI (tmp_tmp, 63), 0)) {
2586   tmp_cc = ANDQI (tmp_cc, 7);
2587 } else {
2588   tmp_cc = ORQI (tmp_cc, 8);
2589 }
2590 if (EQBI (EQDI (tmp_tmp, 0), 0)) {
2591   tmp_cc = ANDQI (tmp_cc, 11);
2592 } else {
2593   tmp_cc = ORQI (tmp_cc, 4);
2594 }
2595   {
2596     DI opval = tmp_tmp;
2597     sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
2598     TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
2599   }
2600   {
2601     UQI opval = tmp_cc;
2602     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2603     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2604   }
2605 }
2606
2607   return vpc;
2608 #undef FLD
2609 }
2610
2611 /* sllicc: sllicc$pack $GRi,$s10,$GRk,$ICCi_1 */
2612
2613 static SEM_PC
2614 SEM_FN_NAME (frvbf,sllicc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2615 {
2616 #define FLD(f) abuf->fields.sfmt_addicc.f
2617   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2618   int UNUSED written = 0;
2619   IADDR UNUSED pc = abuf->addr;
2620   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2621
2622 {
2623   SI tmp_shift;
2624   SI tmp_tmp;
2625   QI tmp_cc;
2626   tmp_shift = ANDSI (FLD (f_s10), 31);
2627   tmp_cc = frvbf_set_icc_for_shift_left (current_cpu, GET_H_GR (FLD (f_GRi)), tmp_shift, CPU (h_iccr[FLD (f_ICCi_1)]));
2628   tmp_tmp = SLLSI (GET_H_GR (FLD (f_GRi)), tmp_shift);
2629   {
2630     SI opval = tmp_tmp;
2631     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2632     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2633   }
2634 if (EQSI (tmp_tmp, 0)) {
2635   tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
2636 } else {
2637 if (LTSI (tmp_tmp, 0)) {
2638   tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
2639 } else {
2640   tmp_cc = ANDQI (tmp_cc, 3);
2641 }
2642 }
2643   {
2644     UQI opval = tmp_cc;
2645     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2646     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2647   }
2648 }
2649
2650   return vpc;
2651 #undef FLD
2652 }
2653
2654 /* srlicc: srlicc$pack $GRi,$s10,$GRk,$ICCi_1 */
2655
2656 static SEM_PC
2657 SEM_FN_NAME (frvbf,srlicc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2658 {
2659 #define FLD(f) abuf->fields.sfmt_addicc.f
2660   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2661   int UNUSED written = 0;
2662   IADDR UNUSED pc = abuf->addr;
2663   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2664
2665 {
2666   SI tmp_shift;
2667   SI tmp_tmp;
2668   QI tmp_cc;
2669   tmp_shift = ANDSI (FLD (f_s10), 31);
2670   tmp_cc = frvbf_set_icc_for_shift_right (current_cpu, GET_H_GR (FLD (f_GRi)), tmp_shift, CPU (h_iccr[FLD (f_ICCi_1)]));
2671   tmp_tmp = SRLSI (GET_H_GR (FLD (f_GRi)), tmp_shift);
2672   {
2673     SI opval = tmp_tmp;
2674     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2675     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2676   }
2677 if (EQSI (tmp_tmp, 0)) {
2678   tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
2679 } else {
2680 if (LTSI (tmp_tmp, 0)) {
2681   tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
2682 } else {
2683   tmp_cc = ANDQI (tmp_cc, 3);
2684 }
2685 }
2686   {
2687     UQI opval = tmp_cc;
2688     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2689     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2690   }
2691 }
2692
2693   return vpc;
2694 #undef FLD
2695 }
2696
2697 /* sraicc: sraicc$pack $GRi,$s10,$GRk,$ICCi_1 */
2698
2699 static SEM_PC
2700 SEM_FN_NAME (frvbf,sraicc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2701 {
2702 #define FLD(f) abuf->fields.sfmt_addicc.f
2703   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2704   int UNUSED written = 0;
2705   IADDR UNUSED pc = abuf->addr;
2706   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2707
2708 {
2709   SI tmp_shift;
2710   SI tmp_tmp;
2711   QI tmp_cc;
2712   tmp_shift = ANDSI (FLD (f_s10), 31);
2713   tmp_cc = frvbf_set_icc_for_shift_right (current_cpu, GET_H_GR (FLD (f_GRi)), tmp_shift, CPU (h_iccr[FLD (f_ICCi_1)]));
2714   tmp_tmp = SRASI (GET_H_GR (FLD (f_GRi)), tmp_shift);
2715   {
2716     SI opval = tmp_tmp;
2717     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2718     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2719   }
2720 if (EQSI (tmp_tmp, 0)) {
2721   tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
2722 } else {
2723 if (LTSI (tmp_tmp, 0)) {
2724   tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
2725 } else {
2726   tmp_cc = ANDQI (tmp_cc, 3);
2727 }
2728 }
2729   {
2730     UQI opval = tmp_cc;
2731     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2732     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2733   }
2734 }
2735
2736   return vpc;
2737 #undef FLD
2738 }
2739
2740 /* addxi: addxi$pack $GRi,$s10,$GRk,$ICCi_1 */
2741
2742 static SEM_PC
2743 SEM_FN_NAME (frvbf,addxi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2744 {
2745 #define FLD(f) abuf->fields.sfmt_addicc.f
2746   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2747   int UNUSED written = 0;
2748   IADDR UNUSED pc = abuf->addr;
2749   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2750
2751   {
2752     SI opval = ADDCSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 1)));
2753     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2754     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2755   }
2756
2757   return vpc;
2758 #undef FLD
2759 }
2760
2761 /* subxi: subxi$pack $GRi,$s10,$GRk,$ICCi_1 */
2762
2763 static SEM_PC
2764 SEM_FN_NAME (frvbf,subxi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2765 {
2766 #define FLD(f) abuf->fields.sfmt_addicc.f
2767   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2768   int UNUSED written = 0;
2769   IADDR UNUSED pc = abuf->addr;
2770   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2771
2772   {
2773     SI opval = SUBCSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 1)));
2774     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2775     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2776   }
2777
2778   return vpc;
2779 #undef FLD
2780 }
2781
2782 /* addxicc: addxicc$pack $GRi,$s10,$GRk,$ICCi_1 */
2783
2784 static SEM_PC
2785 SEM_FN_NAME (frvbf,addxicc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2786 {
2787 #define FLD(f) abuf->fields.sfmt_addicc.f
2788   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2789   int UNUSED written = 0;
2790   IADDR UNUSED pc = abuf->addr;
2791   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2792
2793 {
2794   SI tmp_tmp;
2795   QI tmp_cc;
2796   tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
2797   tmp_tmp = ADDCSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), TRUNCQIBI (ANDQI (tmp_cc, 1)));
2798 if (EQSI (ADDOFSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), TRUNCQIBI (ANDQI (tmp_cc, 1))), 0)) {
2799   tmp_cc = ANDQI (tmp_cc, 13);
2800 } else {
2801   tmp_cc = ORQI (tmp_cc, 2);
2802 }
2803 if (EQSI (ADDCFSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), TRUNCQIBI (ANDQI (tmp_cc, 1))), 0)) {
2804   tmp_cc = ANDQI (tmp_cc, 14);
2805 } else {
2806   tmp_cc = ORQI (tmp_cc, 1);
2807 }
2808 if (EQSI (tmp_tmp, 0)) {
2809   tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
2810 } else {
2811 if (LTSI (tmp_tmp, 0)) {
2812   tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
2813 } else {
2814   tmp_cc = ANDQI (tmp_cc, 3);
2815 }
2816 }
2817   {
2818     SI opval = tmp_tmp;
2819     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2820     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2821   }
2822   {
2823     UQI opval = tmp_cc;
2824     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2825     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2826   }
2827 }
2828
2829   return vpc;
2830 #undef FLD
2831 }
2832
2833 /* subxicc: subxicc$pack $GRi,$s10,$GRk,$ICCi_1 */
2834
2835 static SEM_PC
2836 SEM_FN_NAME (frvbf,subxicc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2837 {
2838 #define FLD(f) abuf->fields.sfmt_addicc.f
2839   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2840   int UNUSED written = 0;
2841   IADDR UNUSED pc = abuf->addr;
2842   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2843
2844 {
2845   SI tmp_tmp;
2846   QI tmp_cc;
2847   tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
2848   tmp_tmp = SUBCSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), TRUNCQIBI (ANDQI (tmp_cc, 1)));
2849 if (EQSI (SUBOFSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), TRUNCQIBI (ANDQI (tmp_cc, 1))), 0)) {
2850   tmp_cc = ANDQI (tmp_cc, 13);
2851 } else {
2852   tmp_cc = ORQI (tmp_cc, 2);
2853 }
2854 if (EQSI (SUBCFSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), TRUNCQIBI (ANDQI (tmp_cc, 1))), 0)) {
2855   tmp_cc = ANDQI (tmp_cc, 14);
2856 } else {
2857   tmp_cc = ORQI (tmp_cc, 1);
2858 }
2859 if (EQSI (tmp_tmp, 0)) {
2860   tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
2861 } else {
2862 if (LTSI (tmp_tmp, 0)) {
2863   tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
2864 } else {
2865   tmp_cc = ANDQI (tmp_cc, 3);
2866 }
2867 }
2868   {
2869     SI opval = tmp_tmp;
2870     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2871     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2872   }
2873   {
2874     UQI opval = tmp_cc;
2875     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2876     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2877   }
2878 }
2879
2880   return vpc;
2881 #undef FLD
2882 }
2883
2884 /* cmpb: cmpb$pack $GRi,$GRj,$ICCi_1 */
2885
2886 static SEM_PC
2887 SEM_FN_NAME (frvbf,cmpb) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2888 {
2889 #define FLD(f) abuf->fields.sfmt_smulcc.f
2890   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2891   int UNUSED written = 0;
2892   IADDR UNUSED pc = abuf->addr;
2893   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2894
2895 {
2896   QI tmp_cc;
2897 if (EQBI (EQSI (ANDSI (GET_H_GR (FLD (f_GRi)), 0xff000000), ANDSI (GET_H_GR (FLD (f_GRj)), 0xff000000)), 0)) {
2898   tmp_cc = ANDQI (tmp_cc, 7);
2899 } else {
2900   tmp_cc = ORQI (tmp_cc, 8);
2901 }
2902 if (EQBI (EQSI (ANDSI (GET_H_GR (FLD (f_GRi)), 16711680), ANDSI (GET_H_GR (FLD (f_GRj)), 16711680)), 0)) {
2903   tmp_cc = ANDQI (tmp_cc, 11);
2904 } else {
2905   tmp_cc = ORQI (tmp_cc, 4);
2906 }
2907 if (EQBI (EQSI (ANDSI (GET_H_GR (FLD (f_GRi)), 65280), ANDSI (GET_H_GR (FLD (f_GRj)), 65280)), 0)) {
2908   tmp_cc = ANDQI (tmp_cc, 13);
2909 } else {
2910   tmp_cc = ORQI (tmp_cc, 2);
2911 }
2912 if (EQBI (EQSI (ANDSI (GET_H_GR (FLD (f_GRi)), 255), ANDSI (GET_H_GR (FLD (f_GRj)), 255)), 0)) {
2913   tmp_cc = ANDQI (tmp_cc, 14);
2914 } else {
2915   tmp_cc = ORQI (tmp_cc, 1);
2916 }
2917   {
2918     UQI opval = tmp_cc;
2919     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2920     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2921   }
2922 }
2923
2924   return vpc;
2925 #undef FLD
2926 }
2927
2928 /* cmpba: cmpba$pack $GRi,$GRj,$ICCi_1 */
2929
2930 static SEM_PC
2931 SEM_FN_NAME (frvbf,cmpba) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2932 {
2933 #define FLD(f) abuf->fields.sfmt_smulcc.f
2934   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2935   int UNUSED written = 0;
2936   IADDR UNUSED pc = abuf->addr;
2937   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2938
2939 {
2940   QI tmp_cc;
2941   tmp_cc = 0;
2942 if (EQBI (ORIF (EQSI (ANDSI (GET_H_GR (FLD (f_GRi)), 0xff000000), ANDSI (GET_H_GR (FLD (f_GRj)), 0xff000000)), ORIF (EQSI (ANDSI (GET_H_GR (FLD (f_GRi)), 16711680), ANDSI (GET_H_GR (FLD (f_GRj)), 16711680)), ORIF (EQSI (ANDSI (GET_H_GR (FLD (f_GRi)), 65280), ANDSI (GET_H_GR (FLD (f_GRj)), 65280)), EQSI (ANDSI (GET_H_GR (FLD (f_GRi)), 255), ANDSI (GET_H_GR (FLD (f_GRj)), 255))))), 0)) {
2943   tmp_cc = ANDQI (tmp_cc, 14);
2944 } else {
2945   tmp_cc = ORQI (tmp_cc, 1);
2946 }
2947   {
2948     UQI opval = tmp_cc;
2949     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2950     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2951   }
2952 }
2953
2954   return vpc;
2955 #undef FLD
2956 }
2957
2958 /* setlo: setlo$pack $ulo16,$GRklo */
2959
2960 static SEM_PC
2961 SEM_FN_NAME (frvbf,setlo) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2962 {
2963 #define FLD(f) abuf->fields.sfmt_setlo.f
2964   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2965   int UNUSED written = 0;
2966   IADDR UNUSED pc = abuf->addr;
2967   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2968
2969   {
2970     UHI opval = FLD (f_u16);
2971     sim_queue_fn_hi_write (current_cpu, frvbf_h_gr_lo_set, FLD (f_GRk), opval);
2972     TRACE_RESULT (current_cpu, abuf, "gr_lo", 'x', opval);
2973   }
2974
2975   return vpc;
2976 #undef FLD
2977 }
2978
2979 /* sethi: sethi$pack $uhi16,$GRkhi */
2980
2981 static SEM_PC
2982 SEM_FN_NAME (frvbf,sethi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2983 {
2984 #define FLD(f) abuf->fields.sfmt_sethi.f
2985   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2986   int UNUSED written = 0;
2987   IADDR UNUSED pc = abuf->addr;
2988   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2989
2990   {
2991     UHI opval = FLD (f_u16);
2992     sim_queue_fn_hi_write (current_cpu, frvbf_h_gr_hi_set, FLD (f_GRk), opval);
2993     TRACE_RESULT (current_cpu, abuf, "gr_hi", 'x', opval);
2994   }
2995
2996   return vpc;
2997 #undef FLD
2998 }
2999
3000 /* setlos: setlos$pack $slo16,$GRk */
3001
3002 static SEM_PC
3003 SEM_FN_NAME (frvbf,setlos) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3004 {
3005 #define FLD(f) abuf->fields.sfmt_setlos.f
3006   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3007   int UNUSED written = 0;
3008   IADDR UNUSED pc = abuf->addr;
3009   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3010
3011   {
3012     SI opval = FLD (f_s16);
3013     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3014     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3015   }
3016
3017   return vpc;
3018 #undef FLD
3019 }
3020
3021 /* ldsb: ldsb$pack @($GRi,$GRj),$GRk */
3022
3023 static SEM_PC
3024 SEM_FN_NAME (frvbf,ldsb) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3025 {
3026 #define FLD(f) abuf->fields.sfmt_addcc.f
3027   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3028   int UNUSED written = 0;
3029   IADDR UNUSED pc = abuf->addr;
3030   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3031
3032   {
3033     SI opval = frvbf_read_mem_QI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3034     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3035     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3036   }
3037
3038   return vpc;
3039 #undef FLD
3040 }
3041
3042 /* ldub: ldub$pack @($GRi,$GRj),$GRk */
3043
3044 static SEM_PC
3045 SEM_FN_NAME (frvbf,ldub) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3046 {
3047 #define FLD(f) abuf->fields.sfmt_addcc.f
3048   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3049   int UNUSED written = 0;
3050   IADDR UNUSED pc = abuf->addr;
3051   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3052
3053   {
3054     SI opval = frvbf_read_mem_UQI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3055     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3056     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3057   }
3058
3059   return vpc;
3060 #undef FLD
3061 }
3062
3063 /* ldsh: ldsh$pack @($GRi,$GRj),$GRk */
3064
3065 static SEM_PC
3066 SEM_FN_NAME (frvbf,ldsh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3067 {
3068 #define FLD(f) abuf->fields.sfmt_addcc.f
3069   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3070   int UNUSED written = 0;
3071   IADDR UNUSED pc = abuf->addr;
3072   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3073
3074   {
3075     SI opval = frvbf_read_mem_HI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3076     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3077     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3078   }
3079
3080   return vpc;
3081 #undef FLD
3082 }
3083
3084 /* lduh: lduh$pack @($GRi,$GRj),$GRk */
3085
3086 static SEM_PC
3087 SEM_FN_NAME (frvbf,lduh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3088 {
3089 #define FLD(f) abuf->fields.sfmt_addcc.f
3090   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3091   int UNUSED written = 0;
3092   IADDR UNUSED pc = abuf->addr;
3093   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3094
3095   {
3096     SI opval = frvbf_read_mem_UHI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3097     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3098     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3099   }
3100
3101   return vpc;
3102 #undef FLD
3103 }
3104
3105 /* ld: ld$pack @($GRi,$GRj),$GRk */
3106
3107 static SEM_PC
3108 SEM_FN_NAME (frvbf,ld) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3109 {
3110 #define FLD(f) abuf->fields.sfmt_addcc.f
3111   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3112   int UNUSED written = 0;
3113   IADDR UNUSED pc = abuf->addr;
3114   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3115
3116   {
3117     SI opval = frvbf_read_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3118     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3119     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3120   }
3121
3122   return vpc;
3123 #undef FLD
3124 }
3125
3126 /* ldbf: ldbf$pack @($GRi,$GRj),$FRintk */
3127
3128 static SEM_PC
3129 SEM_FN_NAME (frvbf,ldbf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3130 {
3131 #define FLD(f) abuf->fields.sfmt_cldbfu.f
3132   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3133   int UNUSED written = 0;
3134   IADDR UNUSED pc = abuf->addr;
3135   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3136
3137   {
3138     SI opval = frvbf_read_mem_UQI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3139     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
3140     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
3141   }
3142
3143   return vpc;
3144 #undef FLD
3145 }
3146
3147 /* ldhf: ldhf$pack @($GRi,$GRj),$FRintk */
3148
3149 static SEM_PC
3150 SEM_FN_NAME (frvbf,ldhf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3151 {
3152 #define FLD(f) abuf->fields.sfmt_cldbfu.f
3153   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3154   int UNUSED written = 0;
3155   IADDR UNUSED pc = abuf->addr;
3156   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3157
3158   {
3159     SI opval = frvbf_read_mem_UHI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3160     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
3161     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
3162   }
3163
3164   return vpc;
3165 #undef FLD
3166 }
3167
3168 /* ldf: ldf$pack @($GRi,$GRj),$FRintk */
3169
3170 static SEM_PC
3171 SEM_FN_NAME (frvbf,ldf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3172 {
3173 #define FLD(f) abuf->fields.sfmt_cldbfu.f
3174   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3175   int UNUSED written = 0;
3176   IADDR UNUSED pc = abuf->addr;
3177   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3178
3179   {
3180     SI opval = frvbf_read_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3181     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
3182     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
3183   }
3184
3185   return vpc;
3186 #undef FLD
3187 }
3188
3189 /* ldc: ldc$pack @($GRi,$GRj),$CPRk */
3190
3191 static SEM_PC
3192 SEM_FN_NAME (frvbf,ldc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3193 {
3194 #define FLD(f) abuf->fields.sfmt_ldcu.f
3195   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3196   int UNUSED written = 0;
3197   IADDR UNUSED pc = abuf->addr;
3198   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3199
3200   {
3201     SI opval = frvbf_read_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3202     sim_queue_si_write (current_cpu, & CPU (h_cpr[FLD (f_CPRk)]), opval);
3203     TRACE_RESULT (current_cpu, abuf, "cpr", 'x', opval);
3204   }
3205
3206   return vpc;
3207 #undef FLD
3208 }
3209
3210 /* nldsb: nldsb$pack @($GRi,$GRj),$GRk */
3211
3212 static SEM_PC
3213 SEM_FN_NAME (frvbf,nldsb) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3214 {
3215 #define FLD(f) abuf->fields.sfmt_addcc.f
3216   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3217   int UNUSED written = 0;
3218   IADDR UNUSED pc = abuf->addr;
3219   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3220
3221 {
3222   BI tmp_do_op;
3223   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 1, 0);
3224 if (tmp_do_op) {
3225   {
3226     SI opval = frvbf_read_mem_QI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3227     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3228     written |= (1 << 6);
3229     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3230   }
3231 }
3232 }
3233
3234   abuf->written = written;
3235   return vpc;
3236 #undef FLD
3237 }
3238
3239 /* nldub: nldub$pack @($GRi,$GRj),$GRk */
3240
3241 static SEM_PC
3242 SEM_FN_NAME (frvbf,nldub) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3243 {
3244 #define FLD(f) abuf->fields.sfmt_addcc.f
3245   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3246   int UNUSED written = 0;
3247   IADDR UNUSED pc = abuf->addr;
3248   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3249
3250 {
3251   BI tmp_do_op;
3252   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 0, 0);
3253 if (tmp_do_op) {
3254   {
3255     SI opval = frvbf_read_mem_UQI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3256     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3257     written |= (1 << 6);
3258     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3259   }
3260 }
3261 }
3262
3263   abuf->written = written;
3264   return vpc;
3265 #undef FLD
3266 }
3267
3268 /* nldsh: nldsh$pack @($GRi,$GRj),$GRk */
3269
3270 static SEM_PC
3271 SEM_FN_NAME (frvbf,nldsh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3272 {
3273 #define FLD(f) abuf->fields.sfmt_addcc.f
3274   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3275   int UNUSED written = 0;
3276   IADDR UNUSED pc = abuf->addr;
3277   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3278
3279 {
3280   BI tmp_do_op;
3281   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 3, 0);
3282 if (tmp_do_op) {
3283   {
3284     SI opval = frvbf_read_mem_HI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3285     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3286     written |= (1 << 6);
3287     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3288   }
3289 }
3290 }
3291
3292   abuf->written = written;
3293   return vpc;
3294 #undef FLD
3295 }
3296
3297 /* nlduh: nlduh$pack @($GRi,$GRj),$GRk */
3298
3299 static SEM_PC
3300 SEM_FN_NAME (frvbf,nlduh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3301 {
3302 #define FLD(f) abuf->fields.sfmt_addcc.f
3303   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3304   int UNUSED written = 0;
3305   IADDR UNUSED pc = abuf->addr;
3306   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3307
3308 {
3309   BI tmp_do_op;
3310   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 2, 0);
3311 if (tmp_do_op) {
3312   {
3313     SI opval = frvbf_read_mem_UHI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3314     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3315     written |= (1 << 6);
3316     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3317   }
3318 }
3319 }
3320
3321   abuf->written = written;
3322   return vpc;
3323 #undef FLD
3324 }
3325
3326 /* nld: nld$pack @($GRi,$GRj),$GRk */
3327
3328 static SEM_PC
3329 SEM_FN_NAME (frvbf,nld) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3330 {
3331 #define FLD(f) abuf->fields.sfmt_addcc.f
3332   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3333   int UNUSED written = 0;
3334   IADDR UNUSED pc = abuf->addr;
3335   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3336
3337 {
3338   BI tmp_do_op;
3339   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 4, 0);
3340 if (tmp_do_op) {
3341   {
3342     SI opval = frvbf_read_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3343     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3344     written |= (1 << 6);
3345     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3346   }
3347 }
3348 }
3349
3350   abuf->written = written;
3351   return vpc;
3352 #undef FLD
3353 }
3354
3355 /* nldbf: nldbf$pack @($GRi,$GRj),$FRintk */
3356
3357 static SEM_PC
3358 SEM_FN_NAME (frvbf,nldbf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3359 {
3360 #define FLD(f) abuf->fields.sfmt_cldbfu.f
3361   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3362   int UNUSED written = 0;
3363   IADDR UNUSED pc = abuf->addr;
3364   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3365
3366 {
3367   BI tmp_do_op;
3368   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_FRk), 0, 0, 1);
3369 if (tmp_do_op) {
3370   {
3371     SI opval = frvbf_read_mem_UQI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3372     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
3373     written |= (1 << 6);
3374     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
3375   }
3376 }
3377 }
3378
3379   abuf->written = written;
3380   return vpc;
3381 #undef FLD
3382 }
3383
3384 /* nldhf: nldhf$pack @($GRi,$GRj),$FRintk */
3385
3386 static SEM_PC
3387 SEM_FN_NAME (frvbf,nldhf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3388 {
3389 #define FLD(f) abuf->fields.sfmt_cldbfu.f
3390   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3391   int UNUSED written = 0;
3392   IADDR UNUSED pc = abuf->addr;
3393   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3394
3395 {
3396   BI tmp_do_op;
3397   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_FRk), 0, 2, 1);
3398 if (tmp_do_op) {
3399   {
3400     SI opval = frvbf_read_mem_UHI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3401     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
3402     written |= (1 << 6);
3403     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
3404   }
3405 }
3406 }
3407
3408   abuf->written = written;
3409   return vpc;
3410 #undef FLD
3411 }
3412
3413 /* nldf: nldf$pack @($GRi,$GRj),$FRintk */
3414
3415 static SEM_PC
3416 SEM_FN_NAME (frvbf,nldf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3417 {
3418 #define FLD(f) abuf->fields.sfmt_cldbfu.f
3419   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3420   int UNUSED written = 0;
3421   IADDR UNUSED pc = abuf->addr;
3422   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3423
3424 {
3425   BI tmp_do_op;
3426   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_FRk), 0, 4, 1);
3427 if (tmp_do_op) {
3428   {
3429     SI opval = frvbf_read_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3430     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
3431     written |= (1 << 6);
3432     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
3433   }
3434 }
3435 }
3436
3437   abuf->written = written;
3438   return vpc;
3439 #undef FLD
3440 }
3441
3442 /* ldd: ldd$pack @($GRi,$GRj),$GRdoublek */
3443
3444 static SEM_PC
3445 SEM_FN_NAME (frvbf,ldd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3446 {
3447 #define FLD(f) abuf->fields.sfmt_smulcc.f
3448   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3449   int UNUSED written = 0;
3450   IADDR UNUSED pc = abuf->addr;
3451   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3452
3453 {
3454   SI tmp_address;
3455 if (NESI (FLD (f_GRk), 0)) {
3456 {
3457   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3458   {
3459     DI opval = frvbf_read_mem_DI (current_cpu, pc, tmp_address);
3460     sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
3461     written |= (1 << 4);
3462     TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
3463   }
3464 }
3465 }
3466 }
3467
3468   abuf->written = written;
3469   return vpc;
3470 #undef FLD
3471 }
3472
3473 /* lddf: lddf$pack @($GRi,$GRj),$FRdoublek */
3474
3475 static SEM_PC
3476 SEM_FN_NAME (frvbf,lddf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3477 {
3478 #define FLD(f) abuf->fields.sfmt_clddfu.f
3479   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3480   int UNUSED written = 0;
3481   IADDR UNUSED pc = abuf->addr;
3482   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3483
3484 {
3485   SI tmp_address;
3486 {
3487   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3488   {
3489     DF opval = frvbf_read_mem_DF (current_cpu, pc, tmp_address);
3490     sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
3491     TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
3492   }
3493 }
3494 }
3495
3496   return vpc;
3497 #undef FLD
3498 }
3499
3500 /* lddc: lddc$pack @($GRi,$GRj),$CPRdoublek */
3501
3502 static SEM_PC
3503 SEM_FN_NAME (frvbf,lddc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3504 {
3505 #define FLD(f) abuf->fields.sfmt_lddcu.f
3506   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3507   int UNUSED written = 0;
3508   IADDR UNUSED pc = abuf->addr;
3509   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3510
3511 {
3512   SI tmp_address;
3513 {
3514   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3515   {
3516     DI opval = frvbf_read_mem_DI (current_cpu, pc, tmp_address);
3517     sim_queue_fn_di_write (current_cpu, frvbf_h_cpr_double_set, FLD (f_CPRk), opval);
3518     TRACE_RESULT (current_cpu, abuf, "cpr_double", 'D', opval);
3519   }
3520 }
3521 }
3522
3523   return vpc;
3524 #undef FLD
3525 }
3526
3527 /* nldd: nldd$pack @($GRi,$GRj),$GRdoublek */
3528
3529 static SEM_PC
3530 SEM_FN_NAME (frvbf,nldd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3531 {
3532 #define FLD(f) abuf->fields.sfmt_smulcc.f
3533   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3534   int UNUSED written = 0;
3535   IADDR UNUSED pc = abuf->addr;
3536   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3537
3538 {
3539   SI tmp_address;
3540 {
3541   BI tmp_do_op;
3542   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 5, 0);
3543 if (tmp_do_op) {
3544 if (NESI (FLD (f_GRk), 0)) {
3545 {
3546   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3547   {
3548     DI opval = frvbf_read_mem_DI (current_cpu, pc, tmp_address);
3549     sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
3550     written |= (1 << 6);
3551     TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
3552   }
3553 }
3554 }
3555 }
3556 }
3557 }
3558
3559   abuf->written = written;
3560   return vpc;
3561 #undef FLD
3562 }
3563
3564 /* nlddf: nlddf$pack @($GRi,$GRj),$FRdoublek */
3565
3566 static SEM_PC
3567 SEM_FN_NAME (frvbf,nlddf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3568 {
3569 #define FLD(f) abuf->fields.sfmt_clddfu.f
3570   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3571   int UNUSED written = 0;
3572   IADDR UNUSED pc = abuf->addr;
3573   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3574
3575 {
3576   SI tmp_address;
3577 {
3578   BI tmp_do_op;
3579   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_FRk), 0, 5, 1);
3580 if (tmp_do_op) {
3581 {
3582   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3583   {
3584     DF opval = frvbf_read_mem_DF (current_cpu, pc, tmp_address);
3585     sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
3586     written |= (1 << 6);
3587     TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
3588   }
3589 }
3590 }
3591 }
3592 }
3593
3594   abuf->written = written;
3595   return vpc;
3596 #undef FLD
3597 }
3598
3599 /* ldq: ldq$pack @($GRi,$GRj),$GRk */
3600
3601 static SEM_PC
3602 SEM_FN_NAME (frvbf,ldq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3603 {
3604 #define FLD(f) abuf->fields.sfmt_smulcc.f
3605   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3606   int UNUSED written = 0;
3607   IADDR UNUSED pc = abuf->addr;
3608   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3609
3610 {
3611   SI tmp_address;
3612 {
3613   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3614 frvbf_load_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
3615 }
3616 }
3617
3618   return vpc;
3619 #undef FLD
3620 }
3621
3622 /* ldqf: ldqf$pack @($GRi,$GRj),$FRintk */
3623
3624 static SEM_PC
3625 SEM_FN_NAME (frvbf,ldqf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3626 {
3627 #define FLD(f) abuf->fields.sfmt_cstdfu.f
3628   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3629   int UNUSED written = 0;
3630   IADDR UNUSED pc = abuf->addr;
3631   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3632
3633 {
3634   SI tmp_address;
3635 {
3636   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3637 frvbf_load_quad_FRint (current_cpu, pc, tmp_address, FLD (f_FRk));
3638 }
3639 }
3640
3641   return vpc;
3642 #undef FLD
3643 }
3644
3645 /* ldqc: ldqc$pack @($GRi,$GRj),$CPRk */
3646
3647 static SEM_PC
3648 SEM_FN_NAME (frvbf,ldqc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3649 {
3650 #define FLD(f) abuf->fields.sfmt_stdcu.f
3651   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3652   int UNUSED written = 0;
3653   IADDR UNUSED pc = abuf->addr;
3654   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3655
3656 {
3657   SI tmp_address;
3658 {
3659   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3660 frvbf_load_quad_CPR (current_cpu, pc, tmp_address, FLD (f_CPRk));
3661 }
3662 }
3663
3664   return vpc;
3665 #undef FLD
3666 }
3667
3668 /* nldq: nldq$pack @($GRi,$GRj),$GRk */
3669
3670 static SEM_PC
3671 SEM_FN_NAME (frvbf,nldq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3672 {
3673 #define FLD(f) abuf->fields.sfmt_smulcc.f
3674   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3675   int UNUSED written = 0;
3676   IADDR UNUSED pc = abuf->addr;
3677   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3678
3679 {
3680   SI tmp_address;
3681 {
3682   BI tmp_do_op;
3683   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 6, 0);
3684 if (tmp_do_op) {
3685 {
3686   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3687 frvbf_load_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
3688 }
3689 }
3690 }
3691 }
3692
3693   return vpc;
3694 #undef FLD
3695 }
3696
3697 /* nldqf: nldqf$pack @($GRi,$GRj),$FRintk */
3698
3699 static SEM_PC
3700 SEM_FN_NAME (frvbf,nldqf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3701 {
3702 #define FLD(f) abuf->fields.sfmt_cstdfu.f
3703   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3704   int UNUSED written = 0;
3705   IADDR UNUSED pc = abuf->addr;
3706   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3707
3708 {
3709   SI tmp_address;
3710 {
3711   BI tmp_do_op;
3712   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_FRk), 0, 6, 1);
3713 if (tmp_do_op) {
3714 {
3715   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3716 frvbf_load_quad_FRint (current_cpu, pc, tmp_address, FLD (f_FRk));
3717 }
3718 }
3719 }
3720 }
3721
3722   return vpc;
3723 #undef FLD
3724 }
3725
3726 /* ldsbu: ldsbu$pack @($GRi,$GRj),$GRk */
3727
3728 static SEM_PC
3729 SEM_FN_NAME (frvbf,ldsbu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3730 {
3731 #define FLD(f) abuf->fields.sfmt_cldsbu.f
3732   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3733   int UNUSED written = 0;
3734   IADDR UNUSED pc = abuf->addr;
3735   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3736
3737 {
3738   USI tmp_address;
3739   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3740   {
3741     SI opval = frvbf_read_mem_QI (current_cpu, pc, tmp_address);
3742     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3743     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3744   }
3745 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
3746 {
3747   {
3748     SI opval = tmp_address;
3749     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
3750     written |= (1 << 5);
3751     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3752   }
3753 frvbf_force_update (current_cpu);
3754 }
3755 }
3756 }
3757
3758   abuf->written = written;
3759   return vpc;
3760 #undef FLD
3761 }
3762
3763 /* ldubu: ldubu$pack @($GRi,$GRj),$GRk */
3764
3765 static SEM_PC
3766 SEM_FN_NAME (frvbf,ldubu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3767 {
3768 #define FLD(f) abuf->fields.sfmt_cldsbu.f
3769   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3770   int UNUSED written = 0;
3771   IADDR UNUSED pc = abuf->addr;
3772   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3773
3774 {
3775   USI tmp_address;
3776   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3777   {
3778     SI opval = frvbf_read_mem_UQI (current_cpu, pc, tmp_address);
3779     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3780     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3781   }
3782 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
3783 {
3784   {
3785     SI opval = tmp_address;
3786     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
3787     written |= (1 << 5);
3788     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3789   }
3790 frvbf_force_update (current_cpu);
3791 }
3792 }
3793 }
3794
3795   abuf->written = written;
3796   return vpc;
3797 #undef FLD
3798 }
3799
3800 /* ldshu: ldshu$pack @($GRi,$GRj),$GRk */
3801
3802 static SEM_PC
3803 SEM_FN_NAME (frvbf,ldshu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3804 {
3805 #define FLD(f) abuf->fields.sfmt_cldsbu.f
3806   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3807   int UNUSED written = 0;
3808   IADDR UNUSED pc = abuf->addr;
3809   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3810
3811 {
3812   USI tmp_address;
3813   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3814   {
3815     SI opval = frvbf_read_mem_HI (current_cpu, pc, tmp_address);
3816     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3817     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3818   }
3819 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
3820 {
3821   {
3822     SI opval = tmp_address;
3823     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
3824     written |= (1 << 5);
3825     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3826   }
3827 frvbf_force_update (current_cpu);
3828 }
3829 }
3830 }
3831
3832   abuf->written = written;
3833   return vpc;
3834 #undef FLD
3835 }
3836
3837 /* lduhu: lduhu$pack @($GRi,$GRj),$GRk */
3838
3839 static SEM_PC
3840 SEM_FN_NAME (frvbf,lduhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3841 {
3842 #define FLD(f) abuf->fields.sfmt_cldsbu.f
3843   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3844   int UNUSED written = 0;
3845   IADDR UNUSED pc = abuf->addr;
3846   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3847
3848 {
3849   USI tmp_address;
3850   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3851   {
3852     SI opval = frvbf_read_mem_UHI (current_cpu, pc, tmp_address);
3853     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3854     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3855   }
3856 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
3857 {
3858   {
3859     SI opval = tmp_address;
3860     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
3861     written |= (1 << 5);
3862     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3863   }
3864 frvbf_force_update (current_cpu);
3865 }
3866 }
3867 }
3868
3869   abuf->written = written;
3870   return vpc;
3871 #undef FLD
3872 }
3873
3874 /* ldu: ldu$pack @($GRi,$GRj),$GRk */
3875
3876 static SEM_PC
3877 SEM_FN_NAME (frvbf,ldu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3878 {
3879 #define FLD(f) abuf->fields.sfmt_cldsbu.f
3880   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3881   int UNUSED written = 0;
3882   IADDR UNUSED pc = abuf->addr;
3883   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3884
3885 {
3886   USI tmp_address;
3887   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3888   {
3889     SI opval = frvbf_read_mem_SI (current_cpu, pc, tmp_address);
3890     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3891     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3892   }
3893 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
3894 {
3895   {
3896     SI opval = tmp_address;
3897     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
3898     written |= (1 << 5);
3899     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3900   }
3901 frvbf_force_update (current_cpu);
3902 }
3903 }
3904 }
3905
3906   abuf->written = written;
3907   return vpc;
3908 #undef FLD
3909 }
3910
3911 /* nldsbu: nldsbu$pack @($GRi,$GRj),$GRk */
3912
3913 static SEM_PC
3914 SEM_FN_NAME (frvbf,nldsbu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3915 {
3916 #define FLD(f) abuf->fields.sfmt_cldsbu.f
3917   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3918   int UNUSED written = 0;
3919   IADDR UNUSED pc = abuf->addr;
3920   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3921
3922 {
3923   BI tmp_do_op;
3924   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 1, 0);
3925 if (tmp_do_op) {
3926 {
3927   USI tmp_address;
3928   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3929   {
3930     SI opval = frvbf_read_mem_QI (current_cpu, pc, tmp_address);
3931     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3932     written |= (1 << 7);
3933     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3934   }
3935 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
3936 {
3937   {
3938     SI opval = tmp_address;
3939     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
3940     written |= (1 << 6);
3941     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3942   }
3943 frvbf_force_update (current_cpu);
3944 }
3945 }
3946 }
3947 }
3948 }
3949
3950   abuf->written = written;
3951   return vpc;
3952 #undef FLD
3953 }
3954
3955 /* nldubu: nldubu$pack @($GRi,$GRj),$GRk */
3956
3957 static SEM_PC
3958 SEM_FN_NAME (frvbf,nldubu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3959 {
3960 #define FLD(f) abuf->fields.sfmt_cldsbu.f
3961   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3962   int UNUSED written = 0;
3963   IADDR UNUSED pc = abuf->addr;
3964   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3965
3966 {
3967   BI tmp_do_op;
3968   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 0, 0);
3969 if (tmp_do_op) {
3970 {
3971   USI tmp_address;
3972   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3973   {
3974     SI opval = frvbf_read_mem_UQI (current_cpu, pc, tmp_address);
3975     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3976     written |= (1 << 7);
3977     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3978   }
3979 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
3980 {
3981   {
3982     SI opval = tmp_address;
3983     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
3984     written |= (1 << 6);
3985     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3986   }
3987 frvbf_force_update (current_cpu);
3988 }
3989 }
3990 }
3991 }
3992 }
3993
3994   abuf->written = written;
3995   return vpc;
3996 #undef FLD
3997 }
3998
3999 /* nldshu: nldshu$pack @($GRi,$GRj),$GRk */
4000
4001 static SEM_PC
4002 SEM_FN_NAME (frvbf,nldshu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4003 {
4004 #define FLD(f) abuf->fields.sfmt_cldsbu.f
4005   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4006   int UNUSED written = 0;
4007   IADDR UNUSED pc = abuf->addr;
4008   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4009
4010 {
4011   BI tmp_do_op;
4012   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 3, 0);
4013 if (tmp_do_op) {
4014 {
4015   USI tmp_address;
4016   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4017   {
4018     SI opval = frvbf_read_mem_HI (current_cpu, pc, tmp_address);
4019     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
4020     written |= (1 << 7);
4021     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4022   }
4023 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
4024 {
4025   {
4026     SI opval = tmp_address;
4027     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4028     written |= (1 << 6);
4029     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4030   }
4031 frvbf_force_update (current_cpu);
4032 }
4033 }
4034 }
4035 }
4036 }
4037
4038   abuf->written = written;
4039   return vpc;
4040 #undef FLD
4041 }
4042
4043 /* nlduhu: nlduhu$pack @($GRi,$GRj),$GRk */
4044
4045 static SEM_PC
4046 SEM_FN_NAME (frvbf,nlduhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4047 {
4048 #define FLD(f) abuf->fields.sfmt_cldsbu.f
4049   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4050   int UNUSED written = 0;
4051   IADDR UNUSED pc = abuf->addr;
4052   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4053
4054 {
4055   BI tmp_do_op;
4056   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 2, 0);
4057 if (tmp_do_op) {
4058 {
4059   USI tmp_address;
4060   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4061   {
4062     SI opval = frvbf_read_mem_UHI (current_cpu, pc, tmp_address);
4063     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
4064     written |= (1 << 7);
4065     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4066   }
4067 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
4068 {
4069   {
4070     SI opval = tmp_address;
4071     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4072     written |= (1 << 6);
4073     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4074   }
4075 frvbf_force_update (current_cpu);
4076 }
4077 }
4078 }
4079 }
4080 }
4081
4082   abuf->written = written;
4083   return vpc;
4084 #undef FLD
4085 }
4086
4087 /* nldu: nldu$pack @($GRi,$GRj),$GRk */
4088
4089 static SEM_PC
4090 SEM_FN_NAME (frvbf,nldu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4091 {
4092 #define FLD(f) abuf->fields.sfmt_cldsbu.f
4093   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4094   int UNUSED written = 0;
4095   IADDR UNUSED pc = abuf->addr;
4096   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4097
4098 {
4099   BI tmp_do_op;
4100   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 4, 0);
4101 if (tmp_do_op) {
4102 {
4103   USI tmp_address;
4104   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4105   {
4106     SI opval = frvbf_read_mem_SI (current_cpu, pc, tmp_address);
4107     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
4108     written |= (1 << 7);
4109     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4110   }
4111 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
4112 {
4113   {
4114     SI opval = tmp_address;
4115     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4116     written |= (1 << 6);
4117     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4118   }
4119 frvbf_force_update (current_cpu);
4120 }
4121 }
4122 }
4123 }
4124 }
4125
4126   abuf->written = written;
4127   return vpc;
4128 #undef FLD
4129 }
4130
4131 /* ldbfu: ldbfu$pack @($GRi,$GRj),$FRintk */
4132
4133 static SEM_PC
4134 SEM_FN_NAME (frvbf,ldbfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4135 {
4136 #define FLD(f) abuf->fields.sfmt_cldbfu.f
4137   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4138   int UNUSED written = 0;
4139   IADDR UNUSED pc = abuf->addr;
4140   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4141
4142 {
4143   USI tmp_address;
4144   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4145   {
4146     SI opval = frvbf_read_mem_UQI (current_cpu, pc, tmp_address);
4147     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
4148     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
4149   }
4150   {
4151     SI opval = tmp_address;
4152     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4153     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4154   }
4155 frvbf_force_update (current_cpu);
4156 }
4157
4158   return vpc;
4159 #undef FLD
4160 }
4161
4162 /* ldhfu: ldhfu$pack @($GRi,$GRj),$FRintk */
4163
4164 static SEM_PC
4165 SEM_FN_NAME (frvbf,ldhfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4166 {
4167 #define FLD(f) abuf->fields.sfmt_cldbfu.f
4168   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4169   int UNUSED written = 0;
4170   IADDR UNUSED pc = abuf->addr;
4171   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4172
4173 {
4174   USI tmp_address;
4175   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4176   {
4177     SI opval = frvbf_read_mem_UHI (current_cpu, pc, tmp_address);
4178     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
4179     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
4180   }
4181   {
4182     SI opval = tmp_address;
4183     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4184     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4185   }
4186 frvbf_force_update (current_cpu);
4187 }
4188
4189   return vpc;
4190 #undef FLD
4191 }
4192
4193 /* ldfu: ldfu$pack @($GRi,$GRj),$FRintk */
4194
4195 static SEM_PC
4196 SEM_FN_NAME (frvbf,ldfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4197 {
4198 #define FLD(f) abuf->fields.sfmt_cldbfu.f
4199   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4200   int UNUSED written = 0;
4201   IADDR UNUSED pc = abuf->addr;
4202   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4203
4204 {
4205   USI tmp_address;
4206   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4207   {
4208     SI opval = frvbf_read_mem_SI (current_cpu, pc, tmp_address);
4209     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
4210     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
4211   }
4212   {
4213     SI opval = tmp_address;
4214     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4215     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4216   }
4217 frvbf_force_update (current_cpu);
4218 }
4219
4220   return vpc;
4221 #undef FLD
4222 }
4223
4224 /* ldcu: ldcu$pack @($GRi,$GRj),$CPRk */
4225
4226 static SEM_PC
4227 SEM_FN_NAME (frvbf,ldcu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4228 {
4229 #define FLD(f) abuf->fields.sfmt_ldcu.f
4230   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4231   int UNUSED written = 0;
4232   IADDR UNUSED pc = abuf->addr;
4233   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4234
4235 {
4236   USI tmp_address;
4237   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4238   {
4239     SI opval = frvbf_read_mem_SI (current_cpu, pc, tmp_address);
4240     sim_queue_si_write (current_cpu, & CPU (h_cpr[FLD (f_CPRk)]), opval);
4241     TRACE_RESULT (current_cpu, abuf, "cpr", 'x', opval);
4242   }
4243   {
4244     SI opval = tmp_address;
4245     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4246     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4247   }
4248 frvbf_force_update (current_cpu);
4249 }
4250
4251   return vpc;
4252 #undef FLD
4253 }
4254
4255 /* nldbfu: nldbfu$pack @($GRi,$GRj),$FRintk */
4256
4257 static SEM_PC
4258 SEM_FN_NAME (frvbf,nldbfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4259 {
4260 #define FLD(f) abuf->fields.sfmt_cldbfu.f
4261   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4262   int UNUSED written = 0;
4263   IADDR UNUSED pc = abuf->addr;
4264   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4265
4266 {
4267   BI tmp_do_op;
4268   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_FRk), 0, 0, 1);
4269 if (tmp_do_op) {
4270 {
4271   USI tmp_address;
4272   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4273   {
4274     SI opval = frvbf_read_mem_UQI (current_cpu, pc, tmp_address);
4275     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
4276     written |= (1 << 6);
4277     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
4278   }
4279   {
4280     SI opval = tmp_address;
4281     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4282     written |= (1 << 7);
4283     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4284   }
4285 frvbf_force_update (current_cpu);
4286 }
4287 }
4288 }
4289
4290   abuf->written = written;
4291   return vpc;
4292 #undef FLD
4293 }
4294
4295 /* nldhfu: nldhfu$pack @($GRi,$GRj),$FRintk */
4296
4297 static SEM_PC
4298 SEM_FN_NAME (frvbf,nldhfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4299 {
4300 #define FLD(f) abuf->fields.sfmt_cldbfu.f
4301   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4302   int UNUSED written = 0;
4303   IADDR UNUSED pc = abuf->addr;
4304   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4305
4306 {
4307   BI tmp_do_op;
4308   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_FRk), 0, 2, 1);
4309 if (tmp_do_op) {
4310 {
4311   USI tmp_address;
4312   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4313   {
4314     SI opval = frvbf_read_mem_UHI (current_cpu, pc, tmp_address);
4315     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
4316     written |= (1 << 6);
4317     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
4318   }
4319   {
4320     SI opval = tmp_address;
4321     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4322     written |= (1 << 7);
4323     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4324   }
4325 frvbf_force_update (current_cpu);
4326 }
4327 }
4328 }
4329
4330   abuf->written = written;
4331   return vpc;
4332 #undef FLD
4333 }
4334
4335 /* nldfu: nldfu$pack @($GRi,$GRj),$FRintk */
4336
4337 static SEM_PC
4338 SEM_FN_NAME (frvbf,nldfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4339 {
4340 #define FLD(f) abuf->fields.sfmt_cldbfu.f
4341   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4342   int UNUSED written = 0;
4343   IADDR UNUSED pc = abuf->addr;
4344   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4345
4346 {
4347   BI tmp_do_op;
4348   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_FRk), 0, 4, 1);
4349 if (tmp_do_op) {
4350 {
4351   USI tmp_address;
4352   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4353   {
4354     SI opval = frvbf_read_mem_SI (current_cpu, pc, tmp_address);
4355     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
4356     written |= (1 << 6);
4357     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
4358   }
4359   {
4360     SI opval = tmp_address;
4361     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4362     written |= (1 << 7);
4363     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4364   }
4365 frvbf_force_update (current_cpu);
4366 }
4367 }
4368 }
4369
4370   abuf->written = written;
4371   return vpc;
4372 #undef FLD
4373 }
4374
4375 /* lddu: lddu$pack @($GRi,$GRj),$GRdoublek */
4376
4377 static SEM_PC
4378 SEM_FN_NAME (frvbf,lddu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4379 {
4380 #define FLD(f) abuf->fields.sfmt_clddu.f
4381   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4382   int UNUSED written = 0;
4383   IADDR UNUSED pc = abuf->addr;
4384   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4385
4386 {
4387   SI tmp_address;
4388 if (NESI (FLD (f_GRk), 0)) {
4389 {
4390   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4391   {
4392     DI opval = frvbf_read_mem_DI (current_cpu, pc, tmp_address);
4393     sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
4394     written |= (1 << 5);
4395     TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
4396   }
4397 }
4398 }
4399 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
4400 {
4401   {
4402     SI opval = tmp_address;
4403     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4404     written |= (1 << 6);
4405     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4406   }
4407 frvbf_force_update (current_cpu);
4408 }
4409 }
4410 }
4411
4412   abuf->written = written;
4413   return vpc;
4414 #undef FLD
4415 }
4416
4417 /* nlddu: nlddu$pack @($GRi,$GRj),$GRdoublek */
4418
4419 static SEM_PC
4420 SEM_FN_NAME (frvbf,nlddu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4421 {
4422 #define FLD(f) abuf->fields.sfmt_clddu.f
4423   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4424   int UNUSED written = 0;
4425   IADDR UNUSED pc = abuf->addr;
4426   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4427
4428 {
4429   BI tmp_do_op;
4430   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 5, 0);
4431 if (tmp_do_op) {
4432 {
4433   SI tmp_address;
4434 if (NESI (FLD (f_GRk), 0)) {
4435 {
4436   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4437   {
4438     DI opval = frvbf_read_mem_DI (current_cpu, pc, tmp_address);
4439     sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
4440     written |= (1 << 6);
4441     TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
4442   }
4443 }
4444 }
4445 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
4446 {
4447   {
4448     SI opval = tmp_address;
4449     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4450     written |= (1 << 7);
4451     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4452   }
4453 frvbf_force_update (current_cpu);
4454 }
4455 }
4456 }
4457 }
4458 }
4459
4460   abuf->written = written;
4461   return vpc;
4462 #undef FLD
4463 }
4464
4465 /* lddfu: lddfu$pack @($GRi,$GRj),$FRdoublek */
4466
4467 static SEM_PC
4468 SEM_FN_NAME (frvbf,lddfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4469 {
4470 #define FLD(f) abuf->fields.sfmt_clddfu.f
4471   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4472   int UNUSED written = 0;
4473   IADDR UNUSED pc = abuf->addr;
4474   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4475
4476 {
4477   SI tmp_address;
4478 {
4479   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4480   {
4481     DF opval = frvbf_read_mem_DF (current_cpu, pc, tmp_address);
4482     sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
4483     TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
4484   }
4485 }
4486   {
4487     SI opval = tmp_address;
4488     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4489     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4490   }
4491 frvbf_force_update (current_cpu);
4492 }
4493
4494   return vpc;
4495 #undef FLD
4496 }
4497
4498 /* lddcu: lddcu$pack @($GRi,$GRj),$CPRdoublek */
4499
4500 static SEM_PC
4501 SEM_FN_NAME (frvbf,lddcu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4502 {
4503 #define FLD(f) abuf->fields.sfmt_lddcu.f
4504   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4505   int UNUSED written = 0;
4506   IADDR UNUSED pc = abuf->addr;
4507   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4508
4509 {
4510   SI tmp_address;
4511 {
4512   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4513   {
4514     DI opval = frvbf_read_mem_DI (current_cpu, pc, tmp_address);
4515     sim_queue_fn_di_write (current_cpu, frvbf_h_cpr_double_set, FLD (f_CPRk), opval);
4516     TRACE_RESULT (current_cpu, abuf, "cpr_double", 'D', opval);
4517   }
4518 }
4519   {
4520     SI opval = tmp_address;
4521     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4522     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4523   }
4524 frvbf_force_update (current_cpu);
4525 }
4526
4527   return vpc;
4528 #undef FLD
4529 }
4530
4531 /* nlddfu: nlddfu$pack @($GRi,$GRj),$FRdoublek */
4532
4533 static SEM_PC
4534 SEM_FN_NAME (frvbf,nlddfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4535 {
4536 #define FLD(f) abuf->fields.sfmt_clddfu.f
4537   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4538   int UNUSED written = 0;
4539   IADDR UNUSED pc = abuf->addr;
4540   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4541
4542 {
4543   BI tmp_do_op;
4544   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_FRk), 0, 5, 1);
4545 if (tmp_do_op) {
4546 {
4547   SI tmp_address;
4548 {
4549   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4550   {
4551     DF opval = frvbf_read_mem_DF (current_cpu, pc, tmp_address);
4552     sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
4553     written |= (1 << 6);
4554     TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
4555   }
4556 }
4557   {
4558     SI opval = tmp_address;
4559     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4560     written |= (1 << 7);
4561     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4562   }
4563 frvbf_force_update (current_cpu);
4564 }
4565 }
4566 }
4567
4568   abuf->written = written;
4569   return vpc;
4570 #undef FLD
4571 }
4572
4573 /* ldqu: ldqu$pack @($GRi,$GRj),$GRk */
4574
4575 static SEM_PC
4576 SEM_FN_NAME (frvbf,ldqu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4577 {
4578 #define FLD(f) abuf->fields.sfmt_cstdu.f
4579   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4580   int UNUSED written = 0;
4581   IADDR UNUSED pc = abuf->addr;
4582   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4583
4584 {
4585   SI tmp_address;
4586 {
4587   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4588 frvbf_load_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
4589 }
4590 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
4591 {
4592   {
4593     SI opval = tmp_address;
4594     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4595     written |= (1 << 5);
4596     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4597   }
4598 frvbf_force_update (current_cpu);
4599 }
4600 }
4601 }
4602
4603   abuf->written = written;
4604   return vpc;
4605 #undef FLD
4606 }
4607
4608 /* nldqu: nldqu$pack @($GRi,$GRj),$GRk */
4609
4610 static SEM_PC
4611 SEM_FN_NAME (frvbf,nldqu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4612 {
4613 #define FLD(f) abuf->fields.sfmt_cstdu.f
4614   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4615   int UNUSED written = 0;
4616   IADDR UNUSED pc = abuf->addr;
4617   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4618
4619 {
4620   BI tmp_do_op;
4621   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 6, 0);
4622 if (tmp_do_op) {
4623 {
4624   SI tmp_address;
4625 {
4626   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4627 frvbf_load_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
4628 }
4629 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
4630 {
4631   {
4632     SI opval = tmp_address;
4633     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4634     written |= (1 << 6);
4635     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4636   }
4637 frvbf_force_update (current_cpu);
4638 }
4639 }
4640 }
4641 }
4642 }
4643
4644   abuf->written = written;
4645   return vpc;
4646 #undef FLD
4647 }
4648
4649 /* ldqfu: ldqfu$pack @($GRi,$GRj),$FRintk */
4650
4651 static SEM_PC
4652 SEM_FN_NAME (frvbf,ldqfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4653 {
4654 #define FLD(f) abuf->fields.sfmt_cstdfu.f
4655   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4656   int UNUSED written = 0;
4657   IADDR UNUSED pc = abuf->addr;
4658   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4659
4660 {
4661   SI tmp_address;
4662 {
4663   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4664 frvbf_load_quad_FRint (current_cpu, pc, tmp_address, FLD (f_FRk));
4665 }
4666   {
4667     SI opval = tmp_address;
4668     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4669     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4670   }
4671 frvbf_force_update (current_cpu);
4672 }
4673
4674   return vpc;
4675 #undef FLD
4676 }
4677
4678 /* ldqcu: ldqcu$pack @($GRi,$GRj),$CPRk */
4679
4680 static SEM_PC
4681 SEM_FN_NAME (frvbf,ldqcu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4682 {
4683 #define FLD(f) abuf->fields.sfmt_stdcu.f
4684   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4685   int UNUSED written = 0;
4686   IADDR UNUSED pc = abuf->addr;
4687   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4688
4689 {
4690   SI tmp_address;
4691 {
4692   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4693 frvbf_load_quad_CPR (current_cpu, pc, tmp_address, FLD (f_CPRk));
4694 }
4695   {
4696     SI opval = tmp_address;
4697     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4698     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4699   }
4700 frvbf_force_update (current_cpu);
4701 }
4702
4703   return vpc;
4704 #undef FLD
4705 }
4706
4707 /* nldqfu: nldqfu$pack @($GRi,$GRj),$FRintk */
4708
4709 static SEM_PC
4710 SEM_FN_NAME (frvbf,nldqfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4711 {
4712 #define FLD(f) abuf->fields.sfmt_cstdfu.f
4713   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4714   int UNUSED written = 0;
4715   IADDR UNUSED pc = abuf->addr;
4716   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4717
4718 {
4719   BI tmp_do_op;
4720   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_FRk), 0, 6, 1);
4721 if (tmp_do_op) {
4722 {
4723   SI tmp_address;
4724 {
4725   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4726 frvbf_load_quad_FRint (current_cpu, pc, tmp_address, FLD (f_FRk));
4727 }
4728   {
4729     SI opval = tmp_address;
4730     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4731     written |= (1 << 6);
4732     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4733   }
4734 frvbf_force_update (current_cpu);
4735 }
4736 }
4737 }
4738
4739   abuf->written = written;
4740   return vpc;
4741 #undef FLD
4742 }
4743
4744 /* ldsbi: ldsbi$pack @($GRi,$d12),$GRk */
4745
4746 static SEM_PC
4747 SEM_FN_NAME (frvbf,ldsbi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4748 {
4749 #define FLD(f) abuf->fields.sfmt_swapi.f
4750   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4751   int UNUSED written = 0;
4752   IADDR UNUSED pc = abuf->addr;
4753   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4754
4755   {
4756     SI opval = frvbf_read_mem_QI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
4757     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
4758     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4759   }
4760
4761   return vpc;
4762 #undef FLD
4763 }
4764
4765 /* ldshi: ldshi$pack @($GRi,$d12),$GRk */
4766
4767 static SEM_PC
4768 SEM_FN_NAME (frvbf,ldshi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4769 {
4770 #define FLD(f) abuf->fields.sfmt_swapi.f
4771   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4772   int UNUSED written = 0;
4773   IADDR UNUSED pc = abuf->addr;
4774   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4775
4776   {
4777     SI opval = frvbf_read_mem_HI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
4778     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
4779     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4780   }
4781
4782   return vpc;
4783 #undef FLD
4784 }
4785
4786 /* ldi: ldi$pack @($GRi,$d12),$GRk */
4787
4788 static SEM_PC
4789 SEM_FN_NAME (frvbf,ldi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4790 {
4791 #define FLD(f) abuf->fields.sfmt_swapi.f
4792   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4793   int UNUSED written = 0;
4794   IADDR UNUSED pc = abuf->addr;
4795   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4796
4797   {
4798     SI opval = frvbf_read_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
4799     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
4800     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4801   }
4802
4803   return vpc;
4804 #undef FLD
4805 }
4806
4807 /* ldubi: ldubi$pack @($GRi,$d12),$GRk */
4808
4809 static SEM_PC
4810 SEM_FN_NAME (frvbf,ldubi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4811 {
4812 #define FLD(f) abuf->fields.sfmt_swapi.f
4813   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4814   int UNUSED written = 0;
4815   IADDR UNUSED pc = abuf->addr;
4816   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4817
4818   {
4819     SI opval = frvbf_read_mem_UQI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
4820     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
4821     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4822   }
4823
4824   return vpc;
4825 #undef FLD
4826 }
4827
4828 /* lduhi: lduhi$pack @($GRi,$d12),$GRk */
4829
4830 static SEM_PC
4831 SEM_FN_NAME (frvbf,lduhi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4832 {
4833 #define FLD(f) abuf->fields.sfmt_swapi.f
4834   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4835   int UNUSED written = 0;
4836   IADDR UNUSED pc = abuf->addr;
4837   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4838
4839   {
4840     SI opval = frvbf_read_mem_UHI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
4841     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
4842     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4843   }
4844
4845   return vpc;
4846 #undef FLD
4847 }
4848
4849 /* ldbfi: ldbfi$pack @($GRi,$d12),$FRintk */
4850
4851 static SEM_PC
4852 SEM_FN_NAME (frvbf,ldbfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4853 {
4854 #define FLD(f) abuf->fields.sfmt_ldbfi.f
4855   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4856   int UNUSED written = 0;
4857   IADDR UNUSED pc = abuf->addr;
4858   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4859
4860   {
4861     SI opval = frvbf_read_mem_UQI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
4862     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
4863     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
4864   }
4865
4866   return vpc;
4867 #undef FLD
4868 }
4869
4870 /* ldhfi: ldhfi$pack @($GRi,$d12),$FRintk */
4871
4872 static SEM_PC
4873 SEM_FN_NAME (frvbf,ldhfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4874 {
4875 #define FLD(f) abuf->fields.sfmt_ldbfi.f
4876   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4877   int UNUSED written = 0;
4878   IADDR UNUSED pc = abuf->addr;
4879   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4880
4881   {
4882     SI opval = frvbf_read_mem_UHI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
4883     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
4884     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
4885   }
4886
4887   return vpc;
4888 #undef FLD
4889 }
4890
4891 /* ldfi: ldfi$pack @($GRi,$d12),$FRintk */
4892
4893 static SEM_PC
4894 SEM_FN_NAME (frvbf,ldfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4895 {
4896 #define FLD(f) abuf->fields.sfmt_ldbfi.f
4897   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4898   int UNUSED written = 0;
4899   IADDR UNUSED pc = abuf->addr;
4900   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4901
4902   {
4903     SI opval = frvbf_read_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
4904     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
4905     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
4906   }
4907
4908   return vpc;
4909 #undef FLD
4910 }
4911
4912 /* nldsbi: nldsbi$pack @($GRi,$d12),$GRk */
4913
4914 static SEM_PC
4915 SEM_FN_NAME (frvbf,nldsbi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4916 {
4917 #define FLD(f) abuf->fields.sfmt_swapi.f
4918   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4919   int UNUSED written = 0;
4920   IADDR UNUSED pc = abuf->addr;
4921   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4922
4923 {
4924   BI tmp_do_op;
4925   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), -1, FLD (f_GRk), FLD (f_d12), 1, 0);
4926 if (tmp_do_op) {
4927   {
4928     SI opval = frvbf_read_mem_QI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
4929     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
4930     written |= (1 << 5);
4931     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4932   }
4933 }
4934 }
4935
4936   abuf->written = written;
4937   return vpc;
4938 #undef FLD
4939 }
4940
4941 /* nldubi: nldubi$pack @($GRi,$d12),$GRk */
4942
4943 static SEM_PC
4944 SEM_FN_NAME (frvbf,nldubi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4945 {
4946 #define FLD(f) abuf->fields.sfmt_swapi.f
4947   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4948   int UNUSED written = 0;
4949   IADDR UNUSED pc = abuf->addr;
4950   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4951
4952 {
4953   BI tmp_do_op;
4954   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), -1, FLD (f_GRk), FLD (f_d12), 0, 0);
4955 if (tmp_do_op) {
4956   {
4957     SI opval = frvbf_read_mem_UQI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
4958     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
4959     written |= (1 << 5);
4960     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4961   }
4962 }
4963 }
4964
4965   abuf->written = written;
4966   return vpc;
4967 #undef FLD
4968 }
4969
4970 /* nldshi: nldshi$pack @($GRi,$d12),$GRk */
4971
4972 static SEM_PC
4973 SEM_FN_NAME (frvbf,nldshi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4974 {
4975 #define FLD(f) abuf->fields.sfmt_swapi.f
4976   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4977   int UNUSED written = 0;
4978   IADDR UNUSED pc = abuf->addr;
4979   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4980
4981 {
4982   BI tmp_do_op;
4983   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), -1, FLD (f_GRk), FLD (f_d12), 3, 0);
4984 if (tmp_do_op) {
4985   {
4986     SI opval = frvbf_read_mem_HI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
4987     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
4988     written |= (1 << 5);
4989     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4990   }
4991 }
4992 }
4993
4994   abuf->written = written;
4995   return vpc;
4996 #undef FLD
4997 }
4998
4999 /* nlduhi: nlduhi$pack @($GRi,$d12),$GRk */
5000
5001 static SEM_PC
5002 SEM_FN_NAME (frvbf,nlduhi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5003 {
5004 #define FLD(f) abuf->fields.sfmt_swapi.f
5005   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5006   int UNUSED written = 0;
5007   IADDR UNUSED pc = abuf->addr;
5008   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5009
5010 {
5011   BI tmp_do_op;
5012   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), -1, FLD (f_GRk), FLD (f_d12), 2, 0);
5013 if (tmp_do_op) {
5014   {
5015     SI opval = frvbf_read_mem_UHI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
5016     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
5017     written |= (1 << 5);
5018     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5019   }
5020 }
5021 }
5022
5023   abuf->written = written;
5024   return vpc;
5025 #undef FLD
5026 }
5027
5028 /* nldi: nldi$pack @($GRi,$d12),$GRk */
5029
5030 static SEM_PC
5031 SEM_FN_NAME (frvbf,nldi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5032 {
5033 #define FLD(f) abuf->fields.sfmt_swapi.f
5034   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5035   int UNUSED written = 0;
5036   IADDR UNUSED pc = abuf->addr;
5037   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5038
5039 {
5040   BI tmp_do_op;
5041   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), -1, FLD (f_GRk), FLD (f_d12), 4, 0);
5042 if (tmp_do_op) {
5043   {
5044     SI opval = frvbf_read_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
5045     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
5046     written |= (1 << 5);
5047     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5048   }
5049 }
5050 }
5051
5052   abuf->written = written;
5053   return vpc;
5054 #undef FLD
5055 }
5056
5057 /* nldbfi: nldbfi$pack @($GRi,$d12),$FRintk */
5058
5059 static SEM_PC
5060 SEM_FN_NAME (frvbf,nldbfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5061 {
5062 #define FLD(f) abuf->fields.sfmt_ldbfi.f
5063   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5064   int UNUSED written = 0;
5065   IADDR UNUSED pc = abuf->addr;
5066   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5067
5068 {
5069   BI tmp_do_op;
5070   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), -1, FLD (f_FRk), FLD (f_d12), 0, 1);
5071 if (tmp_do_op) {
5072   {
5073     SI opval = frvbf_read_mem_UQI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
5074     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
5075     written |= (1 << 5);
5076     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
5077   }
5078 }
5079 }
5080
5081   abuf->written = written;
5082   return vpc;
5083 #undef FLD
5084 }
5085
5086 /* nldhfi: nldhfi$pack @($GRi,$d12),$FRintk */
5087
5088 static SEM_PC
5089 SEM_FN_NAME (frvbf,nldhfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5090 {
5091 #define FLD(f) abuf->fields.sfmt_ldbfi.f
5092   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5093   int UNUSED written = 0;
5094   IADDR UNUSED pc = abuf->addr;
5095   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5096
5097 {
5098   BI tmp_do_op;
5099   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), -1, FLD (f_FRk), FLD (f_d12), 2, 1);
5100 if (tmp_do_op) {
5101   {
5102     SI opval = frvbf_read_mem_UHI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
5103     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
5104     written |= (1 << 5);
5105     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
5106   }
5107 }
5108 }
5109
5110   abuf->written = written;
5111   return vpc;
5112 #undef FLD
5113 }
5114
5115 /* nldfi: nldfi$pack @($GRi,$d12),$FRintk */
5116
5117 static SEM_PC
5118 SEM_FN_NAME (frvbf,nldfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5119 {
5120 #define FLD(f) abuf->fields.sfmt_ldbfi.f
5121   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5122   int UNUSED written = 0;
5123   IADDR UNUSED pc = abuf->addr;
5124   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5125
5126 {
5127   BI tmp_do_op;
5128   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), -1, FLD (f_FRk), FLD (f_d12), 4, 1);
5129 if (tmp_do_op) {
5130   {
5131     SI opval = frvbf_read_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
5132     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
5133     written |= (1 << 5);
5134     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
5135   }
5136 }
5137 }
5138
5139   abuf->written = written;
5140   return vpc;
5141 #undef FLD
5142 }
5143
5144 /* lddi: lddi$pack @($GRi,$d12),$GRdoublek */
5145
5146 static SEM_PC
5147 SEM_FN_NAME (frvbf,lddi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5148 {
5149 #define FLD(f) abuf->fields.sfmt_smuli.f
5150   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5151   int UNUSED written = 0;
5152   IADDR UNUSED pc = abuf->addr;
5153   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5154
5155 {
5156   SI tmp_address;
5157 if (NESI (FLD (f_GRk), 0)) {
5158 {
5159   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
5160   {
5161     DI opval = frvbf_read_mem_DI (current_cpu, pc, tmp_address);
5162     sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
5163     written |= (1 << 4);
5164     TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
5165   }
5166 }
5167 }
5168 }
5169
5170   abuf->written = written;
5171   return vpc;
5172 #undef FLD
5173 }
5174
5175 /* lddfi: lddfi$pack @($GRi,$d12),$FRdoublek */
5176
5177 static SEM_PC
5178 SEM_FN_NAME (frvbf,lddfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5179 {
5180 #define FLD(f) abuf->fields.sfmt_lddfi.f
5181   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5182   int UNUSED written = 0;
5183   IADDR UNUSED pc = abuf->addr;
5184   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5185
5186 {
5187   SI tmp_address;
5188 {
5189   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
5190   {
5191     DF opval = frvbf_read_mem_DF (current_cpu, pc, tmp_address);
5192     sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
5193     TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
5194   }
5195 }
5196 }
5197
5198   return vpc;
5199 #undef FLD
5200 }
5201
5202 /* nlddi: nlddi$pack @($GRi,$d12),$GRdoublek */
5203
5204 static SEM_PC
5205 SEM_FN_NAME (frvbf,nlddi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5206 {
5207 #define FLD(f) abuf->fields.sfmt_smuli.f
5208   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5209   int UNUSED written = 0;
5210   IADDR UNUSED pc = abuf->addr;
5211   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5212
5213 {
5214   SI tmp_address;
5215 {
5216   BI tmp_do_op;
5217   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), -1, FLD (f_GRk), FLD (f_d12), 5, 0);
5218 if (tmp_do_op) {
5219 if (NESI (FLD (f_GRk), 0)) {
5220 {
5221   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
5222   {
5223     DI opval = frvbf_read_mem_DI (current_cpu, pc, tmp_address);
5224     sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
5225     written |= (1 << 5);
5226     TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
5227   }
5228 }
5229 }
5230 }
5231 }
5232 }
5233
5234   abuf->written = written;
5235   return vpc;
5236 #undef FLD
5237 }
5238
5239 /* nlddfi: nlddfi$pack @($GRi,$d12),$FRdoublek */
5240
5241 static SEM_PC
5242 SEM_FN_NAME (frvbf,nlddfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5243 {
5244 #define FLD(f) abuf->fields.sfmt_lddfi.f
5245   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5246   int UNUSED written = 0;
5247   IADDR UNUSED pc = abuf->addr;
5248   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5249
5250 {
5251   SI tmp_address;
5252 {
5253   BI tmp_do_op;
5254   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), -1, FLD (f_FRk), FLD (f_d12), 5, 1);
5255 if (tmp_do_op) {
5256 {
5257   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
5258   {
5259     DF opval = frvbf_read_mem_DF (current_cpu, pc, tmp_address);
5260     sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
5261     written |= (1 << 5);
5262     TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
5263   }
5264 }
5265 }
5266 }
5267 }
5268
5269   abuf->written = written;
5270   return vpc;
5271 #undef FLD
5272 }
5273
5274 /* ldqi: ldqi$pack @($GRi,$d12),$GRk */
5275
5276 static SEM_PC
5277 SEM_FN_NAME (frvbf,ldqi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5278 {
5279 #define FLD(f) abuf->fields.sfmt_stdi.f
5280   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5281   int UNUSED written = 0;
5282   IADDR UNUSED pc = abuf->addr;
5283   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5284
5285 {
5286   SI tmp_address;
5287 {
5288   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
5289 frvbf_load_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
5290 }
5291 }
5292
5293   return vpc;
5294 #undef FLD
5295 }
5296
5297 /* ldqfi: ldqfi$pack @($GRi,$d12),$FRintk */
5298
5299 static SEM_PC
5300 SEM_FN_NAME (frvbf,ldqfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5301 {
5302 #define FLD(f) abuf->fields.sfmt_stdfi.f
5303   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5304   int UNUSED written = 0;
5305   IADDR UNUSED pc = abuf->addr;
5306   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5307
5308 {
5309   SI tmp_address;
5310 {
5311   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
5312 frvbf_load_quad_FRint (current_cpu, pc, tmp_address, FLD (f_FRk));
5313 }
5314 }
5315
5316   return vpc;
5317 #undef FLD
5318 }
5319
5320 /* nldqfi: nldqfi$pack @($GRi,$d12),$FRintk */
5321
5322 static SEM_PC
5323 SEM_FN_NAME (frvbf,nldqfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5324 {
5325 #define FLD(f) abuf->fields.sfmt_stdfi.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_FRk), FLD (f_d12), 6, 1);
5336 if (tmp_do_op) {
5337 {
5338   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
5339 frvbf_load_quad_FRint (current_cpu, pc, tmp_address, FLD (f_FRk));
5340 }
5341 }
5342 }
5343 }
5344
5345   return vpc;
5346 #undef FLD
5347 }
5348
5349 /* stb: stb$pack $GRk,@($GRi,$GRj) */
5350
5351 static SEM_PC
5352 SEM_FN_NAME (frvbf,stb) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5353 {
5354 #define FLD(f) abuf->fields.sfmt_cswap.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 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)));
5361
5362   return vpc;
5363 #undef FLD
5364 }
5365
5366 /* sth: sth$pack $GRk,@($GRi,$GRj) */
5367
5368 static SEM_PC
5369 SEM_FN_NAME (frvbf,sth) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5370 {
5371 #define FLD(f) abuf->fields.sfmt_cswap.f
5372   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5373   int UNUSED written = 0;
5374   IADDR UNUSED pc = abuf->addr;
5375   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5376
5377 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)));
5378
5379   return vpc;
5380 #undef FLD
5381 }
5382
5383 /* st: st$pack $GRk,@($GRi,$GRj) */
5384
5385 static SEM_PC
5386 SEM_FN_NAME (frvbf,st) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5387 {
5388 #define FLD(f) abuf->fields.sfmt_cswap.f
5389   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5390   int UNUSED written = 0;
5391   IADDR UNUSED pc = abuf->addr;
5392   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5393
5394 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)));
5395
5396   return vpc;
5397 #undef FLD
5398 }
5399
5400 /* stbf: stbf$pack $FRintk,@($GRi,$GRj) */
5401
5402 static SEM_PC
5403 SEM_FN_NAME (frvbf,stbf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5404 {
5405 #define FLD(f) abuf->fields.sfmt_cstbfu.f
5406   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5407   int UNUSED written = 0;
5408   IADDR UNUSED pc = abuf->addr;
5409   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5410
5411 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)));
5412
5413   return vpc;
5414 #undef FLD
5415 }
5416
5417 /* sthf: sthf$pack $FRintk,@($GRi,$GRj) */
5418
5419 static SEM_PC
5420 SEM_FN_NAME (frvbf,sthf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5421 {
5422 #define FLD(f) abuf->fields.sfmt_cstbfu.f
5423   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5424   int UNUSED written = 0;
5425   IADDR UNUSED pc = abuf->addr;
5426   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5427
5428 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)));
5429
5430   return vpc;
5431 #undef FLD
5432 }
5433
5434 /* stf: stf$pack $FRintk,@($GRi,$GRj) */
5435
5436 static SEM_PC
5437 SEM_FN_NAME (frvbf,stf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5438 {
5439 #define FLD(f) abuf->fields.sfmt_cstbfu.f
5440   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5441   int UNUSED written = 0;
5442   IADDR UNUSED pc = abuf->addr;
5443   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5444
5445 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)));
5446
5447   return vpc;
5448 #undef FLD
5449 }
5450
5451 /* stc: stc$pack $CPRk,@($GRi,$GRj) */
5452
5453 static SEM_PC
5454 SEM_FN_NAME (frvbf,stc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5455 {
5456 #define FLD(f) abuf->fields.sfmt_stcu.f
5457   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5458   int UNUSED written = 0;
5459   IADDR UNUSED pc = abuf->addr;
5460   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5461
5462 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)]));
5463
5464   return vpc;
5465 #undef FLD
5466 }
5467
5468 /* rstb: rstb$pack $GRk,@($GRi,$GRj) */
5469
5470 static SEM_PC
5471 SEM_FN_NAME (frvbf,rstb) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5472 {
5473 #define FLD(f) abuf->fields.sfmt_cswap.f
5474   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5475   int UNUSED written = 0;
5476   IADDR UNUSED pc = abuf->addr;
5477   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5478
5479 {
5480   SI tmp_address;
5481   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5482 frvbf_write_mem_QI (current_cpu, pc, tmp_address, GET_H_GR (FLD (f_GRk)));
5483 frvbf_check_recovering_store (current_cpu, tmp_address, FLD (f_GRk), 1, 0);
5484 }
5485
5486   return vpc;
5487 #undef FLD
5488 }
5489
5490 /* rsth: rsth$pack $GRk,@($GRi,$GRj) */
5491
5492 static SEM_PC
5493 SEM_FN_NAME (frvbf,rsth) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5494 {
5495 #define FLD(f) abuf->fields.sfmt_cswap.f
5496   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5497   int UNUSED written = 0;
5498   IADDR UNUSED pc = abuf->addr;
5499   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5500
5501 {
5502   SI tmp_address;
5503   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5504 frvbf_write_mem_HI (current_cpu, pc, tmp_address, GET_H_GR (FLD (f_GRk)));
5505 frvbf_check_recovering_store (current_cpu, tmp_address, FLD (f_GRk), 2, 0);
5506 }
5507
5508   return vpc;
5509 #undef FLD
5510 }
5511
5512 /* rst: rst$pack $GRk,@($GRi,$GRj) */
5513
5514 static SEM_PC
5515 SEM_FN_NAME (frvbf,rst) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5516 {
5517 #define FLD(f) abuf->fields.sfmt_cswap.f
5518   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5519   int UNUSED written = 0;
5520   IADDR UNUSED pc = abuf->addr;
5521   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5522
5523 {
5524   SI tmp_address;
5525   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5526 frvbf_write_mem_SI (current_cpu, pc, tmp_address, GET_H_GR (FLD (f_GRk)));
5527 frvbf_check_recovering_store (current_cpu, tmp_address, FLD (f_GRk), 4, 0);
5528 }
5529
5530   return vpc;
5531 #undef FLD
5532 }
5533
5534 /* rstbf: rstbf$pack $FRintk,@($GRi,$GRj) */
5535
5536 static SEM_PC
5537 SEM_FN_NAME (frvbf,rstbf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5538 {
5539 #define FLD(f) abuf->fields.sfmt_cstbfu.f
5540   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5541   int UNUSED written = 0;
5542   IADDR UNUSED pc = abuf->addr;
5543   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5544
5545 {
5546   SI tmp_address;
5547   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5548 frvbf_write_mem_QI (current_cpu, pc, tmp_address, GET_H_FR_INT (FLD (f_FRk)));
5549 frvbf_check_recovering_store (current_cpu, tmp_address, FLD (f_FRk), 1, 1);
5550 }
5551
5552   return vpc;
5553 #undef FLD
5554 }
5555
5556 /* rsthf: rsthf$pack $FRintk,@($GRi,$GRj) */
5557
5558 static SEM_PC
5559 SEM_FN_NAME (frvbf,rsthf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5560 {
5561 #define FLD(f) abuf->fields.sfmt_cstbfu.f
5562   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5563   int UNUSED written = 0;
5564   IADDR UNUSED pc = abuf->addr;
5565   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5566
5567 {
5568   SI tmp_address;
5569   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5570 frvbf_write_mem_HI (current_cpu, pc, tmp_address, GET_H_FR_INT (FLD (f_FRk)));
5571 frvbf_check_recovering_store (current_cpu, tmp_address, FLD (f_FRk), 2, 1);
5572 }
5573
5574   return vpc;
5575 #undef FLD
5576 }
5577
5578 /* rstf: rstf$pack $FRintk,@($GRi,$GRj) */
5579
5580 static SEM_PC
5581 SEM_FN_NAME (frvbf,rstf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5582 {
5583 #define FLD(f) abuf->fields.sfmt_cstbfu.f
5584   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5585   int UNUSED written = 0;
5586   IADDR UNUSED pc = abuf->addr;
5587   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5588
5589 {
5590   SI tmp_address;
5591   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5592 frvbf_write_mem_SI (current_cpu, pc, tmp_address, GET_H_FR_INT (FLD (f_FRk)));
5593 frvbf_check_recovering_store (current_cpu, tmp_address, FLD (f_FRk), 4, 1);
5594 }
5595
5596   return vpc;
5597 #undef FLD
5598 }
5599
5600 /* std: std$pack $GRk,@($GRi,$GRj) */
5601
5602 static SEM_PC
5603 SEM_FN_NAME (frvbf,std) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5604 {
5605 #define FLD(f) abuf->fields.sfmt_cstdu.f
5606   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5607   int UNUSED written = 0;
5608   IADDR UNUSED pc = abuf->addr;
5609   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5610
5611 {
5612   SI tmp_address;
5613 {
5614   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5615 frvbf_write_mem_DI (current_cpu, pc, tmp_address, GET_H_GR_DOUBLE (FLD (f_GRk)));
5616 }
5617 }
5618
5619   return vpc;
5620 #undef FLD
5621 }
5622
5623 /* stdf: stdf$pack $FRk,@($GRi,$GRj) */
5624
5625 static SEM_PC
5626 SEM_FN_NAME (frvbf,stdf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5627 {
5628 #define FLD(f) abuf->fields.sfmt_cstdfu.f
5629   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5630   int UNUSED written = 0;
5631   IADDR UNUSED pc = abuf->addr;
5632   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5633
5634 {
5635   SI tmp_address;
5636 {
5637   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5638 frvbf_write_mem_DF (current_cpu, pc, tmp_address, GET_H_FR_DOUBLE (FLD (f_FRk)));
5639 }
5640 }
5641
5642   return vpc;
5643 #undef FLD
5644 }
5645
5646 /* stdc: stdc$pack $CPRk,@($GRi,$GRj) */
5647
5648 static SEM_PC
5649 SEM_FN_NAME (frvbf,stdc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5650 {
5651 #define FLD(f) abuf->fields.sfmt_stdcu.f
5652   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5653   int UNUSED written = 0;
5654   IADDR UNUSED pc = abuf->addr;
5655   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5656
5657 {
5658   SI tmp_address;
5659 {
5660   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5661 frvbf_write_mem_DI (current_cpu, pc, tmp_address, GET_H_CPR_DOUBLE (FLD (f_CPRk)));
5662 }
5663 }
5664
5665   return vpc;
5666 #undef FLD
5667 }
5668
5669 /* rstd: rstd$pack $GRk,@($GRi,$GRj) */
5670
5671 static SEM_PC
5672 SEM_FN_NAME (frvbf,rstd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5673 {
5674 #define FLD(f) abuf->fields.sfmt_cstdu.f
5675   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5676   int UNUSED written = 0;
5677   IADDR UNUSED pc = abuf->addr;
5678   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5679
5680 {
5681   SI tmp_address;
5682 {
5683   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5684 frvbf_write_mem_DI (current_cpu, pc, tmp_address, GET_H_GR_DOUBLE (FLD (f_GRk)));
5685 }
5686 frvbf_check_recovering_store (current_cpu, tmp_address, FLD (f_GRk), 8, 0);
5687 }
5688
5689   return vpc;
5690 #undef FLD
5691 }
5692
5693 /* rstdf: rstdf$pack $FRk,@($GRi,$GRj) */
5694
5695 static SEM_PC
5696 SEM_FN_NAME (frvbf,rstdf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5697 {
5698 #define FLD(f) abuf->fields.sfmt_cstdfu.f
5699   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5700   int UNUSED written = 0;
5701   IADDR UNUSED pc = abuf->addr;
5702   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5703
5704 {
5705   SI tmp_address;
5706 {
5707   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5708 frvbf_write_mem_DF (current_cpu, pc, tmp_address, GET_H_FR_DOUBLE (FLD (f_FRk)));
5709 }
5710 frvbf_check_recovering_store (current_cpu, tmp_address, FLD (f_FRk), 8, 1);
5711 }
5712
5713   return vpc;
5714 #undef FLD
5715 }
5716
5717 /* stq: stq$pack $GRk,@($GRi,$GRj) */
5718
5719 static SEM_PC
5720 SEM_FN_NAME (frvbf,stq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5721 {
5722 #define FLD(f) abuf->fields.sfmt_smulcc.f
5723   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5724   int UNUSED written = 0;
5725   IADDR UNUSED pc = abuf->addr;
5726   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5727
5728 {
5729   SI tmp_address;
5730 {
5731   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5732 frvbf_store_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
5733 }
5734 }
5735
5736   return vpc;
5737 #undef FLD
5738 }
5739
5740 /* stqf: stqf$pack $FRintk,@($GRi,$GRj) */
5741
5742 static SEM_PC
5743 SEM_FN_NAME (frvbf,stqf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5744 {
5745 #define FLD(f) abuf->fields.sfmt_cstdfu.f
5746   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5747   int UNUSED written = 0;
5748   IADDR UNUSED pc = abuf->addr;
5749   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5750
5751 {
5752   SI tmp_address;
5753 {
5754   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5755 frvbf_store_quad_FRint (current_cpu, pc, tmp_address, FLD (f_FRk));
5756 }
5757 }
5758
5759   return vpc;
5760 #undef FLD
5761 }
5762
5763 /* stqc: stqc$pack $CPRk,@($GRi,$GRj) */
5764
5765 static SEM_PC
5766 SEM_FN_NAME (frvbf,stqc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5767 {
5768 #define FLD(f) abuf->fields.sfmt_stdcu.f
5769   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5770   int UNUSED written = 0;
5771   IADDR UNUSED pc = abuf->addr;
5772   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5773
5774 {
5775   SI tmp_address;
5776 {
5777   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5778 frvbf_store_quad_CPR (current_cpu, pc, tmp_address, FLD (f_CPRk));
5779 }
5780 }
5781
5782   return vpc;
5783 #undef FLD
5784 }
5785
5786 /* rstq: rstq$pack $GRk,@($GRi,$GRj) */
5787
5788 static SEM_PC
5789 SEM_FN_NAME (frvbf,rstq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5790 {
5791 #define FLD(f) abuf->fields.sfmt_smulcc.f
5792   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5793   int UNUSED written = 0;
5794   IADDR UNUSED pc = abuf->addr;
5795   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5796
5797 {
5798   SI tmp_address;
5799 {
5800   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5801 frvbf_store_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
5802 }
5803 frvbf_check_recovering_store (current_cpu, tmp_address, FLD (f_GRk), 16, 0);
5804 }
5805
5806   return vpc;
5807 #undef FLD
5808 }
5809
5810 /* rstqf: rstqf$pack $FRintk,@($GRi,$GRj) */
5811
5812 static SEM_PC
5813 SEM_FN_NAME (frvbf,rstqf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5814 {
5815 #define FLD(f) abuf->fields.sfmt_cstdfu.f
5816   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5817   int UNUSED written = 0;
5818   IADDR UNUSED pc = abuf->addr;
5819   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5820
5821 {
5822   SI tmp_address;
5823 {
5824   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5825 frvbf_store_quad_FRint (current_cpu, pc, tmp_address, FLD (f_FRk));
5826 }
5827 frvbf_check_recovering_store (current_cpu, tmp_address, FLD (f_FRk), 16, 1);
5828 }
5829
5830   return vpc;
5831 #undef FLD
5832 }
5833
5834 /* stbu: stbu$pack $GRk,@($GRi,$GRj) */
5835
5836 static SEM_PC
5837 SEM_FN_NAME (frvbf,stbu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5838 {
5839 #define FLD(f) abuf->fields.sfmt_cstbu.f
5840   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5841   int UNUSED written = 0;
5842   IADDR UNUSED pc = abuf->addr;
5843   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5844
5845 {
5846   USI tmp_address;
5847   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5848 frvbf_write_mem_QI (current_cpu, pc, tmp_address, GET_H_GR (FLD (f_GRk)));
5849   {
5850     SI opval = tmp_address;
5851     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
5852     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5853   }
5854 }
5855
5856   return vpc;
5857 #undef FLD
5858 }
5859
5860 /* sthu: sthu$pack $GRk,@($GRi,$GRj) */
5861
5862 static SEM_PC
5863 SEM_FN_NAME (frvbf,sthu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5864 {
5865 #define FLD(f) abuf->fields.sfmt_cstbu.f
5866   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5867   int UNUSED written = 0;
5868   IADDR UNUSED pc = abuf->addr;
5869   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5870
5871 {
5872   USI tmp_address;
5873   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5874 frvbf_write_mem_HI (current_cpu, pc, tmp_address, GET_H_GR (FLD (f_GRk)));
5875   {
5876     SI opval = tmp_address;
5877     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
5878     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5879   }
5880 }
5881
5882   return vpc;
5883 #undef FLD
5884 }
5885
5886 /* stu: stu$pack $GRk,@($GRi,$GRj) */
5887
5888 static SEM_PC
5889 SEM_FN_NAME (frvbf,stu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5890 {
5891 #define FLD(f) abuf->fields.sfmt_cstbu.f
5892   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5893   int UNUSED written = 0;
5894   IADDR UNUSED pc = abuf->addr;
5895   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5896
5897 {
5898   USI tmp_address;
5899   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5900 frvbf_write_mem_WI (current_cpu, pc, tmp_address, GET_H_GR (FLD (f_GRk)));
5901   {
5902     SI opval = tmp_address;
5903     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
5904     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5905   }
5906 }
5907
5908   return vpc;
5909 #undef FLD
5910 }
5911
5912 /* stbfu: stbfu$pack $FRintk,@($GRi,$GRj) */
5913
5914 static SEM_PC
5915 SEM_FN_NAME (frvbf,stbfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5916 {
5917 #define FLD(f) abuf->fields.sfmt_cstbfu.f
5918   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5919   int UNUSED written = 0;
5920   IADDR UNUSED pc = abuf->addr;
5921   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5922
5923 {
5924   USI tmp_address;
5925   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5926 frvbf_write_mem_QI (current_cpu, pc, tmp_address, GET_H_FR_INT (FLD (f_FRk)));
5927   {
5928     SI opval = tmp_address;
5929     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
5930     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5931   }
5932 }
5933
5934   return vpc;
5935 #undef FLD
5936 }
5937
5938 /* sthfu: sthfu$pack $FRintk,@($GRi,$GRj) */
5939
5940 static SEM_PC
5941 SEM_FN_NAME (frvbf,sthfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5942 {
5943 #define FLD(f) abuf->fields.sfmt_cstbfu.f
5944   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5945   int UNUSED written = 0;
5946   IADDR UNUSED pc = abuf->addr;
5947   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5948
5949 {
5950   USI tmp_address;
5951   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5952 frvbf_write_mem_HI (current_cpu, pc, tmp_address, GET_H_FR_INT (FLD (f_FRk)));
5953   {
5954     SI opval = tmp_address;
5955     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
5956     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5957   }
5958 }
5959
5960   return vpc;
5961 #undef FLD
5962 }
5963
5964 /* stfu: stfu$pack $FRintk,@($GRi,$GRj) */
5965
5966 static SEM_PC
5967 SEM_FN_NAME (frvbf,stfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5968 {
5969 #define FLD(f) abuf->fields.sfmt_cstbfu.f
5970   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5971   int UNUSED written = 0;
5972   IADDR UNUSED pc = abuf->addr;
5973   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5974
5975 {
5976   USI tmp_address;
5977   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5978 frvbf_write_mem_SI (current_cpu, pc, tmp_address, GET_H_FR_INT (FLD (f_FRk)));
5979   {
5980     SI opval = tmp_address;
5981     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
5982     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5983   }
5984 }
5985
5986   return vpc;
5987 #undef FLD
5988 }
5989
5990 /* stcu: stcu$pack $CPRk,@($GRi,$GRj) */
5991
5992 static SEM_PC
5993 SEM_FN_NAME (frvbf,stcu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5994 {
5995 #define FLD(f) abuf->fields.sfmt_stcu.f
5996   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5997   int UNUSED written = 0;
5998   IADDR UNUSED pc = abuf->addr;
5999   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6000
6001 {
6002   USI tmp_address;
6003   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6004 frvbf_write_mem_SI (current_cpu, pc, tmp_address, CPU (h_cpr[FLD (f_CPRk)]));
6005   {
6006     SI opval = tmp_address;
6007     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6008     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6009   }
6010 }
6011
6012   return vpc;
6013 #undef FLD
6014 }
6015
6016 /* stdu: stdu$pack $GRk,@($GRi,$GRj) */
6017
6018 static SEM_PC
6019 SEM_FN_NAME (frvbf,stdu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6020 {
6021 #define FLD(f) abuf->fields.sfmt_cstdu.f
6022   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6023   int UNUSED written = 0;
6024   IADDR UNUSED pc = abuf->addr;
6025   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6026
6027 {
6028   SI tmp_address;
6029 {
6030   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6031 frvbf_write_mem_DI (current_cpu, pc, tmp_address, GET_H_GR_DOUBLE (FLD (f_GRk)));
6032 }
6033   {
6034     SI opval = tmp_address;
6035     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6036     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6037   }
6038 }
6039
6040   return vpc;
6041 #undef FLD
6042 }
6043
6044 /* stdfu: stdfu$pack $FRk,@($GRi,$GRj) */
6045
6046 static SEM_PC
6047 SEM_FN_NAME (frvbf,stdfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6048 {
6049 #define FLD(f) abuf->fields.sfmt_cstdfu.f
6050   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6051   int UNUSED written = 0;
6052   IADDR UNUSED pc = abuf->addr;
6053   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6054
6055 {
6056   SI tmp_address;
6057 {
6058   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6059 frvbf_write_mem_DF (current_cpu, pc, tmp_address, GET_H_FR_DOUBLE (FLD (f_FRk)));
6060 }
6061   {
6062     SI opval = tmp_address;
6063     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6064     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6065   }
6066 }
6067
6068   return vpc;
6069 #undef FLD
6070 }
6071
6072 /* stdcu: stdcu$pack $CPRk,@($GRi,$GRj) */
6073
6074 static SEM_PC
6075 SEM_FN_NAME (frvbf,stdcu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6076 {
6077 #define FLD(f) abuf->fields.sfmt_stdcu.f
6078   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6079   int UNUSED written = 0;
6080   IADDR UNUSED pc = abuf->addr;
6081   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6082
6083 {
6084   SI tmp_address;
6085 {
6086   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6087 frvbf_write_mem_DI (current_cpu, pc, tmp_address, GET_H_CPR_DOUBLE (FLD (f_CPRk)));
6088 }
6089   {
6090     SI opval = tmp_address;
6091     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6092     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6093   }
6094 }
6095
6096   return vpc;
6097 #undef FLD
6098 }
6099
6100 /* stqu: stqu$pack $GRk,@($GRi,$GRj) */
6101
6102 static SEM_PC
6103 SEM_FN_NAME (frvbf,stqu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6104 {
6105 #define FLD(f) abuf->fields.sfmt_cstdu.f
6106   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6107   int UNUSED written = 0;
6108   IADDR UNUSED pc = abuf->addr;
6109   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6110
6111 {
6112   SI tmp_address;
6113 {
6114   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6115 frvbf_store_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
6116 }
6117   {
6118     SI opval = tmp_address;
6119     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6120     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6121   }
6122 }
6123
6124   return vpc;
6125 #undef FLD
6126 }
6127
6128 /* stqfu: stqfu$pack $FRintk,@($GRi,$GRj) */
6129
6130 static SEM_PC
6131 SEM_FN_NAME (frvbf,stqfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6132 {
6133 #define FLD(f) abuf->fields.sfmt_cstdfu.f
6134   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6135   int UNUSED written = 0;
6136   IADDR UNUSED pc = abuf->addr;
6137   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6138
6139 {
6140   SI tmp_address;
6141 {
6142   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6143 frvbf_store_quad_FRint (current_cpu, pc, tmp_address, FLD (f_FRk));
6144 }
6145   {
6146     SI opval = tmp_address;
6147     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6148     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6149   }
6150 }
6151
6152   return vpc;
6153 #undef FLD
6154 }
6155
6156 /* stqcu: stqcu$pack $CPRk,@($GRi,$GRj) */
6157
6158 static SEM_PC
6159 SEM_FN_NAME (frvbf,stqcu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6160 {
6161 #define FLD(f) abuf->fields.sfmt_stdcu.f
6162   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6163   int UNUSED written = 0;
6164   IADDR UNUSED pc = abuf->addr;
6165   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6166
6167 {
6168   SI tmp_address;
6169 {
6170   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6171 frvbf_store_quad_CPR (current_cpu, pc, tmp_address, FLD (f_CPRk));
6172 }
6173   {
6174     SI opval = tmp_address;
6175     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6176     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6177   }
6178 }
6179
6180   return vpc;
6181 #undef FLD
6182 }
6183
6184 /* cldsb: cldsb$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6185
6186 static SEM_PC
6187 SEM_FN_NAME (frvbf,cldsb) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6188 {
6189 #define FLD(f) abuf->fields.sfmt_cswap.f
6190   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6191   int UNUSED written = 0;
6192   IADDR UNUSED pc = abuf->addr;
6193   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6194
6195 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6196   {
6197     SI opval = frvbf_read_mem_QI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
6198     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
6199     written |= (1 << 5);
6200     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6201   }
6202 }
6203
6204   abuf->written = written;
6205   return vpc;
6206 #undef FLD
6207 }
6208
6209 /* cldub: cldub$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6210
6211 static SEM_PC
6212 SEM_FN_NAME (frvbf,cldub) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6213 {
6214 #define FLD(f) abuf->fields.sfmt_cswap.f
6215   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6216   int UNUSED written = 0;
6217   IADDR UNUSED pc = abuf->addr;
6218   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6219
6220 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6221   {
6222     SI opval = frvbf_read_mem_UQI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
6223     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
6224     written |= (1 << 5);
6225     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6226   }
6227 }
6228
6229   abuf->written = written;
6230   return vpc;
6231 #undef FLD
6232 }
6233
6234 /* cldsh: cldsh$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6235
6236 static SEM_PC
6237 SEM_FN_NAME (frvbf,cldsh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6238 {
6239 #define FLD(f) abuf->fields.sfmt_cswap.f
6240   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6241   int UNUSED written = 0;
6242   IADDR UNUSED pc = abuf->addr;
6243   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6244
6245 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6246   {
6247     SI opval = frvbf_read_mem_HI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
6248     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
6249     written |= (1 << 5);
6250     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6251   }
6252 }
6253
6254   abuf->written = written;
6255   return vpc;
6256 #undef FLD
6257 }
6258
6259 /* clduh: clduh$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6260
6261 static SEM_PC
6262 SEM_FN_NAME (frvbf,clduh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6263 {
6264 #define FLD(f) abuf->fields.sfmt_cswap.f
6265   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6266   int UNUSED written = 0;
6267   IADDR UNUSED pc = abuf->addr;
6268   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6269
6270 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6271   {
6272     SI opval = frvbf_read_mem_UHI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
6273     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
6274     written |= (1 << 5);
6275     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6276   }
6277 }
6278
6279   abuf->written = written;
6280   return vpc;
6281 #undef FLD
6282 }
6283
6284 /* cld: cld$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6285
6286 static SEM_PC
6287 SEM_FN_NAME (frvbf,cld) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6288 {
6289 #define FLD(f) abuf->fields.sfmt_cswap.f
6290   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6291   int UNUSED written = 0;
6292   IADDR UNUSED pc = abuf->addr;
6293   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6294
6295 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6296   {
6297     SI opval = frvbf_read_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
6298     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
6299     written |= (1 << 5);
6300     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6301   }
6302 }
6303
6304   abuf->written = written;
6305   return vpc;
6306 #undef FLD
6307 }
6308
6309 /* cldbf: cldbf$pack @($GRi,$GRj),$FRintk,$CCi,$cond */
6310
6311 static SEM_PC
6312 SEM_FN_NAME (frvbf,cldbf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6313 {
6314 #define FLD(f) abuf->fields.sfmt_cldbfu.f
6315   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6316   int UNUSED written = 0;
6317   IADDR UNUSED pc = abuf->addr;
6318   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6319
6320 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6321   {
6322     SI opval = frvbf_read_mem_UQI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
6323     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
6324     written |= (1 << 5);
6325     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
6326   }
6327 }
6328
6329   abuf->written = written;
6330   return vpc;
6331 #undef FLD
6332 }
6333
6334 /* cldhf: cldhf$pack @($GRi,$GRj),$FRintk,$CCi,$cond */
6335
6336 static SEM_PC
6337 SEM_FN_NAME (frvbf,cldhf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6338 {
6339 #define FLD(f) abuf->fields.sfmt_cldbfu.f
6340   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6341   int UNUSED written = 0;
6342   IADDR UNUSED pc = abuf->addr;
6343   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6344
6345 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6346   {
6347     SI opval = frvbf_read_mem_UHI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
6348     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
6349     written |= (1 << 5);
6350     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
6351   }
6352 }
6353
6354   abuf->written = written;
6355   return vpc;
6356 #undef FLD
6357 }
6358
6359 /* cldf: cldf$pack @($GRi,$GRj),$FRintk,$CCi,$cond */
6360
6361 static SEM_PC
6362 SEM_FN_NAME (frvbf,cldf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6363 {
6364 #define FLD(f) abuf->fields.sfmt_cldbfu.f
6365   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6366   int UNUSED written = 0;
6367   IADDR UNUSED pc = abuf->addr;
6368   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6369
6370 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6371   {
6372     SI opval = frvbf_read_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
6373     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
6374     written |= (1 << 5);
6375     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
6376   }
6377 }
6378
6379   abuf->written = written;
6380   return vpc;
6381 #undef FLD
6382 }
6383
6384 /* cldd: cldd$pack @($GRi,$GRj),$GRdoublek,$CCi,$cond */
6385
6386 static SEM_PC
6387 SEM_FN_NAME (frvbf,cldd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6388 {
6389 #define FLD(f) abuf->fields.sfmt_clddu.f
6390   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6391   int UNUSED written = 0;
6392   IADDR UNUSED pc = abuf->addr;
6393   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6394
6395 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6396 {
6397   SI tmp_address;
6398 if (NESI (FLD (f_GRk), 0)) {
6399 {
6400   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6401   {
6402     DI opval = frvbf_read_mem_DI (current_cpu, pc, tmp_address);
6403     sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
6404     written |= (1 << 6);
6405     TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
6406   }
6407 }
6408 }
6409 }
6410 }
6411
6412   abuf->written = written;
6413   return vpc;
6414 #undef FLD
6415 }
6416
6417 /* clddf: clddf$pack @($GRi,$GRj),$FRdoublek,$CCi,$cond */
6418
6419 static SEM_PC
6420 SEM_FN_NAME (frvbf,clddf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6421 {
6422 #define FLD(f) abuf->fields.sfmt_clddfu.f
6423   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6424   int UNUSED written = 0;
6425   IADDR UNUSED pc = abuf->addr;
6426   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6427
6428 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6429 {
6430   SI tmp_address;
6431 {
6432   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6433   {
6434     DF opval = frvbf_read_mem_DF (current_cpu, pc, tmp_address);
6435     sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
6436     written |= (1 << 5);
6437     TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
6438   }
6439 }
6440 }
6441 }
6442
6443   abuf->written = written;
6444   return vpc;
6445 #undef FLD
6446 }
6447
6448 /* cldq: cldq$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6449
6450 static SEM_PC
6451 SEM_FN_NAME (frvbf,cldq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6452 {
6453 #define FLD(f) abuf->fields.sfmt_cswap.f
6454   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6455   int UNUSED written = 0;
6456   IADDR UNUSED pc = abuf->addr;
6457   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6458
6459 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6460 {
6461   SI tmp_address;
6462 {
6463   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6464 frvbf_load_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
6465 }
6466 }
6467 }
6468
6469   return vpc;
6470 #undef FLD
6471 }
6472
6473 /* cldsbu: cldsbu$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6474
6475 static SEM_PC
6476 SEM_FN_NAME (frvbf,cldsbu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6477 {
6478 #define FLD(f) abuf->fields.sfmt_cldsbu.f
6479   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6480   int UNUSED written = 0;
6481   IADDR UNUSED pc = abuf->addr;
6482   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6483
6484 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6485 {
6486   SI tmp_address;
6487   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6488   {
6489     SI opval = frvbf_read_mem_QI (current_cpu, pc, tmp_address);
6490     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
6491     written |= (1 << 8);
6492     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6493   }
6494 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
6495   {
6496     SI opval = tmp_address;
6497     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6498     written |= (1 << 7);
6499     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6500   }
6501 }
6502 }
6503 }
6504
6505   abuf->written = written;
6506   return vpc;
6507 #undef FLD
6508 }
6509
6510 /* cldubu: cldubu$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6511
6512 static SEM_PC
6513 SEM_FN_NAME (frvbf,cldubu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6514 {
6515 #define FLD(f) abuf->fields.sfmt_cldsbu.f
6516   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6517   int UNUSED written = 0;
6518   IADDR UNUSED pc = abuf->addr;
6519   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6520
6521 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6522 {
6523   SI tmp_address;
6524   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6525   {
6526     SI opval = frvbf_read_mem_UQI (current_cpu, pc, tmp_address);
6527     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
6528     written |= (1 << 8);
6529     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6530   }
6531 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
6532   {
6533     SI opval = tmp_address;
6534     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6535     written |= (1 << 7);
6536     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6537   }
6538 }
6539 }
6540 }
6541
6542   abuf->written = written;
6543   return vpc;
6544 #undef FLD
6545 }
6546
6547 /* cldshu: cldshu$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6548
6549 static SEM_PC
6550 SEM_FN_NAME (frvbf,cldshu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6551 {
6552 #define FLD(f) abuf->fields.sfmt_cldsbu.f
6553   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6554   int UNUSED written = 0;
6555   IADDR UNUSED pc = abuf->addr;
6556   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6557
6558 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6559 {
6560   SI tmp_address;
6561   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6562   {
6563     SI opval = frvbf_read_mem_HI (current_cpu, pc, tmp_address);
6564     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
6565     written |= (1 << 8);
6566     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6567   }
6568 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
6569   {
6570     SI opval = tmp_address;
6571     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6572     written |= (1 << 7);
6573     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6574   }
6575 }
6576 }
6577 }
6578
6579   abuf->written = written;
6580   return vpc;
6581 #undef FLD
6582 }
6583
6584 /* clduhu: clduhu$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6585
6586 static SEM_PC
6587 SEM_FN_NAME (frvbf,clduhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6588 {
6589 #define FLD(f) abuf->fields.sfmt_cldsbu.f
6590   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6591   int UNUSED written = 0;
6592   IADDR UNUSED pc = abuf->addr;
6593   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6594
6595 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6596 {
6597   SI tmp_address;
6598   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6599   {
6600     SI opval = frvbf_read_mem_UHI (current_cpu, pc, tmp_address);
6601     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
6602     written |= (1 << 8);
6603     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6604   }
6605 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
6606   {
6607     SI opval = tmp_address;
6608     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6609     written |= (1 << 7);
6610     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6611   }
6612 }
6613 }
6614 }
6615
6616   abuf->written = written;
6617   return vpc;
6618 #undef FLD
6619 }
6620
6621 /* cldu: cldu$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6622
6623 static SEM_PC
6624 SEM_FN_NAME (frvbf,cldu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6625 {
6626 #define FLD(f) abuf->fields.sfmt_cldsbu.f
6627   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6628   int UNUSED written = 0;
6629   IADDR UNUSED pc = abuf->addr;
6630   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6631
6632 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6633 {
6634   SI tmp_address;
6635   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6636   {
6637     SI opval = frvbf_read_mem_SI (current_cpu, pc, tmp_address);
6638     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
6639     written |= (1 << 8);
6640     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6641   }
6642 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
6643   {
6644     SI opval = tmp_address;
6645     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6646     written |= (1 << 7);
6647     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6648   }
6649 }
6650 }
6651 }
6652
6653   abuf->written = written;
6654   return vpc;
6655 #undef FLD
6656 }
6657
6658 /* cldbfu: cldbfu$pack @($GRi,$GRj),$FRintk,$CCi,$cond */
6659
6660 static SEM_PC
6661 SEM_FN_NAME (frvbf,cldbfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6662 {
6663 #define FLD(f) abuf->fields.sfmt_cldbfu.f
6664   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6665   int UNUSED written = 0;
6666   IADDR UNUSED pc = abuf->addr;
6667   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6668
6669 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6670 {
6671   SI tmp_address;
6672   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6673   {
6674     SI opval = frvbf_read_mem_UQI (current_cpu, pc, tmp_address);
6675     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
6676     written |= (1 << 5);
6677     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
6678   }
6679   {
6680     SI opval = tmp_address;
6681     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6682     written |= (1 << 6);
6683     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6684   }
6685 }
6686 }
6687
6688   abuf->written = written;
6689   return vpc;
6690 #undef FLD
6691 }
6692
6693 /* cldhfu: cldhfu$pack @($GRi,$GRj),$FRintk,$CCi,$cond */
6694
6695 static SEM_PC
6696 SEM_FN_NAME (frvbf,cldhfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6697 {
6698 #define FLD(f) abuf->fields.sfmt_cldbfu.f
6699   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6700   int UNUSED written = 0;
6701   IADDR UNUSED pc = abuf->addr;
6702   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6703
6704 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6705 {
6706   SI tmp_address;
6707   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6708   {
6709     SI opval = frvbf_read_mem_UHI (current_cpu, pc, tmp_address);
6710     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
6711     written |= (1 << 5);
6712     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
6713   }
6714   {
6715     SI opval = tmp_address;
6716     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6717     written |= (1 << 6);
6718     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6719   }
6720 }
6721 }
6722
6723   abuf->written = written;
6724   return vpc;
6725 #undef FLD
6726 }
6727
6728 /* cldfu: cldfu$pack @($GRi,$GRj),$FRintk,$CCi,$cond */
6729
6730 static SEM_PC
6731 SEM_FN_NAME (frvbf,cldfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6732 {
6733 #define FLD(f) abuf->fields.sfmt_cldbfu.f
6734   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6735   int UNUSED written = 0;
6736   IADDR UNUSED pc = abuf->addr;
6737   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6738
6739 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6740 {
6741   SI tmp_address;
6742   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6743   {
6744     SI opval = frvbf_read_mem_SI (current_cpu, pc, tmp_address);
6745     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
6746     written |= (1 << 5);
6747     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
6748   }
6749   {
6750     SI opval = tmp_address;
6751     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6752     written |= (1 << 6);
6753     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6754   }
6755 }
6756 }
6757
6758   abuf->written = written;
6759   return vpc;
6760 #undef FLD
6761 }
6762
6763 /* clddu: clddu$pack @($GRi,$GRj),$GRdoublek,$CCi,$cond */
6764
6765 static SEM_PC
6766 SEM_FN_NAME (frvbf,clddu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6767 {
6768 #define FLD(f) abuf->fields.sfmt_clddu.f
6769   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6770   int UNUSED written = 0;
6771   IADDR UNUSED pc = abuf->addr;
6772   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6773
6774 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6775 {
6776   SI tmp_address;
6777 if (NESI (FLD (f_GRk), 0)) {
6778 {
6779   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6780   {
6781     DI opval = frvbf_read_mem_DI (current_cpu, pc, tmp_address);
6782     sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
6783     written |= (1 << 7);
6784     TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
6785   }
6786 }
6787 }
6788 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
6789   {
6790     SI opval = tmp_address;
6791     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6792     written |= (1 << 8);
6793     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6794   }
6795 }
6796 }
6797 }
6798
6799   abuf->written = written;
6800   return vpc;
6801 #undef FLD
6802 }
6803
6804 /* clddfu: clddfu$pack @($GRi,$GRj),$FRdoublek,$CCi,$cond */
6805
6806 static SEM_PC
6807 SEM_FN_NAME (frvbf,clddfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6808 {
6809 #define FLD(f) abuf->fields.sfmt_clddfu.f
6810   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6811   int UNUSED written = 0;
6812   IADDR UNUSED pc = abuf->addr;
6813   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6814
6815 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6816 {
6817   SI tmp_address;
6818 {
6819   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6820   {
6821     DF opval = frvbf_read_mem_DF (current_cpu, pc, tmp_address);
6822     sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
6823     written |= (1 << 5);
6824     TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
6825   }
6826 }
6827   {
6828     SI opval = tmp_address;
6829     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6830     written |= (1 << 6);
6831     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6832   }
6833 }
6834 }
6835
6836   abuf->written = written;
6837   return vpc;
6838 #undef FLD
6839 }
6840
6841 /* cldqu: cldqu$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6842
6843 static SEM_PC
6844 SEM_FN_NAME (frvbf,cldqu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6845 {
6846 #define FLD(f) abuf->fields.sfmt_cstdu.f
6847   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6848   int UNUSED written = 0;
6849   IADDR UNUSED pc = abuf->addr;
6850   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6851
6852 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6853 {
6854   SI tmp_address;
6855 {
6856   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6857 frvbf_load_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
6858 }
6859 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
6860   {
6861     SI opval = tmp_address;
6862     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6863     written |= (1 << 7);
6864     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6865   }
6866 }
6867 }
6868 }
6869
6870   abuf->written = written;
6871   return vpc;
6872 #undef FLD
6873 }
6874
6875 /* cstb: cstb$pack $GRk,@($GRi,$GRj),$CCi,$cond */
6876
6877 static SEM_PC
6878 SEM_FN_NAME (frvbf,cstb) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6879 {
6880 #define FLD(f) abuf->fields.sfmt_cswap.f
6881   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6882   int UNUSED written = 0;
6883   IADDR UNUSED pc = abuf->addr;
6884   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6885
6886 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6887 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)));
6888 }
6889
6890   return vpc;
6891 #undef FLD
6892 }
6893
6894 /* csth: csth$pack $GRk,@($GRi,$GRj),$CCi,$cond */
6895
6896 static SEM_PC
6897 SEM_FN_NAME (frvbf,csth) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6898 {
6899 #define FLD(f) abuf->fields.sfmt_cswap.f
6900   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6901   int UNUSED written = 0;
6902   IADDR UNUSED pc = abuf->addr;
6903   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6904
6905 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6906 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)));
6907 }
6908
6909   return vpc;
6910 #undef FLD
6911 }
6912
6913 /* cst: cst$pack $GRk,@($GRi,$GRj),$CCi,$cond */
6914
6915 static SEM_PC
6916 SEM_FN_NAME (frvbf,cst) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6917 {
6918 #define FLD(f) abuf->fields.sfmt_cswap.f
6919   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6920   int UNUSED written = 0;
6921   IADDR UNUSED pc = abuf->addr;
6922   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6923
6924 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6925 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)));
6926 }
6927
6928   return vpc;
6929 #undef FLD
6930 }
6931
6932 /* cstbf: cstbf$pack $FRintk,@($GRi,$GRj),$CCi,$cond */
6933
6934 static SEM_PC
6935 SEM_FN_NAME (frvbf,cstbf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6936 {
6937 #define FLD(f) abuf->fields.sfmt_cstbfu.f
6938   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6939   int UNUSED written = 0;
6940   IADDR UNUSED pc = abuf->addr;
6941   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6942
6943 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6944 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)));
6945 }
6946
6947   return vpc;
6948 #undef FLD
6949 }
6950
6951 /* csthf: csthf$pack $FRintk,@($GRi,$GRj),$CCi,$cond */
6952
6953 static SEM_PC
6954 SEM_FN_NAME (frvbf,csthf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6955 {
6956 #define FLD(f) abuf->fields.sfmt_cstbfu.f
6957   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6958   int UNUSED written = 0;
6959   IADDR UNUSED pc = abuf->addr;
6960   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6961
6962 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6963 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)));
6964 }
6965
6966   return vpc;
6967 #undef FLD
6968 }
6969
6970 /* cstf: cstf$pack $FRintk,@($GRi,$GRj),$CCi,$cond */
6971
6972 static SEM_PC
6973 SEM_FN_NAME (frvbf,cstf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6974 {
6975 #define FLD(f) abuf->fields.sfmt_cstbfu.f
6976   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6977   int UNUSED written = 0;
6978   IADDR UNUSED pc = abuf->addr;
6979   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6980
6981 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6982 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)));
6983 }
6984
6985   return vpc;
6986 #undef FLD
6987 }
6988
6989 /* cstd: cstd$pack $GRk,@($GRi,$GRj),$CCi,$cond */
6990
6991 static SEM_PC
6992 SEM_FN_NAME (frvbf,cstd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6993 {
6994 #define FLD(f) abuf->fields.sfmt_cstdu.f
6995   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6996   int UNUSED written = 0;
6997   IADDR UNUSED pc = abuf->addr;
6998   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6999
7000 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7001 {
7002   SI tmp_address;
7003 {
7004   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7005 frvbf_write_mem_DI (current_cpu, pc, tmp_address, GET_H_GR_DOUBLE (FLD (f_GRk)));
7006 }
7007 }
7008 }
7009
7010   return vpc;
7011 #undef FLD
7012 }
7013
7014 /* cstdf: cstdf$pack $FRk,@($GRi,$GRj),$CCi,$cond */
7015
7016 static SEM_PC
7017 SEM_FN_NAME (frvbf,cstdf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7018 {
7019 #define FLD(f) abuf->fields.sfmt_cstdfu.f
7020   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7021   int UNUSED written = 0;
7022   IADDR UNUSED pc = abuf->addr;
7023   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7024
7025 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7026 {
7027   SI tmp_address;
7028 {
7029   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7030 frvbf_write_mem_DF (current_cpu, pc, tmp_address, GET_H_FR_DOUBLE (FLD (f_FRk)));
7031 }
7032 }
7033 }
7034
7035   return vpc;
7036 #undef FLD
7037 }
7038
7039 /* cstq: cstq$pack $GRk,@($GRi,$GRj),$CCi,$cond */
7040
7041 static SEM_PC
7042 SEM_FN_NAME (frvbf,cstq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7043 {
7044 #define FLD(f) abuf->fields.sfmt_cswap.f
7045   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7046   int UNUSED written = 0;
7047   IADDR UNUSED pc = abuf->addr;
7048   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7049
7050 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7051 {
7052   SI tmp_address;
7053 {
7054   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7055 frvbf_store_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
7056 }
7057 }
7058 }
7059
7060   return vpc;
7061 #undef FLD
7062 }
7063
7064 /* cstbu: cstbu$pack $GRk,@($GRi,$GRj),$CCi,$cond */
7065
7066 static SEM_PC
7067 SEM_FN_NAME (frvbf,cstbu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7068 {
7069 #define FLD(f) abuf->fields.sfmt_cstbu.f
7070   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7071   int UNUSED written = 0;
7072   IADDR UNUSED pc = abuf->addr;
7073   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7074
7075 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7076 {
7077   SI tmp_address;
7078   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7079 frvbf_write_mem_QI (current_cpu, pc, tmp_address, GET_H_GR (FLD (f_GRk)));
7080   {
7081     SI opval = tmp_address;
7082     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
7083     written |= (1 << 6);
7084     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7085   }
7086 }
7087 }
7088
7089   abuf->written = written;
7090   return vpc;
7091 #undef FLD
7092 }
7093
7094 /* csthu: csthu$pack $GRk,@($GRi,$GRj),$CCi,$cond */
7095
7096 static SEM_PC
7097 SEM_FN_NAME (frvbf,csthu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7098 {
7099 #define FLD(f) abuf->fields.sfmt_cstbu.f
7100   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7101   int UNUSED written = 0;
7102   IADDR UNUSED pc = abuf->addr;
7103   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7104
7105 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7106 {
7107   SI tmp_address;
7108   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7109 frvbf_write_mem_HI (current_cpu, pc, tmp_address, GET_H_GR (FLD (f_GRk)));
7110   {
7111     SI opval = tmp_address;
7112     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
7113     written |= (1 << 6);
7114     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7115   }
7116 }
7117 }
7118
7119   abuf->written = written;
7120   return vpc;
7121 #undef FLD
7122 }
7123
7124 /* cstu: cstu$pack $GRk,@($GRi,$GRj),$CCi,$cond */
7125
7126 static SEM_PC
7127 SEM_FN_NAME (frvbf,cstu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7128 {
7129 #define FLD(f) abuf->fields.sfmt_cstbu.f
7130   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7131   int UNUSED written = 0;
7132   IADDR UNUSED pc = abuf->addr;
7133   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7134
7135 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7136 {
7137   SI tmp_address;
7138   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7139 frvbf_write_mem_SI (current_cpu, pc, tmp_address, GET_H_GR (FLD (f_GRk)));
7140   {
7141     SI opval = tmp_address;
7142     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
7143     written |= (1 << 6);
7144     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7145   }
7146 }
7147 }
7148
7149   abuf->written = written;
7150   return vpc;
7151 #undef FLD
7152 }
7153
7154 /* cstbfu: cstbfu$pack $FRintk,@($GRi,$GRj),$CCi,$cond */
7155
7156 static SEM_PC
7157 SEM_FN_NAME (frvbf,cstbfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7158 {
7159 #define FLD(f) abuf->fields.sfmt_cstbfu.f
7160   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7161   int UNUSED written = 0;
7162   IADDR UNUSED pc = abuf->addr;
7163   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7164
7165 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7166 {
7167   SI tmp_address;
7168   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7169 frvbf_write_mem_QI (current_cpu, pc, tmp_address, GET_H_FR_INT (FLD (f_FRk)));
7170   {
7171     SI opval = tmp_address;
7172     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
7173     written |= (1 << 6);
7174     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7175   }
7176 }
7177 }
7178
7179   abuf->written = written;
7180   return vpc;
7181 #undef FLD
7182 }
7183
7184 /* csthfu: csthfu$pack $FRintk,@($GRi,$GRj),$CCi,$cond */
7185
7186 static SEM_PC
7187 SEM_FN_NAME (frvbf,csthfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7188 {
7189 #define FLD(f) abuf->fields.sfmt_cstbfu.f
7190   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7191   int UNUSED written = 0;
7192   IADDR UNUSED pc = abuf->addr;
7193   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7194
7195 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7196 {
7197   SI tmp_address;
7198   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7199 frvbf_write_mem_HI (current_cpu, pc, tmp_address, GET_H_FR_INT (FLD (f_FRk)));
7200   {
7201     SI opval = tmp_address;
7202     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
7203     written |= (1 << 6);
7204     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7205   }
7206 }
7207 }
7208
7209   abuf->written = written;
7210   return vpc;
7211 #undef FLD
7212 }
7213
7214 /* cstfu: cstfu$pack $FRintk,@($GRi,$GRj),$CCi,$cond */
7215
7216 static SEM_PC
7217 SEM_FN_NAME (frvbf,cstfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7218 {
7219 #define FLD(f) abuf->fields.sfmt_cstbfu.f
7220   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7221   int UNUSED written = 0;
7222   IADDR UNUSED pc = abuf->addr;
7223   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7224
7225 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7226 {
7227   SI tmp_address;
7228   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7229 frvbf_write_mem_SI (current_cpu, pc, tmp_address, GET_H_FR_INT (FLD (f_FRk)));
7230   {
7231     SI opval = tmp_address;
7232     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
7233     written |= (1 << 6);
7234     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7235   }
7236 }
7237 }
7238
7239   abuf->written = written;
7240   return vpc;
7241 #undef FLD
7242 }
7243
7244 /* cstdu: cstdu$pack $GRk,@($GRi,$GRj),$CCi,$cond */
7245
7246 static SEM_PC
7247 SEM_FN_NAME (frvbf,cstdu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7248 {
7249 #define FLD(f) abuf->fields.sfmt_cstdu.f
7250   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7251   int UNUSED written = 0;
7252   IADDR UNUSED pc = abuf->addr;
7253   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7254
7255 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7256 {
7257   SI tmp_address;
7258 {
7259   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7260 frvbf_write_mem_DI (current_cpu, pc, tmp_address, GET_H_GR_DOUBLE (FLD (f_GRk)));
7261 }
7262   {
7263     SI opval = tmp_address;
7264     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
7265     written |= (1 << 6);
7266     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7267   }
7268 }
7269 }
7270
7271   abuf->written = written;
7272   return vpc;
7273 #undef FLD
7274 }
7275
7276 /* cstdfu: cstdfu$pack $FRk,@($GRi,$GRj),$CCi,$cond */
7277
7278 static SEM_PC
7279 SEM_FN_NAME (frvbf,cstdfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7280 {
7281 #define FLD(f) abuf->fields.sfmt_cstdfu.f
7282   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7283   int UNUSED written = 0;
7284   IADDR UNUSED pc = abuf->addr;
7285   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7286
7287 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7288 {
7289   SI tmp_address;
7290 {
7291   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7292 frvbf_write_mem_DF (current_cpu, pc, tmp_address, GET_H_FR_DOUBLE (FLD (f_FRk)));
7293 }
7294   {
7295     SI opval = tmp_address;
7296     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
7297     written |= (1 << 6);
7298     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7299   }
7300 }
7301 }
7302
7303   abuf->written = written;
7304   return vpc;
7305 #undef FLD
7306 }
7307
7308 /* stbi: stbi$pack $GRk,@($GRi,$d12) */
7309
7310 static SEM_PC
7311 SEM_FN_NAME (frvbf,stbi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7312 {
7313 #define FLD(f) abuf->fields.sfmt_swapi.f
7314   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7315   int UNUSED written = 0;
7316   IADDR UNUSED pc = abuf->addr;
7317   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7318
7319 frvbf_write_mem_QI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)), GET_H_GR (FLD (f_GRk)));
7320
7321   return vpc;
7322 #undef FLD
7323 }
7324
7325 /* sthi: sthi$pack $GRk,@($GRi,$d12) */
7326
7327 static SEM_PC
7328 SEM_FN_NAME (frvbf,sthi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7329 {
7330 #define FLD(f) abuf->fields.sfmt_swapi.f
7331   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7332   int UNUSED written = 0;
7333   IADDR UNUSED pc = abuf->addr;
7334   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7335
7336 frvbf_write_mem_HI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)), GET_H_GR (FLD (f_GRk)));
7337
7338   return vpc;
7339 #undef FLD
7340 }
7341
7342 /* sti: sti$pack $GRk,@($GRi,$d12) */
7343
7344 static SEM_PC
7345 SEM_FN_NAME (frvbf,sti) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7346 {
7347 #define FLD(f) abuf->fields.sfmt_swapi.f
7348   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7349   int UNUSED written = 0;
7350   IADDR UNUSED pc = abuf->addr;
7351   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7352
7353 frvbf_write_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)), GET_H_GR (FLD (f_GRk)));
7354
7355   return vpc;
7356 #undef FLD
7357 }
7358
7359 /* stbfi: stbfi$pack $FRintk,@($GRi,$d12) */
7360
7361 static SEM_PC
7362 SEM_FN_NAME (frvbf,stbfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7363 {
7364 #define FLD(f) abuf->fields.sfmt_stbfi.f
7365   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7366   int UNUSED written = 0;
7367   IADDR UNUSED pc = abuf->addr;
7368   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7369
7370 frvbf_write_mem_QI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)), GET_H_FR_INT (FLD (f_FRk)));
7371
7372   return vpc;
7373 #undef FLD
7374 }
7375
7376 /* sthfi: sthfi$pack $FRintk,@($GRi,$d12) */
7377
7378 static SEM_PC
7379 SEM_FN_NAME (frvbf,sthfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7380 {
7381 #define FLD(f) abuf->fields.sfmt_stbfi.f
7382   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7383   int UNUSED written = 0;
7384   IADDR UNUSED pc = abuf->addr;
7385   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7386
7387 frvbf_write_mem_HI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)), GET_H_FR_INT (FLD (f_FRk)));
7388
7389   return vpc;
7390 #undef FLD
7391 }
7392
7393 /* stfi: stfi$pack $FRintk,@($GRi,$d12) */
7394
7395 static SEM_PC
7396 SEM_FN_NAME (frvbf,stfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7397 {
7398 #define FLD(f) abuf->fields.sfmt_stbfi.f
7399   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7400   int UNUSED written = 0;
7401   IADDR UNUSED pc = abuf->addr;
7402   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7403
7404 frvbf_write_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)), GET_H_FR_INT (FLD (f_FRk)));
7405
7406   return vpc;
7407 #undef FLD
7408 }
7409
7410 /* stdi: stdi$pack $GRk,@($GRi,$d12) */
7411
7412 static SEM_PC
7413 SEM_FN_NAME (frvbf,stdi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7414 {
7415 #define FLD(f) abuf->fields.sfmt_stdi.f
7416   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7417   int UNUSED written = 0;
7418   IADDR UNUSED pc = abuf->addr;
7419   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7420
7421 {
7422   SI tmp_address;
7423 {
7424   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
7425 frvbf_write_mem_DI (current_cpu, pc, tmp_address, GET_H_GR_DOUBLE (FLD (f_GRk)));
7426 }
7427 }
7428
7429   return vpc;
7430 #undef FLD
7431 }
7432
7433 /* stdfi: stdfi$pack $FRk,@($GRi,$d12) */
7434
7435 static SEM_PC
7436 SEM_FN_NAME (frvbf,stdfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7437 {
7438 #define FLD(f) abuf->fields.sfmt_stdfi.f
7439   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7440   int UNUSED written = 0;
7441   IADDR UNUSED pc = abuf->addr;
7442   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7443
7444 {
7445   SI tmp_address;
7446 {
7447   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
7448 frvbf_write_mem_DF (current_cpu, pc, tmp_address, GET_H_FR_DOUBLE (FLD (f_FRk)));
7449 }
7450 }
7451
7452   return vpc;
7453 #undef FLD
7454 }
7455
7456 /* stqi: stqi$pack $GRk,@($GRi,$d12) */
7457
7458 static SEM_PC
7459 SEM_FN_NAME (frvbf,stqi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7460 {
7461 #define FLD(f) abuf->fields.sfmt_stdi.f
7462   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7463   int UNUSED written = 0;
7464   IADDR UNUSED pc = abuf->addr;
7465   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7466
7467 {
7468   SI tmp_address;
7469 {
7470   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
7471 frvbf_store_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
7472 }
7473 }
7474
7475   return vpc;
7476 #undef FLD
7477 }
7478
7479 /* stqfi: stqfi$pack $FRintk,@($GRi,$d12) */
7480
7481 static SEM_PC
7482 SEM_FN_NAME (frvbf,stqfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7483 {
7484 #define FLD(f) abuf->fields.sfmt_stdfi.f
7485   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7486   int UNUSED written = 0;
7487   IADDR UNUSED pc = abuf->addr;
7488   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7489
7490 {
7491   SI tmp_address;
7492 {
7493   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
7494 frvbf_store_quad_FRint (current_cpu, pc, tmp_address, FLD (f_FRk));
7495 }
7496 }
7497
7498   return vpc;
7499 #undef FLD
7500 }
7501
7502 /* swap: swap$pack @($GRi,$GRj),$GRk */
7503
7504 static SEM_PC
7505 SEM_FN_NAME (frvbf,swap) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7506 {
7507 #define FLD(f) abuf->fields.sfmt_cswap.f
7508   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7509   int UNUSED written = 0;
7510   IADDR UNUSED pc = abuf->addr;
7511   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7512
7513 {
7514   SI tmp_tmp;
7515   SI tmp_address;
7516   tmp_tmp = GET_H_GR (FLD (f_GRk));
7517   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7518   {
7519     SI opval = frvbf_read_mem_WI (current_cpu, pc, tmp_address);
7520     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
7521     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7522   }
7523 frvbf_write_mem_WI (current_cpu, pc, tmp_address, tmp_tmp);
7524 }
7525
7526   return vpc;
7527 #undef FLD
7528 }
7529
7530 /* swapi: swapi$pack @($GRi,$d12),$GRk */
7531
7532 static SEM_PC
7533 SEM_FN_NAME (frvbf,swapi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7534 {
7535 #define FLD(f) abuf->fields.sfmt_swapi.f
7536   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7537   int UNUSED written = 0;
7538   IADDR UNUSED pc = abuf->addr;
7539   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7540
7541 {
7542   SI tmp_tmp;
7543   SI tmp_address;
7544   tmp_tmp = GET_H_GR (FLD (f_GRk));
7545   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
7546   {
7547     SI opval = frvbf_read_mem_WI (current_cpu, pc, tmp_address);
7548     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
7549     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7550   }
7551 frvbf_write_mem_WI (current_cpu, pc, tmp_address, tmp_tmp);
7552 }
7553
7554   return vpc;
7555 #undef FLD
7556 }
7557
7558 /* cswap: cswap$pack @($GRi,$GRj),$GRk,$CCi,$cond */
7559
7560 static SEM_PC
7561 SEM_FN_NAME (frvbf,cswap) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7562 {
7563 #define FLD(f) abuf->fields.sfmt_cswap.f
7564   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7565   int UNUSED written = 0;
7566   IADDR UNUSED pc = abuf->addr;
7567   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7568
7569 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
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)), GET_H_GR (FLD (f_GRj)));
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     written |= (1 << 6);
7579     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7580   }
7581 frvbf_write_mem_WI (current_cpu, pc, tmp_address, tmp_tmp);
7582 }
7583 }
7584
7585   abuf->written = written;
7586   return vpc;
7587 #undef FLD
7588 }
7589
7590 /* movgf: movgf$pack $GRj,$FRintk */
7591
7592 static SEM_PC
7593 SEM_FN_NAME (frvbf,movgf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7594 {
7595 #define FLD(f) abuf->fields.sfmt_cmovgfd.f
7596   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7597   int UNUSED written = 0;
7598   IADDR UNUSED pc = abuf->addr;
7599   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7600
7601   {
7602     SI opval = GET_H_GR (FLD (f_GRj));
7603     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
7604     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7605   }
7606
7607   return vpc;
7608 #undef FLD
7609 }
7610
7611 /* movfg: movfg$pack $FRintk,$GRj */
7612
7613 static SEM_PC
7614 SEM_FN_NAME (frvbf,movfg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7615 {
7616 #define FLD(f) abuf->fields.sfmt_cmovfgd.f
7617   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7618   int UNUSED written = 0;
7619   IADDR UNUSED pc = abuf->addr;
7620   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7621
7622   {
7623     SI opval = GET_H_FR_INT (FLD (f_FRk));
7624     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRj), opval);
7625     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7626   }
7627
7628   return vpc;
7629 #undef FLD
7630 }
7631
7632 /* movgfd: movgfd$pack $GRj,$FRintk */
7633
7634 static SEM_PC
7635 SEM_FN_NAME (frvbf,movgfd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7636 {
7637 #define FLD(f) abuf->fields.sfmt_cmovgfd.f
7638   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7639   int UNUSED written = 0;
7640   IADDR UNUSED pc = abuf->addr;
7641   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7642
7643 if (EQSI (FLD (f_GRj), 0)) {
7644 {
7645   {
7646     SI opval = 0;
7647     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
7648     written |= (1 << 4);
7649     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7650   }
7651   {
7652     USI opval = 0;
7653     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (1)), opval);
7654     written |= (1 << 5);
7655     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7656   }
7657 }
7658 } else {
7659 {
7660   {
7661     SI opval = GET_H_GR (FLD (f_GRj));
7662     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
7663     written |= (1 << 4);
7664     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7665   }
7666   {
7667     USI opval = GET_H_GR (((FLD (f_GRj)) + (1)));
7668     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (1)), opval);
7669     written |= (1 << 5);
7670     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7671   }
7672 }
7673 }
7674
7675   abuf->written = written;
7676   return vpc;
7677 #undef FLD
7678 }
7679
7680 /* movfgd: movfgd$pack $FRintk,$GRj */
7681
7682 static SEM_PC
7683 SEM_FN_NAME (frvbf,movfgd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7684 {
7685 #define FLD(f) abuf->fields.sfmt_cmovfgd.f
7686   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7687   int UNUSED written = 0;
7688   IADDR UNUSED pc = abuf->addr;
7689   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7690
7691 if (NESI (FLD (f_GRj), 0)) {
7692 {
7693   {
7694     SI opval = GET_H_FR_INT (FLD (f_FRk));
7695     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRj), opval);
7696     written |= (1 << 4);
7697     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7698   }
7699   {
7700     USI opval = GET_H_FR_INT (((FLD (f_FRk)) + (1)));
7701     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, ((FLD (f_GRj)) + (1)), opval);
7702     written |= (1 << 5);
7703     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7704   }
7705 }
7706 }
7707
7708   abuf->written = written;
7709   return vpc;
7710 #undef FLD
7711 }
7712
7713 /* movgfq: movgfq$pack $GRj,$FRintk */
7714
7715 static SEM_PC
7716 SEM_FN_NAME (frvbf,movgfq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7717 {
7718 #define FLD(f) abuf->fields.sfmt_movgfq.f
7719   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7720   int UNUSED written = 0;
7721   IADDR UNUSED pc = abuf->addr;
7722   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7723
7724 if (EQSI (FLD (f_GRj), 0)) {
7725 {
7726   {
7727     SI opval = 0;
7728     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
7729     written |= (1 << 6);
7730     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7731   }
7732   {
7733     USI opval = 0;
7734     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (1)), opval);
7735     written |= (1 << 7);
7736     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7737   }
7738   {
7739     USI opval = 0;
7740     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (2)), opval);
7741     written |= (1 << 8);
7742     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7743   }
7744   {
7745     USI opval = 0;
7746     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (3)), opval);
7747     written |= (1 << 9);
7748     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7749   }
7750 }
7751 } else {
7752 {
7753   {
7754     SI opval = GET_H_GR (FLD (f_GRj));
7755     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
7756     written |= (1 << 6);
7757     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7758   }
7759   {
7760     USI opval = GET_H_GR (((FLD (f_GRj)) + (1)));
7761     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (1)), opval);
7762     written |= (1 << 7);
7763     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7764   }
7765   {
7766     USI opval = GET_H_GR (((FLD (f_GRj)) + (2)));
7767     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (2)), opval);
7768     written |= (1 << 8);
7769     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7770   }
7771   {
7772     USI opval = GET_H_GR (((FLD (f_GRj)) + (3)));
7773     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (3)), opval);
7774     written |= (1 << 9);
7775     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7776   }
7777 }
7778 }
7779
7780   abuf->written = written;
7781   return vpc;
7782 #undef FLD
7783 }
7784
7785 /* movfgq: movfgq$pack $FRintk,$GRj */
7786
7787 static SEM_PC
7788 SEM_FN_NAME (frvbf,movfgq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7789 {
7790 #define FLD(f) abuf->fields.sfmt_movfgq.f
7791   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7792   int UNUSED written = 0;
7793   IADDR UNUSED pc = abuf->addr;
7794   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7795
7796 if (NESI (FLD (f_GRj), 0)) {
7797 {
7798   {
7799     SI opval = GET_H_FR_INT (FLD (f_FRk));
7800     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRj), opval);
7801     written |= (1 << 6);
7802     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7803   }
7804   {
7805     USI opval = GET_H_FR_INT (((FLD (f_FRk)) + (1)));
7806     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, ((FLD (f_GRj)) + (1)), opval);
7807     written |= (1 << 7);
7808     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7809   }
7810   {
7811     USI opval = GET_H_FR_INT (((FLD (f_FRk)) + (2)));
7812     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, ((FLD (f_GRj)) + (2)), opval);
7813     written |= (1 << 8);
7814     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7815   }
7816   {
7817     USI opval = GET_H_FR_INT (((FLD (f_FRk)) + (3)));
7818     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, ((FLD (f_GRj)) + (3)), opval);
7819     written |= (1 << 9);
7820     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7821   }
7822 }
7823 }
7824
7825   abuf->written = written;
7826   return vpc;
7827 #undef FLD
7828 }
7829
7830 /* cmovgf: cmovgf$pack $GRj,$FRintk,$CCi,$cond */
7831
7832 static SEM_PC
7833 SEM_FN_NAME (frvbf,cmovgf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7834 {
7835 #define FLD(f) abuf->fields.sfmt_cmovgfd.f
7836   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7837   int UNUSED written = 0;
7838   IADDR UNUSED pc = abuf->addr;
7839   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7840
7841 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7842   {
7843     SI opval = GET_H_GR (FLD (f_GRj));
7844     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
7845     written |= (1 << 3);
7846     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7847   }
7848 }
7849
7850   abuf->written = written;
7851   return vpc;
7852 #undef FLD
7853 }
7854
7855 /* cmovfg: cmovfg$pack $FRintk,$GRj,$CCi,$cond */
7856
7857 static SEM_PC
7858 SEM_FN_NAME (frvbf,cmovfg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7859 {
7860 #define FLD(f) abuf->fields.sfmt_cmovfgd.f
7861   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7862   int UNUSED written = 0;
7863   IADDR UNUSED pc = abuf->addr;
7864   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7865
7866 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7867   {
7868     SI opval = GET_H_FR_INT (FLD (f_FRk));
7869     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRj), opval);
7870     written |= (1 << 3);
7871     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7872   }
7873 }
7874
7875   abuf->written = written;
7876   return vpc;
7877 #undef FLD
7878 }
7879
7880 /* cmovgfd: cmovgfd$pack $GRj,$FRintk,$CCi,$cond */
7881
7882 static SEM_PC
7883 SEM_FN_NAME (frvbf,cmovgfd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7884 {
7885 #define FLD(f) abuf->fields.sfmt_cmovgfd.f
7886   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7887   int UNUSED written = 0;
7888   IADDR UNUSED pc = abuf->addr;
7889   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7890
7891 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7892 if (EQSI (FLD (f_GRj), 0)) {
7893 {
7894   {
7895     SI opval = 0;
7896     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
7897     written |= (1 << 6);
7898     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7899   }
7900   {
7901     USI opval = 0;
7902     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (1)), opval);
7903     written |= (1 << 7);
7904     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7905   }
7906 }
7907 } else {
7908 {
7909   {
7910     SI opval = GET_H_GR (FLD (f_GRj));
7911     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
7912     written |= (1 << 6);
7913     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7914   }
7915   {
7916     USI opval = GET_H_GR (((FLD (f_GRj)) + (1)));
7917     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (1)), opval);
7918     written |= (1 << 7);
7919     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7920   }
7921 }
7922 }
7923 }
7924
7925   abuf->written = written;
7926   return vpc;
7927 #undef FLD
7928 }
7929
7930 /* cmovfgd: cmovfgd$pack $FRintk,$GRj,$CCi,$cond */
7931
7932 static SEM_PC
7933 SEM_FN_NAME (frvbf,cmovfgd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7934 {
7935 #define FLD(f) abuf->fields.sfmt_cmovfgd.f
7936   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7937   int UNUSED written = 0;
7938   IADDR UNUSED pc = abuf->addr;
7939   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7940
7941 if (ANDIF (NESI (FLD (f_GRj), 0), EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2)))) {
7942 {
7943   {
7944     SI opval = GET_H_FR_INT (FLD (f_FRk));
7945     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRj), opval);
7946     written |= (1 << 6);
7947     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7948   }
7949   {
7950     USI opval = GET_H_FR_INT (((FLD (f_FRk)) + (1)));
7951     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, ((FLD (f_GRj)) + (1)), opval);
7952     written |= (1 << 7);
7953     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7954   }
7955 }
7956 }
7957
7958   abuf->written = written;
7959   return vpc;
7960 #undef FLD
7961 }
7962
7963 /* movgs: movgs$pack $GRj,$spr */
7964
7965 static SEM_PC
7966 SEM_FN_NAME (frvbf,movgs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7967 {
7968 #define FLD(f) abuf->fields.sfmt_movgs.f
7969   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7970   int UNUSED written = 0;
7971   IADDR UNUSED pc = abuf->addr;
7972   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7973
7974   {
7975     USI opval = GET_H_GR (FLD (f_GRj));
7976     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, FLD (f_spr), opval);
7977     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
7978   }
7979
7980   return vpc;
7981 #undef FLD
7982 }
7983
7984 /* movsg: movsg$pack $spr,$GRj */
7985
7986 static SEM_PC
7987 SEM_FN_NAME (frvbf,movsg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7988 {
7989 #define FLD(f) abuf->fields.sfmt_movsg.f
7990   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7991   int UNUSED written = 0;
7992   IADDR UNUSED pc = abuf->addr;
7993   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7994
7995   {
7996     SI opval = GET_H_SPR (FLD (f_spr));
7997     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRj), opval);
7998     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7999   }
8000
8001   return vpc;
8002 #undef FLD
8003 }
8004
8005 /* bra: bra$pack $hint_taken$label16 */
8006
8007 static SEM_PC
8008 SEM_FN_NAME (frvbf,bra) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8009 {
8010 #define FLD(f) abuf->fields.sfmt_fbne.f
8011   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8012   int UNUSED written = 0;
8013   IADDR UNUSED pc = abuf->addr;
8014   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8015
8016 {
8017 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8018   {
8019     USI opval = FLD (i_label16);
8020     sim_queue_pc_write (current_cpu, opval);
8021     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8022   }
8023 }
8024
8025   return vpc;
8026 #undef FLD
8027 }
8028
8029 /* bno: bno$pack$hint_not_taken */
8030
8031 static SEM_PC
8032 SEM_FN_NAME (frvbf,bno) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8033 {
8034 #define FLD(f) abuf->fields.sfmt_fbne.f
8035   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8036   int UNUSED written = 0;
8037   IADDR UNUSED pc = abuf->addr;
8038   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8039
8040 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8041
8042   return vpc;
8043 #undef FLD
8044 }
8045
8046 /* beq: beq$pack $ICCi_2,$hint,$label16 */
8047
8048 static SEM_PC
8049 SEM_FN_NAME (frvbf,beq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8050 {
8051 #define FLD(f) abuf->fields.sfmt_beq.f
8052   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8053   int UNUSED written = 0;
8054   IADDR UNUSED pc = abuf->addr;
8055   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8056
8057 {
8058 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8059 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2))) {
8060   {
8061     USI opval = FLD (i_label16);
8062     sim_queue_pc_write (current_cpu, opval);
8063     written |= (1 << 3);
8064     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8065   }
8066 }
8067 }
8068
8069   abuf->written = written;
8070   return vpc;
8071 #undef FLD
8072 }
8073
8074 /* bne: bne$pack $ICCi_2,$hint,$label16 */
8075
8076 static SEM_PC
8077 SEM_FN_NAME (frvbf,bne) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8078 {
8079 #define FLD(f) abuf->fields.sfmt_beq.f
8080   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8081   int UNUSED written = 0;
8082   IADDR UNUSED pc = abuf->addr;
8083   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8084
8085 {
8086 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8087 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)))) {
8088   {
8089     USI opval = FLD (i_label16);
8090     sim_queue_pc_write (current_cpu, opval);
8091     written |= (1 << 3);
8092     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8093   }
8094 }
8095 }
8096
8097   abuf->written = written;
8098   return vpc;
8099 #undef FLD
8100 }
8101
8102 /* ble: ble$pack $ICCi_2,$hint,$label16 */
8103
8104 static SEM_PC
8105 SEM_FN_NAME (frvbf,ble) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8106 {
8107 #define FLD(f) abuf->fields.sfmt_beq.f
8108   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8109   int UNUSED written = 0;
8110   IADDR UNUSED pc = abuf->addr;
8111   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8112
8113 {
8114 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8115 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))))) {
8116   {
8117     USI opval = FLD (i_label16);
8118     sim_queue_pc_write (current_cpu, opval);
8119     written |= (1 << 3);
8120     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8121   }
8122 }
8123 }
8124
8125   abuf->written = written;
8126   return vpc;
8127 #undef FLD
8128 }
8129
8130 /* bgt: bgt$pack $ICCi_2,$hint,$label16 */
8131
8132 static SEM_PC
8133 SEM_FN_NAME (frvbf,bgt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8134 {
8135 #define FLD(f) abuf->fields.sfmt_beq.f
8136   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8137   int UNUSED written = 0;
8138   IADDR UNUSED pc = abuf->addr;
8139   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8140
8141 {
8142 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8143 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)))))) {
8144   {
8145     USI opval = FLD (i_label16);
8146     sim_queue_pc_write (current_cpu, opval);
8147     written |= (1 << 3);
8148     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8149   }
8150 }
8151 }
8152
8153   abuf->written = written;
8154   return vpc;
8155 #undef FLD
8156 }
8157
8158 /* blt: blt$pack $ICCi_2,$hint,$label16 */
8159
8160 static SEM_PC
8161 SEM_FN_NAME (frvbf,blt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8162 {
8163 #define FLD(f) abuf->fields.sfmt_beq.f
8164   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8165   int UNUSED written = 0;
8166   IADDR UNUSED pc = abuf->addr;
8167   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8168
8169 {
8170 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8171 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)))) {
8172   {
8173     USI opval = FLD (i_label16);
8174     sim_queue_pc_write (current_cpu, opval);
8175     written |= (1 << 3);
8176     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8177   }
8178 }
8179 }
8180
8181   abuf->written = written;
8182   return vpc;
8183 #undef FLD
8184 }
8185
8186 /* bge: bge$pack $ICCi_2,$hint,$label16 */
8187
8188 static SEM_PC
8189 SEM_FN_NAME (frvbf,bge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8190 {
8191 #define FLD(f) abuf->fields.sfmt_beq.f
8192   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8193   int UNUSED written = 0;
8194   IADDR UNUSED pc = abuf->addr;
8195   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8196
8197 {
8198 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8199 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))))) {
8200   {
8201     USI opval = FLD (i_label16);
8202     sim_queue_pc_write (current_cpu, opval);
8203     written |= (1 << 3);
8204     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8205   }
8206 }
8207 }
8208
8209   abuf->written = written;
8210   return vpc;
8211 #undef FLD
8212 }
8213
8214 /* bls: bls$pack $ICCi_2,$hint,$label16 */
8215
8216 static SEM_PC
8217 SEM_FN_NAME (frvbf,bls) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8218 {
8219 #define FLD(f) abuf->fields.sfmt_beq.f
8220   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8221   int UNUSED written = 0;
8222   IADDR UNUSED pc = abuf->addr;
8223   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8224
8225 {
8226 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8227 if (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)))) {
8228   {
8229     USI opval = FLD (i_label16);
8230     sim_queue_pc_write (current_cpu, opval);
8231     written |= (1 << 3);
8232     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8233   }
8234 }
8235 }
8236
8237   abuf->written = written;
8238   return vpc;
8239 #undef FLD
8240 }
8241
8242 /* bhi: bhi$pack $ICCi_2,$hint,$label16 */
8243
8244 static SEM_PC
8245 SEM_FN_NAME (frvbf,bhi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8246 {
8247 #define FLD(f) abuf->fields.sfmt_beq.f
8248   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8249   int UNUSED written = 0;
8250   IADDR UNUSED pc = abuf->addr;
8251   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8252
8253 {
8254 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8255 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))))) {
8256   {
8257     USI opval = FLD (i_label16);
8258     sim_queue_pc_write (current_cpu, opval);
8259     written |= (1 << 3);
8260     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8261   }
8262 }
8263 }
8264
8265   abuf->written = written;
8266   return vpc;
8267 #undef FLD
8268 }
8269
8270 /* bc: bc$pack $ICCi_2,$hint,$label16 */
8271
8272 static SEM_PC
8273 SEM_FN_NAME (frvbf,bc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8274 {
8275 #define FLD(f) abuf->fields.sfmt_beq.f
8276   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8277   int UNUSED written = 0;
8278   IADDR UNUSED pc = abuf->addr;
8279   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8280
8281 {
8282 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8283 if (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1))) {
8284   {
8285     USI opval = FLD (i_label16);
8286     sim_queue_pc_write (current_cpu, opval);
8287     written |= (1 << 3);
8288     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8289   }
8290 }
8291 }
8292
8293   abuf->written = written;
8294   return vpc;
8295 #undef FLD
8296 }
8297
8298 /* bnc: bnc$pack $ICCi_2,$hint,$label16 */
8299
8300 static SEM_PC
8301 SEM_FN_NAME (frvbf,bnc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8302 {
8303 #define FLD(f) abuf->fields.sfmt_beq.f
8304   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8305   int UNUSED written = 0;
8306   IADDR UNUSED pc = abuf->addr;
8307   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8308
8309 {
8310 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8311 if (NOTBI (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)))) {
8312   {
8313     USI opval = FLD (i_label16);
8314     sim_queue_pc_write (current_cpu, opval);
8315     written |= (1 << 3);
8316     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8317   }
8318 }
8319 }
8320
8321   abuf->written = written;
8322   return vpc;
8323 #undef FLD
8324 }
8325
8326 /* bn: bn$pack $ICCi_2,$hint,$label16 */
8327
8328 static SEM_PC
8329 SEM_FN_NAME (frvbf,bn) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8330 {
8331 #define FLD(f) abuf->fields.sfmt_beq.f
8332   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8333   int UNUSED written = 0;
8334   IADDR UNUSED pc = abuf->addr;
8335   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8336
8337 {
8338 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8339 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3))) {
8340   {
8341     USI opval = FLD (i_label16);
8342     sim_queue_pc_write (current_cpu, opval);
8343     written |= (1 << 3);
8344     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8345   }
8346 }
8347 }
8348
8349   abuf->written = written;
8350   return vpc;
8351 #undef FLD
8352 }
8353
8354 /* bp: bp$pack $ICCi_2,$hint,$label16 */
8355
8356 static SEM_PC
8357 SEM_FN_NAME (frvbf,bp) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8358 {
8359 #define FLD(f) abuf->fields.sfmt_beq.f
8360   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8361   int UNUSED written = 0;
8362   IADDR UNUSED pc = abuf->addr;
8363   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8364
8365 {
8366 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8367 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3)))) {
8368   {
8369     USI opval = FLD (i_label16);
8370     sim_queue_pc_write (current_cpu, opval);
8371     written |= (1 << 3);
8372     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8373   }
8374 }
8375 }
8376
8377   abuf->written = written;
8378   return vpc;
8379 #undef FLD
8380 }
8381
8382 /* bv: bv$pack $ICCi_2,$hint,$label16 */
8383
8384 static SEM_PC
8385 SEM_FN_NAME (frvbf,bv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8386 {
8387 #define FLD(f) abuf->fields.sfmt_beq.f
8388   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8389   int UNUSED written = 0;
8390   IADDR UNUSED pc = abuf->addr;
8391   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8392
8393 {
8394 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8395 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1))) {
8396   {
8397     USI opval = FLD (i_label16);
8398     sim_queue_pc_write (current_cpu, opval);
8399     written |= (1 << 3);
8400     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8401   }
8402 }
8403 }
8404
8405   abuf->written = written;
8406   return vpc;
8407 #undef FLD
8408 }
8409
8410 /* bnv: bnv$pack $ICCi_2,$hint,$label16 */
8411
8412 static SEM_PC
8413 SEM_FN_NAME (frvbf,bnv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8414 {
8415 #define FLD(f) abuf->fields.sfmt_beq.f
8416   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8417   int UNUSED written = 0;
8418   IADDR UNUSED pc = abuf->addr;
8419   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8420
8421 {
8422 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8423 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1)))) {
8424   {
8425     USI opval = FLD (i_label16);
8426     sim_queue_pc_write (current_cpu, opval);
8427     written |= (1 << 3);
8428     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8429   }
8430 }
8431 }
8432
8433   abuf->written = written;
8434   return vpc;
8435 #undef FLD
8436 }
8437
8438 /* fbra: fbra$pack $hint_taken$label16 */
8439
8440 static SEM_PC
8441 SEM_FN_NAME (frvbf,fbra) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8442 {
8443 #define FLD(f) abuf->fields.sfmt_fbne.f
8444   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8445   int UNUSED written = 0;
8446   IADDR UNUSED pc = abuf->addr;
8447   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8448
8449 {
8450 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8451   {
8452     USI opval = FLD (i_label16);
8453     sim_queue_pc_write (current_cpu, opval);
8454     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8455   }
8456 }
8457
8458   return vpc;
8459 #undef FLD
8460 }
8461
8462 /* fbno: fbno$pack$hint_not_taken */
8463
8464 static SEM_PC
8465 SEM_FN_NAME (frvbf,fbno) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8466 {
8467 #define FLD(f) abuf->fields.sfmt_fbne.f
8468   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8469   int UNUSED written = 0;
8470   IADDR UNUSED pc = abuf->addr;
8471   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8472
8473 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8474
8475   return vpc;
8476 #undef FLD
8477 }
8478
8479 /* fbne: fbne$pack $FCCi_2,$hint,$label16 */
8480
8481 static SEM_PC
8482 SEM_FN_NAME (frvbf,fbne) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8483 {
8484 #define FLD(f) abuf->fields.sfmt_fbne.f
8485   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8486   int UNUSED written = 0;
8487   IADDR UNUSED pc = abuf->addr;
8488   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8489
8490 {
8491 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8492 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))))) {
8493   {
8494     USI opval = FLD (i_label16);
8495     sim_queue_pc_write (current_cpu, opval);
8496     written |= (1 << 3);
8497     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8498   }
8499 }
8500 }
8501
8502   abuf->written = written;
8503   return vpc;
8504 #undef FLD
8505 }
8506
8507 /* fbeq: fbeq$pack $FCCi_2,$hint,$label16 */
8508
8509 static SEM_PC
8510 SEM_FN_NAME (frvbf,fbeq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8511 {
8512 #define FLD(f) abuf->fields.sfmt_fbne.f
8513   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8514   int UNUSED written = 0;
8515   IADDR UNUSED pc = abuf->addr;
8516   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8517
8518 {
8519 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8520 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3))) {
8521   {
8522     USI opval = FLD (i_label16);
8523     sim_queue_pc_write (current_cpu, opval);
8524     written |= (1 << 3);
8525     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8526   }
8527 }
8528 }
8529
8530   abuf->written = written;
8531   return vpc;
8532 #undef FLD
8533 }
8534
8535 /* fblg: fblg$pack $FCCi_2,$hint,$label16 */
8536
8537 static SEM_PC
8538 SEM_FN_NAME (frvbf,fblg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8539 {
8540 #define FLD(f) abuf->fields.sfmt_fbne.f
8541   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8542   int UNUSED written = 0;
8543   IADDR UNUSED pc = abuf->addr;
8544   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8545
8546 {
8547 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8548 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)))) {
8549   {
8550     USI opval = FLD (i_label16);
8551     sim_queue_pc_write (current_cpu, opval);
8552     written |= (1 << 3);
8553     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8554   }
8555 }
8556 }
8557
8558   abuf->written = written;
8559   return vpc;
8560 #undef FLD
8561 }
8562
8563 /* fbue: fbue$pack $FCCi_2,$hint,$label16 */
8564
8565 static SEM_PC
8566 SEM_FN_NAME (frvbf,fbue) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8567 {
8568 #define FLD(f) abuf->fields.sfmt_fbne.f
8569   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8570   int UNUSED written = 0;
8571   IADDR UNUSED pc = abuf->addr;
8572   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8573
8574 {
8575 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8576 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
8577   {
8578     USI opval = FLD (i_label16);
8579     sim_queue_pc_write (current_cpu, opval);
8580     written |= (1 << 3);
8581     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8582   }
8583 }
8584 }
8585
8586   abuf->written = written;
8587   return vpc;
8588 #undef FLD
8589 }
8590
8591 /* fbul: fbul$pack $FCCi_2,$hint,$label16 */
8592
8593 static SEM_PC
8594 SEM_FN_NAME (frvbf,fbul) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8595 {
8596 #define FLD(f) abuf->fields.sfmt_fbne.f
8597   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8598   int UNUSED written = 0;
8599   IADDR UNUSED pc = abuf->addr;
8600   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8601
8602 {
8603 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8604 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
8605   {
8606     USI opval = FLD (i_label16);
8607     sim_queue_pc_write (current_cpu, opval);
8608     written |= (1 << 3);
8609     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8610   }
8611 }
8612 }
8613
8614   abuf->written = written;
8615   return vpc;
8616 #undef FLD
8617 }
8618
8619 /* fbge: fbge$pack $FCCi_2,$hint,$label16 */
8620
8621 static SEM_PC
8622 SEM_FN_NAME (frvbf,fbge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8623 {
8624 #define FLD(f) abuf->fields.sfmt_fbne.f
8625   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8626   int UNUSED written = 0;
8627   IADDR UNUSED pc = abuf->addr;
8628   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8629
8630 {
8631 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8632 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)))) {
8633   {
8634     USI opval = FLD (i_label16);
8635     sim_queue_pc_write (current_cpu, opval);
8636     written |= (1 << 3);
8637     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8638   }
8639 }
8640 }
8641
8642   abuf->written = written;
8643   return vpc;
8644 #undef FLD
8645 }
8646
8647 /* fblt: fblt$pack $FCCi_2,$hint,$label16 */
8648
8649 static SEM_PC
8650 SEM_FN_NAME (frvbf,fblt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8651 {
8652 #define FLD(f) abuf->fields.sfmt_fbne.f
8653   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8654   int UNUSED written = 0;
8655   IADDR UNUSED pc = abuf->addr;
8656   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8657
8658 {
8659 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8660 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2))) {
8661   {
8662     USI opval = FLD (i_label16);
8663     sim_queue_pc_write (current_cpu, opval);
8664     written |= (1 << 3);
8665     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8666   }
8667 }
8668 }
8669
8670   abuf->written = written;
8671   return vpc;
8672 #undef FLD
8673 }
8674
8675 /* fbuge: fbuge$pack $FCCi_2,$hint,$label16 */
8676
8677 static SEM_PC
8678 SEM_FN_NAME (frvbf,fbuge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8679 {
8680 #define FLD(f) abuf->fields.sfmt_fbne.f
8681   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8682   int UNUSED written = 0;
8683   IADDR UNUSED pc = abuf->addr;
8684   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8685
8686 {
8687 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8688 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))))) {
8689   {
8690     USI opval = FLD (i_label16);
8691     sim_queue_pc_write (current_cpu, opval);
8692     written |= (1 << 3);
8693     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8694   }
8695 }
8696 }
8697
8698   abuf->written = written;
8699   return vpc;
8700 #undef FLD
8701 }
8702
8703 /* fbug: fbug$pack $FCCi_2,$hint,$label16 */
8704
8705 static SEM_PC
8706 SEM_FN_NAME (frvbf,fbug) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8707 {
8708 #define FLD(f) abuf->fields.sfmt_fbne.f
8709   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8710   int UNUSED written = 0;
8711   IADDR UNUSED pc = abuf->addr;
8712   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8713
8714 {
8715 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8716 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
8717   {
8718     USI opval = FLD (i_label16);
8719     sim_queue_pc_write (current_cpu, opval);
8720     written |= (1 << 3);
8721     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8722   }
8723 }
8724 }
8725
8726   abuf->written = written;
8727   return vpc;
8728 #undef FLD
8729 }
8730
8731 /* fble: fble$pack $FCCi_2,$hint,$label16 */
8732
8733 static SEM_PC
8734 SEM_FN_NAME (frvbf,fble) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8735 {
8736 #define FLD(f) abuf->fields.sfmt_fbne.f
8737   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8738   int UNUSED written = 0;
8739   IADDR UNUSED pc = abuf->addr;
8740   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8741
8742 {
8743 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8744 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)))) {
8745   {
8746     USI opval = FLD (i_label16);
8747     sim_queue_pc_write (current_cpu, opval);
8748     written |= (1 << 3);
8749     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8750   }
8751 }
8752 }
8753
8754   abuf->written = written;
8755   return vpc;
8756 #undef FLD
8757 }
8758
8759 /* fbgt: fbgt$pack $FCCi_2,$hint,$label16 */
8760
8761 static SEM_PC
8762 SEM_FN_NAME (frvbf,fbgt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8763 {
8764 #define FLD(f) abuf->fields.sfmt_fbne.f
8765   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8766   int UNUSED written = 0;
8767   IADDR UNUSED pc = abuf->addr;
8768   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8769
8770 {
8771 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8772 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1))) {
8773   {
8774     USI opval = FLD (i_label16);
8775     sim_queue_pc_write (current_cpu, opval);
8776     written |= (1 << 3);
8777     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8778   }
8779 }
8780 }
8781
8782   abuf->written = written;
8783   return vpc;
8784 #undef FLD
8785 }
8786
8787 /* fbule: fbule$pack $FCCi_2,$hint,$label16 */
8788
8789 static SEM_PC
8790 SEM_FN_NAME (frvbf,fbule) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8791 {
8792 #define FLD(f) abuf->fields.sfmt_fbne.f
8793   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8794   int UNUSED written = 0;
8795   IADDR UNUSED pc = abuf->addr;
8796   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8797
8798 {
8799 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8800 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))))) {
8801   {
8802     USI opval = FLD (i_label16);
8803     sim_queue_pc_write (current_cpu, opval);
8804     written |= (1 << 3);
8805     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8806   }
8807 }
8808 }
8809
8810   abuf->written = written;
8811   return vpc;
8812 #undef FLD
8813 }
8814
8815 /* fbu: fbu$pack $FCCi_2,$hint,$label16 */
8816
8817 static SEM_PC
8818 SEM_FN_NAME (frvbf,fbu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8819 {
8820 #define FLD(f) abuf->fields.sfmt_fbne.f
8821   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8822   int UNUSED written = 0;
8823   IADDR UNUSED pc = abuf->addr;
8824   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8825
8826 {
8827 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8828 if (TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1))) {
8829   {
8830     USI opval = FLD (i_label16);
8831     sim_queue_pc_write (current_cpu, opval);
8832     written |= (1 << 3);
8833     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8834   }
8835 }
8836 }
8837
8838   abuf->written = written;
8839   return vpc;
8840 #undef FLD
8841 }
8842
8843 /* fbo: fbo$pack $FCCi_2,$hint,$label16 */
8844
8845 static SEM_PC
8846 SEM_FN_NAME (frvbf,fbo) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8847 {
8848 #define FLD(f) abuf->fields.sfmt_fbne.f
8849   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8850   int UNUSED written = 0;
8851   IADDR UNUSED pc = abuf->addr;
8852   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8853
8854 {
8855 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8856 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))))) {
8857   {
8858     USI opval = FLD (i_label16);
8859     sim_queue_pc_write (current_cpu, opval);
8860     written |= (1 << 3);
8861     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8862   }
8863 }
8864 }
8865
8866   abuf->written = written;
8867   return vpc;
8868 #undef FLD
8869 }
8870
8871 /* bctrlr: bctrlr$pack $ccond,$hint */
8872
8873 static SEM_PC
8874 SEM_FN_NAME (frvbf,bctrlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8875 {
8876 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
8877   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8878   int UNUSED written = 0;
8879   IADDR UNUSED pc = abuf->addr;
8880   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8881
8882 {
8883 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
8884 {
8885   SI tmp_tmp;
8886   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
8887   {
8888     USI opval = tmp_tmp;
8889     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
8890     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
8891   }
8892 if (EQSI (FLD (f_ccond), 0)) {
8893 if (NESI (tmp_tmp, 0)) {
8894   {
8895     USI opval = GET_H_SPR (((UINT) 272));
8896     sim_queue_pc_write (current_cpu, opval);
8897     written |= (1 << 5);
8898     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8899   }
8900 }
8901 } else {
8902 if (EQSI (tmp_tmp, 0)) {
8903   {
8904     USI opval = GET_H_SPR (((UINT) 272));
8905     sim_queue_pc_write (current_cpu, opval);
8906     written |= (1 << 5);
8907     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8908   }
8909 }
8910 }
8911 }
8912 }
8913
8914   abuf->written = written;
8915   return vpc;
8916 #undef FLD
8917 }
8918
8919 /* bralr: bralr$pack$hint_taken */
8920
8921 static SEM_PC
8922 SEM_FN_NAME (frvbf,bralr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8923 {
8924 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
8925   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8926   int UNUSED written = 0;
8927   IADDR UNUSED pc = abuf->addr;
8928   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8929
8930 {
8931 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
8932   {
8933     USI opval = GET_H_SPR (((UINT) 272));
8934     sim_queue_pc_write (current_cpu, opval);
8935     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8936   }
8937 }
8938
8939   return vpc;
8940 #undef FLD
8941 }
8942
8943 /* bnolr: bnolr$pack$hint_not_taken */
8944
8945 static SEM_PC
8946 SEM_FN_NAME (frvbf,bnolr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8947 {
8948 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
8949   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8950   int UNUSED written = 0;
8951   IADDR UNUSED pc = abuf->addr;
8952   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8953
8954 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
8955
8956   return vpc;
8957 #undef FLD
8958 }
8959
8960 /* beqlr: beqlr$pack $ICCi_2,$hint */
8961
8962 static SEM_PC
8963 SEM_FN_NAME (frvbf,beqlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8964 {
8965 #define FLD(f) abuf->fields.sfmt_bceqlr.f
8966   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8967   int UNUSED written = 0;
8968   IADDR UNUSED pc = abuf->addr;
8969   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8970
8971 {
8972 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
8973 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2))) {
8974   {
8975     USI opval = GET_H_SPR (((UINT) 272));
8976     sim_queue_pc_write (current_cpu, opval);
8977     written |= (1 << 3);
8978     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8979   }
8980 }
8981 }
8982
8983   abuf->written = written;
8984   return vpc;
8985 #undef FLD
8986 }
8987
8988 /* bnelr: bnelr$pack $ICCi_2,$hint */
8989
8990 static SEM_PC
8991 SEM_FN_NAME (frvbf,bnelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8992 {
8993 #define FLD(f) abuf->fields.sfmt_bceqlr.f
8994   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8995   int UNUSED written = 0;
8996   IADDR UNUSED pc = abuf->addr;
8997   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8998
8999 {
9000 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9001 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)))) {
9002   {
9003     USI opval = GET_H_SPR (((UINT) 272));
9004     sim_queue_pc_write (current_cpu, opval);
9005     written |= (1 << 3);
9006     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9007   }
9008 }
9009 }
9010
9011   abuf->written = written;
9012   return vpc;
9013 #undef FLD
9014 }
9015
9016 /* blelr: blelr$pack $ICCi_2,$hint */
9017
9018 static SEM_PC
9019 SEM_FN_NAME (frvbf,blelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9020 {
9021 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9022   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9023   int UNUSED written = 0;
9024   IADDR UNUSED pc = abuf->addr;
9025   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9026
9027 {
9028 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9029 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))))) {
9030   {
9031     USI opval = GET_H_SPR (((UINT) 272));
9032     sim_queue_pc_write (current_cpu, opval);
9033     written |= (1 << 3);
9034     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9035   }
9036 }
9037 }
9038
9039   abuf->written = written;
9040   return vpc;
9041 #undef FLD
9042 }
9043
9044 /* bgtlr: bgtlr$pack $ICCi_2,$hint */
9045
9046 static SEM_PC
9047 SEM_FN_NAME (frvbf,bgtlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9048 {
9049 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9050   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9051   int UNUSED written = 0;
9052   IADDR UNUSED pc = abuf->addr;
9053   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9054
9055 {
9056 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9057 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)))))) {
9058   {
9059     USI opval = GET_H_SPR (((UINT) 272));
9060     sim_queue_pc_write (current_cpu, opval);
9061     written |= (1 << 3);
9062     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9063   }
9064 }
9065 }
9066
9067   abuf->written = written;
9068   return vpc;
9069 #undef FLD
9070 }
9071
9072 /* bltlr: bltlr$pack $ICCi_2,$hint */
9073
9074 static SEM_PC
9075 SEM_FN_NAME (frvbf,bltlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9076 {
9077 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9078   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9079   int UNUSED written = 0;
9080   IADDR UNUSED pc = abuf->addr;
9081   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9082
9083 {
9084 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9085 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)))) {
9086   {
9087     USI opval = GET_H_SPR (((UINT) 272));
9088     sim_queue_pc_write (current_cpu, opval);
9089     written |= (1 << 3);
9090     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9091   }
9092 }
9093 }
9094
9095   abuf->written = written;
9096   return vpc;
9097 #undef FLD
9098 }
9099
9100 /* bgelr: bgelr$pack $ICCi_2,$hint */
9101
9102 static SEM_PC
9103 SEM_FN_NAME (frvbf,bgelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9104 {
9105 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9106   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9107   int UNUSED written = 0;
9108   IADDR UNUSED pc = abuf->addr;
9109   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9110
9111 {
9112 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9113 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))))) {
9114   {
9115     USI opval = GET_H_SPR (((UINT) 272));
9116     sim_queue_pc_write (current_cpu, opval);
9117     written |= (1 << 3);
9118     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9119   }
9120 }
9121 }
9122
9123   abuf->written = written;
9124   return vpc;
9125 #undef FLD
9126 }
9127
9128 /* blslr: blslr$pack $ICCi_2,$hint */
9129
9130 static SEM_PC
9131 SEM_FN_NAME (frvbf,blslr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9132 {
9133 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9134   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9135   int UNUSED written = 0;
9136   IADDR UNUSED pc = abuf->addr;
9137   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9138
9139 {
9140 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9141 if (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)))) {
9142   {
9143     USI opval = GET_H_SPR (((UINT) 272));
9144     sim_queue_pc_write (current_cpu, opval);
9145     written |= (1 << 3);
9146     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9147   }
9148 }
9149 }
9150
9151   abuf->written = written;
9152   return vpc;
9153 #undef FLD
9154 }
9155
9156 /* bhilr: bhilr$pack $ICCi_2,$hint */
9157
9158 static SEM_PC
9159 SEM_FN_NAME (frvbf,bhilr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9160 {
9161 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9162   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9163   int UNUSED written = 0;
9164   IADDR UNUSED pc = abuf->addr;
9165   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9166
9167 {
9168 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9169 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))))) {
9170   {
9171     USI opval = GET_H_SPR (((UINT) 272));
9172     sim_queue_pc_write (current_cpu, opval);
9173     written |= (1 << 3);
9174     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9175   }
9176 }
9177 }
9178
9179   abuf->written = written;
9180   return vpc;
9181 #undef FLD
9182 }
9183
9184 /* bclr: bclr$pack $ICCi_2,$hint */
9185
9186 static SEM_PC
9187 SEM_FN_NAME (frvbf,bclr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9188 {
9189 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9190   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9191   int UNUSED written = 0;
9192   IADDR UNUSED pc = abuf->addr;
9193   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9194
9195 {
9196 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9197 if (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1))) {
9198   {
9199     USI opval = GET_H_SPR (((UINT) 272));
9200     sim_queue_pc_write (current_cpu, opval);
9201     written |= (1 << 3);
9202     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9203   }
9204 }
9205 }
9206
9207   abuf->written = written;
9208   return vpc;
9209 #undef FLD
9210 }
9211
9212 /* bnclr: bnclr$pack $ICCi_2,$hint */
9213
9214 static SEM_PC
9215 SEM_FN_NAME (frvbf,bnclr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9216 {
9217 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9218   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9219   int UNUSED written = 0;
9220   IADDR UNUSED pc = abuf->addr;
9221   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9222
9223 {
9224 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9225 if (NOTBI (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)))) {
9226   {
9227     USI opval = GET_H_SPR (((UINT) 272));
9228     sim_queue_pc_write (current_cpu, opval);
9229     written |= (1 << 3);
9230     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9231   }
9232 }
9233 }
9234
9235   abuf->written = written;
9236   return vpc;
9237 #undef FLD
9238 }
9239
9240 /* bnlr: bnlr$pack $ICCi_2,$hint */
9241
9242 static SEM_PC
9243 SEM_FN_NAME (frvbf,bnlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9244 {
9245 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9246   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9247   int UNUSED written = 0;
9248   IADDR UNUSED pc = abuf->addr;
9249   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9250
9251 {
9252 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9253 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3))) {
9254   {
9255     USI opval = GET_H_SPR (((UINT) 272));
9256     sim_queue_pc_write (current_cpu, opval);
9257     written |= (1 << 3);
9258     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9259   }
9260 }
9261 }
9262
9263   abuf->written = written;
9264   return vpc;
9265 #undef FLD
9266 }
9267
9268 /* bplr: bplr$pack $ICCi_2,$hint */
9269
9270 static SEM_PC
9271 SEM_FN_NAME (frvbf,bplr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9272 {
9273 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9274   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9275   int UNUSED written = 0;
9276   IADDR UNUSED pc = abuf->addr;
9277   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9278
9279 {
9280 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9281 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3)))) {
9282   {
9283     USI opval = GET_H_SPR (((UINT) 272));
9284     sim_queue_pc_write (current_cpu, opval);
9285     written |= (1 << 3);
9286     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9287   }
9288 }
9289 }
9290
9291   abuf->written = written;
9292   return vpc;
9293 #undef FLD
9294 }
9295
9296 /* bvlr: bvlr$pack $ICCi_2,$hint */
9297
9298 static SEM_PC
9299 SEM_FN_NAME (frvbf,bvlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9300 {
9301 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9302   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9303   int UNUSED written = 0;
9304   IADDR UNUSED pc = abuf->addr;
9305   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9306
9307 {
9308 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9309 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1))) {
9310   {
9311     USI opval = GET_H_SPR (((UINT) 272));
9312     sim_queue_pc_write (current_cpu, opval);
9313     written |= (1 << 3);
9314     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9315   }
9316 }
9317 }
9318
9319   abuf->written = written;
9320   return vpc;
9321 #undef FLD
9322 }
9323
9324 /* bnvlr: bnvlr$pack $ICCi_2,$hint */
9325
9326 static SEM_PC
9327 SEM_FN_NAME (frvbf,bnvlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9328 {
9329 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9330   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9331   int UNUSED written = 0;
9332   IADDR UNUSED pc = abuf->addr;
9333   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9334
9335 {
9336 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9337 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1)))) {
9338   {
9339     USI opval = GET_H_SPR (((UINT) 272));
9340     sim_queue_pc_write (current_cpu, opval);
9341     written |= (1 << 3);
9342     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9343   }
9344 }
9345 }
9346
9347   abuf->written = written;
9348   return vpc;
9349 #undef FLD
9350 }
9351
9352 /* fbralr: fbralr$pack$hint_taken */
9353
9354 static SEM_PC
9355 SEM_FN_NAME (frvbf,fbralr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9356 {
9357 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9358   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9359   int UNUSED written = 0;
9360   IADDR UNUSED pc = abuf->addr;
9361   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9362
9363 {
9364 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9365   {
9366     USI opval = GET_H_SPR (((UINT) 272));
9367     sim_queue_pc_write (current_cpu, opval);
9368     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9369   }
9370 }
9371
9372   return vpc;
9373 #undef FLD
9374 }
9375
9376 /* fbnolr: fbnolr$pack$hint_not_taken */
9377
9378 static SEM_PC
9379 SEM_FN_NAME (frvbf,fbnolr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9380 {
9381 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9382   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9383   int UNUSED written = 0;
9384   IADDR UNUSED pc = abuf->addr;
9385   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9386
9387 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9388
9389   return vpc;
9390 #undef FLD
9391 }
9392
9393 /* fbeqlr: fbeqlr$pack $FCCi_2,$hint */
9394
9395 static SEM_PC
9396 SEM_FN_NAME (frvbf,fbeqlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9397 {
9398 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9399   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9400   int UNUSED written = 0;
9401   IADDR UNUSED pc = abuf->addr;
9402   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9403
9404 {
9405 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9406 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3))) {
9407   {
9408     USI opval = GET_H_SPR (((UINT) 272));
9409     sim_queue_pc_write (current_cpu, opval);
9410     written |= (1 << 3);
9411     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9412   }
9413 }
9414 }
9415
9416   abuf->written = written;
9417   return vpc;
9418 #undef FLD
9419 }
9420
9421 /* fbnelr: fbnelr$pack $FCCi_2,$hint */
9422
9423 static SEM_PC
9424 SEM_FN_NAME (frvbf,fbnelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9425 {
9426 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9427   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9428   int UNUSED written = 0;
9429   IADDR UNUSED pc = abuf->addr;
9430   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9431
9432 {
9433 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9434 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))))) {
9435   {
9436     USI opval = GET_H_SPR (((UINT) 272));
9437     sim_queue_pc_write (current_cpu, opval);
9438     written |= (1 << 3);
9439     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9440   }
9441 }
9442 }
9443
9444   abuf->written = written;
9445   return vpc;
9446 #undef FLD
9447 }
9448
9449 /* fblglr: fblglr$pack $FCCi_2,$hint */
9450
9451 static SEM_PC
9452 SEM_FN_NAME (frvbf,fblglr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9453 {
9454 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9455   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9456   int UNUSED written = 0;
9457   IADDR UNUSED pc = abuf->addr;
9458   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9459
9460 {
9461 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9462 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)))) {
9463   {
9464     USI opval = GET_H_SPR (((UINT) 272));
9465     sim_queue_pc_write (current_cpu, opval);
9466     written |= (1 << 3);
9467     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9468   }
9469 }
9470 }
9471
9472   abuf->written = written;
9473   return vpc;
9474 #undef FLD
9475 }
9476
9477 /* fbuelr: fbuelr$pack $FCCi_2,$hint */
9478
9479 static SEM_PC
9480 SEM_FN_NAME (frvbf,fbuelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9481 {
9482 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9483   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9484   int UNUSED written = 0;
9485   IADDR UNUSED pc = abuf->addr;
9486   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9487
9488 {
9489 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9490 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
9491   {
9492     USI opval = GET_H_SPR (((UINT) 272));
9493     sim_queue_pc_write (current_cpu, opval);
9494     written |= (1 << 3);
9495     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9496   }
9497 }
9498 }
9499
9500   abuf->written = written;
9501   return vpc;
9502 #undef FLD
9503 }
9504
9505 /* fbullr: fbullr$pack $FCCi_2,$hint */
9506
9507 static SEM_PC
9508 SEM_FN_NAME (frvbf,fbullr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9509 {
9510 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9511   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9512   int UNUSED written = 0;
9513   IADDR UNUSED pc = abuf->addr;
9514   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9515
9516 {
9517 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9518 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
9519   {
9520     USI opval = GET_H_SPR (((UINT) 272));
9521     sim_queue_pc_write (current_cpu, opval);
9522     written |= (1 << 3);
9523     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9524   }
9525 }
9526 }
9527
9528   abuf->written = written;
9529   return vpc;
9530 #undef FLD
9531 }
9532
9533 /* fbgelr: fbgelr$pack $FCCi_2,$hint */
9534
9535 static SEM_PC
9536 SEM_FN_NAME (frvbf,fbgelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9537 {
9538 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9539   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9540   int UNUSED written = 0;
9541   IADDR UNUSED pc = abuf->addr;
9542   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9543
9544 {
9545 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9546 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)))) {
9547   {
9548     USI opval = GET_H_SPR (((UINT) 272));
9549     sim_queue_pc_write (current_cpu, opval);
9550     written |= (1 << 3);
9551     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9552   }
9553 }
9554 }
9555
9556   abuf->written = written;
9557   return vpc;
9558 #undef FLD
9559 }
9560
9561 /* fbltlr: fbltlr$pack $FCCi_2,$hint */
9562
9563 static SEM_PC
9564 SEM_FN_NAME (frvbf,fbltlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9565 {
9566 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9567   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9568   int UNUSED written = 0;
9569   IADDR UNUSED pc = abuf->addr;
9570   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9571
9572 {
9573 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9574 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2))) {
9575   {
9576     USI opval = GET_H_SPR (((UINT) 272));
9577     sim_queue_pc_write (current_cpu, opval);
9578     written |= (1 << 3);
9579     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9580   }
9581 }
9582 }
9583
9584   abuf->written = written;
9585   return vpc;
9586 #undef FLD
9587 }
9588
9589 /* fbugelr: fbugelr$pack $FCCi_2,$hint */
9590
9591 static SEM_PC
9592 SEM_FN_NAME (frvbf,fbugelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9593 {
9594 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9595   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9596   int UNUSED written = 0;
9597   IADDR UNUSED pc = abuf->addr;
9598   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9599
9600 {
9601 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9602 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))))) {
9603   {
9604     USI opval = GET_H_SPR (((UINT) 272));
9605     sim_queue_pc_write (current_cpu, opval);
9606     written |= (1 << 3);
9607     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9608   }
9609 }
9610 }
9611
9612   abuf->written = written;
9613   return vpc;
9614 #undef FLD
9615 }
9616
9617 /* fbuglr: fbuglr$pack $FCCi_2,$hint */
9618
9619 static SEM_PC
9620 SEM_FN_NAME (frvbf,fbuglr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9621 {
9622 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9623   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9624   int UNUSED written = 0;
9625   IADDR UNUSED pc = abuf->addr;
9626   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9627
9628 {
9629 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9630 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
9631   {
9632     USI opval = GET_H_SPR (((UINT) 272));
9633     sim_queue_pc_write (current_cpu, opval);
9634     written |= (1 << 3);
9635     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9636   }
9637 }
9638 }
9639
9640   abuf->written = written;
9641   return vpc;
9642 #undef FLD
9643 }
9644
9645 /* fblelr: fblelr$pack $FCCi_2,$hint */
9646
9647 static SEM_PC
9648 SEM_FN_NAME (frvbf,fblelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9649 {
9650 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9651   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9652   int UNUSED written = 0;
9653   IADDR UNUSED pc = abuf->addr;
9654   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9655
9656 {
9657 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9658 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)))) {
9659   {
9660     USI opval = GET_H_SPR (((UINT) 272));
9661     sim_queue_pc_write (current_cpu, opval);
9662     written |= (1 << 3);
9663     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9664   }
9665 }
9666 }
9667
9668   abuf->written = written;
9669   return vpc;
9670 #undef FLD
9671 }
9672
9673 /* fbgtlr: fbgtlr$pack $FCCi_2,$hint */
9674
9675 static SEM_PC
9676 SEM_FN_NAME (frvbf,fbgtlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9677 {
9678 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9679   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9680   int UNUSED written = 0;
9681   IADDR UNUSED pc = abuf->addr;
9682   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9683
9684 {
9685 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9686 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1))) {
9687   {
9688     USI opval = GET_H_SPR (((UINT) 272));
9689     sim_queue_pc_write (current_cpu, opval);
9690     written |= (1 << 3);
9691     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9692   }
9693 }
9694 }
9695
9696   abuf->written = written;
9697   return vpc;
9698 #undef FLD
9699 }
9700
9701 /* fbulelr: fbulelr$pack $FCCi_2,$hint */
9702
9703 static SEM_PC
9704 SEM_FN_NAME (frvbf,fbulelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9705 {
9706 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9707   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9708   int UNUSED written = 0;
9709   IADDR UNUSED pc = abuf->addr;
9710   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9711
9712 {
9713 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9714 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))))) {
9715   {
9716     USI opval = GET_H_SPR (((UINT) 272));
9717     sim_queue_pc_write (current_cpu, opval);
9718     written |= (1 << 3);
9719     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9720   }
9721 }
9722 }
9723
9724   abuf->written = written;
9725   return vpc;
9726 #undef FLD
9727 }
9728
9729 /* fbulr: fbulr$pack $FCCi_2,$hint */
9730
9731 static SEM_PC
9732 SEM_FN_NAME (frvbf,fbulr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9733 {
9734 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9735   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9736   int UNUSED written = 0;
9737   IADDR UNUSED pc = abuf->addr;
9738   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9739
9740 {
9741 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9742 if (TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1))) {
9743   {
9744     USI opval = GET_H_SPR (((UINT) 272));
9745     sim_queue_pc_write (current_cpu, opval);
9746     written |= (1 << 3);
9747     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9748   }
9749 }
9750 }
9751
9752   abuf->written = written;
9753   return vpc;
9754 #undef FLD
9755 }
9756
9757 /* fbolr: fbolr$pack $FCCi_2,$hint */
9758
9759 static SEM_PC
9760 SEM_FN_NAME (frvbf,fbolr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9761 {
9762 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9763   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9764   int UNUSED written = 0;
9765   IADDR UNUSED pc = abuf->addr;
9766   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9767
9768 {
9769 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9770 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))))) {
9771   {
9772     USI opval = GET_H_SPR (((UINT) 272));
9773     sim_queue_pc_write (current_cpu, opval);
9774     written |= (1 << 3);
9775     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9776   }
9777 }
9778 }
9779
9780   abuf->written = written;
9781   return vpc;
9782 #undef FLD
9783 }
9784
9785 /* bcralr: bcralr$pack $ccond$hint_taken */
9786
9787 static SEM_PC
9788 SEM_FN_NAME (frvbf,bcralr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9789 {
9790 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9791   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9792   int UNUSED written = 0;
9793   IADDR UNUSED pc = abuf->addr;
9794   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9795
9796 {
9797 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9798 {
9799   SI tmp_tmp;
9800   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
9801   {
9802     USI opval = tmp_tmp;
9803     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
9804     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
9805   }
9806 if (EQSI (FLD (f_ccond), 0)) {
9807 if (NESI (tmp_tmp, 0)) {
9808   {
9809     USI opval = GET_H_SPR (((UINT) 272));
9810     sim_queue_pc_write (current_cpu, opval);
9811     written |= (1 << 5);
9812     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9813   }
9814 }
9815 } else {
9816 if (EQSI (tmp_tmp, 0)) {
9817   {
9818     USI opval = GET_H_SPR (((UINT) 272));
9819     sim_queue_pc_write (current_cpu, opval);
9820     written |= (1 << 5);
9821     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9822   }
9823 }
9824 }
9825 }
9826 }
9827
9828   abuf->written = written;
9829   return vpc;
9830 #undef FLD
9831 }
9832
9833 /* bcnolr: bcnolr$pack$hint_not_taken */
9834
9835 static SEM_PC
9836 SEM_FN_NAME (frvbf,bcnolr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9837 {
9838 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9839   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9840   int UNUSED written = 0;
9841   IADDR UNUSED pc = abuf->addr;
9842   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9843
9844 {
9845 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9846 {
9847   SI tmp_tmp;
9848   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
9849   {
9850     USI opval = tmp_tmp;
9851     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
9852     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
9853   }
9854 ((void) 0); /*nop*/
9855 }
9856 }
9857
9858   return vpc;
9859 #undef FLD
9860 }
9861
9862 /* bceqlr: bceqlr$pack $ICCi_2,$ccond,$hint */
9863
9864 static SEM_PC
9865 SEM_FN_NAME (frvbf,bceqlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9866 {
9867 #define FLD(f) abuf->fields.sfmt_bceqlr.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 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2))) {
9884 if (EQSI (FLD (f_ccond), 0)) {
9885 if (NESI (tmp_tmp, 0)) {
9886   {
9887     USI opval = GET_H_SPR (((UINT) 272));
9888     sim_queue_pc_write (current_cpu, opval);
9889     written |= (1 << 6);
9890     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9891   }
9892 }
9893 } else {
9894 if (EQSI (tmp_tmp, 0)) {
9895   {
9896     USI opval = GET_H_SPR (((UINT) 272));
9897     sim_queue_pc_write (current_cpu, opval);
9898     written |= (1 << 6);
9899     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9900   }
9901 }
9902 }
9903 }
9904 }
9905 }
9906
9907   abuf->written = written;
9908   return vpc;
9909 #undef FLD
9910 }
9911
9912 /* bcnelr: bcnelr$pack $ICCi_2,$ccond,$hint */
9913
9914 static SEM_PC
9915 SEM_FN_NAME (frvbf,bcnelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9916 {
9917 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9918   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9919   int UNUSED written = 0;
9920   IADDR UNUSED pc = abuf->addr;
9921   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9922
9923 {
9924 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9925 {
9926   SI tmp_tmp;
9927   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
9928   {
9929     USI opval = tmp_tmp;
9930     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
9931     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
9932   }
9933 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)))) {
9934 if (EQSI (FLD (f_ccond), 0)) {
9935 if (NESI (tmp_tmp, 0)) {
9936   {
9937     USI opval = GET_H_SPR (((UINT) 272));
9938     sim_queue_pc_write (current_cpu, opval);
9939     written |= (1 << 6);
9940     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9941   }
9942 }
9943 } else {
9944 if (EQSI (tmp_tmp, 0)) {
9945   {
9946     USI opval = GET_H_SPR (((UINT) 272));
9947     sim_queue_pc_write (current_cpu, opval);
9948     written |= (1 << 6);
9949     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9950   }
9951 }
9952 }
9953 }
9954 }
9955 }
9956
9957   abuf->written = written;
9958   return vpc;
9959 #undef FLD
9960 }
9961
9962 /* bclelr: bclelr$pack $ICCi_2,$ccond,$hint */
9963
9964 static SEM_PC
9965 SEM_FN_NAME (frvbf,bclelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9966 {
9967 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9968   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9969   int UNUSED written = 0;
9970   IADDR UNUSED pc = abuf->addr;
9971   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9972
9973 {
9974 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9975 {
9976   SI tmp_tmp;
9977   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
9978   {
9979     USI opval = tmp_tmp;
9980     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
9981     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
9982   }
9983 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))))) {
9984 if (EQSI (FLD (f_ccond), 0)) {
9985 if (NESI (tmp_tmp, 0)) {
9986   {
9987     USI opval = GET_H_SPR (((UINT) 272));
9988     sim_queue_pc_write (current_cpu, opval);
9989     written |= (1 << 6);
9990     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9991   }
9992 }
9993 } else {
9994 if (EQSI (tmp_tmp, 0)) {
9995   {
9996     USI opval = GET_H_SPR (((UINT) 272));
9997     sim_queue_pc_write (current_cpu, opval);
9998     written |= (1 << 6);
9999     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10000   }
10001 }
10002 }
10003 }
10004 }
10005 }
10006
10007   abuf->written = written;
10008   return vpc;
10009 #undef FLD
10010 }
10011
10012 /* bcgtlr: bcgtlr$pack $ICCi_2,$ccond,$hint */
10013
10014 static SEM_PC
10015 SEM_FN_NAME (frvbf,bcgtlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10016 {
10017 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10018   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10019   int UNUSED written = 0;
10020   IADDR UNUSED pc = abuf->addr;
10021   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10022
10023 {
10024 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10025 {
10026   SI tmp_tmp;
10027   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10028   {
10029     USI opval = tmp_tmp;
10030     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10031     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10032   }
10033 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)))))) {
10034 if (EQSI (FLD (f_ccond), 0)) {
10035 if (NESI (tmp_tmp, 0)) {
10036   {
10037     USI opval = GET_H_SPR (((UINT) 272));
10038     sim_queue_pc_write (current_cpu, opval);
10039     written |= (1 << 6);
10040     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10041   }
10042 }
10043 } else {
10044 if (EQSI (tmp_tmp, 0)) {
10045   {
10046     USI opval = GET_H_SPR (((UINT) 272));
10047     sim_queue_pc_write (current_cpu, opval);
10048     written |= (1 << 6);
10049     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10050   }
10051 }
10052 }
10053 }
10054 }
10055 }
10056
10057   abuf->written = written;
10058   return vpc;
10059 #undef FLD
10060 }
10061
10062 /* bcltlr: bcltlr$pack $ICCi_2,$ccond,$hint */
10063
10064 static SEM_PC
10065 SEM_FN_NAME (frvbf,bcltlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10066 {
10067 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10068   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10069   int UNUSED written = 0;
10070   IADDR UNUSED pc = abuf->addr;
10071   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10072
10073 {
10074 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10075 {
10076   SI tmp_tmp;
10077   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10078   {
10079     USI opval = tmp_tmp;
10080     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10081     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10082   }
10083 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)))) {
10084 if (EQSI (FLD (f_ccond), 0)) {
10085 if (NESI (tmp_tmp, 0)) {
10086   {
10087     USI opval = GET_H_SPR (((UINT) 272));
10088     sim_queue_pc_write (current_cpu, opval);
10089     written |= (1 << 6);
10090     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10091   }
10092 }
10093 } else {
10094 if (EQSI (tmp_tmp, 0)) {
10095   {
10096     USI opval = GET_H_SPR (((UINT) 272));
10097     sim_queue_pc_write (current_cpu, opval);
10098     written |= (1 << 6);
10099     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10100   }
10101 }
10102 }
10103 }
10104 }
10105 }
10106
10107   abuf->written = written;
10108   return vpc;
10109 #undef FLD
10110 }
10111
10112 /* bcgelr: bcgelr$pack $ICCi_2,$ccond,$hint */
10113
10114 static SEM_PC
10115 SEM_FN_NAME (frvbf,bcgelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10116 {
10117 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10118   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10119   int UNUSED written = 0;
10120   IADDR UNUSED pc = abuf->addr;
10121   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10122
10123 {
10124 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10125 {
10126   SI tmp_tmp;
10127   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10128   {
10129     USI opval = tmp_tmp;
10130     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10131     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10132   }
10133 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))))) {
10134 if (EQSI (FLD (f_ccond), 0)) {
10135 if (NESI (tmp_tmp, 0)) {
10136   {
10137     USI opval = GET_H_SPR (((UINT) 272));
10138     sim_queue_pc_write (current_cpu, opval);
10139     written |= (1 << 6);
10140     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10141   }
10142 }
10143 } else {
10144 if (EQSI (tmp_tmp, 0)) {
10145   {
10146     USI opval = GET_H_SPR (((UINT) 272));
10147     sim_queue_pc_write (current_cpu, opval);
10148     written |= (1 << 6);
10149     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10150   }
10151 }
10152 }
10153 }
10154 }
10155 }
10156
10157   abuf->written = written;
10158   return vpc;
10159 #undef FLD
10160 }
10161
10162 /* bclslr: bclslr$pack $ICCi_2,$ccond,$hint */
10163
10164 static SEM_PC
10165 SEM_FN_NAME (frvbf,bclslr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10166 {
10167 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10168   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10169   int UNUSED written = 0;
10170   IADDR UNUSED pc = abuf->addr;
10171   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10172
10173 {
10174 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10175 {
10176   SI tmp_tmp;
10177   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10178   {
10179     USI opval = tmp_tmp;
10180     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10181     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10182   }
10183 if (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)))) {
10184 if (EQSI (FLD (f_ccond), 0)) {
10185 if (NESI (tmp_tmp, 0)) {
10186   {
10187     USI opval = GET_H_SPR (((UINT) 272));
10188     sim_queue_pc_write (current_cpu, opval);
10189     written |= (1 << 6);
10190     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10191   }
10192 }
10193 } else {
10194 if (EQSI (tmp_tmp, 0)) {
10195   {
10196     USI opval = GET_H_SPR (((UINT) 272));
10197     sim_queue_pc_write (current_cpu, opval);
10198     written |= (1 << 6);
10199     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10200   }
10201 }
10202 }
10203 }
10204 }
10205 }
10206
10207   abuf->written = written;
10208   return vpc;
10209 #undef FLD
10210 }
10211
10212 /* bchilr: bchilr$pack $ICCi_2,$ccond,$hint */
10213
10214 static SEM_PC
10215 SEM_FN_NAME (frvbf,bchilr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10216 {
10217 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10218   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10219   int UNUSED written = 0;
10220   IADDR UNUSED pc = abuf->addr;
10221   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10222
10223 {
10224 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10225 {
10226   SI tmp_tmp;
10227   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10228   {
10229     USI opval = tmp_tmp;
10230     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10231     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10232   }
10233 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))))) {
10234 if (EQSI (FLD (f_ccond), 0)) {
10235 if (NESI (tmp_tmp, 0)) {
10236   {
10237     USI opval = GET_H_SPR (((UINT) 272));
10238     sim_queue_pc_write (current_cpu, opval);
10239     written |= (1 << 6);
10240     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10241   }
10242 }
10243 } else {
10244 if (EQSI (tmp_tmp, 0)) {
10245   {
10246     USI opval = GET_H_SPR (((UINT) 272));
10247     sim_queue_pc_write (current_cpu, opval);
10248     written |= (1 << 6);
10249     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10250   }
10251 }
10252 }
10253 }
10254 }
10255 }
10256
10257   abuf->written = written;
10258   return vpc;
10259 #undef FLD
10260 }
10261
10262 /* bcclr: bcclr$pack $ICCi_2,$ccond,$hint */
10263
10264 static SEM_PC
10265 SEM_FN_NAME (frvbf,bcclr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10266 {
10267 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10268   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10269   int UNUSED written = 0;
10270   IADDR UNUSED pc = abuf->addr;
10271   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10272
10273 {
10274 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10275 {
10276   SI tmp_tmp;
10277   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10278   {
10279     USI opval = tmp_tmp;
10280     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10281     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10282   }
10283 if (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1))) {
10284 if (EQSI (FLD (f_ccond), 0)) {
10285 if (NESI (tmp_tmp, 0)) {
10286   {
10287     USI opval = GET_H_SPR (((UINT) 272));
10288     sim_queue_pc_write (current_cpu, opval);
10289     written |= (1 << 6);
10290     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10291   }
10292 }
10293 } else {
10294 if (EQSI (tmp_tmp, 0)) {
10295   {
10296     USI opval = GET_H_SPR (((UINT) 272));
10297     sim_queue_pc_write (current_cpu, opval);
10298     written |= (1 << 6);
10299     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10300   }
10301 }
10302 }
10303 }
10304 }
10305 }
10306
10307   abuf->written = written;
10308   return vpc;
10309 #undef FLD
10310 }
10311
10312 /* bcnclr: bcnclr$pack $ICCi_2,$ccond,$hint */
10313
10314 static SEM_PC
10315 SEM_FN_NAME (frvbf,bcnclr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10316 {
10317 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10318   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10319   int UNUSED written = 0;
10320   IADDR UNUSED pc = abuf->addr;
10321   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10322
10323 {
10324 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10325 {
10326   SI tmp_tmp;
10327   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10328   {
10329     USI opval = tmp_tmp;
10330     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10331     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10332   }
10333 if (NOTBI (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)))) {
10334 if (EQSI (FLD (f_ccond), 0)) {
10335 if (NESI (tmp_tmp, 0)) {
10336   {
10337     USI opval = GET_H_SPR (((UINT) 272));
10338     sim_queue_pc_write (current_cpu, opval);
10339     written |= (1 << 6);
10340     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10341   }
10342 }
10343 } else {
10344 if (EQSI (tmp_tmp, 0)) {
10345   {
10346     USI opval = GET_H_SPR (((UINT) 272));
10347     sim_queue_pc_write (current_cpu, opval);
10348     written |= (1 << 6);
10349     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10350   }
10351 }
10352 }
10353 }
10354 }
10355 }
10356
10357   abuf->written = written;
10358   return vpc;
10359 #undef FLD
10360 }
10361
10362 /* bcnlr: bcnlr$pack $ICCi_2,$ccond,$hint */
10363
10364 static SEM_PC
10365 SEM_FN_NAME (frvbf,bcnlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10366 {
10367 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10368   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10369   int UNUSED written = 0;
10370   IADDR UNUSED pc = abuf->addr;
10371   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10372
10373 {
10374 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10375 {
10376   SI tmp_tmp;
10377   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10378   {
10379     USI opval = tmp_tmp;
10380     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10381     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10382   }
10383 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3))) {
10384 if (EQSI (FLD (f_ccond), 0)) {
10385 if (NESI (tmp_tmp, 0)) {
10386   {
10387     USI opval = GET_H_SPR (((UINT) 272));
10388     sim_queue_pc_write (current_cpu, opval);
10389     written |= (1 << 6);
10390     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10391   }
10392 }
10393 } else {
10394 if (EQSI (tmp_tmp, 0)) {
10395   {
10396     USI opval = GET_H_SPR (((UINT) 272));
10397     sim_queue_pc_write (current_cpu, opval);
10398     written |= (1 << 6);
10399     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10400   }
10401 }
10402 }
10403 }
10404 }
10405 }
10406
10407   abuf->written = written;
10408   return vpc;
10409 #undef FLD
10410 }
10411
10412 /* bcplr: bcplr$pack $ICCi_2,$ccond,$hint */
10413
10414 static SEM_PC
10415 SEM_FN_NAME (frvbf,bcplr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10416 {
10417 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10418   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10419   int UNUSED written = 0;
10420   IADDR UNUSED pc = abuf->addr;
10421   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10422
10423 {
10424 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10425 {
10426   SI tmp_tmp;
10427   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10428   {
10429     USI opval = tmp_tmp;
10430     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10431     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10432   }
10433 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3)))) {
10434 if (EQSI (FLD (f_ccond), 0)) {
10435 if (NESI (tmp_tmp, 0)) {
10436   {
10437     USI opval = GET_H_SPR (((UINT) 272));
10438     sim_queue_pc_write (current_cpu, opval);
10439     written |= (1 << 6);
10440     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10441   }
10442 }
10443 } else {
10444 if (EQSI (tmp_tmp, 0)) {
10445   {
10446     USI opval = GET_H_SPR (((UINT) 272));
10447     sim_queue_pc_write (current_cpu, opval);
10448     written |= (1 << 6);
10449     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10450   }
10451 }
10452 }
10453 }
10454 }
10455 }
10456
10457   abuf->written = written;
10458   return vpc;
10459 #undef FLD
10460 }
10461
10462 /* bcvlr: bcvlr$pack $ICCi_2,$ccond,$hint */
10463
10464 static SEM_PC
10465 SEM_FN_NAME (frvbf,bcvlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10466 {
10467 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10468   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10469   int UNUSED written = 0;
10470   IADDR UNUSED pc = abuf->addr;
10471   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10472
10473 {
10474 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10475 {
10476   SI tmp_tmp;
10477   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10478   {
10479     USI opval = tmp_tmp;
10480     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10481     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10482   }
10483 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1))) {
10484 if (EQSI (FLD (f_ccond), 0)) {
10485 if (NESI (tmp_tmp, 0)) {
10486   {
10487     USI opval = GET_H_SPR (((UINT) 272));
10488     sim_queue_pc_write (current_cpu, opval);
10489     written |= (1 << 6);
10490     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10491   }
10492 }
10493 } else {
10494 if (EQSI (tmp_tmp, 0)) {
10495   {
10496     USI opval = GET_H_SPR (((UINT) 272));
10497     sim_queue_pc_write (current_cpu, opval);
10498     written |= (1 << 6);
10499     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10500   }
10501 }
10502 }
10503 }
10504 }
10505 }
10506
10507   abuf->written = written;
10508   return vpc;
10509 #undef FLD
10510 }
10511
10512 /* bcnvlr: bcnvlr$pack $ICCi_2,$ccond,$hint */
10513
10514 static SEM_PC
10515 SEM_FN_NAME (frvbf,bcnvlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10516 {
10517 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10518   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10519   int UNUSED written = 0;
10520   IADDR UNUSED pc = abuf->addr;
10521   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10522
10523 {
10524 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10525 {
10526   SI tmp_tmp;
10527   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10528   {
10529     USI opval = tmp_tmp;
10530     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10531     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10532   }
10533 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1)))) {
10534 if (EQSI (FLD (f_ccond), 0)) {
10535 if (NESI (tmp_tmp, 0)) {
10536   {
10537     USI opval = GET_H_SPR (((UINT) 272));
10538     sim_queue_pc_write (current_cpu, opval);
10539     written |= (1 << 6);
10540     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10541   }
10542 }
10543 } else {
10544 if (EQSI (tmp_tmp, 0)) {
10545   {
10546     USI opval = GET_H_SPR (((UINT) 272));
10547     sim_queue_pc_write (current_cpu, opval);
10548     written |= (1 << 6);
10549     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10550   }
10551 }
10552 }
10553 }
10554 }
10555 }
10556
10557   abuf->written = written;
10558   return vpc;
10559 #undef FLD
10560 }
10561
10562 /* fcbralr: fcbralr$pack $ccond$hint_taken */
10563
10564 static SEM_PC
10565 SEM_FN_NAME (frvbf,fcbralr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10566 {
10567 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10568   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10569   int UNUSED written = 0;
10570   IADDR UNUSED pc = abuf->addr;
10571   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10572
10573 {
10574 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10575 {
10576   SI tmp_tmp;
10577   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10578   {
10579     USI opval = tmp_tmp;
10580     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10581     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10582   }
10583 if (EQSI (FLD (f_ccond), 0)) {
10584 if (NESI (tmp_tmp, 0)) {
10585   {
10586     USI opval = GET_H_SPR (((UINT) 272));
10587     sim_queue_pc_write (current_cpu, opval);
10588     written |= (1 << 5);
10589     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10590   }
10591 }
10592 } else {
10593 if (EQSI (tmp_tmp, 0)) {
10594   {
10595     USI opval = GET_H_SPR (((UINT) 272));
10596     sim_queue_pc_write (current_cpu, opval);
10597     written |= (1 << 5);
10598     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10599   }
10600 }
10601 }
10602 }
10603 }
10604
10605   abuf->written = written;
10606   return vpc;
10607 #undef FLD
10608 }
10609
10610 /* fcbnolr: fcbnolr$pack$hint_not_taken */
10611
10612 static SEM_PC
10613 SEM_FN_NAME (frvbf,fcbnolr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10614 {
10615 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10616   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10617   int UNUSED written = 0;
10618   IADDR UNUSED pc = abuf->addr;
10619   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10620
10621 {
10622 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10623 {
10624   SI tmp_tmp;
10625   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10626   {
10627     USI opval = tmp_tmp;
10628     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10629     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10630   }
10631 ((void) 0); /*nop*/
10632 }
10633 }
10634
10635   return vpc;
10636 #undef FLD
10637 }
10638
10639 /* fcbeqlr: fcbeqlr$pack $FCCi_2,$ccond,$hint */
10640
10641 static SEM_PC
10642 SEM_FN_NAME (frvbf,fcbeqlr) (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 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3))) {
10661 if (EQSI (FLD (f_ccond), 0)) {
10662 if (NESI (tmp_tmp, 0)) {
10663   {
10664     USI opval = GET_H_SPR (((UINT) 272));
10665     sim_queue_pc_write (current_cpu, opval);
10666     written |= (1 << 6);
10667     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10668   }
10669 }
10670 } else {
10671 if (EQSI (tmp_tmp, 0)) {
10672   {
10673     USI opval = GET_H_SPR (((UINT) 272));
10674     sim_queue_pc_write (current_cpu, opval);
10675     written |= (1 << 6);
10676     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10677   }
10678 }
10679 }
10680 }
10681 }
10682 }
10683
10684   abuf->written = written;
10685   return vpc;
10686 #undef FLD
10687 }
10688
10689 /* fcbnelr: fcbnelr$pack $FCCi_2,$ccond,$hint */
10690
10691 static SEM_PC
10692 SEM_FN_NAME (frvbf,fcbnelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10693 {
10694 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10695   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10696   int UNUSED written = 0;
10697   IADDR UNUSED pc = abuf->addr;
10698   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10699
10700 {
10701 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10702 {
10703   SI tmp_tmp;
10704   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10705   {
10706     USI opval = tmp_tmp;
10707     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10708     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10709   }
10710 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))))) {
10711 if (EQSI (FLD (f_ccond), 0)) {
10712 if (NESI (tmp_tmp, 0)) {
10713   {
10714     USI opval = GET_H_SPR (((UINT) 272));
10715     sim_queue_pc_write (current_cpu, opval);
10716     written |= (1 << 6);
10717     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10718   }
10719 }
10720 } else {
10721 if (EQSI (tmp_tmp, 0)) {
10722   {
10723     USI opval = GET_H_SPR (((UINT) 272));
10724     sim_queue_pc_write (current_cpu, opval);
10725     written |= (1 << 6);
10726     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10727   }
10728 }
10729 }
10730 }
10731 }
10732 }
10733
10734   abuf->written = written;
10735   return vpc;
10736 #undef FLD
10737 }
10738
10739 /* fcblglr: fcblglr$pack $FCCi_2,$ccond,$hint */
10740
10741 static SEM_PC
10742 SEM_FN_NAME (frvbf,fcblglr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10743 {
10744 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10745   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10746   int UNUSED written = 0;
10747   IADDR UNUSED pc = abuf->addr;
10748   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10749
10750 {
10751 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10752 {
10753   SI tmp_tmp;
10754   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10755   {
10756     USI opval = tmp_tmp;
10757     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10758     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10759   }
10760 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)))) {
10761 if (EQSI (FLD (f_ccond), 0)) {
10762 if (NESI (tmp_tmp, 0)) {
10763   {
10764     USI opval = GET_H_SPR (((UINT) 272));
10765     sim_queue_pc_write (current_cpu, opval);
10766     written |= (1 << 6);
10767     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10768   }
10769 }
10770 } else {
10771 if (EQSI (tmp_tmp, 0)) {
10772   {
10773     USI opval = GET_H_SPR (((UINT) 272));
10774     sim_queue_pc_write (current_cpu, opval);
10775     written |= (1 << 6);
10776     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10777   }
10778 }
10779 }
10780 }
10781 }
10782 }
10783
10784   abuf->written = written;
10785   return vpc;
10786 #undef FLD
10787 }
10788
10789 /* fcbuelr: fcbuelr$pack $FCCi_2,$ccond,$hint */
10790
10791 static SEM_PC
10792 SEM_FN_NAME (frvbf,fcbuelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10793 {
10794 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10795   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10796   int UNUSED written = 0;
10797   IADDR UNUSED pc = abuf->addr;
10798   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10799
10800 {
10801 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10802 {
10803   SI tmp_tmp;
10804   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10805   {
10806     USI opval = tmp_tmp;
10807     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10808     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10809   }
10810 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
10811 if (EQSI (FLD (f_ccond), 0)) {
10812 if (NESI (tmp_tmp, 0)) {
10813   {
10814     USI opval = GET_H_SPR (((UINT) 272));
10815     sim_queue_pc_write (current_cpu, opval);
10816     written |= (1 << 6);
10817     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10818   }
10819 }
10820 } else {
10821 if (EQSI (tmp_tmp, 0)) {
10822   {
10823     USI opval = GET_H_SPR (((UINT) 272));
10824     sim_queue_pc_write (current_cpu, opval);
10825     written |= (1 << 6);
10826     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10827   }
10828 }
10829 }
10830 }
10831 }
10832 }
10833
10834   abuf->written = written;
10835   return vpc;
10836 #undef FLD
10837 }
10838
10839 /* fcbullr: fcbullr$pack $FCCi_2,$ccond,$hint */
10840
10841 static SEM_PC
10842 SEM_FN_NAME (frvbf,fcbullr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10843 {
10844 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10845   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10846   int UNUSED written = 0;
10847   IADDR UNUSED pc = abuf->addr;
10848   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10849
10850 {
10851 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10852 {
10853   SI tmp_tmp;
10854   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10855   {
10856     USI opval = tmp_tmp;
10857     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10858     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10859   }
10860 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
10861 if (EQSI (FLD (f_ccond), 0)) {
10862 if (NESI (tmp_tmp, 0)) {
10863   {
10864     USI opval = GET_H_SPR (((UINT) 272));
10865     sim_queue_pc_write (current_cpu, opval);
10866     written |= (1 << 6);
10867     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10868   }
10869 }
10870 } else {
10871 if (EQSI (tmp_tmp, 0)) {
10872   {
10873     USI opval = GET_H_SPR (((UINT) 272));
10874     sim_queue_pc_write (current_cpu, opval);
10875     written |= (1 << 6);
10876     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10877   }
10878 }
10879 }
10880 }
10881 }
10882 }
10883
10884   abuf->written = written;
10885   return vpc;
10886 #undef FLD
10887 }
10888
10889 /* fcbgelr: fcbgelr$pack $FCCi_2,$ccond,$hint */
10890
10891 static SEM_PC
10892 SEM_FN_NAME (frvbf,fcbgelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10893 {
10894 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10895   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10896   int UNUSED written = 0;
10897   IADDR UNUSED pc = abuf->addr;
10898   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10899
10900 {
10901 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10902 {
10903   SI tmp_tmp;
10904   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10905   {
10906     USI opval = tmp_tmp;
10907     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10908     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10909   }
10910 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)))) {
10911 if (EQSI (FLD (f_ccond), 0)) {
10912 if (NESI (tmp_tmp, 0)) {
10913   {
10914     USI opval = GET_H_SPR (((UINT) 272));
10915     sim_queue_pc_write (current_cpu, opval);
10916     written |= (1 << 6);
10917     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10918   }
10919 }
10920 } else {
10921 if (EQSI (tmp_tmp, 0)) {
10922   {
10923     USI opval = GET_H_SPR (((UINT) 272));
10924     sim_queue_pc_write (current_cpu, opval);
10925     written |= (1 << 6);
10926     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10927   }
10928 }
10929 }
10930 }
10931 }
10932 }
10933
10934   abuf->written = written;
10935   return vpc;
10936 #undef FLD
10937 }
10938
10939 /* fcbltlr: fcbltlr$pack $FCCi_2,$ccond,$hint */
10940
10941 static SEM_PC
10942 SEM_FN_NAME (frvbf,fcbltlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10943 {
10944 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10945   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10946   int UNUSED written = 0;
10947   IADDR UNUSED pc = abuf->addr;
10948   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10949
10950 {
10951 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10952 {
10953   SI tmp_tmp;
10954   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10955   {
10956     USI opval = tmp_tmp;
10957     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10958     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10959   }
10960 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2))) {
10961 if (EQSI (FLD (f_ccond), 0)) {
10962 if (NESI (tmp_tmp, 0)) {
10963   {
10964     USI opval = GET_H_SPR (((UINT) 272));
10965     sim_queue_pc_write (current_cpu, opval);
10966     written |= (1 << 6);
10967     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10968   }
10969 }
10970 } else {
10971 if (EQSI (tmp_tmp, 0)) {
10972   {
10973     USI opval = GET_H_SPR (((UINT) 272));
10974     sim_queue_pc_write (current_cpu, opval);
10975     written |= (1 << 6);
10976     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10977   }
10978 }
10979 }
10980 }
10981 }
10982 }
10983
10984   abuf->written = written;
10985   return vpc;
10986 #undef FLD
10987 }
10988
10989 /* fcbugelr: fcbugelr$pack $FCCi_2,$ccond,$hint */
10990
10991 static SEM_PC
10992 SEM_FN_NAME (frvbf,fcbugelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10993 {
10994 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10995   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10996   int UNUSED written = 0;
10997   IADDR UNUSED pc = abuf->addr;
10998   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10999
11000 {
11001 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
11002 {
11003   SI tmp_tmp;
11004   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
11005   {
11006     USI opval = tmp_tmp;
11007     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
11008     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
11009   }
11010 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))))) {
11011 if (EQSI (FLD (f_ccond), 0)) {
11012 if (NESI (tmp_tmp, 0)) {
11013   {
11014     USI opval = GET_H_SPR (((UINT) 272));
11015     sim_queue_pc_write (current_cpu, opval);
11016     written |= (1 << 6);
11017     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11018   }
11019 }
11020 } else {
11021 if (EQSI (tmp_tmp, 0)) {
11022   {
11023     USI opval = GET_H_SPR (((UINT) 272));
11024     sim_queue_pc_write (current_cpu, opval);
11025     written |= (1 << 6);
11026     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11027   }
11028 }
11029 }
11030 }
11031 }
11032 }
11033
11034   abuf->written = written;
11035   return vpc;
11036 #undef FLD
11037 }
11038
11039 /* fcbuglr: fcbuglr$pack $FCCi_2,$ccond,$hint */
11040
11041 static SEM_PC
11042 SEM_FN_NAME (frvbf,fcbuglr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11043 {
11044 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
11045   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11046   int UNUSED written = 0;
11047   IADDR UNUSED pc = abuf->addr;
11048   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11049
11050 {
11051 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
11052 {
11053   SI tmp_tmp;
11054   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
11055   {
11056     USI opval = tmp_tmp;
11057     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
11058     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
11059   }
11060 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
11061 if (EQSI (FLD (f_ccond), 0)) {
11062 if (NESI (tmp_tmp, 0)) {
11063   {
11064     USI opval = GET_H_SPR (((UINT) 272));
11065     sim_queue_pc_write (current_cpu, opval);
11066     written |= (1 << 6);
11067     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11068   }
11069 }
11070 } else {
11071 if (EQSI (tmp_tmp, 0)) {
11072   {
11073     USI opval = GET_H_SPR (((UINT) 272));
11074     sim_queue_pc_write (current_cpu, opval);
11075     written |= (1 << 6);
11076     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11077   }
11078 }
11079 }
11080 }
11081 }
11082 }
11083
11084   abuf->written = written;
11085   return vpc;
11086 #undef FLD
11087 }
11088
11089 /* fcblelr: fcblelr$pack $FCCi_2,$ccond,$hint */
11090
11091 static SEM_PC
11092 SEM_FN_NAME (frvbf,fcblelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11093 {
11094 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
11095   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11096   int UNUSED written = 0;
11097   IADDR UNUSED pc = abuf->addr;
11098   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11099
11100 {
11101 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
11102 {
11103   SI tmp_tmp;
11104   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
11105   {
11106     USI opval = tmp_tmp;
11107     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
11108     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
11109   }
11110 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)))) {
11111 if (EQSI (FLD (f_ccond), 0)) {
11112 if (NESI (tmp_tmp, 0)) {
11113   {
11114     USI opval = GET_H_SPR (((UINT) 272));
11115     sim_queue_pc_write (current_cpu, opval);
11116     written |= (1 << 6);
11117     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11118   }
11119 }
11120 } else {
11121 if (EQSI (tmp_tmp, 0)) {
11122   {
11123     USI opval = GET_H_SPR (((UINT) 272));
11124     sim_queue_pc_write (current_cpu, opval);
11125     written |= (1 << 6);
11126     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11127   }
11128 }
11129 }
11130 }
11131 }
11132 }
11133
11134   abuf->written = written;
11135   return vpc;
11136 #undef FLD
11137 }
11138
11139 /* fcbgtlr: fcbgtlr$pack $FCCi_2,$ccond,$hint */
11140
11141 static SEM_PC
11142 SEM_FN_NAME (frvbf,fcbgtlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11143 {
11144 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
11145   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11146   int UNUSED written = 0;
11147   IADDR UNUSED pc = abuf->addr;
11148   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11149
11150 {
11151 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
11152 {
11153   SI tmp_tmp;
11154   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
11155   {
11156     USI opval = tmp_tmp;
11157     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
11158     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
11159   }
11160 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1))) {
11161 if (EQSI (FLD (f_ccond), 0)) {
11162 if (NESI (tmp_tmp, 0)) {
11163   {
11164     USI opval = GET_H_SPR (((UINT) 272));
11165     sim_queue_pc_write (current_cpu, opval);
11166     written |= (1 << 6);
11167     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11168   }
11169 }
11170 } else {
11171 if (EQSI (tmp_tmp, 0)) {
11172   {
11173     USI opval = GET_H_SPR (((UINT) 272));
11174     sim_queue_pc_write (current_cpu, opval);
11175     written |= (1 << 6);
11176     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11177   }
11178 }
11179 }
11180 }
11181 }
11182 }
11183
11184   abuf->written = written;
11185   return vpc;
11186 #undef FLD
11187 }
11188
11189 /* fcbulelr: fcbulelr$pack $FCCi_2,$ccond,$hint */
11190
11191 static SEM_PC
11192 SEM_FN_NAME (frvbf,fcbulelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11193 {
11194 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
11195   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11196   int UNUSED written = 0;
11197   IADDR UNUSED pc = abuf->addr;
11198   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11199
11200 {
11201 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
11202 {
11203   SI tmp_tmp;
11204   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
11205   {
11206     USI opval = tmp_tmp;
11207     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
11208     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
11209   }
11210 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))))) {
11211 if (EQSI (FLD (f_ccond), 0)) {
11212 if (NESI (tmp_tmp, 0)) {
11213   {
11214     USI opval = GET_H_SPR (((UINT) 272));
11215     sim_queue_pc_write (current_cpu, opval);
11216     written |= (1 << 6);
11217     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11218   }
11219 }
11220 } else {
11221 if (EQSI (tmp_tmp, 0)) {
11222   {
11223     USI opval = GET_H_SPR (((UINT) 272));
11224     sim_queue_pc_write (current_cpu, opval);
11225     written |= (1 << 6);
11226     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11227   }
11228 }
11229 }
11230 }
11231 }
11232 }
11233
11234   abuf->written = written;
11235   return vpc;
11236 #undef FLD
11237 }
11238
11239 /* fcbulr: fcbulr$pack $FCCi_2,$ccond,$hint */
11240
11241 static SEM_PC
11242 SEM_FN_NAME (frvbf,fcbulr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11243 {
11244 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
11245   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11246   int UNUSED written = 0;
11247   IADDR UNUSED pc = abuf->addr;
11248   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11249
11250 {
11251 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
11252 {
11253   SI tmp_tmp;
11254   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
11255   {
11256     USI opval = tmp_tmp;
11257     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
11258     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
11259   }
11260 if (TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1))) {
11261 if (EQSI (FLD (f_ccond), 0)) {
11262 if (NESI (tmp_tmp, 0)) {
11263   {
11264     USI opval = GET_H_SPR (((UINT) 272));
11265     sim_queue_pc_write (current_cpu, opval);
11266     written |= (1 << 6);
11267     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11268   }
11269 }
11270 } else {
11271 if (EQSI (tmp_tmp, 0)) {
11272   {
11273     USI opval = GET_H_SPR (((UINT) 272));
11274     sim_queue_pc_write (current_cpu, opval);
11275     written |= (1 << 6);
11276     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11277   }
11278 }
11279 }
11280 }
11281 }
11282 }
11283
11284   abuf->written = written;
11285   return vpc;
11286 #undef FLD
11287 }
11288
11289 /* fcbolr: fcbolr$pack $FCCi_2,$ccond,$hint */
11290
11291 static SEM_PC
11292 SEM_FN_NAME (frvbf,fcbolr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11293 {
11294 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
11295   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11296   int UNUSED written = 0;
11297   IADDR UNUSED pc = abuf->addr;
11298   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11299
11300 {
11301 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
11302 {
11303   SI tmp_tmp;
11304   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
11305   {
11306     USI opval = tmp_tmp;
11307     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
11308     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
11309   }
11310 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))))) {
11311 if (EQSI (FLD (f_ccond), 0)) {
11312 if (NESI (tmp_tmp, 0)) {
11313   {
11314     USI opval = GET_H_SPR (((UINT) 272));
11315     sim_queue_pc_write (current_cpu, opval);
11316     written |= (1 << 6);
11317     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11318   }
11319 }
11320 } else {
11321 if (EQSI (tmp_tmp, 0)) {
11322   {
11323     USI opval = GET_H_SPR (((UINT) 272));
11324     sim_queue_pc_write (current_cpu, opval);
11325     written |= (1 << 6);
11326     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11327   }
11328 }
11329 }
11330 }
11331 }
11332 }
11333
11334   abuf->written = written;
11335   return vpc;
11336 #undef FLD
11337 }
11338
11339 /* jmpl: jmpl$pack @($GRi,$GRj) */
11340
11341 static SEM_PC
11342 SEM_FN_NAME (frvbf,jmpl) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11343 {
11344 #define FLD(f) abuf->fields.sfmt_cjmpl.f
11345   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11346   int UNUSED written = 0;
11347   IADDR UNUSED pc = abuf->addr;
11348   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11349
11350 {
11351 if (EQSI (FLD (f_LI), 1)) {
11352 frvbf_set_write_next_vliw_addr_to_LR (current_cpu, 1);
11353 }
11354   {
11355     USI opval = ANDSI (ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), 0xfffffffc);
11356     sim_queue_pc_write (current_cpu, opval);
11357     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11358   }
11359 frvbf_model_branch (current_cpu, pc, 2);
11360 }
11361
11362   return vpc;
11363 #undef FLD
11364 }
11365
11366 /* calll: calll$pack @($GRi,$GRj) */
11367
11368 static SEM_PC
11369 SEM_FN_NAME (frvbf,calll) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11370 {
11371 #define FLD(f) abuf->fields.sfmt_cjmpl.f
11372   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11373   int UNUSED written = 0;
11374   IADDR UNUSED pc = abuf->addr;
11375   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11376
11377 {
11378 if (EQSI (FLD (f_LI), 1)) {
11379 frvbf_set_write_next_vliw_addr_to_LR (current_cpu, 1);
11380 }
11381   {
11382     USI opval = ANDSI (ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), 0xfffffffc);
11383     sim_queue_pc_write (current_cpu, opval);
11384     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11385   }
11386 frvbf_model_branch (current_cpu, pc, 2);
11387 }
11388
11389   return vpc;
11390 #undef FLD
11391 }
11392
11393 /* jmpil: jmpil$pack @($GRi,$s12) */
11394
11395 static SEM_PC
11396 SEM_FN_NAME (frvbf,jmpil) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11397 {
11398 #define FLD(f) abuf->fields.sfmt_jmpil.f
11399   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11400   int UNUSED written = 0;
11401   IADDR UNUSED pc = abuf->addr;
11402   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11403
11404 {
11405 if (EQSI (FLD (f_LI), 1)) {
11406 frvbf_set_write_next_vliw_addr_to_LR (current_cpu, 1);
11407 }
11408   {
11409     USI opval = ANDSI (ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)), 0xfffffffc);
11410     sim_queue_pc_write (current_cpu, opval);
11411     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11412   }
11413 frvbf_model_branch (current_cpu, pc, 2);
11414 }
11415
11416   return vpc;
11417 #undef FLD
11418 }
11419
11420 /* callil: callil$pack @($GRi,$s12) */
11421
11422 static SEM_PC
11423 SEM_FN_NAME (frvbf,callil) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11424 {
11425 #define FLD(f) abuf->fields.sfmt_jmpil.f
11426   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11427   int UNUSED written = 0;
11428   IADDR UNUSED pc = abuf->addr;
11429   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11430
11431 {
11432 if (EQSI (FLD (f_LI), 1)) {
11433 frvbf_set_write_next_vliw_addr_to_LR (current_cpu, 1);
11434 }
11435   {
11436     USI opval = ANDSI (ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)), 0xfffffffc);
11437     sim_queue_pc_write (current_cpu, opval);
11438     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11439   }
11440 frvbf_model_branch (current_cpu, pc, 2);
11441 }
11442
11443   return vpc;
11444 #undef FLD
11445 }
11446
11447 /* call: call$pack $label24 */
11448
11449 static SEM_PC
11450 SEM_FN_NAME (frvbf,call) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11451 {
11452 #define FLD(f) abuf->fields.sfmt_call.f
11453   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11454   int UNUSED written = 0;
11455   IADDR UNUSED pc = abuf->addr;
11456   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11457
11458 {
11459 frvbf_set_write_next_vliw_addr_to_LR (current_cpu, 1);
11460   {
11461     USI opval = FLD (i_label24);
11462     sim_queue_pc_write (current_cpu, opval);
11463     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11464   }
11465 frvbf_model_branch (current_cpu, pc, 2);
11466 }
11467
11468   return vpc;
11469 #undef FLD
11470 }
11471
11472 /* rett: rett$pack $debug */
11473
11474 static SEM_PC
11475 SEM_FN_NAME (frvbf,rett) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11476 {
11477 #define FLD(f) abuf->fields.sfmt_rett.f
11478   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11479   int UNUSED written = 0;
11480   IADDR UNUSED pc = abuf->addr;
11481   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11482
11483 {
11484   {
11485     USI opval = frv_rett (current_cpu, pc, FLD (f_debug));
11486     sim_queue_pc_write (current_cpu, opval);
11487     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11488   }
11489 frvbf_model_branch (current_cpu, pc, 2);
11490 }
11491
11492   return vpc;
11493 #undef FLD
11494 }
11495
11496 /* rei: rei$pack $eir */
11497
11498 static SEM_PC
11499 SEM_FN_NAME (frvbf,rei) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11500 {
11501 #define FLD(f) abuf->fields.fmt_empty.f
11502   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11503   int UNUSED written = 0;
11504   IADDR UNUSED pc = abuf->addr;
11505   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11506
11507 ((void) 0); /*nop*/
11508
11509   return vpc;
11510 #undef FLD
11511 }
11512
11513 /* tra: tra$pack $GRi,$GRj */
11514
11515 static SEM_PC
11516 SEM_FN_NAME (frvbf,tra) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11517 {
11518 #define FLD(f) abuf->fields.sfmt_ftne.f
11519   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11520   int UNUSED written = 0;
11521   IADDR UNUSED pc = abuf->addr;
11522   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11523
11524 {
11525 ; /*clobber*/
11526 ; /*clobber*/
11527 ; /*clobber*/
11528 ; /*clobber*/
11529 if (NEBI (CPU (h_psr_esr), 0)) {
11530 {
11531 ; /*clobber*/
11532 ; /*clobber*/
11533 ; /*clobber*/
11534 ; /*clobber*/
11535 }
11536 }
11537 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11538 }
11539
11540   abuf->written = written;
11541   return vpc;
11542 #undef FLD
11543 }
11544
11545 /* tno: tno$pack */
11546
11547 static SEM_PC
11548 SEM_FN_NAME (frvbf,tno) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11549 {
11550 #define FLD(f) abuf->fields.fmt_empty.f
11551   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11552   int UNUSED written = 0;
11553   IADDR UNUSED pc = abuf->addr;
11554   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11555
11556 ((void) 0); /*nop*/
11557
11558   return vpc;
11559 #undef FLD
11560 }
11561
11562 /* teq: teq$pack $ICCi_2,$GRi,$GRj */
11563
11564 static SEM_PC
11565 SEM_FN_NAME (frvbf,teq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11566 {
11567 #define FLD(f) abuf->fields.sfmt_teq.f
11568   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11569   int UNUSED written = 0;
11570   IADDR UNUSED pc = abuf->addr;
11571   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11572
11573 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2))) {
11574 {
11575 ; /*clobber*/
11576 ; /*clobber*/
11577 ; /*clobber*/
11578 ; /*clobber*/
11579 if (NEBI (CPU (h_psr_esr), 0)) {
11580 {
11581 ; /*clobber*/
11582 ; /*clobber*/
11583 ; /*clobber*/
11584 ; /*clobber*/
11585 }
11586 }
11587 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11588 }
11589 }
11590
11591   abuf->written = written;
11592   return vpc;
11593 #undef FLD
11594 }
11595
11596 /* tne: tne$pack $ICCi_2,$GRi,$GRj */
11597
11598 static SEM_PC
11599 SEM_FN_NAME (frvbf,tne) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11600 {
11601 #define FLD(f) abuf->fields.sfmt_teq.f
11602   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11603   int UNUSED written = 0;
11604   IADDR UNUSED pc = abuf->addr;
11605   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11606
11607 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)))) {
11608 {
11609 ; /*clobber*/
11610 ; /*clobber*/
11611 ; /*clobber*/
11612 ; /*clobber*/
11613 if (NEBI (CPU (h_psr_esr), 0)) {
11614 {
11615 ; /*clobber*/
11616 ; /*clobber*/
11617 ; /*clobber*/
11618 ; /*clobber*/
11619 }
11620 }
11621 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11622 }
11623 }
11624
11625   abuf->written = written;
11626   return vpc;
11627 #undef FLD
11628 }
11629
11630 /* tle: tle$pack $ICCi_2,$GRi,$GRj */
11631
11632 static SEM_PC
11633 SEM_FN_NAME (frvbf,tle) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11634 {
11635 #define FLD(f) abuf->fields.sfmt_teq.f
11636   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11637   int UNUSED written = 0;
11638   IADDR UNUSED pc = abuf->addr;
11639   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11640
11641 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))))) {
11642 {
11643 ; /*clobber*/
11644 ; /*clobber*/
11645 ; /*clobber*/
11646 ; /*clobber*/
11647 if (NEBI (CPU (h_psr_esr), 0)) {
11648 {
11649 ; /*clobber*/
11650 ; /*clobber*/
11651 ; /*clobber*/
11652 ; /*clobber*/
11653 }
11654 }
11655 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11656 }
11657 }
11658
11659   abuf->written = written;
11660   return vpc;
11661 #undef FLD
11662 }
11663
11664 /* tgt: tgt$pack $ICCi_2,$GRi,$GRj */
11665
11666 static SEM_PC
11667 SEM_FN_NAME (frvbf,tgt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11668 {
11669 #define FLD(f) abuf->fields.sfmt_teq.f
11670   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11671   int UNUSED written = 0;
11672   IADDR UNUSED pc = abuf->addr;
11673   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11674
11675 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)))))) {
11676 {
11677 ; /*clobber*/
11678 ; /*clobber*/
11679 ; /*clobber*/
11680 ; /*clobber*/
11681 if (NEBI (CPU (h_psr_esr), 0)) {
11682 {
11683 ; /*clobber*/
11684 ; /*clobber*/
11685 ; /*clobber*/
11686 ; /*clobber*/
11687 }
11688 }
11689 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11690 }
11691 }
11692
11693   abuf->written = written;
11694   return vpc;
11695 #undef FLD
11696 }
11697
11698 /* tlt: tlt$pack $ICCi_2,$GRi,$GRj */
11699
11700 static SEM_PC
11701 SEM_FN_NAME (frvbf,tlt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11702 {
11703 #define FLD(f) abuf->fields.sfmt_teq.f
11704   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11705   int UNUSED written = 0;
11706   IADDR UNUSED pc = abuf->addr;
11707   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11708
11709 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)))) {
11710 {
11711 ; /*clobber*/
11712 ; /*clobber*/
11713 ; /*clobber*/
11714 ; /*clobber*/
11715 if (NEBI (CPU (h_psr_esr), 0)) {
11716 {
11717 ; /*clobber*/
11718 ; /*clobber*/
11719 ; /*clobber*/
11720 ; /*clobber*/
11721 }
11722 }
11723 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11724 }
11725 }
11726
11727   abuf->written = written;
11728   return vpc;
11729 #undef FLD
11730 }
11731
11732 /* tge: tge$pack $ICCi_2,$GRi,$GRj */
11733
11734 static SEM_PC
11735 SEM_FN_NAME (frvbf,tge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11736 {
11737 #define FLD(f) abuf->fields.sfmt_teq.f
11738   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11739   int UNUSED written = 0;
11740   IADDR UNUSED pc = abuf->addr;
11741   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11742
11743 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))))) {
11744 {
11745 ; /*clobber*/
11746 ; /*clobber*/
11747 ; /*clobber*/
11748 ; /*clobber*/
11749 if (NEBI (CPU (h_psr_esr), 0)) {
11750 {
11751 ; /*clobber*/
11752 ; /*clobber*/
11753 ; /*clobber*/
11754 ; /*clobber*/
11755 }
11756 }
11757 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11758 }
11759 }
11760
11761   abuf->written = written;
11762   return vpc;
11763 #undef FLD
11764 }
11765
11766 /* tls: tls$pack $ICCi_2,$GRi,$GRj */
11767
11768 static SEM_PC
11769 SEM_FN_NAME (frvbf,tls) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11770 {
11771 #define FLD(f) abuf->fields.sfmt_teq.f
11772   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11773   int UNUSED written = 0;
11774   IADDR UNUSED pc = abuf->addr;
11775   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11776
11777 if (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)))) {
11778 {
11779 ; /*clobber*/
11780 ; /*clobber*/
11781 ; /*clobber*/
11782 ; /*clobber*/
11783 if (NEBI (CPU (h_psr_esr), 0)) {
11784 {
11785 ; /*clobber*/
11786 ; /*clobber*/
11787 ; /*clobber*/
11788 ; /*clobber*/
11789 }
11790 }
11791 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11792 }
11793 }
11794
11795   abuf->written = written;
11796   return vpc;
11797 #undef FLD
11798 }
11799
11800 /* thi: thi$pack $ICCi_2,$GRi,$GRj */
11801
11802 static SEM_PC
11803 SEM_FN_NAME (frvbf,thi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11804 {
11805 #define FLD(f) abuf->fields.sfmt_teq.f
11806   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11807   int UNUSED written = 0;
11808   IADDR UNUSED pc = abuf->addr;
11809   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11810
11811 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))))) {
11812 {
11813 ; /*clobber*/
11814 ; /*clobber*/
11815 ; /*clobber*/
11816 ; /*clobber*/
11817 if (NEBI (CPU (h_psr_esr), 0)) {
11818 {
11819 ; /*clobber*/
11820 ; /*clobber*/
11821 ; /*clobber*/
11822 ; /*clobber*/
11823 }
11824 }
11825 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11826 }
11827 }
11828
11829   abuf->written = written;
11830   return vpc;
11831 #undef FLD
11832 }
11833
11834 /* tc: tc$pack $ICCi_2,$GRi,$GRj */
11835
11836 static SEM_PC
11837 SEM_FN_NAME (frvbf,tc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11838 {
11839 #define FLD(f) abuf->fields.sfmt_teq.f
11840   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11841   int UNUSED written = 0;
11842   IADDR UNUSED pc = abuf->addr;
11843   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11844
11845 if (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1))) {
11846 {
11847 ; /*clobber*/
11848 ; /*clobber*/
11849 ; /*clobber*/
11850 ; /*clobber*/
11851 if (NEBI (CPU (h_psr_esr), 0)) {
11852 {
11853 ; /*clobber*/
11854 ; /*clobber*/
11855 ; /*clobber*/
11856 ; /*clobber*/
11857 }
11858 }
11859 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11860 }
11861 }
11862
11863   abuf->written = written;
11864   return vpc;
11865 #undef FLD
11866 }
11867
11868 /* tnc: tnc$pack $ICCi_2,$GRi,$GRj */
11869
11870 static SEM_PC
11871 SEM_FN_NAME (frvbf,tnc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11872 {
11873 #define FLD(f) abuf->fields.sfmt_teq.f
11874   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11875   int UNUSED written = 0;
11876   IADDR UNUSED pc = abuf->addr;
11877   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11878
11879 if (NOTBI (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)))) {
11880 {
11881 ; /*clobber*/
11882 ; /*clobber*/
11883 ; /*clobber*/
11884 ; /*clobber*/
11885 if (NEBI (CPU (h_psr_esr), 0)) {
11886 {
11887 ; /*clobber*/
11888 ; /*clobber*/
11889 ; /*clobber*/
11890 ; /*clobber*/
11891 }
11892 }
11893 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11894 }
11895 }
11896
11897   abuf->written = written;
11898   return vpc;
11899 #undef FLD
11900 }
11901
11902 /* tn: tn$pack $ICCi_2,$GRi,$GRj */
11903
11904 static SEM_PC
11905 SEM_FN_NAME (frvbf,tn) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11906 {
11907 #define FLD(f) abuf->fields.sfmt_teq.f
11908   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11909   int UNUSED written = 0;
11910   IADDR UNUSED pc = abuf->addr;
11911   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11912
11913 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3))) {
11914 {
11915 ; /*clobber*/
11916 ; /*clobber*/
11917 ; /*clobber*/
11918 ; /*clobber*/
11919 if (NEBI (CPU (h_psr_esr), 0)) {
11920 {
11921 ; /*clobber*/
11922 ; /*clobber*/
11923 ; /*clobber*/
11924 ; /*clobber*/
11925 }
11926 }
11927 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11928 }
11929 }
11930
11931   abuf->written = written;
11932   return vpc;
11933 #undef FLD
11934 }
11935
11936 /* tp: tp$pack $ICCi_2,$GRi,$GRj */
11937
11938 static SEM_PC
11939 SEM_FN_NAME (frvbf,tp) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11940 {
11941 #define FLD(f) abuf->fields.sfmt_teq.f
11942   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11943   int UNUSED written = 0;
11944   IADDR UNUSED pc = abuf->addr;
11945   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11946
11947 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3)))) {
11948 {
11949 ; /*clobber*/
11950 ; /*clobber*/
11951 ; /*clobber*/
11952 ; /*clobber*/
11953 if (NEBI (CPU (h_psr_esr), 0)) {
11954 {
11955 ; /*clobber*/
11956 ; /*clobber*/
11957 ; /*clobber*/
11958 ; /*clobber*/
11959 }
11960 }
11961 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11962 }
11963 }
11964
11965   abuf->written = written;
11966   return vpc;
11967 #undef FLD
11968 }
11969
11970 /* tv: tv$pack $ICCi_2,$GRi,$GRj */
11971
11972 static SEM_PC
11973 SEM_FN_NAME (frvbf,tv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11974 {
11975 #define FLD(f) abuf->fields.sfmt_teq.f
11976   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11977   int UNUSED written = 0;
11978   IADDR UNUSED pc = abuf->addr;
11979   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11980
11981 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1))) {
11982 {
11983 ; /*clobber*/
11984 ; /*clobber*/
11985 ; /*clobber*/
11986 ; /*clobber*/
11987 if (NEBI (CPU (h_psr_esr), 0)) {
11988 {
11989 ; /*clobber*/
11990 ; /*clobber*/
11991 ; /*clobber*/
11992 ; /*clobber*/
11993 }
11994 }
11995 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11996 }
11997 }
11998
11999   abuf->written = written;
12000   return vpc;
12001 #undef FLD
12002 }
12003
12004 /* tnv: tnv$pack $ICCi_2,$GRi,$GRj */
12005
12006 static SEM_PC
12007 SEM_FN_NAME (frvbf,tnv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12008 {
12009 #define FLD(f) abuf->fields.sfmt_teq.f
12010   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12011   int UNUSED written = 0;
12012   IADDR UNUSED pc = abuf->addr;
12013   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12014
12015 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1)))) {
12016 {
12017 ; /*clobber*/
12018 ; /*clobber*/
12019 ; /*clobber*/
12020 ; /*clobber*/
12021 if (NEBI (CPU (h_psr_esr), 0)) {
12022 {
12023 ; /*clobber*/
12024 ; /*clobber*/
12025 ; /*clobber*/
12026 ; /*clobber*/
12027 }
12028 }
12029 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12030 }
12031 }
12032
12033   abuf->written = written;
12034   return vpc;
12035 #undef FLD
12036 }
12037
12038 /* ftra: ftra$pack $GRi,$GRj */
12039
12040 static SEM_PC
12041 SEM_FN_NAME (frvbf,ftra) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12042 {
12043 #define FLD(f) abuf->fields.sfmt_ftne.f
12044   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12045   int UNUSED written = 0;
12046   IADDR UNUSED pc = abuf->addr;
12047   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12048
12049 {
12050 ; /*clobber*/
12051 ; /*clobber*/
12052 ; /*clobber*/
12053 ; /*clobber*/
12054 if (NEBI (CPU (h_psr_esr), 0)) {
12055 {
12056 ; /*clobber*/
12057 ; /*clobber*/
12058 ; /*clobber*/
12059 ; /*clobber*/
12060 }
12061 }
12062 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12063 }
12064
12065   abuf->written = written;
12066   return vpc;
12067 #undef FLD
12068 }
12069
12070 /* ftno: ftno$pack */
12071
12072 static SEM_PC
12073 SEM_FN_NAME (frvbf,ftno) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12074 {
12075 #define FLD(f) abuf->fields.fmt_empty.f
12076   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12077   int UNUSED written = 0;
12078   IADDR UNUSED pc = abuf->addr;
12079   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12080
12081 ((void) 0); /*nop*/
12082
12083   return vpc;
12084 #undef FLD
12085 }
12086
12087 /* ftne: ftne$pack $FCCi_2,$GRi,$GRj */
12088
12089 static SEM_PC
12090 SEM_FN_NAME (frvbf,ftne) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12091 {
12092 #define FLD(f) abuf->fields.sfmt_ftne.f
12093   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12094   int UNUSED written = 0;
12095   IADDR UNUSED pc = abuf->addr;
12096   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12097
12098 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))))) {
12099 {
12100 ; /*clobber*/
12101 ; /*clobber*/
12102 ; /*clobber*/
12103 ; /*clobber*/
12104 if (NEBI (CPU (h_psr_esr), 0)) {
12105 {
12106 ; /*clobber*/
12107 ; /*clobber*/
12108 ; /*clobber*/
12109 ; /*clobber*/
12110 }
12111 }
12112 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12113 }
12114 }
12115
12116   abuf->written = written;
12117   return vpc;
12118 #undef FLD
12119 }
12120
12121 /* fteq: fteq$pack $FCCi_2,$GRi,$GRj */
12122
12123 static SEM_PC
12124 SEM_FN_NAME (frvbf,fteq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12125 {
12126 #define FLD(f) abuf->fields.sfmt_ftne.f
12127   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12128   int UNUSED written = 0;
12129   IADDR UNUSED pc = abuf->addr;
12130   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12131
12132 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3))) {
12133 {
12134 ; /*clobber*/
12135 ; /*clobber*/
12136 ; /*clobber*/
12137 ; /*clobber*/
12138 if (NEBI (CPU (h_psr_esr), 0)) {
12139 {
12140 ; /*clobber*/
12141 ; /*clobber*/
12142 ; /*clobber*/
12143 ; /*clobber*/
12144 }
12145 }
12146 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12147 }
12148 }
12149
12150   abuf->written = written;
12151   return vpc;
12152 #undef FLD
12153 }
12154
12155 /* ftlg: ftlg$pack $FCCi_2,$GRi,$GRj */
12156
12157 static SEM_PC
12158 SEM_FN_NAME (frvbf,ftlg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12159 {
12160 #define FLD(f) abuf->fields.sfmt_ftne.f
12161   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12162   int UNUSED written = 0;
12163   IADDR UNUSED pc = abuf->addr;
12164   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12165
12166 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)))) {
12167 {
12168 ; /*clobber*/
12169 ; /*clobber*/
12170 ; /*clobber*/
12171 ; /*clobber*/
12172 if (NEBI (CPU (h_psr_esr), 0)) {
12173 {
12174 ; /*clobber*/
12175 ; /*clobber*/
12176 ; /*clobber*/
12177 ; /*clobber*/
12178 }
12179 }
12180 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12181 }
12182 }
12183
12184   abuf->written = written;
12185   return vpc;
12186 #undef FLD
12187 }
12188
12189 /* ftue: ftue$pack $FCCi_2,$GRi,$GRj */
12190
12191 static SEM_PC
12192 SEM_FN_NAME (frvbf,ftue) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12193 {
12194 #define FLD(f) abuf->fields.sfmt_ftne.f
12195   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12196   int UNUSED written = 0;
12197   IADDR UNUSED pc = abuf->addr;
12198   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12199
12200 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
12201 {
12202 ; /*clobber*/
12203 ; /*clobber*/
12204 ; /*clobber*/
12205 ; /*clobber*/
12206 if (NEBI (CPU (h_psr_esr), 0)) {
12207 {
12208 ; /*clobber*/
12209 ; /*clobber*/
12210 ; /*clobber*/
12211 ; /*clobber*/
12212 }
12213 }
12214 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12215 }
12216 }
12217
12218   abuf->written = written;
12219   return vpc;
12220 #undef FLD
12221 }
12222
12223 /* ftul: ftul$pack $FCCi_2,$GRi,$GRj */
12224
12225 static SEM_PC
12226 SEM_FN_NAME (frvbf,ftul) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12227 {
12228 #define FLD(f) abuf->fields.sfmt_ftne.f
12229   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12230   int UNUSED written = 0;
12231   IADDR UNUSED pc = abuf->addr;
12232   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12233
12234 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
12235 {
12236 ; /*clobber*/
12237 ; /*clobber*/
12238 ; /*clobber*/
12239 ; /*clobber*/
12240 if (NEBI (CPU (h_psr_esr), 0)) {
12241 {
12242 ; /*clobber*/
12243 ; /*clobber*/
12244 ; /*clobber*/
12245 ; /*clobber*/
12246 }
12247 }
12248 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12249 }
12250 }
12251
12252   abuf->written = written;
12253   return vpc;
12254 #undef FLD
12255 }
12256
12257 /* ftge: ftge$pack $FCCi_2,$GRi,$GRj */
12258
12259 static SEM_PC
12260 SEM_FN_NAME (frvbf,ftge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12261 {
12262 #define FLD(f) abuf->fields.sfmt_ftne.f
12263   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12264   int UNUSED written = 0;
12265   IADDR UNUSED pc = abuf->addr;
12266   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12267
12268 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)))) {
12269 {
12270 ; /*clobber*/
12271 ; /*clobber*/
12272 ; /*clobber*/
12273 ; /*clobber*/
12274 if (NEBI (CPU (h_psr_esr), 0)) {
12275 {
12276 ; /*clobber*/
12277 ; /*clobber*/
12278 ; /*clobber*/
12279 ; /*clobber*/
12280 }
12281 }
12282 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12283 }
12284 }
12285
12286   abuf->written = written;
12287   return vpc;
12288 #undef FLD
12289 }
12290
12291 /* ftlt: ftlt$pack $FCCi_2,$GRi,$GRj */
12292
12293 static SEM_PC
12294 SEM_FN_NAME (frvbf,ftlt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12295 {
12296 #define FLD(f) abuf->fields.sfmt_ftne.f
12297   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12298   int UNUSED written = 0;
12299   IADDR UNUSED pc = abuf->addr;
12300   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12301
12302 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2))) {
12303 {
12304 ; /*clobber*/
12305 ; /*clobber*/
12306 ; /*clobber*/
12307 ; /*clobber*/
12308 if (NEBI (CPU (h_psr_esr), 0)) {
12309 {
12310 ; /*clobber*/
12311 ; /*clobber*/
12312 ; /*clobber*/
12313 ; /*clobber*/
12314 }
12315 }
12316 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12317 }
12318 }
12319
12320   abuf->written = written;
12321   return vpc;
12322 #undef FLD
12323 }
12324
12325 /* ftuge: ftuge$pack $FCCi_2,$GRi,$GRj */
12326
12327 static SEM_PC
12328 SEM_FN_NAME (frvbf,ftuge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12329 {
12330 #define FLD(f) abuf->fields.sfmt_ftne.f
12331   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12332   int UNUSED written = 0;
12333   IADDR UNUSED pc = abuf->addr;
12334   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12335
12336 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))))) {
12337 {
12338 ; /*clobber*/
12339 ; /*clobber*/
12340 ; /*clobber*/
12341 ; /*clobber*/
12342 if (NEBI (CPU (h_psr_esr), 0)) {
12343 {
12344 ; /*clobber*/
12345 ; /*clobber*/
12346 ; /*clobber*/
12347 ; /*clobber*/
12348 }
12349 }
12350 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12351 }
12352 }
12353
12354   abuf->written = written;
12355   return vpc;
12356 #undef FLD
12357 }
12358
12359 /* ftug: ftug$pack $FCCi_2,$GRi,$GRj */
12360
12361 static SEM_PC
12362 SEM_FN_NAME (frvbf,ftug) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12363 {
12364 #define FLD(f) abuf->fields.sfmt_ftne.f
12365   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12366   int UNUSED written = 0;
12367   IADDR UNUSED pc = abuf->addr;
12368   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12369
12370 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
12371 {
12372 ; /*clobber*/
12373 ; /*clobber*/
12374 ; /*clobber*/
12375 ; /*clobber*/
12376 if (NEBI (CPU (h_psr_esr), 0)) {
12377 {
12378 ; /*clobber*/
12379 ; /*clobber*/
12380 ; /*clobber*/
12381 ; /*clobber*/
12382 }
12383 }
12384 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12385 }
12386 }
12387
12388   abuf->written = written;
12389   return vpc;
12390 #undef FLD
12391 }
12392
12393 /* ftle: ftle$pack $FCCi_2,$GRi,$GRj */
12394
12395 static SEM_PC
12396 SEM_FN_NAME (frvbf,ftle) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12397 {
12398 #define FLD(f) abuf->fields.sfmt_ftne.f
12399   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12400   int UNUSED written = 0;
12401   IADDR UNUSED pc = abuf->addr;
12402   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12403
12404 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)))) {
12405 {
12406 ; /*clobber*/
12407 ; /*clobber*/
12408 ; /*clobber*/
12409 ; /*clobber*/
12410 if (NEBI (CPU (h_psr_esr), 0)) {
12411 {
12412 ; /*clobber*/
12413 ; /*clobber*/
12414 ; /*clobber*/
12415 ; /*clobber*/
12416 }
12417 }
12418 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12419 }
12420 }
12421
12422   abuf->written = written;
12423   return vpc;
12424 #undef FLD
12425 }
12426
12427 /* ftgt: ftgt$pack $FCCi_2,$GRi,$GRj */
12428
12429 static SEM_PC
12430 SEM_FN_NAME (frvbf,ftgt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12431 {
12432 #define FLD(f) abuf->fields.sfmt_ftne.f
12433   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12434   int UNUSED written = 0;
12435   IADDR UNUSED pc = abuf->addr;
12436   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12437
12438 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1))) {
12439 {
12440 ; /*clobber*/
12441 ; /*clobber*/
12442 ; /*clobber*/
12443 ; /*clobber*/
12444 if (NEBI (CPU (h_psr_esr), 0)) {
12445 {
12446 ; /*clobber*/
12447 ; /*clobber*/
12448 ; /*clobber*/
12449 ; /*clobber*/
12450 }
12451 }
12452 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12453 }
12454 }
12455
12456   abuf->written = written;
12457   return vpc;
12458 #undef FLD
12459 }
12460
12461 /* ftule: ftule$pack $FCCi_2,$GRi,$GRj */
12462
12463 static SEM_PC
12464 SEM_FN_NAME (frvbf,ftule) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12465 {
12466 #define FLD(f) abuf->fields.sfmt_ftne.f
12467   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12468   int UNUSED written = 0;
12469   IADDR UNUSED pc = abuf->addr;
12470   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12471
12472 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))))) {
12473 {
12474 ; /*clobber*/
12475 ; /*clobber*/
12476 ; /*clobber*/
12477 ; /*clobber*/
12478 if (NEBI (CPU (h_psr_esr), 0)) {
12479 {
12480 ; /*clobber*/
12481 ; /*clobber*/
12482 ; /*clobber*/
12483 ; /*clobber*/
12484 }
12485 }
12486 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12487 }
12488 }
12489
12490   abuf->written = written;
12491   return vpc;
12492 #undef FLD
12493 }
12494
12495 /* ftu: ftu$pack $FCCi_2,$GRi,$GRj */
12496
12497 static SEM_PC
12498 SEM_FN_NAME (frvbf,ftu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12499 {
12500 #define FLD(f) abuf->fields.sfmt_ftne.f
12501   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12502   int UNUSED written = 0;
12503   IADDR UNUSED pc = abuf->addr;
12504   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12505
12506 if (TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1))) {
12507 {
12508 ; /*clobber*/
12509 ; /*clobber*/
12510 ; /*clobber*/
12511 ; /*clobber*/
12512 if (NEBI (CPU (h_psr_esr), 0)) {
12513 {
12514 ; /*clobber*/
12515 ; /*clobber*/
12516 ; /*clobber*/
12517 ; /*clobber*/
12518 }
12519 }
12520 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12521 }
12522 }
12523
12524   abuf->written = written;
12525   return vpc;
12526 #undef FLD
12527 }
12528
12529 /* fto: fto$pack $FCCi_2,$GRi,$GRj */
12530
12531 static SEM_PC
12532 SEM_FN_NAME (frvbf,fto) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12533 {
12534 #define FLD(f) abuf->fields.sfmt_ftne.f
12535   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12536   int UNUSED written = 0;
12537   IADDR UNUSED pc = abuf->addr;
12538   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12539
12540 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))))) {
12541 {
12542 ; /*clobber*/
12543 ; /*clobber*/
12544 ; /*clobber*/
12545 ; /*clobber*/
12546 if (NEBI (CPU (h_psr_esr), 0)) {
12547 {
12548 ; /*clobber*/
12549 ; /*clobber*/
12550 ; /*clobber*/
12551 ; /*clobber*/
12552 }
12553 }
12554 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12555 }
12556 }
12557
12558   abuf->written = written;
12559   return vpc;
12560 #undef FLD
12561 }
12562
12563 /* tira: tira$pack $GRi,$s12 */
12564
12565 static SEM_PC
12566 SEM_FN_NAME (frvbf,tira) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12567 {
12568 #define FLD(f) abuf->fields.sfmt_ftine.f
12569   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12570   int UNUSED written = 0;
12571   IADDR UNUSED pc = abuf->addr;
12572   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12573
12574 {
12575 ; /*clobber*/
12576 ; /*clobber*/
12577 ; /*clobber*/
12578 ; /*clobber*/
12579 if (NEBI (CPU (h_psr_esr), 0)) {
12580 {
12581 ; /*clobber*/
12582 ; /*clobber*/
12583 ; /*clobber*/
12584 ; /*clobber*/
12585 }
12586 }
12587 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12588 }
12589
12590   abuf->written = written;
12591   return vpc;
12592 #undef FLD
12593 }
12594
12595 /* tino: tino$pack */
12596
12597 static SEM_PC
12598 SEM_FN_NAME (frvbf,tino) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12599 {
12600 #define FLD(f) abuf->fields.fmt_empty.f
12601   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12602   int UNUSED written = 0;
12603   IADDR UNUSED pc = abuf->addr;
12604   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12605
12606 ((void) 0); /*nop*/
12607
12608   return vpc;
12609 #undef FLD
12610 }
12611
12612 /* tieq: tieq$pack $ICCi_2,$GRi,$s12 */
12613
12614 static SEM_PC
12615 SEM_FN_NAME (frvbf,tieq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12616 {
12617 #define FLD(f) abuf->fields.sfmt_tieq.f
12618   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12619   int UNUSED written = 0;
12620   IADDR UNUSED pc = abuf->addr;
12621   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12622
12623 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2))) {
12624 {
12625 ; /*clobber*/
12626 ; /*clobber*/
12627 ; /*clobber*/
12628 ; /*clobber*/
12629 if (NEBI (CPU (h_psr_esr), 0)) {
12630 {
12631 ; /*clobber*/
12632 ; /*clobber*/
12633 ; /*clobber*/
12634 ; /*clobber*/
12635 }
12636 }
12637 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12638 }
12639 }
12640
12641   abuf->written = written;
12642   return vpc;
12643 #undef FLD
12644 }
12645
12646 /* tine: tine$pack $ICCi_2,$GRi,$s12 */
12647
12648 static SEM_PC
12649 SEM_FN_NAME (frvbf,tine) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12650 {
12651 #define FLD(f) abuf->fields.sfmt_tieq.f
12652   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12653   int UNUSED written = 0;
12654   IADDR UNUSED pc = abuf->addr;
12655   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12656
12657 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)))) {
12658 {
12659 ; /*clobber*/
12660 ; /*clobber*/
12661 ; /*clobber*/
12662 ; /*clobber*/
12663 if (NEBI (CPU (h_psr_esr), 0)) {
12664 {
12665 ; /*clobber*/
12666 ; /*clobber*/
12667 ; /*clobber*/
12668 ; /*clobber*/
12669 }
12670 }
12671 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12672 }
12673 }
12674
12675   abuf->written = written;
12676   return vpc;
12677 #undef FLD
12678 }
12679
12680 /* tile: tile$pack $ICCi_2,$GRi,$s12 */
12681
12682 static SEM_PC
12683 SEM_FN_NAME (frvbf,tile) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12684 {
12685 #define FLD(f) abuf->fields.sfmt_tieq.f
12686   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12687   int UNUSED written = 0;
12688   IADDR UNUSED pc = abuf->addr;
12689   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12690
12691 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))))) {
12692 {
12693 ; /*clobber*/
12694 ; /*clobber*/
12695 ; /*clobber*/
12696 ; /*clobber*/
12697 if (NEBI (CPU (h_psr_esr), 0)) {
12698 {
12699 ; /*clobber*/
12700 ; /*clobber*/
12701 ; /*clobber*/
12702 ; /*clobber*/
12703 }
12704 }
12705 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12706 }
12707 }
12708
12709   abuf->written = written;
12710   return vpc;
12711 #undef FLD
12712 }
12713
12714 /* tigt: tigt$pack $ICCi_2,$GRi,$s12 */
12715
12716 static SEM_PC
12717 SEM_FN_NAME (frvbf,tigt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12718 {
12719 #define FLD(f) abuf->fields.sfmt_tieq.f
12720   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12721   int UNUSED written = 0;
12722   IADDR UNUSED pc = abuf->addr;
12723   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12724
12725 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)))))) {
12726 {
12727 ; /*clobber*/
12728 ; /*clobber*/
12729 ; /*clobber*/
12730 ; /*clobber*/
12731 if (NEBI (CPU (h_psr_esr), 0)) {
12732 {
12733 ; /*clobber*/
12734 ; /*clobber*/
12735 ; /*clobber*/
12736 ; /*clobber*/
12737 }
12738 }
12739 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12740 }
12741 }
12742
12743   abuf->written = written;
12744   return vpc;
12745 #undef FLD
12746 }
12747
12748 /* tilt: tilt$pack $ICCi_2,$GRi,$s12 */
12749
12750 static SEM_PC
12751 SEM_FN_NAME (frvbf,tilt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12752 {
12753 #define FLD(f) abuf->fields.sfmt_tieq.f
12754   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12755   int UNUSED written = 0;
12756   IADDR UNUSED pc = abuf->addr;
12757   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12758
12759 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)))) {
12760 {
12761 ; /*clobber*/
12762 ; /*clobber*/
12763 ; /*clobber*/
12764 ; /*clobber*/
12765 if (NEBI (CPU (h_psr_esr), 0)) {
12766 {
12767 ; /*clobber*/
12768 ; /*clobber*/
12769 ; /*clobber*/
12770 ; /*clobber*/
12771 }
12772 }
12773 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12774 }
12775 }
12776
12777   abuf->written = written;
12778   return vpc;
12779 #undef FLD
12780 }
12781
12782 /* tige: tige$pack $ICCi_2,$GRi,$s12 */
12783
12784 static SEM_PC
12785 SEM_FN_NAME (frvbf,tige) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12786 {
12787 #define FLD(f) abuf->fields.sfmt_tieq.f
12788   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12789   int UNUSED written = 0;
12790   IADDR UNUSED pc = abuf->addr;
12791   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12792
12793 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))))) {
12794 {
12795 ; /*clobber*/
12796 ; /*clobber*/
12797 ; /*clobber*/
12798 ; /*clobber*/
12799 if (NEBI (CPU (h_psr_esr), 0)) {
12800 {
12801 ; /*clobber*/
12802 ; /*clobber*/
12803 ; /*clobber*/
12804 ; /*clobber*/
12805 }
12806 }
12807 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12808 }
12809 }
12810
12811   abuf->written = written;
12812   return vpc;
12813 #undef FLD
12814 }
12815
12816 /* tils: tils$pack $ICCi_2,$GRi,$s12 */
12817
12818 static SEM_PC
12819 SEM_FN_NAME (frvbf,tils) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12820 {
12821 #define FLD(f) abuf->fields.sfmt_tieq.f
12822   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12823   int UNUSED written = 0;
12824   IADDR UNUSED pc = abuf->addr;
12825   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12826
12827 if (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)))) {
12828 {
12829 ; /*clobber*/
12830 ; /*clobber*/
12831 ; /*clobber*/
12832 ; /*clobber*/
12833 if (NEBI (CPU (h_psr_esr), 0)) {
12834 {
12835 ; /*clobber*/
12836 ; /*clobber*/
12837 ; /*clobber*/
12838 ; /*clobber*/
12839 }
12840 }
12841 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12842 }
12843 }
12844
12845   abuf->written = written;
12846   return vpc;
12847 #undef FLD
12848 }
12849
12850 /* tihi: tihi$pack $ICCi_2,$GRi,$s12 */
12851
12852 static SEM_PC
12853 SEM_FN_NAME (frvbf,tihi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12854 {
12855 #define FLD(f) abuf->fields.sfmt_tieq.f
12856   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12857   int UNUSED written = 0;
12858   IADDR UNUSED pc = abuf->addr;
12859   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12860
12861 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))))) {
12862 {
12863 ; /*clobber*/
12864 ; /*clobber*/
12865 ; /*clobber*/
12866 ; /*clobber*/
12867 if (NEBI (CPU (h_psr_esr), 0)) {
12868 {
12869 ; /*clobber*/
12870 ; /*clobber*/
12871 ; /*clobber*/
12872 ; /*clobber*/
12873 }
12874 }
12875 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12876 }
12877 }
12878
12879   abuf->written = written;
12880   return vpc;
12881 #undef FLD
12882 }
12883
12884 /* tic: tic$pack $ICCi_2,$GRi,$s12 */
12885
12886 static SEM_PC
12887 SEM_FN_NAME (frvbf,tic) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12888 {
12889 #define FLD(f) abuf->fields.sfmt_tieq.f
12890   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12891   int UNUSED written = 0;
12892   IADDR UNUSED pc = abuf->addr;
12893   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12894
12895 if (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1))) {
12896 {
12897 ; /*clobber*/
12898 ; /*clobber*/
12899 ; /*clobber*/
12900 ; /*clobber*/
12901 if (NEBI (CPU (h_psr_esr), 0)) {
12902 {
12903 ; /*clobber*/
12904 ; /*clobber*/
12905 ; /*clobber*/
12906 ; /*clobber*/
12907 }
12908 }
12909 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12910 }
12911 }
12912
12913   abuf->written = written;
12914   return vpc;
12915 #undef FLD
12916 }
12917
12918 /* tinc: tinc$pack $ICCi_2,$GRi,$s12 */
12919
12920 static SEM_PC
12921 SEM_FN_NAME (frvbf,tinc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12922 {
12923 #define FLD(f) abuf->fields.sfmt_tieq.f
12924   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12925   int UNUSED written = 0;
12926   IADDR UNUSED pc = abuf->addr;
12927   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12928
12929 if (NOTBI (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)))) {
12930 {
12931 ; /*clobber*/
12932 ; /*clobber*/
12933 ; /*clobber*/
12934 ; /*clobber*/
12935 if (NEBI (CPU (h_psr_esr), 0)) {
12936 {
12937 ; /*clobber*/
12938 ; /*clobber*/
12939 ; /*clobber*/
12940 ; /*clobber*/
12941 }
12942 }
12943 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12944 }
12945 }
12946
12947   abuf->written = written;
12948   return vpc;
12949 #undef FLD
12950 }
12951
12952 /* tin: tin$pack $ICCi_2,$GRi,$s12 */
12953
12954 static SEM_PC
12955 SEM_FN_NAME (frvbf,tin) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12956 {
12957 #define FLD(f) abuf->fields.sfmt_tieq.f
12958   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12959   int UNUSED written = 0;
12960   IADDR UNUSED pc = abuf->addr;
12961   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12962
12963 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3))) {
12964 {
12965 ; /*clobber*/
12966 ; /*clobber*/
12967 ; /*clobber*/
12968 ; /*clobber*/
12969 if (NEBI (CPU (h_psr_esr), 0)) {
12970 {
12971 ; /*clobber*/
12972 ; /*clobber*/
12973 ; /*clobber*/
12974 ; /*clobber*/
12975 }
12976 }
12977 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12978 }
12979 }
12980
12981   abuf->written = written;
12982   return vpc;
12983 #undef FLD
12984 }
12985
12986 /* tip: tip$pack $ICCi_2,$GRi,$s12 */
12987
12988 static SEM_PC
12989 SEM_FN_NAME (frvbf,tip) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12990 {
12991 #define FLD(f) abuf->fields.sfmt_tieq.f
12992   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12993   int UNUSED written = 0;
12994   IADDR UNUSED pc = abuf->addr;
12995   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12996
12997 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3)))) {
12998 {
12999 ; /*clobber*/
13000 ; /*clobber*/
13001 ; /*clobber*/
13002 ; /*clobber*/
13003 if (NEBI (CPU (h_psr_esr), 0)) {
13004 {
13005 ; /*clobber*/
13006 ; /*clobber*/
13007 ; /*clobber*/
13008 ; /*clobber*/
13009 }
13010 }
13011 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13012 }
13013 }
13014
13015   abuf->written = written;
13016   return vpc;
13017 #undef FLD
13018 }
13019
13020 /* tiv: tiv$pack $ICCi_2,$GRi,$s12 */
13021
13022 static SEM_PC
13023 SEM_FN_NAME (frvbf,tiv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13024 {
13025 #define FLD(f) abuf->fields.sfmt_tieq.f
13026   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13027   int UNUSED written = 0;
13028   IADDR UNUSED pc = abuf->addr;
13029   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13030
13031 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1))) {
13032 {
13033 ; /*clobber*/
13034 ; /*clobber*/
13035 ; /*clobber*/
13036 ; /*clobber*/
13037 if (NEBI (CPU (h_psr_esr), 0)) {
13038 {
13039 ; /*clobber*/
13040 ; /*clobber*/
13041 ; /*clobber*/
13042 ; /*clobber*/
13043 }
13044 }
13045 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13046 }
13047 }
13048
13049   abuf->written = written;
13050   return vpc;
13051 #undef FLD
13052 }
13053
13054 /* tinv: tinv$pack $ICCi_2,$GRi,$s12 */
13055
13056 static SEM_PC
13057 SEM_FN_NAME (frvbf,tinv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13058 {
13059 #define FLD(f) abuf->fields.sfmt_tieq.f
13060   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13061   int UNUSED written = 0;
13062   IADDR UNUSED pc = abuf->addr;
13063   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13064
13065 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1)))) {
13066 {
13067 ; /*clobber*/
13068 ; /*clobber*/
13069 ; /*clobber*/
13070 ; /*clobber*/
13071 if (NEBI (CPU (h_psr_esr), 0)) {
13072 {
13073 ; /*clobber*/
13074 ; /*clobber*/
13075 ; /*clobber*/
13076 ; /*clobber*/
13077 }
13078 }
13079 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13080 }
13081 }
13082
13083   abuf->written = written;
13084   return vpc;
13085 #undef FLD
13086 }
13087
13088 /* ftira: ftira$pack $GRi,$s12 */
13089
13090 static SEM_PC
13091 SEM_FN_NAME (frvbf,ftira) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13092 {
13093 #define FLD(f) abuf->fields.sfmt_ftine.f
13094   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13095   int UNUSED written = 0;
13096   IADDR UNUSED pc = abuf->addr;
13097   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13098
13099 {
13100 ; /*clobber*/
13101 ; /*clobber*/
13102 ; /*clobber*/
13103 ; /*clobber*/
13104 if (NEBI (CPU (h_psr_esr), 0)) {
13105 {
13106 ; /*clobber*/
13107 ; /*clobber*/
13108 ; /*clobber*/
13109 ; /*clobber*/
13110 }
13111 }
13112 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13113 }
13114
13115   abuf->written = written;
13116   return vpc;
13117 #undef FLD
13118 }
13119
13120 /* ftino: ftino$pack */
13121
13122 static SEM_PC
13123 SEM_FN_NAME (frvbf,ftino) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13124 {
13125 #define FLD(f) abuf->fields.fmt_empty.f
13126   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13127   int UNUSED written = 0;
13128   IADDR UNUSED pc = abuf->addr;
13129   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13130
13131 ((void) 0); /*nop*/
13132
13133   return vpc;
13134 #undef FLD
13135 }
13136
13137 /* ftine: ftine$pack $FCCi_2,$GRi,$s12 */
13138
13139 static SEM_PC
13140 SEM_FN_NAME (frvbf,ftine) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13141 {
13142 #define FLD(f) abuf->fields.sfmt_ftine.f
13143   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13144   int UNUSED written = 0;
13145   IADDR UNUSED pc = abuf->addr;
13146   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13147
13148 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))))) {
13149 {
13150 ; /*clobber*/
13151 ; /*clobber*/
13152 ; /*clobber*/
13153 ; /*clobber*/
13154 if (NEBI (CPU (h_psr_esr), 0)) {
13155 {
13156 ; /*clobber*/
13157 ; /*clobber*/
13158 ; /*clobber*/
13159 ; /*clobber*/
13160 }
13161 }
13162 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13163 }
13164 }
13165
13166   abuf->written = written;
13167   return vpc;
13168 #undef FLD
13169 }
13170
13171 /* ftieq: ftieq$pack $FCCi_2,$GRi,$s12 */
13172
13173 static SEM_PC
13174 SEM_FN_NAME (frvbf,ftieq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13175 {
13176 #define FLD(f) abuf->fields.sfmt_ftine.f
13177   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13178   int UNUSED written = 0;
13179   IADDR UNUSED pc = abuf->addr;
13180   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13181
13182 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3))) {
13183 {
13184 ; /*clobber*/
13185 ; /*clobber*/
13186 ; /*clobber*/
13187 ; /*clobber*/
13188 if (NEBI (CPU (h_psr_esr), 0)) {
13189 {
13190 ; /*clobber*/
13191 ; /*clobber*/
13192 ; /*clobber*/
13193 ; /*clobber*/
13194 }
13195 }
13196 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13197 }
13198 }
13199
13200   abuf->written = written;
13201   return vpc;
13202 #undef FLD
13203 }
13204
13205 /* ftilg: ftilg$pack $FCCi_2,$GRi,$s12 */
13206
13207 static SEM_PC
13208 SEM_FN_NAME (frvbf,ftilg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13209 {
13210 #define FLD(f) abuf->fields.sfmt_ftine.f
13211   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13212   int UNUSED written = 0;
13213   IADDR UNUSED pc = abuf->addr;
13214   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13215
13216 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)))) {
13217 {
13218 ; /*clobber*/
13219 ; /*clobber*/
13220 ; /*clobber*/
13221 ; /*clobber*/
13222 if (NEBI (CPU (h_psr_esr), 0)) {
13223 {
13224 ; /*clobber*/
13225 ; /*clobber*/
13226 ; /*clobber*/
13227 ; /*clobber*/
13228 }
13229 }
13230 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13231 }
13232 }
13233
13234   abuf->written = written;
13235   return vpc;
13236 #undef FLD
13237 }
13238
13239 /* ftiue: ftiue$pack $FCCi_2,$GRi,$s12 */
13240
13241 static SEM_PC
13242 SEM_FN_NAME (frvbf,ftiue) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13243 {
13244 #define FLD(f) abuf->fields.sfmt_ftine.f
13245   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13246   int UNUSED written = 0;
13247   IADDR UNUSED pc = abuf->addr;
13248   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13249
13250 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
13251 {
13252 ; /*clobber*/
13253 ; /*clobber*/
13254 ; /*clobber*/
13255 ; /*clobber*/
13256 if (NEBI (CPU (h_psr_esr), 0)) {
13257 {
13258 ; /*clobber*/
13259 ; /*clobber*/
13260 ; /*clobber*/
13261 ; /*clobber*/
13262 }
13263 }
13264 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13265 }
13266 }
13267
13268   abuf->written = written;
13269   return vpc;
13270 #undef FLD
13271 }
13272
13273 /* ftiul: ftiul$pack $FCCi_2,$GRi,$s12 */
13274
13275 static SEM_PC
13276 SEM_FN_NAME (frvbf,ftiul) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13277 {
13278 #define FLD(f) abuf->fields.sfmt_ftine.f
13279   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13280   int UNUSED written = 0;
13281   IADDR UNUSED pc = abuf->addr;
13282   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13283
13284 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
13285 {
13286 ; /*clobber*/
13287 ; /*clobber*/
13288 ; /*clobber*/
13289 ; /*clobber*/
13290 if (NEBI (CPU (h_psr_esr), 0)) {
13291 {
13292 ; /*clobber*/
13293 ; /*clobber*/
13294 ; /*clobber*/
13295 ; /*clobber*/
13296 }
13297 }
13298 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13299 }
13300 }
13301
13302   abuf->written = written;
13303   return vpc;
13304 #undef FLD
13305 }
13306
13307 /* ftige: ftige$pack $FCCi_2,$GRi,$s12 */
13308
13309 static SEM_PC
13310 SEM_FN_NAME (frvbf,ftige) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13311 {
13312 #define FLD(f) abuf->fields.sfmt_ftine.f
13313   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13314   int UNUSED written = 0;
13315   IADDR UNUSED pc = abuf->addr;
13316   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13317
13318 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)))) {
13319 {
13320 ; /*clobber*/
13321 ; /*clobber*/
13322 ; /*clobber*/
13323 ; /*clobber*/
13324 if (NEBI (CPU (h_psr_esr), 0)) {
13325 {
13326 ; /*clobber*/
13327 ; /*clobber*/
13328 ; /*clobber*/
13329 ; /*clobber*/
13330 }
13331 }
13332 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13333 }
13334 }
13335
13336   abuf->written = written;
13337   return vpc;
13338 #undef FLD
13339 }
13340
13341 /* ftilt: ftilt$pack $FCCi_2,$GRi,$s12 */
13342
13343 static SEM_PC
13344 SEM_FN_NAME (frvbf,ftilt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13345 {
13346 #define FLD(f) abuf->fields.sfmt_ftine.f
13347   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13348   int UNUSED written = 0;
13349   IADDR UNUSED pc = abuf->addr;
13350   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13351
13352 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2))) {
13353 {
13354 ; /*clobber*/
13355 ; /*clobber*/
13356 ; /*clobber*/
13357 ; /*clobber*/
13358 if (NEBI (CPU (h_psr_esr), 0)) {
13359 {
13360 ; /*clobber*/
13361 ; /*clobber*/
13362 ; /*clobber*/
13363 ; /*clobber*/
13364 }
13365 }
13366 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13367 }
13368 }
13369
13370   abuf->written = written;
13371   return vpc;
13372 #undef FLD
13373 }
13374
13375 /* ftiuge: ftiuge$pack $FCCi_2,$GRi,$s12 */
13376
13377 static SEM_PC
13378 SEM_FN_NAME (frvbf,ftiuge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13379 {
13380 #define FLD(f) abuf->fields.sfmt_ftine.f
13381   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13382   int UNUSED written = 0;
13383   IADDR UNUSED pc = abuf->addr;
13384   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13385
13386 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))))) {
13387 {
13388 ; /*clobber*/
13389 ; /*clobber*/
13390 ; /*clobber*/
13391 ; /*clobber*/
13392 if (NEBI (CPU (h_psr_esr), 0)) {
13393 {
13394 ; /*clobber*/
13395 ; /*clobber*/
13396 ; /*clobber*/
13397 ; /*clobber*/
13398 }
13399 }
13400 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13401 }
13402 }
13403
13404   abuf->written = written;
13405   return vpc;
13406 #undef FLD
13407 }
13408
13409 /* ftiug: ftiug$pack $FCCi_2,$GRi,$s12 */
13410
13411 static SEM_PC
13412 SEM_FN_NAME (frvbf,ftiug) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13413 {
13414 #define FLD(f) abuf->fields.sfmt_ftine.f
13415   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13416   int UNUSED written = 0;
13417   IADDR UNUSED pc = abuf->addr;
13418   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13419
13420 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
13421 {
13422 ; /*clobber*/
13423 ; /*clobber*/
13424 ; /*clobber*/
13425 ; /*clobber*/
13426 if (NEBI (CPU (h_psr_esr), 0)) {
13427 {
13428 ; /*clobber*/
13429 ; /*clobber*/
13430 ; /*clobber*/
13431 ; /*clobber*/
13432 }
13433 }
13434 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13435 }
13436 }
13437
13438   abuf->written = written;
13439   return vpc;
13440 #undef FLD
13441 }
13442
13443 /* ftile: ftile$pack $FCCi_2,$GRi,$s12 */
13444
13445 static SEM_PC
13446 SEM_FN_NAME (frvbf,ftile) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13447 {
13448 #define FLD(f) abuf->fields.sfmt_ftine.f
13449   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13450   int UNUSED written = 0;
13451   IADDR UNUSED pc = abuf->addr;
13452   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13453
13454 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)))) {
13455 {
13456 ; /*clobber*/
13457 ; /*clobber*/
13458 ; /*clobber*/
13459 ; /*clobber*/
13460 if (NEBI (CPU (h_psr_esr), 0)) {
13461 {
13462 ; /*clobber*/
13463 ; /*clobber*/
13464 ; /*clobber*/
13465 ; /*clobber*/
13466 }
13467 }
13468 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13469 }
13470 }
13471
13472   abuf->written = written;
13473   return vpc;
13474 #undef FLD
13475 }
13476
13477 /* ftigt: ftigt$pack $FCCi_2,$GRi,$s12 */
13478
13479 static SEM_PC
13480 SEM_FN_NAME (frvbf,ftigt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13481 {
13482 #define FLD(f) abuf->fields.sfmt_ftine.f
13483   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13484   int UNUSED written = 0;
13485   IADDR UNUSED pc = abuf->addr;
13486   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13487
13488 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1))) {
13489 {
13490 ; /*clobber*/
13491 ; /*clobber*/
13492 ; /*clobber*/
13493 ; /*clobber*/
13494 if (NEBI (CPU (h_psr_esr), 0)) {
13495 {
13496 ; /*clobber*/
13497 ; /*clobber*/
13498 ; /*clobber*/
13499 ; /*clobber*/
13500 }
13501 }
13502 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13503 }
13504 }
13505
13506   abuf->written = written;
13507   return vpc;
13508 #undef FLD
13509 }
13510
13511 /* ftiule: ftiule$pack $FCCi_2,$GRi,$s12 */
13512
13513 static SEM_PC
13514 SEM_FN_NAME (frvbf,ftiule) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13515 {
13516 #define FLD(f) abuf->fields.sfmt_ftine.f
13517   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13518   int UNUSED written = 0;
13519   IADDR UNUSED pc = abuf->addr;
13520   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13521
13522 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))))) {
13523 {
13524 ; /*clobber*/
13525 ; /*clobber*/
13526 ; /*clobber*/
13527 ; /*clobber*/
13528 if (NEBI (CPU (h_psr_esr), 0)) {
13529 {
13530 ; /*clobber*/
13531 ; /*clobber*/
13532 ; /*clobber*/
13533 ; /*clobber*/
13534 }
13535 }
13536 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13537 }
13538 }
13539
13540   abuf->written = written;
13541   return vpc;
13542 #undef FLD
13543 }
13544
13545 /* ftiu: ftiu$pack $FCCi_2,$GRi,$s12 */
13546
13547 static SEM_PC
13548 SEM_FN_NAME (frvbf,ftiu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13549 {
13550 #define FLD(f) abuf->fields.sfmt_ftine.f
13551   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13552   int UNUSED written = 0;
13553   IADDR UNUSED pc = abuf->addr;
13554   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13555
13556 if (TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1))) {
13557 {
13558 ; /*clobber*/
13559 ; /*clobber*/
13560 ; /*clobber*/
13561 ; /*clobber*/
13562 if (NEBI (CPU (h_psr_esr), 0)) {
13563 {
13564 ; /*clobber*/
13565 ; /*clobber*/
13566 ; /*clobber*/
13567 ; /*clobber*/
13568 }
13569 }
13570 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13571 }
13572 }
13573
13574   abuf->written = written;
13575   return vpc;
13576 #undef FLD
13577 }
13578
13579 /* ftio: ftio$pack $FCCi_2,$GRi,$s12 */
13580
13581 static SEM_PC
13582 SEM_FN_NAME (frvbf,ftio) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13583 {
13584 #define FLD(f) abuf->fields.sfmt_ftine.f
13585   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13586   int UNUSED written = 0;
13587   IADDR UNUSED pc = abuf->addr;
13588   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13589
13590 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))))) {
13591 {
13592 ; /*clobber*/
13593 ; /*clobber*/
13594 ; /*clobber*/
13595 ; /*clobber*/
13596 if (NEBI (CPU (h_psr_esr), 0)) {
13597 {
13598 ; /*clobber*/
13599 ; /*clobber*/
13600 ; /*clobber*/
13601 ; /*clobber*/
13602 }
13603 }
13604 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13605 }
13606 }
13607
13608   abuf->written = written;
13609   return vpc;
13610 #undef FLD
13611 }
13612
13613 /* break: break$pack */
13614
13615 static SEM_PC
13616 SEM_FN_NAME (frvbf,break) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13617 {
13618 #define FLD(f) abuf->fields.sfmt_break.f
13619   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13620   int UNUSED written = 0;
13621   IADDR UNUSED pc = abuf->addr;
13622   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13623
13624 {
13625 ; /*clobber*/
13626 ; /*clobber*/
13627 ; /*clobber*/
13628 ; /*clobber*/
13629 ; /*clobber*/
13630 ; /*clobber*/
13631 frv_break (current_cpu);
13632 }
13633
13634   return vpc;
13635 #undef FLD
13636 }
13637
13638 /* mtrap: mtrap$pack */
13639
13640 static SEM_PC
13641 SEM_FN_NAME (frvbf,mtrap) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13642 {
13643 #define FLD(f) abuf->fields.fmt_empty.f
13644   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13645   int UNUSED written = 0;
13646   IADDR UNUSED pc = abuf->addr;
13647   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13648
13649 frv_mtrap (current_cpu);
13650
13651   return vpc;
13652 #undef FLD
13653 }
13654
13655 /* andcr: andcr$pack $CRi,$CRj,$CRk */
13656
13657 static SEM_PC
13658 SEM_FN_NAME (frvbf,andcr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13659 {
13660 #define FLD(f) abuf->fields.sfmt_andcr.f
13661   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13662   int UNUSED written = 0;
13663   IADDR UNUSED pc = abuf->addr;
13664   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13665
13666   {
13667     UQI opval = frvbf_cr_logic (current_cpu, 0, CPU (h_cccr[FLD (f_CRi)]), CPU (h_cccr[FLD (f_CRj)]));
13668     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRk)]), opval);
13669     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13670   }
13671
13672   return vpc;
13673 #undef FLD
13674 }
13675
13676 /* orcr: orcr$pack $CRi,$CRj,$CRk */
13677
13678 static SEM_PC
13679 SEM_FN_NAME (frvbf,orcr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13680 {
13681 #define FLD(f) abuf->fields.sfmt_andcr.f
13682   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13683   int UNUSED written = 0;
13684   IADDR UNUSED pc = abuf->addr;
13685   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13686
13687   {
13688     UQI opval = frvbf_cr_logic (current_cpu, 1, CPU (h_cccr[FLD (f_CRi)]), CPU (h_cccr[FLD (f_CRj)]));
13689     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRk)]), opval);
13690     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13691   }
13692
13693   return vpc;
13694 #undef FLD
13695 }
13696
13697 /* xorcr: xorcr$pack $CRi,$CRj,$CRk */
13698
13699 static SEM_PC
13700 SEM_FN_NAME (frvbf,xorcr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13701 {
13702 #define FLD(f) abuf->fields.sfmt_andcr.f
13703   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13704   int UNUSED written = 0;
13705   IADDR UNUSED pc = abuf->addr;
13706   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13707
13708   {
13709     UQI opval = frvbf_cr_logic (current_cpu, 2, CPU (h_cccr[FLD (f_CRi)]), CPU (h_cccr[FLD (f_CRj)]));
13710     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRk)]), opval);
13711     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13712   }
13713
13714   return vpc;
13715 #undef FLD
13716 }
13717
13718 /* nandcr: nandcr$pack $CRi,$CRj,$CRk */
13719
13720 static SEM_PC
13721 SEM_FN_NAME (frvbf,nandcr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13722 {
13723 #define FLD(f) abuf->fields.sfmt_andcr.f
13724   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13725   int UNUSED written = 0;
13726   IADDR UNUSED pc = abuf->addr;
13727   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13728
13729   {
13730     UQI opval = frvbf_cr_logic (current_cpu, 3, CPU (h_cccr[FLD (f_CRi)]), CPU (h_cccr[FLD (f_CRj)]));
13731     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRk)]), opval);
13732     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13733   }
13734
13735   return vpc;
13736 #undef FLD
13737 }
13738
13739 /* norcr: norcr$pack $CRi,$CRj,$CRk */
13740
13741 static SEM_PC
13742 SEM_FN_NAME (frvbf,norcr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13743 {
13744 #define FLD(f) abuf->fields.sfmt_andcr.f
13745   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13746   int UNUSED written = 0;
13747   IADDR UNUSED pc = abuf->addr;
13748   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13749
13750   {
13751     UQI opval = frvbf_cr_logic (current_cpu, 4, CPU (h_cccr[FLD (f_CRi)]), CPU (h_cccr[FLD (f_CRj)]));
13752     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRk)]), opval);
13753     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13754   }
13755
13756   return vpc;
13757 #undef FLD
13758 }
13759
13760 /* andncr: andncr$pack $CRi,$CRj,$CRk */
13761
13762 static SEM_PC
13763 SEM_FN_NAME (frvbf,andncr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13764 {
13765 #define FLD(f) abuf->fields.sfmt_andcr.f
13766   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13767   int UNUSED written = 0;
13768   IADDR UNUSED pc = abuf->addr;
13769   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13770
13771   {
13772     UQI opval = frvbf_cr_logic (current_cpu, 5, CPU (h_cccr[FLD (f_CRi)]), CPU (h_cccr[FLD (f_CRj)]));
13773     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRk)]), opval);
13774     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13775   }
13776
13777   return vpc;
13778 #undef FLD
13779 }
13780
13781 /* orncr: orncr$pack $CRi,$CRj,$CRk */
13782
13783 static SEM_PC
13784 SEM_FN_NAME (frvbf,orncr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13785 {
13786 #define FLD(f) abuf->fields.sfmt_andcr.f
13787   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13788   int UNUSED written = 0;
13789   IADDR UNUSED pc = abuf->addr;
13790   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13791
13792   {
13793     UQI opval = frvbf_cr_logic (current_cpu, 6, CPU (h_cccr[FLD (f_CRi)]), CPU (h_cccr[FLD (f_CRj)]));
13794     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRk)]), opval);
13795     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13796   }
13797
13798   return vpc;
13799 #undef FLD
13800 }
13801
13802 /* nandncr: nandncr$pack $CRi,$CRj,$CRk */
13803
13804 static SEM_PC
13805 SEM_FN_NAME (frvbf,nandncr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13806 {
13807 #define FLD(f) abuf->fields.sfmt_andcr.f
13808   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13809   int UNUSED written = 0;
13810   IADDR UNUSED pc = abuf->addr;
13811   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13812
13813   {
13814     UQI opval = frvbf_cr_logic (current_cpu, 7, CPU (h_cccr[FLD (f_CRi)]), CPU (h_cccr[FLD (f_CRj)]));
13815     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRk)]), opval);
13816     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13817   }
13818
13819   return vpc;
13820 #undef FLD
13821 }
13822
13823 /* norncr: norncr$pack $CRi,$CRj,$CRk */
13824
13825 static SEM_PC
13826 SEM_FN_NAME (frvbf,norncr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13827 {
13828 #define FLD(f) abuf->fields.sfmt_andcr.f
13829   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13830   int UNUSED written = 0;
13831   IADDR UNUSED pc = abuf->addr;
13832   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13833
13834   {
13835     UQI opval = frvbf_cr_logic (current_cpu, 8, CPU (h_cccr[FLD (f_CRi)]), CPU (h_cccr[FLD (f_CRj)]));
13836     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRk)]), opval);
13837     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13838   }
13839
13840   return vpc;
13841 #undef FLD
13842 }
13843
13844 /* notcr: notcr$pack $CRj,$CRk */
13845
13846 static SEM_PC
13847 SEM_FN_NAME (frvbf,notcr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13848 {
13849 #define FLD(f) abuf->fields.sfmt_andcr.f
13850   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13851   int UNUSED written = 0;
13852   IADDR UNUSED pc = abuf->addr;
13853   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13854
13855   {
13856     UQI opval = XORQI (CPU (h_cccr[FLD (f_CRj)]), 1);
13857     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRk)]), opval);
13858     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13859   }
13860
13861   return vpc;
13862 #undef FLD
13863 }
13864
13865 /* ckra: ckra$pack $CRj_int */
13866
13867 static SEM_PC
13868 SEM_FN_NAME (frvbf,ckra) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13869 {
13870 #define FLD(f) abuf->fields.sfmt_cckeq.f
13871   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13872   int UNUSED written = 0;
13873   IADDR UNUSED pc = abuf->addr;
13874   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13875
13876   {
13877     UQI opval = 3;
13878     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
13879     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13880   }
13881
13882   return vpc;
13883 #undef FLD
13884 }
13885
13886 /* ckno: ckno$pack $CRj_int */
13887
13888 static SEM_PC
13889 SEM_FN_NAME (frvbf,ckno) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13890 {
13891 #define FLD(f) abuf->fields.sfmt_cckeq.f
13892   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13893   int UNUSED written = 0;
13894   IADDR UNUSED pc = abuf->addr;
13895   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13896
13897   {
13898     UQI opval = 2;
13899     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
13900     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13901   }
13902
13903   return vpc;
13904 #undef FLD
13905 }
13906
13907 /* ckeq: ckeq$pack $ICCi_3,$CRj_int */
13908
13909 static SEM_PC
13910 SEM_FN_NAME (frvbf,ckeq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13911 {
13912 #define FLD(f) abuf->fields.sfmt_cckeq.f
13913   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13914   int UNUSED written = 0;
13915   IADDR UNUSED pc = abuf->addr;
13916   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13917
13918 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 4), 2))) {
13919   {
13920     UQI opval = 3;
13921     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
13922     written |= (1 << 1);
13923     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13924   }
13925 } else {
13926   {
13927     UQI opval = 2;
13928     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
13929     written |= (1 << 1);
13930     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13931   }
13932 }
13933
13934   abuf->written = written;
13935   return vpc;
13936 #undef FLD
13937 }
13938
13939 /* ckne: ckne$pack $ICCi_3,$CRj_int */
13940
13941 static SEM_PC
13942 SEM_FN_NAME (frvbf,ckne) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13943 {
13944 #define FLD(f) abuf->fields.sfmt_cckeq.f
13945   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13946   int UNUSED written = 0;
13947   IADDR UNUSED pc = abuf->addr;
13948   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13949
13950 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 4), 2)))) {
13951   {
13952     UQI opval = 3;
13953     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
13954     written |= (1 << 1);
13955     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13956   }
13957 } else {
13958   {
13959     UQI opval = 2;
13960     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
13961     written |= (1 << 1);
13962     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13963   }
13964 }
13965
13966   abuf->written = written;
13967   return vpc;
13968 #undef FLD
13969 }
13970
13971 /* ckle: ckle$pack $ICCi_3,$CRj_int */
13972
13973 static SEM_PC
13974 SEM_FN_NAME (frvbf,ckle) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13975 {
13976 #define FLD(f) abuf->fields.sfmt_cckeq.f
13977   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13978   int UNUSED written = 0;
13979   IADDR UNUSED pc = abuf->addr;
13980   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13981
13982 if (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))))) {
13983   {
13984     UQI opval = 3;
13985     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
13986     written |= (1 << 1);
13987     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13988   }
13989 } else {
13990   {
13991     UQI opval = 2;
13992     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
13993     written |= (1 << 1);
13994     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13995   }
13996 }
13997
13998   abuf->written = written;
13999   return vpc;
14000 #undef FLD
14001 }
14002
14003 /* ckgt: ckgt$pack $ICCi_3,$CRj_int */
14004
14005 static SEM_PC
14006 SEM_FN_NAME (frvbf,ckgt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14007 {
14008 #define FLD(f) abuf->fields.sfmt_cckeq.f
14009   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14010   int UNUSED written = 0;
14011   IADDR UNUSED pc = abuf->addr;
14012   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14013
14014 if (NOTBI (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)))))) {
14015   {
14016     UQI opval = 3;
14017     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14018     written |= (1 << 1);
14019     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14020   }
14021 } else {
14022   {
14023     UQI opval = 2;
14024     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14025     written |= (1 << 1);
14026     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14027   }
14028 }
14029
14030   abuf->written = written;
14031   return vpc;
14032 #undef FLD
14033 }
14034
14035 /* cklt: cklt$pack $ICCi_3,$CRj_int */
14036
14037 static SEM_PC
14038 SEM_FN_NAME (frvbf,cklt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14039 {
14040 #define FLD(f) abuf->fields.sfmt_cckeq.f
14041   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14042   int UNUSED written = 0;
14043   IADDR UNUSED pc = abuf->addr;
14044   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14045
14046 if (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)))) {
14047   {
14048     UQI opval = 3;
14049     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14050     written |= (1 << 1);
14051     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14052   }
14053 } else {
14054   {
14055     UQI opval = 2;
14056     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14057     written |= (1 << 1);
14058     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14059   }
14060 }
14061
14062   abuf->written = written;
14063   return vpc;
14064 #undef FLD
14065 }
14066
14067 /* ckge: ckge$pack $ICCi_3,$CRj_int */
14068
14069 static SEM_PC
14070 SEM_FN_NAME (frvbf,ckge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14071 {
14072 #define FLD(f) abuf->fields.sfmt_cckeq.f
14073   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14074   int UNUSED written = 0;
14075   IADDR UNUSED pc = abuf->addr;
14076   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14077
14078 if (NOTBI (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))))) {
14079   {
14080     UQI opval = 3;
14081     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14082     written |= (1 << 1);
14083     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14084   }
14085 } else {
14086   {
14087     UQI opval = 2;
14088     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14089     written |= (1 << 1);
14090     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14091   }
14092 }
14093
14094   abuf->written = written;
14095   return vpc;
14096 #undef FLD
14097 }
14098
14099 /* ckls: ckls$pack $ICCi_3,$CRj_int */
14100
14101 static SEM_PC
14102 SEM_FN_NAME (frvbf,ckls) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14103 {
14104 #define FLD(f) abuf->fields.sfmt_cckeq.f
14105   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14106   int UNUSED written = 0;
14107   IADDR UNUSED pc = abuf->addr;
14108   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14109
14110 if (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 4), 2)))) {
14111   {
14112     UQI opval = 3;
14113     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14114     written |= (1 << 1);
14115     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14116   }
14117 } else {
14118   {
14119     UQI opval = 2;
14120     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14121     written |= (1 << 1);
14122     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14123   }
14124 }
14125
14126   abuf->written = written;
14127   return vpc;
14128 #undef FLD
14129 }
14130
14131 /* ckhi: ckhi$pack $ICCi_3,$CRj_int */
14132
14133 static SEM_PC
14134 SEM_FN_NAME (frvbf,ckhi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14135 {
14136 #define FLD(f) abuf->fields.sfmt_cckeq.f
14137   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14138   int UNUSED written = 0;
14139   IADDR UNUSED pc = abuf->addr;
14140   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14141
14142 if (NOTBI (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 4), 2))))) {
14143   {
14144     UQI opval = 3;
14145     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14146     written |= (1 << 1);
14147     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14148   }
14149 } else {
14150   {
14151     UQI opval = 2;
14152     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14153     written |= (1 << 1);
14154     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14155   }
14156 }
14157
14158   abuf->written = written;
14159   return vpc;
14160 #undef FLD
14161 }
14162
14163 /* ckc: ckc$pack $ICCi_3,$CRj_int */
14164
14165 static SEM_PC
14166 SEM_FN_NAME (frvbf,ckc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14167 {
14168 #define FLD(f) abuf->fields.sfmt_cckeq.f
14169   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14170   int UNUSED written = 0;
14171   IADDR UNUSED pc = abuf->addr;
14172   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14173
14174 if (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 1))) {
14175   {
14176     UQI opval = 3;
14177     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14178     written |= (1 << 1);
14179     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14180   }
14181 } else {
14182   {
14183     UQI opval = 2;
14184     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14185     written |= (1 << 1);
14186     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14187   }
14188 }
14189
14190   abuf->written = written;
14191   return vpc;
14192 #undef FLD
14193 }
14194
14195 /* cknc: cknc$pack $ICCi_3,$CRj_int */
14196
14197 static SEM_PC
14198 SEM_FN_NAME (frvbf,cknc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14199 {
14200 #define FLD(f) abuf->fields.sfmt_cckeq.f
14201   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14202   int UNUSED written = 0;
14203   IADDR UNUSED pc = abuf->addr;
14204   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14205
14206 if (NOTBI (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 1)))) {
14207   {
14208     UQI opval = 3;
14209     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14210     written |= (1 << 1);
14211     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14212   }
14213 } else {
14214   {
14215     UQI opval = 2;
14216     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14217     written |= (1 << 1);
14218     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14219   }
14220 }
14221
14222   abuf->written = written;
14223   return vpc;
14224 #undef FLD
14225 }
14226
14227 /* ckn: ckn$pack $ICCi_3,$CRj_int */
14228
14229 static SEM_PC
14230 SEM_FN_NAME (frvbf,ckn) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14231 {
14232 #define FLD(f) abuf->fields.sfmt_cckeq.f
14233   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14234   int UNUSED written = 0;
14235   IADDR UNUSED pc = abuf->addr;
14236   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14237
14238 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 8), 3))) {
14239   {
14240     UQI opval = 3;
14241     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14242     written |= (1 << 1);
14243     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14244   }
14245 } else {
14246   {
14247     UQI opval = 2;
14248     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14249     written |= (1 << 1);
14250     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14251   }
14252 }
14253
14254   abuf->written = written;
14255   return vpc;
14256 #undef FLD
14257 }
14258
14259 /* ckp: ckp$pack $ICCi_3,$CRj_int */
14260
14261 static SEM_PC
14262 SEM_FN_NAME (frvbf,ckp) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14263 {
14264 #define FLD(f) abuf->fields.sfmt_cckeq.f
14265   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14266   int UNUSED written = 0;
14267   IADDR UNUSED pc = abuf->addr;
14268   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14269
14270 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 8), 3)))) {
14271   {
14272     UQI opval = 3;
14273     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14274     written |= (1 << 1);
14275     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14276   }
14277 } else {
14278   {
14279     UQI opval = 2;
14280     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14281     written |= (1 << 1);
14282     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14283   }
14284 }
14285
14286   abuf->written = written;
14287   return vpc;
14288 #undef FLD
14289 }
14290
14291 /* ckv: ckv$pack $ICCi_3,$CRj_int */
14292
14293 static SEM_PC
14294 SEM_FN_NAME (frvbf,ckv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14295 {
14296 #define FLD(f) abuf->fields.sfmt_cckeq.f
14297   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14298   int UNUSED written = 0;
14299   IADDR UNUSED pc = abuf->addr;
14300   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14301
14302 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 2), 1))) {
14303   {
14304     UQI opval = 3;
14305     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14306     written |= (1 << 1);
14307     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14308   }
14309 } else {
14310   {
14311     UQI opval = 2;
14312     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14313     written |= (1 << 1);
14314     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14315   }
14316 }
14317
14318   abuf->written = written;
14319   return vpc;
14320 #undef FLD
14321 }
14322
14323 /* cknv: cknv$pack $ICCi_3,$CRj_int */
14324
14325 static SEM_PC
14326 SEM_FN_NAME (frvbf,cknv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14327 {
14328 #define FLD(f) abuf->fields.sfmt_cckeq.f
14329   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14330   int UNUSED written = 0;
14331   IADDR UNUSED pc = abuf->addr;
14332   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14333
14334 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 2), 1)))) {
14335   {
14336     UQI opval = 3;
14337     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14338     written |= (1 << 1);
14339     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14340   }
14341 } else {
14342   {
14343     UQI opval = 2;
14344     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14345     written |= (1 << 1);
14346     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14347   }
14348 }
14349
14350   abuf->written = written;
14351   return vpc;
14352 #undef FLD
14353 }
14354
14355 /* fckra: fckra$pack $CRj_float */
14356
14357 static SEM_PC
14358 SEM_FN_NAME (frvbf,fckra) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14359 {
14360 #define FLD(f) abuf->fields.sfmt_cfckne.f
14361   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14362   int UNUSED written = 0;
14363   IADDR UNUSED pc = abuf->addr;
14364   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14365
14366   {
14367     UQI opval = 3;
14368     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14369     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14370   }
14371
14372   return vpc;
14373 #undef FLD
14374 }
14375
14376 /* fckno: fckno$pack $CRj_float */
14377
14378 static SEM_PC
14379 SEM_FN_NAME (frvbf,fckno) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14380 {
14381 #define FLD(f) abuf->fields.sfmt_cfckne.f
14382   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14383   int UNUSED written = 0;
14384   IADDR UNUSED pc = abuf->addr;
14385   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14386
14387   {
14388     UQI opval = 2;
14389     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14390     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14391   }
14392
14393   return vpc;
14394 #undef FLD
14395 }
14396
14397 /* fckne: fckne$pack $FCCi_3,$CRj_float */
14398
14399 static SEM_PC
14400 SEM_FN_NAME (frvbf,fckne) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14401 {
14402 #define FLD(f) abuf->fields.sfmt_cfckne.f
14403   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14404   int UNUSED written = 0;
14405   IADDR UNUSED pc = abuf->addr;
14406   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14407
14408 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 4), 2)), ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 1))))) {
14409   {
14410     UQI opval = 3;
14411     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14412     written |= (1 << 1);
14413     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14414   }
14415 } else {
14416   {
14417     UQI opval = 2;
14418     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14419     written |= (1 << 1);
14420     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14421   }
14422 }
14423
14424   abuf->written = written;
14425   return vpc;
14426 #undef FLD
14427 }
14428
14429 /* fckeq: fckeq$pack $FCCi_3,$CRj_float */
14430
14431 static SEM_PC
14432 SEM_FN_NAME (frvbf,fckeq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14433 {
14434 #define FLD(f) abuf->fields.sfmt_cfckne.f
14435   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14436   int UNUSED written = 0;
14437   IADDR UNUSED pc = abuf->addr;
14438   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14439
14440 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 8), 3))) {
14441   {
14442     UQI opval = 3;
14443     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14444     written |= (1 << 1);
14445     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14446   }
14447 } else {
14448   {
14449     UQI opval = 2;
14450     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14451     written |= (1 << 1);
14452     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14453   }
14454 }
14455
14456   abuf->written = written;
14457   return vpc;
14458 #undef FLD
14459 }
14460
14461 /* fcklg: fcklg$pack $FCCi_3,$CRj_float */
14462
14463 static SEM_PC
14464 SEM_FN_NAME (frvbf,fcklg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14465 {
14466 #define FLD(f) abuf->fields.sfmt_cfckne.f
14467   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14468   int UNUSED written = 0;
14469   IADDR UNUSED pc = abuf->addr;
14470   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14471
14472 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 4), 2)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 2), 1)))) {
14473   {
14474     UQI opval = 3;
14475     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14476     written |= (1 << 1);
14477     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14478   }
14479 } else {
14480   {
14481     UQI opval = 2;
14482     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14483     written |= (1 << 1);
14484     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14485   }
14486 }
14487
14488   abuf->written = written;
14489   return vpc;
14490 #undef FLD
14491 }
14492
14493 /* fckue: fckue$pack $FCCi_3,$CRj_float */
14494
14495 static SEM_PC
14496 SEM_FN_NAME (frvbf,fckue) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14497 {
14498 #define FLD(f) abuf->fields.sfmt_cfckne.f
14499   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14500   int UNUSED written = 0;
14501   IADDR UNUSED pc = abuf->addr;
14502   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14503
14504 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 8), 3)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 1)))) {
14505   {
14506     UQI opval = 3;
14507     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14508     written |= (1 << 1);
14509     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14510   }
14511 } else {
14512   {
14513     UQI opval = 2;
14514     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14515     written |= (1 << 1);
14516     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14517   }
14518 }
14519
14520   abuf->written = written;
14521   return vpc;
14522 #undef FLD
14523 }
14524
14525 /* fckul: fckul$pack $FCCi_3,$CRj_float */
14526
14527 static SEM_PC
14528 SEM_FN_NAME (frvbf,fckul) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14529 {
14530 #define FLD(f) abuf->fields.sfmt_cfckne.f
14531   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14532   int UNUSED written = 0;
14533   IADDR UNUSED pc = abuf->addr;
14534   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14535
14536 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 4), 2)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 1)))) {
14537   {
14538     UQI opval = 3;
14539     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14540     written |= (1 << 1);
14541     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14542   }
14543 } else {
14544   {
14545     UQI opval = 2;
14546     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14547     written |= (1 << 1);
14548     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14549   }
14550 }
14551
14552   abuf->written = written;
14553   return vpc;
14554 #undef FLD
14555 }
14556
14557 /* fckge: fckge$pack $FCCi_3,$CRj_float */
14558
14559 static SEM_PC
14560 SEM_FN_NAME (frvbf,fckge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14561 {
14562 #define FLD(f) abuf->fields.sfmt_cfckne.f
14563   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14564   int UNUSED written = 0;
14565   IADDR UNUSED pc = abuf->addr;
14566   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14567
14568 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 2), 1)))) {
14569   {
14570     UQI opval = 3;
14571     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14572     written |= (1 << 1);
14573     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14574   }
14575 } else {
14576   {
14577     UQI opval = 2;
14578     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14579     written |= (1 << 1);
14580     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14581   }
14582 }
14583
14584   abuf->written = written;
14585   return vpc;
14586 #undef FLD
14587 }
14588
14589 /* fcklt: fcklt$pack $FCCi_3,$CRj_float */
14590
14591 static SEM_PC
14592 SEM_FN_NAME (frvbf,fcklt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14593 {
14594 #define FLD(f) abuf->fields.sfmt_cfckne.f
14595   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14596   int UNUSED written = 0;
14597   IADDR UNUSED pc = abuf->addr;
14598   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14599
14600 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 4), 2))) {
14601   {
14602     UQI opval = 3;
14603     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14604     written |= (1 << 1);
14605     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14606   }
14607 } else {
14608   {
14609     UQI opval = 2;
14610     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14611     written |= (1 << 1);
14612     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14613   }
14614 }
14615
14616   abuf->written = written;
14617   return vpc;
14618 #undef FLD
14619 }
14620
14621 /* fckuge: fckuge$pack $FCCi_3,$CRj_float */
14622
14623 static SEM_PC
14624 SEM_FN_NAME (frvbf,fckuge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14625 {
14626 #define FLD(f) abuf->fields.sfmt_cfckne.f
14627   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14628   int UNUSED written = 0;
14629   IADDR UNUSED pc = abuf->addr;
14630   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14631
14632 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 8), 3)), ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 1))))) {
14633   {
14634     UQI opval = 3;
14635     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14636     written |= (1 << 1);
14637     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14638   }
14639 } else {
14640   {
14641     UQI opval = 2;
14642     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14643     written |= (1 << 1);
14644     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14645   }
14646 }
14647
14648   abuf->written = written;
14649   return vpc;
14650 #undef FLD
14651 }
14652
14653 /* fckug: fckug$pack $FCCi_3,$CRj_float */
14654
14655 static SEM_PC
14656 SEM_FN_NAME (frvbf,fckug) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14657 {
14658 #define FLD(f) abuf->fields.sfmt_cfckne.f
14659   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14660   int UNUSED written = 0;
14661   IADDR UNUSED pc = abuf->addr;
14662   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14663
14664 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 1)))) {
14665   {
14666     UQI opval = 3;
14667     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14668     written |= (1 << 1);
14669     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14670   }
14671 } else {
14672   {
14673     UQI opval = 2;
14674     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14675     written |= (1 << 1);
14676     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14677   }
14678 }
14679
14680   abuf->written = written;
14681   return vpc;
14682 #undef FLD
14683 }
14684
14685 /* fckle: fckle$pack $FCCi_3,$CRj_float */
14686
14687 static SEM_PC
14688 SEM_FN_NAME (frvbf,fckle) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14689 {
14690 #define FLD(f) abuf->fields.sfmt_cfckne.f
14691   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14692   int UNUSED written = 0;
14693   IADDR UNUSED pc = abuf->addr;
14694   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14695
14696 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 4), 2)))) {
14697   {
14698     UQI opval = 3;
14699     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14700     written |= (1 << 1);
14701     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14702   }
14703 } else {
14704   {
14705     UQI opval = 2;
14706     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14707     written |= (1 << 1);
14708     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14709   }
14710 }
14711
14712   abuf->written = written;
14713   return vpc;
14714 #undef FLD
14715 }
14716
14717 /* fckgt: fckgt$pack $FCCi_3,$CRj_float */
14718
14719 static SEM_PC
14720 SEM_FN_NAME (frvbf,fckgt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14721 {
14722 #define FLD(f) abuf->fields.sfmt_cfckne.f
14723   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14724   int UNUSED written = 0;
14725   IADDR UNUSED pc = abuf->addr;
14726   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14727
14728 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 2), 1))) {
14729   {
14730     UQI opval = 3;
14731     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14732     written |= (1 << 1);
14733     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14734   }
14735 } else {
14736   {
14737     UQI opval = 2;
14738     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14739     written |= (1 << 1);
14740     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14741   }
14742 }
14743
14744   abuf->written = written;
14745   return vpc;
14746 #undef FLD
14747 }
14748
14749 /* fckule: fckule$pack $FCCi_3,$CRj_float */
14750
14751 static SEM_PC
14752 SEM_FN_NAME (frvbf,fckule) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14753 {
14754 #define FLD(f) abuf->fields.sfmt_cfckne.f
14755   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14756   int UNUSED written = 0;
14757   IADDR UNUSED pc = abuf->addr;
14758   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14759
14760 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 8), 3)), ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 4), 2)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 1))))) {
14761   {
14762     UQI opval = 3;
14763     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14764     written |= (1 << 1);
14765     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14766   }
14767 } else {
14768   {
14769     UQI opval = 2;
14770     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14771     written |= (1 << 1);
14772     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14773   }
14774 }
14775
14776   abuf->written = written;
14777   return vpc;
14778 #undef FLD
14779 }
14780
14781 /* fcku: fcku$pack $FCCi_3,$CRj_float */
14782
14783 static SEM_PC
14784 SEM_FN_NAME (frvbf,fcku) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14785 {
14786 #define FLD(f) abuf->fields.sfmt_cfckne.f
14787   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14788   int UNUSED written = 0;
14789   IADDR UNUSED pc = abuf->addr;
14790   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14791
14792 if (TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 1))) {
14793   {
14794     UQI opval = 3;
14795     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14796     written |= (1 << 1);
14797     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14798   }
14799 } else {
14800   {
14801     UQI opval = 2;
14802     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14803     written |= (1 << 1);
14804     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14805   }
14806 }
14807
14808   abuf->written = written;
14809   return vpc;
14810 #undef FLD
14811 }
14812
14813 /* fcko: fcko$pack $FCCi_3,$CRj_float */
14814
14815 static SEM_PC
14816 SEM_FN_NAME (frvbf,fcko) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14817 {
14818 #define FLD(f) abuf->fields.sfmt_cfckne.f
14819   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14820   int UNUSED written = 0;
14821   IADDR UNUSED pc = abuf->addr;
14822   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14823
14824 if (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))))) {
14825   {
14826     UQI opval = 3;
14827     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14828     written |= (1 << 1);
14829     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14830   }
14831 } else {
14832   {
14833     UQI opval = 2;
14834     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14835     written |= (1 << 1);
14836     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14837   }
14838 }
14839
14840   abuf->written = written;
14841   return vpc;
14842 #undef FLD
14843 }
14844
14845 /* cckra: cckra$pack $CRj_int,$CCi,$cond */
14846
14847 static SEM_PC
14848 SEM_FN_NAME (frvbf,cckra) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14849 {
14850 #define FLD(f) abuf->fields.sfmt_cckeq.f
14851   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14852   int UNUSED written = 0;
14853   IADDR UNUSED pc = abuf->addr;
14854   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14855
14856 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
14857   {
14858     UQI opval = 3;
14859     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14860     written |= (1 << 2);
14861     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14862   }
14863 } else {
14864   {
14865     UQI opval = 0;
14866     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14867     written |= (1 << 2);
14868     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14869   }
14870 }
14871
14872   abuf->written = written;
14873   return vpc;
14874 #undef FLD
14875 }
14876
14877 /* cckno: cckno$pack $CRj_int,$CCi,$cond */
14878
14879 static SEM_PC
14880 SEM_FN_NAME (frvbf,cckno) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14881 {
14882 #define FLD(f) abuf->fields.sfmt_cckeq.f
14883   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14884   int UNUSED written = 0;
14885   IADDR UNUSED pc = abuf->addr;
14886   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14887
14888 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
14889   {
14890     UQI opval = 2;
14891     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14892     written |= (1 << 2);
14893     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14894   }
14895 } else {
14896   {
14897     UQI opval = 0;
14898     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14899     written |= (1 << 2);
14900     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14901   }
14902 }
14903
14904   abuf->written = written;
14905   return vpc;
14906 #undef FLD
14907 }
14908
14909 /* cckeq: cckeq$pack $ICCi_3,$CRj_int,$CCi,$cond */
14910
14911 static SEM_PC
14912 SEM_FN_NAME (frvbf,cckeq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14913 {
14914 #define FLD(f) abuf->fields.sfmt_cckeq.f
14915   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14916   int UNUSED written = 0;
14917   IADDR UNUSED pc = abuf->addr;
14918   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14919
14920 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
14921 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 4), 2))) {
14922   {
14923     UQI opval = 3;
14924     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14925     written |= (1 << 3);
14926     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14927   }
14928 } else {
14929   {
14930     UQI opval = 2;
14931     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14932     written |= (1 << 3);
14933     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14934   }
14935 }
14936 } else {
14937   {
14938     UQI opval = 0;
14939     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14940     written |= (1 << 3);
14941     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14942   }
14943 }
14944
14945   abuf->written = written;
14946   return vpc;
14947 #undef FLD
14948 }
14949
14950 /* cckne: cckne$pack $ICCi_3,$CRj_int,$CCi,$cond */
14951
14952 static SEM_PC
14953 SEM_FN_NAME (frvbf,cckne) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14954 {
14955 #define FLD(f) abuf->fields.sfmt_cckeq.f
14956   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14957   int UNUSED written = 0;
14958   IADDR UNUSED pc = abuf->addr;
14959   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14960
14961 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
14962 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 4), 2)))) {
14963   {
14964     UQI opval = 3;
14965     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14966     written |= (1 << 3);
14967     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14968   }
14969 } else {
14970   {
14971     UQI opval = 2;
14972     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14973     written |= (1 << 3);
14974     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14975   }
14976 }
14977 } else {
14978   {
14979     UQI opval = 0;
14980     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14981     written |= (1 << 3);
14982     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14983   }
14984 }
14985
14986   abuf->written = written;
14987   return vpc;
14988 #undef FLD
14989 }
14990
14991 /* cckle: cckle$pack $ICCi_3,$CRj_int,$CCi,$cond */
14992
14993 static SEM_PC
14994 SEM_FN_NAME (frvbf,cckle) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14995 {
14996 #define FLD(f) abuf->fields.sfmt_cckeq.f
14997   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14998   int UNUSED written = 0;
14999   IADDR UNUSED pc = abuf->addr;
15000   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15001
15002 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15003 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))))) {
15004   {
15005     UQI opval = 3;
15006     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15007     written |= (1 << 3);
15008     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15009   }
15010 } else {
15011   {
15012     UQI opval = 2;
15013     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15014     written |= (1 << 3);
15015     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15016   }
15017 }
15018 } else {
15019   {
15020     UQI opval = 0;
15021     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15022     written |= (1 << 3);
15023     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15024   }
15025 }
15026
15027   abuf->written = written;
15028   return vpc;
15029 #undef FLD
15030 }
15031
15032 /* cckgt: cckgt$pack $ICCi_3,$CRj_int,$CCi,$cond */
15033
15034 static SEM_PC
15035 SEM_FN_NAME (frvbf,cckgt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15036 {
15037 #define FLD(f) abuf->fields.sfmt_cckeq.f
15038   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15039   int UNUSED written = 0;
15040   IADDR UNUSED pc = abuf->addr;
15041   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15042
15043 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15044 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)))))) {
15045   {
15046     UQI opval = 3;
15047     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15048     written |= (1 << 3);
15049     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15050   }
15051 } else {
15052   {
15053     UQI opval = 2;
15054     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15055     written |= (1 << 3);
15056     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15057   }
15058 }
15059 } else {
15060   {
15061     UQI opval = 0;
15062     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15063     written |= (1 << 3);
15064     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15065   }
15066 }
15067
15068   abuf->written = written;
15069   return vpc;
15070 #undef FLD
15071 }
15072
15073 /* ccklt: ccklt$pack $ICCi_3,$CRj_int,$CCi,$cond */
15074
15075 static SEM_PC
15076 SEM_FN_NAME (frvbf,ccklt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15077 {
15078 #define FLD(f) abuf->fields.sfmt_cckeq.f
15079   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15080   int UNUSED written = 0;
15081   IADDR UNUSED pc = abuf->addr;
15082   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15083
15084 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15085 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)))) {
15086   {
15087     UQI opval = 3;
15088     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15089     written |= (1 << 3);
15090     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15091   }
15092 } else {
15093   {
15094     UQI opval = 2;
15095     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15096     written |= (1 << 3);
15097     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15098   }
15099 }
15100 } else {
15101   {
15102     UQI opval = 0;
15103     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15104     written |= (1 << 3);
15105     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15106   }
15107 }
15108
15109   abuf->written = written;
15110   return vpc;
15111 #undef FLD
15112 }
15113
15114 /* cckge: cckge$pack $ICCi_3,$CRj_int,$CCi,$cond */
15115
15116 static SEM_PC
15117 SEM_FN_NAME (frvbf,cckge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15118 {
15119 #define FLD(f) abuf->fields.sfmt_cckeq.f
15120   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15121   int UNUSED written = 0;
15122   IADDR UNUSED pc = abuf->addr;
15123   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15124
15125 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15126 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))))) {
15127   {
15128     UQI opval = 3;
15129     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15130     written |= (1 << 3);
15131     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15132   }
15133 } else {
15134   {
15135     UQI opval = 2;
15136     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15137     written |= (1 << 3);
15138     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15139   }
15140 }
15141 } else {
15142   {
15143     UQI opval = 0;
15144     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15145     written |= (1 << 3);
15146     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15147   }
15148 }
15149
15150   abuf->written = written;
15151   return vpc;
15152 #undef FLD
15153 }
15154
15155 /* cckls: cckls$pack $ICCi_3,$CRj_int,$CCi,$cond */
15156
15157 static SEM_PC
15158 SEM_FN_NAME (frvbf,cckls) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15159 {
15160 #define FLD(f) abuf->fields.sfmt_cckeq.f
15161   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15162   int UNUSED written = 0;
15163   IADDR UNUSED pc = abuf->addr;
15164   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15165
15166 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15167 if (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 4), 2)))) {
15168   {
15169     UQI opval = 3;
15170     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15171     written |= (1 << 3);
15172     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15173   }
15174 } else {
15175   {
15176     UQI opval = 2;
15177     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15178     written |= (1 << 3);
15179     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15180   }
15181 }
15182 } else {
15183   {
15184     UQI opval = 0;
15185     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15186     written |= (1 << 3);
15187     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15188   }
15189 }
15190
15191   abuf->written = written;
15192   return vpc;
15193 #undef FLD
15194 }
15195
15196 /* cckhi: cckhi$pack $ICCi_3,$CRj_int,$CCi,$cond */
15197
15198 static SEM_PC
15199 SEM_FN_NAME (frvbf,cckhi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15200 {
15201 #define FLD(f) abuf->fields.sfmt_cckeq.f
15202   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15203   int UNUSED written = 0;
15204   IADDR UNUSED pc = abuf->addr;
15205   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15206
15207 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15208 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))))) {
15209   {
15210     UQI opval = 3;
15211     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15212     written |= (1 << 3);
15213     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15214   }
15215 } else {
15216   {
15217     UQI opval = 2;
15218     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15219     written |= (1 << 3);
15220     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15221   }
15222 }
15223 } else {
15224   {
15225     UQI opval = 0;
15226     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15227     written |= (1 << 3);
15228     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15229   }
15230 }
15231
15232   abuf->written = written;
15233   return vpc;
15234 #undef FLD
15235 }
15236
15237 /* cckc: cckc$pack $ICCi_3,$CRj_int,$CCi,$cond */
15238
15239 static SEM_PC
15240 SEM_FN_NAME (frvbf,cckc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15241 {
15242 #define FLD(f) abuf->fields.sfmt_cckeq.f
15243   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15244   int UNUSED written = 0;
15245   IADDR UNUSED pc = abuf->addr;
15246   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15247
15248 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15249 if (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 1))) {
15250   {
15251     UQI opval = 3;
15252     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15253     written |= (1 << 3);
15254     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15255   }
15256 } else {
15257   {
15258     UQI opval = 2;
15259     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15260     written |= (1 << 3);
15261     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15262   }
15263 }
15264 } else {
15265   {
15266     UQI opval = 0;
15267     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15268     written |= (1 << 3);
15269     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15270   }
15271 }
15272
15273   abuf->written = written;
15274   return vpc;
15275 #undef FLD
15276 }
15277
15278 /* ccknc: ccknc$pack $ICCi_3,$CRj_int,$CCi,$cond */
15279
15280 static SEM_PC
15281 SEM_FN_NAME (frvbf,ccknc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15282 {
15283 #define FLD(f) abuf->fields.sfmt_cckeq.f
15284   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15285   int UNUSED written = 0;
15286   IADDR UNUSED pc = abuf->addr;
15287   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15288
15289 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15290 if (NOTBI (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 1)))) {
15291   {
15292     UQI opval = 3;
15293     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15294     written |= (1 << 3);
15295     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15296   }
15297 } else {
15298   {
15299     UQI opval = 2;
15300     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15301     written |= (1 << 3);
15302     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15303   }
15304 }
15305 } else {
15306   {
15307     UQI opval = 0;
15308     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15309     written |= (1 << 3);
15310     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15311   }
15312 }
15313
15314   abuf->written = written;
15315   return vpc;
15316 #undef FLD
15317 }
15318
15319 /* cckn: cckn$pack $ICCi_3,$CRj_int,$CCi,$cond */
15320
15321 static SEM_PC
15322 SEM_FN_NAME (frvbf,cckn) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15323 {
15324 #define FLD(f) abuf->fields.sfmt_cckeq.f
15325   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15326   int UNUSED written = 0;
15327   IADDR UNUSED pc = abuf->addr;
15328   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15329
15330 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15331 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 8), 3))) {
15332   {
15333     UQI opval = 3;
15334     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15335     written |= (1 << 3);
15336     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15337   }
15338 } else {
15339   {
15340     UQI opval = 2;
15341     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15342     written |= (1 << 3);
15343     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15344   }
15345 }
15346 } else {
15347   {
15348     UQI opval = 0;
15349     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15350     written |= (1 << 3);
15351     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15352   }
15353 }
15354
15355   abuf->written = written;
15356   return vpc;
15357 #undef FLD
15358 }
15359
15360 /* cckp: cckp$pack $ICCi_3,$CRj_int,$CCi,$cond */
15361
15362 static SEM_PC
15363 SEM_FN_NAME (frvbf,cckp) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15364 {
15365 #define FLD(f) abuf->fields.sfmt_cckeq.f
15366   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15367   int UNUSED written = 0;
15368   IADDR UNUSED pc = abuf->addr;
15369   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15370
15371 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15372 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 8), 3)))) {
15373   {
15374     UQI opval = 3;
15375     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15376     written |= (1 << 3);
15377     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15378   }
15379 } else {
15380   {
15381     UQI opval = 2;
15382     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15383     written |= (1 << 3);
15384     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15385   }
15386 }
15387 } else {
15388   {
15389     UQI opval = 0;
15390     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15391     written |= (1 << 3);
15392     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15393   }
15394 }
15395
15396   abuf->written = written;
15397   return vpc;
15398 #undef FLD
15399 }
15400
15401 /* cckv: cckv$pack $ICCi_3,$CRj_int,$CCi,$cond */
15402
15403 static SEM_PC
15404 SEM_FN_NAME (frvbf,cckv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15405 {
15406 #define FLD(f) abuf->fields.sfmt_cckeq.f
15407   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15408   int UNUSED written = 0;
15409   IADDR UNUSED pc = abuf->addr;
15410   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15411
15412 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15413 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 2), 1))) {
15414   {
15415     UQI opval = 3;
15416     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15417     written |= (1 << 3);
15418     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15419   }
15420 } else {
15421   {
15422     UQI opval = 2;
15423     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15424     written |= (1 << 3);
15425     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15426   }
15427 }
15428 } else {
15429   {
15430     UQI opval = 0;
15431     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15432     written |= (1 << 3);
15433     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15434   }
15435 }
15436
15437   abuf->written = written;
15438   return vpc;
15439 #undef FLD
15440 }
15441
15442 /* ccknv: ccknv$pack $ICCi_3,$CRj_int,$CCi,$cond */
15443
15444 static SEM_PC
15445 SEM_FN_NAME (frvbf,ccknv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15446 {
15447 #define FLD(f) abuf->fields.sfmt_cckeq.f
15448   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15449   int UNUSED written = 0;
15450   IADDR UNUSED pc = abuf->addr;
15451   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15452
15453 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15454 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 2), 1)))) {
15455   {
15456     UQI opval = 3;
15457     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15458     written |= (1 << 3);
15459     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15460   }
15461 } else {
15462   {
15463     UQI opval = 2;
15464     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15465     written |= (1 << 3);
15466     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15467   }
15468 }
15469 } else {
15470   {
15471     UQI opval = 0;
15472     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15473     written |= (1 << 3);
15474     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15475   }
15476 }
15477
15478   abuf->written = written;
15479   return vpc;
15480 #undef FLD
15481 }
15482
15483 /* cfckra: cfckra$pack $CRj_float,$CCi,$cond */
15484
15485 static SEM_PC
15486 SEM_FN_NAME (frvbf,cfckra) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15487 {
15488 #define FLD(f) abuf->fields.sfmt_cfckne.f
15489   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15490   int UNUSED written = 0;
15491   IADDR UNUSED pc = abuf->addr;
15492   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15493
15494 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15495   {
15496     UQI opval = 3;
15497     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15498     written |= (1 << 2);
15499     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15500   }
15501 } else {
15502   {
15503     UQI opval = 0;
15504     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15505     written |= (1 << 2);
15506     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15507   }
15508 }
15509
15510   abuf->written = written;
15511   return vpc;
15512 #undef FLD
15513 }
15514
15515 /* cfckno: cfckno$pack $CRj_float,$CCi,$cond */
15516
15517 static SEM_PC
15518 SEM_FN_NAME (frvbf,cfckno) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15519 {
15520 #define FLD(f) abuf->fields.sfmt_cfckne.f
15521   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15522   int UNUSED written = 0;
15523   IADDR UNUSED pc = abuf->addr;
15524   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15525
15526 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15527   {
15528     UQI opval = 2;
15529     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15530     written |= (1 << 2);
15531     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15532   }
15533 } else {
15534   {
15535     UQI opval = 0;
15536     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15537     written |= (1 << 2);
15538     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15539   }
15540 }
15541
15542   abuf->written = written;
15543   return vpc;
15544 #undef FLD
15545 }
15546
15547 /* cfckne: cfckne$pack $FCCi_3,$CRj_float,$CCi,$cond */
15548
15549 static SEM_PC
15550 SEM_FN_NAME (frvbf,cfckne) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15551 {
15552 #define FLD(f) abuf->fields.sfmt_cfckne.f
15553   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15554   int UNUSED written = 0;
15555   IADDR UNUSED pc = abuf->addr;
15556   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15557
15558 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15559 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))))) {
15560   {
15561     UQI opval = 3;
15562     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15563     written |= (1 << 3);
15564     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15565   }
15566 } else {
15567   {
15568     UQI opval = 2;
15569     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15570     written |= (1 << 3);
15571     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15572   }
15573 }
15574 } else {
15575   {
15576     UQI opval = 0;
15577     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15578     written |= (1 << 3);
15579     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15580   }
15581 }
15582
15583   abuf->written = written;
15584   return vpc;
15585 #undef FLD
15586 }
15587
15588 /* cfckeq: cfckeq$pack $FCCi_3,$CRj_float,$CCi,$cond */
15589
15590 static SEM_PC
15591 SEM_FN_NAME (frvbf,cfckeq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15592 {
15593 #define FLD(f) abuf->fields.sfmt_cfckne.f
15594   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15595   int UNUSED written = 0;
15596   IADDR UNUSED pc = abuf->addr;
15597   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15598
15599 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15600 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 8), 3))) {
15601   {
15602     UQI opval = 3;
15603     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15604     written |= (1 << 3);
15605     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15606   }
15607 } else {
15608   {
15609     UQI opval = 2;
15610     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15611     written |= (1 << 3);
15612     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15613   }
15614 }
15615 } else {
15616   {
15617     UQI opval = 0;
15618     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15619     written |= (1 << 3);
15620     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15621   }
15622 }
15623
15624   abuf->written = written;
15625   return vpc;
15626 #undef FLD
15627 }
15628
15629 /* cfcklg: cfcklg$pack $FCCi_3,$CRj_float,$CCi,$cond */
15630
15631 static SEM_PC
15632 SEM_FN_NAME (frvbf,cfcklg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15633 {
15634 #define FLD(f) abuf->fields.sfmt_cfckne.f
15635   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15636   int UNUSED written = 0;
15637   IADDR UNUSED pc = abuf->addr;
15638   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15639
15640 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15641 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)))) {
15642   {
15643     UQI opval = 3;
15644     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15645     written |= (1 << 3);
15646     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15647   }
15648 } else {
15649   {
15650     UQI opval = 2;
15651     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15652     written |= (1 << 3);
15653     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15654   }
15655 }
15656 } else {
15657   {
15658     UQI opval = 0;
15659     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15660     written |= (1 << 3);
15661     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15662   }
15663 }
15664
15665   abuf->written = written;
15666   return vpc;
15667 #undef FLD
15668 }
15669
15670 /* cfckue: cfckue$pack $FCCi_3,$CRj_float,$CCi,$cond */
15671
15672 static SEM_PC
15673 SEM_FN_NAME (frvbf,cfckue) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15674 {
15675 #define FLD(f) abuf->fields.sfmt_cfckne.f
15676   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15677   int UNUSED written = 0;
15678   IADDR UNUSED pc = abuf->addr;
15679   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15680
15681 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15682 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 8), 3)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 1)))) {
15683   {
15684     UQI opval = 3;
15685     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15686     written |= (1 << 3);
15687     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15688   }
15689 } else {
15690   {
15691     UQI opval = 2;
15692     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15693     written |= (1 << 3);
15694     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15695   }
15696 }
15697 } else {
15698   {
15699     UQI opval = 0;
15700     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15701     written |= (1 << 3);
15702     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15703   }
15704 }
15705
15706   abuf->written = written;
15707   return vpc;
15708 #undef FLD
15709 }
15710
15711 /* cfckul: cfckul$pack $FCCi_3,$CRj_float,$CCi,$cond */
15712
15713 static SEM_PC
15714 SEM_FN_NAME (frvbf,cfckul) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15715 {
15716 #define FLD(f) abuf->fields.sfmt_cfckne.f
15717   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15718   int UNUSED written = 0;
15719   IADDR UNUSED pc = abuf->addr;
15720   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15721
15722 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15723 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 4), 2)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 1)))) {
15724   {
15725     UQI opval = 3;
15726     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15727     written |= (1 << 3);
15728     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15729   }
15730 } else {
15731   {
15732     UQI opval = 2;
15733     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15734     written |= (1 << 3);
15735     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15736   }
15737 }
15738 } else {
15739   {
15740     UQI opval = 0;
15741     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15742     written |= (1 << 3);
15743     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15744   }
15745 }
15746
15747   abuf->written = written;
15748   return vpc;
15749 #undef FLD
15750 }
15751
15752 /* cfckge: cfckge$pack $FCCi_3,$CRj_float,$CCi,$cond */
15753
15754 static SEM_PC
15755 SEM_FN_NAME (frvbf,cfckge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15756 {
15757 #define FLD(f) abuf->fields.sfmt_cfckne.f
15758   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15759   int UNUSED written = 0;
15760   IADDR UNUSED pc = abuf->addr;
15761   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15762
15763 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15764 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)))) {
15765   {
15766     UQI opval = 3;
15767     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15768     written |= (1 << 3);
15769     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15770   }
15771 } else {
15772   {
15773     UQI opval = 2;
15774     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15775     written |= (1 << 3);
15776     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15777   }
15778 }
15779 } else {
15780   {
15781     UQI opval = 0;
15782     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15783     written |= (1 << 3);
15784     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15785   }
15786 }
15787
15788   abuf->written = written;
15789   return vpc;
15790 #undef FLD
15791 }
15792
15793 /* cfcklt: cfcklt$pack $FCCi_3,$CRj_float,$CCi,$cond */
15794
15795 static SEM_PC
15796 SEM_FN_NAME (frvbf,cfcklt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15797 {
15798 #define FLD(f) abuf->fields.sfmt_cfckne.f
15799   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15800   int UNUSED written = 0;
15801   IADDR UNUSED pc = abuf->addr;
15802   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15803
15804 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15805 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 4), 2))) {
15806   {
15807     UQI opval = 3;
15808     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15809     written |= (1 << 3);
15810     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15811   }
15812 } else {
15813   {
15814     UQI opval = 2;
15815     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15816     written |= (1 << 3);
15817     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15818   }
15819 }
15820 } else {
15821   {
15822     UQI opval = 0;
15823     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15824     written |= (1 << 3);
15825     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15826   }
15827 }
15828
15829   abuf->written = written;
15830   return vpc;
15831 #undef FLD
15832 }
15833
15834 /* cfckuge: cfckuge$pack $FCCi_3,$CRj_float,$CCi,$cond */
15835
15836 static SEM_PC
15837 SEM_FN_NAME (frvbf,cfckuge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15838 {
15839 #define FLD(f) abuf->fields.sfmt_cfckne.f
15840   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15841   int UNUSED written = 0;
15842   IADDR UNUSED pc = abuf->addr;
15843   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15844
15845 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15846 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))))) {
15847   {
15848     UQI opval = 3;
15849     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15850     written |= (1 << 3);
15851     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15852   }
15853 } else {
15854   {
15855     UQI opval = 2;
15856     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15857     written |= (1 << 3);
15858     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15859   }
15860 }
15861 } else {
15862   {
15863     UQI opval = 0;
15864     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15865     written |= (1 << 3);
15866     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15867   }
15868 }
15869
15870   abuf->written = written;
15871   return vpc;
15872 #undef FLD
15873 }
15874
15875 /* cfckug: cfckug$pack $FCCi_3,$CRj_float,$CCi,$cond */
15876
15877 static SEM_PC
15878 SEM_FN_NAME (frvbf,cfckug) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15879 {
15880 #define FLD(f) abuf->fields.sfmt_cfckne.f
15881   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15882   int UNUSED written = 0;
15883   IADDR UNUSED pc = abuf->addr;
15884   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15885
15886 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15887 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 1)))) {
15888   {
15889     UQI opval = 3;
15890     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15891     written |= (1 << 3);
15892     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15893   }
15894 } else {
15895   {
15896     UQI opval = 2;
15897     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15898     written |= (1 << 3);
15899     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15900   }
15901 }
15902 } else {
15903   {
15904     UQI opval = 0;
15905     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15906     written |= (1 << 3);
15907     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15908   }
15909 }
15910
15911   abuf->written = written;
15912   return vpc;
15913 #undef FLD
15914 }
15915
15916 /* cfckle: cfckle$pack $FCCi_3,$CRj_float,$CCi,$cond */
15917
15918 static SEM_PC
15919 SEM_FN_NAME (frvbf,cfckle) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15920 {
15921 #define FLD(f) abuf->fields.sfmt_cfckne.f
15922   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15923   int UNUSED written = 0;
15924   IADDR UNUSED pc = abuf->addr;
15925   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15926
15927 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15928 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)))) {
15929   {
15930     UQI opval = 3;
15931     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15932     written |= (1 << 3);
15933     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15934   }
15935 } else {
15936   {
15937     UQI opval = 2;
15938     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15939     written |= (1 << 3);
15940     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15941   }
15942 }
15943 } else {
15944   {
15945     UQI opval = 0;
15946     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15947     written |= (1 << 3);
15948     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15949   }
15950 }
15951
15952   abuf->written = written;
15953   return vpc;
15954 #undef FLD
15955 }
15956
15957 /* cfckgt: cfckgt$pack $FCCi_3,$CRj_float,$CCi,$cond */
15958
15959 static SEM_PC
15960 SEM_FN_NAME (frvbf,cfckgt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15961 {
15962 #define FLD(f) abuf->fields.sfmt_cfckne.f
15963   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15964   int UNUSED written = 0;
15965   IADDR UNUSED pc = abuf->addr;
15966   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15967
15968 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15969 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 2), 1))) {
15970   {
15971     UQI opval = 3;
15972     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15973     written |= (1 << 3);
15974     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15975   }
15976 } else {
15977   {
15978     UQI opval = 2;
15979     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15980     written |= (1 << 3);
15981     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15982   }
15983 }
15984 } else {
15985   {
15986     UQI opval = 0;
15987     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15988     written |= (1 << 3);
15989     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15990   }
15991 }
15992
15993   abuf->written = written;
15994   return vpc;
15995 #undef FLD
15996 }
15997
15998 /* cfckule: cfckule$pack $FCCi_3,$CRj_float,$CCi,$cond */
15999
16000 static SEM_PC
16001 SEM_FN_NAME (frvbf,cfckule) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16002 {
16003 #define FLD(f) abuf->fields.sfmt_cfckne.f
16004   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16005   int UNUSED written = 0;
16006   IADDR UNUSED pc = abuf->addr;
16007   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16008
16009 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
16010 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))))) {
16011   {
16012     UQI opval = 3;
16013     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
16014     written |= (1 << 3);
16015     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
16016   }
16017 } else {
16018   {
16019     UQI opval = 2;
16020     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
16021     written |= (1 << 3);
16022     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
16023   }
16024 }
16025 } else {
16026   {
16027     UQI opval = 0;
16028     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
16029     written |= (1 << 3);
16030     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
16031   }
16032 }
16033
16034   abuf->written = written;
16035   return vpc;
16036 #undef FLD
16037 }
16038
16039 /* cfcku: cfcku$pack $FCCi_3,$CRj_float,$CCi,$cond */
16040
16041 static SEM_PC
16042 SEM_FN_NAME (frvbf,cfcku) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16043 {
16044 #define FLD(f) abuf->fields.sfmt_cfckne.f
16045   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16046   int UNUSED written = 0;
16047   IADDR UNUSED pc = abuf->addr;
16048   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16049
16050 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
16051 if (TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 1))) {
16052   {
16053     UQI opval = 3;
16054     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
16055     written |= (1 << 3);
16056     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
16057   }
16058 } else {
16059   {
16060     UQI opval = 2;
16061     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
16062     written |= (1 << 3);
16063     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
16064   }
16065 }
16066 } else {
16067   {
16068     UQI opval = 0;
16069     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
16070     written |= (1 << 3);
16071     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
16072   }
16073 }
16074
16075   abuf->written = written;
16076   return vpc;
16077 #undef FLD
16078 }
16079
16080 /* cfcko: cfcko$pack $FCCi_3,$CRj_float,$CCi,$cond */
16081
16082 static SEM_PC
16083 SEM_FN_NAME (frvbf,cfcko) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16084 {
16085 #define FLD(f) abuf->fields.sfmt_cfckne.f
16086   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16087   int UNUSED written = 0;
16088   IADDR UNUSED pc = abuf->addr;
16089   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16090
16091 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
16092 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))))) {
16093   {
16094     UQI opval = 3;
16095     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
16096     written |= (1 << 3);
16097     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
16098   }
16099 } else {
16100   {
16101     UQI opval = 2;
16102     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
16103     written |= (1 << 3);
16104     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
16105   }
16106 }
16107 } else {
16108   {
16109     UQI opval = 0;
16110     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
16111     written |= (1 << 3);
16112     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
16113   }
16114 }
16115
16116   abuf->written = written;
16117   return vpc;
16118 #undef FLD
16119 }
16120
16121 /* cjmpl: cjmpl$pack @($GRi,$GRj),$CCi,$cond */
16122
16123 static SEM_PC
16124 SEM_FN_NAME (frvbf,cjmpl) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16125 {
16126 #define FLD(f) abuf->fields.sfmt_cjmpl.f
16127   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16128   int UNUSED written = 0;
16129   IADDR UNUSED pc = abuf->addr;
16130   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16131
16132 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
16133 {
16134 if (EQSI (FLD (f_LI), 1)) {
16135 frvbf_set_write_next_vliw_addr_to_LR (current_cpu, 1);
16136 }
16137   {
16138     USI opval = ANDSI (ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), 0xfffffffc);
16139     sim_queue_pc_write (current_cpu, opval);
16140     written |= (1 << 6);
16141     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
16142   }
16143 frvbf_model_branch (current_cpu, pc, 2);
16144 }
16145 }
16146
16147   abuf->written = written;
16148   return vpc;
16149 #undef FLD
16150 }
16151
16152 /* ccalll: ccalll$pack @($GRi,$GRj),$CCi,$cond */
16153
16154 static SEM_PC
16155 SEM_FN_NAME (frvbf,ccalll) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16156 {
16157 #define FLD(f) abuf->fields.sfmt_cjmpl.f
16158   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16159   int UNUSED written = 0;
16160   IADDR UNUSED pc = abuf->addr;
16161   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16162
16163 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
16164 {
16165 if (EQSI (FLD (f_LI), 1)) {
16166 frvbf_set_write_next_vliw_addr_to_LR (current_cpu, 1);
16167 }
16168   {
16169     USI opval = ANDSI (ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), 0xfffffffc);
16170     sim_queue_pc_write (current_cpu, opval);
16171     written |= (1 << 6);
16172     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
16173   }
16174 frvbf_model_branch (current_cpu, pc, 2);
16175 }
16176 }
16177
16178   abuf->written = written;
16179   return vpc;
16180 #undef FLD
16181 }
16182
16183 /* ici: ici$pack @($GRi,$GRj) */
16184
16185 static SEM_PC
16186 SEM_FN_NAME (frvbf,ici) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16187 {
16188 #define FLD(f) abuf->fields.sfmt_icpl.f
16189   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16190   int UNUSED written = 0;
16191   IADDR UNUSED pc = abuf->addr;
16192   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16193
16194 frvbf_insn_cache_invalidate (current_cpu, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), 0);
16195
16196   return vpc;
16197 #undef FLD
16198 }
16199
16200 /* dci: dci$pack @($GRi,$GRj) */
16201
16202 static SEM_PC
16203 SEM_FN_NAME (frvbf,dci) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16204 {
16205 #define FLD(f) abuf->fields.sfmt_icpl.f
16206   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16207   int UNUSED written = 0;
16208   IADDR UNUSED pc = abuf->addr;
16209   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16210
16211 frvbf_data_cache_invalidate (current_cpu, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), 0);
16212
16213   return vpc;
16214 #undef FLD
16215 }
16216
16217 /* icei: icei$pack @($GRi,$GRj),$ae */
16218
16219 static SEM_PC
16220 SEM_FN_NAME (frvbf,icei) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16221 {
16222 #define FLD(f) abuf->fields.sfmt_icei.f
16223   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16224   int UNUSED written = 0;
16225   IADDR UNUSED pc = abuf->addr;
16226   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16227
16228 if (EQSI (FLD (f_ae), 0)) {
16229 frvbf_insn_cache_invalidate (current_cpu, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), -1);
16230 } else {
16231 frvbf_insn_cache_invalidate (current_cpu, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), FLD (f_ae));
16232 }
16233
16234   return vpc;
16235 #undef FLD
16236 }
16237
16238 /* dcei: dcei$pack @($GRi,$GRj),$ae */
16239
16240 static SEM_PC
16241 SEM_FN_NAME (frvbf,dcei) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16242 {
16243 #define FLD(f) abuf->fields.sfmt_icei.f
16244   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16245   int UNUSED written = 0;
16246   IADDR UNUSED pc = abuf->addr;
16247   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16248
16249 if (EQSI (FLD (f_ae), 0)) {
16250 frvbf_data_cache_invalidate (current_cpu, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), -1);
16251 } else {
16252 frvbf_data_cache_invalidate (current_cpu, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), FLD (f_ae));
16253 }
16254
16255   return vpc;
16256 #undef FLD
16257 }
16258
16259 /* dcf: dcf$pack @($GRi,$GRj) */
16260
16261 static SEM_PC
16262 SEM_FN_NAME (frvbf,dcf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16263 {
16264 #define FLD(f) abuf->fields.sfmt_icpl.f
16265   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16266   int UNUSED written = 0;
16267   IADDR UNUSED pc = abuf->addr;
16268   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16269
16270 frvbf_data_cache_flush (current_cpu, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), 0);
16271
16272   return vpc;
16273 #undef FLD
16274 }
16275
16276 /* dcef: dcef$pack @($GRi,$GRj),$ae */
16277
16278 static SEM_PC
16279 SEM_FN_NAME (frvbf,dcef) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16280 {
16281 #define FLD(f) abuf->fields.sfmt_icei.f
16282   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16283   int UNUSED written = 0;
16284   IADDR UNUSED pc = abuf->addr;
16285   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16286
16287 if (EQSI (FLD (f_ae), 0)) {
16288 frvbf_data_cache_flush (current_cpu, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), -1);
16289 } else {
16290 frvbf_data_cache_flush (current_cpu, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), FLD (f_ae));
16291 }
16292
16293   return vpc;
16294 #undef FLD
16295 }
16296
16297 /* witlb: witlb$pack $GRk,@($GRi,$GRj) */
16298
16299 static SEM_PC
16300 SEM_FN_NAME (frvbf,witlb) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16301 {
16302 #define FLD(f) abuf->fields.fmt_empty.f
16303   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16304   int UNUSED written = 0;
16305   IADDR UNUSED pc = abuf->addr;
16306   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16307
16308 ((void) 0); /*nop*/
16309
16310   return vpc;
16311 #undef FLD
16312 }
16313
16314 /* wdtlb: wdtlb$pack $GRk,@($GRi,$GRj) */
16315
16316 static SEM_PC
16317 SEM_FN_NAME (frvbf,wdtlb) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16318 {
16319 #define FLD(f) abuf->fields.fmt_empty.f
16320   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16321   int UNUSED written = 0;
16322   IADDR UNUSED pc = abuf->addr;
16323   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16324
16325 ((void) 0); /*nop*/
16326
16327   return vpc;
16328 #undef FLD
16329 }
16330
16331 /* itlbi: itlbi$pack @($GRi,$GRj) */
16332
16333 static SEM_PC
16334 SEM_FN_NAME (frvbf,itlbi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16335 {
16336 #define FLD(f) abuf->fields.fmt_empty.f
16337   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16338   int UNUSED written = 0;
16339   IADDR UNUSED pc = abuf->addr;
16340   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16341
16342 ((void) 0); /*nop*/
16343
16344   return vpc;
16345 #undef FLD
16346 }
16347
16348 /* dtlbi: dtlbi$pack @($GRi,$GRj) */
16349
16350 static SEM_PC
16351 SEM_FN_NAME (frvbf,dtlbi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16352 {
16353 #define FLD(f) abuf->fields.fmt_empty.f
16354   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16355   int UNUSED written = 0;
16356   IADDR UNUSED pc = abuf->addr;
16357   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16358
16359 ((void) 0); /*nop*/
16360
16361   return vpc;
16362 #undef FLD
16363 }
16364
16365 /* icpl: icpl$pack $GRi,$GRj,$lock */
16366
16367 static SEM_PC
16368 SEM_FN_NAME (frvbf,icpl) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16369 {
16370 #define FLD(f) abuf->fields.sfmt_icpl.f
16371   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16372   int UNUSED written = 0;
16373   IADDR UNUSED pc = abuf->addr;
16374   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16375
16376 frvbf_insn_cache_preload (current_cpu, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), FLD (f_lock));
16377
16378   return vpc;
16379 #undef FLD
16380 }
16381
16382 /* dcpl: dcpl$pack $GRi,$GRj,$lock */
16383
16384 static SEM_PC
16385 SEM_FN_NAME (frvbf,dcpl) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16386 {
16387 #define FLD(f) abuf->fields.sfmt_icpl.f
16388   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16389   int UNUSED written = 0;
16390   IADDR UNUSED pc = abuf->addr;
16391   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16392
16393 frvbf_data_cache_preload (current_cpu, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), FLD (f_lock));
16394
16395   return vpc;
16396 #undef FLD
16397 }
16398
16399 /* icul: icul$pack $GRi */
16400
16401 static SEM_PC
16402 SEM_FN_NAME (frvbf,icul) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16403 {
16404 #define FLD(f) abuf->fields.sfmt_jmpil.f
16405   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16406   int UNUSED written = 0;
16407   IADDR UNUSED pc = abuf->addr;
16408   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16409
16410 frvbf_insn_cache_unlock (current_cpu, GET_H_GR (FLD (f_GRi)));
16411
16412   return vpc;
16413 #undef FLD
16414 }
16415
16416 /* dcul: dcul$pack $GRi */
16417
16418 static SEM_PC
16419 SEM_FN_NAME (frvbf,dcul) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16420 {
16421 #define FLD(f) abuf->fields.sfmt_jmpil.f
16422   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16423   int UNUSED written = 0;
16424   IADDR UNUSED pc = abuf->addr;
16425   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16426
16427 frvbf_data_cache_unlock (current_cpu, GET_H_GR (FLD (f_GRi)));
16428
16429   return vpc;
16430 #undef FLD
16431 }
16432
16433 /* bar: bar$pack */
16434
16435 static SEM_PC
16436 SEM_FN_NAME (frvbf,bar) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16437 {
16438 #define FLD(f) abuf->fields.fmt_empty.f
16439   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16440   int UNUSED written = 0;
16441   IADDR UNUSED pc = abuf->addr;
16442   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16443
16444 ((void) 0); /*nop*/
16445
16446   return vpc;
16447 #undef FLD
16448 }
16449
16450 /* membar: membar$pack */
16451
16452 static SEM_PC
16453 SEM_FN_NAME (frvbf,membar) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16454 {
16455 #define FLD(f) abuf->fields.fmt_empty.f
16456   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16457   int UNUSED written = 0;
16458   IADDR UNUSED pc = abuf->addr;
16459   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16460
16461 ((void) 0); /*nop*/
16462
16463   return vpc;
16464 #undef FLD
16465 }
16466
16467 /* cop1: cop1$pack $s6_1,$CPRi,$CPRj,$CPRk */
16468
16469 static SEM_PC
16470 SEM_FN_NAME (frvbf,cop1) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16471 {
16472 #define FLD(f) abuf->fields.fmt_empty.f
16473   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16474   int UNUSED written = 0;
16475   IADDR UNUSED pc = abuf->addr;
16476   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16477
16478 ((void) 0); /*nop*/
16479
16480   return vpc;
16481 #undef FLD
16482 }
16483
16484 /* cop2: cop2$pack $s6_1,$CPRi,$CPRj,$CPRk */
16485
16486 static SEM_PC
16487 SEM_FN_NAME (frvbf,cop2) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16488 {
16489 #define FLD(f) abuf->fields.fmt_empty.f
16490   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16491   int UNUSED written = 0;
16492   IADDR UNUSED pc = abuf->addr;
16493   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16494
16495 ((void) 0); /*nop*/
16496
16497   return vpc;
16498 #undef FLD
16499 }
16500
16501 /* clrgr: clrgr$pack $GRk */
16502
16503 static SEM_PC
16504 SEM_FN_NAME (frvbf,clrgr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16505 {
16506 #define FLD(f) abuf->fields.sfmt_swapi.f
16507   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16508   int UNUSED written = 0;
16509   IADDR UNUSED pc = abuf->addr;
16510   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16511
16512 {
16513 frv_ref_SI (GET_H_GR (FLD (f_GRk)));
16514 frvbf_clear_ne_flags (current_cpu, FLD (f_GRk), 0);
16515 }
16516
16517   return vpc;
16518 #undef FLD
16519 }
16520
16521 /* clrfr: clrfr$pack $FRk */
16522
16523 static SEM_PC
16524 SEM_FN_NAME (frvbf,clrfr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16525 {
16526 #define FLD(f) abuf->fields.sfmt_cfmadds.f
16527   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16528   int UNUSED written = 0;
16529   IADDR UNUSED pc = abuf->addr;
16530   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16531
16532 {
16533 frv_ref_SI (GET_H_FR (FLD (f_FRk)));
16534 frvbf_clear_ne_flags (current_cpu, FLD (f_FRk), 1);
16535 }
16536
16537   return vpc;
16538 #undef FLD
16539 }
16540
16541 /* clrga: clrga$pack */
16542
16543 static SEM_PC
16544 SEM_FN_NAME (frvbf,clrga) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16545 {
16546 #define FLD(f) abuf->fields.fmt_empty.f
16547   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16548   int UNUSED written = 0;
16549   IADDR UNUSED pc = abuf->addr;
16550   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16551
16552 frvbf_clear_ne_flags (current_cpu, -1, 0);
16553
16554   return vpc;
16555 #undef FLD
16556 }
16557
16558 /* clrfa: clrfa$pack */
16559
16560 static SEM_PC
16561 SEM_FN_NAME (frvbf,clrfa) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16562 {
16563 #define FLD(f) abuf->fields.fmt_empty.f
16564   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16565   int UNUSED written = 0;
16566   IADDR UNUSED pc = abuf->addr;
16567   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16568
16569 frvbf_clear_ne_flags (current_cpu, -1, 1);
16570
16571   return vpc;
16572 #undef FLD
16573 }
16574
16575 /* commitgr: commitgr$pack $GRk */
16576
16577 static SEM_PC
16578 SEM_FN_NAME (frvbf,commitgr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16579 {
16580 #define FLD(f) abuf->fields.sfmt_setlos.f
16581   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16582   int UNUSED written = 0;
16583   IADDR UNUSED pc = abuf->addr;
16584   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16585
16586 frvbf_commit (current_cpu, FLD (f_GRk), 0);
16587
16588   return vpc;
16589 #undef FLD
16590 }
16591
16592 /* commitfr: commitfr$pack $FRk */
16593
16594 static SEM_PC
16595 SEM_FN_NAME (frvbf,commitfr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16596 {
16597 #define FLD(f) abuf->fields.sfmt_mhsethis.f
16598   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16599   int UNUSED written = 0;
16600   IADDR UNUSED pc = abuf->addr;
16601   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16602
16603 frvbf_commit (current_cpu, FLD (f_FRk), 1);
16604
16605   return vpc;
16606 #undef FLD
16607 }
16608
16609 /* commitga: commitga$pack */
16610
16611 static SEM_PC
16612 SEM_FN_NAME (frvbf,commitga) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16613 {
16614 #define FLD(f) abuf->fields.fmt_empty.f
16615   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16616   int UNUSED written = 0;
16617   IADDR UNUSED pc = abuf->addr;
16618   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16619
16620 frvbf_commit (current_cpu, -1, 0);
16621
16622   return vpc;
16623 #undef FLD
16624 }
16625
16626 /* commitfa: commitfa$pack */
16627
16628 static SEM_PC
16629 SEM_FN_NAME (frvbf,commitfa) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16630 {
16631 #define FLD(f) abuf->fields.fmt_empty.f
16632   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16633   int UNUSED written = 0;
16634   IADDR UNUSED pc = abuf->addr;
16635   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16636
16637 frvbf_commit (current_cpu, -1, 1);
16638
16639   return vpc;
16640 #undef FLD
16641 }
16642
16643 /* fitos: fitos$pack $FRintj,$FRk */
16644
16645 static SEM_PC
16646 SEM_FN_NAME (frvbf,fitos) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16647 {
16648 #define FLD(f) abuf->fields.sfmt_fditos.f
16649   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16650   int UNUSED written = 0;
16651   IADDR UNUSED pc = abuf->addr;
16652   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16653
16654   {
16655     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->floatsisf) (CGEN_CPU_FPU (current_cpu), GET_H_FR_INT (FLD (f_FRj)));
16656     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
16657     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
16658   }
16659
16660   return vpc;
16661 #undef FLD
16662 }
16663
16664 /* fstoi: fstoi$pack $FRj,$FRintk */
16665
16666 static SEM_PC
16667 SEM_FN_NAME (frvbf,fstoi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16668 {
16669 #define FLD(f) abuf->fields.sfmt_fdstoi.f
16670   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16671   int UNUSED written = 0;
16672   IADDR UNUSED pc = abuf->addr;
16673   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16674
16675   {
16676     SI opval = (* CGEN_CPU_FPU (current_cpu)->ops->fixsfsi) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
16677     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
16678     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
16679   }
16680
16681   return vpc;
16682 #undef FLD
16683 }
16684
16685 /* fitod: fitod$pack $FRintj,$FRdoublek */
16686
16687 static SEM_PC
16688 SEM_FN_NAME (frvbf,fitod) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16689 {
16690 #define FLD(f) abuf->fields.sfmt_fitod.f
16691   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16692   int UNUSED written = 0;
16693   IADDR UNUSED pc = abuf->addr;
16694   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16695
16696   {
16697     DF opval = (* CGEN_CPU_FPU (current_cpu)->ops->floatsidf) (CGEN_CPU_FPU (current_cpu), GET_H_FR_INT (FLD (f_FRj)));
16698     sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
16699     TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
16700   }
16701
16702   return vpc;
16703 #undef FLD
16704 }
16705
16706 /* fdtoi: fdtoi$pack $FRdoublej,$FRintk */
16707
16708 static SEM_PC
16709 SEM_FN_NAME (frvbf,fdtoi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16710 {
16711 #define FLD(f) abuf->fields.sfmt_fdtoi.f
16712   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16713   int UNUSED written = 0;
16714   IADDR UNUSED pc = abuf->addr;
16715   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16716
16717   {
16718     SI opval = (* CGEN_CPU_FPU (current_cpu)->ops->fixdfsi) (CGEN_CPU_FPU (current_cpu), GET_H_FR_DOUBLE (FLD (f_FRj)));
16719     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
16720     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
16721   }
16722
16723   return vpc;
16724 #undef FLD
16725 }
16726
16727 /* fditos: fditos$pack $FRintj,$FRk */
16728
16729 static SEM_PC
16730 SEM_FN_NAME (frvbf,fditos) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16731 {
16732 #define FLD(f) abuf->fields.sfmt_fditos.f
16733   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16734   int UNUSED written = 0;
16735   IADDR UNUSED pc = abuf->addr;
16736   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16737
16738 {
16739   {
16740     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->floatsisf) (CGEN_CPU_FPU (current_cpu), GET_H_FR_INT (FLD (f_FRj)));
16741     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
16742     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
16743   }
16744   {
16745     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->floatsisf) (CGEN_CPU_FPU (current_cpu), GET_H_FR_INT (((FLD (f_FRj)) + (1))));
16746     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
16747     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
16748   }
16749 }
16750
16751   return vpc;
16752 #undef FLD
16753 }
16754
16755 /* fdstoi: fdstoi$pack $FRj,$FRintk */
16756
16757 static SEM_PC
16758 SEM_FN_NAME (frvbf,fdstoi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16759 {
16760 #define FLD(f) abuf->fields.sfmt_fdstoi.f
16761   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16762   int UNUSED written = 0;
16763   IADDR UNUSED pc = abuf->addr;
16764   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16765
16766 {
16767   {
16768     SI opval = (* CGEN_CPU_FPU (current_cpu)->ops->fixsfsi) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
16769     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
16770     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
16771   }
16772   {
16773     USI opval = (* CGEN_CPU_FPU (current_cpu)->ops->fixsfsi) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRj)) + (1))));
16774     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (1)), opval);
16775     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
16776   }
16777 }
16778
16779   return vpc;
16780 #undef FLD
16781 }
16782
16783 /* nfditos: nfditos$pack $FRintj,$FRk */
16784
16785 static SEM_PC
16786 SEM_FN_NAME (frvbf,nfditos) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16787 {
16788 #define FLD(f) abuf->fields.sfmt_fditos.f
16789   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16790   int UNUSED written = 0;
16791   IADDR UNUSED pc = abuf->addr;
16792   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16793
16794 {
16795 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
16796   {
16797     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->floatsisf) (CGEN_CPU_FPU (current_cpu), GET_H_FR_INT (FLD (f_FRj)));
16798     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
16799     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
16800   }
16801 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
16802   {
16803     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->floatsisf) (CGEN_CPU_FPU (current_cpu), GET_H_FR_INT (((FLD (f_FRj)) + (1))));
16804     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
16805     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
16806   }
16807 }
16808
16809   return vpc;
16810 #undef FLD
16811 }
16812
16813 /* nfdstoi: nfdstoi$pack $FRj,$FRintk */
16814
16815 static SEM_PC
16816 SEM_FN_NAME (frvbf,nfdstoi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16817 {
16818 #define FLD(f) abuf->fields.sfmt_fdstoi.f
16819   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16820   int UNUSED written = 0;
16821   IADDR UNUSED pc = abuf->addr;
16822   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16823
16824 {
16825 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
16826   {
16827     SI opval = (* CGEN_CPU_FPU (current_cpu)->ops->fixsfsi) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
16828     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
16829     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
16830   }
16831 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
16832   {
16833     USI opval = (* CGEN_CPU_FPU (current_cpu)->ops->fixsfsi) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRj)) + (1))));
16834     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (1)), opval);
16835     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
16836   }
16837 }
16838
16839   return vpc;
16840 #undef FLD
16841 }
16842
16843 /* cfitos: cfitos$pack $FRintj,$FRk,$CCi,$cond */
16844
16845 static SEM_PC
16846 SEM_FN_NAME (frvbf,cfitos) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16847 {
16848 #define FLD(f) abuf->fields.sfmt_cfitos.f
16849   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16850   int UNUSED written = 0;
16851   IADDR UNUSED pc = abuf->addr;
16852   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16853
16854 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
16855   {
16856     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->floatsisf) (CGEN_CPU_FPU (current_cpu), GET_H_FR_INT (FLD (f_FRj)));
16857     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
16858     written |= (1 << 3);
16859     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
16860   }
16861 }
16862
16863   abuf->written = written;
16864   return vpc;
16865 #undef FLD
16866 }
16867
16868 /* cfstoi: cfstoi$pack $FRj,$FRintk,$CCi,$cond */
16869
16870 static SEM_PC
16871 SEM_FN_NAME (frvbf,cfstoi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16872 {
16873 #define FLD(f) abuf->fields.sfmt_cfstoi.f
16874   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16875   int UNUSED written = 0;
16876   IADDR UNUSED pc = abuf->addr;
16877   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16878
16879 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
16880   {
16881     SI opval = (* CGEN_CPU_FPU (current_cpu)->ops->fixsfsi) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
16882     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
16883     written |= (1 << 3);
16884     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
16885   }
16886 }
16887
16888   abuf->written = written;
16889   return vpc;
16890 #undef FLD
16891 }
16892
16893 /* nfitos: nfitos$pack $FRintj,$FRk */
16894
16895 static SEM_PC
16896 SEM_FN_NAME (frvbf,nfitos) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16897 {
16898 #define FLD(f) abuf->fields.sfmt_fditos.f
16899   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16900   int UNUSED written = 0;
16901   IADDR UNUSED pc = abuf->addr;
16902   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16903
16904 {
16905 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
16906   {
16907     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->floatsisf) (CGEN_CPU_FPU (current_cpu), GET_H_FR_INT (FLD (f_FRj)));
16908     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
16909     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
16910   }
16911 }
16912
16913   return vpc;
16914 #undef FLD
16915 }
16916
16917 /* nfstoi: nfstoi$pack $FRj,$FRintk */
16918
16919 static SEM_PC
16920 SEM_FN_NAME (frvbf,nfstoi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16921 {
16922 #define FLD(f) abuf->fields.sfmt_fdstoi.f
16923   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16924   int UNUSED written = 0;
16925   IADDR UNUSED pc = abuf->addr;
16926   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16927
16928 {
16929 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
16930   {
16931     SI opval = (* CGEN_CPU_FPU (current_cpu)->ops->fixsfsi) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
16932     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
16933     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
16934   }
16935 }
16936
16937   return vpc;
16938 #undef FLD
16939 }
16940
16941 /* fmovs: fmovs$pack $FRj,$FRk */
16942
16943 static SEM_PC
16944 SEM_FN_NAME (frvbf,fmovs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16945 {
16946 #define FLD(f) abuf->fields.sfmt_cfmadds.f
16947   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16948   int UNUSED written = 0;
16949   IADDR UNUSED pc = abuf->addr;
16950   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16951
16952   {
16953     SF opval = GET_H_FR (FLD (f_FRj));
16954     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
16955     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
16956   }
16957
16958   return vpc;
16959 #undef FLD
16960 }
16961
16962 /* fmovd: fmovd$pack $FRdoublej,$FRdoublek */
16963
16964 static SEM_PC
16965 SEM_FN_NAME (frvbf,fmovd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16966 {
16967 #define FLD(f) abuf->fields.sfmt_fmaddd.f
16968   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16969   int UNUSED written = 0;
16970   IADDR UNUSED pc = abuf->addr;
16971   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16972
16973   {
16974     DF opval = GET_H_FR_DOUBLE (FLD (f_FRj));
16975     sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
16976     TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
16977   }
16978
16979   return vpc;
16980 #undef FLD
16981 }
16982
16983 /* fdmovs: fdmovs$pack $FRj,$FRk */
16984
16985 static SEM_PC
16986 SEM_FN_NAME (frvbf,fdmovs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16987 {
16988 #define FLD(f) abuf->fields.sfmt_fdmadds.f
16989   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16990   int UNUSED written = 0;
16991   IADDR UNUSED pc = abuf->addr;
16992   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16993
16994 {
16995   {
16996     SF opval = GET_H_FR (FLD (f_FRj));
16997     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
16998     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
16999   }
17000   {
17001     SF opval = GET_H_FR (((FLD (f_FRj)) + (1)));
17002     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
17003     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17004   }
17005 }
17006
17007   return vpc;
17008 #undef FLD
17009 }
17010
17011 /* cfmovs: cfmovs$pack $FRj,$FRk,$CCi,$cond */
17012
17013 static SEM_PC
17014 SEM_FN_NAME (frvbf,cfmovs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17015 {
17016 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17017   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17018   int UNUSED written = 0;
17019   IADDR UNUSED pc = abuf->addr;
17020   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17021
17022 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
17023   {
17024     SF opval = GET_H_FR (FLD (f_FRj));
17025     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17026     written |= (1 << 3);
17027     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17028   }
17029 }
17030
17031   abuf->written = written;
17032   return vpc;
17033 #undef FLD
17034 }
17035
17036 /* fnegs: fnegs$pack $FRj,$FRk */
17037
17038 static SEM_PC
17039 SEM_FN_NAME (frvbf,fnegs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17040 {
17041 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17042   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17043   int UNUSED written = 0;
17044   IADDR UNUSED pc = abuf->addr;
17045   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17046
17047   {
17048     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->negsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17049     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17050     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17051   }
17052
17053   return vpc;
17054 #undef FLD
17055 }
17056
17057 /* fnegd: fnegd$pack $FRdoublej,$FRdoublek */
17058
17059 static SEM_PC
17060 SEM_FN_NAME (frvbf,fnegd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17061 {
17062 #define FLD(f) abuf->fields.sfmt_fmaddd.f
17063   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17064   int UNUSED written = 0;
17065   IADDR UNUSED pc = abuf->addr;
17066   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17067
17068   {
17069     DF opval = (* CGEN_CPU_FPU (current_cpu)->ops->negdf) (CGEN_CPU_FPU (current_cpu), GET_H_FR_DOUBLE (FLD (f_FRj)));
17070     sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
17071     TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
17072   }
17073
17074   return vpc;
17075 #undef FLD
17076 }
17077
17078 /* fdnegs: fdnegs$pack $FRj,$FRk */
17079
17080 static SEM_PC
17081 SEM_FN_NAME (frvbf,fdnegs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17082 {
17083 #define FLD(f) abuf->fields.sfmt_fdmadds.f
17084   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17085   int UNUSED written = 0;
17086   IADDR UNUSED pc = abuf->addr;
17087   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17088
17089 {
17090   {
17091     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->negsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17092     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17093     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17094   }
17095   {
17096     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->negsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRj)) + (1))));
17097     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
17098     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17099   }
17100 }
17101
17102   return vpc;
17103 #undef FLD
17104 }
17105
17106 /* cfnegs: cfnegs$pack $FRj,$FRk,$CCi,$cond */
17107
17108 static SEM_PC
17109 SEM_FN_NAME (frvbf,cfnegs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17110 {
17111 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17112   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17113   int UNUSED written = 0;
17114   IADDR UNUSED pc = abuf->addr;
17115   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17116
17117 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
17118   {
17119     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->negsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17120     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17121     written |= (1 << 3);
17122     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17123   }
17124 }
17125
17126   abuf->written = written;
17127   return vpc;
17128 #undef FLD
17129 }
17130
17131 /* fabss: fabss$pack $FRj,$FRk */
17132
17133 static SEM_PC
17134 SEM_FN_NAME (frvbf,fabss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17135 {
17136 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17137   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17138   int UNUSED written = 0;
17139   IADDR UNUSED pc = abuf->addr;
17140   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17141
17142   {
17143     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->abssf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17144     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17145     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17146   }
17147
17148   return vpc;
17149 #undef FLD
17150 }
17151
17152 /* fabsd: fabsd$pack $FRdoublej,$FRdoublek */
17153
17154 static SEM_PC
17155 SEM_FN_NAME (frvbf,fabsd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17156 {
17157 #define FLD(f) abuf->fields.sfmt_fmaddd.f
17158   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17159   int UNUSED written = 0;
17160   IADDR UNUSED pc = abuf->addr;
17161   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17162
17163   {
17164     DF opval = (* CGEN_CPU_FPU (current_cpu)->ops->absdf) (CGEN_CPU_FPU (current_cpu), GET_H_FR_DOUBLE (FLD (f_FRj)));
17165     sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
17166     TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
17167   }
17168
17169   return vpc;
17170 #undef FLD
17171 }
17172
17173 /* fdabss: fdabss$pack $FRj,$FRk */
17174
17175 static SEM_PC
17176 SEM_FN_NAME (frvbf,fdabss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17177 {
17178 #define FLD(f) abuf->fields.sfmt_fdmadds.f
17179   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17180   int UNUSED written = 0;
17181   IADDR UNUSED pc = abuf->addr;
17182   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17183
17184 {
17185   {
17186     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->abssf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17187     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17188     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17189   }
17190   {
17191     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->abssf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRj)) + (1))));
17192     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
17193     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17194   }
17195 }
17196
17197   return vpc;
17198 #undef FLD
17199 }
17200
17201 /* cfabss: cfabss$pack $FRj,$FRk,$CCi,$cond */
17202
17203 static SEM_PC
17204 SEM_FN_NAME (frvbf,cfabss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17205 {
17206 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17207   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17208   int UNUSED written = 0;
17209   IADDR UNUSED pc = abuf->addr;
17210   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17211
17212 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
17213   {
17214     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->abssf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17215     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17216     written |= (1 << 3);
17217     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17218   }
17219 }
17220
17221   abuf->written = written;
17222   return vpc;
17223 #undef FLD
17224 }
17225
17226 /* fsqrts: fsqrts$pack $FRj,$FRk */
17227
17228 static SEM_PC
17229 SEM_FN_NAME (frvbf,fsqrts) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17230 {
17231 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17232   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17233   int UNUSED written = 0;
17234   IADDR UNUSED pc = abuf->addr;
17235   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17236
17237   {
17238     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->sqrtsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17239     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17240     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17241   }
17242
17243   return vpc;
17244 #undef FLD
17245 }
17246
17247 /* fdsqrts: fdsqrts$pack $FRj,$FRk */
17248
17249 static SEM_PC
17250 SEM_FN_NAME (frvbf,fdsqrts) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17251 {
17252 #define FLD(f) abuf->fields.sfmt_fdmadds.f
17253   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17254   int UNUSED written = 0;
17255   IADDR UNUSED pc = abuf->addr;
17256   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17257
17258 {
17259   {
17260     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->sqrtsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17261     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17262     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17263   }
17264   {
17265     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->sqrtsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRj)) + (1))));
17266     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
17267     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17268   }
17269 }
17270
17271   return vpc;
17272 #undef FLD
17273 }
17274
17275 /* nfdsqrts: nfdsqrts$pack $FRj,$FRk */
17276
17277 static SEM_PC
17278 SEM_FN_NAME (frvbf,nfdsqrts) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17279 {
17280 #define FLD(f) abuf->fields.sfmt_fdmadds.f
17281   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17282   int UNUSED written = 0;
17283   IADDR UNUSED pc = abuf->addr;
17284   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17285
17286 {
17287 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
17288   {
17289     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->sqrtsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17290     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17291     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17292   }
17293 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
17294   {
17295     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->sqrtsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRj)) + (1))));
17296     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
17297     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17298   }
17299 }
17300
17301   return vpc;
17302 #undef FLD
17303 }
17304
17305 /* fsqrtd: fsqrtd$pack $FRdoublej,$FRdoublek */
17306
17307 static SEM_PC
17308 SEM_FN_NAME (frvbf,fsqrtd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17309 {
17310 #define FLD(f) abuf->fields.sfmt_fmaddd.f
17311   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17312   int UNUSED written = 0;
17313   IADDR UNUSED pc = abuf->addr;
17314   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17315
17316   {
17317     DF opval = (* CGEN_CPU_FPU (current_cpu)->ops->sqrtdf) (CGEN_CPU_FPU (current_cpu), GET_H_FR_DOUBLE (FLD (f_FRj)));
17318     sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
17319     TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
17320   }
17321
17322   return vpc;
17323 #undef FLD
17324 }
17325
17326 /* cfsqrts: cfsqrts$pack $FRj,$FRk,$CCi,$cond */
17327
17328 static SEM_PC
17329 SEM_FN_NAME (frvbf,cfsqrts) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17330 {
17331 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17332   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17333   int UNUSED written = 0;
17334   IADDR UNUSED pc = abuf->addr;
17335   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17336
17337 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
17338   {
17339     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->sqrtsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17340     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17341     written |= (1 << 3);
17342     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17343   }
17344 }
17345
17346   abuf->written = written;
17347   return vpc;
17348 #undef FLD
17349 }
17350
17351 /* nfsqrts: nfsqrts$pack $FRj,$FRk */
17352
17353 static SEM_PC
17354 SEM_FN_NAME (frvbf,nfsqrts) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17355 {
17356 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17357   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17358   int UNUSED written = 0;
17359   IADDR UNUSED pc = abuf->addr;
17360   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17361
17362 {
17363 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
17364   {
17365     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->sqrtsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17366     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17367     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17368   }
17369 }
17370
17371   return vpc;
17372 #undef FLD
17373 }
17374
17375 /* fadds: fadds$pack $FRi,$FRj,$FRk */
17376
17377 static SEM_PC
17378 SEM_FN_NAME (frvbf,fadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17379 {
17380 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17381   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17382   int UNUSED written = 0;
17383   IADDR UNUSED pc = abuf->addr;
17384   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17385
17386   {
17387     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)));
17388     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17389     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17390   }
17391
17392   return vpc;
17393 #undef FLD
17394 }
17395
17396 /* fsubs: fsubs$pack $FRi,$FRj,$FRk */
17397
17398 static SEM_PC
17399 SEM_FN_NAME (frvbf,fsubs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17400 {
17401 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17402   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17403   int UNUSED written = 0;
17404   IADDR UNUSED pc = abuf->addr;
17405   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17406
17407   {
17408     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)));
17409     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17410     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17411   }
17412
17413   return vpc;
17414 #undef FLD
17415 }
17416
17417 /* fmuls: fmuls$pack $FRi,$FRj,$FRk */
17418
17419 static SEM_PC
17420 SEM_FN_NAME (frvbf,fmuls) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17421 {
17422 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17423   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17424   int UNUSED written = 0;
17425   IADDR UNUSED pc = abuf->addr;
17426   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17427
17428   {
17429     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)));
17430     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17431     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17432   }
17433
17434   return vpc;
17435 #undef FLD
17436 }
17437
17438 /* fdivs: fdivs$pack $FRi,$FRj,$FRk */
17439
17440 static SEM_PC
17441 SEM_FN_NAME (frvbf,fdivs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17442 {
17443 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17444   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17445   int UNUSED written = 0;
17446   IADDR UNUSED pc = abuf->addr;
17447   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17448
17449   {
17450     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)));
17451     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17452     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17453   }
17454
17455   return vpc;
17456 #undef FLD
17457 }
17458
17459 /* faddd: faddd$pack $FRdoublei,$FRdoublej,$FRdoublek */
17460
17461 static SEM_PC
17462 SEM_FN_NAME (frvbf,faddd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17463 {
17464 #define FLD(f) abuf->fields.sfmt_fmaddd.f
17465   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17466   int UNUSED written = 0;
17467   IADDR UNUSED pc = abuf->addr;
17468   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17469
17470   {
17471     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)));
17472     sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
17473     TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
17474   }
17475
17476   return vpc;
17477 #undef FLD
17478 }
17479
17480 /* fsubd: fsubd$pack $FRdoublei,$FRdoublej,$FRdoublek */
17481
17482 static SEM_PC
17483 SEM_FN_NAME (frvbf,fsubd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17484 {
17485 #define FLD(f) abuf->fields.sfmt_fmaddd.f
17486   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17487   int UNUSED written = 0;
17488   IADDR UNUSED pc = abuf->addr;
17489   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17490
17491   {
17492     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)));
17493     sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
17494     TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
17495   }
17496
17497   return vpc;
17498 #undef FLD
17499 }
17500
17501 /* fmuld: fmuld$pack $FRdoublei,$FRdoublej,$FRdoublek */
17502
17503 static SEM_PC
17504 SEM_FN_NAME (frvbf,fmuld) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17505 {
17506 #define FLD(f) abuf->fields.sfmt_fmaddd.f
17507   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17508   int UNUSED written = 0;
17509   IADDR UNUSED pc = abuf->addr;
17510   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17511
17512   {
17513     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)));
17514     sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
17515     TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
17516   }
17517
17518   return vpc;
17519 #undef FLD
17520 }
17521
17522 /* fdivd: fdivd$pack $FRdoublei,$FRdoublej,$FRdoublek */
17523
17524 static SEM_PC
17525 SEM_FN_NAME (frvbf,fdivd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17526 {
17527 #define FLD(f) abuf->fields.sfmt_fmaddd.f
17528   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17529   int UNUSED written = 0;
17530   IADDR UNUSED pc = abuf->addr;
17531   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17532
17533   {
17534     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)));
17535     sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
17536     TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
17537   }
17538
17539   return vpc;
17540 #undef FLD
17541 }
17542
17543 /* cfadds: cfadds$pack $FRi,$FRj,$FRk,$CCi,$cond */
17544
17545 static SEM_PC
17546 SEM_FN_NAME (frvbf,cfadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17547 {
17548 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17549   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17550   int UNUSED written = 0;
17551   IADDR UNUSED pc = abuf->addr;
17552   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17553
17554 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
17555   {
17556     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)));
17557     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17558     written |= (1 << 4);
17559     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17560   }
17561 }
17562
17563   abuf->written = written;
17564   return vpc;
17565 #undef FLD
17566 }
17567
17568 /* cfsubs: cfsubs$pack $FRi,$FRj,$FRk,$CCi,$cond */
17569
17570 static SEM_PC
17571 SEM_FN_NAME (frvbf,cfsubs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17572 {
17573 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17574   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17575   int UNUSED written = 0;
17576   IADDR UNUSED pc = abuf->addr;
17577   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17578
17579 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
17580   {
17581     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)));
17582     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17583     written |= (1 << 4);
17584     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17585   }
17586 }
17587
17588   abuf->written = written;
17589   return vpc;
17590 #undef FLD
17591 }
17592
17593 /* cfmuls: cfmuls$pack $FRi,$FRj,$FRk,$CCi,$cond */
17594
17595 static SEM_PC
17596 SEM_FN_NAME (frvbf,cfmuls) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17597 {
17598 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17599   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17600   int UNUSED written = 0;
17601   IADDR UNUSED pc = abuf->addr;
17602   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17603
17604 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
17605   {
17606     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)));
17607     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17608     written |= (1 << 4);
17609     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17610   }
17611 }
17612
17613   abuf->written = written;
17614   return vpc;
17615 #undef FLD
17616 }
17617
17618 /* cfdivs: cfdivs$pack $FRi,$FRj,$FRk,$CCi,$cond */
17619
17620 static SEM_PC
17621 SEM_FN_NAME (frvbf,cfdivs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17622 {
17623 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17624   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17625   int UNUSED written = 0;
17626   IADDR UNUSED pc = abuf->addr;
17627   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17628
17629 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
17630   {
17631     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)));
17632     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17633     written |= (1 << 4);
17634     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17635   }
17636 }
17637
17638   abuf->written = written;
17639   return vpc;
17640 #undef FLD
17641 }
17642
17643 /* nfadds: nfadds$pack $FRi,$FRj,$FRk */
17644
17645 static SEM_PC
17646 SEM_FN_NAME (frvbf,nfadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17647 {
17648 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17649   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17650   int UNUSED written = 0;
17651   IADDR UNUSED pc = abuf->addr;
17652   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17653
17654 {
17655 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
17656   {
17657     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)));
17658     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17659     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17660   }
17661 }
17662
17663   return vpc;
17664 #undef FLD
17665 }
17666
17667 /* nfsubs: nfsubs$pack $FRi,$FRj,$FRk */
17668
17669 static SEM_PC
17670 SEM_FN_NAME (frvbf,nfsubs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17671 {
17672 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17673   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17674   int UNUSED written = 0;
17675   IADDR UNUSED pc = abuf->addr;
17676   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17677
17678 {
17679 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
17680   {
17681     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)));
17682     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17683     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17684   }
17685 }
17686
17687   return vpc;
17688 #undef FLD
17689 }
17690
17691 /* nfmuls: nfmuls$pack $FRi,$FRj,$FRk */
17692
17693 static SEM_PC
17694 SEM_FN_NAME (frvbf,nfmuls) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17695 {
17696 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17697   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17698   int UNUSED written = 0;
17699   IADDR UNUSED pc = abuf->addr;
17700   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17701
17702 {
17703 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
17704   {
17705     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)));
17706     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17707     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17708   }
17709 }
17710
17711   return vpc;
17712 #undef FLD
17713 }
17714
17715 /* nfdivs: nfdivs$pack $FRi,$FRj,$FRk */
17716
17717 static SEM_PC
17718 SEM_FN_NAME (frvbf,nfdivs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17719 {
17720 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17721   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17722   int UNUSED written = 0;
17723   IADDR UNUSED pc = abuf->addr;
17724   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17725
17726 {
17727 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
17728   {
17729     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)));
17730     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17731     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17732   }
17733 }
17734
17735   return vpc;
17736 #undef FLD
17737 }
17738
17739 /* fcmps: fcmps$pack $FRi,$FRj,$FCCi_2 */
17740
17741 static SEM_PC
17742 SEM_FN_NAME (frvbf,fcmps) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17743 {
17744 #define FLD(f) abuf->fields.sfmt_cfcmps.f
17745   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17746   int UNUSED written = 0;
17747   IADDR UNUSED pc = abuf->addr;
17748   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17749
17750 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)))) {
17751   {
17752     UQI opval = 2;
17753     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17754     written |= (1 << 2);
17755     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17756   }
17757 } else {
17758 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)))) {
17759   {
17760     UQI opval = 8;
17761     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17762     written |= (1 << 2);
17763     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17764   }
17765 } else {
17766 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)))) {
17767   {
17768     UQI opval = 4;
17769     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17770     written |= (1 << 2);
17771     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17772   }
17773 } else {
17774   {
17775     UQI opval = 1;
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 }
17781 }
17782 }
17783
17784   abuf->written = written;
17785   return vpc;
17786 #undef FLD
17787 }
17788
17789 /* fcmpd: fcmpd$pack $FRdoublei,$FRdoublej,$FCCi_2 */
17790
17791 static SEM_PC
17792 SEM_FN_NAME (frvbf,fcmpd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17793 {
17794 #define FLD(f) abuf->fields.sfmt_fcmpd.f
17795   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17796   int UNUSED written = 0;
17797   IADDR UNUSED pc = abuf->addr;
17798   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17799
17800 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)))) {
17801   {
17802     UQI opval = 2;
17803     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17804     written |= (1 << 2);
17805     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17806   }
17807 } else {
17808 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)))) {
17809   {
17810     UQI opval = 8;
17811     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17812     written |= (1 << 2);
17813     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17814   }
17815 } else {
17816 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)))) {
17817   {
17818     UQI opval = 4;
17819     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17820     written |= (1 << 2);
17821     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17822   }
17823 } else {
17824   {
17825     UQI opval = 1;
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 }
17831 }
17832 }
17833
17834   abuf->written = written;
17835   return vpc;
17836 #undef FLD
17837 }
17838
17839 /* cfcmps: cfcmps$pack $FRi,$FRj,$FCCi_2,$CCi,$cond */
17840
17841 static SEM_PC
17842 SEM_FN_NAME (frvbf,cfcmps) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17843 {
17844 #define FLD(f) abuf->fields.sfmt_cfcmps.f
17845   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17846   int UNUSED written = 0;
17847   IADDR UNUSED pc = abuf->addr;
17848   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17849
17850 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
17851 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)))) {
17852   {
17853     UQI opval = 2;
17854     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17855     written |= (1 << 4);
17856     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17857   }
17858 } else {
17859 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)))) {
17860   {
17861     UQI opval = 8;
17862     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17863     written |= (1 << 4);
17864     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17865   }
17866 } else {
17867 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)))) {
17868   {
17869     UQI opval = 4;
17870     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17871     written |= (1 << 4);
17872     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17873   }
17874 } else {
17875   {
17876     UQI opval = 1;
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 }
17882 }
17883 }
17884 }
17885
17886   abuf->written = written;
17887   return vpc;
17888 #undef FLD
17889 }
17890
17891 /* fdcmps: fdcmps$pack $FRi,$FRj,$FCCi_2 */
17892
17893 static SEM_PC
17894 SEM_FN_NAME (frvbf,fdcmps) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17895 {
17896 #define FLD(f) abuf->fields.sfmt_nfdcmps.f
17897   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17898   int UNUSED written = 0;
17899   IADDR UNUSED pc = abuf->addr;
17900   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17901
17902 {
17903 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)))) {
17904   {
17905     UQI opval = 2;
17906     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17907     written |= (1 << 7);
17908     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17909   }
17910 } else {
17911 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)))) {
17912   {
17913     UQI opval = 8;
17914     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17915     written |= (1 << 7);
17916     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17917   }
17918 } else {
17919 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)))) {
17920   {
17921     UQI opval = 4;
17922     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17923     written |= (1 << 7);
17924     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17925   }
17926 } else {
17927   {
17928     UQI opval = 1;
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 }
17934 }
17935 }
17936 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))))) {
17937   {
17938     UQI opval = 2;
17939     sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCi_2)) + (1))]), opval);
17940     written |= (1 << 8);
17941     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17942   }
17943 } else {
17944 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))))) {
17945   {
17946     UQI opval = 8;
17947     sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCi_2)) + (1))]), opval);
17948     written |= (1 << 8);
17949     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17950   }
17951 } else {
17952 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))))) {
17953   {
17954     UQI opval = 4;
17955     sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCi_2)) + (1))]), opval);
17956     written |= (1 << 8);
17957     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17958   }
17959 } else {
17960   {
17961     UQI opval = 1;
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 }
17967 }
17968 }
17969 }
17970
17971   abuf->written = written;
17972   return vpc;
17973 #undef FLD
17974 }
17975
17976 /* fmadds: fmadds$pack $FRi,$FRj,$FRk */
17977
17978 static SEM_PC
17979 SEM_FN_NAME (frvbf,fmadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17980 {
17981 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17982   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17983   int UNUSED written = 0;
17984   IADDR UNUSED pc = abuf->addr;
17985   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17986
17987   {
17988     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)));
17989     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17990     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17991   }
17992
17993   return vpc;
17994 #undef FLD
17995 }
17996
17997 /* fmsubs: fmsubs$pack $FRi,$FRj,$FRk */
17998
17999 static SEM_PC
18000 SEM_FN_NAME (frvbf,fmsubs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18001 {
18002 #define FLD(f) abuf->fields.sfmt_cfmadds.f
18003   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18004   int UNUSED written = 0;
18005   IADDR UNUSED pc = abuf->addr;
18006   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18007
18008   {
18009     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)));
18010     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18011     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18012   }
18013
18014   return vpc;
18015 #undef FLD
18016 }
18017
18018 /* fmaddd: fmaddd$pack $FRdoublei,$FRdoublej,$FRdoublek */
18019
18020 static SEM_PC
18021 SEM_FN_NAME (frvbf,fmaddd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18022 {
18023 #define FLD(f) abuf->fields.sfmt_fmaddd.f
18024   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18025   int UNUSED written = 0;
18026   IADDR UNUSED pc = abuf->addr;
18027   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18028
18029   {
18030     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)));
18031     sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
18032     TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
18033   }
18034
18035   return vpc;
18036 #undef FLD
18037 }
18038
18039 /* fmsubd: fmsubd$pack $FRdoublei,$FRdoublej,$FRdoublek */
18040
18041 static SEM_PC
18042 SEM_FN_NAME (frvbf,fmsubd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18043 {
18044 #define FLD(f) abuf->fields.sfmt_fmaddd.f
18045   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18046   int UNUSED written = 0;
18047   IADDR UNUSED pc = abuf->addr;
18048   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18049
18050   {
18051     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)));
18052     sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
18053     TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
18054   }
18055
18056   return vpc;
18057 #undef FLD
18058 }
18059
18060 /* fdmadds: fdmadds$pack $FRi,$FRj,$FRk */
18061
18062 static SEM_PC
18063 SEM_FN_NAME (frvbf,fdmadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18064 {
18065 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18066   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18067   int UNUSED written = 0;
18068   IADDR UNUSED pc = abuf->addr;
18069   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18070
18071 {
18072   {
18073     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)));
18074     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18075     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18076   }
18077   {
18078     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))));
18079     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18080     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18081   }
18082 }
18083
18084   return vpc;
18085 #undef FLD
18086 }
18087
18088 /* nfdmadds: nfdmadds$pack $FRi,$FRj,$FRk */
18089
18090 static SEM_PC
18091 SEM_FN_NAME (frvbf,nfdmadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18092 {
18093 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18094   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18095   int UNUSED written = 0;
18096   IADDR UNUSED pc = abuf->addr;
18097   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18098
18099 {
18100 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18101   {
18102     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->addsf) (CGEN_CPU_FPU (current_cpu), (* CGEN_CPU_FPU (current_cpu)->ops->mulsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj))), GET_H_FR (FLD (f_FRk)));
18103     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18104     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18105   }
18106 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18107   {
18108     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))));
18109     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18110     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18111   }
18112 }
18113
18114   return vpc;
18115 #undef FLD
18116 }
18117
18118 /* cfmadds: cfmadds$pack $FRi,$FRj,$FRk,$CCi,$cond */
18119
18120 static SEM_PC
18121 SEM_FN_NAME (frvbf,cfmadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18122 {
18123 #define FLD(f) abuf->fields.sfmt_cfmadds.f
18124   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18125   int UNUSED written = 0;
18126   IADDR UNUSED pc = abuf->addr;
18127   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18128
18129 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
18130   {
18131     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->addsf) (CGEN_CPU_FPU (current_cpu), (* CGEN_CPU_FPU (current_cpu)->ops->mulsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj))), GET_H_FR (FLD (f_FRk)));
18132     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18133     written |= (1 << 5);
18134     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18135   }
18136 }
18137
18138   abuf->written = written;
18139   return vpc;
18140 #undef FLD
18141 }
18142
18143 /* cfmsubs: cfmsubs$pack $FRi,$FRj,$FRk,$CCi,$cond */
18144
18145 static SEM_PC
18146 SEM_FN_NAME (frvbf,cfmsubs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18147 {
18148 #define FLD(f) abuf->fields.sfmt_cfmadds.f
18149   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18150   int UNUSED written = 0;
18151   IADDR UNUSED pc = abuf->addr;
18152   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18153
18154 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
18155   {
18156     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)));
18157     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18158     written |= (1 << 5);
18159     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18160   }
18161 }
18162
18163   abuf->written = written;
18164   return vpc;
18165 #undef FLD
18166 }
18167
18168 /* nfmadds: nfmadds$pack $FRi,$FRj,$FRk */
18169
18170 static SEM_PC
18171 SEM_FN_NAME (frvbf,nfmadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18172 {
18173 #define FLD(f) abuf->fields.sfmt_cfmadds.f
18174   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18175   int UNUSED written = 0;
18176   IADDR UNUSED pc = abuf->addr;
18177   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18178
18179 {
18180 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18181   {
18182     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)));
18183     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18184     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18185   }
18186 }
18187
18188   return vpc;
18189 #undef FLD
18190 }
18191
18192 /* nfmsubs: nfmsubs$pack $FRi,$FRj,$FRk */
18193
18194 static SEM_PC
18195 SEM_FN_NAME (frvbf,nfmsubs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18196 {
18197 #define FLD(f) abuf->fields.sfmt_cfmadds.f
18198   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18199   int UNUSED written = 0;
18200   IADDR UNUSED pc = abuf->addr;
18201   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18202
18203 {
18204 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18205   {
18206     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)));
18207     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18208     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18209   }
18210 }
18211
18212   return vpc;
18213 #undef FLD
18214 }
18215
18216 /* fmas: fmas$pack $FRi,$FRj,$FRk */
18217
18218 static SEM_PC
18219 SEM_FN_NAME (frvbf,fmas) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18220 {
18221 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18222   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18223   int UNUSED written = 0;
18224   IADDR UNUSED pc = abuf->addr;
18225   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18226
18227 {
18228   {
18229     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)));
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     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))));
18235     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18236     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18237   }
18238 }
18239
18240   return vpc;
18241 #undef FLD
18242 }
18243
18244 /* fmss: fmss$pack $FRi,$FRj,$FRk */
18245
18246 static SEM_PC
18247 SEM_FN_NAME (frvbf,fmss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18248 {
18249 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18250   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18251   int UNUSED written = 0;
18252   IADDR UNUSED pc = abuf->addr;
18253   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18254
18255 {
18256   {
18257     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)));
18258     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18259     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18260   }
18261   {
18262     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))));
18263     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18264     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18265   }
18266 }
18267
18268   return vpc;
18269 #undef FLD
18270 }
18271
18272 /* fdmas: fdmas$pack $FRi,$FRj,$FRk */
18273
18274 static SEM_PC
18275 SEM_FN_NAME (frvbf,fdmas) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18276 {
18277 #define FLD(f) abuf->fields.sfmt_fdmas.f
18278   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18279   int UNUSED written = 0;
18280   IADDR UNUSED pc = abuf->addr;
18281   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18282
18283 {
18284   {
18285     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)));
18286     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18287     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18288   }
18289   {
18290     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->addsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (1))), GET_H_FR (((FLD (f_FRj)) + (1))));
18291     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18292     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18293   }
18294   {
18295     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))));
18296     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (2)), opval);
18297     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18298   }
18299   {
18300     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))));
18301     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (3)), opval);
18302     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18303   }
18304 }
18305
18306   return vpc;
18307 #undef FLD
18308 }
18309
18310 /* fdmss: fdmss$pack $FRi,$FRj,$FRk */
18311
18312 static SEM_PC
18313 SEM_FN_NAME (frvbf,fdmss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18314 {
18315 #define FLD(f) abuf->fields.sfmt_fdmas.f
18316   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18317   int UNUSED written = 0;
18318   IADDR UNUSED pc = abuf->addr;
18319   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18320
18321 {
18322   {
18323     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)));
18324     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18325     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18326   }
18327   {
18328     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->subsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (1))), GET_H_FR (((FLD (f_FRj)) + (1))));
18329     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18330     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18331   }
18332   {
18333     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))));
18334     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (2)), opval);
18335     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18336   }
18337   {
18338     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))));
18339     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (3)), opval);
18340     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18341   }
18342 }
18343
18344   return vpc;
18345 #undef FLD
18346 }
18347
18348 /* nfdmas: nfdmas$pack $FRi,$FRj,$FRk */
18349
18350 static SEM_PC
18351 SEM_FN_NAME (frvbf,nfdmas) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18352 {
18353 #define FLD(f) abuf->fields.sfmt_fdmas.f
18354   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18355   int UNUSED written = 0;
18356   IADDR UNUSED pc = abuf->addr;
18357   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18358
18359 {
18360 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18361 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18362 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 2));
18363 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 3));
18364   {
18365     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)));
18366     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18367     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18368   }
18369   {
18370     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->addsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (1))), GET_H_FR (((FLD (f_FRj)) + (1))));
18371     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18372     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18373   }
18374   {
18375     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))));
18376     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (2)), opval);
18377     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18378   }
18379   {
18380     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))));
18381     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (3)), opval);
18382     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18383   }
18384 }
18385
18386   return vpc;
18387 #undef FLD
18388 }
18389
18390 /* nfdmss: nfdmss$pack $FRi,$FRj,$FRk */
18391
18392 static SEM_PC
18393 SEM_FN_NAME (frvbf,nfdmss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18394 {
18395 #define FLD(f) abuf->fields.sfmt_fdmas.f
18396   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18397   int UNUSED written = 0;
18398   IADDR UNUSED pc = abuf->addr;
18399   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18400
18401 {
18402 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18403 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18404 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 2));
18405 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 3));
18406   {
18407     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)));
18408     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18409     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18410   }
18411   {
18412     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->subsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (1))), GET_H_FR (((FLD (f_FRj)) + (1))));
18413     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18414     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18415   }
18416   {
18417     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))));
18418     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (2)), opval);
18419     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18420   }
18421   {
18422     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))));
18423     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (3)), opval);
18424     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18425   }
18426 }
18427
18428   return vpc;
18429 #undef FLD
18430 }
18431
18432 /* cfmas: cfmas$pack $FRi,$FRj,$FRk,$CCi,$cond */
18433
18434 static SEM_PC
18435 SEM_FN_NAME (frvbf,cfmas) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18436 {
18437 #define FLD(f) abuf->fields.sfmt_cfmas.f
18438   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18439   int UNUSED written = 0;
18440   IADDR UNUSED pc = abuf->addr;
18441   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18442
18443 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
18444 {
18445   {
18446     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)));
18447     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18448     written |= (1 << 9);
18449     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18450   }
18451   {
18452     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))));
18453     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18454     written |= (1 << 10);
18455     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18456   }
18457 }
18458 }
18459
18460   abuf->written = written;
18461   return vpc;
18462 #undef FLD
18463 }
18464
18465 /* cfmss: cfmss$pack $FRi,$FRj,$FRk,$CCi,$cond */
18466
18467 static SEM_PC
18468 SEM_FN_NAME (frvbf,cfmss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18469 {
18470 #define FLD(f) abuf->fields.sfmt_cfmas.f
18471   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18472   int UNUSED written = 0;
18473   IADDR UNUSED pc = abuf->addr;
18474   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18475
18476 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
18477 {
18478   {
18479     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)));
18480     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18481     written |= (1 << 9);
18482     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18483   }
18484   {
18485     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))));
18486     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18487     written |= (1 << 10);
18488     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18489   }
18490 }
18491 }
18492
18493   abuf->written = written;
18494   return vpc;
18495 #undef FLD
18496 }
18497
18498 /* fmad: fmad$pack $FRi,$FRj,$FRk */
18499
18500 static SEM_PC
18501 SEM_FN_NAME (frvbf,fmad) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18502 {
18503 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18504   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18505   int UNUSED written = 0;
18506   IADDR UNUSED pc = abuf->addr;
18507   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18508
18509 {
18510   {
18511     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)))));
18512     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18513     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18514   }
18515   {
18516     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))))));
18517     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18518     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18519   }
18520 }
18521
18522   return vpc;
18523 #undef FLD
18524 }
18525
18526 /* fmsd: fmsd$pack $FRi,$FRj,$FRk */
18527
18528 static SEM_PC
18529 SEM_FN_NAME (frvbf,fmsd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18530 {
18531 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18532   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18533   int UNUSED written = 0;
18534   IADDR UNUSED pc = abuf->addr;
18535   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18536
18537 {
18538   {
18539     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)))));
18540     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18541     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18542   }
18543   {
18544     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))))));
18545     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18546     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18547   }
18548 }
18549
18550   return vpc;
18551 #undef FLD
18552 }
18553
18554 /* nfmas: nfmas$pack $FRi,$FRj,$FRk */
18555
18556 static SEM_PC
18557 SEM_FN_NAME (frvbf,nfmas) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18558 {
18559 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18560   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18561   int UNUSED written = 0;
18562   IADDR UNUSED pc = abuf->addr;
18563   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18564
18565 {
18566 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18567   {
18568     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)));
18569     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18570     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18571   }
18572 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18573   {
18574     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))));
18575     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18576     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18577   }
18578 }
18579
18580   return vpc;
18581 #undef FLD
18582 }
18583
18584 /* nfmss: nfmss$pack $FRi,$FRj,$FRk */
18585
18586 static SEM_PC
18587 SEM_FN_NAME (frvbf,nfmss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18588 {
18589 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18590   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18591   int UNUSED written = 0;
18592   IADDR UNUSED pc = abuf->addr;
18593   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18594
18595 {
18596 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18597   {
18598     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)));
18599     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18600     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18601   }
18602 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18603   {
18604     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))));
18605     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18606     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18607   }
18608 }
18609
18610   return vpc;
18611 #undef FLD
18612 }
18613
18614 /* fdadds: fdadds$pack $FRi,$FRj,$FRk */
18615
18616 static SEM_PC
18617 SEM_FN_NAME (frvbf,fdadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18618 {
18619 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18620   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18621   int UNUSED written = 0;
18622   IADDR UNUSED pc = abuf->addr;
18623   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18624
18625 {
18626   {
18627     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)));
18628     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18629     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18630   }
18631   {
18632     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))));
18633     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18634     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18635   }
18636 }
18637
18638   return vpc;
18639 #undef FLD
18640 }
18641
18642 /* fdsubs: fdsubs$pack $FRi,$FRj,$FRk */
18643
18644 static SEM_PC
18645 SEM_FN_NAME (frvbf,fdsubs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18646 {
18647 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18648   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18649   int UNUSED written = 0;
18650   IADDR UNUSED pc = abuf->addr;
18651   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18652
18653 {
18654   {
18655     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)));
18656     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18657     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18658   }
18659   {
18660     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))));
18661     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18662     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18663   }
18664 }
18665
18666   return vpc;
18667 #undef FLD
18668 }
18669
18670 /* fdmuls: fdmuls$pack $FRi,$FRj,$FRk */
18671
18672 static SEM_PC
18673 SEM_FN_NAME (frvbf,fdmuls) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18674 {
18675 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18676   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18677   int UNUSED written = 0;
18678   IADDR UNUSED pc = abuf->addr;
18679   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18680
18681 {
18682   {
18683     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)));
18684     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18685     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18686   }
18687   {
18688     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))));
18689     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18690     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18691   }
18692 }
18693
18694   return vpc;
18695 #undef FLD
18696 }
18697
18698 /* fddivs: fddivs$pack $FRi,$FRj,$FRk */
18699
18700 static SEM_PC
18701 SEM_FN_NAME (frvbf,fddivs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18702 {
18703 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18704   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18705   int UNUSED written = 0;
18706   IADDR UNUSED pc = abuf->addr;
18707   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18708
18709 {
18710   {
18711     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)));
18712     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18713     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18714   }
18715   {
18716     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))));
18717     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18718     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18719   }
18720 }
18721
18722   return vpc;
18723 #undef FLD
18724 }
18725
18726 /* fdsads: fdsads$pack $FRi,$FRj,$FRk */
18727
18728 static SEM_PC
18729 SEM_FN_NAME (frvbf,fdsads) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18730 {
18731 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18732   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18733   int UNUSED written = 0;
18734   IADDR UNUSED pc = abuf->addr;
18735   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18736
18737 {
18738   {
18739     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)));
18740     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18741     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18742   }
18743   {
18744     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))));
18745     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18746     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18747   }
18748 }
18749
18750   return vpc;
18751 #undef FLD
18752 }
18753
18754 /* fdmulcs: fdmulcs$pack $FRi,$FRj,$FRk */
18755
18756 static SEM_PC
18757 SEM_FN_NAME (frvbf,fdmulcs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18758 {
18759 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18760   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18761   int UNUSED written = 0;
18762   IADDR UNUSED pc = abuf->addr;
18763   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18764
18765 {
18766   {
18767     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))));
18768     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18769     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18770   }
18771   {
18772     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)));
18773     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18774     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18775   }
18776 }
18777
18778   return vpc;
18779 #undef FLD
18780 }
18781
18782 /* nfdmulcs: nfdmulcs$pack $FRi,$FRj,$FRk */
18783
18784 static SEM_PC
18785 SEM_FN_NAME (frvbf,nfdmulcs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18786 {
18787 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18788   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18789   int UNUSED written = 0;
18790   IADDR UNUSED pc = abuf->addr;
18791   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18792
18793 {
18794 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18795   {
18796     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->mulsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (((FLD (f_FRj)) + (1))));
18797     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18798     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18799   }
18800 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18801   {
18802     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)));
18803     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18804     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18805   }
18806 }
18807
18808   return vpc;
18809 #undef FLD
18810 }
18811
18812 /* nfdadds: nfdadds$pack $FRi,$FRj,$FRk */
18813
18814 static SEM_PC
18815 SEM_FN_NAME (frvbf,nfdadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18816 {
18817 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18818   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18819   int UNUSED written = 0;
18820   IADDR UNUSED pc = abuf->addr;
18821   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18822
18823 {
18824 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18825   {
18826     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)));
18827     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18828     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18829   }
18830 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18831   {
18832     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))));
18833     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18834     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18835   }
18836 }
18837
18838   return vpc;
18839 #undef FLD
18840 }
18841
18842 /* nfdsubs: nfdsubs$pack $FRi,$FRj,$FRk */
18843
18844 static SEM_PC
18845 SEM_FN_NAME (frvbf,nfdsubs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18846 {
18847 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18848   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18849   int UNUSED written = 0;
18850   IADDR UNUSED pc = abuf->addr;
18851   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18852
18853 {
18854 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18855   {
18856     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)));
18857     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18858     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18859   }
18860 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18861   {
18862     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))));
18863     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18864     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18865   }
18866 }
18867
18868   return vpc;
18869 #undef FLD
18870 }
18871
18872 /* nfdmuls: nfdmuls$pack $FRi,$FRj,$FRk */
18873
18874 static SEM_PC
18875 SEM_FN_NAME (frvbf,nfdmuls) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18876 {
18877 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18878   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18879   int UNUSED written = 0;
18880   IADDR UNUSED pc = abuf->addr;
18881   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18882
18883 {
18884 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18885   {
18886     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)));
18887     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18888     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18889   }
18890 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18891   {
18892     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))));
18893     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18894     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18895   }
18896 }
18897
18898   return vpc;
18899 #undef FLD
18900 }
18901
18902 /* nfddivs: nfddivs$pack $FRi,$FRj,$FRk */
18903
18904 static SEM_PC
18905 SEM_FN_NAME (frvbf,nfddivs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18906 {
18907 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18908   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18909   int UNUSED written = 0;
18910   IADDR UNUSED pc = abuf->addr;
18911   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18912
18913 {
18914 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18915   {
18916     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)));
18917     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18918     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18919   }
18920 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18921   {
18922     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))));
18923     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18924     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18925   }
18926 }
18927
18928   return vpc;
18929 #undef FLD
18930 }
18931
18932 /* nfdsads: nfdsads$pack $FRi,$FRj,$FRk */
18933
18934 static SEM_PC
18935 SEM_FN_NAME (frvbf,nfdsads) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18936 {
18937 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18938   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18939   int UNUSED written = 0;
18940   IADDR UNUSED pc = abuf->addr;
18941   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18942
18943 {
18944 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18945   {
18946     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)));
18947     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18948     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18949   }
18950 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18951   {
18952     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))));
18953     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18954     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18955   }
18956 }
18957
18958   return vpc;
18959 #undef FLD
18960 }
18961
18962 /* nfdcmps: nfdcmps$pack $FRi,$FRj,$FCCi_2 */
18963
18964 static SEM_PC
18965 SEM_FN_NAME (frvbf,nfdcmps) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18966 {
18967 #define FLD(f) abuf->fields.sfmt_nfdcmps.f
18968   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18969   int UNUSED written = 0;
18970   IADDR UNUSED pc = abuf->addr;
18971   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18972
18973 {
18974 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18975 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)))) {
18976   {
18977     UQI opval = 2;
18978     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
18979     written |= (1 << 8);
18980     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
18981   }
18982 } else {
18983 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)))) {
18984   {
18985     UQI opval = 8;
18986     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
18987     written |= (1 << 8);
18988     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
18989   }
18990 } else {
18991 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)))) {
18992   {
18993     UQI opval = 4;
18994     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
18995     written |= (1 << 8);
18996     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
18997   }
18998 } else {
18999   {
19000     UQI opval = 1;
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 }
19006 }
19007 }
19008 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
19009 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))))) {
19010   {
19011     UQI opval = 2;
19012     sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCi_2)) + (1))]), opval);
19013     written |= (1 << 9);
19014     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
19015   }
19016 } else {
19017 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))))) {
19018   {
19019     UQI opval = 8;
19020     sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCi_2)) + (1))]), opval);
19021     written |= (1 << 9);
19022     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
19023   }
19024 } else {
19025 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))))) {
19026   {
19027     UQI opval = 4;
19028     sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCi_2)) + (1))]), opval);
19029     written |= (1 << 9);
19030     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
19031   }
19032 } else {
19033   {
19034     UQI opval = 1;
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 }
19040 }
19041 }
19042 }
19043
19044   abuf->written = written;
19045   return vpc;
19046 #undef FLD
19047 }
19048
19049 /* mhsetlos: mhsetlos$pack $u12,$FRklo */
19050
19051 static SEM_PC
19052 SEM_FN_NAME (frvbf,mhsetlos) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19053 {
19054 #define FLD(f) abuf->fields.sfmt_mhsetlos.f
19055   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19056   int UNUSED written = 0;
19057   IADDR UNUSED pc = abuf->addr;
19058   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19059
19060   {
19061     UHI opval = FLD (f_u12);
19062     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, FLD (f_FRk), opval);
19063     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19064   }
19065
19066   return vpc;
19067 #undef FLD
19068 }
19069
19070 /* mhsethis: mhsethis$pack $u12,$FRkhi */
19071
19072 static SEM_PC
19073 SEM_FN_NAME (frvbf,mhsethis) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19074 {
19075 #define FLD(f) abuf->fields.sfmt_mhsethis.f
19076   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19077   int UNUSED written = 0;
19078   IADDR UNUSED pc = abuf->addr;
19079   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19080
19081   {
19082     UHI opval = FLD (f_u12);
19083     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, FLD (f_FRk), opval);
19084     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19085   }
19086
19087   return vpc;
19088 #undef FLD
19089 }
19090
19091 /* mhdsets: mhdsets$pack $u12,$FRintk */
19092
19093 static SEM_PC
19094 SEM_FN_NAME (frvbf,mhdsets) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19095 {
19096 #define FLD(f) abuf->fields.sfmt_mhdsets.f
19097   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19098   int UNUSED written = 0;
19099   IADDR UNUSED pc = abuf->addr;
19100   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19101
19102 {
19103   {
19104     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
19105     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19106     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19107   }
19108   {
19109     UHI opval = FLD (f_u12);
19110     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
19111     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19112   }
19113   {
19114     UHI opval = FLD (f_u12);
19115     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
19116     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19117   }
19118 }
19119
19120   return vpc;
19121 #undef FLD
19122 }
19123
19124 /* mhsetloh: mhsetloh$pack $s5,$FRklo */
19125
19126 static SEM_PC
19127 SEM_FN_NAME (frvbf,mhsetloh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19128 {
19129 #define FLD(f) abuf->fields.sfmt_mhsetloh.f
19130   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19131   int UNUSED written = 0;
19132   IADDR UNUSED pc = abuf->addr;
19133   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19134
19135 {
19136   HI tmp_tmp;
19137   tmp_tmp = GET_H_FR_LO (FLD (f_FRk));
19138   tmp_tmp = ANDHI (tmp_tmp, 2047);
19139   tmp_tmp = ORHI (tmp_tmp, SLLSI (ANDSI (FLD (f_s5), 31), 11));
19140   {
19141     UHI opval = tmp_tmp;
19142     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, FLD (f_FRk), opval);
19143     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19144   }
19145 }
19146
19147   return vpc;
19148 #undef FLD
19149 }
19150
19151 /* mhsethih: mhsethih$pack $s5,$FRkhi */
19152
19153 static SEM_PC
19154 SEM_FN_NAME (frvbf,mhsethih) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19155 {
19156 #define FLD(f) abuf->fields.sfmt_mhsethih.f
19157   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19158   int UNUSED written = 0;
19159   IADDR UNUSED pc = abuf->addr;
19160   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19161
19162 {
19163   HI tmp_tmp;
19164   tmp_tmp = GET_H_FR_HI (FLD (f_FRk));
19165   tmp_tmp = ANDHI (tmp_tmp, 2047);
19166   tmp_tmp = ORHI (tmp_tmp, SLLSI (ANDSI (FLD (f_s5), 31), 11));
19167   {
19168     UHI opval = tmp_tmp;
19169     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, FLD (f_FRk), opval);
19170     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19171   }
19172 }
19173
19174   return vpc;
19175 #undef FLD
19176 }
19177
19178 /* mhdseth: mhdseth$pack $s5,$FRintk */
19179
19180 static SEM_PC
19181 SEM_FN_NAME (frvbf,mhdseth) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19182 {
19183 #define FLD(f) abuf->fields.sfmt_mhdseth.f
19184   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19185   int UNUSED written = 0;
19186   IADDR UNUSED pc = abuf->addr;
19187   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19188
19189 {
19190   {
19191     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
19192     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19193     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19194   }
19195 {
19196   HI tmp_tmp;
19197   tmp_tmp = GET_H_FR_HI (((FLD (f_FRk)) + (0)));
19198   tmp_tmp = ANDHI (tmp_tmp, 2047);
19199   tmp_tmp = ORHI (tmp_tmp, SLLSI (ANDSI (FLD (f_s5), 31), 11));
19200   {
19201     UHI opval = tmp_tmp;
19202     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
19203     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19204   }
19205 }
19206 {
19207   HI tmp_tmp;
19208   tmp_tmp = GET_H_FR_LO (((FLD (f_FRk)) + (0)));
19209   tmp_tmp = ANDHI (tmp_tmp, 2047);
19210   tmp_tmp = ORHI (tmp_tmp, SLLSI (ANDSI (FLD (f_s5), 31), 11));
19211   {
19212     UHI opval = tmp_tmp;
19213     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
19214     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19215   }
19216 }
19217 }
19218
19219   return vpc;
19220 #undef FLD
19221 }
19222
19223 /* mand: mand$pack $FRinti,$FRintj,$FRintk */
19224
19225 static SEM_PC
19226 SEM_FN_NAME (frvbf,mand) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19227 {
19228 #define FLD(f) abuf->fields.sfmt_mwcut.f
19229   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19230   int UNUSED written = 0;
19231   IADDR UNUSED pc = abuf->addr;
19232   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19233
19234   {
19235     SI opval = ANDSI (GET_H_FR_INT (FLD (f_FRi)), GET_H_FR_INT (FLD (f_FRj)));
19236     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19237     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19238   }
19239
19240   return vpc;
19241 #undef FLD
19242 }
19243
19244 /* mor: mor$pack $FRinti,$FRintj,$FRintk */
19245
19246 static SEM_PC
19247 SEM_FN_NAME (frvbf,mor) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19248 {
19249 #define FLD(f) abuf->fields.sfmt_mwcut.f
19250   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19251   int UNUSED written = 0;
19252   IADDR UNUSED pc = abuf->addr;
19253   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19254
19255   {
19256     SI opval = ORSI (GET_H_FR_INT (FLD (f_FRi)), GET_H_FR_INT (FLD (f_FRj)));
19257     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19258     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19259   }
19260
19261   return vpc;
19262 #undef FLD
19263 }
19264
19265 /* mxor: mxor$pack $FRinti,$FRintj,$FRintk */
19266
19267 static SEM_PC
19268 SEM_FN_NAME (frvbf,mxor) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19269 {
19270 #define FLD(f) abuf->fields.sfmt_mwcut.f
19271   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19272   int UNUSED written = 0;
19273   IADDR UNUSED pc = abuf->addr;
19274   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19275
19276   {
19277     SI opval = XORSI (GET_H_FR_INT (FLD (f_FRi)), GET_H_FR_INT (FLD (f_FRj)));
19278     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19279     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19280   }
19281
19282   return vpc;
19283 #undef FLD
19284 }
19285
19286 /* cmand: cmand$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
19287
19288 static SEM_PC
19289 SEM_FN_NAME (frvbf,cmand) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19290 {
19291 #define FLD(f) abuf->fields.sfmt_cmand.f
19292   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19293   int UNUSED written = 0;
19294   IADDR UNUSED pc = abuf->addr;
19295   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19296
19297 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
19298   {
19299     SI opval = ANDSI (GET_H_FR_INT (FLD (f_FRi)), GET_H_FR_INT (FLD (f_FRj)));
19300     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19301     written |= (1 << 4);
19302     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19303   }
19304 }
19305
19306   abuf->written = written;
19307   return vpc;
19308 #undef FLD
19309 }
19310
19311 /* cmor: cmor$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
19312
19313 static SEM_PC
19314 SEM_FN_NAME (frvbf,cmor) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19315 {
19316 #define FLD(f) abuf->fields.sfmt_cmand.f
19317   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19318   int UNUSED written = 0;
19319   IADDR UNUSED pc = abuf->addr;
19320   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19321
19322 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
19323   {
19324     SI opval = ORSI (GET_H_FR_INT (FLD (f_FRi)), GET_H_FR_INT (FLD (f_FRj)));
19325     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19326     written |= (1 << 4);
19327     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19328   }
19329 }
19330
19331   abuf->written = written;
19332   return vpc;
19333 #undef FLD
19334 }
19335
19336 /* cmxor: cmxor$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
19337
19338 static SEM_PC
19339 SEM_FN_NAME (frvbf,cmxor) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19340 {
19341 #define FLD(f) abuf->fields.sfmt_cmand.f
19342   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19343   int UNUSED written = 0;
19344   IADDR UNUSED pc = abuf->addr;
19345   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19346
19347 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
19348   {
19349     SI opval = XORSI (GET_H_FR_INT (FLD (f_FRi)), GET_H_FR_INT (FLD (f_FRj)));
19350     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19351     written |= (1 << 4);
19352     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19353   }
19354 }
19355
19356   abuf->written = written;
19357   return vpc;
19358 #undef FLD
19359 }
19360
19361 /* mnot: mnot$pack $FRintj,$FRintk */
19362
19363 static SEM_PC
19364 SEM_FN_NAME (frvbf,mnot) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19365 {
19366 #define FLD(f) abuf->fields.sfmt_mcut.f
19367   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19368   int UNUSED written = 0;
19369   IADDR UNUSED pc = abuf->addr;
19370   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19371
19372   {
19373     SI opval = INVSI (GET_H_FR_INT (FLD (f_FRj)));
19374     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19375     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19376   }
19377
19378   return vpc;
19379 #undef FLD
19380 }
19381
19382 /* cmnot: cmnot$pack $FRintj,$FRintk,$CCi,$cond */
19383
19384 static SEM_PC
19385 SEM_FN_NAME (frvbf,cmnot) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19386 {
19387 #define FLD(f) abuf->fields.sfmt_cmand.f
19388   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19389   int UNUSED written = 0;
19390   IADDR UNUSED pc = abuf->addr;
19391   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19392
19393 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
19394   {
19395     SI opval = INVSI (GET_H_FR_INT (FLD (f_FRj)));
19396     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19397     written |= (1 << 3);
19398     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19399   }
19400 }
19401
19402   abuf->written = written;
19403   return vpc;
19404 #undef FLD
19405 }
19406
19407 /* mrotli: mrotli$pack $FRinti,$u6,$FRintk */
19408
19409 static SEM_PC
19410 SEM_FN_NAME (frvbf,mrotli) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19411 {
19412 #define FLD(f) abuf->fields.sfmt_mwcuti.f
19413   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19414   int UNUSED written = 0;
19415   IADDR UNUSED pc = abuf->addr;
19416   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19417
19418   {
19419     SI opval = ROLSI (GET_H_FR_INT (FLD (f_FRi)), ANDSI (FLD (f_u6), 31));
19420     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19421     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19422   }
19423
19424   return vpc;
19425 #undef FLD
19426 }
19427
19428 /* mrotri: mrotri$pack $FRinti,$u6,$FRintk */
19429
19430 static SEM_PC
19431 SEM_FN_NAME (frvbf,mrotri) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19432 {
19433 #define FLD(f) abuf->fields.sfmt_mwcuti.f
19434   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19435   int UNUSED written = 0;
19436   IADDR UNUSED pc = abuf->addr;
19437   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19438
19439   {
19440     SI opval = RORSI (GET_H_FR_INT (FLD (f_FRi)), ANDSI (FLD (f_u6), 31));
19441     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19442     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19443   }
19444
19445   return vpc;
19446 #undef FLD
19447 }
19448
19449 /* mwcut: mwcut$pack $FRinti,$FRintj,$FRintk */
19450
19451 static SEM_PC
19452 SEM_FN_NAME (frvbf,mwcut) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19453 {
19454 #define FLD(f) abuf->fields.sfmt_mwcut.f
19455   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19456   int UNUSED written = 0;
19457   IADDR UNUSED pc = abuf->addr;
19458   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19459
19460   {
19461     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)));
19462     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19463     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19464   }
19465
19466   return vpc;
19467 #undef FLD
19468 }
19469
19470 /* mwcuti: mwcuti$pack $FRinti,$u6,$FRintk */
19471
19472 static SEM_PC
19473 SEM_FN_NAME (frvbf,mwcuti) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19474 {
19475 #define FLD(f) abuf->fields.sfmt_mwcuti.f
19476   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19477   int UNUSED written = 0;
19478   IADDR UNUSED pc = abuf->addr;
19479   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19480
19481   {
19482     SI opval = frvbf_cut (current_cpu, GET_H_FR_INT (FLD (f_FRi)), GET_H_FR_INT (((FLD (f_FRi)) + (1))), FLD (f_u6));
19483     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19484     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19485   }
19486
19487   return vpc;
19488 #undef FLD
19489 }
19490
19491 /* mcut: mcut$pack $ACC40Si,$FRintj,$FRintk */
19492
19493 static SEM_PC
19494 SEM_FN_NAME (frvbf,mcut) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19495 {
19496 #define FLD(f) abuf->fields.sfmt_mcut.f
19497   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19498   int UNUSED written = 0;
19499   IADDR UNUSED pc = abuf->addr;
19500   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19501
19502   {
19503     SI opval = frvbf_media_cut (current_cpu, GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_FR_INT (FLD (f_FRj)));
19504     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19505     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19506   }
19507
19508   return vpc;
19509 #undef FLD
19510 }
19511
19512 /* mcuti: mcuti$pack $ACC40Si,$s6,$FRintk */
19513
19514 static SEM_PC
19515 SEM_FN_NAME (frvbf,mcuti) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19516 {
19517 #define FLD(f) abuf->fields.sfmt_mcuti.f
19518   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19519   int UNUSED written = 0;
19520   IADDR UNUSED pc = abuf->addr;
19521   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19522
19523   {
19524     SI opval = frvbf_media_cut (current_cpu, GET_H_ACC40S (FLD (f_ACC40Si)), FLD (f_s6));
19525     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19526     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19527   }
19528
19529   return vpc;
19530 #undef FLD
19531 }
19532
19533 /* mcutss: mcutss$pack $ACC40Si,$FRintj,$FRintk */
19534
19535 static SEM_PC
19536 SEM_FN_NAME (frvbf,mcutss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19537 {
19538 #define FLD(f) abuf->fields.sfmt_mcut.f
19539   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19540   int UNUSED written = 0;
19541   IADDR UNUSED pc = abuf->addr;
19542   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19543
19544   {
19545     SI opval = frvbf_media_cut_ss (current_cpu, GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_FR_INT (FLD (f_FRj)));
19546     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19547     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19548   }
19549
19550   return vpc;
19551 #undef FLD
19552 }
19553
19554 /* mcutssi: mcutssi$pack $ACC40Si,$s6,$FRintk */
19555
19556 static SEM_PC
19557 SEM_FN_NAME (frvbf,mcutssi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19558 {
19559 #define FLD(f) abuf->fields.sfmt_mcuti.f
19560   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19561   int UNUSED written = 0;
19562   IADDR UNUSED pc = abuf->addr;
19563   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19564
19565   {
19566     SI opval = frvbf_media_cut_ss (current_cpu, GET_H_ACC40S (FLD (f_ACC40Si)), FLD (f_s6));
19567     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19568     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19569   }
19570
19571   return vpc;
19572 #undef FLD
19573 }
19574
19575 /* mdcutssi: mdcutssi$pack $ACC40Si,$s6,$FRintkeven */
19576
19577 static SEM_PC
19578 SEM_FN_NAME (frvbf,mdcutssi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19579 {
19580 #define FLD(f) abuf->fields.sfmt_mdcutssi.f
19581   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19582   int UNUSED written = 0;
19583   IADDR UNUSED pc = abuf->addr;
19584   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19585
19586 if (ANDSI (FLD (f_ACC40Si), SUBSI (2, 1))) {
19587 frvbf_media_acc_not_aligned (current_cpu);
19588 } else {
19589 if (ANDSI (FLD (f_FRk), SUBSI (2, 1))) {
19590 frvbf_media_register_not_aligned (current_cpu);
19591 } else {
19592 {
19593   {
19594     SI opval = frvbf_media_cut_ss (current_cpu, GET_H_ACC40S (FLD (f_ACC40Si)), FLD (f_s6));
19595     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19596     written |= (1 << 5);
19597     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19598   }
19599   {
19600     USI opval = frvbf_media_cut_ss (current_cpu, GET_H_ACC40S (((FLD (f_ACC40Si)) + (1))), FLD (f_s6));
19601     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (1)), opval);
19602     written |= (1 << 6);
19603     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19604   }
19605 }
19606 }
19607 }
19608
19609   abuf->written = written;
19610   return vpc;
19611 #undef FLD
19612 }
19613
19614 /* maveh: maveh$pack $FRinti,$FRintj,$FRintk */
19615
19616 static SEM_PC
19617 SEM_FN_NAME (frvbf,maveh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19618 {
19619 #define FLD(f) abuf->fields.sfmt_mwcut.f
19620   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19621   int UNUSED written = 0;
19622   IADDR UNUSED pc = abuf->addr;
19623   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19624
19625   {
19626     SI opval = frvbf_media_average (current_cpu, GET_H_FR_INT (FLD (f_FRi)), GET_H_FR_INT (FLD (f_FRj)));
19627     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19628     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19629   }
19630
19631   return vpc;
19632 #undef FLD
19633 }
19634
19635 /* msllhi: msllhi$pack $FRinti,$u6,$FRintk */
19636
19637 static SEM_PC
19638 SEM_FN_NAME (frvbf,msllhi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19639 {
19640 #define FLD(f) abuf->fields.sfmt_msllhi.f
19641   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19642   int UNUSED written = 0;
19643   IADDR UNUSED pc = abuf->addr;
19644   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19645
19646 {
19647   {
19648     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRi)));
19649     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRi), opval);
19650     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19651   }
19652   {
19653     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
19654     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19655     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19656   }
19657   {
19658     UHI opval = SLLHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), ANDSI (FLD (f_u6), 15));
19659     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
19660     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19661   }
19662   {
19663     UHI opval = SLLHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), ANDSI (FLD (f_u6), 15));
19664     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
19665     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19666   }
19667 }
19668
19669   return vpc;
19670 #undef FLD
19671 }
19672
19673 /* msrlhi: msrlhi$pack $FRinti,$u6,$FRintk */
19674
19675 static SEM_PC
19676 SEM_FN_NAME (frvbf,msrlhi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19677 {
19678 #define FLD(f) abuf->fields.sfmt_msllhi.f
19679   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19680   int UNUSED written = 0;
19681   IADDR UNUSED pc = abuf->addr;
19682   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19683
19684 {
19685   {
19686     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRi)));
19687     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRi), opval);
19688     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19689   }
19690   {
19691     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
19692     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19693     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19694   }
19695   {
19696     UHI opval = SRLHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), ANDSI (FLD (f_u6), 15));
19697     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
19698     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19699   }
19700   {
19701     UHI opval = SRLHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), ANDSI (FLD (f_u6), 15));
19702     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
19703     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19704   }
19705 }
19706
19707   return vpc;
19708 #undef FLD
19709 }
19710
19711 /* msrahi: msrahi$pack $FRinti,$u6,$FRintk */
19712
19713 static SEM_PC
19714 SEM_FN_NAME (frvbf,msrahi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19715 {
19716 #define FLD(f) abuf->fields.sfmt_msllhi.f
19717   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19718   int UNUSED written = 0;
19719   IADDR UNUSED pc = abuf->addr;
19720   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19721
19722 {
19723   {
19724     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRi)));
19725     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRi), opval);
19726     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19727   }
19728   {
19729     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
19730     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19731     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19732   }
19733   {
19734     UHI opval = SRAHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), ANDSI (FLD (f_u6), 15));
19735     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
19736     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19737   }
19738   {
19739     UHI opval = SRAHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), ANDSI (FLD (f_u6), 15));
19740     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
19741     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19742   }
19743 }
19744
19745   return vpc;
19746 #undef FLD
19747 }
19748
19749 /* mdrotli: mdrotli$pack $FRintieven,$s6,$FRintkeven */
19750
19751 static SEM_PC
19752 SEM_FN_NAME (frvbf,mdrotli) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19753 {
19754 #define FLD(f) abuf->fields.sfmt_mdrotli.f
19755   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19756   int UNUSED written = 0;
19757   IADDR UNUSED pc = abuf->addr;
19758   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19759
19760 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1)))) {
19761 frvbf_media_register_not_aligned (current_cpu);
19762 } else {
19763 {
19764   {
19765     SI opval = ROLSI (GET_H_FR_INT (FLD (f_FRi)), ANDSI (FLD (f_s6), 31));
19766     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19767     written |= (1 << 5);
19768     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19769   }
19770   {
19771     USI opval = ROLSI (GET_H_FR_INT (((FLD (f_FRi)) + (1))), ANDSI (FLD (f_s6), 31));
19772     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (1)), opval);
19773     written |= (1 << 6);
19774     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19775   }
19776 }
19777 }
19778
19779   abuf->written = written;
19780   return vpc;
19781 #undef FLD
19782 }
19783
19784 /* mcplhi: mcplhi$pack $FRinti,$u6,$FRintk */
19785
19786 static SEM_PC
19787 SEM_FN_NAME (frvbf,mcplhi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19788 {
19789 #define FLD(f) abuf->fields.sfmt_mcplhi.f
19790   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19791   int UNUSED written = 0;
19792   IADDR UNUSED pc = abuf->addr;
19793   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19794
19795 {
19796   HI tmp_arg1;
19797   HI tmp_arg2;
19798   HI tmp_shift;
19799   {
19800     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRi)));
19801     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRi), opval);
19802     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19803   }
19804   {
19805     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
19806     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19807     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19808   }
19809   tmp_shift = ANDSI (FLD (f_u6), 15);
19810   tmp_arg1 = SLLHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), tmp_shift);
19811 if (NEHI (tmp_shift, 0)) {
19812 {
19813   tmp_arg2 = GET_H_FR_HI (((FLD (f_FRi)) + (1)));
19814   tmp_arg2 = SRLHI (SLLHI (tmp_arg2, SUBSI (15, tmp_shift)), SUBSI (15, tmp_shift));
19815   tmp_arg1 = ORHI (tmp_arg1, tmp_arg2);
19816 }
19817 }
19818   {
19819     UHI opval = tmp_arg1;
19820     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
19821     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19822   }
19823 }
19824
19825   return vpc;
19826 #undef FLD
19827 }
19828
19829 /* mcpli: mcpli$pack $FRinti,$u6,$FRintk */
19830
19831 static SEM_PC
19832 SEM_FN_NAME (frvbf,mcpli) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19833 {
19834 #define FLD(f) abuf->fields.sfmt_mwcuti.f
19835   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19836   int UNUSED written = 0;
19837   IADDR UNUSED pc = abuf->addr;
19838   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19839
19840 {
19841   SI tmp_tmp;
19842   SI tmp_shift;
19843   tmp_shift = ANDSI (FLD (f_u6), 31);
19844   tmp_tmp = SLLSI (GET_H_FR_INT (FLD (f_FRi)), tmp_shift);
19845 if (NESI (tmp_shift, 0)) {
19846 {
19847   SI tmp_tmp1;
19848   tmp_tmp1 = SRLSI (SLLSI (GET_H_FR_INT (((FLD (f_FRi)) + (1))), SUBSI (31, tmp_shift)), SUBSI (31, tmp_shift));
19849   tmp_tmp = ORSI (tmp_tmp, tmp_tmp1);
19850 }
19851 }
19852   {
19853     SI opval = tmp_tmp;
19854     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19855     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19856   }
19857 }
19858
19859   return vpc;
19860 #undef FLD
19861 }
19862
19863 /* msaths: msaths$pack $FRinti,$FRintj,$FRintk */
19864
19865 static SEM_PC
19866 SEM_FN_NAME (frvbf,msaths) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19867 {
19868 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
19869   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19870   int UNUSED written = 0;
19871   IADDR UNUSED pc = abuf->addr;
19872   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19873
19874 {
19875   HI tmp_argihi;
19876   HI tmp_argilo;
19877   HI tmp_argjhi;
19878   HI tmp_argjlo;
19879 {
19880   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
19881   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
19882   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
19883   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
19884 }
19885 if (GTHI (tmp_argihi, tmp_argjhi)) {
19886   {
19887     UHI opval = tmp_argjhi;
19888     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
19889     written |= (1 << 9);
19890     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19891   }
19892 } else {
19893 if (LTHI (tmp_argihi, INVHI (tmp_argjhi))) {
19894   {
19895     UHI opval = INVHI (tmp_argjhi);
19896     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
19897     written |= (1 << 9);
19898     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19899   }
19900 } else {
19901   {
19902     UHI opval = tmp_argihi;
19903     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
19904     written |= (1 << 9);
19905     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19906   }
19907 }
19908 }
19909 if (GTHI (tmp_argilo, tmp_argjlo)) {
19910   {
19911     UHI opval = tmp_argjlo;
19912     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
19913     written |= (1 << 10);
19914     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19915   }
19916 } else {
19917 if (LTHI (tmp_argilo, INVHI (tmp_argjlo))) {
19918   {
19919     UHI opval = INVHI (tmp_argjlo);
19920     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
19921     written |= (1 << 10);
19922     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19923   }
19924 } else {
19925   {
19926     UHI opval = tmp_argilo;
19927     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
19928     written |= (1 << 10);
19929     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19930   }
19931 }
19932 }
19933 }
19934
19935   abuf->written = written;
19936   return vpc;
19937 #undef FLD
19938 }
19939
19940 /* mqsaths: mqsaths$pack $FRintieven,$FRintjeven,$FRintkeven */
19941
19942 static SEM_PC
19943 SEM_FN_NAME (frvbf,mqsaths) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19944 {
19945 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
19946   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19947   int UNUSED written = 0;
19948   IADDR UNUSED pc = abuf->addr;
19949   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19950
19951 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
19952 frvbf_media_register_not_aligned (current_cpu);
19953 } else {
19954 {
19955   HI tmp_argihi;
19956   HI tmp_argilo;
19957   HI tmp_argjhi;
19958   HI tmp_argjlo;
19959   {
19960     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
19961     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19962     written |= (1 << 14);
19963     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19964   }
19965 {
19966   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
19967   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
19968   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
19969   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
19970 }
19971 if (GTHI (tmp_argihi, tmp_argjhi)) {
19972   {
19973     UHI opval = tmp_argjhi;
19974     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
19975     written |= (1 << 15);
19976     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19977   }
19978 } else {
19979 if (LTHI (tmp_argihi, INVHI (tmp_argjhi))) {
19980   {
19981     UHI opval = INVHI (tmp_argjhi);
19982     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
19983     written |= (1 << 15);
19984     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19985   }
19986 } else {
19987   {
19988     UHI opval = tmp_argihi;
19989     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
19990     written |= (1 << 15);
19991     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19992   }
19993 }
19994 }
19995 if (GTHI (tmp_argilo, tmp_argjlo)) {
19996   {
19997     UHI opval = tmp_argjlo;
19998     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
19999     written |= (1 << 17);
20000     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20001   }
20002 } else {
20003 if (LTHI (tmp_argilo, INVHI (tmp_argjlo))) {
20004   {
20005     UHI opval = INVHI (tmp_argjlo);
20006     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20007     written |= (1 << 17);
20008     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20009   }
20010 } else {
20011   {
20012     UHI opval = tmp_argilo;
20013     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20014     written |= (1 << 17);
20015     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20016   }
20017 }
20018 }
20019 {
20020   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20021   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20022   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20023   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20024 }
20025 if (GTHI (tmp_argihi, tmp_argjhi)) {
20026   {
20027     UHI opval = tmp_argjhi;
20028     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
20029     written |= (1 << 16);
20030     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20031   }
20032 } else {
20033 if (LTHI (tmp_argihi, INVHI (tmp_argjhi))) {
20034   {
20035     UHI opval = INVHI (tmp_argjhi);
20036     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
20037     written |= (1 << 16);
20038     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20039   }
20040 } else {
20041   {
20042     UHI opval = tmp_argihi;
20043     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
20044     written |= (1 << 16);
20045     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20046   }
20047 }
20048 }
20049 if (GTHI (tmp_argilo, tmp_argjlo)) {
20050   {
20051     UHI opval = tmp_argjlo;
20052     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
20053     written |= (1 << 18);
20054     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20055   }
20056 } else {
20057 if (LTHI (tmp_argilo, INVHI (tmp_argjlo))) {
20058   {
20059     UHI opval = INVHI (tmp_argjlo);
20060     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
20061     written |= (1 << 18);
20062     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20063   }
20064 } else {
20065   {
20066     UHI opval = tmp_argilo;
20067     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
20068     written |= (1 << 18);
20069     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20070   }
20071 }
20072 }
20073 }
20074 }
20075
20076   abuf->written = written;
20077   return vpc;
20078 #undef FLD
20079 }
20080
20081 /* msathu: msathu$pack $FRinti,$FRintj,$FRintk */
20082
20083 static SEM_PC
20084 SEM_FN_NAME (frvbf,msathu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20085 {
20086 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
20087   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20088   int UNUSED written = 0;
20089   IADDR UNUSED pc = abuf->addr;
20090   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20091
20092 {
20093   UHI tmp_argihi;
20094   UHI tmp_argilo;
20095   UHI tmp_argjhi;
20096   UHI tmp_argjlo;
20097 {
20098   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20099   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20100   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20101   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20102 }
20103 if (GTUHI (tmp_argihi, tmp_argjhi)) {
20104   {
20105     UHI opval = tmp_argjhi;
20106     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20107     written |= (1 << 9);
20108     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20109   }
20110 } else {
20111   {
20112     UHI opval = tmp_argihi;
20113     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20114     written |= (1 << 9);
20115     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20116   }
20117 }
20118 if (GTUHI (tmp_argilo, tmp_argjlo)) {
20119   {
20120     UHI opval = tmp_argjlo;
20121     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20122     written |= (1 << 10);
20123     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20124   }
20125 } else {
20126   {
20127     UHI opval = tmp_argilo;
20128     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20129     written |= (1 << 10);
20130     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20131   }
20132 }
20133 }
20134
20135   abuf->written = written;
20136   return vpc;
20137 #undef FLD
20138 }
20139
20140 /* mcmpsh: mcmpsh$pack $FRinti,$FRintj,$FCCk */
20141
20142 static SEM_PC
20143 SEM_FN_NAME (frvbf,mcmpsh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20144 {
20145 #define FLD(f) abuf->fields.sfmt_mcmpsh.f
20146   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20147   int UNUSED written = 0;
20148   IADDR UNUSED pc = abuf->addr;
20149   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20150
20151 if (ANDSI (FLD (f_FCCk), SUBSI (2, 1))) {
20152 frvbf_media_cr_not_aligned (current_cpu);
20153 } else {
20154 {
20155   HI tmp_argihi;
20156   HI tmp_argilo;
20157   HI tmp_argjhi;
20158   HI tmp_argjlo;
20159 {
20160   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20161   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20162   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20163   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20164 }
20165 if (GTHI (tmp_argihi, tmp_argjhi)) {
20166   {
20167     UQI opval = 2;
20168     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCk)]), opval);
20169     written |= (1 << 9);
20170     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20171   }
20172 } else {
20173 if (EQHI (tmp_argihi, tmp_argjhi)) {
20174   {
20175     UQI opval = 8;
20176     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCk)]), opval);
20177     written |= (1 << 9);
20178     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20179   }
20180 } else {
20181 if (LTHI (tmp_argihi, tmp_argjhi)) {
20182   {
20183     UQI opval = 4;
20184     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCk)]), opval);
20185     written |= (1 << 9);
20186     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20187   }
20188 } else {
20189   {
20190     UQI opval = 1;
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 }
20196 }
20197 }
20198 if (GTHI (tmp_argilo, tmp_argjlo)) {
20199   {
20200     UQI opval = 2;
20201     sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCk)) + (1))]), opval);
20202     written |= (1 << 10);
20203     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20204   }
20205 } else {
20206 if (EQHI (tmp_argilo, tmp_argjlo)) {
20207   {
20208     UQI opval = 8;
20209     sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCk)) + (1))]), opval);
20210     written |= (1 << 10);
20211     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20212   }
20213 } else {
20214 if (LTHI (tmp_argilo, tmp_argjlo)) {
20215   {
20216     UQI opval = 4;
20217     sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCk)) + (1))]), opval);
20218     written |= (1 << 10);
20219     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20220   }
20221 } else {
20222   {
20223     UQI opval = 1;
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 }
20229 }
20230 }
20231 }
20232 }
20233
20234   abuf->written = written;
20235   return vpc;
20236 #undef FLD
20237 }
20238
20239 /* mcmpuh: mcmpuh$pack $FRinti,$FRintj,$FCCk */
20240
20241 static SEM_PC
20242 SEM_FN_NAME (frvbf,mcmpuh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20243 {
20244 #define FLD(f) abuf->fields.sfmt_mcmpsh.f
20245   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20246   int UNUSED written = 0;
20247   IADDR UNUSED pc = abuf->addr;
20248   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20249
20250 if (ANDSI (FLD (f_FCCk), SUBSI (2, 1))) {
20251 frvbf_media_cr_not_aligned (current_cpu);
20252 } else {
20253 {
20254   UHI tmp_argihi;
20255   UHI tmp_argilo;
20256   UHI tmp_argjhi;
20257   UHI tmp_argjlo;
20258 {
20259   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20260   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20261   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20262   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20263 }
20264 if (GTUHI (tmp_argihi, tmp_argjhi)) {
20265   {
20266     UQI opval = 2;
20267     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCk)]), opval);
20268     written |= (1 << 9);
20269     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20270   }
20271 } else {
20272 if (EQHI (tmp_argihi, tmp_argjhi)) {
20273   {
20274     UQI opval = 8;
20275     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCk)]), opval);
20276     written |= (1 << 9);
20277     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20278   }
20279 } else {
20280 if (LTUHI (tmp_argihi, tmp_argjhi)) {
20281   {
20282     UQI opval = 4;
20283     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCk)]), opval);
20284     written |= (1 << 9);
20285     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20286   }
20287 } else {
20288   {
20289     UQI opval = 1;
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 }
20295 }
20296 }
20297 if (GTUHI (tmp_argilo, tmp_argjlo)) {
20298   {
20299     UQI opval = 2;
20300     sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCk)) + (1))]), opval);
20301     written |= (1 << 10);
20302     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20303   }
20304 } else {
20305 if (EQHI (tmp_argilo, tmp_argjlo)) {
20306   {
20307     UQI opval = 8;
20308     sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCk)) + (1))]), opval);
20309     written |= (1 << 10);
20310     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20311   }
20312 } else {
20313 if (LTUHI (tmp_argilo, tmp_argjlo)) {
20314   {
20315     UQI opval = 4;
20316     sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCk)) + (1))]), opval);
20317     written |= (1 << 10);
20318     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20319   }
20320 } else {
20321   {
20322     UQI opval = 1;
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 }
20328 }
20329 }
20330 }
20331 }
20332
20333   abuf->written = written;
20334   return vpc;
20335 #undef FLD
20336 }
20337
20338 /* mabshs: mabshs$pack $FRintj,$FRintk */
20339
20340 static SEM_PC
20341 SEM_FN_NAME (frvbf,mabshs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20342 {
20343 #define FLD(f) abuf->fields.sfmt_mabshs.f
20344   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20345   int UNUSED written = 0;
20346   IADDR UNUSED pc = abuf->addr;
20347   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20348
20349 {
20350   HI tmp_arghi;
20351   HI tmp_arglo;
20352   {
20353     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRj)));
20354     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRj), opval);
20355     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
20356   }
20357   {
20358     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
20359     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
20360     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
20361   }
20362   tmp_arghi = GET_H_FR_HI (((FLD (f_FRj)) + (0)));
20363   tmp_arglo = GET_H_FR_LO (((FLD (f_FRj)) + (0)));
20364 if (GTDI (ABSHI (tmp_arghi), 32767)) {
20365 {
20366   {
20367     UHI opval = 32767;
20368     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20369     written |= (1 << 8);
20370     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20371   }
20372 frvbf_media_overflow (current_cpu, 8);
20373 }
20374 } else {
20375 if (LTDI (ABSHI (tmp_arghi), -32768)) {
20376 {
20377   {
20378     UHI opval = -32768;
20379     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20380     written |= (1 << 8);
20381     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20382   }
20383 frvbf_media_overflow (current_cpu, 8);
20384 }
20385 } else {
20386   {
20387     UHI opval = ABSHI (tmp_arghi);
20388     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20389     written |= (1 << 8);
20390     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20391   }
20392 }
20393 }
20394 if (GTDI (ABSHI (tmp_arglo), 32767)) {
20395 {
20396   {
20397     UHI opval = 32767;
20398     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20399     written |= (1 << 9);
20400     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20401   }
20402 frvbf_media_overflow (current_cpu, 4);
20403 }
20404 } else {
20405 if (LTDI (ABSHI (tmp_arglo), -32768)) {
20406 {
20407   {
20408     UHI opval = -32768;
20409     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20410     written |= (1 << 9);
20411     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20412   }
20413 frvbf_media_overflow (current_cpu, 4);
20414 }
20415 } else {
20416   {
20417     UHI opval = ABSHI (tmp_arglo);
20418     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20419     written |= (1 << 9);
20420     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20421   }
20422 }
20423 }
20424 }
20425
20426   abuf->written = written;
20427   return vpc;
20428 #undef FLD
20429 }
20430
20431 /* maddhss: maddhss$pack $FRinti,$FRintj,$FRintk */
20432
20433 static SEM_PC
20434 SEM_FN_NAME (frvbf,maddhss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20435 {
20436 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
20437   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20438   int UNUSED written = 0;
20439   IADDR UNUSED pc = abuf->addr;
20440   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20441
20442 {
20443   HI tmp_argihi;
20444   HI tmp_argilo;
20445   HI tmp_argjhi;
20446   HI tmp_argjlo;
20447 {
20448   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20449   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20450   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20451   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20452 }
20453 {
20454   DI tmp_tmp;
20455   tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
20456 if (GTDI (tmp_tmp, 32767)) {
20457 {
20458   {
20459     UHI opval = 32767;
20460     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20461     written |= (1 << 9);
20462     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20463   }
20464 frvbf_media_overflow (current_cpu, 8);
20465 }
20466 } else {
20467 if (LTDI (tmp_tmp, -32768)) {
20468 {
20469   {
20470     UHI opval = -32768;
20471     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20472     written |= (1 << 9);
20473     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20474   }
20475 frvbf_media_overflow (current_cpu, 8);
20476 }
20477 } else {
20478   {
20479     UHI opval = tmp_tmp;
20480     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20481     written |= (1 << 9);
20482     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20483   }
20484 }
20485 }
20486 }
20487 {
20488   DI tmp_tmp;
20489   tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
20490 if (GTDI (tmp_tmp, 32767)) {
20491 {
20492   {
20493     UHI opval = 32767;
20494     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20495     written |= (1 << 10);
20496     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20497   }
20498 frvbf_media_overflow (current_cpu, 4);
20499 }
20500 } else {
20501 if (LTDI (tmp_tmp, -32768)) {
20502 {
20503   {
20504     UHI opval = -32768;
20505     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20506     written |= (1 << 10);
20507     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20508   }
20509 frvbf_media_overflow (current_cpu, 4);
20510 }
20511 } else {
20512   {
20513     UHI opval = tmp_tmp;
20514     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20515     written |= (1 << 10);
20516     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20517   }
20518 }
20519 }
20520 }
20521 }
20522
20523   abuf->written = written;
20524   return vpc;
20525 #undef FLD
20526 }
20527
20528 /* maddhus: maddhus$pack $FRinti,$FRintj,$FRintk */
20529
20530 static SEM_PC
20531 SEM_FN_NAME (frvbf,maddhus) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20532 {
20533 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
20534   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20535   int UNUSED written = 0;
20536   IADDR UNUSED pc = abuf->addr;
20537   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20538
20539 {
20540   UHI tmp_argihi;
20541   UHI tmp_argilo;
20542   UHI tmp_argjhi;
20543   UHI tmp_argjlo;
20544 {
20545   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20546   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20547   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20548   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20549 }
20550 {
20551   DI tmp_tmp;
20552   tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
20553 if (GTDI (tmp_tmp, 65535)) {
20554 {
20555   {
20556     UHI opval = 65535;
20557     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20558     written |= (1 << 9);
20559     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20560   }
20561 frvbf_media_overflow (current_cpu, 8);
20562 }
20563 } else {
20564 if (LTDI (tmp_tmp, 0)) {
20565 {
20566   {
20567     UHI opval = 0;
20568     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20569     written |= (1 << 9);
20570     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20571   }
20572 frvbf_media_overflow (current_cpu, 8);
20573 }
20574 } else {
20575   {
20576     UHI opval = tmp_tmp;
20577     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20578     written |= (1 << 9);
20579     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20580   }
20581 }
20582 }
20583 }
20584 {
20585   DI tmp_tmp;
20586   tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
20587 if (GTDI (tmp_tmp, 65535)) {
20588 {
20589   {
20590     UHI opval = 65535;
20591     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20592     written |= (1 << 10);
20593     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20594   }
20595 frvbf_media_overflow (current_cpu, 4);
20596 }
20597 } else {
20598 if (LTDI (tmp_tmp, 0)) {
20599 {
20600   {
20601     UHI opval = 0;
20602     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20603     written |= (1 << 10);
20604     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20605   }
20606 frvbf_media_overflow (current_cpu, 4);
20607 }
20608 } else {
20609   {
20610     UHI opval = tmp_tmp;
20611     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20612     written |= (1 << 10);
20613     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20614   }
20615 }
20616 }
20617 }
20618 }
20619
20620   abuf->written = written;
20621   return vpc;
20622 #undef FLD
20623 }
20624
20625 /* msubhss: msubhss$pack $FRinti,$FRintj,$FRintk */
20626
20627 static SEM_PC
20628 SEM_FN_NAME (frvbf,msubhss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20629 {
20630 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
20631   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20632   int UNUSED written = 0;
20633   IADDR UNUSED pc = abuf->addr;
20634   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20635
20636 {
20637   HI tmp_argihi;
20638   HI tmp_argilo;
20639   HI tmp_argjhi;
20640   HI tmp_argjlo;
20641 {
20642   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20643   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20644   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20645   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20646 }
20647 {
20648   DI tmp_tmp;
20649   tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
20650 if (GTDI (tmp_tmp, 32767)) {
20651 {
20652   {
20653     UHI opval = 32767;
20654     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20655     written |= (1 << 9);
20656     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20657   }
20658 frvbf_media_overflow (current_cpu, 8);
20659 }
20660 } else {
20661 if (LTDI (tmp_tmp, -32768)) {
20662 {
20663   {
20664     UHI opval = -32768;
20665     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20666     written |= (1 << 9);
20667     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20668   }
20669 frvbf_media_overflow (current_cpu, 8);
20670 }
20671 } else {
20672   {
20673     UHI opval = tmp_tmp;
20674     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20675     written |= (1 << 9);
20676     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20677   }
20678 }
20679 }
20680 }
20681 {
20682   DI tmp_tmp;
20683   tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
20684 if (GTDI (tmp_tmp, 32767)) {
20685 {
20686   {
20687     UHI opval = 32767;
20688     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20689     written |= (1 << 10);
20690     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20691   }
20692 frvbf_media_overflow (current_cpu, 4);
20693 }
20694 } else {
20695 if (LTDI (tmp_tmp, -32768)) {
20696 {
20697   {
20698     UHI opval = -32768;
20699     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20700     written |= (1 << 10);
20701     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20702   }
20703 frvbf_media_overflow (current_cpu, 4);
20704 }
20705 } else {
20706   {
20707     UHI opval = tmp_tmp;
20708     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20709     written |= (1 << 10);
20710     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20711   }
20712 }
20713 }
20714 }
20715 }
20716
20717   abuf->written = written;
20718   return vpc;
20719 #undef FLD
20720 }
20721
20722 /* msubhus: msubhus$pack $FRinti,$FRintj,$FRintk */
20723
20724 static SEM_PC
20725 SEM_FN_NAME (frvbf,msubhus) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20726 {
20727 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
20728   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20729   int UNUSED written = 0;
20730   IADDR UNUSED pc = abuf->addr;
20731   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20732
20733 {
20734   UHI tmp_argihi;
20735   UHI tmp_argilo;
20736   UHI tmp_argjhi;
20737   UHI tmp_argjlo;
20738 {
20739   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20740   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20741   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20742   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20743 }
20744 {
20745   DI tmp_tmp;
20746   tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
20747 if (GTDI (tmp_tmp, 65535)) {
20748 {
20749   {
20750     UHI opval = 65535;
20751     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20752     written |= (1 << 9);
20753     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20754   }
20755 frvbf_media_overflow (current_cpu, 8);
20756 }
20757 } else {
20758 if (LTDI (tmp_tmp, 0)) {
20759 {
20760   {
20761     UHI opval = 0;
20762     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20763     written |= (1 << 9);
20764     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20765   }
20766 frvbf_media_overflow (current_cpu, 8);
20767 }
20768 } else {
20769   {
20770     UHI opval = tmp_tmp;
20771     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20772     written |= (1 << 9);
20773     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20774   }
20775 }
20776 }
20777 }
20778 {
20779   DI tmp_tmp;
20780   tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
20781 if (GTDI (tmp_tmp, 65535)) {
20782 {
20783   {
20784     UHI opval = 65535;
20785     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20786     written |= (1 << 10);
20787     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20788   }
20789 frvbf_media_overflow (current_cpu, 4);
20790 }
20791 } else {
20792 if (LTDI (tmp_tmp, 0)) {
20793 {
20794   {
20795     UHI opval = 0;
20796     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20797     written |= (1 << 10);
20798     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20799   }
20800 frvbf_media_overflow (current_cpu, 4);
20801 }
20802 } else {
20803   {
20804     UHI opval = tmp_tmp;
20805     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20806     written |= (1 << 10);
20807     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20808   }
20809 }
20810 }
20811 }
20812 }
20813
20814   abuf->written = written;
20815   return vpc;
20816 #undef FLD
20817 }
20818
20819 /* cmaddhss: cmaddhss$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
20820
20821 static SEM_PC
20822 SEM_FN_NAME (frvbf,cmaddhss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20823 {
20824 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
20825   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20826   int UNUSED written = 0;
20827   IADDR UNUSED pc = abuf->addr;
20828   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20829
20830 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
20831 {
20832   HI tmp_argihi;
20833   HI tmp_argilo;
20834   HI tmp_argjhi;
20835   HI tmp_argjlo;
20836 {
20837   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20838   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20839   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20840   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20841 }
20842 {
20843   DI tmp_tmp;
20844   tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
20845 if (GTDI (tmp_tmp, 32767)) {
20846 {
20847   {
20848     UHI opval = 32767;
20849     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20850     written |= (1 << 11);
20851     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20852   }
20853 frvbf_media_overflow (current_cpu, 8);
20854 }
20855 } else {
20856 if (LTDI (tmp_tmp, -32768)) {
20857 {
20858   {
20859     UHI opval = -32768;
20860     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20861     written |= (1 << 11);
20862     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20863   }
20864 frvbf_media_overflow (current_cpu, 8);
20865 }
20866 } else {
20867   {
20868     UHI opval = tmp_tmp;
20869     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20870     written |= (1 << 11);
20871     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20872   }
20873 }
20874 }
20875 }
20876 {
20877   DI tmp_tmp;
20878   tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
20879 if (GTDI (tmp_tmp, 32767)) {
20880 {
20881   {
20882     UHI opval = 32767;
20883     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20884     written |= (1 << 12);
20885     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20886   }
20887 frvbf_media_overflow (current_cpu, 4);
20888 }
20889 } else {
20890 if (LTDI (tmp_tmp, -32768)) {
20891 {
20892   {
20893     UHI opval = -32768;
20894     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20895     written |= (1 << 12);
20896     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20897   }
20898 frvbf_media_overflow (current_cpu, 4);
20899 }
20900 } else {
20901   {
20902     UHI opval = tmp_tmp;
20903     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20904     written |= (1 << 12);
20905     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20906   }
20907 }
20908 }
20909 }
20910 }
20911 }
20912
20913   abuf->written = written;
20914   return vpc;
20915 #undef FLD
20916 }
20917
20918 /* cmaddhus: cmaddhus$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
20919
20920 static SEM_PC
20921 SEM_FN_NAME (frvbf,cmaddhus) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20922 {
20923 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
20924   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20925   int UNUSED written = 0;
20926   IADDR UNUSED pc = abuf->addr;
20927   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20928
20929 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
20930 {
20931   UHI tmp_argihi;
20932   UHI tmp_argilo;
20933   UHI tmp_argjhi;
20934   UHI tmp_argjlo;
20935 {
20936   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20937   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20938   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20939   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20940 }
20941 {
20942   DI tmp_tmp;
20943   tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
20944 if (GTDI (tmp_tmp, 65535)) {
20945 {
20946   {
20947     UHI opval = 65535;
20948     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20949     written |= (1 << 11);
20950     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20951   }
20952 frvbf_media_overflow (current_cpu, 8);
20953 }
20954 } else {
20955 if (LTDI (tmp_tmp, 0)) {
20956 {
20957   {
20958     UHI opval = 0;
20959     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20960     written |= (1 << 11);
20961     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20962   }
20963 frvbf_media_overflow (current_cpu, 8);
20964 }
20965 } else {
20966   {
20967     UHI opval = tmp_tmp;
20968     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20969     written |= (1 << 11);
20970     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20971   }
20972 }
20973 }
20974 }
20975 {
20976   DI tmp_tmp;
20977   tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
20978 if (GTDI (tmp_tmp, 65535)) {
20979 {
20980   {
20981     UHI opval = 65535;
20982     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20983     written |= (1 << 12);
20984     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20985   }
20986 frvbf_media_overflow (current_cpu, 4);
20987 }
20988 } else {
20989 if (LTDI (tmp_tmp, 0)) {
20990 {
20991   {
20992     UHI opval = 0;
20993     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20994     written |= (1 << 12);
20995     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20996   }
20997 frvbf_media_overflow (current_cpu, 4);
20998 }
20999 } else {
21000   {
21001     UHI opval = tmp_tmp;
21002     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21003     written |= (1 << 12);
21004     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21005   }
21006 }
21007 }
21008 }
21009 }
21010 }
21011
21012   abuf->written = written;
21013   return vpc;
21014 #undef FLD
21015 }
21016
21017 /* cmsubhss: cmsubhss$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
21018
21019 static SEM_PC
21020 SEM_FN_NAME (frvbf,cmsubhss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
21021 {
21022 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
21023   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
21024   int UNUSED written = 0;
21025   IADDR UNUSED pc = abuf->addr;
21026   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
21027
21028 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
21029 {
21030   HI tmp_argihi;
21031   HI tmp_argilo;
21032   HI tmp_argjhi;
21033   HI tmp_argjlo;
21034 {
21035   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21036   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21037   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21038   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21039 }
21040 {
21041   DI tmp_tmp;
21042   tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
21043 if (GTDI (tmp_tmp, 32767)) {
21044 {
21045   {
21046     UHI opval = 32767;
21047     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21048     written |= (1 << 11);
21049     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21050   }
21051 frvbf_media_overflow (current_cpu, 8);
21052 }
21053 } else {
21054 if (LTDI (tmp_tmp, -32768)) {
21055 {
21056   {
21057     UHI opval = -32768;
21058     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21059     written |= (1 << 11);
21060     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21061   }
21062 frvbf_media_overflow (current_cpu, 8);
21063 }
21064 } else {
21065   {
21066     UHI opval = tmp_tmp;
21067     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21068     written |= (1 << 11);
21069     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21070   }
21071 }
21072 }
21073 }
21074 {
21075   DI tmp_tmp;
21076   tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
21077 if (GTDI (tmp_tmp, 32767)) {
21078 {
21079   {
21080     UHI opval = 32767;
21081     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21082     written |= (1 << 12);
21083     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21084   }
21085 frvbf_media_overflow (current_cpu, 4);
21086 }
21087 } else {
21088 if (LTDI (tmp_tmp, -32768)) {
21089 {
21090   {
21091     UHI opval = -32768;
21092     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21093     written |= (1 << 12);
21094     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21095   }
21096 frvbf_media_overflow (current_cpu, 4);
21097 }
21098 } else {
21099   {
21100     UHI opval = tmp_tmp;
21101     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21102     written |= (1 << 12);
21103     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21104   }
21105 }
21106 }
21107 }
21108 }
21109 }
21110
21111   abuf->written = written;
21112   return vpc;
21113 #undef FLD
21114 }
21115
21116 /* cmsubhus: cmsubhus$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
21117
21118 static SEM_PC
21119 SEM_FN_NAME (frvbf,cmsubhus) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
21120 {
21121 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
21122   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
21123   int UNUSED written = 0;
21124   IADDR UNUSED pc = abuf->addr;
21125   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
21126
21127 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
21128 {
21129   UHI tmp_argihi;
21130   UHI tmp_argilo;
21131   UHI tmp_argjhi;
21132   UHI tmp_argjlo;
21133 {
21134   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21135   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21136   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21137   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21138 }
21139 {
21140   DI tmp_tmp;
21141   tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
21142 if (GTDI (tmp_tmp, 65535)) {
21143 {
21144   {
21145     UHI opval = 65535;
21146     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21147     written |= (1 << 11);
21148     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21149   }
21150 frvbf_media_overflow (current_cpu, 8);
21151 }
21152 } else {
21153 if (LTDI (tmp_tmp, 0)) {
21154 {
21155   {
21156     UHI opval = 0;
21157     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21158     written |= (1 << 11);
21159     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21160   }
21161 frvbf_media_overflow (current_cpu, 8);
21162 }
21163 } else {
21164   {
21165     UHI opval = tmp_tmp;
21166     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21167     written |= (1 << 11);
21168     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21169   }
21170 }
21171 }
21172 }
21173 {
21174   DI tmp_tmp;
21175   tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
21176 if (GTDI (tmp_tmp, 65535)) {
21177 {
21178   {
21179     UHI opval = 65535;
21180     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21181     written |= (1 << 12);
21182     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21183   }
21184 frvbf_media_overflow (current_cpu, 4);
21185 }
21186 } else {
21187 if (LTDI (tmp_tmp, 0)) {
21188 {
21189   {
21190     UHI opval = 0;
21191     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21192     written |= (1 << 12);
21193     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21194   }
21195 frvbf_media_overflow (current_cpu, 4);
21196 }
21197 } else {
21198   {
21199     UHI opval = tmp_tmp;
21200     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21201     written |= (1 << 12);
21202     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21203   }
21204 }
21205 }
21206 }
21207 }
21208 }
21209
21210   abuf->written = written;
21211   return vpc;
21212 #undef FLD
21213 }
21214
21215 /* mqaddhss: mqaddhss$pack $FRintieven,$FRintjeven,$FRintkeven */
21216
21217 static SEM_PC
21218 SEM_FN_NAME (frvbf,mqaddhss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
21219 {
21220 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
21221   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
21222   int UNUSED written = 0;
21223   IADDR UNUSED pc = abuf->addr;
21224   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
21225
21226 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
21227 frvbf_media_register_not_aligned (current_cpu);
21228 } else {
21229 {
21230   HI tmp_argihi;
21231   HI tmp_argilo;
21232   HI tmp_argjhi;
21233   HI tmp_argjlo;
21234   {
21235     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
21236     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
21237     written |= (1 << 14);
21238     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
21239   }
21240 {
21241   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21242   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21243   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21244   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21245 }
21246 {
21247   DI tmp_tmp;
21248   tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
21249 if (GTDI (tmp_tmp, 32767)) {
21250 {
21251   {
21252     UHI opval = 32767;
21253     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21254     written |= (1 << 15);
21255     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21256   }
21257 frvbf_media_overflow (current_cpu, 8);
21258 }
21259 } else {
21260 if (LTDI (tmp_tmp, -32768)) {
21261 {
21262   {
21263     UHI opval = -32768;
21264     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21265     written |= (1 << 15);
21266     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21267   }
21268 frvbf_media_overflow (current_cpu, 8);
21269 }
21270 } else {
21271   {
21272     UHI opval = tmp_tmp;
21273     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21274     written |= (1 << 15);
21275     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21276   }
21277 }
21278 }
21279 }
21280 {
21281   DI tmp_tmp;
21282   tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
21283 if (GTDI (tmp_tmp, 32767)) {
21284 {
21285   {
21286     UHI opval = 32767;
21287     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21288     written |= (1 << 17);
21289     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21290   }
21291 frvbf_media_overflow (current_cpu, 4);
21292 }
21293 } else {
21294 if (LTDI (tmp_tmp, -32768)) {
21295 {
21296   {
21297     UHI opval = -32768;
21298     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21299     written |= (1 << 17);
21300     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21301   }
21302 frvbf_media_overflow (current_cpu, 4);
21303 }
21304 } else {
21305   {
21306     UHI opval = tmp_tmp;
21307     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21308     written |= (1 << 17);
21309     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21310   }
21311 }
21312 }
21313 }
21314 {
21315   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21316   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21317   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21318   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21319 }
21320 {
21321   DI tmp_tmp;
21322   tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
21323 if (GTDI (tmp_tmp, 32767)) {
21324 {
21325   {
21326     UHI opval = 32767;
21327     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21328     written |= (1 << 16);
21329     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21330   }
21331 frvbf_media_overflow (current_cpu, 2);
21332 }
21333 } else {
21334 if (LTDI (tmp_tmp, -32768)) {
21335 {
21336   {
21337     UHI opval = -32768;
21338     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21339     written |= (1 << 16);
21340     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21341   }
21342 frvbf_media_overflow (current_cpu, 2);
21343 }
21344 } else {
21345   {
21346     UHI opval = tmp_tmp;
21347     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21348     written |= (1 << 16);
21349     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21350   }
21351 }
21352 }
21353 }
21354 {
21355   DI tmp_tmp;
21356   tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
21357 if (GTDI (tmp_tmp, 32767)) {
21358 {
21359   {
21360     UHI opval = 32767;
21361     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21362     written |= (1 << 18);
21363     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21364   }
21365 frvbf_media_overflow (current_cpu, 1);
21366 }
21367 } else {
21368 if (LTDI (tmp_tmp, -32768)) {
21369 {
21370   {
21371     UHI opval = -32768;
21372     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21373     written |= (1 << 18);
21374     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21375   }
21376 frvbf_media_overflow (current_cpu, 1);
21377 }
21378 } else {
21379   {
21380     UHI opval = tmp_tmp;
21381     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21382     written |= (1 << 18);
21383     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21384   }
21385 }
21386 }
21387 }
21388 }
21389 }
21390
21391   abuf->written = written;
21392   return vpc;
21393 #undef FLD
21394 }
21395
21396 /* mqaddhus: mqaddhus$pack $FRintieven,$FRintjeven,$FRintkeven */
21397
21398 static SEM_PC
21399 SEM_FN_NAME (frvbf,mqaddhus) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
21400 {
21401 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
21402   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
21403   int UNUSED written = 0;
21404   IADDR UNUSED pc = abuf->addr;
21405   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
21406
21407 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
21408 frvbf_media_register_not_aligned (current_cpu);
21409 } else {
21410 {
21411   UHI tmp_argihi;
21412   UHI tmp_argilo;
21413   UHI tmp_argjhi;
21414   UHI tmp_argjlo;
21415   {
21416     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
21417     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
21418     written |= (1 << 14);
21419     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
21420   }
21421 {
21422   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21423   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21424   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21425   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21426 }
21427 {
21428   DI tmp_tmp;
21429   tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
21430 if (GTDI (tmp_tmp, 65535)) {
21431 {
21432   {
21433     UHI opval = 65535;
21434     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21435     written |= (1 << 15);
21436     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21437   }
21438 frvbf_media_overflow (current_cpu, 8);
21439 }
21440 } else {
21441 if (LTDI (tmp_tmp, 0)) {
21442 {
21443   {
21444     UHI opval = 0;
21445     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21446     written |= (1 << 15);
21447     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21448   }
21449 frvbf_media_overflow (current_cpu, 8);
21450 }
21451 } else {
21452   {
21453     UHI opval = tmp_tmp;
21454     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21455     written |= (1 << 15);
21456     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21457   }
21458 }
21459 }
21460 }
21461 {
21462   DI tmp_tmp;
21463   tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
21464 if (GTDI (tmp_tmp, 65535)) {
21465 {
21466   {
21467     UHI opval = 65535;
21468     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21469     written |= (1 << 17);
21470     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21471   }
21472 frvbf_media_overflow (current_cpu, 4);
21473 }
21474 } else {
21475 if (LTDI (tmp_tmp, 0)) {
21476 {
21477   {
21478     UHI opval = 0;
21479     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21480     written |= (1 << 17);
21481     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21482   }
21483 frvbf_media_overflow (current_cpu, 4);
21484 }
21485 } else {
21486   {
21487     UHI opval = tmp_tmp;
21488     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21489     written |= (1 << 17);
21490     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21491   }
21492 }
21493 }
21494 }
21495 {
21496   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21497   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21498   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21499   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21500 }
21501 {
21502   DI tmp_tmp;
21503   tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
21504 if (GTDI (tmp_tmp, 65535)) {
21505 {
21506   {
21507     UHI opval = 65535;
21508     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21509     written |= (1 << 16);
21510     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21511   }
21512 frvbf_media_overflow (current_cpu, 2);
21513 }
21514 } else {
21515 if (LTDI (tmp_tmp, 0)) {
21516 {
21517   {
21518     UHI opval = 0;
21519     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21520     written |= (1 << 16);
21521     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21522   }
21523 frvbf_media_overflow (current_cpu, 2);
21524 }
21525 } else {
21526   {
21527     UHI opval = tmp_tmp;
21528     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21529     written |= (1 << 16);
21530     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21531   }
21532 }
21533 }
21534 }
21535 {
21536   DI tmp_tmp;
21537   tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
21538 if (GTDI (tmp_tmp, 65535)) {
21539 {
21540   {
21541     UHI opval = 65535;
21542     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21543     written |= (1 << 18);
21544     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21545   }
21546 frvbf_media_overflow (current_cpu, 1);
21547 }
21548 } else {
21549 if (LTDI (tmp_tmp, 0)) {
21550 {
21551   {
21552     UHI opval = 0;
21553     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21554     written |= (1 << 18);
21555     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21556   }
21557 frvbf_media_overflow (current_cpu, 1);
21558 }
21559 } else {
21560   {
21561     UHI opval = tmp_tmp;
21562     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21563     written |= (1 << 18);
21564     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21565   }
21566 }
21567 }
21568 }
21569 }
21570 }
21571
21572   abuf->written = written;
21573   return vpc;
21574 #undef FLD
21575 }
21576
21577 /* mqsubhss: mqsubhss$pack $FRintieven,$FRintjeven,$FRintkeven */
21578
21579 static SEM_PC
21580 SEM_FN_NAME (frvbf,mqsubhss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
21581 {
21582 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
21583   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
21584   int UNUSED written = 0;
21585   IADDR UNUSED pc = abuf->addr;
21586   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
21587
21588 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
21589 frvbf_media_register_not_aligned (current_cpu);
21590 } else {
21591 {
21592   HI tmp_argihi;
21593   HI tmp_argilo;
21594   HI tmp_argjhi;
21595   HI tmp_argjlo;
21596   {
21597     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
21598     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
21599     written |= (1 << 14);
21600     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
21601   }
21602 {
21603   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21604   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21605   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21606   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21607 }
21608 {
21609   DI tmp_tmp;
21610   tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
21611 if (GTDI (tmp_tmp, 32767)) {
21612 {
21613   {
21614     UHI opval = 32767;
21615     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21616     written |= (1 << 15);
21617     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21618   }
21619 frvbf_media_overflow (current_cpu, 8);
21620 }
21621 } else {
21622 if (LTDI (tmp_tmp, -32768)) {
21623 {
21624   {
21625     UHI opval = -32768;
21626     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21627     written |= (1 << 15);
21628     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21629   }
21630 frvbf_media_overflow (current_cpu, 8);
21631 }
21632 } else {
21633   {
21634     UHI opval = tmp_tmp;
21635     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21636     written |= (1 << 15);
21637     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21638   }
21639 }
21640 }
21641 }
21642 {
21643   DI tmp_tmp;
21644   tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
21645 if (GTDI (tmp_tmp, 32767)) {
21646 {
21647   {
21648     UHI opval = 32767;
21649     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21650     written |= (1 << 17);
21651     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21652   }
21653 frvbf_media_overflow (current_cpu, 4);
21654 }
21655 } else {
21656 if (LTDI (tmp_tmp, -32768)) {
21657 {
21658   {
21659     UHI opval = -32768;
21660     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21661     written |= (1 << 17);
21662     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21663   }
21664 frvbf_media_overflow (current_cpu, 4);
21665 }
21666 } else {
21667   {
21668     UHI opval = tmp_tmp;
21669     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21670     written |= (1 << 17);
21671     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21672   }
21673 }
21674 }
21675 }
21676 {
21677   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21678   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21679   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21680   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21681 }
21682 {
21683   DI tmp_tmp;
21684   tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
21685 if (GTDI (tmp_tmp, 32767)) {
21686 {
21687   {
21688     UHI opval = 32767;
21689     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21690     written |= (1 << 16);
21691     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21692   }
21693 frvbf_media_overflow (current_cpu, 2);
21694 }
21695 } else {
21696 if (LTDI (tmp_tmp, -32768)) {
21697 {
21698   {
21699     UHI opval = -32768;
21700     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21701     written |= (1 << 16);
21702     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21703   }
21704 frvbf_media_overflow (current_cpu, 2);
21705 }
21706 } else {
21707   {
21708     UHI opval = tmp_tmp;
21709     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21710     written |= (1 << 16);
21711     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21712   }
21713 }
21714 }
21715 }
21716 {
21717   DI tmp_tmp;
21718   tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
21719 if (GTDI (tmp_tmp, 32767)) {
21720 {
21721   {
21722     UHI opval = 32767;
21723     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21724     written |= (1 << 18);
21725     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21726   }
21727 frvbf_media_overflow (current_cpu, 1);
21728 }
21729 } else {
21730 if (LTDI (tmp_tmp, -32768)) {
21731 {
21732   {
21733     UHI opval = -32768;
21734     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21735     written |= (1 << 18);
21736     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21737   }
21738 frvbf_media_overflow (current_cpu, 1);
21739 }
21740 } else {
21741   {
21742     UHI opval = tmp_tmp;
21743     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21744     written |= (1 << 18);
21745     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21746   }
21747 }
21748 }
21749 }
21750 }
21751 }
21752
21753   abuf->written = written;
21754   return vpc;
21755 #undef FLD
21756 }
21757
21758 /* mqsubhus: mqsubhus$pack $FRintieven,$FRintjeven,$FRintkeven */
21759
21760 static SEM_PC
21761 SEM_FN_NAME (frvbf,mqsubhus) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
21762 {
21763 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
21764   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
21765   int UNUSED written = 0;
21766   IADDR UNUSED pc = abuf->addr;
21767   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
21768
21769 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
21770 frvbf_media_register_not_aligned (current_cpu);
21771 } else {
21772 {
21773   UHI tmp_argihi;
21774   UHI tmp_argilo;
21775   UHI tmp_argjhi;
21776   UHI tmp_argjlo;
21777   {
21778     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
21779     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
21780     written |= (1 << 14);
21781     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
21782   }
21783 {
21784   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21785   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21786   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21787   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21788 }
21789 {
21790   DI tmp_tmp;
21791   tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
21792 if (GTDI (tmp_tmp, 65535)) {
21793 {
21794   {
21795     UHI opval = 65535;
21796     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21797     written |= (1 << 15);
21798     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21799   }
21800 frvbf_media_overflow (current_cpu, 8);
21801 }
21802 } else {
21803 if (LTDI (tmp_tmp, 0)) {
21804 {
21805   {
21806     UHI opval = 0;
21807     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21808     written |= (1 << 15);
21809     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21810   }
21811 frvbf_media_overflow (current_cpu, 8);
21812 }
21813 } else {
21814   {
21815     UHI opval = tmp_tmp;
21816     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21817     written |= (1 << 15);
21818     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21819   }
21820 }
21821 }
21822 }
21823 {
21824   DI tmp_tmp;
21825   tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
21826 if (GTDI (tmp_tmp, 65535)) {
21827 {
21828   {
21829     UHI opval = 65535;
21830     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21831     written |= (1 << 17);
21832     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21833   }
21834 frvbf_media_overflow (current_cpu, 4);
21835 }
21836 } else {
21837 if (LTDI (tmp_tmp, 0)) {
21838 {
21839   {
21840     UHI opval = 0;
21841     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21842     written |= (1 << 17);
21843     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21844   }
21845 frvbf_media_overflow (current_cpu, 4);
21846 }
21847 } else {
21848   {
21849     UHI opval = tmp_tmp;
21850     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21851     written |= (1 << 17);
21852     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21853   }
21854 }
21855 }
21856 }
21857 {
21858   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21859   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21860   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21861   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21862 }
21863 {
21864   DI tmp_tmp;
21865   tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
21866 if (GTDI (tmp_tmp, 65535)) {
21867 {
21868   {
21869     UHI opval = 65535;
21870     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21871     written |= (1 << 16);
21872     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21873   }
21874 frvbf_media_overflow (current_cpu, 2);
21875 }
21876 } else {
21877 if (LTDI (tmp_tmp, 0)) {
21878 {
21879   {
21880     UHI opval = 0;
21881     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21882     written |= (1 << 16);
21883     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21884   }
21885 frvbf_media_overflow (current_cpu, 2);
21886 }
21887 } else {
21888   {
21889     UHI opval = tmp_tmp;
21890     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21891     written |= (1 << 16);
21892     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21893   }
21894 }
21895 }
21896 }
21897 {
21898   DI tmp_tmp;
21899   tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
21900 if (GTDI (tmp_tmp, 65535)) {
21901 {
21902   {
21903     UHI opval = 65535;
21904     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21905     written |= (1 << 18);
21906     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21907   }
21908 frvbf_media_overflow (current_cpu, 1);
21909 }
21910 } else {
21911 if (LTDI (tmp_tmp, 0)) {
21912 {
21913   {
21914     UHI opval = 0;
21915     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21916     written |= (1 << 18);
21917     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21918   }
21919 frvbf_media_overflow (current_cpu, 1);
21920 }
21921 } else {
21922   {
21923     UHI opval = tmp_tmp;
21924     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21925     written |= (1 << 18);
21926     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21927   }
21928 }
21929 }
21930 }
21931 }
21932 }
21933
21934   abuf->written = written;
21935   return vpc;
21936 #undef FLD
21937 }
21938
21939 /* cmqaddhss: cmqaddhss$pack $FRintieven,$FRintjeven,$FRintkeven,$CCi,$cond */
21940
21941 static SEM_PC
21942 SEM_FN_NAME (frvbf,cmqaddhss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
21943 {
21944 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
21945   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
21946   int UNUSED written = 0;
21947   IADDR UNUSED pc = abuf->addr;
21948   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
21949
21950 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
21951 frvbf_media_register_not_aligned (current_cpu);
21952 } else {
21953 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
21954 {
21955   HI tmp_argihi;
21956   HI tmp_argilo;
21957   HI tmp_argjhi;
21958   HI tmp_argjlo;
21959   {
21960     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
21961     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
21962     written |= (1 << 16);
21963     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
21964   }
21965 {
21966   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21967   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21968   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21969   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21970 }
21971 {
21972   DI tmp_tmp;
21973   tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
21974 if (GTDI (tmp_tmp, 32767)) {
21975 {
21976   {
21977     UHI opval = 32767;
21978     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21979     written |= (1 << 17);
21980     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21981   }
21982 frvbf_media_overflow (current_cpu, 8);
21983 }
21984 } else {
21985 if (LTDI (tmp_tmp, -32768)) {
21986 {
21987   {
21988     UHI opval = -32768;
21989     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21990     written |= (1 << 17);
21991     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21992   }
21993 frvbf_media_overflow (current_cpu, 8);
21994 }
21995 } else {
21996   {
21997     UHI opval = tmp_tmp;
21998     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21999     written |= (1 << 17);
22000     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22001   }
22002 }
22003 }
22004 }
22005 {
22006   DI tmp_tmp;
22007   tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
22008 if (GTDI (tmp_tmp, 32767)) {
22009 {
22010   {
22011     UHI opval = 32767;
22012     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22013     written |= (1 << 19);
22014     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22015   }
22016 frvbf_media_overflow (current_cpu, 4);
22017 }
22018 } else {
22019 if (LTDI (tmp_tmp, -32768)) {
22020 {
22021   {
22022     UHI opval = -32768;
22023     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22024     written |= (1 << 19);
22025     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22026   }
22027 frvbf_media_overflow (current_cpu, 4);
22028 }
22029 } else {
22030   {
22031     UHI opval = tmp_tmp;
22032     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22033     written |= (1 << 19);
22034     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22035   }
22036 }
22037 }
22038 }
22039 {
22040   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22041   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22042   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22043   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22044 }
22045 {
22046   DI tmp_tmp;
22047   tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
22048 if (GTDI (tmp_tmp, 32767)) {
22049 {
22050   {
22051     UHI opval = 32767;
22052     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22053     written |= (1 << 18);
22054     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22055   }
22056 frvbf_media_overflow (current_cpu, 2);
22057 }
22058 } else {
22059 if (LTDI (tmp_tmp, -32768)) {
22060 {
22061   {
22062     UHI opval = -32768;
22063     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22064     written |= (1 << 18);
22065     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22066   }
22067 frvbf_media_overflow (current_cpu, 2);
22068 }
22069 } else {
22070   {
22071     UHI opval = tmp_tmp;
22072     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22073     written |= (1 << 18);
22074     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22075   }
22076 }
22077 }
22078 }
22079 {
22080   DI tmp_tmp;
22081   tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
22082 if (GTDI (tmp_tmp, 32767)) {
22083 {
22084   {
22085     UHI opval = 32767;
22086     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22087     written |= (1 << 20);
22088     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22089   }
22090 frvbf_media_overflow (current_cpu, 1);
22091 }
22092 } else {
22093 if (LTDI (tmp_tmp, -32768)) {
22094 {
22095   {
22096     UHI opval = -32768;
22097     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22098     written |= (1 << 20);
22099     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22100   }
22101 frvbf_media_overflow (current_cpu, 1);
22102 }
22103 } else {
22104   {
22105     UHI opval = tmp_tmp;
22106     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22107     written |= (1 << 20);
22108     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22109   }
22110 }
22111 }
22112 }
22113 }
22114 }
22115 }
22116
22117   abuf->written = written;
22118   return vpc;
22119 #undef FLD
22120 }
22121
22122 /* cmqaddhus: cmqaddhus$pack $FRintieven,$FRintjeven,$FRintkeven,$CCi,$cond */
22123
22124 static SEM_PC
22125 SEM_FN_NAME (frvbf,cmqaddhus) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
22126 {
22127 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
22128   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
22129   int UNUSED written = 0;
22130   IADDR UNUSED pc = abuf->addr;
22131   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
22132
22133 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
22134 frvbf_media_register_not_aligned (current_cpu);
22135 } else {
22136 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
22137 {
22138   UHI tmp_argihi;
22139   UHI tmp_argilo;
22140   UHI tmp_argjhi;
22141   UHI tmp_argjlo;
22142   {
22143     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
22144     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
22145     written |= (1 << 16);
22146     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
22147   }
22148 {
22149   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22150   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22151   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22152   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22153 }
22154 {
22155   DI tmp_tmp;
22156   tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
22157 if (GTDI (tmp_tmp, 65535)) {
22158 {
22159   {
22160     UHI opval = 65535;
22161     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22162     written |= (1 << 17);
22163     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22164   }
22165 frvbf_media_overflow (current_cpu, 8);
22166 }
22167 } else {
22168 if (LTDI (tmp_tmp, 0)) {
22169 {
22170   {
22171     UHI opval = 0;
22172     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22173     written |= (1 << 17);
22174     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22175   }
22176 frvbf_media_overflow (current_cpu, 8);
22177 }
22178 } else {
22179   {
22180     UHI opval = tmp_tmp;
22181     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22182     written |= (1 << 17);
22183     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22184   }
22185 }
22186 }
22187 }
22188 {
22189   DI tmp_tmp;
22190   tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
22191 if (GTDI (tmp_tmp, 65535)) {
22192 {
22193   {
22194     UHI opval = 65535;
22195     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22196     written |= (1 << 19);
22197     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22198   }
22199 frvbf_media_overflow (current_cpu, 4);
22200 }
22201 } else {
22202 if (LTDI (tmp_tmp, 0)) {
22203 {
22204   {
22205     UHI opval = 0;
22206     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22207     written |= (1 << 19);
22208     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22209   }
22210 frvbf_media_overflow (current_cpu, 4);
22211 }
22212 } else {
22213   {
22214     UHI opval = tmp_tmp;
22215     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22216     written |= (1 << 19);
22217     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22218   }
22219 }
22220 }
22221 }
22222 {
22223   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22224   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22225   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22226   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22227 }
22228 {
22229   DI tmp_tmp;
22230   tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
22231 if (GTDI (tmp_tmp, 65535)) {
22232 {
22233   {
22234     UHI opval = 65535;
22235     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22236     written |= (1 << 18);
22237     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22238   }
22239 frvbf_media_overflow (current_cpu, 2);
22240 }
22241 } else {
22242 if (LTDI (tmp_tmp, 0)) {
22243 {
22244   {
22245     UHI opval = 0;
22246     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22247     written |= (1 << 18);
22248     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22249   }
22250 frvbf_media_overflow (current_cpu, 2);
22251 }
22252 } else {
22253   {
22254     UHI opval = tmp_tmp;
22255     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22256     written |= (1 << 18);
22257     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22258   }
22259 }
22260 }
22261 }
22262 {
22263   DI tmp_tmp;
22264   tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
22265 if (GTDI (tmp_tmp, 65535)) {
22266 {
22267   {
22268     UHI opval = 65535;
22269     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22270     written |= (1 << 20);
22271     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22272   }
22273 frvbf_media_overflow (current_cpu, 1);
22274 }
22275 } else {
22276 if (LTDI (tmp_tmp, 0)) {
22277 {
22278   {
22279     UHI opval = 0;
22280     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22281     written |= (1 << 20);
22282     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22283   }
22284 frvbf_media_overflow (current_cpu, 1);
22285 }
22286 } else {
22287   {
22288     UHI opval = tmp_tmp;
22289     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22290     written |= (1 << 20);
22291     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22292   }
22293 }
22294 }
22295 }
22296 }
22297 }
22298 }
22299
22300   abuf->written = written;
22301   return vpc;
22302 #undef FLD
22303 }
22304
22305 /* cmqsubhss: cmqsubhss$pack $FRintieven,$FRintjeven,$FRintkeven,$CCi,$cond */
22306
22307 static SEM_PC
22308 SEM_FN_NAME (frvbf,cmqsubhss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
22309 {
22310 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
22311   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
22312   int UNUSED written = 0;
22313   IADDR UNUSED pc = abuf->addr;
22314   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
22315
22316 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
22317 frvbf_media_register_not_aligned (current_cpu);
22318 } else {
22319 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
22320 {
22321   HI tmp_argihi;
22322   HI tmp_argilo;
22323   HI tmp_argjhi;
22324   HI tmp_argjlo;
22325   {
22326     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
22327     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
22328     written |= (1 << 16);
22329     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
22330   }
22331 {
22332   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22333   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22334   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22335   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22336 }
22337 {
22338   DI tmp_tmp;
22339   tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
22340 if (GTDI (tmp_tmp, 32767)) {
22341 {
22342   {
22343     UHI opval = 32767;
22344     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22345     written |= (1 << 17);
22346     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22347   }
22348 frvbf_media_overflow (current_cpu, 8);
22349 }
22350 } else {
22351 if (LTDI (tmp_tmp, -32768)) {
22352 {
22353   {
22354     UHI opval = -32768;
22355     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22356     written |= (1 << 17);
22357     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22358   }
22359 frvbf_media_overflow (current_cpu, 8);
22360 }
22361 } else {
22362   {
22363     UHI opval = tmp_tmp;
22364     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22365     written |= (1 << 17);
22366     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22367   }
22368 }
22369 }
22370 }
22371 {
22372   DI tmp_tmp;
22373   tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
22374 if (GTDI (tmp_tmp, 32767)) {
22375 {
22376   {
22377     UHI opval = 32767;
22378     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22379     written |= (1 << 19);
22380     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22381   }
22382 frvbf_media_overflow (current_cpu, 4);
22383 }
22384 } else {
22385 if (LTDI (tmp_tmp, -32768)) {
22386 {
22387   {
22388     UHI opval = -32768;
22389     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22390     written |= (1 << 19);
22391     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22392   }
22393 frvbf_media_overflow (current_cpu, 4);
22394 }
22395 } else {
22396   {
22397     UHI opval = tmp_tmp;
22398     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22399     written |= (1 << 19);
22400     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22401   }
22402 }
22403 }
22404 }
22405 {
22406   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22407   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22408   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22409   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22410 }
22411 {
22412   DI tmp_tmp;
22413   tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
22414 if (GTDI (tmp_tmp, 32767)) {
22415 {
22416   {
22417     UHI opval = 32767;
22418     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22419     written |= (1 << 18);
22420     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22421   }
22422 frvbf_media_overflow (current_cpu, 2);
22423 }
22424 } else {
22425 if (LTDI (tmp_tmp, -32768)) {
22426 {
22427   {
22428     UHI opval = -32768;
22429     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22430     written |= (1 << 18);
22431     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22432   }
22433 frvbf_media_overflow (current_cpu, 2);
22434 }
22435 } else {
22436   {
22437     UHI opval = tmp_tmp;
22438     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22439     written |= (1 << 18);
22440     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22441   }
22442 }
22443 }
22444 }
22445 {
22446   DI tmp_tmp;
22447   tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
22448 if (GTDI (tmp_tmp, 32767)) {
22449 {
22450   {
22451     UHI opval = 32767;
22452     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22453     written |= (1 << 20);
22454     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22455   }
22456 frvbf_media_overflow (current_cpu, 1);
22457 }
22458 } else {
22459 if (LTDI (tmp_tmp, -32768)) {
22460 {
22461   {
22462     UHI opval = -32768;
22463     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22464     written |= (1 << 20);
22465     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22466   }
22467 frvbf_media_overflow (current_cpu, 1);
22468 }
22469 } else {
22470   {
22471     UHI opval = tmp_tmp;
22472     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22473     written |= (1 << 20);
22474     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22475   }
22476 }
22477 }
22478 }
22479 }
22480 }
22481 }
22482
22483   abuf->written = written;
22484   return vpc;
22485 #undef FLD
22486 }
22487
22488 /* cmqsubhus: cmqsubhus$pack $FRintieven,$FRintjeven,$FRintkeven,$CCi,$cond */
22489
22490 static SEM_PC
22491 SEM_FN_NAME (frvbf,cmqsubhus) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
22492 {
22493 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
22494   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
22495   int UNUSED written = 0;
22496   IADDR UNUSED pc = abuf->addr;
22497   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
22498
22499 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
22500 frvbf_media_register_not_aligned (current_cpu);
22501 } else {
22502 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
22503 {
22504   UHI tmp_argihi;
22505   UHI tmp_argilo;
22506   UHI tmp_argjhi;
22507   UHI tmp_argjlo;
22508   {
22509     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
22510     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
22511     written |= (1 << 16);
22512     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
22513   }
22514 {
22515   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22516   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22517   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22518   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22519 }
22520 {
22521   DI tmp_tmp;
22522   tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
22523 if (GTDI (tmp_tmp, 65535)) {
22524 {
22525   {
22526     UHI opval = 65535;
22527     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22528     written |= (1 << 17);
22529     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22530   }
22531 frvbf_media_overflow (current_cpu, 8);
22532 }
22533 } else {
22534 if (LTDI (tmp_tmp, 0)) {
22535 {
22536   {
22537     UHI opval = 0;
22538     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22539     written |= (1 << 17);
22540     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22541   }
22542 frvbf_media_overflow (current_cpu, 8);
22543 }
22544 } else {
22545   {
22546     UHI opval = tmp_tmp;
22547     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22548     written |= (1 << 17);
22549     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22550   }
22551 }
22552 }
22553 }
22554 {
22555   DI tmp_tmp;
22556   tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
22557 if (GTDI (tmp_tmp, 65535)) {
22558 {
22559   {
22560     UHI opval = 65535;
22561     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22562     written |= (1 << 19);
22563     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22564   }
22565 frvbf_media_overflow (current_cpu, 4);
22566 }
22567 } else {
22568 if (LTDI (tmp_tmp, 0)) {
22569 {
22570   {
22571     UHI opval = 0;
22572     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22573     written |= (1 << 19);
22574     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22575   }
22576 frvbf_media_overflow (current_cpu, 4);
22577 }
22578 } else {
22579   {
22580     UHI opval = tmp_tmp;
22581     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22582     written |= (1 << 19);
22583     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22584   }
22585 }
22586 }
22587 }
22588 {
22589   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22590   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22591   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22592   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22593 }
22594 {
22595   DI tmp_tmp;
22596   tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
22597 if (GTDI (tmp_tmp, 65535)) {
22598 {
22599   {
22600     UHI opval = 65535;
22601     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22602     written |= (1 << 18);
22603     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22604   }
22605 frvbf_media_overflow (current_cpu, 2);
22606 }
22607 } else {
22608 if (LTDI (tmp_tmp, 0)) {
22609 {
22610   {
22611     UHI opval = 0;
22612     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22613     written |= (1 << 18);
22614     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22615   }
22616 frvbf_media_overflow (current_cpu, 2);
22617 }
22618 } else {
22619   {
22620     UHI opval = tmp_tmp;
22621     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22622     written |= (1 << 18);
22623     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22624   }
22625 }
22626 }
22627 }
22628 {
22629   DI tmp_tmp;
22630   tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
22631 if (GTDI (tmp_tmp, 65535)) {
22632 {
22633   {
22634     UHI opval = 65535;
22635     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22636     written |= (1 << 20);
22637     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22638   }
22639 frvbf_media_overflow (current_cpu, 1);
22640 }
22641 } else {
22642 if (LTDI (tmp_tmp, 0)) {
22643 {
22644   {
22645     UHI opval = 0;
22646     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22647     written |= (1 << 20);
22648     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22649   }
22650 frvbf_media_overflow (current_cpu, 1);
22651 }
22652 } else {
22653   {
22654     UHI opval = tmp_tmp;
22655     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22656     written |= (1 << 20);
22657     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22658   }
22659 }
22660 }
22661 }
22662 }
22663 }
22664 }
22665
22666   abuf->written = written;
22667   return vpc;
22668 #undef FLD
22669 }
22670
22671 /* maddaccs: maddaccs$pack $ACC40Si,$ACC40Sk */
22672
22673 static SEM_PC
22674 SEM_FN_NAME (frvbf,maddaccs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
22675 {
22676 #define FLD(f) abuf->fields.sfmt_mdasaccs.f
22677   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
22678   int UNUSED written = 0;
22679   IADDR UNUSED pc = abuf->addr;
22680   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
22681
22682 if (ANDSI (FLD (f_ACC40Si), SUBSI (2, 1))) {
22683 frvbf_media_acc_not_aligned (current_cpu);
22684 } else {
22685 {
22686   DI tmp_tmp;
22687   tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_ACC40S (((FLD (f_ACC40Si)) + (1))));
22688 if (GTDI (tmp_tmp, 549755813887)) {
22689 {
22690   {
22691     DI opval = 549755813887;
22692     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
22693     written |= (1 << 3);
22694     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22695   }
22696 frvbf_media_overflow (current_cpu, 8);
22697 }
22698 } else {
22699 if (LTDI (tmp_tmp, INVDI (549755813887))) {
22700 {
22701   {
22702     DI opval = INVDI (549755813887);
22703     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
22704     written |= (1 << 3);
22705     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22706   }
22707 frvbf_media_overflow (current_cpu, 8);
22708 }
22709 } else {
22710   {
22711     DI opval = tmp_tmp;
22712     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
22713     written |= (1 << 3);
22714     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22715   }
22716 }
22717 }
22718 }
22719 }
22720
22721   abuf->written = written;
22722   return vpc;
22723 #undef FLD
22724 }
22725
22726 /* msubaccs: msubaccs$pack $ACC40Si,$ACC40Sk */
22727
22728 static SEM_PC
22729 SEM_FN_NAME (frvbf,msubaccs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
22730 {
22731 #define FLD(f) abuf->fields.sfmt_mdasaccs.f
22732   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
22733   int UNUSED written = 0;
22734   IADDR UNUSED pc = abuf->addr;
22735   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
22736
22737 if (ANDSI (FLD (f_ACC40Si), SUBSI (2, 1))) {
22738 frvbf_media_acc_not_aligned (current_cpu);
22739 } else {
22740 {
22741   DI tmp_tmp;
22742   tmp_tmp = SUBDI (GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_ACC40S (((FLD (f_ACC40Si)) + (1))));
22743 if (GTDI (tmp_tmp, 549755813887)) {
22744 {
22745   {
22746     DI opval = 549755813887;
22747     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
22748     written |= (1 << 3);
22749     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22750   }
22751 frvbf_media_overflow (current_cpu, 8);
22752 }
22753 } else {
22754 if (LTDI (tmp_tmp, INVDI (549755813887))) {
22755 {
22756   {
22757     DI opval = INVDI (549755813887);
22758     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
22759     written |= (1 << 3);
22760     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22761   }
22762 frvbf_media_overflow (current_cpu, 8);
22763 }
22764 } else {
22765   {
22766     DI opval = tmp_tmp;
22767     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
22768     written |= (1 << 3);
22769     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22770   }
22771 }
22772 }
22773 }
22774 }
22775
22776   abuf->written = written;
22777   return vpc;
22778 #undef FLD
22779 }
22780
22781 /* mdaddaccs: mdaddaccs$pack $ACC40Si,$ACC40Sk */
22782
22783 static SEM_PC
22784 SEM_FN_NAME (frvbf,mdaddaccs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
22785 {
22786 #define FLD(f) abuf->fields.sfmt_mdasaccs.f
22787   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
22788   int UNUSED written = 0;
22789   IADDR UNUSED pc = abuf->addr;
22790   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
22791
22792 if (ANDSI (FLD (f_ACC40Si), SUBSI (4, 1))) {
22793 frvbf_media_acc_not_aligned (current_cpu);
22794 } else {
22795 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
22796 frvbf_media_acc_not_aligned (current_cpu);
22797 } else {
22798 {
22799 {
22800   DI tmp_tmp;
22801   tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_ACC40S (((FLD (f_ACC40Si)) + (1))));
22802 if (GTDI (tmp_tmp, 549755813887)) {
22803 {
22804   {
22805     DI opval = 549755813887;
22806     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
22807     written |= (1 << 6);
22808     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22809   }
22810 frvbf_media_overflow (current_cpu, 8);
22811 }
22812 } else {
22813 if (LTDI (tmp_tmp, INVDI (549755813887))) {
22814 {
22815   {
22816     DI opval = INVDI (549755813887);
22817     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
22818     written |= (1 << 6);
22819     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22820   }
22821 frvbf_media_overflow (current_cpu, 8);
22822 }
22823 } else {
22824   {
22825     DI opval = tmp_tmp;
22826     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
22827     written |= (1 << 6);
22828     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22829   }
22830 }
22831 }
22832 }
22833 {
22834   DI tmp_tmp;
22835   tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Si)) + (2))), GET_H_ACC40S (((FLD (f_ACC40Si)) + (3))));
22836 if (GTDI (tmp_tmp, 549755813887)) {
22837 {
22838   {
22839     DI opval = 549755813887;
22840     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
22841     written |= (1 << 7);
22842     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22843   }
22844 frvbf_media_overflow (current_cpu, 4);
22845 }
22846 } else {
22847 if (LTDI (tmp_tmp, INVDI (549755813887))) {
22848 {
22849   {
22850     DI opval = INVDI (549755813887);
22851     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
22852     written |= (1 << 7);
22853     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22854   }
22855 frvbf_media_overflow (current_cpu, 4);
22856 }
22857 } else {
22858   {
22859     DI opval = tmp_tmp;
22860     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
22861     written |= (1 << 7);
22862     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22863   }
22864 }
22865 }
22866 }
22867 }
22868 }
22869 }
22870
22871   abuf->written = written;
22872   return vpc;
22873 #undef FLD
22874 }
22875
22876 /* mdsubaccs: mdsubaccs$pack $ACC40Si,$ACC40Sk */
22877
22878 static SEM_PC
22879 SEM_FN_NAME (frvbf,mdsubaccs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
22880 {
22881 #define FLD(f) abuf->fields.sfmt_mdasaccs.f
22882   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
22883   int UNUSED written = 0;
22884   IADDR UNUSED pc = abuf->addr;
22885   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
22886
22887 if (ANDSI (FLD (f_ACC40Si), SUBSI (4, 1))) {
22888 frvbf_media_acc_not_aligned (current_cpu);
22889 } else {
22890 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
22891 frvbf_media_acc_not_aligned (current_cpu);
22892 } else {
22893 {
22894 {
22895   DI tmp_tmp;
22896   tmp_tmp = SUBDI (GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_ACC40S (((FLD (f_ACC40Si)) + (1))));
22897 if (GTDI (tmp_tmp, 549755813887)) {
22898 {
22899   {
22900     DI opval = 549755813887;
22901     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
22902     written |= (1 << 6);
22903     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22904   }
22905 frvbf_media_overflow (current_cpu, 8);
22906 }
22907 } else {
22908 if (LTDI (tmp_tmp, INVDI (549755813887))) {
22909 {
22910   {
22911     DI opval = INVDI (549755813887);
22912     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
22913     written |= (1 << 6);
22914     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22915   }
22916 frvbf_media_overflow (current_cpu, 8);
22917 }
22918 } else {
22919   {
22920     DI opval = tmp_tmp;
22921     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
22922     written |= (1 << 6);
22923     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22924   }
22925 }
22926 }
22927 }
22928 {
22929   DI tmp_tmp;
22930   tmp_tmp = SUBDI (GET_H_ACC40S (((FLD (f_ACC40Si)) + (2))), GET_H_ACC40S (((FLD (f_ACC40Si)) + (3))));
22931 if (GTDI (tmp_tmp, 549755813887)) {
22932 {
22933   {
22934     DI opval = 549755813887;
22935     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
22936     written |= (1 << 7);
22937     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22938   }
22939 frvbf_media_overflow (current_cpu, 4);
22940 }
22941 } else {
22942 if (LTDI (tmp_tmp, INVDI (549755813887))) {
22943 {
22944   {
22945     DI opval = INVDI (549755813887);
22946     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
22947     written |= (1 << 7);
22948     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22949   }
22950 frvbf_media_overflow (current_cpu, 4);
22951 }
22952 } else {
22953   {
22954     DI opval = tmp_tmp;
22955     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
22956     written |= (1 << 7);
22957     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22958   }
22959 }
22960 }
22961 }
22962 }
22963 }
22964 }
22965
22966   abuf->written = written;
22967   return vpc;
22968 #undef FLD
22969 }
22970
22971 /* masaccs: masaccs$pack $ACC40Si,$ACC40Sk */
22972
22973 static SEM_PC
22974 SEM_FN_NAME (frvbf,masaccs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
22975 {
22976 #define FLD(f) abuf->fields.sfmt_mdasaccs.f
22977   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
22978   int UNUSED written = 0;
22979   IADDR UNUSED pc = abuf->addr;
22980   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
22981
22982 if (ANDSI (FLD (f_ACC40Si), SUBSI (2, 1))) {
22983 frvbf_media_acc_not_aligned (current_cpu);
22984 } else {
22985 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
22986 frvbf_media_acc_not_aligned (current_cpu);
22987 } else {
22988 {
22989 {
22990   DI tmp_tmp;
22991   tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_ACC40S (((FLD (f_ACC40Si)) + (1))));
22992 if (GTDI (tmp_tmp, 549755813887)) {
22993 {
22994   {
22995     DI opval = 549755813887;
22996     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
22997     written |= (1 << 4);
22998     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22999   }
23000 frvbf_media_overflow (current_cpu, 8);
23001 }
23002 } else {
23003 if (LTDI (tmp_tmp, INVDI (549755813887))) {
23004 {
23005   {
23006     DI opval = INVDI (549755813887);
23007     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23008     written |= (1 << 4);
23009     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23010   }
23011 frvbf_media_overflow (current_cpu, 8);
23012 }
23013 } else {
23014   {
23015     DI opval = tmp_tmp;
23016     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23017     written |= (1 << 4);
23018     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23019   }
23020 }
23021 }
23022 }
23023 {
23024   DI tmp_tmp;
23025   tmp_tmp = SUBDI (GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_ACC40S (((FLD (f_ACC40Si)) + (1))));
23026 if (GTDI (tmp_tmp, 549755813887)) {
23027 {
23028   {
23029     DI opval = 549755813887;
23030     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23031     written |= (1 << 5);
23032     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23033   }
23034 frvbf_media_overflow (current_cpu, 4);
23035 }
23036 } else {
23037 if (LTDI (tmp_tmp, INVDI (549755813887))) {
23038 {
23039   {
23040     DI opval = INVDI (549755813887);
23041     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23042     written |= (1 << 5);
23043     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23044   }
23045 frvbf_media_overflow (current_cpu, 4);
23046 }
23047 } else {
23048   {
23049     DI opval = tmp_tmp;
23050     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23051     written |= (1 << 5);
23052     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23053   }
23054 }
23055 }
23056 }
23057 }
23058 }
23059 }
23060
23061   abuf->written = written;
23062   return vpc;
23063 #undef FLD
23064 }
23065
23066 /* mdasaccs: mdasaccs$pack $ACC40Si,$ACC40Sk */
23067
23068 static SEM_PC
23069 SEM_FN_NAME (frvbf,mdasaccs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23070 {
23071 #define FLD(f) abuf->fields.sfmt_mdasaccs.f
23072   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23073   int UNUSED written = 0;
23074   IADDR UNUSED pc = abuf->addr;
23075   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23076
23077 if (ANDSI (FLD (f_ACC40Si), SUBSI (4, 1))) {
23078 frvbf_media_acc_not_aligned (current_cpu);
23079 } else {
23080 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
23081 frvbf_media_acc_not_aligned (current_cpu);
23082 } else {
23083 {
23084 {
23085   DI tmp_tmp;
23086   tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_ACC40S (((FLD (f_ACC40Si)) + (1))));
23087 if (GTDI (tmp_tmp, 549755813887)) {
23088 {
23089   {
23090     DI opval = 549755813887;
23091     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23092     written |= (1 << 6);
23093     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23094   }
23095 frvbf_media_overflow (current_cpu, 8);
23096 }
23097 } else {
23098 if (LTDI (tmp_tmp, INVDI (549755813887))) {
23099 {
23100   {
23101     DI opval = INVDI (549755813887);
23102     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23103     written |= (1 << 6);
23104     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23105   }
23106 frvbf_media_overflow (current_cpu, 8);
23107 }
23108 } else {
23109   {
23110     DI opval = tmp_tmp;
23111     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23112     written |= (1 << 6);
23113     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23114   }
23115 }
23116 }
23117 }
23118 {
23119   DI tmp_tmp;
23120   tmp_tmp = SUBDI (GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_ACC40S (((FLD (f_ACC40Si)) + (1))));
23121 if (GTDI (tmp_tmp, 549755813887)) {
23122 {
23123   {
23124     DI opval = 549755813887;
23125     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23126     written |= (1 << 7);
23127     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23128   }
23129 frvbf_media_overflow (current_cpu, 4);
23130 }
23131 } else {
23132 if (LTDI (tmp_tmp, INVDI (549755813887))) {
23133 {
23134   {
23135     DI opval = INVDI (549755813887);
23136     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23137     written |= (1 << 7);
23138     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23139   }
23140 frvbf_media_overflow (current_cpu, 4);
23141 }
23142 } else {
23143   {
23144     DI opval = tmp_tmp;
23145     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23146     written |= (1 << 7);
23147     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23148   }
23149 }
23150 }
23151 }
23152 {
23153   DI tmp_tmp;
23154   tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Si)) + (2))), GET_H_ACC40S (((FLD (f_ACC40Si)) + (3))));
23155 if (GTDI (tmp_tmp, 549755813887)) {
23156 {
23157   {
23158     DI opval = 549755813887;
23159     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
23160     written |= (1 << 8);
23161     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23162   }
23163 frvbf_media_overflow (current_cpu, 2);
23164 }
23165 } else {
23166 if (LTDI (tmp_tmp, INVDI (549755813887))) {
23167 {
23168   {
23169     DI opval = INVDI (549755813887);
23170     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
23171     written |= (1 << 8);
23172     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23173   }
23174 frvbf_media_overflow (current_cpu, 2);
23175 }
23176 } else {
23177   {
23178     DI opval = tmp_tmp;
23179     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
23180     written |= (1 << 8);
23181     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23182   }
23183 }
23184 }
23185 }
23186 {
23187   DI tmp_tmp;
23188   tmp_tmp = SUBDI (GET_H_ACC40S (((FLD (f_ACC40Si)) + (2))), GET_H_ACC40S (((FLD (f_ACC40Si)) + (3))));
23189 if (GTDI (tmp_tmp, 549755813887)) {
23190 {
23191   {
23192     DI opval = 549755813887;
23193     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
23194     written |= (1 << 9);
23195     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23196   }
23197 frvbf_media_overflow (current_cpu, 1);
23198 }
23199 } else {
23200 if (LTDI (tmp_tmp, INVDI (549755813887))) {
23201 {
23202   {
23203     DI opval = INVDI (549755813887);
23204     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
23205     written |= (1 << 9);
23206     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23207   }
23208 frvbf_media_overflow (current_cpu, 1);
23209 }
23210 } else {
23211   {
23212     DI opval = tmp_tmp;
23213     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
23214     written |= (1 << 9);
23215     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23216   }
23217 }
23218 }
23219 }
23220 }
23221 }
23222 }
23223
23224   abuf->written = written;
23225   return vpc;
23226 #undef FLD
23227 }
23228
23229 /* mmulhs: mmulhs$pack $FRinti,$FRintj,$ACC40Sk */
23230
23231 static SEM_PC
23232 SEM_FN_NAME (frvbf,mmulhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23233 {
23234 #define FLD(f) abuf->fields.sfmt_cmmachs.f
23235   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23236   int UNUSED written = 0;
23237   IADDR UNUSED pc = abuf->addr;
23238   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23239
23240 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
23241 frvbf_media_acc_not_aligned (current_cpu);
23242 } else {
23243 {
23244   HI tmp_argihi;
23245   HI tmp_argilo;
23246   HI tmp_argjhi;
23247   HI tmp_argjlo;
23248 {
23249   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23250   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23251   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23252   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23253 }
23254   {
23255     DI opval = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
23256     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23257     written |= (1 << 9);
23258     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23259   }
23260   {
23261     DI opval = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
23262     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23263     written |= (1 << 10);
23264     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23265   }
23266 }
23267 }
23268
23269   abuf->written = written;
23270   return vpc;
23271 #undef FLD
23272 }
23273
23274 /* mmulhu: mmulhu$pack $FRinti,$FRintj,$ACC40Sk */
23275
23276 static SEM_PC
23277 SEM_FN_NAME (frvbf,mmulhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23278 {
23279 #define FLD(f) abuf->fields.sfmt_cmmachs.f
23280   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23281   int UNUSED written = 0;
23282   IADDR UNUSED pc = abuf->addr;
23283   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23284
23285 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
23286 frvbf_media_acc_not_aligned (current_cpu);
23287 } else {
23288 {
23289   UHI tmp_argihi;
23290   UHI tmp_argilo;
23291   UHI tmp_argjhi;
23292   UHI tmp_argjlo;
23293 {
23294   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23295   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23296   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23297   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23298 }
23299   {
23300     DI opval = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
23301     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23302     written |= (1 << 9);
23303     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23304   }
23305   {
23306     DI opval = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
23307     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23308     written |= (1 << 10);
23309     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23310   }
23311 }
23312 }
23313
23314   abuf->written = written;
23315   return vpc;
23316 #undef FLD
23317 }
23318
23319 /* mmulxhs: mmulxhs$pack $FRinti,$FRintj,$ACC40Sk */
23320
23321 static SEM_PC
23322 SEM_FN_NAME (frvbf,mmulxhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23323 {
23324 #define FLD(f) abuf->fields.sfmt_cmmachs.f
23325   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23326   int UNUSED written = 0;
23327   IADDR UNUSED pc = abuf->addr;
23328   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23329
23330 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
23331 frvbf_media_acc_not_aligned (current_cpu);
23332 } else {
23333 {
23334   HI tmp_argihi;
23335   HI tmp_argilo;
23336   HI tmp_argjhi;
23337   HI tmp_argjlo;
23338 {
23339   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23340   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23341   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23342   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23343 }
23344   {
23345     DI opval = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo));
23346     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23347     written |= (1 << 9);
23348     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23349   }
23350   {
23351     DI opval = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi));
23352     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23353     written |= (1 << 10);
23354     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23355   }
23356 }
23357 }
23358
23359   abuf->written = written;
23360   return vpc;
23361 #undef FLD
23362 }
23363
23364 /* mmulxhu: mmulxhu$pack $FRinti,$FRintj,$ACC40Sk */
23365
23366 static SEM_PC
23367 SEM_FN_NAME (frvbf,mmulxhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23368 {
23369 #define FLD(f) abuf->fields.sfmt_cmmachs.f
23370   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23371   int UNUSED written = 0;
23372   IADDR UNUSED pc = abuf->addr;
23373   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23374
23375 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
23376 frvbf_media_acc_not_aligned (current_cpu);
23377 } else {
23378 {
23379   UHI tmp_argihi;
23380   UHI tmp_argilo;
23381   UHI tmp_argjhi;
23382   UHI tmp_argjlo;
23383 {
23384   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23385   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23386   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23387   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23388 }
23389   {
23390     DI opval = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjlo));
23391     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23392     written |= (1 << 9);
23393     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23394   }
23395   {
23396     DI opval = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjhi));
23397     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23398     written |= (1 << 10);
23399     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23400   }
23401 }
23402 }
23403
23404   abuf->written = written;
23405   return vpc;
23406 #undef FLD
23407 }
23408
23409 /* cmmulhs: cmmulhs$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
23410
23411 static SEM_PC
23412 SEM_FN_NAME (frvbf,cmmulhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23413 {
23414 #define FLD(f) abuf->fields.sfmt_cmmachs.f
23415   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23416   int UNUSED written = 0;
23417   IADDR UNUSED pc = abuf->addr;
23418   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23419
23420 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
23421 frvbf_media_acc_not_aligned (current_cpu);
23422 } else {
23423 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
23424 {
23425   HI tmp_argihi;
23426   HI tmp_argilo;
23427   HI tmp_argjhi;
23428   HI tmp_argjlo;
23429 {
23430   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23431   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23432   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23433   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23434 }
23435   {
23436     DI opval = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
23437     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23438     written |= (1 << 11);
23439     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23440   }
23441   {
23442     DI opval = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
23443     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23444     written |= (1 << 12);
23445     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23446   }
23447 }
23448 }
23449 }
23450
23451   abuf->written = written;
23452   return vpc;
23453 #undef FLD
23454 }
23455
23456 /* cmmulhu: cmmulhu$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
23457
23458 static SEM_PC
23459 SEM_FN_NAME (frvbf,cmmulhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23460 {
23461 #define FLD(f) abuf->fields.sfmt_cmmachs.f
23462   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23463   int UNUSED written = 0;
23464   IADDR UNUSED pc = abuf->addr;
23465   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23466
23467 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
23468 frvbf_media_acc_not_aligned (current_cpu);
23469 } else {
23470 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
23471 {
23472   UHI tmp_argihi;
23473   UHI tmp_argilo;
23474   UHI tmp_argjhi;
23475   UHI tmp_argjlo;
23476 {
23477   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23478   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23479   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23480   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23481 }
23482   {
23483     DI opval = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
23484     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23485     written |= (1 << 11);
23486     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23487   }
23488   {
23489     DI opval = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
23490     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23491     written |= (1 << 12);
23492     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23493   }
23494 }
23495 }
23496 }
23497
23498   abuf->written = written;
23499   return vpc;
23500 #undef FLD
23501 }
23502
23503 /* mqmulhs: mqmulhs$pack $FRintieven,$FRintjeven,$ACC40Sk */
23504
23505 static SEM_PC
23506 SEM_FN_NAME (frvbf,mqmulhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23507 {
23508 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
23509   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23510   int UNUSED written = 0;
23511   IADDR UNUSED pc = abuf->addr;
23512   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23513
23514 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
23515 frvbf_media_acc_not_aligned (current_cpu);
23516 } else {
23517 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
23518 frvbf_media_register_not_aligned (current_cpu);
23519 } else {
23520 {
23521   HI tmp_argihi;
23522   HI tmp_argilo;
23523   HI tmp_argjhi;
23524   HI tmp_argjlo;
23525 {
23526   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23527   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23528   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23529   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23530 }
23531   {
23532     DI opval = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
23533     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23534     written |= (1 << 13);
23535     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23536   }
23537   {
23538     DI opval = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
23539     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23540     written |= (1 << 14);
23541     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23542   }
23543 {
23544   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23545   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23546   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23547   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23548 }
23549   {
23550     DI opval = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
23551     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
23552     written |= (1 << 15);
23553     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23554   }
23555   {
23556     DI opval = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
23557     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
23558     written |= (1 << 16);
23559     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23560   }
23561 }
23562 }
23563 }
23564
23565   abuf->written = written;
23566   return vpc;
23567 #undef FLD
23568 }
23569
23570 /* mqmulhu: mqmulhu$pack $FRintieven,$FRintjeven,$ACC40Sk */
23571
23572 static SEM_PC
23573 SEM_FN_NAME (frvbf,mqmulhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23574 {
23575 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
23576   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23577   int UNUSED written = 0;
23578   IADDR UNUSED pc = abuf->addr;
23579   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23580
23581 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
23582 frvbf_media_acc_not_aligned (current_cpu);
23583 } else {
23584 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
23585 frvbf_media_register_not_aligned (current_cpu);
23586 } else {
23587 {
23588   UHI tmp_argihi;
23589   UHI tmp_argilo;
23590   UHI tmp_argjhi;
23591   UHI tmp_argjlo;
23592 {
23593   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23594   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23595   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23596   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23597 }
23598   {
23599     DI opval = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
23600     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23601     written |= (1 << 13);
23602     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23603   }
23604   {
23605     DI opval = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
23606     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23607     written |= (1 << 14);
23608     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23609   }
23610 {
23611   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23612   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23613   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23614   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23615 }
23616   {
23617     DI opval = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
23618     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
23619     written |= (1 << 15);
23620     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23621   }
23622   {
23623     DI opval = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
23624     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
23625     written |= (1 << 16);
23626     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23627   }
23628 }
23629 }
23630 }
23631
23632   abuf->written = written;
23633   return vpc;
23634 #undef FLD
23635 }
23636
23637 /* mqmulxhs: mqmulxhs$pack $FRintieven,$FRintjeven,$ACC40Sk */
23638
23639 static SEM_PC
23640 SEM_FN_NAME (frvbf,mqmulxhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23641 {
23642 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
23643   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23644   int UNUSED written = 0;
23645   IADDR UNUSED pc = abuf->addr;
23646   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23647
23648 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
23649 frvbf_media_acc_not_aligned (current_cpu);
23650 } else {
23651 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
23652 frvbf_media_register_not_aligned (current_cpu);
23653 } else {
23654 {
23655   HI tmp_argihi;
23656   HI tmp_argilo;
23657   HI tmp_argjhi;
23658   HI tmp_argjlo;
23659 {
23660   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23661   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23662   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23663   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23664 }
23665   {
23666     DI opval = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo));
23667     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23668     written |= (1 << 13);
23669     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23670   }
23671   {
23672     DI opval = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi));
23673     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23674     written |= (1 << 14);
23675     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23676   }
23677 {
23678   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23679   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23680   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23681   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23682 }
23683   {
23684     DI opval = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo));
23685     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
23686     written |= (1 << 15);
23687     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23688   }
23689   {
23690     DI opval = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi));
23691     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
23692     written |= (1 << 16);
23693     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23694   }
23695 }
23696 }
23697 }
23698
23699   abuf->written = written;
23700   return vpc;
23701 #undef FLD
23702 }
23703
23704 /* mqmulxhu: mqmulxhu$pack $FRintieven,$FRintjeven,$ACC40Sk */
23705
23706 static SEM_PC
23707 SEM_FN_NAME (frvbf,mqmulxhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23708 {
23709 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
23710   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23711   int UNUSED written = 0;
23712   IADDR UNUSED pc = abuf->addr;
23713   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23714
23715 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
23716 frvbf_media_acc_not_aligned (current_cpu);
23717 } else {
23718 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
23719 frvbf_media_register_not_aligned (current_cpu);
23720 } else {
23721 {
23722   UHI tmp_argihi;
23723   UHI tmp_argilo;
23724   UHI tmp_argjhi;
23725   UHI tmp_argjlo;
23726 {
23727   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23728   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23729   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23730   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23731 }
23732   {
23733     DI opval = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjlo));
23734     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23735     written |= (1 << 13);
23736     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23737   }
23738   {
23739     DI opval = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjhi));
23740     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23741     written |= (1 << 14);
23742     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23743   }
23744 {
23745   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23746   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23747   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23748   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23749 }
23750   {
23751     DI opval = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjlo));
23752     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
23753     written |= (1 << 15);
23754     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23755   }
23756   {
23757     DI opval = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjhi));
23758     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
23759     written |= (1 << 16);
23760     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23761   }
23762 }
23763 }
23764 }
23765
23766   abuf->written = written;
23767   return vpc;
23768 #undef FLD
23769 }
23770
23771 /* cmqmulhs: cmqmulhs$pack $FRintieven,$FRintjeven,$ACC40Sk,$CCi,$cond */
23772
23773 static SEM_PC
23774 SEM_FN_NAME (frvbf,cmqmulhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23775 {
23776 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
23777   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23778   int UNUSED written = 0;
23779   IADDR UNUSED pc = abuf->addr;
23780   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23781
23782 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
23783 frvbf_media_acc_not_aligned (current_cpu);
23784 } else {
23785 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
23786 frvbf_media_register_not_aligned (current_cpu);
23787 } else {
23788 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
23789 {
23790   HI tmp_argihi;
23791   HI tmp_argilo;
23792   HI tmp_argjhi;
23793   HI tmp_argjlo;
23794 {
23795   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23796   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23797   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23798   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23799 }
23800   {
23801     DI opval = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
23802     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23803     written |= (1 << 15);
23804     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23805   }
23806   {
23807     DI opval = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
23808     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23809     written |= (1 << 16);
23810     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23811   }
23812 {
23813   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23814   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23815   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23816   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23817 }
23818   {
23819     DI opval = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
23820     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
23821     written |= (1 << 17);
23822     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23823   }
23824   {
23825     DI opval = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
23826     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
23827     written |= (1 << 18);
23828     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23829   }
23830 }
23831 }
23832 }
23833 }
23834
23835   abuf->written = written;
23836   return vpc;
23837 #undef FLD
23838 }
23839
23840 /* cmqmulhu: cmqmulhu$pack $FRintieven,$FRintjeven,$ACC40Sk,$CCi,$cond */
23841
23842 static SEM_PC
23843 SEM_FN_NAME (frvbf,cmqmulhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23844 {
23845 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
23846   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23847   int UNUSED written = 0;
23848   IADDR UNUSED pc = abuf->addr;
23849   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23850
23851 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
23852 frvbf_media_acc_not_aligned (current_cpu);
23853 } else {
23854 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
23855 frvbf_media_register_not_aligned (current_cpu);
23856 } else {
23857 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
23858 {
23859   UHI tmp_argihi;
23860   UHI tmp_argilo;
23861   UHI tmp_argjhi;
23862   UHI tmp_argjlo;
23863 {
23864   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23865   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23866   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23867   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23868 }
23869   {
23870     DI opval = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
23871     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23872     written |= (1 << 15);
23873     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23874   }
23875   {
23876     DI opval = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
23877     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23878     written |= (1 << 16);
23879     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23880   }
23881 {
23882   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23883   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23884   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23885   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23886 }
23887   {
23888     DI opval = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
23889     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
23890     written |= (1 << 17);
23891     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23892   }
23893   {
23894     DI opval = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
23895     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
23896     written |= (1 << 18);
23897     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23898   }
23899 }
23900 }
23901 }
23902 }
23903
23904   abuf->written = written;
23905   return vpc;
23906 #undef FLD
23907 }
23908
23909 /* mmachs: mmachs$pack $FRinti,$FRintj,$ACC40Sk */
23910
23911 static SEM_PC
23912 SEM_FN_NAME (frvbf,mmachs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23913 {
23914 #define FLD(f) abuf->fields.sfmt_cmmachs.f
23915   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23916   int UNUSED written = 0;
23917   IADDR UNUSED pc = abuf->addr;
23918   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23919
23920 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
23921 frvbf_media_acc_not_aligned (current_cpu);
23922 } else {
23923 {
23924   HI tmp_argihi;
23925   HI tmp_argilo;
23926   HI tmp_argjhi;
23927   HI tmp_argjlo;
23928 {
23929   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23930   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23931   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23932   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23933 }
23934 {
23935   DI tmp_tmp;
23936   tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Sk)), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi)));
23937 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
23938 {
23939   {
23940     DI opval = MAKEDI (127, 0xffffffff);
23941     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23942     written |= (1 << 11);
23943     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23944   }
23945 frvbf_media_overflow (current_cpu, 8);
23946 }
23947 } else {
23948 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
23949 {
23950   {
23951     DI opval = MAKEDI (0xffffff80, 0);
23952     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23953     written |= (1 << 11);
23954     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23955   }
23956 frvbf_media_overflow (current_cpu, 8);
23957 }
23958 } else {
23959   {
23960     DI opval = tmp_tmp;
23961     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23962     written |= (1 << 11);
23963     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23964   }
23965 }
23966 }
23967 }
23968 {
23969   DI tmp_tmp;
23970   tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (1))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo)));
23971 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
23972 {
23973   {
23974     DI opval = MAKEDI (127, 0xffffffff);
23975     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23976     written |= (1 << 12);
23977     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23978   }
23979 frvbf_media_overflow (current_cpu, 4);
23980 }
23981 } else {
23982 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
23983 {
23984   {
23985     DI opval = MAKEDI (0xffffff80, 0);
23986     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23987     written |= (1 << 12);
23988     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23989   }
23990 frvbf_media_overflow (current_cpu, 4);
23991 }
23992 } else {
23993   {
23994     DI opval = tmp_tmp;
23995     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23996     written |= (1 << 12);
23997     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23998   }
23999 }
24000 }
24001 }
24002 }
24003 }
24004
24005   abuf->written = written;
24006   return vpc;
24007 #undef FLD
24008 }
24009
24010 /* mmachu: mmachu$pack $FRinti,$FRintj,$ACC40Uk */
24011
24012 static SEM_PC
24013 SEM_FN_NAME (frvbf,mmachu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
24014 {
24015 #define FLD(f) abuf->fields.sfmt_cmmachu.f
24016   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
24017   int UNUSED written = 0;
24018   IADDR UNUSED pc = abuf->addr;
24019   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
24020
24021 if (ANDSI (FLD (f_ACC40Uk), SUBSI (2, 1))) {
24022 frvbf_media_acc_not_aligned (current_cpu);
24023 } else {
24024 {
24025   UHI tmp_argihi;
24026   UHI tmp_argilo;
24027   UHI tmp_argjhi;
24028   UHI tmp_argjlo;
24029 {
24030   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24031   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24032   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24033   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24034 }
24035 {
24036   DI tmp_tmp;
24037   tmp_tmp = ADDDI (GET_H_ACC40U (FLD (f_ACC40Uk)), MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi)));
24038 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
24039 {
24040   {
24041     UDI opval = MAKEDI (255, 0xffffffff);
24042     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24043     written |= (1 << 11);
24044     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24045   }
24046 frvbf_media_overflow (current_cpu, 8);
24047 }
24048 } else {
24049 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
24050 {
24051   {
24052     UDI opval = MAKEDI (0, 0);
24053     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24054     written |= (1 << 11);
24055     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24056   }
24057 frvbf_media_overflow (current_cpu, 8);
24058 }
24059 } else {
24060   {
24061     UDI opval = tmp_tmp;
24062     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24063     written |= (1 << 11);
24064     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24065   }
24066 }
24067 }
24068 }
24069 {
24070   DI tmp_tmp;
24071   tmp_tmp = ADDDI (GET_H_ACC40U (((FLD (f_ACC40Uk)) + (1))), MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo)));
24072 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
24073 {
24074   {
24075     UDI opval = MAKEDI (255, 0xffffffff);
24076     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
24077     written |= (1 << 12);
24078     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24079   }
24080 frvbf_media_overflow (current_cpu, 4);
24081 }
24082 } else {
24083 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
24084 {
24085   {
24086     UDI opval = MAKEDI (0, 0);
24087     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
24088     written |= (1 << 12);
24089     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24090   }
24091 frvbf_media_overflow (current_cpu, 4);
24092 }
24093 } else {
24094   {
24095     UDI opval = tmp_tmp;
24096     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
24097     written |= (1 << 12);
24098     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24099   }
24100 }
24101 }
24102 }
24103 }
24104 }
24105
24106   abuf->written = written;
24107   return vpc;
24108 #undef FLD
24109 }
24110
24111 /* mmrdhs: mmrdhs$pack $FRinti,$FRintj,$ACC40Sk */
24112
24113 static SEM_PC
24114 SEM_FN_NAME (frvbf,mmrdhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
24115 {
24116 #define FLD(f) abuf->fields.sfmt_cmmachs.f
24117   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
24118   int UNUSED written = 0;
24119   IADDR UNUSED pc = abuf->addr;
24120   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
24121
24122 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
24123 frvbf_media_acc_not_aligned (current_cpu);
24124 } else {
24125 {
24126   HI tmp_argihi;
24127   HI tmp_argilo;
24128   HI tmp_argjhi;
24129   HI tmp_argjlo;
24130 {
24131   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24132   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24133   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24134   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24135 }
24136 {
24137   DI tmp_tmp;
24138   tmp_tmp = SUBDI (GET_H_ACC40S (FLD (f_ACC40Sk)), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi)));
24139 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24140 {
24141   {
24142     DI opval = MAKEDI (127, 0xffffffff);
24143     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24144     written |= (1 << 11);
24145     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24146   }
24147 frvbf_media_overflow (current_cpu, 8);
24148 }
24149 } else {
24150 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24151 {
24152   {
24153     DI opval = MAKEDI (0xffffff80, 0);
24154     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24155     written |= (1 << 11);
24156     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24157   }
24158 frvbf_media_overflow (current_cpu, 8);
24159 }
24160 } else {
24161   {
24162     DI opval = tmp_tmp;
24163     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24164     written |= (1 << 11);
24165     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24166   }
24167 }
24168 }
24169 }
24170 {
24171   DI tmp_tmp;
24172   tmp_tmp = SUBDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (1))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo)));
24173 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24174 {
24175   {
24176     DI opval = MAKEDI (127, 0xffffffff);
24177     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24178     written |= (1 << 12);
24179     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24180   }
24181 frvbf_media_overflow (current_cpu, 4);
24182 }
24183 } else {
24184 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24185 {
24186   {
24187     DI opval = MAKEDI (0xffffff80, 0);
24188     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24189     written |= (1 << 12);
24190     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24191   }
24192 frvbf_media_overflow (current_cpu, 4);
24193 }
24194 } else {
24195   {
24196     DI opval = tmp_tmp;
24197     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24198     written |= (1 << 12);
24199     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24200   }
24201 }
24202 }
24203 }
24204 }
24205 }
24206
24207   abuf->written = written;
24208   return vpc;
24209 #undef FLD
24210 }
24211
24212 /* mmrdhu: mmrdhu$pack $FRinti,$FRintj,$ACC40Uk */
24213
24214 static SEM_PC
24215 SEM_FN_NAME (frvbf,mmrdhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
24216 {
24217 #define FLD(f) abuf->fields.sfmt_cmmachu.f
24218   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
24219   int UNUSED written = 0;
24220   IADDR UNUSED pc = abuf->addr;
24221   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
24222
24223 if (ANDSI (FLD (f_ACC40Uk), SUBSI (2, 1))) {
24224 frvbf_media_acc_not_aligned (current_cpu);
24225 } else {
24226 {
24227   UHI tmp_argihi;
24228   UHI tmp_argilo;
24229   UHI tmp_argjhi;
24230   UHI tmp_argjlo;
24231 {
24232   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24233   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24234   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24235   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24236 }
24237 {
24238   DI tmp_tmp;
24239   tmp_tmp = SUBDI (GET_H_ACC40U (FLD (f_ACC40Uk)), MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi)));
24240 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
24241 {
24242   {
24243     UDI opval = MAKEDI (255, 0xffffffff);
24244     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24245     written |= (1 << 11);
24246     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24247   }
24248 frvbf_media_overflow (current_cpu, 8);
24249 }
24250 } else {
24251 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
24252 {
24253   {
24254     UDI opval = MAKEDI (0, 0);
24255     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24256     written |= (1 << 11);
24257     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24258   }
24259 frvbf_media_overflow (current_cpu, 8);
24260 }
24261 } else {
24262   {
24263     UDI opval = tmp_tmp;
24264     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24265     written |= (1 << 11);
24266     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24267   }
24268 }
24269 }
24270 }
24271 {
24272   DI tmp_tmp;
24273   tmp_tmp = SUBDI (GET_H_ACC40U (((FLD (f_ACC40Uk)) + (1))), MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo)));
24274 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
24275 {
24276   {
24277     UDI opval = MAKEDI (255, 0xffffffff);
24278     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
24279     written |= (1 << 12);
24280     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24281   }
24282 frvbf_media_overflow (current_cpu, 4);
24283 }
24284 } else {
24285 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
24286 {
24287   {
24288     UDI opval = MAKEDI (0, 0);
24289     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
24290     written |= (1 << 12);
24291     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24292   }
24293 frvbf_media_overflow (current_cpu, 4);
24294 }
24295 } else {
24296   {
24297     UDI opval = tmp_tmp;
24298     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
24299     written |= (1 << 12);
24300     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24301   }
24302 }
24303 }
24304 }
24305 }
24306 }
24307
24308   abuf->written = written;
24309   return vpc;
24310 #undef FLD
24311 }
24312
24313 /* cmmachs: cmmachs$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
24314
24315 static SEM_PC
24316 SEM_FN_NAME (frvbf,cmmachs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
24317 {
24318 #define FLD(f) abuf->fields.sfmt_cmmachs.f
24319   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
24320   int UNUSED written = 0;
24321   IADDR UNUSED pc = abuf->addr;
24322   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
24323
24324 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
24325 frvbf_media_acc_not_aligned (current_cpu);
24326 } else {
24327 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
24328 {
24329   HI tmp_argihi;
24330   HI tmp_argilo;
24331   HI tmp_argjhi;
24332   HI tmp_argjlo;
24333 {
24334   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24335   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24336   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24337   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24338 }
24339 {
24340   DI tmp_tmp;
24341   tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Sk)), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi)));
24342 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24343 {
24344   {
24345     DI opval = MAKEDI (127, 0xffffffff);
24346     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24347     written |= (1 << 13);
24348     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24349   }
24350 frvbf_media_overflow (current_cpu, 8);
24351 }
24352 } else {
24353 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24354 {
24355   {
24356     DI opval = MAKEDI (0xffffff80, 0);
24357     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24358     written |= (1 << 13);
24359     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24360   }
24361 frvbf_media_overflow (current_cpu, 8);
24362 }
24363 } else {
24364   {
24365     DI opval = tmp_tmp;
24366     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24367     written |= (1 << 13);
24368     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24369   }
24370 }
24371 }
24372 }
24373 {
24374   DI tmp_tmp;
24375   tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (1))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo)));
24376 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24377 {
24378   {
24379     DI opval = MAKEDI (127, 0xffffffff);
24380     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24381     written |= (1 << 14);
24382     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24383   }
24384 frvbf_media_overflow (current_cpu, 4);
24385 }
24386 } else {
24387 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24388 {
24389   {
24390     DI opval = MAKEDI (0xffffff80, 0);
24391     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24392     written |= (1 << 14);
24393     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24394   }
24395 frvbf_media_overflow (current_cpu, 4);
24396 }
24397 } else {
24398   {
24399     DI opval = tmp_tmp;
24400     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24401     written |= (1 << 14);
24402     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24403   }
24404 }
24405 }
24406 }
24407 }
24408 }
24409 }
24410
24411   abuf->written = written;
24412   return vpc;
24413 #undef FLD
24414 }
24415
24416 /* cmmachu: cmmachu$pack $FRinti,$FRintj,$ACC40Uk,$CCi,$cond */
24417
24418 static SEM_PC
24419 SEM_FN_NAME (frvbf,cmmachu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
24420 {
24421 #define FLD(f) abuf->fields.sfmt_cmmachu.f
24422   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
24423   int UNUSED written = 0;
24424   IADDR UNUSED pc = abuf->addr;
24425   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
24426
24427 if (ANDSI (FLD (f_ACC40Uk), SUBSI (2, 1))) {
24428 frvbf_media_acc_not_aligned (current_cpu);
24429 } else {
24430 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
24431 {
24432   UHI tmp_argihi;
24433   UHI tmp_argilo;
24434   UHI tmp_argjhi;
24435   UHI tmp_argjlo;
24436 {
24437   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24438   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24439   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24440   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24441 }
24442 {
24443   DI tmp_tmp;
24444   tmp_tmp = ADDDI (GET_H_ACC40U (FLD (f_ACC40Uk)), MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi)));
24445 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
24446 {
24447   {
24448     UDI opval = MAKEDI (255, 0xffffffff);
24449     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24450     written |= (1 << 13);
24451     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24452   }
24453 frvbf_media_overflow (current_cpu, 8);
24454 }
24455 } else {
24456 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
24457 {
24458   {
24459     UDI opval = MAKEDI (0, 0);
24460     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24461     written |= (1 << 13);
24462     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24463   }
24464 frvbf_media_overflow (current_cpu, 8);
24465 }
24466 } else {
24467   {
24468     UDI opval = tmp_tmp;
24469     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24470     written |= (1 << 13);
24471     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24472   }
24473 }
24474 }
24475 }
24476 {
24477   DI tmp_tmp;
24478   tmp_tmp = ADDDI (GET_H_ACC40U (((FLD (f_ACC40Uk)) + (1))), MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo)));
24479 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
24480 {
24481   {
24482     UDI opval = MAKEDI (255, 0xffffffff);
24483     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
24484     written |= (1 << 14);
24485     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24486   }
24487 frvbf_media_overflow (current_cpu, 4);
24488 }
24489 } else {
24490 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
24491 {
24492   {
24493     UDI opval = MAKEDI (0, 0);
24494     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
24495     written |= (1 << 14);
24496     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24497   }
24498 frvbf_media_overflow (current_cpu, 4);
24499 }
24500 } else {
24501   {
24502     UDI opval = tmp_tmp;
24503     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
24504     written |= (1 << 14);
24505     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24506   }
24507 }
24508 }
24509 }
24510 }
24511 }
24512 }
24513
24514   abuf->written = written;
24515   return vpc;
24516 #undef FLD
24517 }
24518
24519 /* mqmachs: mqmachs$pack $FRintieven,$FRintjeven,$ACC40Sk */
24520
24521 static SEM_PC
24522 SEM_FN_NAME (frvbf,mqmachs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
24523 {
24524 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
24525   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
24526   int UNUSED written = 0;
24527   IADDR UNUSED pc = abuf->addr;
24528   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
24529
24530 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
24531 frvbf_media_acc_not_aligned (current_cpu);
24532 } else {
24533 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
24534 frvbf_media_register_not_aligned (current_cpu);
24535 } else {
24536 {
24537   HI tmp_argihi;
24538   HI tmp_argilo;
24539   HI tmp_argjhi;
24540   HI tmp_argjlo;
24541 {
24542   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24543   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24544   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24545   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24546 }
24547 {
24548   DI tmp_tmp;
24549   tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Sk)), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi)));
24550 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24551 {
24552   {
24553     DI opval = MAKEDI (127, 0xffffffff);
24554     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24555     written |= (1 << 17);
24556     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24557   }
24558 frvbf_media_overflow (current_cpu, 8);
24559 }
24560 } else {
24561 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24562 {
24563   {
24564     DI opval = MAKEDI (0xffffff80, 0);
24565     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24566     written |= (1 << 17);
24567     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24568   }
24569 frvbf_media_overflow (current_cpu, 8);
24570 }
24571 } else {
24572   {
24573     DI opval = tmp_tmp;
24574     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24575     written |= (1 << 17);
24576     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24577   }
24578 }
24579 }
24580 }
24581 {
24582   DI tmp_tmp;
24583   tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (1))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo)));
24584 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24585 {
24586   {
24587     DI opval = MAKEDI (127, 0xffffffff);
24588     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24589     written |= (1 << 18);
24590     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24591   }
24592 frvbf_media_overflow (current_cpu, 4);
24593 }
24594 } else {
24595 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24596 {
24597   {
24598     DI opval = MAKEDI (0xffffff80, 0);
24599     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24600     written |= (1 << 18);
24601     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24602   }
24603 frvbf_media_overflow (current_cpu, 4);
24604 }
24605 } else {
24606   {
24607     DI opval = tmp_tmp;
24608     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24609     written |= (1 << 18);
24610     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24611   }
24612 }
24613 }
24614 }
24615 {
24616   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24617   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24618   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24619   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24620 }
24621 {
24622   DI tmp_tmp;
24623   tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (2))), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi)));
24624 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24625 {
24626   {
24627     DI opval = MAKEDI (127, 0xffffffff);
24628     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
24629     written |= (1 << 19);
24630     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24631   }
24632 frvbf_media_overflow (current_cpu, 2);
24633 }
24634 } else {
24635 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24636 {
24637   {
24638     DI opval = MAKEDI (0xffffff80, 0);
24639     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
24640     written |= (1 << 19);
24641     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24642   }
24643 frvbf_media_overflow (current_cpu, 2);
24644 }
24645 } else {
24646   {
24647     DI opval = tmp_tmp;
24648     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
24649     written |= (1 << 19);
24650     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24651   }
24652 }
24653 }
24654 }
24655 {
24656   DI tmp_tmp;
24657   tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (3))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo)));
24658 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24659 {
24660   {
24661     DI opval = MAKEDI (127, 0xffffffff);
24662     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
24663     written |= (1 << 20);
24664     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24665   }
24666 frvbf_media_overflow (current_cpu, 1);
24667 }
24668 } else {
24669 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24670 {
24671   {
24672     DI opval = MAKEDI (0xffffff80, 0);
24673     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
24674     written |= (1 << 20);
24675     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24676   }
24677 frvbf_media_overflow (current_cpu, 1);
24678 }
24679 } else {
24680   {
24681     DI opval = tmp_tmp;
24682     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
24683     written |= (1 << 20);
24684     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24685   }
24686 }
24687 }
24688 }
24689 }
24690 }
24691 }
24692
24693   abuf->written = written;
24694   return vpc;
24695 #undef FLD
24696 }
24697
24698 /* mqmachu: mqmachu$pack $FRintieven,$FRintjeven,$ACC40Uk */
24699
24700 static SEM_PC
24701 SEM_FN_NAME (frvbf,mqmachu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
24702 {
24703 #define FLD(f) abuf->fields.sfmt_cmqmachu.f
24704   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
24705   int UNUSED written = 0;
24706   IADDR UNUSED pc = abuf->addr;
24707   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
24708
24709 if (ANDSI (FLD (f_ACC40Uk), SUBSI (4, 1))) {
24710 frvbf_media_acc_not_aligned (current_cpu);
24711 } else {
24712 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
24713 frvbf_media_register_not_aligned (current_cpu);
24714 } else {
24715 {
24716   UHI tmp_argihi;
24717   UHI tmp_argilo;
24718   UHI tmp_argjhi;
24719   UHI tmp_argjlo;
24720 {
24721   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24722   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24723   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24724   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24725 }
24726 {
24727   DI tmp_tmp;
24728   tmp_tmp = ADDDI (GET_H_ACC40U (FLD (f_ACC40Uk)), MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi)));
24729 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
24730 {
24731   {
24732     UDI opval = MAKEDI (255, 0xffffffff);
24733     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24734     written |= (1 << 17);
24735     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24736   }
24737 frvbf_media_overflow (current_cpu, 8);
24738 }
24739 } else {
24740 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
24741 {
24742   {
24743     UDI opval = MAKEDI (0, 0);
24744     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24745     written |= (1 << 17);
24746     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24747   }
24748 frvbf_media_overflow (current_cpu, 8);
24749 }
24750 } else {
24751   {
24752     UDI opval = tmp_tmp;
24753     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24754     written |= (1 << 17);
24755     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24756   }
24757 }
24758 }
24759 }
24760 {
24761   DI tmp_tmp;
24762   tmp_tmp = ADDDI (GET_H_ACC40U (((FLD (f_ACC40Uk)) + (1))), MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo)));
24763 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
24764 {
24765   {
24766     UDI opval = MAKEDI (255, 0xffffffff);
24767     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
24768     written |= (1 << 18);
24769     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24770   }
24771 frvbf_media_overflow (current_cpu, 4);
24772 }
24773 } else {
24774 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
24775 {
24776   {
24777     UDI opval = MAKEDI (0, 0);
24778     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
24779     written |= (1 << 18);
24780     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24781   }
24782 frvbf_media_overflow (current_cpu, 4);
24783 }
24784 } else {
24785   {
24786     UDI opval = tmp_tmp;
24787     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
24788     written |= (1 << 18);
24789     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24790   }
24791 }
24792 }
24793 }
24794 {
24795   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24796   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24797   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24798   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24799 }
24800 {
24801   DI tmp_tmp;
24802   tmp_tmp = ADDDI (GET_H_ACC40U (((FLD (f_ACC40Uk)) + (2))), MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi)));
24803 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
24804 {
24805   {
24806     UDI opval = MAKEDI (255, 0xffffffff);
24807     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (2)), opval);
24808     written |= (1 << 19);
24809     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24810   }
24811 frvbf_media_overflow (current_cpu, 2);
24812 }
24813 } else {
24814 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
24815 {
24816   {
24817     UDI opval = MAKEDI (0, 0);
24818     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (2)), opval);
24819     written |= (1 << 19);
24820     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24821   }
24822 frvbf_media_overflow (current_cpu, 2);
24823 }
24824 } else {
24825   {
24826     UDI opval = tmp_tmp;
24827     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (2)), opval);
24828     written |= (1 << 19);
24829     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24830   }
24831 }
24832 }
24833 }
24834 {
24835   DI tmp_tmp;
24836   tmp_tmp = ADDDI (GET_H_ACC40U (((FLD (f_ACC40Uk)) + (3))), MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo)));
24837 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
24838 {
24839   {
24840     UDI opval = MAKEDI (255, 0xffffffff);
24841     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (3)), opval);
24842     written |= (1 << 20);
24843     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24844   }
24845 frvbf_media_overflow (current_cpu, 1);
24846 }
24847 } else {
24848 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
24849 {
24850   {
24851     UDI opval = MAKEDI (0, 0);
24852     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (3)), opval);
24853     written |= (1 << 20);
24854     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24855   }
24856 frvbf_media_overflow (current_cpu, 1);
24857 }
24858 } else {
24859   {
24860     UDI opval = tmp_tmp;
24861     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (3)), opval);
24862     written |= (1 << 20);
24863     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24864   }
24865 }
24866 }
24867 }
24868 }
24869 }
24870 }
24871
24872   abuf->written = written;
24873   return vpc;
24874 #undef FLD
24875 }
24876
24877 /* cmqmachs: cmqmachs$pack $FRintieven,$FRintjeven,$ACC40Sk,$CCi,$cond */
24878
24879 static SEM_PC
24880 SEM_FN_NAME (frvbf,cmqmachs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
24881 {
24882 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
24883   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
24884   int UNUSED written = 0;
24885   IADDR UNUSED pc = abuf->addr;
24886   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
24887
24888 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
24889 frvbf_media_acc_not_aligned (current_cpu);
24890 } else {
24891 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
24892 frvbf_media_register_not_aligned (current_cpu);
24893 } else {
24894 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
24895 {
24896   HI tmp_argihi;
24897   HI tmp_argilo;
24898   HI tmp_argjhi;
24899   HI tmp_argjlo;
24900 {
24901   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24902   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24903   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24904   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24905 }
24906 {
24907   DI tmp_tmp;
24908   tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Sk)), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi)));
24909 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24910 {
24911   {
24912     DI opval = MAKEDI (127, 0xffffffff);
24913     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24914     written |= (1 << 19);
24915     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24916   }
24917 frvbf_media_overflow (current_cpu, 8);
24918 }
24919 } else {
24920 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24921 {
24922   {
24923     DI opval = MAKEDI (0xffffff80, 0);
24924     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24925     written |= (1 << 19);
24926     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24927   }
24928 frvbf_media_overflow (current_cpu, 8);
24929 }
24930 } else {
24931   {
24932     DI opval = tmp_tmp;
24933     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24934     written |= (1 << 19);
24935     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24936   }
24937 }
24938 }
24939 }
24940 {
24941   DI tmp_tmp;
24942   tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (1))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo)));
24943 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24944 {
24945   {
24946     DI opval = MAKEDI (127, 0xffffffff);
24947     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24948     written |= (1 << 20);
24949     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24950   }
24951 frvbf_media_overflow (current_cpu, 4);
24952 }
24953 } else {
24954 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24955 {
24956   {
24957     DI opval = MAKEDI (0xffffff80, 0);
24958     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24959     written |= (1 << 20);
24960     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24961   }
24962 frvbf_media_overflow (current_cpu, 4);
24963 }
24964 } else {
24965   {
24966     DI opval = tmp_tmp;
24967     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24968     written |= (1 << 20);
24969     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24970   }
24971 }
24972 }
24973 }
24974 {
24975   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24976   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24977   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24978   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24979 }
24980 {
24981   DI tmp_tmp;
24982   tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (2))), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi)));
24983 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24984 {
24985   {
24986     DI opval = MAKEDI (127, 0xffffffff);
24987     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
24988     written |= (1 << 21);
24989     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24990   }
24991 frvbf_media_overflow (current_cpu, 2);
24992 }
24993 } else {
24994 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24995 {
24996   {
24997     DI opval = MAKEDI (0xffffff80, 0);
24998     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
24999     written |= (1 << 21);
25000     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25001   }
25002 frvbf_media_overflow (current_cpu, 2);
25003 }
25004 } else {
25005   {
25006     DI opval = tmp_tmp;
25007     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
25008     written |= (1 << 21);
25009     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25010   }
25011 }
25012 }
25013 }
25014 {
25015   DI tmp_tmp;
25016   tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (3))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo)));
25017 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25018 {
25019   {
25020     DI opval = MAKEDI (127, 0xffffffff);
25021     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
25022     written |= (1 << 22);
25023     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25024   }
25025 frvbf_media_overflow (current_cpu, 1);
25026 }
25027 } else {
25028 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25029 {
25030   {
25031     DI opval = MAKEDI (0xffffff80, 0);
25032     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
25033     written |= (1 << 22);
25034     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25035   }
25036 frvbf_media_overflow (current_cpu, 1);
25037 }
25038 } else {
25039   {
25040     DI opval = tmp_tmp;
25041     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
25042     written |= (1 << 22);
25043     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25044   }
25045 }
25046 }
25047 }
25048 }
25049 }
25050 }
25051 }
25052
25053   abuf->written = written;
25054   return vpc;
25055 #undef FLD
25056 }
25057
25058 /* cmqmachu: cmqmachu$pack $FRintieven,$FRintjeven,$ACC40Uk,$CCi,$cond */
25059
25060 static SEM_PC
25061 SEM_FN_NAME (frvbf,cmqmachu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
25062 {
25063 #define FLD(f) abuf->fields.sfmt_cmqmachu.f
25064   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
25065   int UNUSED written = 0;
25066   IADDR UNUSED pc = abuf->addr;
25067   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
25068
25069 if (ANDSI (FLD (f_ACC40Uk), SUBSI (4, 1))) {
25070 frvbf_media_acc_not_aligned (current_cpu);
25071 } else {
25072 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
25073 frvbf_media_register_not_aligned (current_cpu);
25074 } else {
25075 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
25076 {
25077   UHI tmp_argihi;
25078   UHI tmp_argilo;
25079   UHI tmp_argjhi;
25080   UHI tmp_argjlo;
25081 {
25082   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25083   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25084   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25085   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25086 }
25087 {
25088   DI tmp_tmp;
25089   tmp_tmp = ADDDI (GET_H_ACC40U (FLD (f_ACC40Uk)), MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi)));
25090 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
25091 {
25092   {
25093     UDI opval = MAKEDI (255, 0xffffffff);
25094     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
25095     written |= (1 << 19);
25096     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25097   }
25098 frvbf_media_overflow (current_cpu, 8);
25099 }
25100 } else {
25101 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
25102 {
25103   {
25104     UDI opval = MAKEDI (0, 0);
25105     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
25106     written |= (1 << 19);
25107     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25108   }
25109 frvbf_media_overflow (current_cpu, 8);
25110 }
25111 } else {
25112   {
25113     UDI opval = tmp_tmp;
25114     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
25115     written |= (1 << 19);
25116     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25117   }
25118 }
25119 }
25120 }
25121 {
25122   DI tmp_tmp;
25123   tmp_tmp = ADDDI (GET_H_ACC40U (((FLD (f_ACC40Uk)) + (1))), MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo)));
25124 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
25125 {
25126   {
25127     UDI opval = MAKEDI (255, 0xffffffff);
25128     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
25129     written |= (1 << 20);
25130     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25131   }
25132 frvbf_media_overflow (current_cpu, 4);
25133 }
25134 } else {
25135 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
25136 {
25137   {
25138     UDI opval = MAKEDI (0, 0);
25139     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
25140     written |= (1 << 20);
25141     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25142   }
25143 frvbf_media_overflow (current_cpu, 4);
25144 }
25145 } else {
25146   {
25147     UDI opval = tmp_tmp;
25148     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
25149     written |= (1 << 20);
25150     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25151   }
25152 }
25153 }
25154 }
25155 {
25156   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25157   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25158   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25159   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25160 }
25161 {
25162   DI tmp_tmp;
25163   tmp_tmp = ADDDI (GET_H_ACC40U (((FLD (f_ACC40Uk)) + (2))), MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi)));
25164 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
25165 {
25166   {
25167     UDI opval = MAKEDI (255, 0xffffffff);
25168     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (2)), opval);
25169     written |= (1 << 21);
25170     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25171   }
25172 frvbf_media_overflow (current_cpu, 2);
25173 }
25174 } else {
25175 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
25176 {
25177   {
25178     UDI opval = MAKEDI (0, 0);
25179     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (2)), opval);
25180     written |= (1 << 21);
25181     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25182   }
25183 frvbf_media_overflow (current_cpu, 2);
25184 }
25185 } else {
25186   {
25187     UDI opval = tmp_tmp;
25188     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (2)), opval);
25189     written |= (1 << 21);
25190     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25191   }
25192 }
25193 }
25194 }
25195 {
25196   DI tmp_tmp;
25197   tmp_tmp = ADDDI (GET_H_ACC40U (((FLD (f_ACC40Uk)) + (3))), MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo)));
25198 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
25199 {
25200   {
25201     UDI opval = MAKEDI (255, 0xffffffff);
25202     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (3)), opval);
25203     written |= (1 << 22);
25204     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25205   }
25206 frvbf_media_overflow (current_cpu, 1);
25207 }
25208 } else {
25209 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
25210 {
25211   {
25212     UDI opval = MAKEDI (0, 0);
25213     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (3)), opval);
25214     written |= (1 << 22);
25215     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25216   }
25217 frvbf_media_overflow (current_cpu, 1);
25218 }
25219 } else {
25220   {
25221     UDI opval = tmp_tmp;
25222     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (3)), opval);
25223     written |= (1 << 22);
25224     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25225   }
25226 }
25227 }
25228 }
25229 }
25230 }
25231 }
25232 }
25233
25234   abuf->written = written;
25235   return vpc;
25236 #undef FLD
25237 }
25238
25239 /* mqxmachs: mqxmachs$pack $FRintieven,$FRintjeven,$ACC40Sk */
25240
25241 static SEM_PC
25242 SEM_FN_NAME (frvbf,mqxmachs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
25243 {
25244 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
25245   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
25246   int UNUSED written = 0;
25247   IADDR UNUSED pc = abuf->addr;
25248   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
25249
25250 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
25251 frvbf_media_acc_not_aligned (current_cpu);
25252 } else {
25253 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
25254 frvbf_media_register_not_aligned (current_cpu);
25255 } else {
25256 {
25257   HI tmp_argihi;
25258   HI tmp_argilo;
25259   HI tmp_argjhi;
25260   HI tmp_argjlo;
25261 {
25262   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25263   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25264   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25265   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25266 }
25267 {
25268   DI tmp_tmp;
25269   tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (2))), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi)));
25270 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25271 {
25272   {
25273     DI opval = MAKEDI (127, 0xffffffff);
25274     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
25275     written |= (1 << 19);
25276     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25277   }
25278 frvbf_media_overflow (current_cpu, 2);
25279 }
25280 } else {
25281 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25282 {
25283   {
25284     DI opval = MAKEDI (0xffffff80, 0);
25285     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
25286     written |= (1 << 19);
25287     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25288   }
25289 frvbf_media_overflow (current_cpu, 2);
25290 }
25291 } else {
25292   {
25293     DI opval = tmp_tmp;
25294     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
25295     written |= (1 << 19);
25296     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25297   }
25298 }
25299 }
25300 }
25301 {
25302   DI tmp_tmp;
25303   tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (3))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo)));
25304 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25305 {
25306   {
25307     DI opval = MAKEDI (127, 0xffffffff);
25308     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
25309     written |= (1 << 20);
25310     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25311   }
25312 frvbf_media_overflow (current_cpu, 1);
25313 }
25314 } else {
25315 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25316 {
25317   {
25318     DI opval = MAKEDI (0xffffff80, 0);
25319     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
25320     written |= (1 << 20);
25321     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25322   }
25323 frvbf_media_overflow (current_cpu, 1);
25324 }
25325 } else {
25326   {
25327     DI opval = tmp_tmp;
25328     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
25329     written |= (1 << 20);
25330     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25331   }
25332 }
25333 }
25334 }
25335 {
25336   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25337   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25338   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25339   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25340 }
25341 {
25342   DI tmp_tmp;
25343   tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Sk)), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi)));
25344 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25345 {
25346   {
25347     DI opval = MAKEDI (127, 0xffffffff);
25348     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25349     written |= (1 << 17);
25350     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25351   }
25352 frvbf_media_overflow (current_cpu, 8);
25353 }
25354 } else {
25355 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25356 {
25357   {
25358     DI opval = MAKEDI (0xffffff80, 0);
25359     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25360     written |= (1 << 17);
25361     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25362   }
25363 frvbf_media_overflow (current_cpu, 8);
25364 }
25365 } else {
25366   {
25367     DI opval = tmp_tmp;
25368     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25369     written |= (1 << 17);
25370     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25371   }
25372 }
25373 }
25374 }
25375 {
25376   DI tmp_tmp;
25377   tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (1))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo)));
25378 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25379 {
25380   {
25381     DI opval = MAKEDI (127, 0xffffffff);
25382     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
25383     written |= (1 << 18);
25384     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25385   }
25386 frvbf_media_overflow (current_cpu, 4);
25387 }
25388 } else {
25389 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25390 {
25391   {
25392     DI opval = MAKEDI (0xffffff80, 0);
25393     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
25394     written |= (1 << 18);
25395     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25396   }
25397 frvbf_media_overflow (current_cpu, 4);
25398 }
25399 } else {
25400   {
25401     DI opval = tmp_tmp;
25402     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
25403     written |= (1 << 18);
25404     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25405   }
25406 }
25407 }
25408 }
25409 }
25410 }
25411 }
25412
25413   abuf->written = written;
25414   return vpc;
25415 #undef FLD
25416 }
25417
25418 /* mqxmacxhs: mqxmacxhs$pack $FRintieven,$FRintjeven,$ACC40Sk */
25419
25420 static SEM_PC
25421 SEM_FN_NAME (frvbf,mqxmacxhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
25422 {
25423 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
25424   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
25425   int UNUSED written = 0;
25426   IADDR UNUSED pc = abuf->addr;
25427   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
25428
25429 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
25430 frvbf_media_acc_not_aligned (current_cpu);
25431 } else {
25432 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
25433 frvbf_media_register_not_aligned (current_cpu);
25434 } else {
25435 {
25436   HI tmp_argihi;
25437   HI tmp_argilo;
25438   HI tmp_argjhi;
25439   HI tmp_argjlo;
25440 {
25441   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25442   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25443   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25444   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25445 }
25446 {
25447   DI tmp_tmp;
25448   tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (2))), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo)));
25449 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25450 {
25451   {
25452     DI opval = MAKEDI (127, 0xffffffff);
25453     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
25454     written |= (1 << 19);
25455     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25456   }
25457 frvbf_media_overflow (current_cpu, 2);
25458 }
25459 } else {
25460 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25461 {
25462   {
25463     DI opval = MAKEDI (0xffffff80, 0);
25464     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
25465     written |= (1 << 19);
25466     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25467   }
25468 frvbf_media_overflow (current_cpu, 2);
25469 }
25470 } else {
25471   {
25472     DI opval = tmp_tmp;
25473     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
25474     written |= (1 << 19);
25475     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25476   }
25477 }
25478 }
25479 }
25480 {
25481   DI tmp_tmp;
25482   tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (3))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi)));
25483 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25484 {
25485   {
25486     DI opval = MAKEDI (127, 0xffffffff);
25487     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
25488     written |= (1 << 20);
25489     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25490   }
25491 frvbf_media_overflow (current_cpu, 1);
25492 }
25493 } else {
25494 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25495 {
25496   {
25497     DI opval = MAKEDI (0xffffff80, 0);
25498     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
25499     written |= (1 << 20);
25500     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25501   }
25502 frvbf_media_overflow (current_cpu, 1);
25503 }
25504 } else {
25505   {
25506     DI opval = tmp_tmp;
25507     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
25508     written |= (1 << 20);
25509     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25510   }
25511 }
25512 }
25513 }
25514 {
25515   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25516   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25517   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25518   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25519 }
25520 {
25521   DI tmp_tmp;
25522   tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Sk)), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo)));
25523 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25524 {
25525   {
25526     DI opval = MAKEDI (127, 0xffffffff);
25527     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25528     written |= (1 << 17);
25529     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25530   }
25531 frvbf_media_overflow (current_cpu, 8);
25532 }
25533 } else {
25534 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25535 {
25536   {
25537     DI opval = MAKEDI (0xffffff80, 0);
25538     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25539     written |= (1 << 17);
25540     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25541   }
25542 frvbf_media_overflow (current_cpu, 8);
25543 }
25544 } else {
25545   {
25546     DI opval = tmp_tmp;
25547     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25548     written |= (1 << 17);
25549     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25550   }
25551 }
25552 }
25553 }
25554 {
25555   DI tmp_tmp;
25556   tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (1))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi)));
25557 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25558 {
25559   {
25560     DI opval = MAKEDI (127, 0xffffffff);
25561     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
25562     written |= (1 << 18);
25563     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25564   }
25565 frvbf_media_overflow (current_cpu, 4);
25566 }
25567 } else {
25568 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25569 {
25570   {
25571     DI opval = MAKEDI (0xffffff80, 0);
25572     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
25573     written |= (1 << 18);
25574     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25575   }
25576 frvbf_media_overflow (current_cpu, 4);
25577 }
25578 } else {
25579   {
25580     DI opval = tmp_tmp;
25581     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
25582     written |= (1 << 18);
25583     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25584   }
25585 }
25586 }
25587 }
25588 }
25589 }
25590 }
25591
25592   abuf->written = written;
25593   return vpc;
25594 #undef FLD
25595 }
25596
25597 /* mqmacxhs: mqmacxhs$pack $FRintieven,$FRintjeven,$ACC40Sk */
25598
25599 static SEM_PC
25600 SEM_FN_NAME (frvbf,mqmacxhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
25601 {
25602 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
25603   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
25604   int UNUSED written = 0;
25605   IADDR UNUSED pc = abuf->addr;
25606   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
25607
25608 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
25609 frvbf_media_acc_not_aligned (current_cpu);
25610 } else {
25611 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
25612 frvbf_media_register_not_aligned (current_cpu);
25613 } else {
25614 {
25615   HI tmp_argihi;
25616   HI tmp_argilo;
25617   HI tmp_argjhi;
25618   HI tmp_argjlo;
25619 {
25620   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25621   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25622   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25623   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25624 }
25625 {
25626   DI tmp_tmp;
25627   tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Sk)), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo)));
25628 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25629 {
25630   {
25631     DI opval = MAKEDI (127, 0xffffffff);
25632     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25633     written |= (1 << 17);
25634     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25635   }
25636 frvbf_media_overflow (current_cpu, 8);
25637 }
25638 } else {
25639 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25640 {
25641   {
25642     DI opval = MAKEDI (0xffffff80, 0);
25643     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25644     written |= (1 << 17);
25645     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25646   }
25647 frvbf_media_overflow (current_cpu, 8);
25648 }
25649 } else {
25650   {
25651     DI opval = tmp_tmp;
25652     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25653     written |= (1 << 17);
25654     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25655   }
25656 }
25657 }
25658 }
25659 {
25660   DI tmp_tmp;
25661   tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (1))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi)));
25662 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25663 {
25664   {
25665     DI opval = MAKEDI (127, 0xffffffff);
25666     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
25667     written |= (1 << 18);
25668     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25669   }
25670 frvbf_media_overflow (current_cpu, 4);
25671 }
25672 } else {
25673 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25674 {
25675   {
25676     DI opval = MAKEDI (0xffffff80, 0);
25677     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
25678     written |= (1 << 18);
25679     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25680   }
25681 frvbf_media_overflow (current_cpu, 4);
25682 }
25683 } else {
25684   {
25685     DI opval = tmp_tmp;
25686     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
25687     written |= (1 << 18);
25688     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25689   }
25690 }
25691 }
25692 }
25693 {
25694   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25695   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25696   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25697   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25698 }
25699 {
25700   DI tmp_tmp;
25701   tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (2))), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo)));
25702 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25703 {
25704   {
25705     DI opval = MAKEDI (127, 0xffffffff);
25706     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
25707     written |= (1 << 19);
25708     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25709   }
25710 frvbf_media_overflow (current_cpu, 2);
25711 }
25712 } else {
25713 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25714 {
25715   {
25716     DI opval = MAKEDI (0xffffff80, 0);
25717     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
25718     written |= (1 << 19);
25719     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25720   }
25721 frvbf_media_overflow (current_cpu, 2);
25722 }
25723 } else {
25724   {
25725     DI opval = tmp_tmp;
25726     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
25727     written |= (1 << 19);
25728     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25729   }
25730 }
25731 }
25732 }
25733 {
25734   DI tmp_tmp;
25735   tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (3))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi)));
25736 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25737 {
25738   {
25739     DI opval = MAKEDI (127, 0xffffffff);
25740     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
25741     written |= (1 << 20);
25742     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25743   }
25744 frvbf_media_overflow (current_cpu, 1);
25745 }
25746 } else {
25747 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25748 {
25749   {
25750     DI opval = MAKEDI (0xffffff80, 0);
25751     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
25752     written |= (1 << 20);
25753     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25754   }
25755 frvbf_media_overflow (current_cpu, 1);
25756 }
25757 } else {
25758   {
25759     DI opval = tmp_tmp;
25760     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
25761     written |= (1 << 20);
25762     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25763   }
25764 }
25765 }
25766 }
25767 }
25768 }
25769 }
25770
25771   abuf->written = written;
25772   return vpc;
25773 #undef FLD
25774 }
25775
25776 /* mcpxrs: mcpxrs$pack $FRinti,$FRintj,$ACC40Sk */
25777
25778 static SEM_PC
25779 SEM_FN_NAME (frvbf,mcpxrs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
25780 {
25781 #define FLD(f) abuf->fields.sfmt_cmmachs.f
25782   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
25783   int UNUSED written = 0;
25784   IADDR UNUSED pc = abuf->addr;
25785   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
25786
25787 {
25788   HI tmp_argihi;
25789   HI tmp_argilo;
25790   HI tmp_argjhi;
25791   HI tmp_argjlo;
25792 {
25793   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25794   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25795   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25796   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25797 }
25798 {
25799   DI tmp_tmp1;
25800   DI tmp_tmp2;
25801   tmp_tmp1 = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
25802   tmp_tmp2 = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
25803   tmp_tmp1 = SUBDI (tmp_tmp1, tmp_tmp2);
25804 if (GTDI (tmp_tmp1, MAKEDI (127, 0xffffffff))) {
25805 {
25806   {
25807     DI opval = MAKEDI (127, 0xffffffff);
25808     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25809     written |= (1 << 8);
25810     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25811   }
25812 frvbf_media_overflow (current_cpu, 8);
25813 }
25814 } else {
25815 if (LTDI (tmp_tmp1, MAKEDI (0xffffff80, 0))) {
25816 {
25817   {
25818     DI opval = MAKEDI (0xffffff80, 0);
25819     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25820     written |= (1 << 8);
25821     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25822   }
25823 frvbf_media_overflow (current_cpu, 8);
25824 }
25825 } else {
25826   {
25827     DI opval = tmp_tmp1;
25828     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25829     written |= (1 << 8);
25830     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25831   }
25832 }
25833 }
25834 }
25835 }
25836
25837   abuf->written = written;
25838   return vpc;
25839 #undef FLD
25840 }
25841
25842 /* mcpxru: mcpxru$pack $FRinti,$FRintj,$ACC40Sk */
25843
25844 static SEM_PC
25845 SEM_FN_NAME (frvbf,mcpxru) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
25846 {
25847 #define FLD(f) abuf->fields.sfmt_cmmachs.f
25848   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
25849   int UNUSED written = 0;
25850   IADDR UNUSED pc = abuf->addr;
25851   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
25852
25853 {
25854   UHI tmp_argihi;
25855   UHI tmp_argilo;
25856   UHI tmp_argjhi;
25857   UHI tmp_argjlo;
25858 {
25859   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25860   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25861   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25862   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25863 }
25864 {
25865   DI tmp_tmp1;
25866   DI tmp_tmp2;
25867   tmp_tmp1 = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
25868   tmp_tmp2 = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
25869   tmp_tmp1 = SUBDI (tmp_tmp1, tmp_tmp2);
25870 if (GTDI (tmp_tmp1, MAKEDI (255, 0xffffffff))) {
25871 {
25872   {
25873     DI opval = MAKEDI (255, 0xffffffff);
25874     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25875     written |= (1 << 8);
25876     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25877   }
25878 frvbf_media_overflow (current_cpu, 8);
25879 }
25880 } else {
25881 if (LTDI (tmp_tmp1, MAKEDI (0, 0))) {
25882 {
25883   {
25884     DI opval = MAKEDI (0, 0);
25885     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25886     written |= (1 << 8);
25887     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25888   }
25889 frvbf_media_overflow (current_cpu, 8);
25890 }
25891 } else {
25892   {
25893     DI opval = tmp_tmp1;
25894     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25895     written |= (1 << 8);
25896     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25897   }
25898 }
25899 }
25900 }
25901 }
25902
25903   abuf->written = written;
25904   return vpc;
25905 #undef FLD
25906 }
25907
25908 /* mcpxis: mcpxis$pack $FRinti,$FRintj,$ACC40Sk */
25909
25910 static SEM_PC
25911 SEM_FN_NAME (frvbf,mcpxis) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
25912 {
25913 #define FLD(f) abuf->fields.sfmt_cmmachs.f
25914   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
25915   int UNUSED written = 0;
25916   IADDR UNUSED pc = abuf->addr;
25917   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
25918
25919 {
25920   HI tmp_argihi;
25921   HI tmp_argilo;
25922   HI tmp_argjhi;
25923   HI tmp_argjlo;
25924 {
25925   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25926   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25927   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25928   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25929 }
25930 {
25931   DI tmp_tmp1;
25932   DI tmp_tmp2;
25933   tmp_tmp1 = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo));
25934   tmp_tmp2 = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi));
25935   tmp_tmp1 = ADDDI (tmp_tmp1, tmp_tmp2);
25936 if (GTDI (tmp_tmp1, MAKEDI (127, 0xffffffff))) {
25937 {
25938   {
25939     DI opval = MAKEDI (127, 0xffffffff);
25940     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25941     written |= (1 << 8);
25942     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25943   }
25944 frvbf_media_overflow (current_cpu, 8);
25945 }
25946 } else {
25947 if (LTDI (tmp_tmp1, MAKEDI (0xffffff80, 0))) {
25948 {
25949   {
25950     DI opval = MAKEDI (0xffffff80, 0);
25951     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25952     written |= (1 << 8);
25953     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25954   }
25955 frvbf_media_overflow (current_cpu, 8);
25956 }
25957 } else {
25958   {
25959     DI opval = tmp_tmp1;
25960     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25961     written |= (1 << 8);
25962     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25963   }
25964 }
25965 }
25966 }
25967 }
25968
25969   abuf->written = written;
25970   return vpc;
25971 #undef FLD
25972 }
25973
25974 /* mcpxiu: mcpxiu$pack $FRinti,$FRintj,$ACC40Sk */
25975
25976 static SEM_PC
25977 SEM_FN_NAME (frvbf,mcpxiu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
25978 {
25979 #define FLD(f) abuf->fields.sfmt_cmmachs.f
25980   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
25981   int UNUSED written = 0;
25982   IADDR UNUSED pc = abuf->addr;
25983   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
25984
25985 {
25986   UHI tmp_argihi;
25987   UHI tmp_argilo;
25988   UHI tmp_argjhi;
25989   UHI tmp_argjlo;
25990 {
25991   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25992   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25993   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25994   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25995 }
25996 {
25997   DI tmp_tmp1;
25998   DI tmp_tmp2;
25999   tmp_tmp1 = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjlo));
26000   tmp_tmp2 = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjhi));
26001   tmp_tmp1 = ADDDI (tmp_tmp1, tmp_tmp2);
26002 if (GTDI (tmp_tmp1, MAKEDI (255, 0xffffffff))) {
26003 {
26004   {
26005     DI opval = MAKEDI (255, 0xffffffff);
26006     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26007     written |= (1 << 8);
26008     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26009   }
26010 frvbf_media_overflow (current_cpu, 8);
26011 }
26012 } else {
26013 if (LTDI (tmp_tmp1, MAKEDI (0, 0))) {
26014 {
26015   {
26016     DI opval = MAKEDI (0, 0);
26017     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26018     written |= (1 << 8);
26019     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26020   }
26021 frvbf_media_overflow (current_cpu, 8);
26022 }
26023 } else {
26024   {
26025     DI opval = tmp_tmp1;
26026     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26027     written |= (1 << 8);
26028     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26029   }
26030 }
26031 }
26032 }
26033 }
26034
26035   abuf->written = written;
26036   return vpc;
26037 #undef FLD
26038 }
26039
26040 /* cmcpxrs: cmcpxrs$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
26041
26042 static SEM_PC
26043 SEM_FN_NAME (frvbf,cmcpxrs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26044 {
26045 #define FLD(f) abuf->fields.sfmt_cmmachs.f
26046   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26047   int UNUSED written = 0;
26048   IADDR UNUSED pc = abuf->addr;
26049   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26050
26051 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
26052 {
26053   HI tmp_argihi;
26054   HI tmp_argilo;
26055   HI tmp_argjhi;
26056   HI tmp_argjlo;
26057 {
26058   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26059   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26060   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26061   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26062 }
26063 {
26064   DI tmp_tmp1;
26065   DI tmp_tmp2;
26066   tmp_tmp1 = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
26067   tmp_tmp2 = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
26068   tmp_tmp1 = SUBDI (tmp_tmp1, tmp_tmp2);
26069 if (GTDI (tmp_tmp1, MAKEDI (127, 0xffffffff))) {
26070 {
26071   {
26072     DI opval = MAKEDI (127, 0xffffffff);
26073     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26074     written |= (1 << 10);
26075     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26076   }
26077 frvbf_media_overflow (current_cpu, 8);
26078 }
26079 } else {
26080 if (LTDI (tmp_tmp1, MAKEDI (0xffffff80, 0))) {
26081 {
26082   {
26083     DI opval = MAKEDI (0xffffff80, 0);
26084     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26085     written |= (1 << 10);
26086     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26087   }
26088 frvbf_media_overflow (current_cpu, 8);
26089 }
26090 } else {
26091   {
26092     DI opval = tmp_tmp1;
26093     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26094     written |= (1 << 10);
26095     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26096   }
26097 }
26098 }
26099 }
26100 }
26101 }
26102
26103   abuf->written = written;
26104   return vpc;
26105 #undef FLD
26106 }
26107
26108 /* cmcpxru: cmcpxru$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
26109
26110 static SEM_PC
26111 SEM_FN_NAME (frvbf,cmcpxru) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26112 {
26113 #define FLD(f) abuf->fields.sfmt_cmmachs.f
26114   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26115   int UNUSED written = 0;
26116   IADDR UNUSED pc = abuf->addr;
26117   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26118
26119 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
26120 {
26121   UHI tmp_argihi;
26122   UHI tmp_argilo;
26123   UHI tmp_argjhi;
26124   UHI tmp_argjlo;
26125 {
26126   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26127   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26128   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26129   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26130 }
26131 {
26132   DI tmp_tmp1;
26133   DI tmp_tmp2;
26134   tmp_tmp1 = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
26135   tmp_tmp2 = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
26136   tmp_tmp1 = SUBDI (tmp_tmp1, tmp_tmp2);
26137 if (GTDI (tmp_tmp1, MAKEDI (255, 0xffffffff))) {
26138 {
26139   {
26140     DI opval = MAKEDI (255, 0xffffffff);
26141     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26142     written |= (1 << 10);
26143     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26144   }
26145 frvbf_media_overflow (current_cpu, 8);
26146 }
26147 } else {
26148 if (LTDI (tmp_tmp1, MAKEDI (0, 0))) {
26149 {
26150   {
26151     DI opval = MAKEDI (0, 0);
26152     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26153     written |= (1 << 10);
26154     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26155   }
26156 frvbf_media_overflow (current_cpu, 8);
26157 }
26158 } else {
26159   {
26160     DI opval = tmp_tmp1;
26161     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26162     written |= (1 << 10);
26163     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26164   }
26165 }
26166 }
26167 }
26168 }
26169 }
26170
26171   abuf->written = written;
26172   return vpc;
26173 #undef FLD
26174 }
26175
26176 /* cmcpxis: cmcpxis$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
26177
26178 static SEM_PC
26179 SEM_FN_NAME (frvbf,cmcpxis) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26180 {
26181 #define FLD(f) abuf->fields.sfmt_cmmachs.f
26182   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26183   int UNUSED written = 0;
26184   IADDR UNUSED pc = abuf->addr;
26185   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26186
26187 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
26188 {
26189   HI tmp_argihi;
26190   HI tmp_argilo;
26191   HI tmp_argjhi;
26192   HI tmp_argjlo;
26193 {
26194   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26195   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26196   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26197   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26198 }
26199 {
26200   DI tmp_tmp1;
26201   DI tmp_tmp2;
26202   tmp_tmp1 = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo));
26203   tmp_tmp2 = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi));
26204   tmp_tmp1 = ADDDI (tmp_tmp1, tmp_tmp2);
26205 if (GTDI (tmp_tmp1, MAKEDI (127, 0xffffffff))) {
26206 {
26207   {
26208     DI opval = MAKEDI (127, 0xffffffff);
26209     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26210     written |= (1 << 10);
26211     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26212   }
26213 frvbf_media_overflow (current_cpu, 8);
26214 }
26215 } else {
26216 if (LTDI (tmp_tmp1, MAKEDI (0xffffff80, 0))) {
26217 {
26218   {
26219     DI opval = MAKEDI (0xffffff80, 0);
26220     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26221     written |= (1 << 10);
26222     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26223   }
26224 frvbf_media_overflow (current_cpu, 8);
26225 }
26226 } else {
26227   {
26228     DI opval = tmp_tmp1;
26229     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26230     written |= (1 << 10);
26231     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26232   }
26233 }
26234 }
26235 }
26236 }
26237 }
26238
26239   abuf->written = written;
26240   return vpc;
26241 #undef FLD
26242 }
26243
26244 /* cmcpxiu: cmcpxiu$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
26245
26246 static SEM_PC
26247 SEM_FN_NAME (frvbf,cmcpxiu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26248 {
26249 #define FLD(f) abuf->fields.sfmt_cmmachs.f
26250   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26251   int UNUSED written = 0;
26252   IADDR UNUSED pc = abuf->addr;
26253   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26254
26255 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
26256 {
26257   UHI tmp_argihi;
26258   UHI tmp_argilo;
26259   UHI tmp_argjhi;
26260   UHI tmp_argjlo;
26261 {
26262   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26263   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26264   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26265   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26266 }
26267 {
26268   DI tmp_tmp1;
26269   DI tmp_tmp2;
26270   tmp_tmp1 = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjlo));
26271   tmp_tmp2 = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjhi));
26272   tmp_tmp1 = ADDDI (tmp_tmp1, tmp_tmp2);
26273 if (GTDI (tmp_tmp1, MAKEDI (255, 0xffffffff))) {
26274 {
26275   {
26276     DI opval = MAKEDI (255, 0xffffffff);
26277     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26278     written |= (1 << 10);
26279     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26280   }
26281 frvbf_media_overflow (current_cpu, 8);
26282 }
26283 } else {
26284 if (LTDI (tmp_tmp1, MAKEDI (0, 0))) {
26285 {
26286   {
26287     DI opval = MAKEDI (0, 0);
26288     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26289     written |= (1 << 10);
26290     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26291   }
26292 frvbf_media_overflow (current_cpu, 8);
26293 }
26294 } else {
26295   {
26296     DI opval = tmp_tmp1;
26297     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26298     written |= (1 << 10);
26299     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26300   }
26301 }
26302 }
26303 }
26304 }
26305 }
26306
26307   abuf->written = written;
26308   return vpc;
26309 #undef FLD
26310 }
26311
26312 /* mqcpxrs: mqcpxrs$pack $FRintieven,$FRintjeven,$ACC40Sk */
26313
26314 static SEM_PC
26315 SEM_FN_NAME (frvbf,mqcpxrs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26316 {
26317 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
26318   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26319   int UNUSED written = 0;
26320   IADDR UNUSED pc = abuf->addr;
26321   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26322
26323 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
26324 frvbf_media_acc_not_aligned (current_cpu);
26325 } else {
26326 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
26327 frvbf_media_register_not_aligned (current_cpu);
26328 } else {
26329 {
26330   HI tmp_argihi;
26331   HI tmp_argilo;
26332   HI tmp_argjhi;
26333   HI tmp_argjlo;
26334 {
26335   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26336   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26337   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26338   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26339 }
26340 {
26341   DI tmp_tmp1;
26342   DI tmp_tmp2;
26343   tmp_tmp1 = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
26344   tmp_tmp2 = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
26345   tmp_tmp1 = SUBDI (tmp_tmp1, tmp_tmp2);
26346 if (GTDI (tmp_tmp1, MAKEDI (127, 0xffffffff))) {
26347 {
26348   {
26349     DI opval = MAKEDI (127, 0xffffffff);
26350     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26351     written |= (1 << 13);
26352     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26353   }
26354 frvbf_media_overflow (current_cpu, 8);
26355 }
26356 } else {
26357 if (LTDI (tmp_tmp1, MAKEDI (0xffffff80, 0))) {
26358 {
26359   {
26360     DI opval = MAKEDI (0xffffff80, 0);
26361     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26362     written |= (1 << 13);
26363     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26364   }
26365 frvbf_media_overflow (current_cpu, 8);
26366 }
26367 } else {
26368   {
26369     DI opval = tmp_tmp1;
26370     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26371     written |= (1 << 13);
26372     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26373   }
26374 }
26375 }
26376 }
26377 {
26378   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26379   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26380   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26381   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26382 }
26383 {
26384   DI tmp_tmp1;
26385   DI tmp_tmp2;
26386   tmp_tmp1 = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
26387   tmp_tmp2 = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
26388   tmp_tmp1 = SUBDI (tmp_tmp1, tmp_tmp2);
26389 if (GTDI (tmp_tmp1, MAKEDI (127, 0xffffffff))) {
26390 {
26391   {
26392     DI opval = MAKEDI (127, 0xffffffff);
26393     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
26394     written |= (1 << 14);
26395     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26396   }
26397 frvbf_media_overflow (current_cpu, 4);
26398 }
26399 } else {
26400 if (LTDI (tmp_tmp1, MAKEDI (0xffffff80, 0))) {
26401 {
26402   {
26403     DI opval = MAKEDI (0xffffff80, 0);
26404     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
26405     written |= (1 << 14);
26406     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26407   }
26408 frvbf_media_overflow (current_cpu, 4);
26409 }
26410 } else {
26411   {
26412     DI opval = tmp_tmp1;
26413     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
26414     written |= (1 << 14);
26415     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26416   }
26417 }
26418 }
26419 }
26420 }
26421 }
26422 }
26423
26424   abuf->written = written;
26425   return vpc;
26426 #undef FLD
26427 }
26428
26429 /* mqcpxru: mqcpxru$pack $FRintieven,$FRintjeven,$ACC40Sk */
26430
26431 static SEM_PC
26432 SEM_FN_NAME (frvbf,mqcpxru) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26433 {
26434 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
26435   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26436   int UNUSED written = 0;
26437   IADDR UNUSED pc = abuf->addr;
26438   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26439
26440 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
26441 frvbf_media_acc_not_aligned (current_cpu);
26442 } else {
26443 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
26444 frvbf_media_register_not_aligned (current_cpu);
26445 } else {
26446 {
26447   UHI tmp_argihi;
26448   UHI tmp_argilo;
26449   UHI tmp_argjhi;
26450   UHI tmp_argjlo;
26451 {
26452   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26453   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26454   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26455   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26456 }
26457 {
26458   DI tmp_tmp1;
26459   DI tmp_tmp2;
26460   tmp_tmp1 = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
26461   tmp_tmp2 = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
26462   tmp_tmp1 = SUBDI (tmp_tmp1, tmp_tmp2);
26463 if (GTDI (tmp_tmp1, MAKEDI (255, 0xffffffff))) {
26464 {
26465   {
26466     DI opval = MAKEDI (255, 0xffffffff);
26467     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26468     written |= (1 << 13);
26469     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26470   }
26471 frvbf_media_overflow (current_cpu, 8);
26472 }
26473 } else {
26474 if (LTDI (tmp_tmp1, MAKEDI (0, 0))) {
26475 {
26476   {
26477     DI opval = MAKEDI (0, 0);
26478     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26479     written |= (1 << 13);
26480     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26481   }
26482 frvbf_media_overflow (current_cpu, 8);
26483 }
26484 } else {
26485   {
26486     DI opval = tmp_tmp1;
26487     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26488     written |= (1 << 13);
26489     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26490   }
26491 }
26492 }
26493 }
26494 {
26495   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26496   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26497   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26498   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26499 }
26500 {
26501   DI tmp_tmp1;
26502   DI tmp_tmp2;
26503   tmp_tmp1 = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
26504   tmp_tmp2 = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
26505   tmp_tmp1 = SUBDI (tmp_tmp1, tmp_tmp2);
26506 if (GTDI (tmp_tmp1, MAKEDI (255, 0xffffffff))) {
26507 {
26508   {
26509     DI opval = MAKEDI (255, 0xffffffff);
26510     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
26511     written |= (1 << 14);
26512     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26513   }
26514 frvbf_media_overflow (current_cpu, 4);
26515 }
26516 } else {
26517 if (LTDI (tmp_tmp1, MAKEDI (0, 0))) {
26518 {
26519   {
26520     DI opval = MAKEDI (0, 0);
26521     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
26522     written |= (1 << 14);
26523     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26524   }
26525 frvbf_media_overflow (current_cpu, 4);
26526 }
26527 } else {
26528   {
26529     DI opval = tmp_tmp1;
26530     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
26531     written |= (1 << 14);
26532     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26533   }
26534 }
26535 }
26536 }
26537 }
26538 }
26539 }
26540
26541   abuf->written = written;
26542   return vpc;
26543 #undef FLD
26544 }
26545
26546 /* mqcpxis: mqcpxis$pack $FRintieven,$FRintjeven,$ACC40Sk */
26547
26548 static SEM_PC
26549 SEM_FN_NAME (frvbf,mqcpxis) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26550 {
26551 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
26552   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26553   int UNUSED written = 0;
26554   IADDR UNUSED pc = abuf->addr;
26555   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26556
26557 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
26558 frvbf_media_acc_not_aligned (current_cpu);
26559 } else {
26560 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
26561 frvbf_media_register_not_aligned (current_cpu);
26562 } else {
26563 {
26564   HI tmp_argihi;
26565   HI tmp_argilo;
26566   HI tmp_argjhi;
26567   HI tmp_argjlo;
26568 {
26569   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26570   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26571   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26572   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26573 }
26574 {
26575   DI tmp_tmp1;
26576   DI tmp_tmp2;
26577   tmp_tmp1 = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo));
26578   tmp_tmp2 = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi));
26579   tmp_tmp1 = ADDDI (tmp_tmp1, tmp_tmp2);
26580 if (GTDI (tmp_tmp1, MAKEDI (127, 0xffffffff))) {
26581 {
26582   {
26583     DI opval = MAKEDI (127, 0xffffffff);
26584     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26585     written |= (1 << 13);
26586     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26587   }
26588 frvbf_media_overflow (current_cpu, 8);
26589 }
26590 } else {
26591 if (LTDI (tmp_tmp1, MAKEDI (0xffffff80, 0))) {
26592 {
26593   {
26594     DI opval = MAKEDI (0xffffff80, 0);
26595     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26596     written |= (1 << 13);
26597     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26598   }
26599 frvbf_media_overflow (current_cpu, 8);
26600 }
26601 } else {
26602   {
26603     DI opval = tmp_tmp1;
26604     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26605     written |= (1 << 13);
26606     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26607   }
26608 }
26609 }
26610 }
26611 {
26612   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26613   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26614   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26615   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26616 }
26617 {
26618   DI tmp_tmp1;
26619   DI tmp_tmp2;
26620   tmp_tmp1 = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo));
26621   tmp_tmp2 = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi));
26622   tmp_tmp1 = ADDDI (tmp_tmp1, tmp_tmp2);
26623 if (GTDI (tmp_tmp1, MAKEDI (127, 0xffffffff))) {
26624 {
26625   {
26626     DI opval = MAKEDI (127, 0xffffffff);
26627     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
26628     written |= (1 << 14);
26629     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26630   }
26631 frvbf_media_overflow (current_cpu, 4);
26632 }
26633 } else {
26634 if (LTDI (tmp_tmp1, MAKEDI (0xffffff80, 0))) {
26635 {
26636   {
26637     DI opval = MAKEDI (0xffffff80, 0);
26638     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
26639     written |= (1 << 14);
26640     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26641   }
26642 frvbf_media_overflow (current_cpu, 4);
26643 }
26644 } else {
26645   {
26646     DI opval = tmp_tmp1;
26647     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
26648     written |= (1 << 14);
26649     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26650   }
26651 }
26652 }
26653 }
26654 }
26655 }
26656 }
26657
26658   abuf->written = written;
26659   return vpc;
26660 #undef FLD
26661 }
26662
26663 /* mqcpxiu: mqcpxiu$pack $FRintieven,$FRintjeven,$ACC40Sk */
26664
26665 static SEM_PC
26666 SEM_FN_NAME (frvbf,mqcpxiu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26667 {
26668 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
26669   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26670   int UNUSED written = 0;
26671   IADDR UNUSED pc = abuf->addr;
26672   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26673
26674 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
26675 frvbf_media_acc_not_aligned (current_cpu);
26676 } else {
26677 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
26678 frvbf_media_register_not_aligned (current_cpu);
26679 } else {
26680 {
26681   UHI tmp_argihi;
26682   UHI tmp_argilo;
26683   UHI tmp_argjhi;
26684   UHI tmp_argjlo;
26685 {
26686   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26687   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26688   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26689   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26690 }
26691 {
26692   DI tmp_tmp1;
26693   DI tmp_tmp2;
26694   tmp_tmp1 = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjlo));
26695   tmp_tmp2 = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjhi));
26696   tmp_tmp1 = ADDDI (tmp_tmp1, tmp_tmp2);
26697 if (GTDI (tmp_tmp1, MAKEDI (255, 0xffffffff))) {
26698 {
26699   {
26700     DI opval = MAKEDI (255, 0xffffffff);
26701     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26702     written |= (1 << 13);
26703     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26704   }
26705 frvbf_media_overflow (current_cpu, 8);
26706 }
26707 } else {
26708 if (LTDI (tmp_tmp1, MAKEDI (0, 0))) {
26709 {
26710   {
26711     DI opval = MAKEDI (0, 0);
26712     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26713     written |= (1 << 13);
26714     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26715   }
26716 frvbf_media_overflow (current_cpu, 8);
26717 }
26718 } else {
26719   {
26720     DI opval = tmp_tmp1;
26721     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26722     written |= (1 << 13);
26723     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26724   }
26725 }
26726 }
26727 }
26728 {
26729   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26730   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26731   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26732   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26733 }
26734 {
26735   DI tmp_tmp1;
26736   DI tmp_tmp2;
26737   tmp_tmp1 = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjlo));
26738   tmp_tmp2 = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjhi));
26739   tmp_tmp1 = ADDDI (tmp_tmp1, tmp_tmp2);
26740 if (GTDI (tmp_tmp1, MAKEDI (255, 0xffffffff))) {
26741 {
26742   {
26743     DI opval = MAKEDI (255, 0xffffffff);
26744     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
26745     written |= (1 << 14);
26746     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26747   }
26748 frvbf_media_overflow (current_cpu, 4);
26749 }
26750 } else {
26751 if (LTDI (tmp_tmp1, MAKEDI (0, 0))) {
26752 {
26753   {
26754     DI opval = MAKEDI (0, 0);
26755     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
26756     written |= (1 << 14);
26757     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26758   }
26759 frvbf_media_overflow (current_cpu, 4);
26760 }
26761 } else {
26762   {
26763     DI opval = tmp_tmp1;
26764     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
26765     written |= (1 << 14);
26766     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26767   }
26768 }
26769 }
26770 }
26771 }
26772 }
26773 }
26774
26775   abuf->written = written;
26776   return vpc;
26777 #undef FLD
26778 }
26779
26780 /* mexpdhw: mexpdhw$pack $FRinti,$u6,$FRintk */
26781
26782 static SEM_PC
26783 SEM_FN_NAME (frvbf,mexpdhw) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26784 {
26785 #define FLD(f) abuf->fields.sfmt_cmexpdhw.f
26786   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26787   int UNUSED written = 0;
26788   IADDR UNUSED pc = abuf->addr;
26789   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26790
26791 {
26792   UHI tmp_tmp;
26793 if (ANDSI (FLD (f_u6), 1)) {
26794   tmp_tmp = GET_H_FR_LO (((FLD (f_FRi)) + (0)));
26795 } else {
26796   tmp_tmp = GET_H_FR_HI (((FLD (f_FRi)) + (0)));
26797 }
26798   {
26799     UHI opval = tmp_tmp;
26800     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
26801     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
26802   }
26803   {
26804     UHI opval = tmp_tmp;
26805     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
26806     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
26807   }
26808 }
26809
26810   return vpc;
26811 #undef FLD
26812 }
26813
26814 /* cmexpdhw: cmexpdhw$pack $FRinti,$u6,$FRintk,$CCi,$cond */
26815
26816 static SEM_PC
26817 SEM_FN_NAME (frvbf,cmexpdhw) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26818 {
26819 #define FLD(f) abuf->fields.sfmt_cmexpdhw.f
26820   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26821   int UNUSED written = 0;
26822   IADDR UNUSED pc = abuf->addr;
26823   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26824
26825 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
26826 {
26827   UHI tmp_tmp;
26828 if (ANDSI (FLD (f_u6), 1)) {
26829   tmp_tmp = GET_H_FR_LO (((FLD (f_FRi)) + (0)));
26830 } else {
26831   tmp_tmp = GET_H_FR_HI (((FLD (f_FRi)) + (0)));
26832 }
26833   {
26834     UHI opval = tmp_tmp;
26835     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
26836     written |= (1 << 7);
26837     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
26838   }
26839   {
26840     UHI opval = tmp_tmp;
26841     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
26842     written |= (1 << 8);
26843     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
26844   }
26845 }
26846 }
26847
26848   abuf->written = written;
26849   return vpc;
26850 #undef FLD
26851 }
26852
26853 /* mexpdhd: mexpdhd$pack $FRinti,$u6,$FRintkeven */
26854
26855 static SEM_PC
26856 SEM_FN_NAME (frvbf,mexpdhd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26857 {
26858 #define FLD(f) abuf->fields.sfmt_cmexpdhd.f
26859   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26860   int UNUSED written = 0;
26861   IADDR UNUSED pc = abuf->addr;
26862   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26863
26864 if (ANDSI (FLD (f_FRk), SUBSI (2, 1))) {
26865 frvbf_media_register_not_aligned (current_cpu);
26866 } else {
26867 {
26868   UHI tmp_tmp;
26869   {
26870     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
26871     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
26872     written |= (1 << 6);
26873     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
26874   }
26875 if (ANDSI (FLD (f_u6), 1)) {
26876   tmp_tmp = GET_H_FR_LO (((FLD (f_FRi)) + (0)));
26877 } else {
26878   tmp_tmp = GET_H_FR_HI (((FLD (f_FRi)) + (0)));
26879 }
26880   {
26881     UHI opval = tmp_tmp;
26882     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
26883     written |= (1 << 7);
26884     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
26885   }
26886   {
26887     UHI opval = tmp_tmp;
26888     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
26889     written |= (1 << 9);
26890     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
26891   }
26892   {
26893     UHI opval = tmp_tmp;
26894     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
26895     written |= (1 << 8);
26896     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
26897   }
26898   {
26899     UHI opval = tmp_tmp;
26900     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
26901     written |= (1 << 10);
26902     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
26903   }
26904 }
26905 }
26906
26907   abuf->written = written;
26908   return vpc;
26909 #undef FLD
26910 }
26911
26912 /* cmexpdhd: cmexpdhd$pack $FRinti,$u6,$FRintkeven,$CCi,$cond */
26913
26914 static SEM_PC
26915 SEM_FN_NAME (frvbf,cmexpdhd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26916 {
26917 #define FLD(f) abuf->fields.sfmt_cmexpdhd.f
26918   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26919   int UNUSED written = 0;
26920   IADDR UNUSED pc = abuf->addr;
26921   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26922
26923 if (ANDSI (FLD (f_FRk), SUBSI (2, 1))) {
26924 frvbf_media_register_not_aligned (current_cpu);
26925 } else {
26926 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
26927 {
26928   UHI tmp_tmp;
26929   {
26930     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
26931     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
26932     written |= (1 << 8);
26933     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
26934   }
26935 if (ANDSI (FLD (f_u6), 1)) {
26936   tmp_tmp = GET_H_FR_LO (((FLD (f_FRi)) + (0)));
26937 } else {
26938   tmp_tmp = GET_H_FR_HI (((FLD (f_FRi)) + (0)));
26939 }
26940   {
26941     UHI opval = tmp_tmp;
26942     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
26943     written |= (1 << 9);
26944     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
26945   }
26946   {
26947     UHI opval = tmp_tmp;
26948     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
26949     written |= (1 << 11);
26950     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
26951   }
26952   {
26953     UHI opval = tmp_tmp;
26954     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
26955     written |= (1 << 10);
26956     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
26957   }
26958   {
26959     UHI opval = tmp_tmp;
26960     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
26961     written |= (1 << 12);
26962     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
26963   }
26964 }
26965 }
26966 }
26967
26968   abuf->written = written;
26969   return vpc;
26970 #undef FLD
26971 }
26972
26973 /* mpackh: mpackh$pack $FRinti,$FRintj,$FRintk */
26974
26975 static SEM_PC
26976 SEM_FN_NAME (frvbf,mpackh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26977 {
26978 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
26979   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26980   int UNUSED written = 0;
26981   IADDR UNUSED pc = abuf->addr;
26982   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26983
26984 {
26985   {
26986     UHI opval = GET_H_FR_LO (((FLD (f_FRi)) + (0)));
26987     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
26988     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
26989   }
26990   {
26991     UHI opval = GET_H_FR_LO (((FLD (f_FRj)) + (0)));
26992     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
26993     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
26994   }
26995 }
26996
26997   return vpc;
26998 #undef FLD
26999 }
27000
27001 /* mdpackh: mdpackh$pack $FRintieven,$FRintjeven,$FRintkeven */
27002
27003 static SEM_PC
27004 SEM_FN_NAME (frvbf,mdpackh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27005 {
27006 #define FLD(f) abuf->fields.sfmt_mdpackh.f
27007   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27008   int UNUSED written = 0;
27009   IADDR UNUSED pc = abuf->addr;
27010   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27011
27012 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
27013 frvbf_media_register_not_aligned (current_cpu);
27014 } else {
27015 {
27016   {
27017     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRi)));
27018     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRi), opval);
27019     written |= (1 << 10);
27020     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27021   }
27022   {
27023     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRj)));
27024     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRj), opval);
27025     written |= (1 << 11);
27026     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27027   }
27028   {
27029     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27030     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27031     written |= (1 << 12);
27032     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27033   }
27034 {
27035   {
27036     UHI opval = GET_H_FR_LO (((FLD (f_FRi)) + (0)));
27037     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
27038     written |= (1 << 13);
27039     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27040   }
27041   {
27042     UHI opval = GET_H_FR_LO (((FLD (f_FRj)) + (0)));
27043     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
27044     written |= (1 << 15);
27045     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27046   }
27047 }
27048 {
27049   {
27050     UHI opval = GET_H_FR_LO (((FLD (f_FRi)) + (1)));
27051     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
27052     written |= (1 << 14);
27053     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27054   }
27055   {
27056     UHI opval = GET_H_FR_LO (((FLD (f_FRj)) + (1)));
27057     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
27058     written |= (1 << 16);
27059     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27060   }
27061 }
27062 }
27063 }
27064
27065   abuf->written = written;
27066   return vpc;
27067 #undef FLD
27068 }
27069
27070 /* munpackh: munpackh$pack $FRinti,$FRintkeven */
27071
27072 static SEM_PC
27073 SEM_FN_NAME (frvbf,munpackh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27074 {
27075 #define FLD(f) abuf->fields.sfmt_munpackh.f
27076   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27077   int UNUSED written = 0;
27078   IADDR UNUSED pc = abuf->addr;
27079   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27080
27081 if (ANDSI (FLD (f_FRk), SUBSI (2, 1))) {
27082 frvbf_media_register_not_aligned (current_cpu);
27083 } else {
27084 {
27085   {
27086     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRi)));
27087     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRi), opval);
27088     written |= (1 << 6);
27089     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27090   }
27091   {
27092     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27093     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27094     written |= (1 << 7);
27095     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27096   }
27097 {
27098   {
27099     UHI opval = GET_H_FR_HI (((FLD (f_FRi)) + (0)));
27100     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
27101     written |= (1 << 8);
27102     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27103   }
27104   {
27105     UHI opval = GET_H_FR_HI (((FLD (f_FRi)) + (0)));
27106     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
27107     written |= (1 << 10);
27108     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27109   }
27110   {
27111     UHI opval = GET_H_FR_LO (((FLD (f_FRi)) + (0)));
27112     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (ADDSI (0, 1))), opval);
27113     written |= (1 << 9);
27114     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27115   }
27116   {
27117     UHI opval = GET_H_FR_LO (((FLD (f_FRi)) + (0)));
27118     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (ADDSI (0, 1))), opval);
27119     written |= (1 << 11);
27120     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27121   }
27122 }
27123 }
27124 }
27125
27126   abuf->written = written;
27127   return vpc;
27128 #undef FLD
27129 }
27130
27131 /* mdunpackh: mdunpackh$pack $FRintieven,$FRintk */
27132
27133 static SEM_PC
27134 SEM_FN_NAME (frvbf,mdunpackh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27135 {
27136 #define FLD(f) abuf->fields.sfmt_mdunpackh.f
27137   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27138   int UNUSED written = 0;
27139   IADDR UNUSED pc = abuf->addr;
27140   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27141
27142 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (4, 1)))) {
27143 frvbf_media_register_not_aligned (current_cpu);
27144 } else {
27145 {
27146   {
27147     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRi)));
27148     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRi), opval);
27149     written |= (1 << 8);
27150     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27151   }
27152   {
27153     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27154     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27155     written |= (1 << 9);
27156     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27157   }
27158 {
27159   {
27160     UHI opval = GET_H_FR_HI (((FLD (f_FRi)) + (0)));
27161     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
27162     written |= (1 << 10);
27163     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27164   }
27165   {
27166     UHI opval = GET_H_FR_HI (((FLD (f_FRi)) + (0)));
27167     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
27168     written |= (1 << 14);
27169     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27170   }
27171   {
27172     UHI opval = GET_H_FR_LO (((FLD (f_FRi)) + (0)));
27173     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (ADDSI (0, 1))), opval);
27174     written |= (1 << 12);
27175     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27176   }
27177   {
27178     UHI opval = GET_H_FR_LO (((FLD (f_FRi)) + (0)));
27179     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (ADDSI (0, 1))), opval);
27180     written |= (1 << 16);
27181     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27182   }
27183 }
27184 {
27185   {
27186     UHI opval = GET_H_FR_HI (((FLD (f_FRi)) + (1)));
27187     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (2)), opval);
27188     written |= (1 << 11);
27189     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27190   }
27191   {
27192     UHI opval = GET_H_FR_HI (((FLD (f_FRi)) + (1)));
27193     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (2)), opval);
27194     written |= (1 << 15);
27195     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27196   }
27197   {
27198     UHI opval = GET_H_FR_LO (((FLD (f_FRi)) + (1)));
27199     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (ADDSI (2, 1))), opval);
27200     written |= (1 << 13);
27201     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27202   }
27203   {
27204     UHI opval = GET_H_FR_LO (((FLD (f_FRi)) + (1)));
27205     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (ADDSI (2, 1))), opval);
27206     written |= (1 << 17);
27207     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27208   }
27209 }
27210 }
27211 }
27212
27213   abuf->written = written;
27214   return vpc;
27215 #undef FLD
27216 }
27217
27218 /* mbtoh: mbtoh$pack $FRintj,$FRintkeven */
27219
27220 static SEM_PC
27221 SEM_FN_NAME (frvbf,mbtoh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27222 {
27223 #define FLD(f) abuf->fields.sfmt_cmbtoh.f
27224   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27225   int UNUSED written = 0;
27226   IADDR UNUSED pc = abuf->addr;
27227   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27228
27229 {
27230   {
27231     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRj)));
27232     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRj), opval);
27233     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27234   }
27235   {
27236     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27237     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27238     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27239   }
27240 if (ANDSI (FLD (f_FRk), SUBSI (2, 1))) {
27241 frvbf_media_register_not_aligned (current_cpu);
27242 } else {
27243 {
27244   {
27245     UHI opval = GET_H_FR_3 (((FLD (f_FRj)) + (0)));
27246     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
27247     written |= (1 << 10);
27248     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27249   }
27250   {
27251     UHI opval = GET_H_FR_2 (((FLD (f_FRj)) + (0)));
27252     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
27253     written |= (1 << 12);
27254     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27255   }
27256   {
27257     UHI opval = GET_H_FR_1 (((FLD (f_FRj)) + (0)));
27258     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
27259     written |= (1 << 11);
27260     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27261   }
27262   {
27263     UHI opval = GET_H_FR_0 (((FLD (f_FRj)) + (0)));
27264     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
27265     written |= (1 << 13);
27266     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27267   }
27268 }
27269 }
27270 }
27271
27272   abuf->written = written;
27273   return vpc;
27274 #undef FLD
27275 }
27276
27277 /* cmbtoh: cmbtoh$pack $FRintj,$FRintkeven,$CCi,$cond */
27278
27279 static SEM_PC
27280 SEM_FN_NAME (frvbf,cmbtoh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27281 {
27282 #define FLD(f) abuf->fields.sfmt_cmbtoh.f
27283   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27284   int UNUSED written = 0;
27285   IADDR UNUSED pc = abuf->addr;
27286   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27287
27288 {
27289   {
27290     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRj)));
27291     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRj), opval);
27292     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27293   }
27294   {
27295     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27296     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27297     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27298   }
27299 if (ANDSI (FLD (f_FRk), SUBSI (2, 1))) {
27300 frvbf_media_register_not_aligned (current_cpu);
27301 } else {
27302 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
27303 {
27304   {
27305     UHI opval = GET_H_FR_3 (((FLD (f_FRj)) + (0)));
27306     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
27307     written |= (1 << 12);
27308     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27309   }
27310   {
27311     UHI opval = GET_H_FR_2 (((FLD (f_FRj)) + (0)));
27312     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
27313     written |= (1 << 14);
27314     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27315   }
27316   {
27317     UHI opval = GET_H_FR_1 (((FLD (f_FRj)) + (0)));
27318     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
27319     written |= (1 << 13);
27320     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27321   }
27322   {
27323     UHI opval = GET_H_FR_0 (((FLD (f_FRj)) + (0)));
27324     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
27325     written |= (1 << 15);
27326     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27327   }
27328 }
27329 }
27330 }
27331 }
27332
27333   abuf->written = written;
27334   return vpc;
27335 #undef FLD
27336 }
27337
27338 /* mhtob: mhtob$pack $FRintjeven,$FRintk */
27339
27340 static SEM_PC
27341 SEM_FN_NAME (frvbf,mhtob) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27342 {
27343 #define FLD(f) abuf->fields.sfmt_cmhtob.f
27344   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27345   int UNUSED written = 0;
27346   IADDR UNUSED pc = abuf->addr;
27347   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27348
27349 {
27350   {
27351     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRj)));
27352     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRj), opval);
27353     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27354   }
27355   {
27356     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27357     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27358     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27359   }
27360 if (ANDSI (FLD (f_FRj), SUBSI (2, 1))) {
27361 frvbf_media_register_not_aligned (current_cpu);
27362 } else {
27363 {
27364   {
27365     UHI opval = GET_H_FR_HI (((FLD (f_FRj)) + (0)));
27366     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_3_set, ((FLD (f_FRk)) + (0)), opval);
27367     written |= (1 << 13);
27368     TRACE_RESULT (current_cpu, abuf, "fr_3", 'x', opval);
27369   }
27370   {
27371     UHI opval = GET_H_FR_LO (((FLD (f_FRj)) + (0)));
27372     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_2_set, ((FLD (f_FRk)) + (0)), opval);
27373     written |= (1 << 12);
27374     TRACE_RESULT (current_cpu, abuf, "fr_2", 'x', opval);
27375   }
27376   {
27377     UHI opval = GET_H_FR_HI (((FLD (f_FRj)) + (1)));
27378     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_1_set, ((FLD (f_FRk)) + (0)), opval);
27379     written |= (1 << 11);
27380     TRACE_RESULT (current_cpu, abuf, "fr_1", 'x', opval);
27381   }
27382   {
27383     UHI opval = GET_H_FR_LO (((FLD (f_FRj)) + (1)));
27384     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_0_set, ((FLD (f_FRk)) + (0)), opval);
27385     written |= (1 << 10);
27386     TRACE_RESULT (current_cpu, abuf, "fr_0", 'x', opval);
27387   }
27388 }
27389 }
27390 }
27391
27392   abuf->written = written;
27393   return vpc;
27394 #undef FLD
27395 }
27396
27397 /* cmhtob: cmhtob$pack $FRintjeven,$FRintk,$CCi,$cond */
27398
27399 static SEM_PC
27400 SEM_FN_NAME (frvbf,cmhtob) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27401 {
27402 #define FLD(f) abuf->fields.sfmt_cmhtob.f
27403   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27404   int UNUSED written = 0;
27405   IADDR UNUSED pc = abuf->addr;
27406   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27407
27408 {
27409   {
27410     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRj)));
27411     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRj), opval);
27412     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27413   }
27414   {
27415     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27416     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27417     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27418   }
27419 if (ANDSI (FLD (f_FRj), SUBSI (2, 1))) {
27420 frvbf_media_register_not_aligned (current_cpu);
27421 } else {
27422 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
27423 {
27424   {
27425     UHI opval = GET_H_FR_HI (((FLD (f_FRj)) + (0)));
27426     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_3_set, ((FLD (f_FRk)) + (0)), opval);
27427     written |= (1 << 15);
27428     TRACE_RESULT (current_cpu, abuf, "fr_3", 'x', opval);
27429   }
27430   {
27431     UHI opval = GET_H_FR_LO (((FLD (f_FRj)) + (0)));
27432     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_2_set, ((FLD (f_FRk)) + (0)), opval);
27433     written |= (1 << 14);
27434     TRACE_RESULT (current_cpu, abuf, "fr_2", 'x', opval);
27435   }
27436   {
27437     UHI opval = GET_H_FR_HI (((FLD (f_FRj)) + (1)));
27438     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_1_set, ((FLD (f_FRk)) + (0)), opval);
27439     written |= (1 << 13);
27440     TRACE_RESULT (current_cpu, abuf, "fr_1", 'x', opval);
27441   }
27442   {
27443     UHI opval = GET_H_FR_LO (((FLD (f_FRj)) + (1)));
27444     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_0_set, ((FLD (f_FRk)) + (0)), opval);
27445     written |= (1 << 12);
27446     TRACE_RESULT (current_cpu, abuf, "fr_0", 'x', opval);
27447   }
27448 }
27449 }
27450 }
27451 }
27452
27453   abuf->written = written;
27454   return vpc;
27455 #undef FLD
27456 }
27457
27458 /* mbtohe: mbtohe$pack $FRintj,$FRintk */
27459
27460 static SEM_PC
27461 SEM_FN_NAME (frvbf,mbtohe) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27462 {
27463 #define FLD(f) abuf->fields.sfmt_cmbtohe.f
27464   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27465   int UNUSED written = 0;
27466   IADDR UNUSED pc = abuf->addr;
27467   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27468
27469 {
27470   {
27471     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRj)));
27472     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRj), opval);
27473     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27474   }
27475   {
27476     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27477     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27478     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27479   }
27480 if (ANDSI (FLD (f_FRk), SUBSI (4, 1))) {
27481 frvbf_media_register_not_aligned (current_cpu);
27482 } else {
27483 {
27484   {
27485     UHI opval = GET_H_FR_3 (((FLD (f_FRj)) + (0)));
27486     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
27487     written |= (1 << 10);
27488     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27489   }
27490   {
27491     UHI opval = GET_H_FR_3 (((FLD (f_FRj)) + (0)));
27492     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
27493     written |= (1 << 14);
27494     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27495   }
27496   {
27497     UHI opval = GET_H_FR_2 (((FLD (f_FRj)) + (0)));
27498     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
27499     written |= (1 << 11);
27500     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27501   }
27502   {
27503     UHI opval = GET_H_FR_2 (((FLD (f_FRj)) + (0)));
27504     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
27505     written |= (1 << 15);
27506     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27507   }
27508   {
27509     UHI opval = GET_H_FR_1 (((FLD (f_FRj)) + (0)));
27510     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (2)), opval);
27511     written |= (1 << 12);
27512     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27513   }
27514   {
27515     UHI opval = GET_H_FR_1 (((FLD (f_FRj)) + (0)));
27516     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (2)), opval);
27517     written |= (1 << 16);
27518     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27519   }
27520   {
27521     UHI opval = GET_H_FR_0 (((FLD (f_FRj)) + (0)));
27522     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (3)), opval);
27523     written |= (1 << 13);
27524     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27525   }
27526   {
27527     UHI opval = GET_H_FR_0 (((FLD (f_FRj)) + (0)));
27528     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (3)), opval);
27529     written |= (1 << 17);
27530     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27531   }
27532 }
27533 }
27534 }
27535
27536   abuf->written = written;
27537   return vpc;
27538 #undef FLD
27539 }
27540
27541 /* cmbtohe: cmbtohe$pack $FRintj,$FRintk,$CCi,$cond */
27542
27543 static SEM_PC
27544 SEM_FN_NAME (frvbf,cmbtohe) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27545 {
27546 #define FLD(f) abuf->fields.sfmt_cmbtohe.f
27547   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27548   int UNUSED written = 0;
27549   IADDR UNUSED pc = abuf->addr;
27550   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27551
27552 {
27553   {
27554     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRj)));
27555     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRj), opval);
27556     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27557   }
27558   {
27559     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27560     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27561     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27562   }
27563 if (ANDSI (FLD (f_FRk), SUBSI (4, 1))) {
27564 frvbf_media_register_not_aligned (current_cpu);
27565 } else {
27566 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
27567 {
27568   {
27569     UHI opval = GET_H_FR_3 (((FLD (f_FRj)) + (0)));
27570     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
27571     written |= (1 << 12);
27572     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27573   }
27574   {
27575     UHI opval = GET_H_FR_3 (((FLD (f_FRj)) + (0)));
27576     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
27577     written |= (1 << 16);
27578     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27579   }
27580   {
27581     UHI opval = GET_H_FR_2 (((FLD (f_FRj)) + (0)));
27582     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
27583     written |= (1 << 13);
27584     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27585   }
27586   {
27587     UHI opval = GET_H_FR_2 (((FLD (f_FRj)) + (0)));
27588     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
27589     written |= (1 << 17);
27590     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27591   }
27592   {
27593     UHI opval = GET_H_FR_1 (((FLD (f_FRj)) + (0)));
27594     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (2)), opval);
27595     written |= (1 << 14);
27596     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27597   }
27598   {
27599     UHI opval = GET_H_FR_1 (((FLD (f_FRj)) + (0)));
27600     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (2)), opval);
27601     written |= (1 << 18);
27602     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27603   }
27604   {
27605     UHI opval = GET_H_FR_0 (((FLD (f_FRj)) + (0)));
27606     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (3)), opval);
27607     written |= (1 << 15);
27608     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27609   }
27610   {
27611     UHI opval = GET_H_FR_0 (((FLD (f_FRj)) + (0)));
27612     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (3)), opval);
27613     written |= (1 << 19);
27614     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27615   }
27616 }
27617 }
27618 }
27619 }
27620
27621   abuf->written = written;
27622   return vpc;
27623 #undef FLD
27624 }
27625
27626 /* mnop: mnop$pack */
27627
27628 static SEM_PC
27629 SEM_FN_NAME (frvbf,mnop) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27630 {
27631 #define FLD(f) abuf->fields.fmt_empty.f
27632   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27633   int UNUSED written = 0;
27634   IADDR UNUSED pc = abuf->addr;
27635   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27636
27637 ((void) 0); /*nop*/
27638
27639   return vpc;
27640 #undef FLD
27641 }
27642
27643 /* mclracc-0: mclracc$pack $ACC40Sk,$A0 */
27644
27645 static SEM_PC
27646 SEM_FN_NAME (frvbf,mclracc_0) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27647 {
27648 #define FLD(f) abuf->fields.sfmt_mdasaccs.f
27649   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27650   int UNUSED written = 0;
27651   IADDR UNUSED pc = abuf->addr;
27652   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27653
27654 frvbf_clear_accumulators (current_cpu, FLD (f_ACC40Sk), 0);
27655
27656   return vpc;
27657 #undef FLD
27658 }
27659
27660 /* mclracc-1: mclracc$pack $ACC40Sk,$A1 */
27661
27662 static SEM_PC
27663 SEM_FN_NAME (frvbf,mclracc_1) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27664 {
27665 #define FLD(f) abuf->fields.sfmt_mdasaccs.f
27666   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27667   int UNUSED written = 0;
27668   IADDR UNUSED pc = abuf->addr;
27669   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27670
27671 frvbf_clear_accumulators (current_cpu, FLD (f_ACC40Sk), 1);
27672
27673   return vpc;
27674 #undef FLD
27675 }
27676
27677 /* mrdacc: mrdacc$pack $ACC40Si,$FRintk */
27678
27679 static SEM_PC
27680 SEM_FN_NAME (frvbf,mrdacc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27681 {
27682 #define FLD(f) abuf->fields.sfmt_mcuti.f
27683   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27684   int UNUSED written = 0;
27685   IADDR UNUSED pc = abuf->addr;
27686   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27687
27688   {
27689     SI opval = GET_H_ACC40S (FLD (f_ACC40Si));
27690     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27691     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27692   }
27693
27694   return vpc;
27695 #undef FLD
27696 }
27697
27698 /* mrdaccg: mrdaccg$pack $ACCGi,$FRintk */
27699
27700 static SEM_PC
27701 SEM_FN_NAME (frvbf,mrdaccg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27702 {
27703 #define FLD(f) abuf->fields.sfmt_mrdaccg.f
27704   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27705   int UNUSED written = 0;
27706   IADDR UNUSED pc = abuf->addr;
27707   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27708
27709   {
27710     SI opval = GET_H_ACCG (FLD (f_ACCGi));
27711     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27712     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27713   }
27714
27715   return vpc;
27716 #undef FLD
27717 }
27718
27719 /* mwtacc: mwtacc$pack $FRinti,$ACC40Sk */
27720
27721 static SEM_PC
27722 SEM_FN_NAME (frvbf,mwtacc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27723 {
27724 #define FLD(f) abuf->fields.sfmt_cmmachs.f
27725   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27726   int UNUSED written = 0;
27727   IADDR UNUSED pc = abuf->addr;
27728   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27729
27730   {
27731     DI opval = ORDI (ANDDI (GET_H_ACC40S (FLD (f_ACC40Sk)), MAKEDI (0xffffffff, 0)), GET_H_FR_INT (FLD (f_FRi)));
27732     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
27733     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
27734   }
27735
27736   return vpc;
27737 #undef FLD
27738 }
27739
27740 /* mwtaccg: mwtaccg$pack $FRinti,$ACCGk */
27741
27742 static SEM_PC
27743 SEM_FN_NAME (frvbf,mwtaccg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27744 {
27745 #define FLD(f) abuf->fields.sfmt_mwtaccg.f
27746   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27747   int UNUSED written = 0;
27748   IADDR UNUSED pc = abuf->addr;
27749   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27750
27751 {
27752 frv_ref_SI (GET_H_ACCG (FLD (f_ACCGk)));
27753   {
27754     USI opval = GET_H_FR_INT (FLD (f_FRi));
27755     sim_queue_fn_si_write (current_cpu, frvbf_h_accg_set, FLD (f_ACCGk), opval);
27756     TRACE_RESULT (current_cpu, abuf, "accg", 'x', opval);
27757   }
27758 }
27759
27760   return vpc;
27761 #undef FLD
27762 }
27763
27764 /* mcop1: mcop1$pack $FRi,$FRj,$FRk */
27765
27766 static SEM_PC
27767 SEM_FN_NAME (frvbf,mcop1) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27768 {
27769 #define FLD(f) abuf->fields.fmt_empty.f
27770   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27771   int UNUSED written = 0;
27772   IADDR UNUSED pc = abuf->addr;
27773   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27774
27775 frvbf_media_cop (current_cpu, 1);
27776
27777   return vpc;
27778 #undef FLD
27779 }
27780
27781 /* mcop2: mcop2$pack $FRi,$FRj,$FRk */
27782
27783 static SEM_PC
27784 SEM_FN_NAME (frvbf,mcop2) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27785 {
27786 #define FLD(f) abuf->fields.fmt_empty.f
27787   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27788   int UNUSED written = 0;
27789   IADDR UNUSED pc = abuf->addr;
27790   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27791
27792 frvbf_media_cop (current_cpu, 2);
27793
27794   return vpc;
27795 #undef FLD
27796 }
27797
27798 /* fnop: fnop$pack */
27799
27800 static SEM_PC
27801 SEM_FN_NAME (frvbf,fnop) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27802 {
27803 #define FLD(f) abuf->fields.fmt_empty.f
27804   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27805   int UNUSED written = 0;
27806   IADDR UNUSED pc = abuf->addr;
27807   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27808
27809 ((void) 0); /*nop*/
27810
27811   return vpc;
27812 #undef FLD
27813 }
27814
27815 /* Table of all semantic fns.  */
27816
27817 static const struct sem_fn_desc sem_fns[] = {
27818   { FRVBF_INSN_X_INVALID, SEM_FN_NAME (frvbf,x_invalid) },
27819   { FRVBF_INSN_X_AFTER, SEM_FN_NAME (frvbf,x_after) },
27820   { FRVBF_INSN_X_BEFORE, SEM_FN_NAME (frvbf,x_before) },
27821   { FRVBF_INSN_X_CTI_CHAIN, SEM_FN_NAME (frvbf,x_cti_chain) },
27822   { FRVBF_INSN_X_CHAIN, SEM_FN_NAME (frvbf,x_chain) },
27823   { FRVBF_INSN_X_BEGIN, SEM_FN_NAME (frvbf,x_begin) },
27824   { FRVBF_INSN_ADD, SEM_FN_NAME (frvbf,add) },
27825   { FRVBF_INSN_SUB, SEM_FN_NAME (frvbf,sub) },
27826   { FRVBF_INSN_AND, SEM_FN_NAME (frvbf,and) },
27827   { FRVBF_INSN_OR, SEM_FN_NAME (frvbf,or) },
27828   { FRVBF_INSN_XOR, SEM_FN_NAME (frvbf,xor) },
27829   { FRVBF_INSN_NOT, SEM_FN_NAME (frvbf,not) },
27830   { FRVBF_INSN_SDIV, SEM_FN_NAME (frvbf,sdiv) },
27831   { FRVBF_INSN_NSDIV, SEM_FN_NAME (frvbf,nsdiv) },
27832   { FRVBF_INSN_UDIV, SEM_FN_NAME (frvbf,udiv) },
27833   { FRVBF_INSN_NUDIV, SEM_FN_NAME (frvbf,nudiv) },
27834   { FRVBF_INSN_SMUL, SEM_FN_NAME (frvbf,smul) },
27835   { FRVBF_INSN_UMUL, SEM_FN_NAME (frvbf,umul) },
27836   { FRVBF_INSN_SLL, SEM_FN_NAME (frvbf,sll) },
27837   { FRVBF_INSN_SRL, SEM_FN_NAME (frvbf,srl) },
27838   { FRVBF_INSN_SRA, SEM_FN_NAME (frvbf,sra) },
27839   { FRVBF_INSN_SCAN, SEM_FN_NAME (frvbf,scan) },
27840   { FRVBF_INSN_CADD, SEM_FN_NAME (frvbf,cadd) },
27841   { FRVBF_INSN_CSUB, SEM_FN_NAME (frvbf,csub) },
27842   { FRVBF_INSN_CAND, SEM_FN_NAME (frvbf,cand) },
27843   { FRVBF_INSN_COR, SEM_FN_NAME (frvbf,cor) },
27844   { FRVBF_INSN_CXOR, SEM_FN_NAME (frvbf,cxor) },
27845   { FRVBF_INSN_CNOT, SEM_FN_NAME (frvbf,cnot) },
27846   { FRVBF_INSN_CSMUL, SEM_FN_NAME (frvbf,csmul) },
27847   { FRVBF_INSN_CSDIV, SEM_FN_NAME (frvbf,csdiv) },
27848   { FRVBF_INSN_CUDIV, SEM_FN_NAME (frvbf,cudiv) },
27849   { FRVBF_INSN_CSLL, SEM_FN_NAME (frvbf,csll) },
27850   { FRVBF_INSN_CSRL, SEM_FN_NAME (frvbf,csrl) },
27851   { FRVBF_INSN_CSRA, SEM_FN_NAME (frvbf,csra) },
27852   { FRVBF_INSN_CSCAN, SEM_FN_NAME (frvbf,cscan) },
27853   { FRVBF_INSN_ADDCC, SEM_FN_NAME (frvbf,addcc) },
27854   { FRVBF_INSN_SUBCC, SEM_FN_NAME (frvbf,subcc) },
27855   { FRVBF_INSN_ANDCC, SEM_FN_NAME (frvbf,andcc) },
27856   { FRVBF_INSN_ORCC, SEM_FN_NAME (frvbf,orcc) },
27857   { FRVBF_INSN_XORCC, SEM_FN_NAME (frvbf,xorcc) },
27858   { FRVBF_INSN_SLLCC, SEM_FN_NAME (frvbf,sllcc) },
27859   { FRVBF_INSN_SRLCC, SEM_FN_NAME (frvbf,srlcc) },
27860   { FRVBF_INSN_SRACC, SEM_FN_NAME (frvbf,sracc) },
27861   { FRVBF_INSN_SMULCC, SEM_FN_NAME (frvbf,smulcc) },
27862   { FRVBF_INSN_UMULCC, SEM_FN_NAME (frvbf,umulcc) },
27863   { FRVBF_INSN_CADDCC, SEM_FN_NAME (frvbf,caddcc) },
27864   { FRVBF_INSN_CSUBCC, SEM_FN_NAME (frvbf,csubcc) },
27865   { FRVBF_INSN_CSMULCC, SEM_FN_NAME (frvbf,csmulcc) },
27866   { FRVBF_INSN_CANDCC, SEM_FN_NAME (frvbf,candcc) },
27867   { FRVBF_INSN_CORCC, SEM_FN_NAME (frvbf,corcc) },
27868   { FRVBF_INSN_CXORCC, SEM_FN_NAME (frvbf,cxorcc) },
27869   { FRVBF_INSN_CSLLCC, SEM_FN_NAME (frvbf,csllcc) },
27870   { FRVBF_INSN_CSRLCC, SEM_FN_NAME (frvbf,csrlcc) },
27871   { FRVBF_INSN_CSRACC, SEM_FN_NAME (frvbf,csracc) },
27872   { FRVBF_INSN_ADDX, SEM_FN_NAME (frvbf,addx) },
27873   { FRVBF_INSN_SUBX, SEM_FN_NAME (frvbf,subx) },
27874   { FRVBF_INSN_ADDXCC, SEM_FN_NAME (frvbf,addxcc) },
27875   { FRVBF_INSN_SUBXCC, SEM_FN_NAME (frvbf,subxcc) },
27876   { FRVBF_INSN_ADDI, SEM_FN_NAME (frvbf,addi) },
27877   { FRVBF_INSN_SUBI, SEM_FN_NAME (frvbf,subi) },
27878   { FRVBF_INSN_ANDI, SEM_FN_NAME (frvbf,andi) },
27879   { FRVBF_INSN_ORI, SEM_FN_NAME (frvbf,ori) },
27880   { FRVBF_INSN_XORI, SEM_FN_NAME (frvbf,xori) },
27881   { FRVBF_INSN_SDIVI, SEM_FN_NAME (frvbf,sdivi) },
27882   { FRVBF_INSN_NSDIVI, SEM_FN_NAME (frvbf,nsdivi) },
27883   { FRVBF_INSN_UDIVI, SEM_FN_NAME (frvbf,udivi) },
27884   { FRVBF_INSN_NUDIVI, SEM_FN_NAME (frvbf,nudivi) },
27885   { FRVBF_INSN_SMULI, SEM_FN_NAME (frvbf,smuli) },
27886   { FRVBF_INSN_UMULI, SEM_FN_NAME (frvbf,umuli) },
27887   { FRVBF_INSN_SLLI, SEM_FN_NAME (frvbf,slli) },
27888   { FRVBF_INSN_SRLI, SEM_FN_NAME (frvbf,srli) },
27889   { FRVBF_INSN_SRAI, SEM_FN_NAME (frvbf,srai) },
27890   { FRVBF_INSN_SCANI, SEM_FN_NAME (frvbf,scani) },
27891   { FRVBF_INSN_ADDICC, SEM_FN_NAME (frvbf,addicc) },
27892   { FRVBF_INSN_SUBICC, SEM_FN_NAME (frvbf,subicc) },
27893   { FRVBF_INSN_ANDICC, SEM_FN_NAME (frvbf,andicc) },
27894   { FRVBF_INSN_ORICC, SEM_FN_NAME (frvbf,oricc) },
27895   { FRVBF_INSN_XORICC, SEM_FN_NAME (frvbf,xoricc) },
27896   { FRVBF_INSN_SMULICC, SEM_FN_NAME (frvbf,smulicc) },
27897   { FRVBF_INSN_UMULICC, SEM_FN_NAME (frvbf,umulicc) },
27898   { FRVBF_INSN_SLLICC, SEM_FN_NAME (frvbf,sllicc) },
27899   { FRVBF_INSN_SRLICC, SEM_FN_NAME (frvbf,srlicc) },
27900   { FRVBF_INSN_SRAICC, SEM_FN_NAME (frvbf,sraicc) },
27901   { FRVBF_INSN_ADDXI, SEM_FN_NAME (frvbf,addxi) },
27902   { FRVBF_INSN_SUBXI, SEM_FN_NAME (frvbf,subxi) },
27903   { FRVBF_INSN_ADDXICC, SEM_FN_NAME (frvbf,addxicc) },
27904   { FRVBF_INSN_SUBXICC, SEM_FN_NAME (frvbf,subxicc) },
27905   { FRVBF_INSN_CMPB, SEM_FN_NAME (frvbf,cmpb) },
27906   { FRVBF_INSN_CMPBA, SEM_FN_NAME (frvbf,cmpba) },
27907   { FRVBF_INSN_SETLO, SEM_FN_NAME (frvbf,setlo) },
27908   { FRVBF_INSN_SETHI, SEM_FN_NAME (frvbf,sethi) },
27909   { FRVBF_INSN_SETLOS, SEM_FN_NAME (frvbf,setlos) },
27910   { FRVBF_INSN_LDSB, SEM_FN_NAME (frvbf,ldsb) },
27911   { FRVBF_INSN_LDUB, SEM_FN_NAME (frvbf,ldub) },
27912   { FRVBF_INSN_LDSH, SEM_FN_NAME (frvbf,ldsh) },
27913   { FRVBF_INSN_LDUH, SEM_FN_NAME (frvbf,lduh) },
27914   { FRVBF_INSN_LD, SEM_FN_NAME (frvbf,ld) },
27915   { FRVBF_INSN_LDBF, SEM_FN_NAME (frvbf,ldbf) },
27916   { FRVBF_INSN_LDHF, SEM_FN_NAME (frvbf,ldhf) },
27917   { FRVBF_INSN_LDF, SEM_FN_NAME (frvbf,ldf) },
27918   { FRVBF_INSN_LDC, SEM_FN_NAME (frvbf,ldc) },
27919   { FRVBF_INSN_NLDSB, SEM_FN_NAME (frvbf,nldsb) },
27920   { FRVBF_INSN_NLDUB, SEM_FN_NAME (frvbf,nldub) },
27921   { FRVBF_INSN_NLDSH, SEM_FN_NAME (frvbf,nldsh) },
27922   { FRVBF_INSN_NLDUH, SEM_FN_NAME (frvbf,nlduh) },
27923   { FRVBF_INSN_NLD, SEM_FN_NAME (frvbf,nld) },
27924   { FRVBF_INSN_NLDBF, SEM_FN_NAME (frvbf,nldbf) },
27925   { FRVBF_INSN_NLDHF, SEM_FN_NAME (frvbf,nldhf) },
27926   { FRVBF_INSN_NLDF, SEM_FN_NAME (frvbf,nldf) },
27927   { FRVBF_INSN_LDD, SEM_FN_NAME (frvbf,ldd) },
27928   { FRVBF_INSN_LDDF, SEM_FN_NAME (frvbf,lddf) },
27929   { FRVBF_INSN_LDDC, SEM_FN_NAME (frvbf,lddc) },
27930   { FRVBF_INSN_NLDD, SEM_FN_NAME (frvbf,nldd) },
27931   { FRVBF_INSN_NLDDF, SEM_FN_NAME (frvbf,nlddf) },
27932   { FRVBF_INSN_LDQ, SEM_FN_NAME (frvbf,ldq) },
27933   { FRVBF_INSN_LDQF, SEM_FN_NAME (frvbf,ldqf) },
27934   { FRVBF_INSN_LDQC, SEM_FN_NAME (frvbf,ldqc) },
27935   { FRVBF_INSN_NLDQ, SEM_FN_NAME (frvbf,nldq) },
27936   { FRVBF_INSN_NLDQF, SEM_FN_NAME (frvbf,nldqf) },
27937   { FRVBF_INSN_LDSBU, SEM_FN_NAME (frvbf,ldsbu) },
27938   { FRVBF_INSN_LDUBU, SEM_FN_NAME (frvbf,ldubu) },
27939   { FRVBF_INSN_LDSHU, SEM_FN_NAME (frvbf,ldshu) },
27940   { FRVBF_INSN_LDUHU, SEM_FN_NAME (frvbf,lduhu) },
27941   { FRVBF_INSN_LDU, SEM_FN_NAME (frvbf,ldu) },
27942   { FRVBF_INSN_NLDSBU, SEM_FN_NAME (frvbf,nldsbu) },
27943   { FRVBF_INSN_NLDUBU, SEM_FN_NAME (frvbf,nldubu) },
27944   { FRVBF_INSN_NLDSHU, SEM_FN_NAME (frvbf,nldshu) },
27945   { FRVBF_INSN_NLDUHU, SEM_FN_NAME (frvbf,nlduhu) },
27946   { FRVBF_INSN_NLDU, SEM_FN_NAME (frvbf,nldu) },
27947   { FRVBF_INSN_LDBFU, SEM_FN_NAME (frvbf,ldbfu) },
27948   { FRVBF_INSN_LDHFU, SEM_FN_NAME (frvbf,ldhfu) },
27949   { FRVBF_INSN_LDFU, SEM_FN_NAME (frvbf,ldfu) },
27950   { FRVBF_INSN_LDCU, SEM_FN_NAME (frvbf,ldcu) },
27951   { FRVBF_INSN_NLDBFU, SEM_FN_NAME (frvbf,nldbfu) },
27952   { FRVBF_INSN_NLDHFU, SEM_FN_NAME (frvbf,nldhfu) },
27953   { FRVBF_INSN_NLDFU, SEM_FN_NAME (frvbf,nldfu) },
27954   { FRVBF_INSN_LDDU, SEM_FN_NAME (frvbf,lddu) },
27955   { FRVBF_INSN_NLDDU, SEM_FN_NAME (frvbf,nlddu) },
27956   { FRVBF_INSN_LDDFU, SEM_FN_NAME (frvbf,lddfu) },
27957   { FRVBF_INSN_LDDCU, SEM_FN_NAME (frvbf,lddcu) },
27958   { FRVBF_INSN_NLDDFU, SEM_FN_NAME (frvbf,nlddfu) },
27959   { FRVBF_INSN_LDQU, SEM_FN_NAME (frvbf,ldqu) },
27960   { FRVBF_INSN_NLDQU, SEM_FN_NAME (frvbf,nldqu) },
27961   { FRVBF_INSN_LDQFU, SEM_FN_NAME (frvbf,ldqfu) },
27962   { FRVBF_INSN_LDQCU, SEM_FN_NAME (frvbf,ldqcu) },
27963   { FRVBF_INSN_NLDQFU, SEM_FN_NAME (frvbf,nldqfu) },
27964   { FRVBF_INSN_LDSBI, SEM_FN_NAME (frvbf,ldsbi) },
27965   { FRVBF_INSN_LDSHI, SEM_FN_NAME (frvbf,ldshi) },
27966   { FRVBF_INSN_LDI, SEM_FN_NAME (frvbf,ldi) },
27967   { FRVBF_INSN_LDUBI, SEM_FN_NAME (frvbf,ldubi) },
27968   { FRVBF_INSN_LDUHI, SEM_FN_NAME (frvbf,lduhi) },
27969   { FRVBF_INSN_LDBFI, SEM_FN_NAME (frvbf,ldbfi) },
27970   { FRVBF_INSN_LDHFI, SEM_FN_NAME (frvbf,ldhfi) },
27971   { FRVBF_INSN_LDFI, SEM_FN_NAME (frvbf,ldfi) },
27972   { FRVBF_INSN_NLDSBI, SEM_FN_NAME (frvbf,nldsbi) },
27973   { FRVBF_INSN_NLDUBI, SEM_FN_NAME (frvbf,nldubi) },
27974   { FRVBF_INSN_NLDSHI, SEM_FN_NAME (frvbf,nldshi) },
27975   { FRVBF_INSN_NLDUHI, SEM_FN_NAME (frvbf,nlduhi) },
27976   { FRVBF_INSN_NLDI, SEM_FN_NAME (frvbf,nldi) },
27977   { FRVBF_INSN_NLDBFI, SEM_FN_NAME (frvbf,nldbfi) },
27978   { FRVBF_INSN_NLDHFI, SEM_FN_NAME (frvbf,nldhfi) },
27979   { FRVBF_INSN_NLDFI, SEM_FN_NAME (frvbf,nldfi) },
27980   { FRVBF_INSN_LDDI, SEM_FN_NAME (frvbf,lddi) },
27981   { FRVBF_INSN_LDDFI, SEM_FN_NAME (frvbf,lddfi) },
27982   { FRVBF_INSN_NLDDI, SEM_FN_NAME (frvbf,nlddi) },
27983   { FRVBF_INSN_NLDDFI, SEM_FN_NAME (frvbf,nlddfi) },
27984   { FRVBF_INSN_LDQI, SEM_FN_NAME (frvbf,ldqi) },
27985   { FRVBF_INSN_LDQFI, SEM_FN_NAME (frvbf,ldqfi) },
27986   { FRVBF_INSN_NLDQFI, SEM_FN_NAME (frvbf,nldqfi) },
27987   { FRVBF_INSN_STB, SEM_FN_NAME (frvbf,stb) },
27988   { FRVBF_INSN_STH, SEM_FN_NAME (frvbf,sth) },
27989   { FRVBF_INSN_ST, SEM_FN_NAME (frvbf,st) },
27990   { FRVBF_INSN_STBF, SEM_FN_NAME (frvbf,stbf) },
27991   { FRVBF_INSN_STHF, SEM_FN_NAME (frvbf,sthf) },
27992   { FRVBF_INSN_STF, SEM_FN_NAME (frvbf,stf) },
27993   { FRVBF_INSN_STC, SEM_FN_NAME (frvbf,stc) },
27994   { FRVBF_INSN_RSTB, SEM_FN_NAME (frvbf,rstb) },
27995   { FRVBF_INSN_RSTH, SEM_FN_NAME (frvbf,rsth) },
27996   { FRVBF_INSN_RST, SEM_FN_NAME (frvbf,rst) },
27997   { FRVBF_INSN_RSTBF, SEM_FN_NAME (frvbf,rstbf) },
27998   { FRVBF_INSN_RSTHF, SEM_FN_NAME (frvbf,rsthf) },
27999   { FRVBF_INSN_RSTF, SEM_FN_NAME (frvbf,rstf) },
28000   { FRVBF_INSN_STD, SEM_FN_NAME (frvbf,std) },
28001   { FRVBF_INSN_STDF, SEM_FN_NAME (frvbf,stdf) },
28002   { FRVBF_INSN_STDC, SEM_FN_NAME (frvbf,stdc) },
28003   { FRVBF_INSN_RSTD, SEM_FN_NAME (frvbf,rstd) },
28004   { FRVBF_INSN_RSTDF, SEM_FN_NAME (frvbf,rstdf) },
28005   { FRVBF_INSN_STQ, SEM_FN_NAME (frvbf,stq) },
28006   { FRVBF_INSN_STQF, SEM_FN_NAME (frvbf,stqf) },
28007   { FRVBF_INSN_STQC, SEM_FN_NAME (frvbf,stqc) },
28008   { FRVBF_INSN_RSTQ, SEM_FN_NAME (frvbf,rstq) },
28009   { FRVBF_INSN_RSTQF, SEM_FN_NAME (frvbf,rstqf) },
28010   { FRVBF_INSN_STBU, SEM_FN_NAME (frvbf,stbu) },
28011   { FRVBF_INSN_STHU, SEM_FN_NAME (frvbf,sthu) },
28012   { FRVBF_INSN_STU, SEM_FN_NAME (frvbf,stu) },
28013   { FRVBF_INSN_STBFU, SEM_FN_NAME (frvbf,stbfu) },
28014   { FRVBF_INSN_STHFU, SEM_FN_NAME (frvbf,sthfu) },
28015   { FRVBF_INSN_STFU, SEM_FN_NAME (frvbf,stfu) },
28016   { FRVBF_INSN_STCU, SEM_FN_NAME (frvbf,stcu) },
28017   { FRVBF_INSN_STDU, SEM_FN_NAME (frvbf,stdu) },
28018   { FRVBF_INSN_STDFU, SEM_FN_NAME (frvbf,stdfu) },
28019   { FRVBF_INSN_STDCU, SEM_FN_NAME (frvbf,stdcu) },
28020   { FRVBF_INSN_STQU, SEM_FN_NAME (frvbf,stqu) },
28021   { FRVBF_INSN_STQFU, SEM_FN_NAME (frvbf,stqfu) },
28022   { FRVBF_INSN_STQCU, SEM_FN_NAME (frvbf,stqcu) },
28023   { FRVBF_INSN_CLDSB, SEM_FN_NAME (frvbf,cldsb) },
28024   { FRVBF_INSN_CLDUB, SEM_FN_NAME (frvbf,cldub) },
28025   { FRVBF_INSN_CLDSH, SEM_FN_NAME (frvbf,cldsh) },
28026   { FRVBF_INSN_CLDUH, SEM_FN_NAME (frvbf,clduh) },
28027   { FRVBF_INSN_CLD, SEM_FN_NAME (frvbf,cld) },
28028   { FRVBF_INSN_CLDBF, SEM_FN_NAME (frvbf,cldbf) },
28029   { FRVBF_INSN_CLDHF, SEM_FN_NAME (frvbf,cldhf) },
28030   { FRVBF_INSN_CLDF, SEM_FN_NAME (frvbf,cldf) },
28031   { FRVBF_INSN_CLDD, SEM_FN_NAME (frvbf,cldd) },
28032   { FRVBF_INSN_CLDDF, SEM_FN_NAME (frvbf,clddf) },
28033   { FRVBF_INSN_CLDQ, SEM_FN_NAME (frvbf,cldq) },
28034   { FRVBF_INSN_CLDSBU, SEM_FN_NAME (frvbf,cldsbu) },
28035   { FRVBF_INSN_CLDUBU, SEM_FN_NAME (frvbf,cldubu) },
28036   { FRVBF_INSN_CLDSHU, SEM_FN_NAME (frvbf,cldshu) },
28037   { FRVBF_INSN_CLDUHU, SEM_FN_NAME (frvbf,clduhu) },
28038   { FRVBF_INSN_CLDU, SEM_FN_NAME (frvbf,cldu) },
28039   { FRVBF_INSN_CLDBFU, SEM_FN_NAME (frvbf,cldbfu) },
28040   { FRVBF_INSN_CLDHFU, SEM_FN_NAME (frvbf,cldhfu) },
28041   { FRVBF_INSN_CLDFU, SEM_FN_NAME (frvbf,cldfu) },
28042   { FRVBF_INSN_CLDDU, SEM_FN_NAME (frvbf,clddu) },
28043   { FRVBF_INSN_CLDDFU, SEM_FN_NAME (frvbf,clddfu) },
28044   { FRVBF_INSN_CLDQU, SEM_FN_NAME (frvbf,cldqu) },
28045   { FRVBF_INSN_CSTB, SEM_FN_NAME (frvbf,cstb) },
28046   { FRVBF_INSN_CSTH, SEM_FN_NAME (frvbf,csth) },
28047   { FRVBF_INSN_CST, SEM_FN_NAME (frvbf,cst) },
28048   { FRVBF_INSN_CSTBF, SEM_FN_NAME (frvbf,cstbf) },
28049   { FRVBF_INSN_CSTHF, SEM_FN_NAME (frvbf,csthf) },
28050   { FRVBF_INSN_CSTF, SEM_FN_NAME (frvbf,cstf) },
28051   { FRVBF_INSN_CSTD, SEM_FN_NAME (frvbf,cstd) },
28052   { FRVBF_INSN_CSTDF, SEM_FN_NAME (frvbf,cstdf) },
28053   { FRVBF_INSN_CSTQ, SEM_FN_NAME (frvbf,cstq) },
28054   { FRVBF_INSN_CSTBU, SEM_FN_NAME (frvbf,cstbu) },
28055   { FRVBF_INSN_CSTHU, SEM_FN_NAME (frvbf,csthu) },
28056   { FRVBF_INSN_CSTU, SEM_FN_NAME (frvbf,cstu) },
28057   { FRVBF_INSN_CSTBFU, SEM_FN_NAME (frvbf,cstbfu) },
28058   { FRVBF_INSN_CSTHFU, SEM_FN_NAME (frvbf,csthfu) },
28059   { FRVBF_INSN_CSTFU, SEM_FN_NAME (frvbf,cstfu) },
28060   { FRVBF_INSN_CSTDU, SEM_FN_NAME (frvbf,cstdu) },
28061   { FRVBF_INSN_CSTDFU, SEM_FN_NAME (frvbf,cstdfu) },
28062   { FRVBF_INSN_STBI, SEM_FN_NAME (frvbf,stbi) },
28063   { FRVBF_INSN_STHI, SEM_FN_NAME (frvbf,sthi) },
28064   { FRVBF_INSN_STI, SEM_FN_NAME (frvbf,sti) },
28065   { FRVBF_INSN_STBFI, SEM_FN_NAME (frvbf,stbfi) },
28066   { FRVBF_INSN_STHFI, SEM_FN_NAME (frvbf,sthfi) },
28067   { FRVBF_INSN_STFI, SEM_FN_NAME (frvbf,stfi) },
28068   { FRVBF_INSN_STDI, SEM_FN_NAME (frvbf,stdi) },
28069   { FRVBF_INSN_STDFI, SEM_FN_NAME (frvbf,stdfi) },
28070   { FRVBF_INSN_STQI, SEM_FN_NAME (frvbf,stqi) },
28071   { FRVBF_INSN_STQFI, SEM_FN_NAME (frvbf,stqfi) },
28072   { FRVBF_INSN_SWAP, SEM_FN_NAME (frvbf,swap) },
28073   { FRVBF_INSN_SWAPI, SEM_FN_NAME (frvbf,swapi) },
28074   { FRVBF_INSN_CSWAP, SEM_FN_NAME (frvbf,cswap) },
28075   { FRVBF_INSN_MOVGF, SEM_FN_NAME (frvbf,movgf) },
28076   { FRVBF_INSN_MOVFG, SEM_FN_NAME (frvbf,movfg) },
28077   { FRVBF_INSN_MOVGFD, SEM_FN_NAME (frvbf,movgfd) },
28078   { FRVBF_INSN_MOVFGD, SEM_FN_NAME (frvbf,movfgd) },
28079   { FRVBF_INSN_MOVGFQ, SEM_FN_NAME (frvbf,movgfq) },
28080   { FRVBF_INSN_MOVFGQ, SEM_FN_NAME (frvbf,movfgq) },
28081   { FRVBF_INSN_CMOVGF, SEM_FN_NAME (frvbf,cmovgf) },
28082   { FRVBF_INSN_CMOVFG, SEM_FN_NAME (frvbf,cmovfg) },
28083   { FRVBF_INSN_CMOVGFD, SEM_FN_NAME (frvbf,cmovgfd) },
28084   { FRVBF_INSN_CMOVFGD, SEM_FN_NAME (frvbf,cmovfgd) },
28085   { FRVBF_INSN_MOVGS, SEM_FN_NAME (frvbf,movgs) },
28086   { FRVBF_INSN_MOVSG, SEM_FN_NAME (frvbf,movsg) },
28087   { FRVBF_INSN_BRA, SEM_FN_NAME (frvbf,bra) },
28088   { FRVBF_INSN_BNO, SEM_FN_NAME (frvbf,bno) },
28089   { FRVBF_INSN_BEQ, SEM_FN_NAME (frvbf,beq) },
28090   { FRVBF_INSN_BNE, SEM_FN_NAME (frvbf,bne) },
28091   { FRVBF_INSN_BLE, SEM_FN_NAME (frvbf,ble) },
28092   { FRVBF_INSN_BGT, SEM_FN_NAME (frvbf,bgt) },
28093   { FRVBF_INSN_BLT, SEM_FN_NAME (frvbf,blt) },
28094   { FRVBF_INSN_BGE, SEM_FN_NAME (frvbf,bge) },
28095   { FRVBF_INSN_BLS, SEM_FN_NAME (frvbf,bls) },
28096   { FRVBF_INSN_BHI, SEM_FN_NAME (frvbf,bhi) },
28097   { FRVBF_INSN_BC, SEM_FN_NAME (frvbf,bc) },
28098   { FRVBF_INSN_BNC, SEM_FN_NAME (frvbf,bnc) },
28099   { FRVBF_INSN_BN, SEM_FN_NAME (frvbf,bn) },
28100   { FRVBF_INSN_BP, SEM_FN_NAME (frvbf,bp) },
28101   { FRVBF_INSN_BV, SEM_FN_NAME (frvbf,bv) },
28102   { FRVBF_INSN_BNV, SEM_FN_NAME (frvbf,bnv) },
28103   { FRVBF_INSN_FBRA, SEM_FN_NAME (frvbf,fbra) },
28104   { FRVBF_INSN_FBNO, SEM_FN_NAME (frvbf,fbno) },
28105   { FRVBF_INSN_FBNE, SEM_FN_NAME (frvbf,fbne) },
28106   { FRVBF_INSN_FBEQ, SEM_FN_NAME (frvbf,fbeq) },
28107   { FRVBF_INSN_FBLG, SEM_FN_NAME (frvbf,fblg) },
28108   { FRVBF_INSN_FBUE, SEM_FN_NAME (frvbf,fbue) },
28109   { FRVBF_INSN_FBUL, SEM_FN_NAME (frvbf,fbul) },
28110   { FRVBF_INSN_FBGE, SEM_FN_NAME (frvbf,fbge) },
28111   { FRVBF_INSN_FBLT, SEM_FN_NAME (frvbf,fblt) },
28112   { FRVBF_INSN_FBUGE, SEM_FN_NAME (frvbf,fbuge) },
28113   { FRVBF_INSN_FBUG, SEM_FN_NAME (frvbf,fbug) },
28114   { FRVBF_INSN_FBLE, SEM_FN_NAME (frvbf,fble) },
28115   { FRVBF_INSN_FBGT, SEM_FN_NAME (frvbf,fbgt) },
28116   { FRVBF_INSN_FBULE, SEM_FN_NAME (frvbf,fbule) },
28117   { FRVBF_INSN_FBU, SEM_FN_NAME (frvbf,fbu) },
28118   { FRVBF_INSN_FBO, SEM_FN_NAME (frvbf,fbo) },
28119   { FRVBF_INSN_BCTRLR, SEM_FN_NAME (frvbf,bctrlr) },
28120   { FRVBF_INSN_BRALR, SEM_FN_NAME (frvbf,bralr) },
28121   { FRVBF_INSN_BNOLR, SEM_FN_NAME (frvbf,bnolr) },
28122   { FRVBF_INSN_BEQLR, SEM_FN_NAME (frvbf,beqlr) },
28123   { FRVBF_INSN_BNELR, SEM_FN_NAME (frvbf,bnelr) },
28124   { FRVBF_INSN_BLELR, SEM_FN_NAME (frvbf,blelr) },
28125   { FRVBF_INSN_BGTLR, SEM_FN_NAME (frvbf,bgtlr) },
28126   { FRVBF_INSN_BLTLR, SEM_FN_NAME (frvbf,bltlr) },
28127   { FRVBF_INSN_BGELR, SEM_FN_NAME (frvbf,bgelr) },
28128   { FRVBF_INSN_BLSLR, SEM_FN_NAME (frvbf,blslr) },
28129   { FRVBF_INSN_BHILR, SEM_FN_NAME (frvbf,bhilr) },
28130   { FRVBF_INSN_BCLR, SEM_FN_NAME (frvbf,bclr) },
28131   { FRVBF_INSN_BNCLR, SEM_FN_NAME (frvbf,bnclr) },
28132   { FRVBF_INSN_BNLR, SEM_FN_NAME (frvbf,bnlr) },
28133   { FRVBF_INSN_BPLR, SEM_FN_NAME (frvbf,bplr) },
28134   { FRVBF_INSN_BVLR, SEM_FN_NAME (frvbf,bvlr) },
28135   { FRVBF_INSN_BNVLR, SEM_FN_NAME (frvbf,bnvlr) },
28136   { FRVBF_INSN_FBRALR, SEM_FN_NAME (frvbf,fbralr) },
28137   { FRVBF_INSN_FBNOLR, SEM_FN_NAME (frvbf,fbnolr) },
28138   { FRVBF_INSN_FBEQLR, SEM_FN_NAME (frvbf,fbeqlr) },
28139   { FRVBF_INSN_FBNELR, SEM_FN_NAME (frvbf,fbnelr) },
28140   { FRVBF_INSN_FBLGLR, SEM_FN_NAME (frvbf,fblglr) },
28141   { FRVBF_INSN_FBUELR, SEM_FN_NAME (frvbf,fbuelr) },
28142   { FRVBF_INSN_FBULLR, SEM_FN_NAME (frvbf,fbullr) },
28143   { FRVBF_INSN_FBGELR, SEM_FN_NAME (frvbf,fbgelr) },
28144   { FRVBF_INSN_FBLTLR, SEM_FN_NAME (frvbf,fbltlr) },
28145   { FRVBF_INSN_FBUGELR, SEM_FN_NAME (frvbf,fbugelr) },
28146   { FRVBF_INSN_FBUGLR, SEM_FN_NAME (frvbf,fbuglr) },
28147   { FRVBF_INSN_FBLELR, SEM_FN_NAME (frvbf,fblelr) },
28148   { FRVBF_INSN_FBGTLR, SEM_FN_NAME (frvbf,fbgtlr) },
28149   { FRVBF_INSN_FBULELR, SEM_FN_NAME (frvbf,fbulelr) },
28150   { FRVBF_INSN_FBULR, SEM_FN_NAME (frvbf,fbulr) },
28151   { FRVBF_INSN_FBOLR, SEM_FN_NAME (frvbf,fbolr) },
28152   { FRVBF_INSN_BCRALR, SEM_FN_NAME (frvbf,bcralr) },
28153   { FRVBF_INSN_BCNOLR, SEM_FN_NAME (frvbf,bcnolr) },
28154   { FRVBF_INSN_BCEQLR, SEM_FN_NAME (frvbf,bceqlr) },
28155   { FRVBF_INSN_BCNELR, SEM_FN_NAME (frvbf,bcnelr) },
28156   { FRVBF_INSN_BCLELR, SEM_FN_NAME (frvbf,bclelr) },
28157   { FRVBF_INSN_BCGTLR, SEM_FN_NAME (frvbf,bcgtlr) },
28158   { FRVBF_INSN_BCLTLR, SEM_FN_NAME (frvbf,bcltlr) },
28159   { FRVBF_INSN_BCGELR, SEM_FN_NAME (frvbf,bcgelr) },
28160   { FRVBF_INSN_BCLSLR, SEM_FN_NAME (frvbf,bclslr) },
28161   { FRVBF_INSN_BCHILR, SEM_FN_NAME (frvbf,bchilr) },
28162   { FRVBF_INSN_BCCLR, SEM_FN_NAME (frvbf,bcclr) },
28163   { FRVBF_INSN_BCNCLR, SEM_FN_NAME (frvbf,bcnclr) },
28164   { FRVBF_INSN_BCNLR, SEM_FN_NAME (frvbf,bcnlr) },
28165   { FRVBF_INSN_BCPLR, SEM_FN_NAME (frvbf,bcplr) },
28166   { FRVBF_INSN_BCVLR, SEM_FN_NAME (frvbf,bcvlr) },
28167   { FRVBF_INSN_BCNVLR, SEM_FN_NAME (frvbf,bcnvlr) },
28168   { FRVBF_INSN_FCBRALR, SEM_FN_NAME (frvbf,fcbralr) },
28169   { FRVBF_INSN_FCBNOLR, SEM_FN_NAME (frvbf,fcbnolr) },
28170   { FRVBF_INSN_FCBEQLR, SEM_FN_NAME (frvbf,fcbeqlr) },
28171   { FRVBF_INSN_FCBNELR, SEM_FN_NAME (frvbf,fcbnelr) },
28172   { FRVBF_INSN_FCBLGLR, SEM_FN_NAME (frvbf,fcblglr) },
28173   { FRVBF_INSN_FCBUELR, SEM_FN_NAME (frvbf,fcbuelr) },
28174   { FRVBF_INSN_FCBULLR, SEM_FN_NAME (frvbf,fcbullr) },
28175   { FRVBF_INSN_FCBGELR, SEM_FN_NAME (frvbf,fcbgelr) },
28176   { FRVBF_INSN_FCBLTLR, SEM_FN_NAME (frvbf,fcbltlr) },
28177   { FRVBF_INSN_FCBUGELR, SEM_FN_NAME (frvbf,fcbugelr) },
28178   { FRVBF_INSN_FCBUGLR, SEM_FN_NAME (frvbf,fcbuglr) },
28179   { FRVBF_INSN_FCBLELR, SEM_FN_NAME (frvbf,fcblelr) },
28180   { FRVBF_INSN_FCBGTLR, SEM_FN_NAME (frvbf,fcbgtlr) },
28181   { FRVBF_INSN_FCBULELR, SEM_FN_NAME (frvbf,fcbulelr) },
28182   { FRVBF_INSN_FCBULR, SEM_FN_NAME (frvbf,fcbulr) },
28183   { FRVBF_INSN_FCBOLR, SEM_FN_NAME (frvbf,fcbolr) },
28184   { FRVBF_INSN_JMPL, SEM_FN_NAME (frvbf,jmpl) },
28185   { FRVBF_INSN_CALLL, SEM_FN_NAME (frvbf,calll) },
28186   { FRVBF_INSN_JMPIL, SEM_FN_NAME (frvbf,jmpil) },
28187   { FRVBF_INSN_CALLIL, SEM_FN_NAME (frvbf,callil) },
28188   { FRVBF_INSN_CALL, SEM_FN_NAME (frvbf,call) },
28189   { FRVBF_INSN_RETT, SEM_FN_NAME (frvbf,rett) },
28190   { FRVBF_INSN_REI, SEM_FN_NAME (frvbf,rei) },
28191   { FRVBF_INSN_TRA, SEM_FN_NAME (frvbf,tra) },
28192   { FRVBF_INSN_TNO, SEM_FN_NAME (frvbf,tno) },
28193   { FRVBF_INSN_TEQ, SEM_FN_NAME (frvbf,teq) },
28194   { FRVBF_INSN_TNE, SEM_FN_NAME (frvbf,tne) },
28195   { FRVBF_INSN_TLE, SEM_FN_NAME (frvbf,tle) },
28196   { FRVBF_INSN_TGT, SEM_FN_NAME (frvbf,tgt) },
28197   { FRVBF_INSN_TLT, SEM_FN_NAME (frvbf,tlt) },
28198   { FRVBF_INSN_TGE, SEM_FN_NAME (frvbf,tge) },
28199   { FRVBF_INSN_TLS, SEM_FN_NAME (frvbf,tls) },
28200   { FRVBF_INSN_THI, SEM_FN_NAME (frvbf,thi) },
28201   { FRVBF_INSN_TC, SEM_FN_NAME (frvbf,tc) },
28202   { FRVBF_INSN_TNC, SEM_FN_NAME (frvbf,tnc) },
28203   { FRVBF_INSN_TN, SEM_FN_NAME (frvbf,tn) },
28204   { FRVBF_INSN_TP, SEM_FN_NAME (frvbf,tp) },
28205   { FRVBF_INSN_TV, SEM_FN_NAME (frvbf,tv) },
28206   { FRVBF_INSN_TNV, SEM_FN_NAME (frvbf,tnv) },
28207   { FRVBF_INSN_FTRA, SEM_FN_NAME (frvbf,ftra) },
28208   { FRVBF_INSN_FTNO, SEM_FN_NAME (frvbf,ftno) },
28209   { FRVBF_INSN_FTNE, SEM_FN_NAME (frvbf,ftne) },
28210   { FRVBF_INSN_FTEQ, SEM_FN_NAME (frvbf,fteq) },
28211   { FRVBF_INSN_FTLG, SEM_FN_NAME (frvbf,ftlg) },
28212   { FRVBF_INSN_FTUE, SEM_FN_NAME (frvbf,ftue) },
28213   { FRVBF_INSN_FTUL, SEM_FN_NAME (frvbf,ftul) },
28214   { FRVBF_INSN_FTGE, SEM_FN_NAME (frvbf,ftge) },
28215   { FRVBF_INSN_FTLT, SEM_FN_NAME (frvbf,ftlt) },
28216   { FRVBF_INSN_FTUGE, SEM_FN_NAME (frvbf,ftuge) },
28217   { FRVBF_INSN_FTUG, SEM_FN_NAME (frvbf,ftug) },
28218   { FRVBF_INSN_FTLE, SEM_FN_NAME (frvbf,ftle) },
28219   { FRVBF_INSN_FTGT, SEM_FN_NAME (frvbf,ftgt) },
28220   { FRVBF_INSN_FTULE, SEM_FN_NAME (frvbf,ftule) },
28221   { FRVBF_INSN_FTU, SEM_FN_NAME (frvbf,ftu) },
28222   { FRVBF_INSN_FTO, SEM_FN_NAME (frvbf,fto) },
28223   { FRVBF_INSN_TIRA, SEM_FN_NAME (frvbf,tira) },
28224   { FRVBF_INSN_TINO, SEM_FN_NAME (frvbf,tino) },
28225   { FRVBF_INSN_TIEQ, SEM_FN_NAME (frvbf,tieq) },
28226   { FRVBF_INSN_TINE, SEM_FN_NAME (frvbf,tine) },
28227   { FRVBF_INSN_TILE, SEM_FN_NAME (frvbf,tile) },
28228   { FRVBF_INSN_TIGT, SEM_FN_NAME (frvbf,tigt) },
28229   { FRVBF_INSN_TILT, SEM_FN_NAME (frvbf,tilt) },
28230   { FRVBF_INSN_TIGE, SEM_FN_NAME (frvbf,tige) },
28231   { FRVBF_INSN_TILS, SEM_FN_NAME (frvbf,tils) },
28232   { FRVBF_INSN_TIHI, SEM_FN_NAME (frvbf,tihi) },
28233   { FRVBF_INSN_TIC, SEM_FN_NAME (frvbf,tic) },
28234   { FRVBF_INSN_TINC, SEM_FN_NAME (frvbf,tinc) },
28235   { FRVBF_INSN_TIN, SEM_FN_NAME (frvbf,tin) },
28236   { FRVBF_INSN_TIP, SEM_FN_NAME (frvbf,tip) },
28237   { FRVBF_INSN_TIV, SEM_FN_NAME (frvbf,tiv) },
28238   { FRVBF_INSN_TINV, SEM_FN_NAME (frvbf,tinv) },
28239   { FRVBF_INSN_FTIRA, SEM_FN_NAME (frvbf,ftira) },
28240   { FRVBF_INSN_FTINO, SEM_FN_NAME (frvbf,ftino) },
28241   { FRVBF_INSN_FTINE, SEM_FN_NAME (frvbf,ftine) },
28242   { FRVBF_INSN_FTIEQ, SEM_FN_NAME (frvbf,ftieq) },
28243   { FRVBF_INSN_FTILG, SEM_FN_NAME (frvbf,ftilg) },
28244   { FRVBF_INSN_FTIUE, SEM_FN_NAME (frvbf,ftiue) },
28245   { FRVBF_INSN_FTIUL, SEM_FN_NAME (frvbf,ftiul) },
28246   { FRVBF_INSN_FTIGE, SEM_FN_NAME (frvbf,ftige) },
28247   { FRVBF_INSN_FTILT, SEM_FN_NAME (frvbf,ftilt) },
28248   { FRVBF_INSN_FTIUGE, SEM_FN_NAME (frvbf,ftiuge) },
28249   { FRVBF_INSN_FTIUG, SEM_FN_NAME (frvbf,ftiug) },
28250   { FRVBF_INSN_FTILE, SEM_FN_NAME (frvbf,ftile) },
28251   { FRVBF_INSN_FTIGT, SEM_FN_NAME (frvbf,ftigt) },
28252   { FRVBF_INSN_FTIULE, SEM_FN_NAME (frvbf,ftiule) },
28253   { FRVBF_INSN_FTIU, SEM_FN_NAME (frvbf,ftiu) },
28254   { FRVBF_INSN_FTIO, SEM_FN_NAME (frvbf,ftio) },
28255   { FRVBF_INSN_BREAK, SEM_FN_NAME (frvbf,break) },
28256   { FRVBF_INSN_MTRAP, SEM_FN_NAME (frvbf,mtrap) },
28257   { FRVBF_INSN_ANDCR, SEM_FN_NAME (frvbf,andcr) },
28258   { FRVBF_INSN_ORCR, SEM_FN_NAME (frvbf,orcr) },
28259   { FRVBF_INSN_XORCR, SEM_FN_NAME (frvbf,xorcr) },
28260   { FRVBF_INSN_NANDCR, SEM_FN_NAME (frvbf,nandcr) },
28261   { FRVBF_INSN_NORCR, SEM_FN_NAME (frvbf,norcr) },
28262   { FRVBF_INSN_ANDNCR, SEM_FN_NAME (frvbf,andncr) },
28263   { FRVBF_INSN_ORNCR, SEM_FN_NAME (frvbf,orncr) },
28264   { FRVBF_INSN_NANDNCR, SEM_FN_NAME (frvbf,nandncr) },
28265   { FRVBF_INSN_NORNCR, SEM_FN_NAME (frvbf,norncr) },
28266   { FRVBF_INSN_NOTCR, SEM_FN_NAME (frvbf,notcr) },
28267   { FRVBF_INSN_CKRA, SEM_FN_NAME (frvbf,ckra) },
28268   { FRVBF_INSN_CKNO, SEM_FN_NAME (frvbf,ckno) },
28269   { FRVBF_INSN_CKEQ, SEM_FN_NAME (frvbf,ckeq) },
28270   { FRVBF_INSN_CKNE, SEM_FN_NAME (frvbf,ckne) },
28271   { FRVBF_INSN_CKLE, SEM_FN_NAME (frvbf,ckle) },
28272   { FRVBF_INSN_CKGT, SEM_FN_NAME (frvbf,ckgt) },
28273   { FRVBF_INSN_CKLT, SEM_FN_NAME (frvbf,cklt) },
28274   { FRVBF_INSN_CKGE, SEM_FN_NAME (frvbf,ckge) },
28275   { FRVBF_INSN_CKLS, SEM_FN_NAME (frvbf,ckls) },
28276   { FRVBF_INSN_CKHI, SEM_FN_NAME (frvbf,ckhi) },
28277   { FRVBF_INSN_CKC, SEM_FN_NAME (frvbf,ckc) },
28278   { FRVBF_INSN_CKNC, SEM_FN_NAME (frvbf,cknc) },
28279   { FRVBF_INSN_CKN, SEM_FN_NAME (frvbf,ckn) },
28280   { FRVBF_INSN_CKP, SEM_FN_NAME (frvbf,ckp) },
28281   { FRVBF_INSN_CKV, SEM_FN_NAME (frvbf,ckv) },
28282   { FRVBF_INSN_CKNV, SEM_FN_NAME (frvbf,cknv) },
28283   { FRVBF_INSN_FCKRA, SEM_FN_NAME (frvbf,fckra) },
28284   { FRVBF_INSN_FCKNO, SEM_FN_NAME (frvbf,fckno) },
28285   { FRVBF_INSN_FCKNE, SEM_FN_NAME (frvbf,fckne) },
28286   { FRVBF_INSN_FCKEQ, SEM_FN_NAME (frvbf,fckeq) },
28287   { FRVBF_INSN_FCKLG, SEM_FN_NAME (frvbf,fcklg) },
28288   { FRVBF_INSN_FCKUE, SEM_FN_NAME (frvbf,fckue) },
28289   { FRVBF_INSN_FCKUL, SEM_FN_NAME (frvbf,fckul) },
28290   { FRVBF_INSN_FCKGE, SEM_FN_NAME (frvbf,fckge) },
28291   { FRVBF_INSN_FCKLT, SEM_FN_NAME (frvbf,fcklt) },
28292   { FRVBF_INSN_FCKUGE, SEM_FN_NAME (frvbf,fckuge) },
28293   { FRVBF_INSN_FCKUG, SEM_FN_NAME (frvbf,fckug) },
28294   { FRVBF_INSN_FCKLE, SEM_FN_NAME (frvbf,fckle) },
28295   { FRVBF_INSN_FCKGT, SEM_FN_NAME (frvbf,fckgt) },
28296   { FRVBF_INSN_FCKULE, SEM_FN_NAME (frvbf,fckule) },
28297   { FRVBF_INSN_FCKU, SEM_FN_NAME (frvbf,fcku) },
28298   { FRVBF_INSN_FCKO, SEM_FN_NAME (frvbf,fcko) },
28299   { FRVBF_INSN_CCKRA, SEM_FN_NAME (frvbf,cckra) },
28300   { FRVBF_INSN_CCKNO, SEM_FN_NAME (frvbf,cckno) },
28301   { FRVBF_INSN_CCKEQ, SEM_FN_NAME (frvbf,cckeq) },
28302   { FRVBF_INSN_CCKNE, SEM_FN_NAME (frvbf,cckne) },
28303   { FRVBF_INSN_CCKLE, SEM_FN_NAME (frvbf,cckle) },
28304   { FRVBF_INSN_CCKGT, SEM_FN_NAME (frvbf,cckgt) },
28305   { FRVBF_INSN_CCKLT, SEM_FN_NAME (frvbf,ccklt) },
28306   { FRVBF_INSN_CCKGE, SEM_FN_NAME (frvbf,cckge) },
28307   { FRVBF_INSN_CCKLS, SEM_FN_NAME (frvbf,cckls) },
28308   { FRVBF_INSN_CCKHI, SEM_FN_NAME (frvbf,cckhi) },
28309   { FRVBF_INSN_CCKC, SEM_FN_NAME (frvbf,cckc) },
28310   { FRVBF_INSN_CCKNC, SEM_FN_NAME (frvbf,ccknc) },
28311   { FRVBF_INSN_CCKN, SEM_FN_NAME (frvbf,cckn) },
28312   { FRVBF_INSN_CCKP, SEM_FN_NAME (frvbf,cckp) },
28313   { FRVBF_INSN_CCKV, SEM_FN_NAME (frvbf,cckv) },
28314   { FRVBF_INSN_CCKNV, SEM_FN_NAME (frvbf,ccknv) },
28315   { FRVBF_INSN_CFCKRA, SEM_FN_NAME (frvbf,cfckra) },
28316   { FRVBF_INSN_CFCKNO, SEM_FN_NAME (frvbf,cfckno) },
28317   { FRVBF_INSN_CFCKNE, SEM_FN_NAME (frvbf,cfckne) },
28318   { FRVBF_INSN_CFCKEQ, SEM_FN_NAME (frvbf,cfckeq) },
28319   { FRVBF_INSN_CFCKLG, SEM_FN_NAME (frvbf,cfcklg) },
28320   { FRVBF_INSN_CFCKUE, SEM_FN_NAME (frvbf,cfckue) },
28321   { FRVBF_INSN_CFCKUL, SEM_FN_NAME (frvbf,cfckul) },
28322   { FRVBF_INSN_CFCKGE, SEM_FN_NAME (frvbf,cfckge) },
28323   { FRVBF_INSN_CFCKLT, SEM_FN_NAME (frvbf,cfcklt) },
28324   { FRVBF_INSN_CFCKUGE, SEM_FN_NAME (frvbf,cfckuge) },
28325   { FRVBF_INSN_CFCKUG, SEM_FN_NAME (frvbf,cfckug) },
28326   { FRVBF_INSN_CFCKLE, SEM_FN_NAME (frvbf,cfckle) },
28327   { FRVBF_INSN_CFCKGT, SEM_FN_NAME (frvbf,cfckgt) },
28328   { FRVBF_INSN_CFCKULE, SEM_FN_NAME (frvbf,cfckule) },
28329   { FRVBF_INSN_CFCKU, SEM_FN_NAME (frvbf,cfcku) },
28330   { FRVBF_INSN_CFCKO, SEM_FN_NAME (frvbf,cfcko) },
28331   { FRVBF_INSN_CJMPL, SEM_FN_NAME (frvbf,cjmpl) },
28332   { FRVBF_INSN_CCALLL, SEM_FN_NAME (frvbf,ccalll) },
28333   { FRVBF_INSN_ICI, SEM_FN_NAME (frvbf,ici) },
28334   { FRVBF_INSN_DCI, SEM_FN_NAME (frvbf,dci) },
28335   { FRVBF_INSN_ICEI, SEM_FN_NAME (frvbf,icei) },
28336   { FRVBF_INSN_DCEI, SEM_FN_NAME (frvbf,dcei) },
28337   { FRVBF_INSN_DCF, SEM_FN_NAME (frvbf,dcf) },
28338   { FRVBF_INSN_DCEF, SEM_FN_NAME (frvbf,dcef) },
28339   { FRVBF_INSN_WITLB, SEM_FN_NAME (frvbf,witlb) },
28340   { FRVBF_INSN_WDTLB, SEM_FN_NAME (frvbf,wdtlb) },
28341   { FRVBF_INSN_ITLBI, SEM_FN_NAME (frvbf,itlbi) },
28342   { FRVBF_INSN_DTLBI, SEM_FN_NAME (frvbf,dtlbi) },
28343   { FRVBF_INSN_ICPL, SEM_FN_NAME (frvbf,icpl) },
28344   { FRVBF_INSN_DCPL, SEM_FN_NAME (frvbf,dcpl) },
28345   { FRVBF_INSN_ICUL, SEM_FN_NAME (frvbf,icul) },
28346   { FRVBF_INSN_DCUL, SEM_FN_NAME (frvbf,dcul) },
28347   { FRVBF_INSN_BAR, SEM_FN_NAME (frvbf,bar) },
28348   { FRVBF_INSN_MEMBAR, SEM_FN_NAME (frvbf,membar) },
28349   { FRVBF_INSN_COP1, SEM_FN_NAME (frvbf,cop1) },
28350   { FRVBF_INSN_COP2, SEM_FN_NAME (frvbf,cop2) },
28351   { FRVBF_INSN_CLRGR, SEM_FN_NAME (frvbf,clrgr) },
28352   { FRVBF_INSN_CLRFR, SEM_FN_NAME (frvbf,clrfr) },
28353   { FRVBF_INSN_CLRGA, SEM_FN_NAME (frvbf,clrga) },
28354   { FRVBF_INSN_CLRFA, SEM_FN_NAME (frvbf,clrfa) },
28355   { FRVBF_INSN_COMMITGR, SEM_FN_NAME (frvbf,commitgr) },
28356   { FRVBF_INSN_COMMITFR, SEM_FN_NAME (frvbf,commitfr) },
28357   { FRVBF_INSN_COMMITGA, SEM_FN_NAME (frvbf,commitga) },
28358   { FRVBF_INSN_COMMITFA, SEM_FN_NAME (frvbf,commitfa) },
28359   { FRVBF_INSN_FITOS, SEM_FN_NAME (frvbf,fitos) },
28360   { FRVBF_INSN_FSTOI, SEM_FN_NAME (frvbf,fstoi) },
28361   { FRVBF_INSN_FITOD, SEM_FN_NAME (frvbf,fitod) },
28362   { FRVBF_INSN_FDTOI, SEM_FN_NAME (frvbf,fdtoi) },
28363   { FRVBF_INSN_FDITOS, SEM_FN_NAME (frvbf,fditos) },
28364   { FRVBF_INSN_FDSTOI, SEM_FN_NAME (frvbf,fdstoi) },
28365   { FRVBF_INSN_NFDITOS, SEM_FN_NAME (frvbf,nfditos) },
28366   { FRVBF_INSN_NFDSTOI, SEM_FN_NAME (frvbf,nfdstoi) },
28367   { FRVBF_INSN_CFITOS, SEM_FN_NAME (frvbf,cfitos) },
28368   { FRVBF_INSN_CFSTOI, SEM_FN_NAME (frvbf,cfstoi) },
28369   { FRVBF_INSN_NFITOS, SEM_FN_NAME (frvbf,nfitos) },
28370   { FRVBF_INSN_NFSTOI, SEM_FN_NAME (frvbf,nfstoi) },
28371   { FRVBF_INSN_FMOVS, SEM_FN_NAME (frvbf,fmovs) },
28372   { FRVBF_INSN_FMOVD, SEM_FN_NAME (frvbf,fmovd) },
28373   { FRVBF_INSN_FDMOVS, SEM_FN_NAME (frvbf,fdmovs) },
28374   { FRVBF_INSN_CFMOVS, SEM_FN_NAME (frvbf,cfmovs) },
28375   { FRVBF_INSN_FNEGS, SEM_FN_NAME (frvbf,fnegs) },
28376   { FRVBF_INSN_FNEGD, SEM_FN_NAME (frvbf,fnegd) },
28377   { FRVBF_INSN_FDNEGS, SEM_FN_NAME (frvbf,fdnegs) },
28378   { FRVBF_INSN_CFNEGS, SEM_FN_NAME (frvbf,cfnegs) },
28379   { FRVBF_INSN_FABSS, SEM_FN_NAME (frvbf,fabss) },
28380   { FRVBF_INSN_FABSD, SEM_FN_NAME (frvbf,fabsd) },
28381   { FRVBF_INSN_FDABSS, SEM_FN_NAME (frvbf,fdabss) },
28382   { FRVBF_INSN_CFABSS, SEM_FN_NAME (frvbf,cfabss) },
28383   { FRVBF_INSN_FSQRTS, SEM_FN_NAME (frvbf,fsqrts) },
28384   { FRVBF_INSN_FDSQRTS, SEM_FN_NAME (frvbf,fdsqrts) },
28385   { FRVBF_INSN_NFDSQRTS, SEM_FN_NAME (frvbf,nfdsqrts) },
28386   { FRVBF_INSN_FSQRTD, SEM_FN_NAME (frvbf,fsqrtd) },
28387   { FRVBF_INSN_CFSQRTS, SEM_FN_NAME (frvbf,cfsqrts) },
28388   { FRVBF_INSN_NFSQRTS, SEM_FN_NAME (frvbf,nfsqrts) },
28389   { FRVBF_INSN_FADDS, SEM_FN_NAME (frvbf,fadds) },
28390   { FRVBF_INSN_FSUBS, SEM_FN_NAME (frvbf,fsubs) },
28391   { FRVBF_INSN_FMULS, SEM_FN_NAME (frvbf,fmuls) },
28392   { FRVBF_INSN_FDIVS, SEM_FN_NAME (frvbf,fdivs) },
28393   { FRVBF_INSN_FADDD, SEM_FN_NAME (frvbf,faddd) },
28394   { FRVBF_INSN_FSUBD, SEM_FN_NAME (frvbf,fsubd) },
28395   { FRVBF_INSN_FMULD, SEM_FN_NAME (frvbf,fmuld) },
28396   { FRVBF_INSN_FDIVD, SEM_FN_NAME (frvbf,fdivd) },
28397   { FRVBF_INSN_CFADDS, SEM_FN_NAME (frvbf,cfadds) },
28398   { FRVBF_INSN_CFSUBS, SEM_FN_NAME (frvbf,cfsubs) },
28399   { FRVBF_INSN_CFMULS, SEM_FN_NAME (frvbf,cfmuls) },
28400   { FRVBF_INSN_CFDIVS, SEM_FN_NAME (frvbf,cfdivs) },
28401   { FRVBF_INSN_NFADDS, SEM_FN_NAME (frvbf,nfadds) },
28402   { FRVBF_INSN_NFSUBS, SEM_FN_NAME (frvbf,nfsubs) },
28403   { FRVBF_INSN_NFMULS, SEM_FN_NAME (frvbf,nfmuls) },
28404   { FRVBF_INSN_NFDIVS, SEM_FN_NAME (frvbf,nfdivs) },
28405   { FRVBF_INSN_FCMPS, SEM_FN_NAME (frvbf,fcmps) },
28406   { FRVBF_INSN_FCMPD, SEM_FN_NAME (frvbf,fcmpd) },
28407   { FRVBF_INSN_CFCMPS, SEM_FN_NAME (frvbf,cfcmps) },
28408   { FRVBF_INSN_FDCMPS, SEM_FN_NAME (frvbf,fdcmps) },
28409   { FRVBF_INSN_FMADDS, SEM_FN_NAME (frvbf,fmadds) },
28410   { FRVBF_INSN_FMSUBS, SEM_FN_NAME (frvbf,fmsubs) },
28411   { FRVBF_INSN_FMADDD, SEM_FN_NAME (frvbf,fmaddd) },
28412   { FRVBF_INSN_FMSUBD, SEM_FN_NAME (frvbf,fmsubd) },
28413   { FRVBF_INSN_FDMADDS, SEM_FN_NAME (frvbf,fdmadds) },
28414   { FRVBF_INSN_NFDMADDS, SEM_FN_NAME (frvbf,nfdmadds) },
28415   { FRVBF_INSN_CFMADDS, SEM_FN_NAME (frvbf,cfmadds) },
28416   { FRVBF_INSN_CFMSUBS, SEM_FN_NAME (frvbf,cfmsubs) },
28417   { FRVBF_INSN_NFMADDS, SEM_FN_NAME (frvbf,nfmadds) },
28418   { FRVBF_INSN_NFMSUBS, SEM_FN_NAME (frvbf,nfmsubs) },
28419   { FRVBF_INSN_FMAS, SEM_FN_NAME (frvbf,fmas) },
28420   { FRVBF_INSN_FMSS, SEM_FN_NAME (frvbf,fmss) },
28421   { FRVBF_INSN_FDMAS, SEM_FN_NAME (frvbf,fdmas) },
28422   { FRVBF_INSN_FDMSS, SEM_FN_NAME (frvbf,fdmss) },
28423   { FRVBF_INSN_NFDMAS, SEM_FN_NAME (frvbf,nfdmas) },
28424   { FRVBF_INSN_NFDMSS, SEM_FN_NAME (frvbf,nfdmss) },
28425   { FRVBF_INSN_CFMAS, SEM_FN_NAME (frvbf,cfmas) },
28426   { FRVBF_INSN_CFMSS, SEM_FN_NAME (frvbf,cfmss) },
28427   { FRVBF_INSN_FMAD, SEM_FN_NAME (frvbf,fmad) },
28428   { FRVBF_INSN_FMSD, SEM_FN_NAME (frvbf,fmsd) },
28429   { FRVBF_INSN_NFMAS, SEM_FN_NAME (frvbf,nfmas) },
28430   { FRVBF_INSN_NFMSS, SEM_FN_NAME (frvbf,nfmss) },
28431   { FRVBF_INSN_FDADDS, SEM_FN_NAME (frvbf,fdadds) },
28432   { FRVBF_INSN_FDSUBS, SEM_FN_NAME (frvbf,fdsubs) },
28433   { FRVBF_INSN_FDMULS, SEM_FN_NAME (frvbf,fdmuls) },
28434   { FRVBF_INSN_FDDIVS, SEM_FN_NAME (frvbf,fddivs) },
28435   { FRVBF_INSN_FDSADS, SEM_FN_NAME (frvbf,fdsads) },
28436   { FRVBF_INSN_FDMULCS, SEM_FN_NAME (frvbf,fdmulcs) },
28437   { FRVBF_INSN_NFDMULCS, SEM_FN_NAME (frvbf,nfdmulcs) },
28438   { FRVBF_INSN_NFDADDS, SEM_FN_NAME (frvbf,nfdadds) },
28439   { FRVBF_INSN_NFDSUBS, SEM_FN_NAME (frvbf,nfdsubs) },
28440   { FRVBF_INSN_NFDMULS, SEM_FN_NAME (frvbf,nfdmuls) },
28441   { FRVBF_INSN_NFDDIVS, SEM_FN_NAME (frvbf,nfddivs) },
28442   { FRVBF_INSN_NFDSADS, SEM_FN_NAME (frvbf,nfdsads) },
28443   { FRVBF_INSN_NFDCMPS, SEM_FN_NAME (frvbf,nfdcmps) },
28444   { FRVBF_INSN_MHSETLOS, SEM_FN_NAME (frvbf,mhsetlos) },
28445   { FRVBF_INSN_MHSETHIS, SEM_FN_NAME (frvbf,mhsethis) },
28446   { FRVBF_INSN_MHDSETS, SEM_FN_NAME (frvbf,mhdsets) },
28447   { FRVBF_INSN_MHSETLOH, SEM_FN_NAME (frvbf,mhsetloh) },
28448   { FRVBF_INSN_MHSETHIH, SEM_FN_NAME (frvbf,mhsethih) },
28449   { FRVBF_INSN_MHDSETH, SEM_FN_NAME (frvbf,mhdseth) },
28450   { FRVBF_INSN_MAND, SEM_FN_NAME (frvbf,mand) },
28451   { FRVBF_INSN_MOR, SEM_FN_NAME (frvbf,mor) },
28452   { FRVBF_INSN_MXOR, SEM_FN_NAME (frvbf,mxor) },
28453   { FRVBF_INSN_CMAND, SEM_FN_NAME (frvbf,cmand) },
28454   { FRVBF_INSN_CMOR, SEM_FN_NAME (frvbf,cmor) },
28455   { FRVBF_INSN_CMXOR, SEM_FN_NAME (frvbf,cmxor) },
28456   { FRVBF_INSN_MNOT, SEM_FN_NAME (frvbf,mnot) },
28457   { FRVBF_INSN_CMNOT, SEM_FN_NAME (frvbf,cmnot) },
28458   { FRVBF_INSN_MROTLI, SEM_FN_NAME (frvbf,mrotli) },
28459   { FRVBF_INSN_MROTRI, SEM_FN_NAME (frvbf,mrotri) },
28460   { FRVBF_INSN_MWCUT, SEM_FN_NAME (frvbf,mwcut) },
28461   { FRVBF_INSN_MWCUTI, SEM_FN_NAME (frvbf,mwcuti) },
28462   { FRVBF_INSN_MCUT, SEM_FN_NAME (frvbf,mcut) },
28463   { FRVBF_INSN_MCUTI, SEM_FN_NAME (frvbf,mcuti) },
28464   { FRVBF_INSN_MCUTSS, SEM_FN_NAME (frvbf,mcutss) },
28465   { FRVBF_INSN_MCUTSSI, SEM_FN_NAME (frvbf,mcutssi) },
28466   { FRVBF_INSN_MDCUTSSI, SEM_FN_NAME (frvbf,mdcutssi) },
28467   { FRVBF_INSN_MAVEH, SEM_FN_NAME (frvbf,maveh) },
28468   { FRVBF_INSN_MSLLHI, SEM_FN_NAME (frvbf,msllhi) },
28469   { FRVBF_INSN_MSRLHI, SEM_FN_NAME (frvbf,msrlhi) },
28470   { FRVBF_INSN_MSRAHI, SEM_FN_NAME (frvbf,msrahi) },
28471   { FRVBF_INSN_MDROTLI, SEM_FN_NAME (frvbf,mdrotli) },
28472   { FRVBF_INSN_MCPLHI, SEM_FN_NAME (frvbf,mcplhi) },
28473   { FRVBF_INSN_MCPLI, SEM_FN_NAME (frvbf,mcpli) },
28474   { FRVBF_INSN_MSATHS, SEM_FN_NAME (frvbf,msaths) },
28475   { FRVBF_INSN_MQSATHS, SEM_FN_NAME (frvbf,mqsaths) },
28476   { FRVBF_INSN_MSATHU, SEM_FN_NAME (frvbf,msathu) },
28477   { FRVBF_INSN_MCMPSH, SEM_FN_NAME (frvbf,mcmpsh) },
28478   { FRVBF_INSN_MCMPUH, SEM_FN_NAME (frvbf,mcmpuh) },
28479   { FRVBF_INSN_MABSHS, SEM_FN_NAME (frvbf,mabshs) },
28480   { FRVBF_INSN_MADDHSS, SEM_FN_NAME (frvbf,maddhss) },
28481   { FRVBF_INSN_MADDHUS, SEM_FN_NAME (frvbf,maddhus) },
28482   { FRVBF_INSN_MSUBHSS, SEM_FN_NAME (frvbf,msubhss) },
28483   { FRVBF_INSN_MSUBHUS, SEM_FN_NAME (frvbf,msubhus) },
28484   { FRVBF_INSN_CMADDHSS, SEM_FN_NAME (frvbf,cmaddhss) },
28485   { FRVBF_INSN_CMADDHUS, SEM_FN_NAME (frvbf,cmaddhus) },
28486   { FRVBF_INSN_CMSUBHSS, SEM_FN_NAME (frvbf,cmsubhss) },
28487   { FRVBF_INSN_CMSUBHUS, SEM_FN_NAME (frvbf,cmsubhus) },
28488   { FRVBF_INSN_MQADDHSS, SEM_FN_NAME (frvbf,mqaddhss) },
28489   { FRVBF_INSN_MQADDHUS, SEM_FN_NAME (frvbf,mqaddhus) },
28490   { FRVBF_INSN_MQSUBHSS, SEM_FN_NAME (frvbf,mqsubhss) },
28491   { FRVBF_INSN_MQSUBHUS, SEM_FN_NAME (frvbf,mqsubhus) },
28492   { FRVBF_INSN_CMQADDHSS, SEM_FN_NAME (frvbf,cmqaddhss) },
28493   { FRVBF_INSN_CMQADDHUS, SEM_FN_NAME (frvbf,cmqaddhus) },
28494   { FRVBF_INSN_CMQSUBHSS, SEM_FN_NAME (frvbf,cmqsubhss) },
28495   { FRVBF_INSN_CMQSUBHUS, SEM_FN_NAME (frvbf,cmqsubhus) },
28496   { FRVBF_INSN_MADDACCS, SEM_FN_NAME (frvbf,maddaccs) },
28497   { FRVBF_INSN_MSUBACCS, SEM_FN_NAME (frvbf,msubaccs) },
28498   { FRVBF_INSN_MDADDACCS, SEM_FN_NAME (frvbf,mdaddaccs) },
28499   { FRVBF_INSN_MDSUBACCS, SEM_FN_NAME (frvbf,mdsubaccs) },
28500   { FRVBF_INSN_MASACCS, SEM_FN_NAME (frvbf,masaccs) },
28501   { FRVBF_INSN_MDASACCS, SEM_FN_NAME (frvbf,mdasaccs) },
28502   { FRVBF_INSN_MMULHS, SEM_FN_NAME (frvbf,mmulhs) },
28503   { FRVBF_INSN_MMULHU, SEM_FN_NAME (frvbf,mmulhu) },
28504   { FRVBF_INSN_MMULXHS, SEM_FN_NAME (frvbf,mmulxhs) },
28505   { FRVBF_INSN_MMULXHU, SEM_FN_NAME (frvbf,mmulxhu) },
28506   { FRVBF_INSN_CMMULHS, SEM_FN_NAME (frvbf,cmmulhs) },
28507   { FRVBF_INSN_CMMULHU, SEM_FN_NAME (frvbf,cmmulhu) },
28508   { FRVBF_INSN_MQMULHS, SEM_FN_NAME (frvbf,mqmulhs) },
28509   { FRVBF_INSN_MQMULHU, SEM_FN_NAME (frvbf,mqmulhu) },
28510   { FRVBF_INSN_MQMULXHS, SEM_FN_NAME (frvbf,mqmulxhs) },
28511   { FRVBF_INSN_MQMULXHU, SEM_FN_NAME (frvbf,mqmulxhu) },
28512   { FRVBF_INSN_CMQMULHS, SEM_FN_NAME (frvbf,cmqmulhs) },
28513   { FRVBF_INSN_CMQMULHU, SEM_FN_NAME (frvbf,cmqmulhu) },
28514   { FRVBF_INSN_MMACHS, SEM_FN_NAME (frvbf,mmachs) },
28515   { FRVBF_INSN_MMACHU, SEM_FN_NAME (frvbf,mmachu) },
28516   { FRVBF_INSN_MMRDHS, SEM_FN_NAME (frvbf,mmrdhs) },
28517   { FRVBF_INSN_MMRDHU, SEM_FN_NAME (frvbf,mmrdhu) },
28518   { FRVBF_INSN_CMMACHS, SEM_FN_NAME (frvbf,cmmachs) },
28519   { FRVBF_INSN_CMMACHU, SEM_FN_NAME (frvbf,cmmachu) },
28520   { FRVBF_INSN_MQMACHS, SEM_FN_NAME (frvbf,mqmachs) },
28521   { FRVBF_INSN_MQMACHU, SEM_FN_NAME (frvbf,mqmachu) },
28522   { FRVBF_INSN_CMQMACHS, SEM_FN_NAME (frvbf,cmqmachs) },
28523   { FRVBF_INSN_CMQMACHU, SEM_FN_NAME (frvbf,cmqmachu) },
28524   { FRVBF_INSN_MQXMACHS, SEM_FN_NAME (frvbf,mqxmachs) },
28525   { FRVBF_INSN_MQXMACXHS, SEM_FN_NAME (frvbf,mqxmacxhs) },
28526   { FRVBF_INSN_MQMACXHS, SEM_FN_NAME (frvbf,mqmacxhs) },
28527   { FRVBF_INSN_MCPXRS, SEM_FN_NAME (frvbf,mcpxrs) },
28528   { FRVBF_INSN_MCPXRU, SEM_FN_NAME (frvbf,mcpxru) },
28529   { FRVBF_INSN_MCPXIS, SEM_FN_NAME (frvbf,mcpxis) },
28530   { FRVBF_INSN_MCPXIU, SEM_FN_NAME (frvbf,mcpxiu) },
28531   { FRVBF_INSN_CMCPXRS, SEM_FN_NAME (frvbf,cmcpxrs) },
28532   { FRVBF_INSN_CMCPXRU, SEM_FN_NAME (frvbf,cmcpxru) },
28533   { FRVBF_INSN_CMCPXIS, SEM_FN_NAME (frvbf,cmcpxis) },
28534   { FRVBF_INSN_CMCPXIU, SEM_FN_NAME (frvbf,cmcpxiu) },
28535   { FRVBF_INSN_MQCPXRS, SEM_FN_NAME (frvbf,mqcpxrs) },
28536   { FRVBF_INSN_MQCPXRU, SEM_FN_NAME (frvbf,mqcpxru) },
28537   { FRVBF_INSN_MQCPXIS, SEM_FN_NAME (frvbf,mqcpxis) },
28538   { FRVBF_INSN_MQCPXIU, SEM_FN_NAME (frvbf,mqcpxiu) },
28539   { FRVBF_INSN_MEXPDHW, SEM_FN_NAME (frvbf,mexpdhw) },
28540   { FRVBF_INSN_CMEXPDHW, SEM_FN_NAME (frvbf,cmexpdhw) },
28541   { FRVBF_INSN_MEXPDHD, SEM_FN_NAME (frvbf,mexpdhd) },
28542   { FRVBF_INSN_CMEXPDHD, SEM_FN_NAME (frvbf,cmexpdhd) },
28543   { FRVBF_INSN_MPACKH, SEM_FN_NAME (frvbf,mpackh) },
28544   { FRVBF_INSN_MDPACKH, SEM_FN_NAME (frvbf,mdpackh) },
28545   { FRVBF_INSN_MUNPACKH, SEM_FN_NAME (frvbf,munpackh) },
28546   { FRVBF_INSN_MDUNPACKH, SEM_FN_NAME (frvbf,mdunpackh) },
28547   { FRVBF_INSN_MBTOH, SEM_FN_NAME (frvbf,mbtoh) },
28548   { FRVBF_INSN_CMBTOH, SEM_FN_NAME (frvbf,cmbtoh) },
28549   { FRVBF_INSN_MHTOB, SEM_FN_NAME (frvbf,mhtob) },
28550   { FRVBF_INSN_CMHTOB, SEM_FN_NAME (frvbf,cmhtob) },
28551   { FRVBF_INSN_MBTOHE, SEM_FN_NAME (frvbf,mbtohe) },
28552   { FRVBF_INSN_CMBTOHE, SEM_FN_NAME (frvbf,cmbtohe) },
28553   { FRVBF_INSN_MNOP, SEM_FN_NAME (frvbf,mnop) },
28554   { FRVBF_INSN_MCLRACC_0, SEM_FN_NAME (frvbf,mclracc_0) },
28555   { FRVBF_INSN_MCLRACC_1, SEM_FN_NAME (frvbf,mclracc_1) },
28556   { FRVBF_INSN_MRDACC, SEM_FN_NAME (frvbf,mrdacc) },
28557   { FRVBF_INSN_MRDACCG, SEM_FN_NAME (frvbf,mrdaccg) },
28558   { FRVBF_INSN_MWTACC, SEM_FN_NAME (frvbf,mwtacc) },
28559   { FRVBF_INSN_MWTACCG, SEM_FN_NAME (frvbf,mwtaccg) },
28560   { FRVBF_INSN_MCOP1, SEM_FN_NAME (frvbf,mcop1) },
28561   { FRVBF_INSN_MCOP2, SEM_FN_NAME (frvbf,mcop2) },
28562   { FRVBF_INSN_FNOP, SEM_FN_NAME (frvbf,fnop) },
28563   { 0, 0 }
28564 };
28565
28566 /* Add the semantic fns to IDESC_TABLE.  */
28567
28568 void
28569 SEM_FN_NAME (frvbf,init_idesc_table) (SIM_CPU *current_cpu)
28570 {
28571   IDESC *idesc_table = CPU_IDESC (current_cpu);
28572   const struct sem_fn_desc *sf;
28573   int mach_num = MACH_NUM (CPU_MACH (current_cpu));
28574
28575   for (sf = &sem_fns[0]; sf->fn != 0; ++sf)
28576     {
28577       const CGEN_INSN *insn = idesc_table[sf->index].idata;
28578       int valid_p = (CGEN_INSN_VIRTUAL_P (insn)
28579                      || CGEN_INSN_MACH_HAS_P (insn, mach_num));
28580 #if FAST_P
28581       if (valid_p)
28582         idesc_table[sf->index].sem_fast = sf->fn;
28583       else
28584         idesc_table[sf->index].sem_fast = SEM_FN_NAME (frvbf,x_invalid);
28585 #else
28586       if (valid_p)
28587         idesc_table[sf->index].sem_full = sf->fn;
28588       else
28589         idesc_table[sf->index].sem_full = SEM_FN_NAME (frvbf,x_invalid);
28590 #endif
28591     }
28592 }
28593