cpu/
[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_scutss.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 /* smu: smu$pack $GRi,$GRj */
453
454 static SEM_PC
455 SEM_FN_NAME (frvbf,smu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
456 {
457 #define FLD(f) abuf->fields.sfmt_smass.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     DI opval = MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi))), EXTSIDI (GET_H_GR (FLD (f_GRj))));
465     sim_queue_fn_di_write (current_cpu, frvbf_h_iacc0_set, ((UINT) 0), opval);
466     TRACE_RESULT (current_cpu, abuf, "iacc0", 'D', opval);
467   }
468
469   return vpc;
470 #undef FLD
471 }
472
473 /* smass: smass$pack $GRi,$GRj */
474
475 static SEM_PC
476 SEM_FN_NAME (frvbf,smass) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
477 {
478 #define FLD(f) abuf->fields.sfmt_smass.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     DI opval = (ANDIF (ANDIF (GTDI (MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi))), EXTSIDI (GET_H_GR (FLD (f_GRj)))), 0), GTDI (GET_H_IACC0 (((UINT) 0)), 0)), LTDI (SUBDI (9223372036854775807, MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi))), EXTSIDI (GET_H_GR (FLD (f_GRj))))), GET_H_IACC0 (((UINT) 0))))) ? (MAKEDI (2147483647, 0xffffffff)) : (ANDIF (ANDIF (LTDI (MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi))), EXTSIDI (GET_H_GR (FLD (f_GRj)))), 0), LTDI (GET_H_IACC0 (((UINT) 0)), 0)), GTDI (SUBDI (9223372036854775808, MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi))), EXTSIDI (GET_H_GR (FLD (f_GRj))))), GET_H_IACC0 (((UINT) 0))))) ? (MAKEDI (0x80000000, 0)) : (ADDDI (GET_H_IACC0 (((UINT) 0)), MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi))), EXTSIDI (GET_H_GR (FLD (f_GRj))))));
486     sim_queue_fn_di_write (current_cpu, frvbf_h_iacc0_set, ((UINT) 0), opval);
487     TRACE_RESULT (current_cpu, abuf, "iacc0", 'D', opval);
488   }
489
490   return vpc;
491 #undef FLD
492 }
493
494 /* smsss: smsss$pack $GRi,$GRj */
495
496 static SEM_PC
497 SEM_FN_NAME (frvbf,smsss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
498 {
499 #define FLD(f) abuf->fields.sfmt_smass.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     DI opval = (ANDIF (ANDIF (LTDI (MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi))), EXTSIDI (GET_H_GR (FLD (f_GRj)))), 0), GTDI (GET_H_IACC0 (((UINT) 0)), 0)), LTDI (ADDDI (9223372036854775807, MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi))), EXTSIDI (GET_H_GR (FLD (f_GRj))))), GET_H_IACC0 (((UINT) 0))))) ? (MAKEDI (2147483647, 0xffffffff)) : (ANDIF (ANDIF (GTDI (MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi))), EXTSIDI (GET_H_GR (FLD (f_GRj)))), 0), LTDI (GET_H_IACC0 (((UINT) 0)), 0)), GTDI (ADDDI (9223372036854775808, MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi))), EXTSIDI (GET_H_GR (FLD (f_GRj))))), GET_H_IACC0 (((UINT) 0))))) ? (MAKEDI (0x80000000, 0)) : (SUBDI (GET_H_IACC0 (((UINT) 0)), MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi))), EXTSIDI (GET_H_GR (FLD (f_GRj))))));
507     sim_queue_fn_di_write (current_cpu, frvbf_h_iacc0_set, ((UINT) 0), opval);
508     TRACE_RESULT (current_cpu, abuf, "iacc0", 'D', opval);
509   }
510
511   return vpc;
512 #undef FLD
513 }
514
515 /* sll: sll$pack $GRi,$GRj,$GRk */
516
517 static SEM_PC
518 SEM_FN_NAME (frvbf,sll) (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 opval = SLLSI (GET_H_GR (FLD (f_GRi)), ANDSI (GET_H_GR (FLD (f_GRj)), 31));
528     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
529     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
530   }
531
532   return vpc;
533 #undef FLD
534 }
535
536 /* srl: srl$pack $GRi,$GRj,$GRk */
537
538 static SEM_PC
539 SEM_FN_NAME (frvbf,srl) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
540 {
541 #define FLD(f) abuf->fields.sfmt_addcc.f
542   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
543   int UNUSED written = 0;
544   IADDR UNUSED pc = abuf->addr;
545   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
546
547   {
548     SI opval = SRLSI (GET_H_GR (FLD (f_GRi)), ANDSI (GET_H_GR (FLD (f_GRj)), 31));
549     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
550     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
551   }
552
553   return vpc;
554 #undef FLD
555 }
556
557 /* sra: sra$pack $GRi,$GRj,$GRk */
558
559 static SEM_PC
560 SEM_FN_NAME (frvbf,sra) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
561 {
562 #define FLD(f) abuf->fields.sfmt_addcc.f
563   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
564   int UNUSED written = 0;
565   IADDR UNUSED pc = abuf->addr;
566   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
567
568   {
569     SI opval = SRASI (GET_H_GR (FLD (f_GRi)), ANDSI (GET_H_GR (FLD (f_GRj)), 31));
570     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
571     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
572   }
573
574   return vpc;
575 #undef FLD
576 }
577
578 /* slass: slass$pack $GRi,$GRj,$GRk */
579
580 static SEM_PC
581 SEM_FN_NAME (frvbf,slass) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
582 {
583 #define FLD(f) abuf->fields.sfmt_addcc.f
584   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
585   int UNUSED written = 0;
586   IADDR UNUSED pc = abuf->addr;
587   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
588
589   {
590     SI opval = frvbf_shift_left_arith_saturate (current_cpu, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
591     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
592     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
593   }
594
595   return vpc;
596 #undef FLD
597 }
598
599 /* scutss: scutss$pack $GRj,$GRk */
600
601 static SEM_PC
602 SEM_FN_NAME (frvbf,scutss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
603 {
604 #define FLD(f) abuf->fields.sfmt_scutss.f
605   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
606   int UNUSED written = 0;
607   IADDR UNUSED pc = abuf->addr;
608   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
609
610   {
611     SI opval = frvbf_iacc_cut (current_cpu, GET_H_IACC0 (((UINT) 0)), GET_H_GR (FLD (f_GRj)));
612     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
613     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
614   }
615
616   return vpc;
617 #undef FLD
618 }
619
620 /* scan: scan$pack $GRi,$GRj,$GRk */
621
622 static SEM_PC
623 SEM_FN_NAME (frvbf,scan) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
624 {
625 #define FLD(f) abuf->fields.sfmt_addcc.f
626   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
627   int UNUSED written = 0;
628   IADDR UNUSED pc = abuf->addr;
629   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
630
631 {
632   SI tmp_tmp1;
633   SI tmp_tmp2;
634   tmp_tmp1 = GET_H_GR (FLD (f_GRi));
635   tmp_tmp2 = SRASI (GET_H_GR (FLD (f_GRj)), 1);
636   {
637     SI opval = frvbf_scan_result (current_cpu, XORSI (tmp_tmp1, tmp_tmp2));
638     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
639     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
640   }
641 }
642
643   return vpc;
644 #undef FLD
645 }
646
647 /* cadd: cadd$pack $GRi,$GRj,$GRk,$CCi,$cond */
648
649 static SEM_PC
650 SEM_FN_NAME (frvbf,cadd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
651 {
652 #define FLD(f) abuf->fields.sfmt_cswap.f
653   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
654   int UNUSED written = 0;
655   IADDR UNUSED pc = abuf->addr;
656   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
657
658 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
659   {
660     SI opval = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
661     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
662     written |= (1 << 4);
663     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
664   }
665 }
666
667   abuf->written = written;
668   return vpc;
669 #undef FLD
670 }
671
672 /* csub: csub$pack $GRi,$GRj,$GRk,$CCi,$cond */
673
674 static SEM_PC
675 SEM_FN_NAME (frvbf,csub) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
676 {
677 #define FLD(f) abuf->fields.sfmt_cswap.f
678   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
679   int UNUSED written = 0;
680   IADDR UNUSED pc = abuf->addr;
681   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
682
683 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
684   {
685     SI opval = SUBSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
686     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
687     written |= (1 << 4);
688     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
689   }
690 }
691
692   abuf->written = written;
693   return vpc;
694 #undef FLD
695 }
696
697 /* cand: cand$pack $GRi,$GRj,$GRk,$CCi,$cond */
698
699 static SEM_PC
700 SEM_FN_NAME (frvbf,cand) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
701 {
702 #define FLD(f) abuf->fields.sfmt_cswap.f
703   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
704   int UNUSED written = 0;
705   IADDR UNUSED pc = abuf->addr;
706   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
707
708 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
709   {
710     SI opval = ANDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
711     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
712     written |= (1 << 4);
713     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
714   }
715 }
716
717   abuf->written = written;
718   return vpc;
719 #undef FLD
720 }
721
722 /* cor: cor$pack $GRi,$GRj,$GRk,$CCi,$cond */
723
724 static SEM_PC
725 SEM_FN_NAME (frvbf,cor) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
726 {
727 #define FLD(f) abuf->fields.sfmt_cswap.f
728   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
729   int UNUSED written = 0;
730   IADDR UNUSED pc = abuf->addr;
731   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
732
733 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
734   {
735     SI opval = ORSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
736     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
737     written |= (1 << 4);
738     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
739   }
740 }
741
742   abuf->written = written;
743   return vpc;
744 #undef FLD
745 }
746
747 /* cxor: cxor$pack $GRi,$GRj,$GRk,$CCi,$cond */
748
749 static SEM_PC
750 SEM_FN_NAME (frvbf,cxor) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
751 {
752 #define FLD(f) abuf->fields.sfmt_cswap.f
753   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
754   int UNUSED written = 0;
755   IADDR UNUSED pc = abuf->addr;
756   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
757
758 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
759   {
760     SI opval = XORSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
761     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
762     written |= (1 << 4);
763     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
764   }
765 }
766
767   abuf->written = written;
768   return vpc;
769 #undef FLD
770 }
771
772 /* cnot: cnot$pack $GRj,$GRk,$CCi,$cond */
773
774 static SEM_PC
775 SEM_FN_NAME (frvbf,cnot) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
776 {
777 #define FLD(f) abuf->fields.sfmt_cswap.f
778   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
779   int UNUSED written = 0;
780   IADDR UNUSED pc = abuf->addr;
781   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
782
783 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
784   {
785     SI opval = INVSI (GET_H_GR (FLD (f_GRj)));
786     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
787     written |= (1 << 3);
788     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
789   }
790 }
791
792   abuf->written = written;
793   return vpc;
794 #undef FLD
795 }
796
797 /* csmul: csmul$pack $GRi,$GRj,$GRdoublek,$CCi,$cond */
798
799 static SEM_PC
800 SEM_FN_NAME (frvbf,csmul) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
801 {
802 #define FLD(f) abuf->fields.sfmt_clddu.f
803   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
804   int UNUSED written = 0;
805   IADDR UNUSED pc = abuf->addr;
806   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
807
808 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
809   {
810     DI opval = MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi))), EXTSIDI (GET_H_GR (FLD (f_GRj))));
811     sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
812     written |= (1 << 4);
813     TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
814   }
815 }
816
817   abuf->written = written;
818   return vpc;
819 #undef FLD
820 }
821
822 /* csdiv: csdiv$pack $GRi,$GRj,$GRk,$CCi,$cond */
823
824 static SEM_PC
825 SEM_FN_NAME (frvbf,csdiv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
826 {
827 #define FLD(f) abuf->fields.sfmt_cswap.f
828   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
829   int UNUSED written = 0;
830   IADDR UNUSED pc = abuf->addr;
831   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
832
833 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
834 {
835 frvbf_signed_integer_divide (current_cpu, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), FLD (f_GRk), 0);
836 ; /*clobber*/
837 }
838 }
839
840   abuf->written = written;
841   return vpc;
842 #undef FLD
843 }
844
845 /* cudiv: cudiv$pack $GRi,$GRj,$GRk,$CCi,$cond */
846
847 static SEM_PC
848 SEM_FN_NAME (frvbf,cudiv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
849 {
850 #define FLD(f) abuf->fields.sfmt_cswap.f
851   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
852   int UNUSED written = 0;
853   IADDR UNUSED pc = abuf->addr;
854   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
855
856 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
857 {
858 frvbf_unsigned_integer_divide (current_cpu, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), FLD (f_GRk), 0);
859 ; /*clobber*/
860 }
861 }
862
863   abuf->written = written;
864   return vpc;
865 #undef FLD
866 }
867
868 /* csll: csll$pack $GRi,$GRj,$GRk,$CCi,$cond */
869
870 static SEM_PC
871 SEM_FN_NAME (frvbf,csll) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
872 {
873 #define FLD(f) abuf->fields.sfmt_cswap.f
874   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
875   int UNUSED written = 0;
876   IADDR UNUSED pc = abuf->addr;
877   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
878
879 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
880   {
881     SI opval = SLLSI (GET_H_GR (FLD (f_GRi)), ANDSI (GET_H_GR (FLD (f_GRj)), 31));
882     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
883     written |= (1 << 4);
884     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
885   }
886 }
887
888   abuf->written = written;
889   return vpc;
890 #undef FLD
891 }
892
893 /* csrl: csrl$pack $GRi,$GRj,$GRk,$CCi,$cond */
894
895 static SEM_PC
896 SEM_FN_NAME (frvbf,csrl) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
897 {
898 #define FLD(f) abuf->fields.sfmt_cswap.f
899   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
900   int UNUSED written = 0;
901   IADDR UNUSED pc = abuf->addr;
902   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
903
904 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
905   {
906     SI opval = SRLSI (GET_H_GR (FLD (f_GRi)), ANDSI (GET_H_GR (FLD (f_GRj)), 31));
907     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
908     written |= (1 << 4);
909     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
910   }
911 }
912
913   abuf->written = written;
914   return vpc;
915 #undef FLD
916 }
917
918 /* csra: csra$pack $GRi,$GRj,$GRk,$CCi,$cond */
919
920 static SEM_PC
921 SEM_FN_NAME (frvbf,csra) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
922 {
923 #define FLD(f) abuf->fields.sfmt_cswap.f
924   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
925   int UNUSED written = 0;
926   IADDR UNUSED pc = abuf->addr;
927   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
928
929 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
930   {
931     SI opval = SRASI (GET_H_GR (FLD (f_GRi)), ANDSI (GET_H_GR (FLD (f_GRj)), 31));
932     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
933     written |= (1 << 4);
934     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
935   }
936 }
937
938   abuf->written = written;
939   return vpc;
940 #undef FLD
941 }
942
943 /* cscan: cscan$pack $GRi,$GRj,$GRk,$CCi,$cond */
944
945 static SEM_PC
946 SEM_FN_NAME (frvbf,cscan) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
947 {
948 #define FLD(f) abuf->fields.sfmt_cswap.f
949   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
950   int UNUSED written = 0;
951   IADDR UNUSED pc = abuf->addr;
952   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
953
954 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
955 {
956   SI tmp_tmp1;
957   SI tmp_tmp2;
958   tmp_tmp1 = GET_H_GR (FLD (f_GRi));
959   tmp_tmp2 = SRASI (GET_H_GR (FLD (f_GRj)), 1);
960   {
961     SI opval = frvbf_scan_result (current_cpu, XORSI (tmp_tmp1, tmp_tmp2));
962     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
963     written |= (1 << 4);
964     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
965   }
966 }
967 }
968
969   abuf->written = written;
970   return vpc;
971 #undef FLD
972 }
973
974 /* addcc: addcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
975
976 static SEM_PC
977 SEM_FN_NAME (frvbf,addcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
978 {
979 #define FLD(f) abuf->fields.sfmt_addcc.f
980   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
981   int UNUSED written = 0;
982   IADDR UNUSED pc = abuf->addr;
983   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
984
985 {
986   BI tmp_tmp;
987   QI tmp_cc;
988   SI tmp_result;
989   tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
990   tmp_tmp = ADDOFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), 0);
991 if (EQBI (tmp_tmp, 0)) {
992   tmp_cc = ANDQI (tmp_cc, 13);
993 } else {
994   tmp_cc = ORQI (tmp_cc, 2);
995 }
996   tmp_tmp = ADDCFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), 0);
997 if (EQBI (tmp_tmp, 0)) {
998   tmp_cc = ANDQI (tmp_cc, 14);
999 } else {
1000   tmp_cc = ORQI (tmp_cc, 1);
1001 }
1002   tmp_result = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
1003 if (EQSI (tmp_result, 0)) {
1004   tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
1005 } else {
1006 if (LTSI (tmp_result, 0)) {
1007   tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
1008 } else {
1009   tmp_cc = ANDQI (tmp_cc, 3);
1010 }
1011 }
1012   {
1013     SI opval = tmp_result;
1014     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1015     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1016   }
1017   {
1018     UQI opval = tmp_cc;
1019     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1020     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1021   }
1022 }
1023
1024   return vpc;
1025 #undef FLD
1026 }
1027
1028 /* subcc: subcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
1029
1030 static SEM_PC
1031 SEM_FN_NAME (frvbf,subcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1032 {
1033 #define FLD(f) abuf->fields.sfmt_addcc.f
1034   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1035   int UNUSED written = 0;
1036   IADDR UNUSED pc = abuf->addr;
1037   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1038
1039 {
1040   BI tmp_tmp;
1041   QI tmp_cc;
1042   SI tmp_result;
1043   tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
1044   tmp_tmp = SUBOFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), 0);
1045 if (EQBI (tmp_tmp, 0)) {
1046   tmp_cc = ANDQI (tmp_cc, 13);
1047 } else {
1048   tmp_cc = ORQI (tmp_cc, 2);
1049 }
1050   tmp_tmp = SUBCFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), 0);
1051 if (EQBI (tmp_tmp, 0)) {
1052   tmp_cc = ANDQI (tmp_cc, 14);
1053 } else {
1054   tmp_cc = ORQI (tmp_cc, 1);
1055 }
1056   tmp_result = SUBSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
1057 if (EQSI (tmp_result, 0)) {
1058   tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
1059 } else {
1060 if (LTSI (tmp_result, 0)) {
1061   tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
1062 } else {
1063   tmp_cc = ANDQI (tmp_cc, 3);
1064 }
1065 }
1066   {
1067     SI opval = tmp_result;
1068     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1069     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1070   }
1071   {
1072     UQI opval = tmp_cc;
1073     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1074     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1075   }
1076 }
1077
1078   return vpc;
1079 #undef FLD
1080 }
1081
1082 /* andcc: andcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
1083
1084 static SEM_PC
1085 SEM_FN_NAME (frvbf,andcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1086 {
1087 #define FLD(f) abuf->fields.sfmt_addcc.f
1088   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1089   int UNUSED written = 0;
1090   IADDR UNUSED pc = abuf->addr;
1091   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1092
1093 {
1094   SI tmp_tmp;
1095   tmp_tmp = ANDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
1096   {
1097     SI opval = tmp_tmp;
1098     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1099     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1100   }
1101 if (EQSI (tmp_tmp, 0)) {
1102   {
1103     UQI opval = ORQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 7), 4);
1104     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1105     written |= (1 << 4);
1106     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1107   }
1108 } else {
1109 if (LTSI (tmp_tmp, 0)) {
1110   {
1111     UQI opval = ORQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 11), 8);
1112     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1113     written |= (1 << 4);
1114     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1115   }
1116 } else {
1117   {
1118     UQI opval = ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 3);
1119     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1120     written |= (1 << 4);
1121     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1122   }
1123 }
1124 }
1125 }
1126
1127   abuf->written = written;
1128   return vpc;
1129 #undef FLD
1130 }
1131
1132 /* orcc: orcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
1133
1134 static SEM_PC
1135 SEM_FN_NAME (frvbf,orcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1136 {
1137 #define FLD(f) abuf->fields.sfmt_addcc.f
1138   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1139   int UNUSED written = 0;
1140   IADDR UNUSED pc = abuf->addr;
1141   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1142
1143 {
1144   SI tmp_tmp;
1145   tmp_tmp = ORSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
1146   {
1147     SI opval = tmp_tmp;
1148     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1149     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1150   }
1151 if (EQSI (tmp_tmp, 0)) {
1152   {
1153     UQI opval = ORQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 7), 4);
1154     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1155     written |= (1 << 4);
1156     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1157   }
1158 } else {
1159 if (LTSI (tmp_tmp, 0)) {
1160   {
1161     UQI opval = ORQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 11), 8);
1162     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1163     written |= (1 << 4);
1164     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1165   }
1166 } else {
1167   {
1168     UQI opval = ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 3);
1169     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1170     written |= (1 << 4);
1171     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1172   }
1173 }
1174 }
1175 }
1176
1177   abuf->written = written;
1178   return vpc;
1179 #undef FLD
1180 }
1181
1182 /* xorcc: xorcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
1183
1184 static SEM_PC
1185 SEM_FN_NAME (frvbf,xorcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1186 {
1187 #define FLD(f) abuf->fields.sfmt_addcc.f
1188   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1189   int UNUSED written = 0;
1190   IADDR UNUSED pc = abuf->addr;
1191   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1192
1193 {
1194   SI tmp_tmp;
1195   tmp_tmp = XORSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
1196   {
1197     SI opval = tmp_tmp;
1198     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1199     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1200   }
1201 if (EQSI (tmp_tmp, 0)) {
1202   {
1203     UQI opval = ORQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 7), 4);
1204     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1205     written |= (1 << 4);
1206     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1207   }
1208 } else {
1209 if (LTSI (tmp_tmp, 0)) {
1210   {
1211     UQI opval = ORQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 11), 8);
1212     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1213     written |= (1 << 4);
1214     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1215   }
1216 } else {
1217   {
1218     UQI opval = ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 3);
1219     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1220     written |= (1 << 4);
1221     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1222   }
1223 }
1224 }
1225 }
1226
1227   abuf->written = written;
1228   return vpc;
1229 #undef FLD
1230 }
1231
1232 /* sllcc: sllcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
1233
1234 static SEM_PC
1235 SEM_FN_NAME (frvbf,sllcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1236 {
1237 #define FLD(f) abuf->fields.sfmt_addcc.f
1238   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1239   int UNUSED written = 0;
1240   IADDR UNUSED pc = abuf->addr;
1241   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1242
1243 {
1244   SI tmp_shift;
1245   SI tmp_tmp;
1246   QI tmp_cc;
1247   tmp_shift = ANDSI (GET_H_GR (FLD (f_GRj)), 31);
1248   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)]));
1249   tmp_tmp = SLLSI (GET_H_GR (FLD (f_GRi)), tmp_shift);
1250   {
1251     SI opval = tmp_tmp;
1252     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1253     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1254   }
1255 if (EQSI (tmp_tmp, 0)) {
1256   tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
1257 } else {
1258 if (LTSI (tmp_tmp, 0)) {
1259   tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
1260 } else {
1261   tmp_cc = ANDQI (tmp_cc, 3);
1262 }
1263 }
1264   {
1265     UQI opval = tmp_cc;
1266     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1267     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1268   }
1269 }
1270
1271   return vpc;
1272 #undef FLD
1273 }
1274
1275 /* srlcc: srlcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
1276
1277 static SEM_PC
1278 SEM_FN_NAME (frvbf,srlcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1279 {
1280 #define FLD(f) abuf->fields.sfmt_addcc.f
1281   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1282   int UNUSED written = 0;
1283   IADDR UNUSED pc = abuf->addr;
1284   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1285
1286 {
1287   SI tmp_shift;
1288   SI tmp_tmp;
1289   QI tmp_cc;
1290   tmp_shift = ANDSI (GET_H_GR (FLD (f_GRj)), 31);
1291   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)]));
1292   tmp_tmp = SRLSI (GET_H_GR (FLD (f_GRi)), tmp_shift);
1293   {
1294     SI opval = tmp_tmp;
1295     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1296     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1297   }
1298 if (EQSI (tmp_tmp, 0)) {
1299   tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
1300 } else {
1301 if (LTSI (tmp_tmp, 0)) {
1302   tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
1303 } else {
1304   tmp_cc = ANDQI (tmp_cc, 3);
1305 }
1306 }
1307   {
1308     UQI opval = tmp_cc;
1309     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1310     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1311   }
1312 }
1313
1314   return vpc;
1315 #undef FLD
1316 }
1317
1318 /* sracc: sracc$pack $GRi,$GRj,$GRk,$ICCi_1 */
1319
1320 static SEM_PC
1321 SEM_FN_NAME (frvbf,sracc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1322 {
1323 #define FLD(f) abuf->fields.sfmt_addcc.f
1324   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1325   int UNUSED written = 0;
1326   IADDR UNUSED pc = abuf->addr;
1327   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1328
1329 {
1330   SI tmp_shift;
1331   SI tmp_tmp;
1332   QI tmp_cc;
1333   tmp_shift = ANDSI (GET_H_GR (FLD (f_GRj)), 31);
1334   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)]));
1335   tmp_tmp = SRASI (GET_H_GR (FLD (f_GRi)), tmp_shift);
1336   {
1337     SI opval = tmp_tmp;
1338     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1339     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1340   }
1341 if (EQSI (tmp_tmp, 0)) {
1342   tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
1343 } else {
1344 if (LTSI (tmp_tmp, 0)) {
1345   tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
1346 } else {
1347   tmp_cc = ANDQI (tmp_cc, 3);
1348 }
1349 }
1350   {
1351     UQI opval = tmp_cc;
1352     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1353     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1354   }
1355 }
1356
1357   return vpc;
1358 #undef FLD
1359 }
1360
1361 /* smulcc: smulcc$pack $GRi,$GRj,$GRdoublek,$ICCi_1 */
1362
1363 static SEM_PC
1364 SEM_FN_NAME (frvbf,smulcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1365 {
1366 #define FLD(f) abuf->fields.sfmt_smulcc.f
1367   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1368   int UNUSED written = 0;
1369   IADDR UNUSED pc = abuf->addr;
1370   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1371
1372 {
1373   DI tmp_tmp;
1374   QI tmp_cc;
1375   tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
1376   tmp_tmp = MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi))), EXTSIDI (GET_H_GR (FLD (f_GRj))));
1377 if (EQDI (SRLDI (tmp_tmp, 63), 0)) {
1378   tmp_cc = ANDQI (tmp_cc, 7);
1379 } else {
1380   tmp_cc = ORQI (tmp_cc, 8);
1381 }
1382 if (EQBI (EQDI (tmp_tmp, 0), 0)) {
1383   tmp_cc = ANDQI (tmp_cc, 11);
1384 } else {
1385   tmp_cc = ORQI (tmp_cc, 4);
1386 }
1387   {
1388     DI opval = tmp_tmp;
1389     sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
1390     TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
1391   }
1392   {
1393     UQI opval = tmp_cc;
1394     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1395     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1396   }
1397 }
1398
1399   return vpc;
1400 #undef FLD
1401 }
1402
1403 /* umulcc: umulcc$pack $GRi,$GRj,$GRdoublek,$ICCi_1 */
1404
1405 static SEM_PC
1406 SEM_FN_NAME (frvbf,umulcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1407 {
1408 #define FLD(f) abuf->fields.sfmt_smulcc.f
1409   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1410   int UNUSED written = 0;
1411   IADDR UNUSED pc = abuf->addr;
1412   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1413
1414 {
1415   DI tmp_tmp;
1416   QI tmp_cc;
1417   tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
1418   tmp_tmp = MULDI (ZEXTSIDI (GET_H_GR (FLD (f_GRi))), ZEXTSIDI (GET_H_GR (FLD (f_GRj))));
1419 if (EQDI (SRLDI (tmp_tmp, 63), 0)) {
1420   tmp_cc = ANDQI (tmp_cc, 7);
1421 } else {
1422   tmp_cc = ORQI (tmp_cc, 8);
1423 }
1424 if (EQBI (EQDI (tmp_tmp, 0), 0)) {
1425   tmp_cc = ANDQI (tmp_cc, 11);
1426 } else {
1427   tmp_cc = ORQI (tmp_cc, 4);
1428 }
1429   {
1430     DI opval = tmp_tmp;
1431     sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
1432     TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
1433   }
1434   {
1435     UQI opval = tmp_cc;
1436     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1437     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1438   }
1439 }
1440
1441   return vpc;
1442 #undef FLD
1443 }
1444
1445 /* caddcc: caddcc$pack $GRi,$GRj,$GRk,$CCi,$cond */
1446
1447 static SEM_PC
1448 SEM_FN_NAME (frvbf,caddcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1449 {
1450 #define FLD(f) abuf->fields.sfmt_caddcc.f
1451   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1452   int UNUSED written = 0;
1453   IADDR UNUSED pc = abuf->addr;
1454   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1455
1456 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
1457 {
1458   BI tmp_tmp;
1459   QI tmp_cc;
1460   SI tmp_result;
1461   tmp_cc = CPU (h_iccr[((FLD (f_CCi)) & (3))]);
1462   tmp_tmp = ADDOFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), 0);
1463 if (EQBI (tmp_tmp, 0)) {
1464   tmp_cc = ANDQI (tmp_cc, 13);
1465 } else {
1466   tmp_cc = ORQI (tmp_cc, 2);
1467 }
1468   tmp_tmp = ADDCFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), 0);
1469 if (EQBI (tmp_tmp, 0)) {
1470   tmp_cc = ANDQI (tmp_cc, 14);
1471 } else {
1472   tmp_cc = ORQI (tmp_cc, 1);
1473 }
1474   tmp_result = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
1475 if (EQSI (tmp_result, 0)) {
1476   tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
1477 } else {
1478 if (LTSI (tmp_result, 0)) {
1479   tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
1480 } else {
1481   tmp_cc = ANDQI (tmp_cc, 3);
1482 }
1483 }
1484   {
1485     SI opval = tmp_result;
1486     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1487     written |= (1 << 6);
1488     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1489   }
1490   {
1491     UQI opval = tmp_cc;
1492     sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);
1493     written |= (1 << 7);
1494     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1495   }
1496 }
1497 }
1498
1499   abuf->written = written;
1500   return vpc;
1501 #undef FLD
1502 }
1503
1504 /* csubcc: csubcc$pack $GRi,$GRj,$GRk,$CCi,$cond */
1505
1506 static SEM_PC
1507 SEM_FN_NAME (frvbf,csubcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1508 {
1509 #define FLD(f) abuf->fields.sfmt_caddcc.f
1510   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1511   int UNUSED written = 0;
1512   IADDR UNUSED pc = abuf->addr;
1513   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1514
1515 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
1516 {
1517   BI tmp_tmp;
1518   QI tmp_cc;
1519   SI tmp_result;
1520   tmp_cc = CPU (h_iccr[((FLD (f_CCi)) & (3))]);
1521   tmp_tmp = SUBOFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), 0);
1522 if (EQBI (tmp_tmp, 0)) {
1523   tmp_cc = ANDQI (tmp_cc, 13);
1524 } else {
1525   tmp_cc = ORQI (tmp_cc, 2);
1526 }
1527   tmp_tmp = SUBCFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), 0);
1528 if (EQBI (tmp_tmp, 0)) {
1529   tmp_cc = ANDQI (tmp_cc, 14);
1530 } else {
1531   tmp_cc = ORQI (tmp_cc, 1);
1532 }
1533   tmp_result = SUBSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
1534 if (EQSI (tmp_result, 0)) {
1535   tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
1536 } else {
1537 if (LTSI (tmp_result, 0)) {
1538   tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
1539 } else {
1540   tmp_cc = ANDQI (tmp_cc, 3);
1541 }
1542 }
1543   {
1544     SI opval = tmp_result;
1545     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1546     written |= (1 << 6);
1547     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1548   }
1549   {
1550     UQI opval = tmp_cc;
1551     sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);
1552     written |= (1 << 7);
1553     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1554   }
1555 }
1556 }
1557
1558   abuf->written = written;
1559   return vpc;
1560 #undef FLD
1561 }
1562
1563 /* csmulcc: csmulcc$pack $GRi,$GRj,$GRdoublek,$CCi,$cond */
1564
1565 static SEM_PC
1566 SEM_FN_NAME (frvbf,csmulcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1567 {
1568 #define FLD(f) abuf->fields.sfmt_csmulcc.f
1569   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1570   int UNUSED written = 0;
1571   IADDR UNUSED pc = abuf->addr;
1572   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1573
1574 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
1575 {
1576   DI tmp_tmp;
1577   QI tmp_cc;
1578   tmp_cc = CPU (h_iccr[((FLD (f_CCi)) & (3))]);
1579   tmp_tmp = MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi))), EXTSIDI (GET_H_GR (FLD (f_GRj))));
1580 if (EQDI (SRLDI (tmp_tmp, 63), 0)) {
1581   tmp_cc = ANDQI (tmp_cc, 7);
1582 } else {
1583   tmp_cc = ORQI (tmp_cc, 8);
1584 }
1585 if (EQBI (EQDI (tmp_tmp, 0), 0)) {
1586   tmp_cc = ANDQI (tmp_cc, 11);
1587 } else {
1588   tmp_cc = ORQI (tmp_cc, 4);
1589 }
1590   {
1591     DI opval = tmp_tmp;
1592     sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
1593     written |= (1 << 6);
1594     TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
1595   }
1596   {
1597     UQI opval = tmp_cc;
1598     sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);
1599     written |= (1 << 7);
1600     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1601   }
1602 }
1603 }
1604
1605   abuf->written = written;
1606   return vpc;
1607 #undef FLD
1608 }
1609
1610 /* candcc: candcc$pack $GRi,$GRj,$GRk,$CCi,$cond */
1611
1612 static SEM_PC
1613 SEM_FN_NAME (frvbf,candcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1614 {
1615 #define FLD(f) abuf->fields.sfmt_caddcc.f
1616   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1617   int UNUSED written = 0;
1618   IADDR UNUSED pc = abuf->addr;
1619   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1620
1621 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
1622 {
1623   SI tmp_tmp;
1624   tmp_tmp = ANDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
1625   {
1626     SI opval = tmp_tmp;
1627     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1628     written |= (1 << 6);
1629     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1630   }
1631 if (EQSI (tmp_tmp, 0)) {
1632   {
1633     UQI opval = ORQI (ANDQI (CPU (h_iccr[((FLD (f_CCi)) & (3))]), 7), 4);
1634     sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);
1635     written |= (1 << 7);
1636     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1637   }
1638 } else {
1639 if (LTSI (tmp_tmp, 0)) {
1640   {
1641     UQI opval = ORQI (ANDQI (CPU (h_iccr[((FLD (f_CCi)) & (3))]), 11), 8);
1642     sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);
1643     written |= (1 << 7);
1644     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1645   }
1646 } else {
1647   {
1648     UQI opval = ANDQI (CPU (h_iccr[((FLD (f_CCi)) & (3))]), 3);
1649     sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);
1650     written |= (1 << 7);
1651     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1652   }
1653 }
1654 }
1655 }
1656 }
1657
1658   abuf->written = written;
1659   return vpc;
1660 #undef FLD
1661 }
1662
1663 /* corcc: corcc$pack $GRi,$GRj,$GRk,$CCi,$cond */
1664
1665 static SEM_PC
1666 SEM_FN_NAME (frvbf,corcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1667 {
1668 #define FLD(f) abuf->fields.sfmt_caddcc.f
1669   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1670   int UNUSED written = 0;
1671   IADDR UNUSED pc = abuf->addr;
1672   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1673
1674 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
1675 {
1676   SI tmp_tmp;
1677   tmp_tmp = ORSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
1678   {
1679     SI opval = tmp_tmp;
1680     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1681     written |= (1 << 6);
1682     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1683   }
1684 if (EQSI (tmp_tmp, 0)) {
1685   {
1686     UQI opval = ORQI (ANDQI (CPU (h_iccr[((FLD (f_CCi)) & (3))]), 7), 4);
1687     sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);
1688     written |= (1 << 7);
1689     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1690   }
1691 } else {
1692 if (LTSI (tmp_tmp, 0)) {
1693   {
1694     UQI opval = ORQI (ANDQI (CPU (h_iccr[((FLD (f_CCi)) & (3))]), 11), 8);
1695     sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);
1696     written |= (1 << 7);
1697     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1698   }
1699 } else {
1700   {
1701     UQI opval = ANDQI (CPU (h_iccr[((FLD (f_CCi)) & (3))]), 3);
1702     sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);
1703     written |= (1 << 7);
1704     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1705   }
1706 }
1707 }
1708 }
1709 }
1710
1711   abuf->written = written;
1712   return vpc;
1713 #undef FLD
1714 }
1715
1716 /* cxorcc: cxorcc$pack $GRi,$GRj,$GRk,$CCi,$cond */
1717
1718 static SEM_PC
1719 SEM_FN_NAME (frvbf,cxorcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1720 {
1721 #define FLD(f) abuf->fields.sfmt_caddcc.f
1722   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1723   int UNUSED written = 0;
1724   IADDR UNUSED pc = abuf->addr;
1725   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1726
1727 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
1728 {
1729   SI tmp_tmp;
1730   tmp_tmp = XORSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
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   {
1739     UQI opval = ORQI (ANDQI (CPU (h_iccr[((FLD (f_CCi)) & (3))]), 7), 4);
1740     sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);
1741     written |= (1 << 7);
1742     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1743   }
1744 } else {
1745 if (LTSI (tmp_tmp, 0)) {
1746   {
1747     UQI opval = ORQI (ANDQI (CPU (h_iccr[((FLD (f_CCi)) & (3))]), 11), 8);
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 } else {
1753   {
1754     UQI opval = ANDQI (CPU (h_iccr[((FLD (f_CCi)) & (3))]), 3);
1755     sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);
1756     written |= (1 << 7);
1757     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1758   }
1759 }
1760 }
1761 }
1762 }
1763
1764   abuf->written = written;
1765   return vpc;
1766 #undef FLD
1767 }
1768
1769 /* csllcc: csllcc$pack $GRi,$GRj,$GRk,$CCi,$cond */
1770
1771 static SEM_PC
1772 SEM_FN_NAME (frvbf,csllcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1773 {
1774 #define FLD(f) abuf->fields.sfmt_caddcc.f
1775   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1776   int UNUSED written = 0;
1777   IADDR UNUSED pc = abuf->addr;
1778   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1779
1780 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
1781 {
1782   SI tmp_shift;
1783   SI tmp_tmp;
1784   QI tmp_cc;
1785   tmp_shift = ANDSI (GET_H_GR (FLD (f_GRj)), 31);
1786   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))]));
1787   tmp_tmp = SLLSI (GET_H_GR (FLD (f_GRi)), tmp_shift);
1788   {
1789     SI opval = tmp_tmp;
1790     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1791     written |= (1 << 6);
1792     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1793   }
1794 if (EQSI (tmp_tmp, 0)) {
1795   tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
1796 } else {
1797 if (LTSI (tmp_tmp, 0)) {
1798   tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
1799 } else {
1800   tmp_cc = ANDQI (tmp_cc, 3);
1801 }
1802 }
1803   {
1804     UQI opval = tmp_cc;
1805     sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);
1806     written |= (1 << 7);
1807     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1808   }
1809 }
1810 }
1811
1812   abuf->written = written;
1813   return vpc;
1814 #undef FLD
1815 }
1816
1817 /* csrlcc: csrlcc$pack $GRi,$GRj,$GRk,$CCi,$cond */
1818
1819 static SEM_PC
1820 SEM_FN_NAME (frvbf,csrlcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1821 {
1822 #define FLD(f) abuf->fields.sfmt_caddcc.f
1823   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1824   int UNUSED written = 0;
1825   IADDR UNUSED pc = abuf->addr;
1826   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1827
1828 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
1829 {
1830   SI tmp_shift;
1831   SI tmp_tmp;
1832   QI tmp_cc;
1833   tmp_shift = ANDSI (GET_H_GR (FLD (f_GRj)), 31);
1834   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))]));
1835   tmp_tmp = SRLSI (GET_H_GR (FLD (f_GRi)), tmp_shift);
1836   {
1837     SI opval = tmp_tmp;
1838     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1839     written |= (1 << 6);
1840     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1841   }
1842 if (EQSI (tmp_tmp, 0)) {
1843   tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
1844 } else {
1845 if (LTSI (tmp_tmp, 0)) {
1846   tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
1847 } else {
1848   tmp_cc = ANDQI (tmp_cc, 3);
1849 }
1850 }
1851   {
1852     UQI opval = tmp_cc;
1853     sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);
1854     written |= (1 << 7);
1855     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1856   }
1857 }
1858 }
1859
1860   abuf->written = written;
1861   return vpc;
1862 #undef FLD
1863 }
1864
1865 /* csracc: csracc$pack $GRi,$GRj,$GRk,$CCi,$cond */
1866
1867 static SEM_PC
1868 SEM_FN_NAME (frvbf,csracc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1869 {
1870 #define FLD(f) abuf->fields.sfmt_caddcc.f
1871   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1872   int UNUSED written = 0;
1873   IADDR UNUSED pc = abuf->addr;
1874   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1875
1876 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
1877 {
1878   SI tmp_shift;
1879   SI tmp_tmp;
1880   QI tmp_cc;
1881   tmp_shift = ANDSI (GET_H_GR (FLD (f_GRj)), 31);
1882   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))]));
1883   tmp_tmp = SRASI (GET_H_GR (FLD (f_GRi)), tmp_shift);
1884   {
1885     SI opval = tmp_tmp;
1886     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1887     written |= (1 << 6);
1888     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1889   }
1890 if (EQSI (tmp_tmp, 0)) {
1891   tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
1892 } else {
1893 if (LTSI (tmp_tmp, 0)) {
1894   tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
1895 } else {
1896   tmp_cc = ANDQI (tmp_cc, 3);
1897 }
1898 }
1899   {
1900     UQI opval = tmp_cc;
1901     sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);
1902     written |= (1 << 7);
1903     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1904   }
1905 }
1906 }
1907
1908   abuf->written = written;
1909   return vpc;
1910 #undef FLD
1911 }
1912
1913 /* addx: addx$pack $GRi,$GRj,$GRk,$ICCi_1 */
1914
1915 static SEM_PC
1916 SEM_FN_NAME (frvbf,addx) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1917 {
1918 #define FLD(f) abuf->fields.sfmt_addcc.f
1919   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1920   int UNUSED written = 0;
1921   IADDR UNUSED pc = abuf->addr;
1922   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1923
1924   {
1925     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)));
1926     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1927     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1928   }
1929
1930   return vpc;
1931 #undef FLD
1932 }
1933
1934 /* subx: subx$pack $GRi,$GRj,$GRk,$ICCi_1 */
1935
1936 static SEM_PC
1937 SEM_FN_NAME (frvbf,subx) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1938 {
1939 #define FLD(f) abuf->fields.sfmt_addcc.f
1940   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1941   int UNUSED written = 0;
1942   IADDR UNUSED pc = abuf->addr;
1943   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1944
1945   {
1946     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)));
1947     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1948     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1949   }
1950
1951   return vpc;
1952 #undef FLD
1953 }
1954
1955 /* addxcc: addxcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
1956
1957 static SEM_PC
1958 SEM_FN_NAME (frvbf,addxcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1959 {
1960 #define FLD(f) abuf->fields.sfmt_addcc.f
1961   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1962   int UNUSED written = 0;
1963   IADDR UNUSED pc = abuf->addr;
1964   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1965
1966 {
1967   SI tmp_tmp;
1968   QI tmp_cc;
1969   tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
1970   tmp_tmp = ADDCSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), TRUNCQIBI (ANDQI (tmp_cc, 1)));
1971 if (EQSI (ADDOFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), TRUNCQIBI (ANDQI (tmp_cc, 1))), 0)) {
1972   tmp_cc = ANDQI (tmp_cc, 13);
1973 } else {
1974   tmp_cc = ORQI (tmp_cc, 2);
1975 }
1976 if (EQSI (ADDCFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), TRUNCQIBI (ANDQI (tmp_cc, 1))), 0)) {
1977   tmp_cc = ANDQI (tmp_cc, 14);
1978 } else {
1979   tmp_cc = ORQI (tmp_cc, 1);
1980 }
1981 if (EQSI (tmp_tmp, 0)) {
1982   tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
1983 } else {
1984 if (LTSI (tmp_tmp, 0)) {
1985   tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
1986 } else {
1987   tmp_cc = ANDQI (tmp_cc, 3);
1988 }
1989 }
1990   {
1991     SI opval = tmp_tmp;
1992     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1993     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1994   }
1995   {
1996     UQI opval = tmp_cc;
1997     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1998     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1999   }
2000 }
2001
2002   return vpc;
2003 #undef FLD
2004 }
2005
2006 /* subxcc: subxcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
2007
2008 static SEM_PC
2009 SEM_FN_NAME (frvbf,subxcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2010 {
2011 #define FLD(f) abuf->fields.sfmt_addcc.f
2012   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2013   int UNUSED written = 0;
2014   IADDR UNUSED pc = abuf->addr;
2015   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2016
2017 {
2018   SI tmp_tmp;
2019   QI tmp_cc;
2020   tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
2021   tmp_tmp = SUBCSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), TRUNCQIBI (ANDQI (tmp_cc, 1)));
2022 if (EQSI (SUBOFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), TRUNCQIBI (ANDQI (tmp_cc, 1))), 0)) {
2023   tmp_cc = ANDQI (tmp_cc, 13);
2024 } else {
2025   tmp_cc = ORQI (tmp_cc, 2);
2026 }
2027 if (EQSI (SUBCFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), TRUNCQIBI (ANDQI (tmp_cc, 1))), 0)) {
2028   tmp_cc = ANDQI (tmp_cc, 14);
2029 } else {
2030   tmp_cc = ORQI (tmp_cc, 1);
2031 }
2032 if (EQSI (tmp_tmp, 0)) {
2033   tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
2034 } else {
2035 if (LTSI (tmp_tmp, 0)) {
2036   tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
2037 } else {
2038   tmp_cc = ANDQI (tmp_cc, 3);
2039 }
2040 }
2041   {
2042     SI opval = tmp_tmp;
2043     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2044     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2045   }
2046   {
2047     UQI opval = tmp_cc;
2048     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2049     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2050   }
2051 }
2052
2053   return vpc;
2054 #undef FLD
2055 }
2056
2057 /* addss: addss$pack $GRi,$GRj,$GRk */
2058
2059 static SEM_PC
2060 SEM_FN_NAME (frvbf,addss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2061 {
2062 #define FLD(f) abuf->fields.sfmt_addcc.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   {
2070     SI opval = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
2071     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2072     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2073   }
2074 if (ADDOFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), 0)) {
2075   {
2076     SI opval = (GTSI (GET_H_GR (FLD (f_GRi)), 0)) ? (2147483647) : (LTSI (GET_H_GR (FLD (f_GRi)), 0)) ? (0x80000000) : (0);
2077     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2078     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2079   }
2080 }
2081 }
2082
2083   return vpc;
2084 #undef FLD
2085 }
2086
2087 /* subss: subss$pack $GRi,$GRj,$GRk */
2088
2089 static SEM_PC
2090 SEM_FN_NAME (frvbf,subss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2091 {
2092 #define FLD(f) abuf->fields.sfmt_addcc.f
2093   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2094   int UNUSED written = 0;
2095   IADDR UNUSED pc = abuf->addr;
2096   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2097
2098 {
2099   {
2100     SI opval = SUBSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
2101     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2102     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2103   }
2104 if (SUBOFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), 0)) {
2105   {
2106     SI opval = (GTSI (GET_H_GR (FLD (f_GRi)), 0)) ? (2147483647) : (LTSI (GET_H_GR (FLD (f_GRi)), 0)) ? (0x80000000) : (0);
2107     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2108     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2109   }
2110 }
2111 }
2112
2113   return vpc;
2114 #undef FLD
2115 }
2116
2117 /* addi: addi$pack $GRi,$s12,$GRk */
2118
2119 static SEM_PC
2120 SEM_FN_NAME (frvbf,addi) (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     SI opval = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
2130     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2131     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2132   }
2133
2134   return vpc;
2135 #undef FLD
2136 }
2137
2138 /* subi: subi$pack $GRi,$s12,$GRk */
2139
2140 static SEM_PC
2141 SEM_FN_NAME (frvbf,subi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2142 {
2143 #define FLD(f) abuf->fields.sfmt_swapi.f
2144   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2145   int UNUSED written = 0;
2146   IADDR UNUSED pc = abuf->addr;
2147   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2148
2149   {
2150     SI opval = SUBSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
2151     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2152     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2153   }
2154
2155   return vpc;
2156 #undef FLD
2157 }
2158
2159 /* andi: andi$pack $GRi,$s12,$GRk */
2160
2161 static SEM_PC
2162 SEM_FN_NAME (frvbf,andi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2163 {
2164 #define FLD(f) abuf->fields.sfmt_swapi.f
2165   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2166   int UNUSED written = 0;
2167   IADDR UNUSED pc = abuf->addr;
2168   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2169
2170   {
2171     SI opval = ANDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
2172     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2173     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2174   }
2175
2176   return vpc;
2177 #undef FLD
2178 }
2179
2180 /* ori: ori$pack $GRi,$s12,$GRk */
2181
2182 static SEM_PC
2183 SEM_FN_NAME (frvbf,ori) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2184 {
2185 #define FLD(f) abuf->fields.sfmt_swapi.f
2186   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2187   int UNUSED written = 0;
2188   IADDR UNUSED pc = abuf->addr;
2189   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2190
2191   {
2192     SI opval = ORSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
2193     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2194     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2195   }
2196
2197   return vpc;
2198 #undef FLD
2199 }
2200
2201 /* xori: xori$pack $GRi,$s12,$GRk */
2202
2203 static SEM_PC
2204 SEM_FN_NAME (frvbf,xori) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2205 {
2206 #define FLD(f) abuf->fields.sfmt_swapi.f
2207   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2208   int UNUSED written = 0;
2209   IADDR UNUSED pc = abuf->addr;
2210   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2211
2212   {
2213     SI opval = XORSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
2214     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2215     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2216   }
2217
2218   return vpc;
2219 #undef FLD
2220 }
2221
2222 /* sdivi: sdivi$pack $GRi,$s12,$GRk */
2223
2224 static SEM_PC
2225 SEM_FN_NAME (frvbf,sdivi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2226 {
2227 #define FLD(f) abuf->fields.sfmt_swapi.f
2228   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2229   int UNUSED written = 0;
2230   IADDR UNUSED pc = abuf->addr;
2231   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2232
2233 {
2234 frvbf_signed_integer_divide (current_cpu, GET_H_GR (FLD (f_GRi)), FLD (f_d12), FLD (f_GRk), 0);
2235 ; /*clobber*/
2236 }
2237
2238   return vpc;
2239 #undef FLD
2240 }
2241
2242 /* nsdivi: nsdivi$pack $GRi,$s12,$GRk */
2243
2244 static SEM_PC
2245 SEM_FN_NAME (frvbf,nsdivi) (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 frvbf_signed_integer_divide (current_cpu, GET_H_GR (FLD (f_GRi)), FLD (f_d12), FLD (f_GRk), 1);
2255 ; /*clobber*/
2256 }
2257
2258   return vpc;
2259 #undef FLD
2260 }
2261
2262 /* udivi: udivi$pack $GRi,$s12,$GRk */
2263
2264 static SEM_PC
2265 SEM_FN_NAME (frvbf,udivi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2266 {
2267 #define FLD(f) abuf->fields.sfmt_swapi.f
2268   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2269   int UNUSED written = 0;
2270   IADDR UNUSED pc = abuf->addr;
2271   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2272
2273 {
2274 frvbf_unsigned_integer_divide (current_cpu, GET_H_GR (FLD (f_GRi)), FLD (f_d12), FLD (f_GRk), 0);
2275 ; /*clobber*/
2276 }
2277
2278   return vpc;
2279 #undef FLD
2280 }
2281
2282 /* nudivi: nudivi$pack $GRi,$s12,$GRk */
2283
2284 static SEM_PC
2285 SEM_FN_NAME (frvbf,nudivi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2286 {
2287 #define FLD(f) abuf->fields.sfmt_swapi.f
2288   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2289   int UNUSED written = 0;
2290   IADDR UNUSED pc = abuf->addr;
2291   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2292
2293 {
2294 frvbf_unsigned_integer_divide (current_cpu, GET_H_GR (FLD (f_GRi)), FLD (f_d12), FLD (f_GRk), 1);
2295 ; /*clobber*/
2296 }
2297
2298   return vpc;
2299 #undef FLD
2300 }
2301
2302 /* smuli: smuli$pack $GRi,$s12,$GRdoublek */
2303
2304 static SEM_PC
2305 SEM_FN_NAME (frvbf,smuli) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2306 {
2307 #define FLD(f) abuf->fields.sfmt_smuli.f
2308   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2309   int UNUSED written = 0;
2310   IADDR UNUSED pc = abuf->addr;
2311   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2312
2313   {
2314     DI opval = MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi))), EXTSIDI (FLD (f_d12)));
2315     sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
2316     TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
2317   }
2318
2319   return vpc;
2320 #undef FLD
2321 }
2322
2323 /* umuli: umuli$pack $GRi,$s12,$GRdoublek */
2324
2325 static SEM_PC
2326 SEM_FN_NAME (frvbf,umuli) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2327 {
2328 #define FLD(f) abuf->fields.sfmt_smuli.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     DI opval = MULDI (ZEXTSIDI (GET_H_GR (FLD (f_GRi))), ZEXTSIDI (FLD (f_d12)));
2336     sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
2337     TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
2338   }
2339
2340   return vpc;
2341 #undef FLD
2342 }
2343
2344 /* slli: slli$pack $GRi,$s12,$GRk */
2345
2346 static SEM_PC
2347 SEM_FN_NAME (frvbf,slli) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2348 {
2349 #define FLD(f) abuf->fields.sfmt_swapi.f
2350   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2351   int UNUSED written = 0;
2352   IADDR UNUSED pc = abuf->addr;
2353   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2354
2355   {
2356     SI opval = SLLSI (GET_H_GR (FLD (f_GRi)), ANDSI (FLD (f_d12), 31));
2357     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2358     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2359   }
2360
2361   return vpc;
2362 #undef FLD
2363 }
2364
2365 /* srli: srli$pack $GRi,$s12,$GRk */
2366
2367 static SEM_PC
2368 SEM_FN_NAME (frvbf,srli) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2369 {
2370 #define FLD(f) abuf->fields.sfmt_swapi.f
2371   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2372   int UNUSED written = 0;
2373   IADDR UNUSED pc = abuf->addr;
2374   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2375
2376   {
2377     SI opval = SRLSI (GET_H_GR (FLD (f_GRi)), ANDSI (FLD (f_d12), 31));
2378     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2379     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2380   }
2381
2382   return vpc;
2383 #undef FLD
2384 }
2385
2386 /* srai: srai$pack $GRi,$s12,$GRk */
2387
2388 static SEM_PC
2389 SEM_FN_NAME (frvbf,srai) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2390 {
2391 #define FLD(f) abuf->fields.sfmt_swapi.f
2392   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2393   int UNUSED written = 0;
2394   IADDR UNUSED pc = abuf->addr;
2395   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2396
2397   {
2398     SI opval = SRASI (GET_H_GR (FLD (f_GRi)), ANDSI (FLD (f_d12), 31));
2399     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2400     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2401   }
2402
2403   return vpc;
2404 #undef FLD
2405 }
2406
2407 /* scani: scani$pack $GRi,$s12,$GRk */
2408
2409 static SEM_PC
2410 SEM_FN_NAME (frvbf,scani) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2411 {
2412 #define FLD(f) abuf->fields.sfmt_swapi.f
2413   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2414   int UNUSED written = 0;
2415   IADDR UNUSED pc = abuf->addr;
2416   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2417
2418 {
2419   SI tmp_tmp1;
2420   SI tmp_tmp2;
2421   tmp_tmp1 = GET_H_GR (FLD (f_GRi));
2422   tmp_tmp2 = SRASI (FLD (f_d12), 1);
2423   {
2424     SI opval = frvbf_scan_result (current_cpu, XORSI (tmp_tmp1, tmp_tmp2));
2425     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2426     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2427   }
2428 }
2429
2430   return vpc;
2431 #undef FLD
2432 }
2433
2434 /* addicc: addicc$pack $GRi,$s10,$GRk,$ICCi_1 */
2435
2436 static SEM_PC
2437 SEM_FN_NAME (frvbf,addicc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2438 {
2439 #define FLD(f) abuf->fields.sfmt_addicc.f
2440   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2441   int UNUSED written = 0;
2442   IADDR UNUSED pc = abuf->addr;
2443   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2444
2445 {
2446   BI tmp_tmp;
2447   QI tmp_cc;
2448   SI tmp_result;
2449   tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
2450   tmp_tmp = ADDOFSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), 0);
2451 if (EQBI (tmp_tmp, 0)) {
2452   tmp_cc = ANDQI (tmp_cc, 13);
2453 } else {
2454   tmp_cc = ORQI (tmp_cc, 2);
2455 }
2456   tmp_tmp = ADDCFSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), 0);
2457 if (EQBI (tmp_tmp, 0)) {
2458   tmp_cc = ANDQI (tmp_cc, 14);
2459 } else {
2460   tmp_cc = ORQI (tmp_cc, 1);
2461 }
2462   tmp_result = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10));
2463 if (EQSI (tmp_result, 0)) {
2464   tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
2465 } else {
2466 if (LTSI (tmp_result, 0)) {
2467   tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
2468 } else {
2469   tmp_cc = ANDQI (tmp_cc, 3);
2470 }
2471 }
2472   {
2473     SI opval = tmp_result;
2474     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2475     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2476   }
2477   {
2478     UQI opval = tmp_cc;
2479     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2480     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2481   }
2482 }
2483
2484   return vpc;
2485 #undef FLD
2486 }
2487
2488 /* subicc: subicc$pack $GRi,$s10,$GRk,$ICCi_1 */
2489
2490 static SEM_PC
2491 SEM_FN_NAME (frvbf,subicc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2492 {
2493 #define FLD(f) abuf->fields.sfmt_addicc.f
2494   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2495   int UNUSED written = 0;
2496   IADDR UNUSED pc = abuf->addr;
2497   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2498
2499 {
2500   BI tmp_tmp;
2501   QI tmp_cc;
2502   SI tmp_result;
2503   tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
2504   tmp_tmp = SUBOFSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), 0);
2505 if (EQBI (tmp_tmp, 0)) {
2506   tmp_cc = ANDQI (tmp_cc, 13);
2507 } else {
2508   tmp_cc = ORQI (tmp_cc, 2);
2509 }
2510   tmp_tmp = SUBCFSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), 0);
2511 if (EQBI (tmp_tmp, 0)) {
2512   tmp_cc = ANDQI (tmp_cc, 14);
2513 } else {
2514   tmp_cc = ORQI (tmp_cc, 1);
2515 }
2516   tmp_result = SUBSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10));
2517 if (EQSI (tmp_result, 0)) {
2518   tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
2519 } else {
2520 if (LTSI (tmp_result, 0)) {
2521   tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
2522 } else {
2523   tmp_cc = ANDQI (tmp_cc, 3);
2524 }
2525 }
2526   {
2527     SI opval = tmp_result;
2528     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2529     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2530   }
2531   {
2532     UQI opval = tmp_cc;
2533     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2534     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2535   }
2536 }
2537
2538   return vpc;
2539 #undef FLD
2540 }
2541
2542 /* andicc: andicc$pack $GRi,$s10,$GRk,$ICCi_1 */
2543
2544 static SEM_PC
2545 SEM_FN_NAME (frvbf,andicc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2546 {
2547 #define FLD(f) abuf->fields.sfmt_addicc.f
2548   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2549   int UNUSED written = 0;
2550   IADDR UNUSED pc = abuf->addr;
2551   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2552
2553 {
2554   SI tmp_tmp;
2555   tmp_tmp = ANDSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10));
2556   {
2557     SI opval = tmp_tmp;
2558     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2559     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2560   }
2561 if (EQSI (tmp_tmp, 0)) {
2562   {
2563     UQI opval = ORQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 7), 4);
2564     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2565     written |= (1 << 4);
2566     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2567   }
2568 } else {
2569 if (LTSI (tmp_tmp, 0)) {
2570   {
2571     UQI opval = ORQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 11), 8);
2572     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2573     written |= (1 << 4);
2574     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2575   }
2576 } else {
2577   {
2578     UQI opval = ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 3);
2579     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2580     written |= (1 << 4);
2581     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2582   }
2583 }
2584 }
2585 }
2586
2587   abuf->written = written;
2588   return vpc;
2589 #undef FLD
2590 }
2591
2592 /* oricc: oricc$pack $GRi,$s10,$GRk,$ICCi_1 */
2593
2594 static SEM_PC
2595 SEM_FN_NAME (frvbf,oricc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2596 {
2597 #define FLD(f) abuf->fields.sfmt_addicc.f
2598   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2599   int UNUSED written = 0;
2600   IADDR UNUSED pc = abuf->addr;
2601   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2602
2603 {
2604   SI tmp_tmp;
2605   tmp_tmp = ORSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10));
2606   {
2607     SI opval = tmp_tmp;
2608     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2609     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2610   }
2611 if (EQSI (tmp_tmp, 0)) {
2612   {
2613     UQI opval = ORQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 7), 4);
2614     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2615     written |= (1 << 4);
2616     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2617   }
2618 } else {
2619 if (LTSI (tmp_tmp, 0)) {
2620   {
2621     UQI opval = ORQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 11), 8);
2622     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2623     written |= (1 << 4);
2624     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2625   }
2626 } else {
2627   {
2628     UQI opval = ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 3);
2629     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2630     written |= (1 << 4);
2631     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2632   }
2633 }
2634 }
2635 }
2636
2637   abuf->written = written;
2638   return vpc;
2639 #undef FLD
2640 }
2641
2642 /* xoricc: xoricc$pack $GRi,$s10,$GRk,$ICCi_1 */
2643
2644 static SEM_PC
2645 SEM_FN_NAME (frvbf,xoricc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2646 {
2647 #define FLD(f) abuf->fields.sfmt_addicc.f
2648   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2649   int UNUSED written = 0;
2650   IADDR UNUSED pc = abuf->addr;
2651   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2652
2653 {
2654   SI tmp_tmp;
2655   tmp_tmp = XORSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10));
2656   {
2657     SI opval = tmp_tmp;
2658     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2659     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2660   }
2661 if (EQSI (tmp_tmp, 0)) {
2662   {
2663     UQI opval = ORQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 7), 4);
2664     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2665     written |= (1 << 4);
2666     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2667   }
2668 } else {
2669 if (LTSI (tmp_tmp, 0)) {
2670   {
2671     UQI opval = ORQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 11), 8);
2672     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2673     written |= (1 << 4);
2674     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2675   }
2676 } else {
2677   {
2678     UQI opval = ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 3);
2679     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2680     written |= (1 << 4);
2681     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2682   }
2683 }
2684 }
2685 }
2686
2687   abuf->written = written;
2688   return vpc;
2689 #undef FLD
2690 }
2691
2692 /* smulicc: smulicc$pack $GRi,$s10,$GRdoublek,$ICCi_1 */
2693
2694 static SEM_PC
2695 SEM_FN_NAME (frvbf,smulicc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2696 {
2697 #define FLD(f) abuf->fields.sfmt_smulicc.f
2698   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2699   int UNUSED written = 0;
2700   IADDR UNUSED pc = abuf->addr;
2701   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2702
2703 {
2704   DI tmp_tmp;
2705   QI tmp_cc;
2706   tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
2707   tmp_tmp = MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi))), EXTSIDI (FLD (f_s10)));
2708 if (EQDI (SRLDI (tmp_tmp, 63), 0)) {
2709   tmp_cc = ANDQI (tmp_cc, 7);
2710 } else {
2711   tmp_cc = ORQI (tmp_cc, 8);
2712 }
2713 if (EQBI (EQDI (tmp_tmp, 0), 0)) {
2714   tmp_cc = ANDQI (tmp_cc, 11);
2715 } else {
2716   tmp_cc = ORQI (tmp_cc, 4);
2717 }
2718   {
2719     DI opval = tmp_tmp;
2720     sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
2721     TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
2722   }
2723   {
2724     UQI opval = tmp_cc;
2725     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2726     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2727   }
2728 }
2729
2730   return vpc;
2731 #undef FLD
2732 }
2733
2734 /* umulicc: umulicc$pack $GRi,$s10,$GRdoublek,$ICCi_1 */
2735
2736 static SEM_PC
2737 SEM_FN_NAME (frvbf,umulicc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2738 {
2739 #define FLD(f) abuf->fields.sfmt_smulicc.f
2740   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2741   int UNUSED written = 0;
2742   IADDR UNUSED pc = abuf->addr;
2743   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2744
2745 {
2746   DI tmp_tmp;
2747   QI tmp_cc;
2748   tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
2749   tmp_tmp = MULDI (ZEXTSIDI (GET_H_GR (FLD (f_GRi))), ZEXTSIDI (FLD (f_s10)));
2750 if (EQDI (SRLDI (tmp_tmp, 63), 0)) {
2751   tmp_cc = ANDQI (tmp_cc, 7);
2752 } else {
2753   tmp_cc = ORQI (tmp_cc, 8);
2754 }
2755 if (EQBI (EQDI (tmp_tmp, 0), 0)) {
2756   tmp_cc = ANDQI (tmp_cc, 11);
2757 } else {
2758   tmp_cc = ORQI (tmp_cc, 4);
2759 }
2760   {
2761     DI opval = tmp_tmp;
2762     sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
2763     TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
2764   }
2765   {
2766     UQI opval = tmp_cc;
2767     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2768     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2769   }
2770 }
2771
2772   return vpc;
2773 #undef FLD
2774 }
2775
2776 /* sllicc: sllicc$pack $GRi,$s10,$GRk,$ICCi_1 */
2777
2778 static SEM_PC
2779 SEM_FN_NAME (frvbf,sllicc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2780 {
2781 #define FLD(f) abuf->fields.sfmt_addicc.f
2782   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2783   int UNUSED written = 0;
2784   IADDR UNUSED pc = abuf->addr;
2785   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2786
2787 {
2788   SI tmp_shift;
2789   SI tmp_tmp;
2790   QI tmp_cc;
2791   tmp_shift = ANDSI (FLD (f_s10), 31);
2792   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)]));
2793   tmp_tmp = SLLSI (GET_H_GR (FLD (f_GRi)), tmp_shift);
2794   {
2795     SI opval = tmp_tmp;
2796     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2797     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2798   }
2799 if (EQSI (tmp_tmp, 0)) {
2800   tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
2801 } else {
2802 if (LTSI (tmp_tmp, 0)) {
2803   tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
2804 } else {
2805   tmp_cc = ANDQI (tmp_cc, 3);
2806 }
2807 }
2808   {
2809     UQI opval = tmp_cc;
2810     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2811     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2812   }
2813 }
2814
2815   return vpc;
2816 #undef FLD
2817 }
2818
2819 /* srlicc: srlicc$pack $GRi,$s10,$GRk,$ICCi_1 */
2820
2821 static SEM_PC
2822 SEM_FN_NAME (frvbf,srlicc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2823 {
2824 #define FLD(f) abuf->fields.sfmt_addicc.f
2825   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2826   int UNUSED written = 0;
2827   IADDR UNUSED pc = abuf->addr;
2828   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2829
2830 {
2831   SI tmp_shift;
2832   SI tmp_tmp;
2833   QI tmp_cc;
2834   tmp_shift = ANDSI (FLD (f_s10), 31);
2835   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)]));
2836   tmp_tmp = SRLSI (GET_H_GR (FLD (f_GRi)), tmp_shift);
2837   {
2838     SI opval = tmp_tmp;
2839     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2840     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2841   }
2842 if (EQSI (tmp_tmp, 0)) {
2843   tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
2844 } else {
2845 if (LTSI (tmp_tmp, 0)) {
2846   tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
2847 } else {
2848   tmp_cc = ANDQI (tmp_cc, 3);
2849 }
2850 }
2851   {
2852     UQI opval = tmp_cc;
2853     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2854     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2855   }
2856 }
2857
2858   return vpc;
2859 #undef FLD
2860 }
2861
2862 /* sraicc: sraicc$pack $GRi,$s10,$GRk,$ICCi_1 */
2863
2864 static SEM_PC
2865 SEM_FN_NAME (frvbf,sraicc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2866 {
2867 #define FLD(f) abuf->fields.sfmt_addicc.f
2868   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2869   int UNUSED written = 0;
2870   IADDR UNUSED pc = abuf->addr;
2871   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2872
2873 {
2874   SI tmp_shift;
2875   SI tmp_tmp;
2876   QI tmp_cc;
2877   tmp_shift = ANDSI (FLD (f_s10), 31);
2878   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)]));
2879   tmp_tmp = SRASI (GET_H_GR (FLD (f_GRi)), tmp_shift);
2880   {
2881     SI opval = tmp_tmp;
2882     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2883     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2884   }
2885 if (EQSI (tmp_tmp, 0)) {
2886   tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
2887 } else {
2888 if (LTSI (tmp_tmp, 0)) {
2889   tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
2890 } else {
2891   tmp_cc = ANDQI (tmp_cc, 3);
2892 }
2893 }
2894   {
2895     UQI opval = tmp_cc;
2896     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2897     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2898   }
2899 }
2900
2901   return vpc;
2902 #undef FLD
2903 }
2904
2905 /* addxi: addxi$pack $GRi,$s10,$GRk,$ICCi_1 */
2906
2907 static SEM_PC
2908 SEM_FN_NAME (frvbf,addxi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2909 {
2910 #define FLD(f) abuf->fields.sfmt_addicc.f
2911   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2912   int UNUSED written = 0;
2913   IADDR UNUSED pc = abuf->addr;
2914   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2915
2916   {
2917     SI opval = ADDCSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 1)));
2918     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2919     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2920   }
2921
2922   return vpc;
2923 #undef FLD
2924 }
2925
2926 /* subxi: subxi$pack $GRi,$s10,$GRk,$ICCi_1 */
2927
2928 static SEM_PC
2929 SEM_FN_NAME (frvbf,subxi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2930 {
2931 #define FLD(f) abuf->fields.sfmt_addicc.f
2932   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2933   int UNUSED written = 0;
2934   IADDR UNUSED pc = abuf->addr;
2935   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2936
2937   {
2938     SI opval = SUBCSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 1)));
2939     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2940     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2941   }
2942
2943   return vpc;
2944 #undef FLD
2945 }
2946
2947 /* addxicc: addxicc$pack $GRi,$s10,$GRk,$ICCi_1 */
2948
2949 static SEM_PC
2950 SEM_FN_NAME (frvbf,addxicc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2951 {
2952 #define FLD(f) abuf->fields.sfmt_addicc.f
2953   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2954   int UNUSED written = 0;
2955   IADDR UNUSED pc = abuf->addr;
2956   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2957
2958 {
2959   SI tmp_tmp;
2960   QI tmp_cc;
2961   tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
2962   tmp_tmp = ADDCSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), TRUNCQIBI (ANDQI (tmp_cc, 1)));
2963 if (EQSI (ADDOFSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), TRUNCQIBI (ANDQI (tmp_cc, 1))), 0)) {
2964   tmp_cc = ANDQI (tmp_cc, 13);
2965 } else {
2966   tmp_cc = ORQI (tmp_cc, 2);
2967 }
2968 if (EQSI (ADDCFSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), TRUNCQIBI (ANDQI (tmp_cc, 1))), 0)) {
2969   tmp_cc = ANDQI (tmp_cc, 14);
2970 } else {
2971   tmp_cc = ORQI (tmp_cc, 1);
2972 }
2973 if (EQSI (tmp_tmp, 0)) {
2974   tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
2975 } else {
2976 if (LTSI (tmp_tmp, 0)) {
2977   tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
2978 } else {
2979   tmp_cc = ANDQI (tmp_cc, 3);
2980 }
2981 }
2982   {
2983     SI opval = tmp_tmp;
2984     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2985     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2986   }
2987   {
2988     UQI opval = tmp_cc;
2989     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2990     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2991   }
2992 }
2993
2994   return vpc;
2995 #undef FLD
2996 }
2997
2998 /* subxicc: subxicc$pack $GRi,$s10,$GRk,$ICCi_1 */
2999
3000 static SEM_PC
3001 SEM_FN_NAME (frvbf,subxicc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3002 {
3003 #define FLD(f) abuf->fields.sfmt_addicc.f
3004   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3005   int UNUSED written = 0;
3006   IADDR UNUSED pc = abuf->addr;
3007   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3008
3009 {
3010   SI tmp_tmp;
3011   QI tmp_cc;
3012   tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
3013   tmp_tmp = SUBCSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), TRUNCQIBI (ANDQI (tmp_cc, 1)));
3014 if (EQSI (SUBOFSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), TRUNCQIBI (ANDQI (tmp_cc, 1))), 0)) {
3015   tmp_cc = ANDQI (tmp_cc, 13);
3016 } else {
3017   tmp_cc = ORQI (tmp_cc, 2);
3018 }
3019 if (EQSI (SUBCFSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), TRUNCQIBI (ANDQI (tmp_cc, 1))), 0)) {
3020   tmp_cc = ANDQI (tmp_cc, 14);
3021 } else {
3022   tmp_cc = ORQI (tmp_cc, 1);
3023 }
3024 if (EQSI (tmp_tmp, 0)) {
3025   tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
3026 } else {
3027 if (LTSI (tmp_tmp, 0)) {
3028   tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
3029 } else {
3030   tmp_cc = ANDQI (tmp_cc, 3);
3031 }
3032 }
3033   {
3034     SI opval = tmp_tmp;
3035     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3036     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3037   }
3038   {
3039     UQI opval = tmp_cc;
3040     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
3041     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
3042   }
3043 }
3044
3045   return vpc;
3046 #undef FLD
3047 }
3048
3049 /* cmpb: cmpb$pack $GRi,$GRj,$ICCi_1 */
3050
3051 static SEM_PC
3052 SEM_FN_NAME (frvbf,cmpb) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3053 {
3054 #define FLD(f) abuf->fields.sfmt_smulcc.f
3055   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3056   int UNUSED written = 0;
3057   IADDR UNUSED pc = abuf->addr;
3058   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3059
3060 {
3061   QI tmp_cc;
3062 if (EQBI (EQSI (ANDSI (GET_H_GR (FLD (f_GRi)), 0xff000000), ANDSI (GET_H_GR (FLD (f_GRj)), 0xff000000)), 0)) {
3063   tmp_cc = ANDQI (tmp_cc, 7);
3064 } else {
3065   tmp_cc = ORQI (tmp_cc, 8);
3066 }
3067 if (EQBI (EQSI (ANDSI (GET_H_GR (FLD (f_GRi)), 16711680), ANDSI (GET_H_GR (FLD (f_GRj)), 16711680)), 0)) {
3068   tmp_cc = ANDQI (tmp_cc, 11);
3069 } else {
3070   tmp_cc = ORQI (tmp_cc, 4);
3071 }
3072 if (EQBI (EQSI (ANDSI (GET_H_GR (FLD (f_GRi)), 65280), ANDSI (GET_H_GR (FLD (f_GRj)), 65280)), 0)) {
3073   tmp_cc = ANDQI (tmp_cc, 13);
3074 } else {
3075   tmp_cc = ORQI (tmp_cc, 2);
3076 }
3077 if (EQBI (EQSI (ANDSI (GET_H_GR (FLD (f_GRi)), 255), ANDSI (GET_H_GR (FLD (f_GRj)), 255)), 0)) {
3078   tmp_cc = ANDQI (tmp_cc, 14);
3079 } else {
3080   tmp_cc = ORQI (tmp_cc, 1);
3081 }
3082   {
3083     UQI opval = tmp_cc;
3084     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
3085     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
3086   }
3087 }
3088
3089   return vpc;
3090 #undef FLD
3091 }
3092
3093 /* cmpba: cmpba$pack $GRi,$GRj,$ICCi_1 */
3094
3095 static SEM_PC
3096 SEM_FN_NAME (frvbf,cmpba) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3097 {
3098 #define FLD(f) abuf->fields.sfmt_smulcc.f
3099   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3100   int UNUSED written = 0;
3101   IADDR UNUSED pc = abuf->addr;
3102   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3103
3104 {
3105   QI tmp_cc;
3106   tmp_cc = 0;
3107 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)) {
3108   tmp_cc = ANDQI (tmp_cc, 14);
3109 } else {
3110   tmp_cc = ORQI (tmp_cc, 1);
3111 }
3112   {
3113     UQI opval = tmp_cc;
3114     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
3115     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
3116   }
3117 }
3118
3119   return vpc;
3120 #undef FLD
3121 }
3122
3123 /* setlo: setlo$pack $ulo16,$GRklo */
3124
3125 static SEM_PC
3126 SEM_FN_NAME (frvbf,setlo) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3127 {
3128 #define FLD(f) abuf->fields.sfmt_setlo.f
3129   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3130   int UNUSED written = 0;
3131   IADDR UNUSED pc = abuf->addr;
3132   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3133
3134   {
3135     UHI opval = FLD (f_u16);
3136     sim_queue_fn_hi_write (current_cpu, frvbf_h_gr_lo_set, FLD (f_GRk), opval);
3137     TRACE_RESULT (current_cpu, abuf, "gr_lo", 'x', opval);
3138   }
3139
3140   return vpc;
3141 #undef FLD
3142 }
3143
3144 /* sethi: sethi$pack $uhi16,$GRkhi */
3145
3146 static SEM_PC
3147 SEM_FN_NAME (frvbf,sethi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3148 {
3149 #define FLD(f) abuf->fields.sfmt_sethi.f
3150   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3151   int UNUSED written = 0;
3152   IADDR UNUSED pc = abuf->addr;
3153   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3154
3155   {
3156     UHI opval = FLD (f_u16);
3157     sim_queue_fn_hi_write (current_cpu, frvbf_h_gr_hi_set, FLD (f_GRk), opval);
3158     TRACE_RESULT (current_cpu, abuf, "gr_hi", 'x', opval);
3159   }
3160
3161   return vpc;
3162 #undef FLD
3163 }
3164
3165 /* setlos: setlos$pack $slo16,$GRk */
3166
3167 static SEM_PC
3168 SEM_FN_NAME (frvbf,setlos) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3169 {
3170 #define FLD(f) abuf->fields.sfmt_setlos.f
3171   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3172   int UNUSED written = 0;
3173   IADDR UNUSED pc = abuf->addr;
3174   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3175
3176   {
3177     SI opval = FLD (f_s16);
3178     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3179     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3180   }
3181
3182   return vpc;
3183 #undef FLD
3184 }
3185
3186 /* ldsb: ldsb$pack @($GRi,$GRj),$GRk */
3187
3188 static SEM_PC
3189 SEM_FN_NAME (frvbf,ldsb) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3190 {
3191 #define FLD(f) abuf->fields.sfmt_addcc.f
3192   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3193   int UNUSED written = 0;
3194   IADDR UNUSED pc = abuf->addr;
3195   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3196
3197   {
3198     SI opval = frvbf_read_mem_QI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3199     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3200     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3201   }
3202
3203   return vpc;
3204 #undef FLD
3205 }
3206
3207 /* ldub: ldub$pack @($GRi,$GRj),$GRk */
3208
3209 static SEM_PC
3210 SEM_FN_NAME (frvbf,ldub) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3211 {
3212 #define FLD(f) abuf->fields.sfmt_addcc.f
3213   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3214   int UNUSED written = 0;
3215   IADDR UNUSED pc = abuf->addr;
3216   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3217
3218   {
3219     SI opval = frvbf_read_mem_UQI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3220     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3221     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3222   }
3223
3224   return vpc;
3225 #undef FLD
3226 }
3227
3228 /* ldsh: ldsh$pack @($GRi,$GRj),$GRk */
3229
3230 static SEM_PC
3231 SEM_FN_NAME (frvbf,ldsh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3232 {
3233 #define FLD(f) abuf->fields.sfmt_addcc.f
3234   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3235   int UNUSED written = 0;
3236   IADDR UNUSED pc = abuf->addr;
3237   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3238
3239   {
3240     SI opval = frvbf_read_mem_HI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3241     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3242     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3243   }
3244
3245   return vpc;
3246 #undef FLD
3247 }
3248
3249 /* lduh: lduh$pack @($GRi,$GRj),$GRk */
3250
3251 static SEM_PC
3252 SEM_FN_NAME (frvbf,lduh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3253 {
3254 #define FLD(f) abuf->fields.sfmt_addcc.f
3255   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3256   int UNUSED written = 0;
3257   IADDR UNUSED pc = abuf->addr;
3258   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3259
3260   {
3261     SI opval = frvbf_read_mem_UHI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3262     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3263     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3264   }
3265
3266   return vpc;
3267 #undef FLD
3268 }
3269
3270 /* ld: ld$pack @($GRi,$GRj),$GRk */
3271
3272 static SEM_PC
3273 SEM_FN_NAME (frvbf,ld) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3274 {
3275 #define FLD(f) abuf->fields.sfmt_addcc.f
3276   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3277   int UNUSED written = 0;
3278   IADDR UNUSED pc = abuf->addr;
3279   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3280
3281   {
3282     SI opval = frvbf_read_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3283     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3284     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3285   }
3286
3287   return vpc;
3288 #undef FLD
3289 }
3290
3291 /* ldbf: ldbf$pack @($GRi,$GRj),$FRintk */
3292
3293 static SEM_PC
3294 SEM_FN_NAME (frvbf,ldbf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3295 {
3296 #define FLD(f) abuf->fields.sfmt_cldbfu.f
3297   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3298   int UNUSED written = 0;
3299   IADDR UNUSED pc = abuf->addr;
3300   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3301
3302   {
3303     SI opval = frvbf_read_mem_UQI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3304     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
3305     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
3306   }
3307
3308   return vpc;
3309 #undef FLD
3310 }
3311
3312 /* ldhf: ldhf$pack @($GRi,$GRj),$FRintk */
3313
3314 static SEM_PC
3315 SEM_FN_NAME (frvbf,ldhf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3316 {
3317 #define FLD(f) abuf->fields.sfmt_cldbfu.f
3318   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3319   int UNUSED written = 0;
3320   IADDR UNUSED pc = abuf->addr;
3321   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3322
3323   {
3324     SI opval = frvbf_read_mem_UHI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3325     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
3326     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
3327   }
3328
3329   return vpc;
3330 #undef FLD
3331 }
3332
3333 /* ldf: ldf$pack @($GRi,$GRj),$FRintk */
3334
3335 static SEM_PC
3336 SEM_FN_NAME (frvbf,ldf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3337 {
3338 #define FLD(f) abuf->fields.sfmt_cldbfu.f
3339   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3340   int UNUSED written = 0;
3341   IADDR UNUSED pc = abuf->addr;
3342   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3343
3344   {
3345     SI opval = frvbf_read_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3346     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
3347     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
3348   }
3349
3350   return vpc;
3351 #undef FLD
3352 }
3353
3354 /* ldc: ldc$pack @($GRi,$GRj),$CPRk */
3355
3356 static SEM_PC
3357 SEM_FN_NAME (frvbf,ldc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3358 {
3359 #define FLD(f) abuf->fields.sfmt_ldcu.f
3360   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3361   int UNUSED written = 0;
3362   IADDR UNUSED pc = abuf->addr;
3363   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3364
3365   {
3366     SI opval = frvbf_read_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3367     sim_queue_si_write (current_cpu, & CPU (h_cpr[FLD (f_CPRk)]), opval);
3368     TRACE_RESULT (current_cpu, abuf, "cpr", 'x', opval);
3369   }
3370
3371   return vpc;
3372 #undef FLD
3373 }
3374
3375 /* nldsb: nldsb$pack @($GRi,$GRj),$GRk */
3376
3377 static SEM_PC
3378 SEM_FN_NAME (frvbf,nldsb) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3379 {
3380 #define FLD(f) abuf->fields.sfmt_addcc.f
3381   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3382   int UNUSED written = 0;
3383   IADDR UNUSED pc = abuf->addr;
3384   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3385
3386 {
3387   BI tmp_do_op;
3388   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 1, 0);
3389 if (tmp_do_op) {
3390   {
3391     SI opval = frvbf_read_mem_QI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3392     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3393     written |= (1 << 6);
3394     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3395   }
3396 }
3397 }
3398
3399   abuf->written = written;
3400   return vpc;
3401 #undef FLD
3402 }
3403
3404 /* nldub: nldub$pack @($GRi,$GRj),$GRk */
3405
3406 static SEM_PC
3407 SEM_FN_NAME (frvbf,nldub) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3408 {
3409 #define FLD(f) abuf->fields.sfmt_addcc.f
3410   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3411   int UNUSED written = 0;
3412   IADDR UNUSED pc = abuf->addr;
3413   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3414
3415 {
3416   BI tmp_do_op;
3417   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 0, 0);
3418 if (tmp_do_op) {
3419   {
3420     SI opval = frvbf_read_mem_UQI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3421     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3422     written |= (1 << 6);
3423     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3424   }
3425 }
3426 }
3427
3428   abuf->written = written;
3429   return vpc;
3430 #undef FLD
3431 }
3432
3433 /* nldsh: nldsh$pack @($GRi,$GRj),$GRk */
3434
3435 static SEM_PC
3436 SEM_FN_NAME (frvbf,nldsh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3437 {
3438 #define FLD(f) abuf->fields.sfmt_addcc.f
3439   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3440   int UNUSED written = 0;
3441   IADDR UNUSED pc = abuf->addr;
3442   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3443
3444 {
3445   BI tmp_do_op;
3446   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 3, 0);
3447 if (tmp_do_op) {
3448   {
3449     SI opval = frvbf_read_mem_HI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3450     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3451     written |= (1 << 6);
3452     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3453   }
3454 }
3455 }
3456
3457   abuf->written = written;
3458   return vpc;
3459 #undef FLD
3460 }
3461
3462 /* nlduh: nlduh$pack @($GRi,$GRj),$GRk */
3463
3464 static SEM_PC
3465 SEM_FN_NAME (frvbf,nlduh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3466 {
3467 #define FLD(f) abuf->fields.sfmt_addcc.f
3468   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3469   int UNUSED written = 0;
3470   IADDR UNUSED pc = abuf->addr;
3471   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3472
3473 {
3474   BI tmp_do_op;
3475   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 2, 0);
3476 if (tmp_do_op) {
3477   {
3478     SI opval = frvbf_read_mem_UHI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3479     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3480     written |= (1 << 6);
3481     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3482   }
3483 }
3484 }
3485
3486   abuf->written = written;
3487   return vpc;
3488 #undef FLD
3489 }
3490
3491 /* nld: nld$pack @($GRi,$GRj),$GRk */
3492
3493 static SEM_PC
3494 SEM_FN_NAME (frvbf,nld) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3495 {
3496 #define FLD(f) abuf->fields.sfmt_addcc.f
3497   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3498   int UNUSED written = 0;
3499   IADDR UNUSED pc = abuf->addr;
3500   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3501
3502 {
3503   BI tmp_do_op;
3504   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 4, 0);
3505 if (tmp_do_op) {
3506   {
3507     SI opval = frvbf_read_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3508     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3509     written |= (1 << 6);
3510     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3511   }
3512 }
3513 }
3514
3515   abuf->written = written;
3516   return vpc;
3517 #undef FLD
3518 }
3519
3520 /* nldbf: nldbf$pack @($GRi,$GRj),$FRintk */
3521
3522 static SEM_PC
3523 SEM_FN_NAME (frvbf,nldbf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3524 {
3525 #define FLD(f) abuf->fields.sfmt_cldbfu.f
3526   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3527   int UNUSED written = 0;
3528   IADDR UNUSED pc = abuf->addr;
3529   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3530
3531 {
3532   BI tmp_do_op;
3533   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_FRk), 0, 0, 1);
3534 if (tmp_do_op) {
3535   {
3536     SI opval = frvbf_read_mem_UQI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3537     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
3538     written |= (1 << 6);
3539     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
3540   }
3541 }
3542 }
3543
3544   abuf->written = written;
3545   return vpc;
3546 #undef FLD
3547 }
3548
3549 /* nldhf: nldhf$pack @($GRi,$GRj),$FRintk */
3550
3551 static SEM_PC
3552 SEM_FN_NAME (frvbf,nldhf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3553 {
3554 #define FLD(f) abuf->fields.sfmt_cldbfu.f
3555   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3556   int UNUSED written = 0;
3557   IADDR UNUSED pc = abuf->addr;
3558   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3559
3560 {
3561   BI tmp_do_op;
3562   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_FRk), 0, 2, 1);
3563 if (tmp_do_op) {
3564   {
3565     SI opval = frvbf_read_mem_UHI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3566     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
3567     written |= (1 << 6);
3568     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
3569   }
3570 }
3571 }
3572
3573   abuf->written = written;
3574   return vpc;
3575 #undef FLD
3576 }
3577
3578 /* nldf: nldf$pack @($GRi,$GRj),$FRintk */
3579
3580 static SEM_PC
3581 SEM_FN_NAME (frvbf,nldf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3582 {
3583 #define FLD(f) abuf->fields.sfmt_cldbfu.f
3584   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3585   int UNUSED written = 0;
3586   IADDR UNUSED pc = abuf->addr;
3587   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3588
3589 {
3590   BI tmp_do_op;
3591   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_FRk), 0, 4, 1);
3592 if (tmp_do_op) {
3593   {
3594     SI opval = frvbf_read_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3595     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
3596     written |= (1 << 6);
3597     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
3598   }
3599 }
3600 }
3601
3602   abuf->written = written;
3603   return vpc;
3604 #undef FLD
3605 }
3606
3607 /* ldd: ldd$pack @($GRi,$GRj),$GRdoublek */
3608
3609 static SEM_PC
3610 SEM_FN_NAME (frvbf,ldd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3611 {
3612 #define FLD(f) abuf->fields.sfmt_smulcc.f
3613   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3614   int UNUSED written = 0;
3615   IADDR UNUSED pc = abuf->addr;
3616   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3617
3618 {
3619   SI tmp_address;
3620 if (NESI (FLD (f_GRk), 0)) {
3621 {
3622   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3623   {
3624     DI opval = frvbf_read_mem_DI (current_cpu, pc, tmp_address);
3625     sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
3626     written |= (1 << 4);
3627     TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
3628   }
3629 }
3630 }
3631 }
3632
3633   abuf->written = written;
3634   return vpc;
3635 #undef FLD
3636 }
3637
3638 /* lddf: lddf$pack @($GRi,$GRj),$FRdoublek */
3639
3640 static SEM_PC
3641 SEM_FN_NAME (frvbf,lddf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3642 {
3643 #define FLD(f) abuf->fields.sfmt_clddfu.f
3644   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3645   int UNUSED written = 0;
3646   IADDR UNUSED pc = abuf->addr;
3647   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3648
3649 {
3650   SI tmp_address;
3651 {
3652   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3653   {
3654     DF opval = frvbf_read_mem_DF (current_cpu, pc, tmp_address);
3655     sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
3656     TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
3657   }
3658 }
3659 }
3660
3661   return vpc;
3662 #undef FLD
3663 }
3664
3665 /* lddc: lddc$pack @($GRi,$GRj),$CPRdoublek */
3666
3667 static SEM_PC
3668 SEM_FN_NAME (frvbf,lddc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3669 {
3670 #define FLD(f) abuf->fields.sfmt_lddcu.f
3671   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3672   int UNUSED written = 0;
3673   IADDR UNUSED pc = abuf->addr;
3674   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3675
3676 {
3677   SI tmp_address;
3678 {
3679   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3680   {
3681     DI opval = frvbf_read_mem_DI (current_cpu, pc, tmp_address);
3682     sim_queue_fn_di_write (current_cpu, frvbf_h_cpr_double_set, FLD (f_CPRk), opval);
3683     TRACE_RESULT (current_cpu, abuf, "cpr_double", 'D', opval);
3684   }
3685 }
3686 }
3687
3688   return vpc;
3689 #undef FLD
3690 }
3691
3692 /* nldd: nldd$pack @($GRi,$GRj),$GRdoublek */
3693
3694 static SEM_PC
3695 SEM_FN_NAME (frvbf,nldd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3696 {
3697 #define FLD(f) abuf->fields.sfmt_smulcc.f
3698   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3699   int UNUSED written = 0;
3700   IADDR UNUSED pc = abuf->addr;
3701   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3702
3703 {
3704   SI tmp_address;
3705 {
3706   BI tmp_do_op;
3707   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 5, 0);
3708 if (tmp_do_op) {
3709 if (NESI (FLD (f_GRk), 0)) {
3710 {
3711   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3712   {
3713     DI opval = frvbf_read_mem_DI (current_cpu, pc, tmp_address);
3714     sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
3715     written |= (1 << 6);
3716     TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
3717   }
3718 }
3719 }
3720 }
3721 }
3722 }
3723
3724   abuf->written = written;
3725   return vpc;
3726 #undef FLD
3727 }
3728
3729 /* nlddf: nlddf$pack @($GRi,$GRj),$FRdoublek */
3730
3731 static SEM_PC
3732 SEM_FN_NAME (frvbf,nlddf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3733 {
3734 #define FLD(f) abuf->fields.sfmt_clddfu.f
3735   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3736   int UNUSED written = 0;
3737   IADDR UNUSED pc = abuf->addr;
3738   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3739
3740 {
3741   SI tmp_address;
3742 {
3743   BI tmp_do_op;
3744   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_FRk), 0, 5, 1);
3745 if (tmp_do_op) {
3746 {
3747   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3748   {
3749     DF opval = frvbf_read_mem_DF (current_cpu, pc, tmp_address);
3750     sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
3751     written |= (1 << 6);
3752     TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
3753   }
3754 }
3755 }
3756 }
3757 }
3758
3759   abuf->written = written;
3760   return vpc;
3761 #undef FLD
3762 }
3763
3764 /* ldq: ldq$pack @($GRi,$GRj),$GRk */
3765
3766 static SEM_PC
3767 SEM_FN_NAME (frvbf,ldq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3768 {
3769 #define FLD(f) abuf->fields.sfmt_smulcc.f
3770   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3771   int UNUSED written = 0;
3772   IADDR UNUSED pc = abuf->addr;
3773   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3774
3775 {
3776   SI tmp_address;
3777 {
3778   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3779 frvbf_load_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
3780 }
3781 }
3782
3783   return vpc;
3784 #undef FLD
3785 }
3786
3787 /* ldqf: ldqf$pack @($GRi,$GRj),$FRintk */
3788
3789 static SEM_PC
3790 SEM_FN_NAME (frvbf,ldqf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3791 {
3792 #define FLD(f) abuf->fields.sfmt_cstdfu.f
3793   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3794   int UNUSED written = 0;
3795   IADDR UNUSED pc = abuf->addr;
3796   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3797
3798 {
3799   SI tmp_address;
3800 {
3801   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3802 frvbf_load_quad_FRint (current_cpu, pc, tmp_address, FLD (f_FRk));
3803 }
3804 }
3805
3806   return vpc;
3807 #undef FLD
3808 }
3809
3810 /* ldqc: ldqc$pack @($GRi,$GRj),$CPRk */
3811
3812 static SEM_PC
3813 SEM_FN_NAME (frvbf,ldqc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3814 {
3815 #define FLD(f) abuf->fields.sfmt_stdcu.f
3816   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3817   int UNUSED written = 0;
3818   IADDR UNUSED pc = abuf->addr;
3819   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3820
3821 {
3822   SI tmp_address;
3823 {
3824   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3825 frvbf_load_quad_CPR (current_cpu, pc, tmp_address, FLD (f_CPRk));
3826 }
3827 }
3828
3829   return vpc;
3830 #undef FLD
3831 }
3832
3833 /* nldq: nldq$pack @($GRi,$GRj),$GRk */
3834
3835 static SEM_PC
3836 SEM_FN_NAME (frvbf,nldq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3837 {
3838 #define FLD(f) abuf->fields.sfmt_smulcc.f
3839   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3840   int UNUSED written = 0;
3841   IADDR UNUSED pc = abuf->addr;
3842   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3843
3844 {
3845   SI tmp_address;
3846 {
3847   BI tmp_do_op;
3848   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 6, 0);
3849 if (tmp_do_op) {
3850 {
3851   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3852 frvbf_load_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
3853 }
3854 }
3855 }
3856 }
3857
3858   return vpc;
3859 #undef FLD
3860 }
3861
3862 /* nldqf: nldqf$pack @($GRi,$GRj),$FRintk */
3863
3864 static SEM_PC
3865 SEM_FN_NAME (frvbf,nldqf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3866 {
3867 #define FLD(f) abuf->fields.sfmt_cstdfu.f
3868   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3869   int UNUSED written = 0;
3870   IADDR UNUSED pc = abuf->addr;
3871   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3872
3873 {
3874   SI tmp_address;
3875 {
3876   BI tmp_do_op;
3877   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_FRk), 0, 6, 1);
3878 if (tmp_do_op) {
3879 {
3880   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3881 frvbf_load_quad_FRint (current_cpu, pc, tmp_address, FLD (f_FRk));
3882 }
3883 }
3884 }
3885 }
3886
3887   return vpc;
3888 #undef FLD
3889 }
3890
3891 /* ldsbu: ldsbu$pack @($GRi,$GRj),$GRk */
3892
3893 static SEM_PC
3894 SEM_FN_NAME (frvbf,ldsbu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3895 {
3896 #define FLD(f) abuf->fields.sfmt_cldsbu.f
3897   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3898   int UNUSED written = 0;
3899   IADDR UNUSED pc = abuf->addr;
3900   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3901
3902 {
3903   USI tmp_address;
3904   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3905   {
3906     SI opval = frvbf_read_mem_QI (current_cpu, pc, tmp_address);
3907     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3908     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3909   }
3910 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
3911 {
3912   {
3913     SI opval = tmp_address;
3914     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
3915     written |= (1 << 5);
3916     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3917   }
3918 frvbf_force_update (current_cpu);
3919 }
3920 }
3921 }
3922
3923   abuf->written = written;
3924   return vpc;
3925 #undef FLD
3926 }
3927
3928 /* ldubu: ldubu$pack @($GRi,$GRj),$GRk */
3929
3930 static SEM_PC
3931 SEM_FN_NAME (frvbf,ldubu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3932 {
3933 #define FLD(f) abuf->fields.sfmt_cldsbu.f
3934   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3935   int UNUSED written = 0;
3936   IADDR UNUSED pc = abuf->addr;
3937   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3938
3939 {
3940   USI tmp_address;
3941   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3942   {
3943     SI opval = frvbf_read_mem_UQI (current_cpu, pc, tmp_address);
3944     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3945     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3946   }
3947 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
3948 {
3949   {
3950     SI opval = tmp_address;
3951     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
3952     written |= (1 << 5);
3953     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3954   }
3955 frvbf_force_update (current_cpu);
3956 }
3957 }
3958 }
3959
3960   abuf->written = written;
3961   return vpc;
3962 #undef FLD
3963 }
3964
3965 /* ldshu: ldshu$pack @($GRi,$GRj),$GRk */
3966
3967 static SEM_PC
3968 SEM_FN_NAME (frvbf,ldshu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3969 {
3970 #define FLD(f) abuf->fields.sfmt_cldsbu.f
3971   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3972   int UNUSED written = 0;
3973   IADDR UNUSED pc = abuf->addr;
3974   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3975
3976 {
3977   USI tmp_address;
3978   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3979   {
3980     SI opval = frvbf_read_mem_HI (current_cpu, pc, tmp_address);
3981     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3982     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3983   }
3984 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
3985 {
3986   {
3987     SI opval = tmp_address;
3988     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
3989     written |= (1 << 5);
3990     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3991   }
3992 frvbf_force_update (current_cpu);
3993 }
3994 }
3995 }
3996
3997   abuf->written = written;
3998   return vpc;
3999 #undef FLD
4000 }
4001
4002 /* lduhu: lduhu$pack @($GRi,$GRj),$GRk */
4003
4004 static SEM_PC
4005 SEM_FN_NAME (frvbf,lduhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4006 {
4007 #define FLD(f) abuf->fields.sfmt_cldsbu.f
4008   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4009   int UNUSED written = 0;
4010   IADDR UNUSED pc = abuf->addr;
4011   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4012
4013 {
4014   USI tmp_address;
4015   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4016   {
4017     SI opval = frvbf_read_mem_UHI (current_cpu, pc, tmp_address);
4018     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
4019     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4020   }
4021 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
4022 {
4023   {
4024     SI opval = tmp_address;
4025     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4026     written |= (1 << 5);
4027     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4028   }
4029 frvbf_force_update (current_cpu);
4030 }
4031 }
4032 }
4033
4034   abuf->written = written;
4035   return vpc;
4036 #undef FLD
4037 }
4038
4039 /* ldu: ldu$pack @($GRi,$GRj),$GRk */
4040
4041 static SEM_PC
4042 SEM_FN_NAME (frvbf,ldu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4043 {
4044 #define FLD(f) abuf->fields.sfmt_cldsbu.f
4045   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4046   int UNUSED written = 0;
4047   IADDR UNUSED pc = abuf->addr;
4048   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4049
4050 {
4051   USI tmp_address;
4052   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4053   {
4054     SI opval = frvbf_read_mem_SI (current_cpu, pc, tmp_address);
4055     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
4056     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4057   }
4058 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
4059 {
4060   {
4061     SI opval = tmp_address;
4062     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4063     written |= (1 << 5);
4064     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4065   }
4066 frvbf_force_update (current_cpu);
4067 }
4068 }
4069 }
4070
4071   abuf->written = written;
4072   return vpc;
4073 #undef FLD
4074 }
4075
4076 /* nldsbu: nldsbu$pack @($GRi,$GRj),$GRk */
4077
4078 static SEM_PC
4079 SEM_FN_NAME (frvbf,nldsbu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4080 {
4081 #define FLD(f) abuf->fields.sfmt_cldsbu.f
4082   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4083   int UNUSED written = 0;
4084   IADDR UNUSED pc = abuf->addr;
4085   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4086
4087 {
4088   BI tmp_do_op;
4089   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 1, 0);
4090 if (tmp_do_op) {
4091 {
4092   USI tmp_address;
4093   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4094   {
4095     SI opval = frvbf_read_mem_QI (current_cpu, pc, tmp_address);
4096     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
4097     written |= (1 << 7);
4098     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4099   }
4100 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
4101 {
4102   {
4103     SI opval = tmp_address;
4104     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4105     written |= (1 << 6);
4106     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4107   }
4108 frvbf_force_update (current_cpu);
4109 }
4110 }
4111 }
4112 }
4113 }
4114
4115   abuf->written = written;
4116   return vpc;
4117 #undef FLD
4118 }
4119
4120 /* nldubu: nldubu$pack @($GRi,$GRj),$GRk */
4121
4122 static SEM_PC
4123 SEM_FN_NAME (frvbf,nldubu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4124 {
4125 #define FLD(f) abuf->fields.sfmt_cldsbu.f
4126   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4127   int UNUSED written = 0;
4128   IADDR UNUSED pc = abuf->addr;
4129   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4130
4131 {
4132   BI tmp_do_op;
4133   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 0, 0);
4134 if (tmp_do_op) {
4135 {
4136   USI tmp_address;
4137   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4138   {
4139     SI opval = frvbf_read_mem_UQI (current_cpu, pc, tmp_address);
4140     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
4141     written |= (1 << 7);
4142     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4143   }
4144 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
4145 {
4146   {
4147     SI opval = tmp_address;
4148     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4149     written |= (1 << 6);
4150     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4151   }
4152 frvbf_force_update (current_cpu);
4153 }
4154 }
4155 }
4156 }
4157 }
4158
4159   abuf->written = written;
4160   return vpc;
4161 #undef FLD
4162 }
4163
4164 /* nldshu: nldshu$pack @($GRi,$GRj),$GRk */
4165
4166 static SEM_PC
4167 SEM_FN_NAME (frvbf,nldshu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4168 {
4169 #define FLD(f) abuf->fields.sfmt_cldsbu.f
4170   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4171   int UNUSED written = 0;
4172   IADDR UNUSED pc = abuf->addr;
4173   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4174
4175 {
4176   BI tmp_do_op;
4177   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 3, 0);
4178 if (tmp_do_op) {
4179 {
4180   USI tmp_address;
4181   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4182   {
4183     SI opval = frvbf_read_mem_HI (current_cpu, pc, tmp_address);
4184     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
4185     written |= (1 << 7);
4186     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4187   }
4188 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
4189 {
4190   {
4191     SI opval = tmp_address;
4192     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4193     written |= (1 << 6);
4194     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4195   }
4196 frvbf_force_update (current_cpu);
4197 }
4198 }
4199 }
4200 }
4201 }
4202
4203   abuf->written = written;
4204   return vpc;
4205 #undef FLD
4206 }
4207
4208 /* nlduhu: nlduhu$pack @($GRi,$GRj),$GRk */
4209
4210 static SEM_PC
4211 SEM_FN_NAME (frvbf,nlduhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4212 {
4213 #define FLD(f) abuf->fields.sfmt_cldsbu.f
4214   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4215   int UNUSED written = 0;
4216   IADDR UNUSED pc = abuf->addr;
4217   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4218
4219 {
4220   BI tmp_do_op;
4221   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 2, 0);
4222 if (tmp_do_op) {
4223 {
4224   USI tmp_address;
4225   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4226   {
4227     SI opval = frvbf_read_mem_UHI (current_cpu, pc, tmp_address);
4228     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
4229     written |= (1 << 7);
4230     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4231   }
4232 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
4233 {
4234   {
4235     SI opval = tmp_address;
4236     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4237     written |= (1 << 6);
4238     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4239   }
4240 frvbf_force_update (current_cpu);
4241 }
4242 }
4243 }
4244 }
4245 }
4246
4247   abuf->written = written;
4248   return vpc;
4249 #undef FLD
4250 }
4251
4252 /* nldu: nldu$pack @($GRi,$GRj),$GRk */
4253
4254 static SEM_PC
4255 SEM_FN_NAME (frvbf,nldu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4256 {
4257 #define FLD(f) abuf->fields.sfmt_cldsbu.f
4258   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4259   int UNUSED written = 0;
4260   IADDR UNUSED pc = abuf->addr;
4261   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4262
4263 {
4264   BI tmp_do_op;
4265   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 4, 0);
4266 if (tmp_do_op) {
4267 {
4268   USI tmp_address;
4269   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4270   {
4271     SI opval = frvbf_read_mem_SI (current_cpu, pc, tmp_address);
4272     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
4273     written |= (1 << 7);
4274     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4275   }
4276 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
4277 {
4278   {
4279     SI opval = tmp_address;
4280     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4281     written |= (1 << 6);
4282     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4283   }
4284 frvbf_force_update (current_cpu);
4285 }
4286 }
4287 }
4288 }
4289 }
4290
4291   abuf->written = written;
4292   return vpc;
4293 #undef FLD
4294 }
4295
4296 /* ldbfu: ldbfu$pack @($GRi,$GRj),$FRintk */
4297
4298 static SEM_PC
4299 SEM_FN_NAME (frvbf,ldbfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4300 {
4301 #define FLD(f) abuf->fields.sfmt_cldbfu.f
4302   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4303   int UNUSED written = 0;
4304   IADDR UNUSED pc = abuf->addr;
4305   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4306
4307 {
4308   USI tmp_address;
4309   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4310   {
4311     SI opval = frvbf_read_mem_UQI (current_cpu, pc, tmp_address);
4312     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
4313     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
4314   }
4315   {
4316     SI opval = tmp_address;
4317     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4318     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4319   }
4320 frvbf_force_update (current_cpu);
4321 }
4322
4323   return vpc;
4324 #undef FLD
4325 }
4326
4327 /* ldhfu: ldhfu$pack @($GRi,$GRj),$FRintk */
4328
4329 static SEM_PC
4330 SEM_FN_NAME (frvbf,ldhfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4331 {
4332 #define FLD(f) abuf->fields.sfmt_cldbfu.f
4333   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4334   int UNUSED written = 0;
4335   IADDR UNUSED pc = abuf->addr;
4336   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4337
4338 {
4339   USI tmp_address;
4340   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4341   {
4342     SI opval = frvbf_read_mem_UHI (current_cpu, pc, tmp_address);
4343     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
4344     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
4345   }
4346   {
4347     SI opval = tmp_address;
4348     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4349     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4350   }
4351 frvbf_force_update (current_cpu);
4352 }
4353
4354   return vpc;
4355 #undef FLD
4356 }
4357
4358 /* ldfu: ldfu$pack @($GRi,$GRj),$FRintk */
4359
4360 static SEM_PC
4361 SEM_FN_NAME (frvbf,ldfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4362 {
4363 #define FLD(f) abuf->fields.sfmt_cldbfu.f
4364   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4365   int UNUSED written = 0;
4366   IADDR UNUSED pc = abuf->addr;
4367   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4368
4369 {
4370   USI tmp_address;
4371   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4372   {
4373     SI opval = frvbf_read_mem_SI (current_cpu, pc, tmp_address);
4374     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
4375     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
4376   }
4377   {
4378     SI opval = tmp_address;
4379     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4380     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4381   }
4382 frvbf_force_update (current_cpu);
4383 }
4384
4385   return vpc;
4386 #undef FLD
4387 }
4388
4389 /* ldcu: ldcu$pack @($GRi,$GRj),$CPRk */
4390
4391 static SEM_PC
4392 SEM_FN_NAME (frvbf,ldcu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4393 {
4394 #define FLD(f) abuf->fields.sfmt_ldcu.f
4395   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4396   int UNUSED written = 0;
4397   IADDR UNUSED pc = abuf->addr;
4398   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4399
4400 {
4401   USI tmp_address;
4402   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4403   {
4404     SI opval = frvbf_read_mem_SI (current_cpu, pc, tmp_address);
4405     sim_queue_si_write (current_cpu, & CPU (h_cpr[FLD (f_CPRk)]), opval);
4406     TRACE_RESULT (current_cpu, abuf, "cpr", 'x', opval);
4407   }
4408   {
4409     SI opval = tmp_address;
4410     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4411     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4412   }
4413 frvbf_force_update (current_cpu);
4414 }
4415
4416   return vpc;
4417 #undef FLD
4418 }
4419
4420 /* nldbfu: nldbfu$pack @($GRi,$GRj),$FRintk */
4421
4422 static SEM_PC
4423 SEM_FN_NAME (frvbf,nldbfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4424 {
4425 #define FLD(f) abuf->fields.sfmt_cldbfu.f
4426   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4427   int UNUSED written = 0;
4428   IADDR UNUSED pc = abuf->addr;
4429   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4430
4431 {
4432   BI tmp_do_op;
4433   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_FRk), 0, 0, 1);
4434 if (tmp_do_op) {
4435 {
4436   USI tmp_address;
4437   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4438   {
4439     SI opval = frvbf_read_mem_UQI (current_cpu, pc, tmp_address);
4440     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
4441     written |= (1 << 6);
4442     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
4443   }
4444   {
4445     SI opval = tmp_address;
4446     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4447     written |= (1 << 7);
4448     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4449   }
4450 frvbf_force_update (current_cpu);
4451 }
4452 }
4453 }
4454
4455   abuf->written = written;
4456   return vpc;
4457 #undef FLD
4458 }
4459
4460 /* nldhfu: nldhfu$pack @($GRi,$GRj),$FRintk */
4461
4462 static SEM_PC
4463 SEM_FN_NAME (frvbf,nldhfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4464 {
4465 #define FLD(f) abuf->fields.sfmt_cldbfu.f
4466   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4467   int UNUSED written = 0;
4468   IADDR UNUSED pc = abuf->addr;
4469   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4470
4471 {
4472   BI tmp_do_op;
4473   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_FRk), 0, 2, 1);
4474 if (tmp_do_op) {
4475 {
4476   USI tmp_address;
4477   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4478   {
4479     SI opval = frvbf_read_mem_UHI (current_cpu, pc, tmp_address);
4480     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
4481     written |= (1 << 6);
4482     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
4483   }
4484   {
4485     SI opval = tmp_address;
4486     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4487     written |= (1 << 7);
4488     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4489   }
4490 frvbf_force_update (current_cpu);
4491 }
4492 }
4493 }
4494
4495   abuf->written = written;
4496   return vpc;
4497 #undef FLD
4498 }
4499
4500 /* nldfu: nldfu$pack @($GRi,$GRj),$FRintk */
4501
4502 static SEM_PC
4503 SEM_FN_NAME (frvbf,nldfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4504 {
4505 #define FLD(f) abuf->fields.sfmt_cldbfu.f
4506   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4507   int UNUSED written = 0;
4508   IADDR UNUSED pc = abuf->addr;
4509   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4510
4511 {
4512   BI tmp_do_op;
4513   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_FRk), 0, 4, 1);
4514 if (tmp_do_op) {
4515 {
4516   USI tmp_address;
4517   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4518   {
4519     SI opval = frvbf_read_mem_SI (current_cpu, pc, tmp_address);
4520     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
4521     written |= (1 << 6);
4522     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
4523   }
4524   {
4525     SI opval = tmp_address;
4526     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4527     written |= (1 << 7);
4528     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4529   }
4530 frvbf_force_update (current_cpu);
4531 }
4532 }
4533 }
4534
4535   abuf->written = written;
4536   return vpc;
4537 #undef FLD
4538 }
4539
4540 /* lddu: lddu$pack @($GRi,$GRj),$GRdoublek */
4541
4542 static SEM_PC
4543 SEM_FN_NAME (frvbf,lddu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4544 {
4545 #define FLD(f) abuf->fields.sfmt_clddu.f
4546   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4547   int UNUSED written = 0;
4548   IADDR UNUSED pc = abuf->addr;
4549   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4550
4551 {
4552   SI tmp_address;
4553 if (NESI (FLD (f_GRk), 0)) {
4554 {
4555   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4556   {
4557     DI opval = frvbf_read_mem_DI (current_cpu, pc, tmp_address);
4558     sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
4559     written |= (1 << 5);
4560     TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
4561   }
4562 }
4563 }
4564 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
4565 {
4566   {
4567     SI opval = tmp_address;
4568     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4569     written |= (1 << 6);
4570     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4571   }
4572 frvbf_force_update (current_cpu);
4573 }
4574 }
4575 }
4576
4577   abuf->written = written;
4578   return vpc;
4579 #undef FLD
4580 }
4581
4582 /* nlddu: nlddu$pack @($GRi,$GRj),$GRdoublek */
4583
4584 static SEM_PC
4585 SEM_FN_NAME (frvbf,nlddu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4586 {
4587 #define FLD(f) abuf->fields.sfmt_clddu.f
4588   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4589   int UNUSED written = 0;
4590   IADDR UNUSED pc = abuf->addr;
4591   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4592
4593 {
4594   BI tmp_do_op;
4595   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 5, 0);
4596 if (tmp_do_op) {
4597 {
4598   SI tmp_address;
4599 if (NESI (FLD (f_GRk), 0)) {
4600 {
4601   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4602   {
4603     DI opval = frvbf_read_mem_DI (current_cpu, pc, tmp_address);
4604     sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
4605     written |= (1 << 6);
4606     TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
4607   }
4608 }
4609 }
4610 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
4611 {
4612   {
4613     SI opval = tmp_address;
4614     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4615     written |= (1 << 7);
4616     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4617   }
4618 frvbf_force_update (current_cpu);
4619 }
4620 }
4621 }
4622 }
4623 }
4624
4625   abuf->written = written;
4626   return vpc;
4627 #undef FLD
4628 }
4629
4630 /* lddfu: lddfu$pack @($GRi,$GRj),$FRdoublek */
4631
4632 static SEM_PC
4633 SEM_FN_NAME (frvbf,lddfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4634 {
4635 #define FLD(f) abuf->fields.sfmt_clddfu.f
4636   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4637   int UNUSED written = 0;
4638   IADDR UNUSED pc = abuf->addr;
4639   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4640
4641 {
4642   SI tmp_address;
4643 {
4644   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4645   {
4646     DF opval = frvbf_read_mem_DF (current_cpu, pc, tmp_address);
4647     sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
4648     TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
4649   }
4650 }
4651   {
4652     SI opval = tmp_address;
4653     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4654     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4655   }
4656 frvbf_force_update (current_cpu);
4657 }
4658
4659   return vpc;
4660 #undef FLD
4661 }
4662
4663 /* lddcu: lddcu$pack @($GRi,$GRj),$CPRdoublek */
4664
4665 static SEM_PC
4666 SEM_FN_NAME (frvbf,lddcu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4667 {
4668 #define FLD(f) abuf->fields.sfmt_lddcu.f
4669   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4670   int UNUSED written = 0;
4671   IADDR UNUSED pc = abuf->addr;
4672   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4673
4674 {
4675   SI tmp_address;
4676 {
4677   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4678   {
4679     DI opval = frvbf_read_mem_DI (current_cpu, pc, tmp_address);
4680     sim_queue_fn_di_write (current_cpu, frvbf_h_cpr_double_set, FLD (f_CPRk), opval);
4681     TRACE_RESULT (current_cpu, abuf, "cpr_double", 'D', opval);
4682   }
4683 }
4684   {
4685     SI opval = tmp_address;
4686     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4687     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4688   }
4689 frvbf_force_update (current_cpu);
4690 }
4691
4692   return vpc;
4693 #undef FLD
4694 }
4695
4696 /* nlddfu: nlddfu$pack @($GRi,$GRj),$FRdoublek */
4697
4698 static SEM_PC
4699 SEM_FN_NAME (frvbf,nlddfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4700 {
4701 #define FLD(f) abuf->fields.sfmt_clddfu.f
4702   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4703   int UNUSED written = 0;
4704   IADDR UNUSED pc = abuf->addr;
4705   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4706
4707 {
4708   BI tmp_do_op;
4709   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_FRk), 0, 5, 1);
4710 if (tmp_do_op) {
4711 {
4712   SI tmp_address;
4713 {
4714   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4715   {
4716     DF opval = frvbf_read_mem_DF (current_cpu, pc, tmp_address);
4717     sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
4718     written |= (1 << 6);
4719     TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
4720   }
4721 }
4722   {
4723     SI opval = tmp_address;
4724     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4725     written |= (1 << 7);
4726     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4727   }
4728 frvbf_force_update (current_cpu);
4729 }
4730 }
4731 }
4732
4733   abuf->written = written;
4734   return vpc;
4735 #undef FLD
4736 }
4737
4738 /* ldqu: ldqu$pack @($GRi,$GRj),$GRk */
4739
4740 static SEM_PC
4741 SEM_FN_NAME (frvbf,ldqu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4742 {
4743 #define FLD(f) abuf->fields.sfmt_cstdu.f
4744   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4745   int UNUSED written = 0;
4746   IADDR UNUSED pc = abuf->addr;
4747   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4748
4749 {
4750   SI tmp_address;
4751 {
4752   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4753 frvbf_load_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
4754 }
4755 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
4756 {
4757   {
4758     SI opval = tmp_address;
4759     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4760     written |= (1 << 5);
4761     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4762   }
4763 frvbf_force_update (current_cpu);
4764 }
4765 }
4766 }
4767
4768   abuf->written = written;
4769   return vpc;
4770 #undef FLD
4771 }
4772
4773 /* nldqu: nldqu$pack @($GRi,$GRj),$GRk */
4774
4775 static SEM_PC
4776 SEM_FN_NAME (frvbf,nldqu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4777 {
4778 #define FLD(f) abuf->fields.sfmt_cstdu.f
4779   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4780   int UNUSED written = 0;
4781   IADDR UNUSED pc = abuf->addr;
4782   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4783
4784 {
4785   BI tmp_do_op;
4786   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 6, 0);
4787 if (tmp_do_op) {
4788 {
4789   SI tmp_address;
4790 {
4791   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4792 frvbf_load_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
4793 }
4794 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
4795 {
4796   {
4797     SI opval = tmp_address;
4798     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4799     written |= (1 << 6);
4800     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4801   }
4802 frvbf_force_update (current_cpu);
4803 }
4804 }
4805 }
4806 }
4807 }
4808
4809   abuf->written = written;
4810   return vpc;
4811 #undef FLD
4812 }
4813
4814 /* ldqfu: ldqfu$pack @($GRi,$GRj),$FRintk */
4815
4816 static SEM_PC
4817 SEM_FN_NAME (frvbf,ldqfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4818 {
4819 #define FLD(f) abuf->fields.sfmt_cstdfu.f
4820   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4821   int UNUSED written = 0;
4822   IADDR UNUSED pc = abuf->addr;
4823   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4824
4825 {
4826   SI tmp_address;
4827 {
4828   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4829 frvbf_load_quad_FRint (current_cpu, pc, tmp_address, FLD (f_FRk));
4830 }
4831   {
4832     SI opval = tmp_address;
4833     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4834     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4835   }
4836 frvbf_force_update (current_cpu);
4837 }
4838
4839   return vpc;
4840 #undef FLD
4841 }
4842
4843 /* ldqcu: ldqcu$pack @($GRi,$GRj),$CPRk */
4844
4845 static SEM_PC
4846 SEM_FN_NAME (frvbf,ldqcu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4847 {
4848 #define FLD(f) abuf->fields.sfmt_stdcu.f
4849   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4850   int UNUSED written = 0;
4851   IADDR UNUSED pc = abuf->addr;
4852   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4853
4854 {
4855   SI tmp_address;
4856 {
4857   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4858 frvbf_load_quad_CPR (current_cpu, pc, tmp_address, FLD (f_CPRk));
4859 }
4860   {
4861     SI opval = tmp_address;
4862     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4863     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4864   }
4865 frvbf_force_update (current_cpu);
4866 }
4867
4868   return vpc;
4869 #undef FLD
4870 }
4871
4872 /* nldqfu: nldqfu$pack @($GRi,$GRj),$FRintk */
4873
4874 static SEM_PC
4875 SEM_FN_NAME (frvbf,nldqfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4876 {
4877 #define FLD(f) abuf->fields.sfmt_cstdfu.f
4878   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4879   int UNUSED written = 0;
4880   IADDR UNUSED pc = abuf->addr;
4881   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4882
4883 {
4884   BI tmp_do_op;
4885   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_FRk), 0, 6, 1);
4886 if (tmp_do_op) {
4887 {
4888   SI tmp_address;
4889 {
4890   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4891 frvbf_load_quad_FRint (current_cpu, pc, tmp_address, FLD (f_FRk));
4892 }
4893   {
4894     SI opval = tmp_address;
4895     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4896     written |= (1 << 6);
4897     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4898   }
4899 frvbf_force_update (current_cpu);
4900 }
4901 }
4902 }
4903
4904   abuf->written = written;
4905   return vpc;
4906 #undef FLD
4907 }
4908
4909 /* ldsbi: ldsbi$pack @($GRi,$d12),$GRk */
4910
4911 static SEM_PC
4912 SEM_FN_NAME (frvbf,ldsbi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4913 {
4914 #define FLD(f) abuf->fields.sfmt_swapi.f
4915   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4916   int UNUSED written = 0;
4917   IADDR UNUSED pc = abuf->addr;
4918   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4919
4920   {
4921     SI opval = frvbf_read_mem_QI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
4922     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
4923     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4924   }
4925
4926   return vpc;
4927 #undef FLD
4928 }
4929
4930 /* ldshi: ldshi$pack @($GRi,$d12),$GRk */
4931
4932 static SEM_PC
4933 SEM_FN_NAME (frvbf,ldshi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4934 {
4935 #define FLD(f) abuf->fields.sfmt_swapi.f
4936   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4937   int UNUSED written = 0;
4938   IADDR UNUSED pc = abuf->addr;
4939   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4940
4941   {
4942     SI opval = frvbf_read_mem_HI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
4943     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
4944     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4945   }
4946
4947   return vpc;
4948 #undef FLD
4949 }
4950
4951 /* ldi: ldi$pack @($GRi,$d12),$GRk */
4952
4953 static SEM_PC
4954 SEM_FN_NAME (frvbf,ldi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4955 {
4956 #define FLD(f) abuf->fields.sfmt_swapi.f
4957   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4958   int UNUSED written = 0;
4959   IADDR UNUSED pc = abuf->addr;
4960   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4961
4962   {
4963     SI opval = frvbf_read_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
4964     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
4965     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4966   }
4967
4968   return vpc;
4969 #undef FLD
4970 }
4971
4972 /* ldubi: ldubi$pack @($GRi,$d12),$GRk */
4973
4974 static SEM_PC
4975 SEM_FN_NAME (frvbf,ldubi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4976 {
4977 #define FLD(f) abuf->fields.sfmt_swapi.f
4978   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4979   int UNUSED written = 0;
4980   IADDR UNUSED pc = abuf->addr;
4981   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4982
4983   {
4984     SI opval = frvbf_read_mem_UQI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
4985     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
4986     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4987   }
4988
4989   return vpc;
4990 #undef FLD
4991 }
4992
4993 /* lduhi: lduhi$pack @($GRi,$d12),$GRk */
4994
4995 static SEM_PC
4996 SEM_FN_NAME (frvbf,lduhi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4997 {
4998 #define FLD(f) abuf->fields.sfmt_swapi.f
4999   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5000   int UNUSED written = 0;
5001   IADDR UNUSED pc = abuf->addr;
5002   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5003
5004   {
5005     SI opval = frvbf_read_mem_UHI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
5006     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
5007     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5008   }
5009
5010   return vpc;
5011 #undef FLD
5012 }
5013
5014 /* ldbfi: ldbfi$pack @($GRi,$d12),$FRintk */
5015
5016 static SEM_PC
5017 SEM_FN_NAME (frvbf,ldbfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5018 {
5019 #define FLD(f) abuf->fields.sfmt_ldbfi.f
5020   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5021   int UNUSED written = 0;
5022   IADDR UNUSED pc = abuf->addr;
5023   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5024
5025   {
5026     SI opval = frvbf_read_mem_UQI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
5027     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
5028     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
5029   }
5030
5031   return vpc;
5032 #undef FLD
5033 }
5034
5035 /* ldhfi: ldhfi$pack @($GRi,$d12),$FRintk */
5036
5037 static SEM_PC
5038 SEM_FN_NAME (frvbf,ldhfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5039 {
5040 #define FLD(f) abuf->fields.sfmt_ldbfi.f
5041   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5042   int UNUSED written = 0;
5043   IADDR UNUSED pc = abuf->addr;
5044   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5045
5046   {
5047     SI opval = frvbf_read_mem_UHI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
5048     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
5049     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
5050   }
5051
5052   return vpc;
5053 #undef FLD
5054 }
5055
5056 /* ldfi: ldfi$pack @($GRi,$d12),$FRintk */
5057
5058 static SEM_PC
5059 SEM_FN_NAME (frvbf,ldfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5060 {
5061 #define FLD(f) abuf->fields.sfmt_ldbfi.f
5062   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5063   int UNUSED written = 0;
5064   IADDR UNUSED pc = abuf->addr;
5065   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5066
5067   {
5068     SI opval = frvbf_read_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
5069     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
5070     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
5071   }
5072
5073   return vpc;
5074 #undef FLD
5075 }
5076
5077 /* nldsbi: nldsbi$pack @($GRi,$d12),$GRk */
5078
5079 static SEM_PC
5080 SEM_FN_NAME (frvbf,nldsbi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5081 {
5082 #define FLD(f) abuf->fields.sfmt_swapi.f
5083   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5084   int UNUSED written = 0;
5085   IADDR UNUSED pc = abuf->addr;
5086   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5087
5088 {
5089   BI tmp_do_op;
5090   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), -1, FLD (f_GRk), FLD (f_d12), 1, 0);
5091 if (tmp_do_op) {
5092   {
5093     SI opval = frvbf_read_mem_QI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
5094     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
5095     written |= (1 << 5);
5096     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5097   }
5098 }
5099 }
5100
5101   abuf->written = written;
5102   return vpc;
5103 #undef FLD
5104 }
5105
5106 /* nldubi: nldubi$pack @($GRi,$d12),$GRk */
5107
5108 static SEM_PC
5109 SEM_FN_NAME (frvbf,nldubi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5110 {
5111 #define FLD(f) abuf->fields.sfmt_swapi.f
5112   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5113   int UNUSED written = 0;
5114   IADDR UNUSED pc = abuf->addr;
5115   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5116
5117 {
5118   BI tmp_do_op;
5119   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), -1, FLD (f_GRk), FLD (f_d12), 0, 0);
5120 if (tmp_do_op) {
5121   {
5122     SI opval = frvbf_read_mem_UQI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
5123     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
5124     written |= (1 << 5);
5125     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5126   }
5127 }
5128 }
5129
5130   abuf->written = written;
5131   return vpc;
5132 #undef FLD
5133 }
5134
5135 /* nldshi: nldshi$pack @($GRi,$d12),$GRk */
5136
5137 static SEM_PC
5138 SEM_FN_NAME (frvbf,nldshi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5139 {
5140 #define FLD(f) abuf->fields.sfmt_swapi.f
5141   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5142   int UNUSED written = 0;
5143   IADDR UNUSED pc = abuf->addr;
5144   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5145
5146 {
5147   BI tmp_do_op;
5148   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), -1, FLD (f_GRk), FLD (f_d12), 3, 0);
5149 if (tmp_do_op) {
5150   {
5151     SI opval = frvbf_read_mem_HI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
5152     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
5153     written |= (1 << 5);
5154     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5155   }
5156 }
5157 }
5158
5159   abuf->written = written;
5160   return vpc;
5161 #undef FLD
5162 }
5163
5164 /* nlduhi: nlduhi$pack @($GRi,$d12),$GRk */
5165
5166 static SEM_PC
5167 SEM_FN_NAME (frvbf,nlduhi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5168 {
5169 #define FLD(f) abuf->fields.sfmt_swapi.f
5170   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5171   int UNUSED written = 0;
5172   IADDR UNUSED pc = abuf->addr;
5173   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5174
5175 {
5176   BI tmp_do_op;
5177   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), -1, FLD (f_GRk), FLD (f_d12), 2, 0);
5178 if (tmp_do_op) {
5179   {
5180     SI opval = frvbf_read_mem_UHI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
5181     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
5182     written |= (1 << 5);
5183     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5184   }
5185 }
5186 }
5187
5188   abuf->written = written;
5189   return vpc;
5190 #undef FLD
5191 }
5192
5193 /* nldi: nldi$pack @($GRi,$d12),$GRk */
5194
5195 static SEM_PC
5196 SEM_FN_NAME (frvbf,nldi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5197 {
5198 #define FLD(f) abuf->fields.sfmt_swapi.f
5199   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5200   int UNUSED written = 0;
5201   IADDR UNUSED pc = abuf->addr;
5202   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5203
5204 {
5205   BI tmp_do_op;
5206   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), -1, FLD (f_GRk), FLD (f_d12), 4, 0);
5207 if (tmp_do_op) {
5208   {
5209     SI opval = frvbf_read_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
5210     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
5211     written |= (1 << 5);
5212     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5213   }
5214 }
5215 }
5216
5217   abuf->written = written;
5218   return vpc;
5219 #undef FLD
5220 }
5221
5222 /* nldbfi: nldbfi$pack @($GRi,$d12),$FRintk */
5223
5224 static SEM_PC
5225 SEM_FN_NAME (frvbf,nldbfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5226 {
5227 #define FLD(f) abuf->fields.sfmt_ldbfi.f
5228   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5229   int UNUSED written = 0;
5230   IADDR UNUSED pc = abuf->addr;
5231   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5232
5233 {
5234   BI tmp_do_op;
5235   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), -1, FLD (f_FRk), FLD (f_d12), 0, 1);
5236 if (tmp_do_op) {
5237   {
5238     SI opval = frvbf_read_mem_UQI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
5239     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
5240     written |= (1 << 5);
5241     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
5242   }
5243 }
5244 }
5245
5246   abuf->written = written;
5247   return vpc;
5248 #undef FLD
5249 }
5250
5251 /* nldhfi: nldhfi$pack @($GRi,$d12),$FRintk */
5252
5253 static SEM_PC
5254 SEM_FN_NAME (frvbf,nldhfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5255 {
5256 #define FLD(f) abuf->fields.sfmt_ldbfi.f
5257   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5258   int UNUSED written = 0;
5259   IADDR UNUSED pc = abuf->addr;
5260   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5261
5262 {
5263   BI tmp_do_op;
5264   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), -1, FLD (f_FRk), FLD (f_d12), 2, 1);
5265 if (tmp_do_op) {
5266   {
5267     SI opval = frvbf_read_mem_UHI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
5268     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
5269     written |= (1 << 5);
5270     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
5271   }
5272 }
5273 }
5274
5275   abuf->written = written;
5276   return vpc;
5277 #undef FLD
5278 }
5279
5280 /* nldfi: nldfi$pack @($GRi,$d12),$FRintk */
5281
5282 static SEM_PC
5283 SEM_FN_NAME (frvbf,nldfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5284 {
5285 #define FLD(f) abuf->fields.sfmt_ldbfi.f
5286   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5287   int UNUSED written = 0;
5288   IADDR UNUSED pc = abuf->addr;
5289   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5290
5291 {
5292   BI tmp_do_op;
5293   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), -1, FLD (f_FRk), FLD (f_d12), 4, 1);
5294 if (tmp_do_op) {
5295   {
5296     SI opval = frvbf_read_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
5297     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
5298     written |= (1 << 5);
5299     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
5300   }
5301 }
5302 }
5303
5304   abuf->written = written;
5305   return vpc;
5306 #undef FLD
5307 }
5308
5309 /* lddi: lddi$pack @($GRi,$d12),$GRdoublek */
5310
5311 static SEM_PC
5312 SEM_FN_NAME (frvbf,lddi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5313 {
5314 #define FLD(f) abuf->fields.sfmt_smuli.f
5315   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5316   int UNUSED written = 0;
5317   IADDR UNUSED pc = abuf->addr;
5318   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5319
5320 {
5321   SI tmp_address;
5322 if (NESI (FLD (f_GRk), 0)) {
5323 {
5324   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
5325   {
5326     DI opval = frvbf_read_mem_DI (current_cpu, pc, tmp_address);
5327     sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
5328     written |= (1 << 4);
5329     TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
5330   }
5331 }
5332 }
5333 }
5334
5335   abuf->written = written;
5336   return vpc;
5337 #undef FLD
5338 }
5339
5340 /* lddfi: lddfi$pack @($GRi,$d12),$FRdoublek */
5341
5342 static SEM_PC
5343 SEM_FN_NAME (frvbf,lddfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5344 {
5345 #define FLD(f) abuf->fields.sfmt_lddfi.f
5346   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5347   int UNUSED written = 0;
5348   IADDR UNUSED pc = abuf->addr;
5349   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5350
5351 {
5352   SI tmp_address;
5353 {
5354   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
5355   {
5356     DF opval = frvbf_read_mem_DF (current_cpu, pc, tmp_address);
5357     sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
5358     TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
5359   }
5360 }
5361 }
5362
5363   return vpc;
5364 #undef FLD
5365 }
5366
5367 /* nlddi: nlddi$pack @($GRi,$d12),$GRdoublek */
5368
5369 static SEM_PC
5370 SEM_FN_NAME (frvbf,nlddi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5371 {
5372 #define FLD(f) abuf->fields.sfmt_smuli.f
5373   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5374   int UNUSED written = 0;
5375   IADDR UNUSED pc = abuf->addr;
5376   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5377
5378 {
5379   SI tmp_address;
5380 {
5381   BI tmp_do_op;
5382   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), -1, FLD (f_GRk), FLD (f_d12), 5, 0);
5383 if (tmp_do_op) {
5384 if (NESI (FLD (f_GRk), 0)) {
5385 {
5386   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
5387   {
5388     DI opval = frvbf_read_mem_DI (current_cpu, pc, tmp_address);
5389     sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
5390     written |= (1 << 5);
5391     TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
5392   }
5393 }
5394 }
5395 }
5396 }
5397 }
5398
5399   abuf->written = written;
5400   return vpc;
5401 #undef FLD
5402 }
5403
5404 /* nlddfi: nlddfi$pack @($GRi,$d12),$FRdoublek */
5405
5406 static SEM_PC
5407 SEM_FN_NAME (frvbf,nlddfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5408 {
5409 #define FLD(f) abuf->fields.sfmt_lddfi.f
5410   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5411   int UNUSED written = 0;
5412   IADDR UNUSED pc = abuf->addr;
5413   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5414
5415 {
5416   SI tmp_address;
5417 {
5418   BI tmp_do_op;
5419   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), -1, FLD (f_FRk), FLD (f_d12), 5, 1);
5420 if (tmp_do_op) {
5421 {
5422   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
5423   {
5424     DF opval = frvbf_read_mem_DF (current_cpu, pc, tmp_address);
5425     sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
5426     written |= (1 << 5);
5427     TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
5428   }
5429 }
5430 }
5431 }
5432 }
5433
5434   abuf->written = written;
5435   return vpc;
5436 #undef FLD
5437 }
5438
5439 /* ldqi: ldqi$pack @($GRi,$d12),$GRk */
5440
5441 static SEM_PC
5442 SEM_FN_NAME (frvbf,ldqi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5443 {
5444 #define FLD(f) abuf->fields.sfmt_stdi.f
5445   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5446   int UNUSED written = 0;
5447   IADDR UNUSED pc = abuf->addr;
5448   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5449
5450 {
5451   SI tmp_address;
5452 {
5453   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
5454 frvbf_load_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
5455 }
5456 }
5457
5458   return vpc;
5459 #undef FLD
5460 }
5461
5462 /* ldqfi: ldqfi$pack @($GRi,$d12),$FRintk */
5463
5464 static SEM_PC
5465 SEM_FN_NAME (frvbf,ldqfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5466 {
5467 #define FLD(f) abuf->fields.sfmt_stdfi.f
5468   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5469   int UNUSED written = 0;
5470   IADDR UNUSED pc = abuf->addr;
5471   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5472
5473 {
5474   SI tmp_address;
5475 {
5476   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
5477 frvbf_load_quad_FRint (current_cpu, pc, tmp_address, FLD (f_FRk));
5478 }
5479 }
5480
5481   return vpc;
5482 #undef FLD
5483 }
5484
5485 /* nldqfi: nldqfi$pack @($GRi,$d12),$FRintk */
5486
5487 static SEM_PC
5488 SEM_FN_NAME (frvbf,nldqfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5489 {
5490 #define FLD(f) abuf->fields.sfmt_stdfi.f
5491   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5492   int UNUSED written = 0;
5493   IADDR UNUSED pc = abuf->addr;
5494   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5495
5496 {
5497   SI tmp_address;
5498 {
5499   BI tmp_do_op;
5500   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), -1, FLD (f_FRk), FLD (f_d12), 6, 1);
5501 if (tmp_do_op) {
5502 {
5503   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
5504 frvbf_load_quad_FRint (current_cpu, pc, tmp_address, FLD (f_FRk));
5505 }
5506 }
5507 }
5508 }
5509
5510   return vpc;
5511 #undef FLD
5512 }
5513
5514 /* stb: stb$pack $GRk,@($GRi,$GRj) */
5515
5516 static SEM_PC
5517 SEM_FN_NAME (frvbf,stb) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5518 {
5519 #define FLD(f) abuf->fields.sfmt_cswap.f
5520   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5521   int UNUSED written = 0;
5522   IADDR UNUSED pc = abuf->addr;
5523   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5524
5525 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)));
5526
5527   return vpc;
5528 #undef FLD
5529 }
5530
5531 /* sth: sth$pack $GRk,@($GRi,$GRj) */
5532
5533 static SEM_PC
5534 SEM_FN_NAME (frvbf,sth) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5535 {
5536 #define FLD(f) abuf->fields.sfmt_cswap.f
5537   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5538   int UNUSED written = 0;
5539   IADDR UNUSED pc = abuf->addr;
5540   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5541
5542 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)));
5543
5544   return vpc;
5545 #undef FLD
5546 }
5547
5548 /* st: st$pack $GRk,@($GRi,$GRj) */
5549
5550 static SEM_PC
5551 SEM_FN_NAME (frvbf,st) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5552 {
5553 #define FLD(f) abuf->fields.sfmt_cswap.f
5554   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5555   int UNUSED written = 0;
5556   IADDR UNUSED pc = abuf->addr;
5557   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5558
5559 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)));
5560
5561   return vpc;
5562 #undef FLD
5563 }
5564
5565 /* stbf: stbf$pack $FRintk,@($GRi,$GRj) */
5566
5567 static SEM_PC
5568 SEM_FN_NAME (frvbf,stbf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5569 {
5570 #define FLD(f) abuf->fields.sfmt_cstbfu.f
5571   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5572   int UNUSED written = 0;
5573   IADDR UNUSED pc = abuf->addr;
5574   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5575
5576 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)));
5577
5578   return vpc;
5579 #undef FLD
5580 }
5581
5582 /* sthf: sthf$pack $FRintk,@($GRi,$GRj) */
5583
5584 static SEM_PC
5585 SEM_FN_NAME (frvbf,sthf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5586 {
5587 #define FLD(f) abuf->fields.sfmt_cstbfu.f
5588   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5589   int UNUSED written = 0;
5590   IADDR UNUSED pc = abuf->addr;
5591   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5592
5593 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)));
5594
5595   return vpc;
5596 #undef FLD
5597 }
5598
5599 /* stf: stf$pack $FRintk,@($GRi,$GRj) */
5600
5601 static SEM_PC
5602 SEM_FN_NAME (frvbf,stf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5603 {
5604 #define FLD(f) abuf->fields.sfmt_cstbfu.f
5605   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5606   int UNUSED written = 0;
5607   IADDR UNUSED pc = abuf->addr;
5608   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5609
5610 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)));
5611
5612   return vpc;
5613 #undef FLD
5614 }
5615
5616 /* stc: stc$pack $CPRk,@($GRi,$GRj) */
5617
5618 static SEM_PC
5619 SEM_FN_NAME (frvbf,stc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5620 {
5621 #define FLD(f) abuf->fields.sfmt_stcu.f
5622   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5623   int UNUSED written = 0;
5624   IADDR UNUSED pc = abuf->addr;
5625   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5626
5627 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)]));
5628
5629   return vpc;
5630 #undef FLD
5631 }
5632
5633 /* std: std$pack $GRdoublek,@($GRi,$GRj) */
5634
5635 static SEM_PC
5636 SEM_FN_NAME (frvbf,std) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5637 {
5638 #define FLD(f) abuf->fields.sfmt_cstdu.f
5639   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5640   int UNUSED written = 0;
5641   IADDR UNUSED pc = abuf->addr;
5642   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5643
5644 {
5645   SI tmp_address;
5646 {
5647   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5648 frvbf_write_mem_DI (current_cpu, pc, tmp_address, GET_H_GR_DOUBLE (FLD (f_GRk)));
5649 }
5650 }
5651
5652   return vpc;
5653 #undef FLD
5654 }
5655
5656 /* stdf: stdf$pack $FRdoublek,@($GRi,$GRj) */
5657
5658 static SEM_PC
5659 SEM_FN_NAME (frvbf,stdf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5660 {
5661 #define FLD(f) abuf->fields.sfmt_cstdfu.f
5662   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5663   int UNUSED written = 0;
5664   IADDR UNUSED pc = abuf->addr;
5665   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5666
5667 {
5668   SI tmp_address;
5669 {
5670   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5671 frvbf_write_mem_DF (current_cpu, pc, tmp_address, GET_H_FR_DOUBLE (FLD (f_FRk)));
5672 }
5673 }
5674
5675   return vpc;
5676 #undef FLD
5677 }
5678
5679 /* stdc: stdc$pack $CPRdoublek,@($GRi,$GRj) */
5680
5681 static SEM_PC
5682 SEM_FN_NAME (frvbf,stdc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5683 {
5684 #define FLD(f) abuf->fields.sfmt_stdcu.f
5685   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5686   int UNUSED written = 0;
5687   IADDR UNUSED pc = abuf->addr;
5688   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5689
5690 {
5691   SI tmp_address;
5692 {
5693   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5694 frvbf_write_mem_DI (current_cpu, pc, tmp_address, GET_H_CPR_DOUBLE (FLD (f_CPRk)));
5695 }
5696 }
5697
5698   return vpc;
5699 #undef FLD
5700 }
5701
5702 /* stq: stq$pack $GRk,@($GRi,$GRj) */
5703
5704 static SEM_PC
5705 SEM_FN_NAME (frvbf,stq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5706 {
5707 #define FLD(f) abuf->fields.sfmt_smulcc.f
5708   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5709   int UNUSED written = 0;
5710   IADDR UNUSED pc = abuf->addr;
5711   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5712
5713 {
5714   SI tmp_address;
5715 {
5716   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5717 frvbf_store_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
5718 }
5719 }
5720
5721   return vpc;
5722 #undef FLD
5723 }
5724
5725 /* stqf: stqf$pack $FRintk,@($GRi,$GRj) */
5726
5727 static SEM_PC
5728 SEM_FN_NAME (frvbf,stqf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5729 {
5730 #define FLD(f) abuf->fields.sfmt_cstdfu.f
5731   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5732   int UNUSED written = 0;
5733   IADDR UNUSED pc = abuf->addr;
5734   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5735
5736 {
5737   SI tmp_address;
5738 {
5739   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5740 frvbf_store_quad_FRint (current_cpu, pc, tmp_address, FLD (f_FRk));
5741 }
5742 }
5743
5744   return vpc;
5745 #undef FLD
5746 }
5747
5748 /* stqc: stqc$pack $CPRk,@($GRi,$GRj) */
5749
5750 static SEM_PC
5751 SEM_FN_NAME (frvbf,stqc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5752 {
5753 #define FLD(f) abuf->fields.sfmt_stdcu.f
5754   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5755   int UNUSED written = 0;
5756   IADDR UNUSED pc = abuf->addr;
5757   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5758
5759 {
5760   SI tmp_address;
5761 {
5762   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5763 frvbf_store_quad_CPR (current_cpu, pc, tmp_address, FLD (f_CPRk));
5764 }
5765 }
5766
5767   return vpc;
5768 #undef FLD
5769 }
5770
5771 /* stbu: stbu$pack $GRk,@($GRi,$GRj) */
5772
5773 static SEM_PC
5774 SEM_FN_NAME (frvbf,stbu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5775 {
5776 #define FLD(f) abuf->fields.sfmt_cstbu.f
5777   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5778   int UNUSED written = 0;
5779   IADDR UNUSED pc = abuf->addr;
5780   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5781
5782 {
5783   USI tmp_address;
5784   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5785 frvbf_write_mem_QI (current_cpu, pc, tmp_address, GET_H_GR (FLD (f_GRk)));
5786   {
5787     SI opval = tmp_address;
5788     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
5789     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5790   }
5791 }
5792
5793   return vpc;
5794 #undef FLD
5795 }
5796
5797 /* sthu: sthu$pack $GRk,@($GRi,$GRj) */
5798
5799 static SEM_PC
5800 SEM_FN_NAME (frvbf,sthu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5801 {
5802 #define FLD(f) abuf->fields.sfmt_cstbu.f
5803   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5804   int UNUSED written = 0;
5805   IADDR UNUSED pc = abuf->addr;
5806   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5807
5808 {
5809   USI tmp_address;
5810   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5811 frvbf_write_mem_HI (current_cpu, pc, tmp_address, GET_H_GR (FLD (f_GRk)));
5812   {
5813     SI opval = tmp_address;
5814     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
5815     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5816   }
5817 }
5818
5819   return vpc;
5820 #undef FLD
5821 }
5822
5823 /* stu: stu$pack $GRk,@($GRi,$GRj) */
5824
5825 static SEM_PC
5826 SEM_FN_NAME (frvbf,stu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5827 {
5828 #define FLD(f) abuf->fields.sfmt_cstbu.f
5829   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5830   int UNUSED written = 0;
5831   IADDR UNUSED pc = abuf->addr;
5832   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5833
5834 {
5835   USI tmp_address;
5836   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5837 frvbf_write_mem_WI (current_cpu, pc, tmp_address, GET_H_GR (FLD (f_GRk)));
5838   {
5839     SI opval = tmp_address;
5840     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
5841     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5842   }
5843 }
5844
5845   return vpc;
5846 #undef FLD
5847 }
5848
5849 /* stbfu: stbfu$pack $FRintk,@($GRi,$GRj) */
5850
5851 static SEM_PC
5852 SEM_FN_NAME (frvbf,stbfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5853 {
5854 #define FLD(f) abuf->fields.sfmt_cstbfu.f
5855   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5856   int UNUSED written = 0;
5857   IADDR UNUSED pc = abuf->addr;
5858   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5859
5860 {
5861   USI tmp_address;
5862   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5863 frvbf_write_mem_QI (current_cpu, pc, tmp_address, GET_H_FR_INT (FLD (f_FRk)));
5864   {
5865     SI opval = tmp_address;
5866     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
5867     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5868   }
5869 }
5870
5871   return vpc;
5872 #undef FLD
5873 }
5874
5875 /* sthfu: sthfu$pack $FRintk,@($GRi,$GRj) */
5876
5877 static SEM_PC
5878 SEM_FN_NAME (frvbf,sthfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5879 {
5880 #define FLD(f) abuf->fields.sfmt_cstbfu.f
5881   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5882   int UNUSED written = 0;
5883   IADDR UNUSED pc = abuf->addr;
5884   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5885
5886 {
5887   USI tmp_address;
5888   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5889 frvbf_write_mem_HI (current_cpu, pc, tmp_address, GET_H_FR_INT (FLD (f_FRk)));
5890   {
5891     SI opval = tmp_address;
5892     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
5893     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5894   }
5895 }
5896
5897   return vpc;
5898 #undef FLD
5899 }
5900
5901 /* stfu: stfu$pack $FRintk,@($GRi,$GRj) */
5902
5903 static SEM_PC
5904 SEM_FN_NAME (frvbf,stfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5905 {
5906 #define FLD(f) abuf->fields.sfmt_cstbfu.f
5907   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5908   int UNUSED written = 0;
5909   IADDR UNUSED pc = abuf->addr;
5910   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5911
5912 {
5913   USI tmp_address;
5914   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5915 frvbf_write_mem_SI (current_cpu, pc, tmp_address, GET_H_FR_INT (FLD (f_FRk)));
5916   {
5917     SI opval = tmp_address;
5918     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
5919     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5920   }
5921 }
5922
5923   return vpc;
5924 #undef FLD
5925 }
5926
5927 /* stcu: stcu$pack $CPRk,@($GRi,$GRj) */
5928
5929 static SEM_PC
5930 SEM_FN_NAME (frvbf,stcu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5931 {
5932 #define FLD(f) abuf->fields.sfmt_stcu.f
5933   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5934   int UNUSED written = 0;
5935   IADDR UNUSED pc = abuf->addr;
5936   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5937
5938 {
5939   USI tmp_address;
5940   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5941 frvbf_write_mem_SI (current_cpu, pc, tmp_address, CPU (h_cpr[FLD (f_CPRk)]));
5942   {
5943     SI opval = tmp_address;
5944     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
5945     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5946   }
5947 }
5948
5949   return vpc;
5950 #undef FLD
5951 }
5952
5953 /* stdu: stdu$pack $GRdoublek,@($GRi,$GRj) */
5954
5955 static SEM_PC
5956 SEM_FN_NAME (frvbf,stdu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5957 {
5958 #define FLD(f) abuf->fields.sfmt_cstdu.f
5959   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5960   int UNUSED written = 0;
5961   IADDR UNUSED pc = abuf->addr;
5962   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5963
5964 {
5965   SI tmp_address;
5966 {
5967   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5968 frvbf_write_mem_DI (current_cpu, pc, tmp_address, GET_H_GR_DOUBLE (FLD (f_GRk)));
5969 }
5970   {
5971     SI opval = tmp_address;
5972     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
5973     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5974   }
5975 }
5976
5977   return vpc;
5978 #undef FLD
5979 }
5980
5981 /* stdfu: stdfu$pack $FRdoublek,@($GRi,$GRj) */
5982
5983 static SEM_PC
5984 SEM_FN_NAME (frvbf,stdfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5985 {
5986 #define FLD(f) abuf->fields.sfmt_cstdfu.f
5987   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5988   int UNUSED written = 0;
5989   IADDR UNUSED pc = abuf->addr;
5990   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5991
5992 {
5993   SI tmp_address;
5994 {
5995   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5996 frvbf_write_mem_DF (current_cpu, pc, tmp_address, GET_H_FR_DOUBLE (FLD (f_FRk)));
5997 }
5998   {
5999     SI opval = tmp_address;
6000     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6001     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6002   }
6003 }
6004
6005   return vpc;
6006 #undef FLD
6007 }
6008
6009 /* stdcu: stdcu$pack $CPRdoublek,@($GRi,$GRj) */
6010
6011 static SEM_PC
6012 SEM_FN_NAME (frvbf,stdcu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6013 {
6014 #define FLD(f) abuf->fields.sfmt_stdcu.f
6015   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6016   int UNUSED written = 0;
6017   IADDR UNUSED pc = abuf->addr;
6018   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6019
6020 {
6021   SI tmp_address;
6022 {
6023   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6024 frvbf_write_mem_DI (current_cpu, pc, tmp_address, GET_H_CPR_DOUBLE (FLD (f_CPRk)));
6025 }
6026   {
6027     SI opval = tmp_address;
6028     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6029     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6030   }
6031 }
6032
6033   return vpc;
6034 #undef FLD
6035 }
6036
6037 /* stqu: stqu$pack $GRk,@($GRi,$GRj) */
6038
6039 static SEM_PC
6040 SEM_FN_NAME (frvbf,stqu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6041 {
6042 #define FLD(f) abuf->fields.sfmt_cstdu.f
6043   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6044   int UNUSED written = 0;
6045   IADDR UNUSED pc = abuf->addr;
6046   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6047
6048 {
6049   SI tmp_address;
6050 {
6051   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6052 frvbf_store_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
6053 }
6054   {
6055     SI opval = tmp_address;
6056     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6057     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6058   }
6059 }
6060
6061   return vpc;
6062 #undef FLD
6063 }
6064
6065 /* stqfu: stqfu$pack $FRintk,@($GRi,$GRj) */
6066
6067 static SEM_PC
6068 SEM_FN_NAME (frvbf,stqfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6069 {
6070 #define FLD(f) abuf->fields.sfmt_cstdfu.f
6071   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6072   int UNUSED written = 0;
6073   IADDR UNUSED pc = abuf->addr;
6074   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6075
6076 {
6077   SI tmp_address;
6078 {
6079   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6080 frvbf_store_quad_FRint (current_cpu, pc, tmp_address, FLD (f_FRk));
6081 }
6082   {
6083     SI opval = tmp_address;
6084     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6085     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6086   }
6087 }
6088
6089   return vpc;
6090 #undef FLD
6091 }
6092
6093 /* stqcu: stqcu$pack $CPRk,@($GRi,$GRj) */
6094
6095 static SEM_PC
6096 SEM_FN_NAME (frvbf,stqcu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6097 {
6098 #define FLD(f) abuf->fields.sfmt_stdcu.f
6099   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6100   int UNUSED written = 0;
6101   IADDR UNUSED pc = abuf->addr;
6102   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6103
6104 {
6105   SI tmp_address;
6106 {
6107   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6108 frvbf_store_quad_CPR (current_cpu, pc, tmp_address, FLD (f_CPRk));
6109 }
6110   {
6111     SI opval = tmp_address;
6112     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6113     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6114   }
6115 }
6116
6117   return vpc;
6118 #undef FLD
6119 }
6120
6121 /* cldsb: cldsb$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6122
6123 static SEM_PC
6124 SEM_FN_NAME (frvbf,cldsb) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6125 {
6126 #define FLD(f) abuf->fields.sfmt_cswap.f
6127   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6128   int UNUSED written = 0;
6129   IADDR UNUSED pc = abuf->addr;
6130   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6131
6132 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6133   {
6134     SI opval = frvbf_read_mem_QI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
6135     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
6136     written |= (1 << 5);
6137     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6138   }
6139 }
6140
6141   abuf->written = written;
6142   return vpc;
6143 #undef FLD
6144 }
6145
6146 /* cldub: cldub$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6147
6148 static SEM_PC
6149 SEM_FN_NAME (frvbf,cldub) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6150 {
6151 #define FLD(f) abuf->fields.sfmt_cswap.f
6152   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6153   int UNUSED written = 0;
6154   IADDR UNUSED pc = abuf->addr;
6155   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6156
6157 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6158   {
6159     SI opval = frvbf_read_mem_UQI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
6160     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
6161     written |= (1 << 5);
6162     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6163   }
6164 }
6165
6166   abuf->written = written;
6167   return vpc;
6168 #undef FLD
6169 }
6170
6171 /* cldsh: cldsh$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6172
6173 static SEM_PC
6174 SEM_FN_NAME (frvbf,cldsh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6175 {
6176 #define FLD(f) abuf->fields.sfmt_cswap.f
6177   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6178   int UNUSED written = 0;
6179   IADDR UNUSED pc = abuf->addr;
6180   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6181
6182 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6183   {
6184     SI opval = frvbf_read_mem_HI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
6185     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
6186     written |= (1 << 5);
6187     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6188   }
6189 }
6190
6191   abuf->written = written;
6192   return vpc;
6193 #undef FLD
6194 }
6195
6196 /* clduh: clduh$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6197
6198 static SEM_PC
6199 SEM_FN_NAME (frvbf,clduh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6200 {
6201 #define FLD(f) abuf->fields.sfmt_cswap.f
6202   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6203   int UNUSED written = 0;
6204   IADDR UNUSED pc = abuf->addr;
6205   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6206
6207 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6208   {
6209     SI opval = frvbf_read_mem_UHI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
6210     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
6211     written |= (1 << 5);
6212     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6213   }
6214 }
6215
6216   abuf->written = written;
6217   return vpc;
6218 #undef FLD
6219 }
6220
6221 /* cld: cld$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6222
6223 static SEM_PC
6224 SEM_FN_NAME (frvbf,cld) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6225 {
6226 #define FLD(f) abuf->fields.sfmt_cswap.f
6227   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6228   int UNUSED written = 0;
6229   IADDR UNUSED pc = abuf->addr;
6230   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6231
6232 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6233   {
6234     SI opval = frvbf_read_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
6235     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
6236     written |= (1 << 5);
6237     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6238   }
6239 }
6240
6241   abuf->written = written;
6242   return vpc;
6243 #undef FLD
6244 }
6245
6246 /* cldbf: cldbf$pack @($GRi,$GRj),$FRintk,$CCi,$cond */
6247
6248 static SEM_PC
6249 SEM_FN_NAME (frvbf,cldbf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6250 {
6251 #define FLD(f) abuf->fields.sfmt_cldbfu.f
6252   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6253   int UNUSED written = 0;
6254   IADDR UNUSED pc = abuf->addr;
6255   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6256
6257 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6258   {
6259     SI opval = frvbf_read_mem_UQI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
6260     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
6261     written |= (1 << 5);
6262     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
6263   }
6264 }
6265
6266   abuf->written = written;
6267   return vpc;
6268 #undef FLD
6269 }
6270
6271 /* cldhf: cldhf$pack @($GRi,$GRj),$FRintk,$CCi,$cond */
6272
6273 static SEM_PC
6274 SEM_FN_NAME (frvbf,cldhf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6275 {
6276 #define FLD(f) abuf->fields.sfmt_cldbfu.f
6277   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6278   int UNUSED written = 0;
6279   IADDR UNUSED pc = abuf->addr;
6280   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6281
6282 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6283   {
6284     SI opval = frvbf_read_mem_UHI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
6285     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
6286     written |= (1 << 5);
6287     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
6288   }
6289 }
6290
6291   abuf->written = written;
6292   return vpc;
6293 #undef FLD
6294 }
6295
6296 /* cldf: cldf$pack @($GRi,$GRj),$FRintk,$CCi,$cond */
6297
6298 static SEM_PC
6299 SEM_FN_NAME (frvbf,cldf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6300 {
6301 #define FLD(f) abuf->fields.sfmt_cldbfu.f
6302   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6303   int UNUSED written = 0;
6304   IADDR UNUSED pc = abuf->addr;
6305   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6306
6307 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6308   {
6309     SI opval = frvbf_read_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
6310     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
6311     written |= (1 << 5);
6312     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
6313   }
6314 }
6315
6316   abuf->written = written;
6317   return vpc;
6318 #undef FLD
6319 }
6320
6321 /* cldd: cldd$pack @($GRi,$GRj),$GRdoublek,$CCi,$cond */
6322
6323 static SEM_PC
6324 SEM_FN_NAME (frvbf,cldd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6325 {
6326 #define FLD(f) abuf->fields.sfmt_clddu.f
6327   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6328   int UNUSED written = 0;
6329   IADDR UNUSED pc = abuf->addr;
6330   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6331
6332 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6333 {
6334   SI tmp_address;
6335 if (NESI (FLD (f_GRk), 0)) {
6336 {
6337   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6338   {
6339     DI opval = frvbf_read_mem_DI (current_cpu, pc, tmp_address);
6340     sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
6341     written |= (1 << 6);
6342     TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
6343   }
6344 }
6345 }
6346 }
6347 }
6348
6349   abuf->written = written;
6350   return vpc;
6351 #undef FLD
6352 }
6353
6354 /* clddf: clddf$pack @($GRi,$GRj),$FRdoublek,$CCi,$cond */
6355
6356 static SEM_PC
6357 SEM_FN_NAME (frvbf,clddf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6358 {
6359 #define FLD(f) abuf->fields.sfmt_clddfu.f
6360   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6361   int UNUSED written = 0;
6362   IADDR UNUSED pc = abuf->addr;
6363   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6364
6365 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6366 {
6367   SI tmp_address;
6368 {
6369   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6370   {
6371     DF opval = frvbf_read_mem_DF (current_cpu, pc, tmp_address);
6372     sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
6373     written |= (1 << 5);
6374     TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
6375   }
6376 }
6377 }
6378 }
6379
6380   abuf->written = written;
6381   return vpc;
6382 #undef FLD
6383 }
6384
6385 /* cldq: cldq$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6386
6387 static SEM_PC
6388 SEM_FN_NAME (frvbf,cldq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6389 {
6390 #define FLD(f) abuf->fields.sfmt_cswap.f
6391   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6392   int UNUSED written = 0;
6393   IADDR UNUSED pc = abuf->addr;
6394   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6395
6396 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6397 {
6398   SI tmp_address;
6399 {
6400   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6401 frvbf_load_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
6402 }
6403 }
6404 }
6405
6406   return vpc;
6407 #undef FLD
6408 }
6409
6410 /* cldsbu: cldsbu$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6411
6412 static SEM_PC
6413 SEM_FN_NAME (frvbf,cldsbu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6414 {
6415 #define FLD(f) abuf->fields.sfmt_cldsbu.f
6416   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6417   int UNUSED written = 0;
6418   IADDR UNUSED pc = abuf->addr;
6419   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6420
6421 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6422 {
6423   SI tmp_address;
6424   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6425   {
6426     SI opval = frvbf_read_mem_QI (current_cpu, pc, tmp_address);
6427     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
6428     written |= (1 << 8);
6429     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6430   }
6431 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
6432   {
6433     SI opval = tmp_address;
6434     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6435     written |= (1 << 7);
6436     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6437   }
6438 }
6439 }
6440 }
6441
6442   abuf->written = written;
6443   return vpc;
6444 #undef FLD
6445 }
6446
6447 /* cldubu: cldubu$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6448
6449 static SEM_PC
6450 SEM_FN_NAME (frvbf,cldubu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6451 {
6452 #define FLD(f) abuf->fields.sfmt_cldsbu.f
6453   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6454   int UNUSED written = 0;
6455   IADDR UNUSED pc = abuf->addr;
6456   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6457
6458 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6459 {
6460   SI tmp_address;
6461   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6462   {
6463     SI opval = frvbf_read_mem_UQI (current_cpu, pc, tmp_address);
6464     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
6465     written |= (1 << 8);
6466     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6467   }
6468 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
6469   {
6470     SI opval = tmp_address;
6471     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6472     written |= (1 << 7);
6473     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6474   }
6475 }
6476 }
6477 }
6478
6479   abuf->written = written;
6480   return vpc;
6481 #undef FLD
6482 }
6483
6484 /* cldshu: cldshu$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6485
6486 static SEM_PC
6487 SEM_FN_NAME (frvbf,cldshu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6488 {
6489 #define FLD(f) abuf->fields.sfmt_cldsbu.f
6490   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6491   int UNUSED written = 0;
6492   IADDR UNUSED pc = abuf->addr;
6493   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6494
6495 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6496 {
6497   SI tmp_address;
6498   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6499   {
6500     SI opval = frvbf_read_mem_HI (current_cpu, pc, tmp_address);
6501     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
6502     written |= (1 << 8);
6503     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6504   }
6505 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
6506   {
6507     SI opval = tmp_address;
6508     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6509     written |= (1 << 7);
6510     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6511   }
6512 }
6513 }
6514 }
6515
6516   abuf->written = written;
6517   return vpc;
6518 #undef FLD
6519 }
6520
6521 /* clduhu: clduhu$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6522
6523 static SEM_PC
6524 SEM_FN_NAME (frvbf,clduhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6525 {
6526 #define FLD(f) abuf->fields.sfmt_cldsbu.f
6527   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6528   int UNUSED written = 0;
6529   IADDR UNUSED pc = abuf->addr;
6530   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6531
6532 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6533 {
6534   SI tmp_address;
6535   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6536   {
6537     SI opval = frvbf_read_mem_UHI (current_cpu, pc, tmp_address);
6538     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
6539     written |= (1 << 8);
6540     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6541   }
6542 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
6543   {
6544     SI opval = tmp_address;
6545     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6546     written |= (1 << 7);
6547     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6548   }
6549 }
6550 }
6551 }
6552
6553   abuf->written = written;
6554   return vpc;
6555 #undef FLD
6556 }
6557
6558 /* cldu: cldu$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6559
6560 static SEM_PC
6561 SEM_FN_NAME (frvbf,cldu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6562 {
6563 #define FLD(f) abuf->fields.sfmt_cldsbu.f
6564   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6565   int UNUSED written = 0;
6566   IADDR UNUSED pc = abuf->addr;
6567   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6568
6569 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6570 {
6571   SI tmp_address;
6572   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6573   {
6574     SI opval = frvbf_read_mem_SI (current_cpu, pc, tmp_address);
6575     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
6576     written |= (1 << 8);
6577     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6578   }
6579 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
6580   {
6581     SI opval = tmp_address;
6582     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6583     written |= (1 << 7);
6584     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6585   }
6586 }
6587 }
6588 }
6589
6590   abuf->written = written;
6591   return vpc;
6592 #undef FLD
6593 }
6594
6595 /* cldbfu: cldbfu$pack @($GRi,$GRj),$FRintk,$CCi,$cond */
6596
6597 static SEM_PC
6598 SEM_FN_NAME (frvbf,cldbfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6599 {
6600 #define FLD(f) abuf->fields.sfmt_cldbfu.f
6601   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6602   int UNUSED written = 0;
6603   IADDR UNUSED pc = abuf->addr;
6604   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6605
6606 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6607 {
6608   SI tmp_address;
6609   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6610   {
6611     SI opval = frvbf_read_mem_UQI (current_cpu, pc, tmp_address);
6612     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
6613     written |= (1 << 5);
6614     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
6615   }
6616   {
6617     SI opval = tmp_address;
6618     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6619     written |= (1 << 6);
6620     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6621   }
6622 }
6623 }
6624
6625   abuf->written = written;
6626   return vpc;
6627 #undef FLD
6628 }
6629
6630 /* cldhfu: cldhfu$pack @($GRi,$GRj),$FRintk,$CCi,$cond */
6631
6632 static SEM_PC
6633 SEM_FN_NAME (frvbf,cldhfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6634 {
6635 #define FLD(f) abuf->fields.sfmt_cldbfu.f
6636   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6637   int UNUSED written = 0;
6638   IADDR UNUSED pc = abuf->addr;
6639   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6640
6641 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6642 {
6643   SI tmp_address;
6644   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6645   {
6646     SI opval = frvbf_read_mem_UHI (current_cpu, pc, tmp_address);
6647     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
6648     written |= (1 << 5);
6649     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
6650   }
6651   {
6652     SI opval = tmp_address;
6653     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6654     written |= (1 << 6);
6655     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6656   }
6657 }
6658 }
6659
6660   abuf->written = written;
6661   return vpc;
6662 #undef FLD
6663 }
6664
6665 /* cldfu: cldfu$pack @($GRi,$GRj),$FRintk,$CCi,$cond */
6666
6667 static SEM_PC
6668 SEM_FN_NAME (frvbf,cldfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6669 {
6670 #define FLD(f) abuf->fields.sfmt_cldbfu.f
6671   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6672   int UNUSED written = 0;
6673   IADDR UNUSED pc = abuf->addr;
6674   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6675
6676 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6677 {
6678   SI tmp_address;
6679   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6680   {
6681     SI opval = frvbf_read_mem_SI (current_cpu, pc, tmp_address);
6682     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
6683     written |= (1 << 5);
6684     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
6685   }
6686   {
6687     SI opval = tmp_address;
6688     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6689     written |= (1 << 6);
6690     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6691   }
6692 }
6693 }
6694
6695   abuf->written = written;
6696   return vpc;
6697 #undef FLD
6698 }
6699
6700 /* clddu: clddu$pack @($GRi,$GRj),$GRdoublek,$CCi,$cond */
6701
6702 static SEM_PC
6703 SEM_FN_NAME (frvbf,clddu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6704 {
6705 #define FLD(f) abuf->fields.sfmt_clddu.f
6706   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6707   int UNUSED written = 0;
6708   IADDR UNUSED pc = abuf->addr;
6709   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6710
6711 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6712 {
6713   SI tmp_address;
6714 if (NESI (FLD (f_GRk), 0)) {
6715 {
6716   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6717   {
6718     DI opval = frvbf_read_mem_DI (current_cpu, pc, tmp_address);
6719     sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
6720     written |= (1 << 7);
6721     TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
6722   }
6723 }
6724 }
6725 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
6726   {
6727     SI opval = tmp_address;
6728     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6729     written |= (1 << 8);
6730     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6731   }
6732 }
6733 }
6734 }
6735
6736   abuf->written = written;
6737   return vpc;
6738 #undef FLD
6739 }
6740
6741 /* clddfu: clddfu$pack @($GRi,$GRj),$FRdoublek,$CCi,$cond */
6742
6743 static SEM_PC
6744 SEM_FN_NAME (frvbf,clddfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6745 {
6746 #define FLD(f) abuf->fields.sfmt_clddfu.f
6747   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6748   int UNUSED written = 0;
6749   IADDR UNUSED pc = abuf->addr;
6750   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6751
6752 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6753 {
6754   SI tmp_address;
6755 {
6756   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6757   {
6758     DF opval = frvbf_read_mem_DF (current_cpu, pc, tmp_address);
6759     sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
6760     written |= (1 << 5);
6761     TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
6762   }
6763 }
6764   {
6765     SI opval = tmp_address;
6766     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6767     written |= (1 << 6);
6768     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6769   }
6770 }
6771 }
6772
6773   abuf->written = written;
6774   return vpc;
6775 #undef FLD
6776 }
6777
6778 /* cldqu: cldqu$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6779
6780 static SEM_PC
6781 SEM_FN_NAME (frvbf,cldqu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6782 {
6783 #define FLD(f) abuf->fields.sfmt_cstdu.f
6784   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6785   int UNUSED written = 0;
6786   IADDR UNUSED pc = abuf->addr;
6787   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6788
6789 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6790 {
6791   SI tmp_address;
6792 {
6793   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6794 frvbf_load_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
6795 }
6796 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
6797   {
6798     SI opval = tmp_address;
6799     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6800     written |= (1 << 7);
6801     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6802   }
6803 }
6804 }
6805 }
6806
6807   abuf->written = written;
6808   return vpc;
6809 #undef FLD
6810 }
6811
6812 /* cstb: cstb$pack $GRk,@($GRi,$GRj),$CCi,$cond */
6813
6814 static SEM_PC
6815 SEM_FN_NAME (frvbf,cstb) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6816 {
6817 #define FLD(f) abuf->fields.sfmt_cswap.f
6818   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6819   int UNUSED written = 0;
6820   IADDR UNUSED pc = abuf->addr;
6821   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6822
6823 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6824 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)));
6825 }
6826
6827   return vpc;
6828 #undef FLD
6829 }
6830
6831 /* csth: csth$pack $GRk,@($GRi,$GRj),$CCi,$cond */
6832
6833 static SEM_PC
6834 SEM_FN_NAME (frvbf,csth) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6835 {
6836 #define FLD(f) abuf->fields.sfmt_cswap.f
6837   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6838   int UNUSED written = 0;
6839   IADDR UNUSED pc = abuf->addr;
6840   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6841
6842 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6843 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)));
6844 }
6845
6846   return vpc;
6847 #undef FLD
6848 }
6849
6850 /* cst: cst$pack $GRk,@($GRi,$GRj),$CCi,$cond */
6851
6852 static SEM_PC
6853 SEM_FN_NAME (frvbf,cst) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6854 {
6855 #define FLD(f) abuf->fields.sfmt_cswap.f
6856   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6857   int UNUSED written = 0;
6858   IADDR UNUSED pc = abuf->addr;
6859   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6860
6861 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6862 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)));
6863 }
6864
6865   return vpc;
6866 #undef FLD
6867 }
6868
6869 /* cstbf: cstbf$pack $FRintk,@($GRi,$GRj),$CCi,$cond */
6870
6871 static SEM_PC
6872 SEM_FN_NAME (frvbf,cstbf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6873 {
6874 #define FLD(f) abuf->fields.sfmt_cstbfu.f
6875   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6876   int UNUSED written = 0;
6877   IADDR UNUSED pc = abuf->addr;
6878   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6879
6880 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6881 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)));
6882 }
6883
6884   return vpc;
6885 #undef FLD
6886 }
6887
6888 /* csthf: csthf$pack $FRintk,@($GRi,$GRj),$CCi,$cond */
6889
6890 static SEM_PC
6891 SEM_FN_NAME (frvbf,csthf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6892 {
6893 #define FLD(f) abuf->fields.sfmt_cstbfu.f
6894   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6895   int UNUSED written = 0;
6896   IADDR UNUSED pc = abuf->addr;
6897   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6898
6899 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6900 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)));
6901 }
6902
6903   return vpc;
6904 #undef FLD
6905 }
6906
6907 /* cstf: cstf$pack $FRintk,@($GRi,$GRj),$CCi,$cond */
6908
6909 static SEM_PC
6910 SEM_FN_NAME (frvbf,cstf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6911 {
6912 #define FLD(f) abuf->fields.sfmt_cstbfu.f
6913   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6914   int UNUSED written = 0;
6915   IADDR UNUSED pc = abuf->addr;
6916   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6917
6918 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6919 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)));
6920 }
6921
6922   return vpc;
6923 #undef FLD
6924 }
6925
6926 /* cstd: cstd$pack $GRdoublek,@($GRi,$GRj),$CCi,$cond */
6927
6928 static SEM_PC
6929 SEM_FN_NAME (frvbf,cstd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6930 {
6931 #define FLD(f) abuf->fields.sfmt_cstdu.f
6932   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6933   int UNUSED written = 0;
6934   IADDR UNUSED pc = abuf->addr;
6935   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6936
6937 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6938 {
6939   SI tmp_address;
6940 {
6941   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6942 frvbf_write_mem_DI (current_cpu, pc, tmp_address, GET_H_GR_DOUBLE (FLD (f_GRk)));
6943 }
6944 }
6945 }
6946
6947   return vpc;
6948 #undef FLD
6949 }
6950
6951 /* cstdf: cstdf$pack $FRdoublek,@($GRi,$GRj),$CCi,$cond */
6952
6953 static SEM_PC
6954 SEM_FN_NAME (frvbf,cstdf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6955 {
6956 #define FLD(f) abuf->fields.sfmt_cstdfu.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 {
6964   SI tmp_address;
6965 {
6966   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6967 frvbf_write_mem_DF (current_cpu, pc, tmp_address, GET_H_FR_DOUBLE (FLD (f_FRk)));
6968 }
6969 }
6970 }
6971
6972   return vpc;
6973 #undef FLD
6974 }
6975
6976 /* cstq: cstq$pack $GRk,@($GRi,$GRj),$CCi,$cond */
6977
6978 static SEM_PC
6979 SEM_FN_NAME (frvbf,cstq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6980 {
6981 #define FLD(f) abuf->fields.sfmt_cswap.f
6982   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6983   int UNUSED written = 0;
6984   IADDR UNUSED pc = abuf->addr;
6985   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6986
6987 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6988 {
6989   SI tmp_address;
6990 {
6991   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6992 frvbf_store_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
6993 }
6994 }
6995 }
6996
6997   return vpc;
6998 #undef FLD
6999 }
7000
7001 /* cstbu: cstbu$pack $GRk,@($GRi,$GRj),$CCi,$cond */
7002
7003 static SEM_PC
7004 SEM_FN_NAME (frvbf,cstbu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7005 {
7006 #define FLD(f) abuf->fields.sfmt_cstbu.f
7007   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7008   int UNUSED written = 0;
7009   IADDR UNUSED pc = abuf->addr;
7010   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7011
7012 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7013 {
7014   SI tmp_address;
7015   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7016 frvbf_write_mem_QI (current_cpu, pc, tmp_address, GET_H_GR (FLD (f_GRk)));
7017   {
7018     SI opval = tmp_address;
7019     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
7020     written |= (1 << 6);
7021     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7022   }
7023 }
7024 }
7025
7026   abuf->written = written;
7027   return vpc;
7028 #undef FLD
7029 }
7030
7031 /* csthu: csthu$pack $GRk,@($GRi,$GRj),$CCi,$cond */
7032
7033 static SEM_PC
7034 SEM_FN_NAME (frvbf,csthu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7035 {
7036 #define FLD(f) abuf->fields.sfmt_cstbu.f
7037   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7038   int UNUSED written = 0;
7039   IADDR UNUSED pc = abuf->addr;
7040   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7041
7042 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7043 {
7044   SI tmp_address;
7045   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7046 frvbf_write_mem_HI (current_cpu, pc, tmp_address, GET_H_GR (FLD (f_GRk)));
7047   {
7048     SI opval = tmp_address;
7049     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
7050     written |= (1 << 6);
7051     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7052   }
7053 }
7054 }
7055
7056   abuf->written = written;
7057   return vpc;
7058 #undef FLD
7059 }
7060
7061 /* cstu: cstu$pack $GRk,@($GRi,$GRj),$CCi,$cond */
7062
7063 static SEM_PC
7064 SEM_FN_NAME (frvbf,cstu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7065 {
7066 #define FLD(f) abuf->fields.sfmt_cstbu.f
7067   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7068   int UNUSED written = 0;
7069   IADDR UNUSED pc = abuf->addr;
7070   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7071
7072 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7073 {
7074   SI tmp_address;
7075   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7076 frvbf_write_mem_SI (current_cpu, pc, tmp_address, GET_H_GR (FLD (f_GRk)));
7077   {
7078     SI opval = tmp_address;
7079     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
7080     written |= (1 << 6);
7081     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7082   }
7083 }
7084 }
7085
7086   abuf->written = written;
7087   return vpc;
7088 #undef FLD
7089 }
7090
7091 /* cstbfu: cstbfu$pack $FRintk,@($GRi,$GRj),$CCi,$cond */
7092
7093 static SEM_PC
7094 SEM_FN_NAME (frvbf,cstbfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7095 {
7096 #define FLD(f) abuf->fields.sfmt_cstbfu.f
7097   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7098   int UNUSED written = 0;
7099   IADDR UNUSED pc = abuf->addr;
7100   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7101
7102 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7103 {
7104   SI tmp_address;
7105   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7106 frvbf_write_mem_QI (current_cpu, pc, tmp_address, GET_H_FR_INT (FLD (f_FRk)));
7107   {
7108     SI opval = tmp_address;
7109     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
7110     written |= (1 << 6);
7111     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7112   }
7113 }
7114 }
7115
7116   abuf->written = written;
7117   return vpc;
7118 #undef FLD
7119 }
7120
7121 /* csthfu: csthfu$pack $FRintk,@($GRi,$GRj),$CCi,$cond */
7122
7123 static SEM_PC
7124 SEM_FN_NAME (frvbf,csthfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7125 {
7126 #define FLD(f) abuf->fields.sfmt_cstbfu.f
7127   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7128   int UNUSED written = 0;
7129   IADDR UNUSED pc = abuf->addr;
7130   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7131
7132 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7133 {
7134   SI tmp_address;
7135   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7136 frvbf_write_mem_HI (current_cpu, pc, tmp_address, GET_H_FR_INT (FLD (f_FRk)));
7137   {
7138     SI opval = tmp_address;
7139     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
7140     written |= (1 << 6);
7141     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7142   }
7143 }
7144 }
7145
7146   abuf->written = written;
7147   return vpc;
7148 #undef FLD
7149 }
7150
7151 /* cstfu: cstfu$pack $FRintk,@($GRi,$GRj),$CCi,$cond */
7152
7153 static SEM_PC
7154 SEM_FN_NAME (frvbf,cstfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7155 {
7156 #define FLD(f) abuf->fields.sfmt_cstbfu.f
7157   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7158   int UNUSED written = 0;
7159   IADDR UNUSED pc = abuf->addr;
7160   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7161
7162 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7163 {
7164   SI tmp_address;
7165   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7166 frvbf_write_mem_SI (current_cpu, pc, tmp_address, GET_H_FR_INT (FLD (f_FRk)));
7167   {
7168     SI opval = tmp_address;
7169     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
7170     written |= (1 << 6);
7171     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7172   }
7173 }
7174 }
7175
7176   abuf->written = written;
7177   return vpc;
7178 #undef FLD
7179 }
7180
7181 /* cstdu: cstdu$pack $GRdoublek,@($GRi,$GRj),$CCi,$cond */
7182
7183 static SEM_PC
7184 SEM_FN_NAME (frvbf,cstdu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7185 {
7186 #define FLD(f) abuf->fields.sfmt_cstdu.f
7187   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7188   int UNUSED written = 0;
7189   IADDR UNUSED pc = abuf->addr;
7190   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7191
7192 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7193 {
7194   SI tmp_address;
7195 {
7196   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7197 frvbf_write_mem_DI (current_cpu, pc, tmp_address, GET_H_GR_DOUBLE (FLD (f_GRk)));
7198 }
7199   {
7200     SI opval = tmp_address;
7201     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
7202     written |= (1 << 6);
7203     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7204   }
7205 }
7206 }
7207
7208   abuf->written = written;
7209   return vpc;
7210 #undef FLD
7211 }
7212
7213 /* cstdfu: cstdfu$pack $FRdoublek,@($GRi,$GRj),$CCi,$cond */
7214
7215 static SEM_PC
7216 SEM_FN_NAME (frvbf,cstdfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7217 {
7218 #define FLD(f) abuf->fields.sfmt_cstdfu.f
7219   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7220   int UNUSED written = 0;
7221   IADDR UNUSED pc = abuf->addr;
7222   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7223
7224 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7225 {
7226   SI tmp_address;
7227 {
7228   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7229 frvbf_write_mem_DF (current_cpu, pc, tmp_address, GET_H_FR_DOUBLE (FLD (f_FRk)));
7230 }
7231   {
7232     SI opval = tmp_address;
7233     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
7234     written |= (1 << 6);
7235     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7236   }
7237 }
7238 }
7239
7240   abuf->written = written;
7241   return vpc;
7242 #undef FLD
7243 }
7244
7245 /* stbi: stbi$pack $GRk,@($GRi,$d12) */
7246
7247 static SEM_PC
7248 SEM_FN_NAME (frvbf,stbi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7249 {
7250 #define FLD(f) abuf->fields.sfmt_swapi.f
7251   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7252   int UNUSED written = 0;
7253   IADDR UNUSED pc = abuf->addr;
7254   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7255
7256 frvbf_write_mem_QI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)), GET_H_GR (FLD (f_GRk)));
7257
7258   return vpc;
7259 #undef FLD
7260 }
7261
7262 /* sthi: sthi$pack $GRk,@($GRi,$d12) */
7263
7264 static SEM_PC
7265 SEM_FN_NAME (frvbf,sthi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7266 {
7267 #define FLD(f) abuf->fields.sfmt_swapi.f
7268   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7269   int UNUSED written = 0;
7270   IADDR UNUSED pc = abuf->addr;
7271   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7272
7273 frvbf_write_mem_HI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)), GET_H_GR (FLD (f_GRk)));
7274
7275   return vpc;
7276 #undef FLD
7277 }
7278
7279 /* sti: sti$pack $GRk,@($GRi,$d12) */
7280
7281 static SEM_PC
7282 SEM_FN_NAME (frvbf,sti) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7283 {
7284 #define FLD(f) abuf->fields.sfmt_swapi.f
7285   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7286   int UNUSED written = 0;
7287   IADDR UNUSED pc = abuf->addr;
7288   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7289
7290 frvbf_write_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)), GET_H_GR (FLD (f_GRk)));
7291
7292   return vpc;
7293 #undef FLD
7294 }
7295
7296 /* stbfi: stbfi$pack $FRintk,@($GRi,$d12) */
7297
7298 static SEM_PC
7299 SEM_FN_NAME (frvbf,stbfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7300 {
7301 #define FLD(f) abuf->fields.sfmt_stbfi.f
7302   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7303   int UNUSED written = 0;
7304   IADDR UNUSED pc = abuf->addr;
7305   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7306
7307 frvbf_write_mem_QI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)), GET_H_FR_INT (FLD (f_FRk)));
7308
7309   return vpc;
7310 #undef FLD
7311 }
7312
7313 /* sthfi: sthfi$pack $FRintk,@($GRi,$d12) */
7314
7315 static SEM_PC
7316 SEM_FN_NAME (frvbf,sthfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7317 {
7318 #define FLD(f) abuf->fields.sfmt_stbfi.f
7319   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7320   int UNUSED written = 0;
7321   IADDR UNUSED pc = abuf->addr;
7322   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7323
7324 frvbf_write_mem_HI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)), GET_H_FR_INT (FLD (f_FRk)));
7325
7326   return vpc;
7327 #undef FLD
7328 }
7329
7330 /* stfi: stfi$pack $FRintk,@($GRi,$d12) */
7331
7332 static SEM_PC
7333 SEM_FN_NAME (frvbf,stfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7334 {
7335 #define FLD(f) abuf->fields.sfmt_stbfi.f
7336   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7337   int UNUSED written = 0;
7338   IADDR UNUSED pc = abuf->addr;
7339   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7340
7341 frvbf_write_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)), GET_H_FR_INT (FLD (f_FRk)));
7342
7343   return vpc;
7344 #undef FLD
7345 }
7346
7347 /* stdi: stdi$pack $GRdoublek,@($GRi,$d12) */
7348
7349 static SEM_PC
7350 SEM_FN_NAME (frvbf,stdi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7351 {
7352 #define FLD(f) abuf->fields.sfmt_stdi.f
7353   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7354   int UNUSED written = 0;
7355   IADDR UNUSED pc = abuf->addr;
7356   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7357
7358 {
7359   SI tmp_address;
7360 {
7361   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
7362 frvbf_write_mem_DI (current_cpu, pc, tmp_address, GET_H_GR_DOUBLE (FLD (f_GRk)));
7363 }
7364 }
7365
7366   return vpc;
7367 #undef FLD
7368 }
7369
7370 /* stdfi: stdfi$pack $FRdoublek,@($GRi,$d12) */
7371
7372 static SEM_PC
7373 SEM_FN_NAME (frvbf,stdfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7374 {
7375 #define FLD(f) abuf->fields.sfmt_stdfi.f
7376   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7377   int UNUSED written = 0;
7378   IADDR UNUSED pc = abuf->addr;
7379   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7380
7381 {
7382   SI tmp_address;
7383 {
7384   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
7385 frvbf_write_mem_DF (current_cpu, pc, tmp_address, GET_H_FR_DOUBLE (FLD (f_FRk)));
7386 }
7387 }
7388
7389   return vpc;
7390 #undef FLD
7391 }
7392
7393 /* stqi: stqi$pack $GRk,@($GRi,$d12) */
7394
7395 static SEM_PC
7396 SEM_FN_NAME (frvbf,stqi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7397 {
7398 #define FLD(f) abuf->fields.sfmt_stdi.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 {
7405   SI tmp_address;
7406 {
7407   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
7408 frvbf_store_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
7409 }
7410 }
7411
7412   return vpc;
7413 #undef FLD
7414 }
7415
7416 /* stqfi: stqfi$pack $FRintk,@($GRi,$d12) */
7417
7418 static SEM_PC
7419 SEM_FN_NAME (frvbf,stqfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7420 {
7421 #define FLD(f) abuf->fields.sfmt_stdfi.f
7422   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7423   int UNUSED written = 0;
7424   IADDR UNUSED pc = abuf->addr;
7425   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7426
7427 {
7428   SI tmp_address;
7429 {
7430   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
7431 frvbf_store_quad_FRint (current_cpu, pc, tmp_address, FLD (f_FRk));
7432 }
7433 }
7434
7435   return vpc;
7436 #undef FLD
7437 }
7438
7439 /* swap: swap$pack @($GRi,$GRj),$GRk */
7440
7441 static SEM_PC
7442 SEM_FN_NAME (frvbf,swap) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7443 {
7444 #define FLD(f) abuf->fields.sfmt_cswap.f
7445   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7446   int UNUSED written = 0;
7447   IADDR UNUSED pc = abuf->addr;
7448   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7449
7450 {
7451   SI tmp_tmp;
7452   SI tmp_address;
7453   tmp_tmp = GET_H_GR (FLD (f_GRk));
7454   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7455 frvbf_check_swap_address (current_cpu, tmp_address);
7456   {
7457     SI opval = frvbf_read_mem_WI (current_cpu, pc, tmp_address);
7458     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
7459     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7460   }
7461 frvbf_write_mem_WI (current_cpu, pc, tmp_address, tmp_tmp);
7462 }
7463
7464   return vpc;
7465 #undef FLD
7466 }
7467
7468 /* swapi: swapi$pack @($GRi,$d12),$GRk */
7469
7470 static SEM_PC
7471 SEM_FN_NAME (frvbf,swapi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7472 {
7473 #define FLD(f) abuf->fields.sfmt_swapi.f
7474   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7475   int UNUSED written = 0;
7476   IADDR UNUSED pc = abuf->addr;
7477   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7478
7479 {
7480   SI tmp_tmp;
7481   SI tmp_address;
7482   tmp_tmp = GET_H_GR (FLD (f_GRk));
7483   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
7484 frvbf_check_swap_address (current_cpu, tmp_address);
7485   {
7486     SI opval = frvbf_read_mem_WI (current_cpu, pc, tmp_address);
7487     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
7488     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7489   }
7490 frvbf_write_mem_WI (current_cpu, pc, tmp_address, tmp_tmp);
7491 }
7492
7493   return vpc;
7494 #undef FLD
7495 }
7496
7497 /* cswap: cswap$pack @($GRi,$GRj),$GRk,$CCi,$cond */
7498
7499 static SEM_PC
7500 SEM_FN_NAME (frvbf,cswap) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7501 {
7502 #define FLD(f) abuf->fields.sfmt_cswap.f
7503   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7504   int UNUSED written = 0;
7505   IADDR UNUSED pc = abuf->addr;
7506   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7507
7508 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7509 {
7510   SI tmp_tmp;
7511   SI tmp_address;
7512   tmp_tmp = GET_H_GR (FLD (f_GRk));
7513   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7514 frvbf_check_swap_address (current_cpu, tmp_address);
7515   {
7516     SI opval = frvbf_read_mem_WI (current_cpu, pc, tmp_address);
7517     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
7518     written |= (1 << 6);
7519     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7520   }
7521 frvbf_write_mem_WI (current_cpu, pc, tmp_address, tmp_tmp);
7522 }
7523 }
7524
7525   abuf->written = written;
7526   return vpc;
7527 #undef FLD
7528 }
7529
7530 /* movgf: movgf$pack $GRj,$FRintk */
7531
7532 static SEM_PC
7533 SEM_FN_NAME (frvbf,movgf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7534 {
7535 #define FLD(f) abuf->fields.sfmt_cmovgfd.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 opval = GET_H_GR (FLD (f_GRj));
7543     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
7544     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7545   }
7546
7547   return vpc;
7548 #undef FLD
7549 }
7550
7551 /* movfg: movfg$pack $FRintk,$GRj */
7552
7553 static SEM_PC
7554 SEM_FN_NAME (frvbf,movfg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7555 {
7556 #define FLD(f) abuf->fields.sfmt_cmovfgd.f
7557   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7558   int UNUSED written = 0;
7559   IADDR UNUSED pc = abuf->addr;
7560   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7561
7562   {
7563     SI opval = GET_H_FR_INT (FLD (f_FRk));
7564     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRj), opval);
7565     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7566   }
7567
7568   return vpc;
7569 #undef FLD
7570 }
7571
7572 /* movgfd: movgfd$pack $GRj,$FRintk */
7573
7574 static SEM_PC
7575 SEM_FN_NAME (frvbf,movgfd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7576 {
7577 #define FLD(f) abuf->fields.sfmt_cmovgfd.f
7578   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7579   int UNUSED written = 0;
7580   IADDR UNUSED pc = abuf->addr;
7581   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7582
7583 if (EQSI (FLD (f_GRj), 0)) {
7584 {
7585   {
7586     SI opval = 0;
7587     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
7588     written |= (1 << 4);
7589     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7590   }
7591   {
7592     USI opval = 0;
7593     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (1)), opval);
7594     written |= (1 << 5);
7595     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7596   }
7597 }
7598 } else {
7599 {
7600   {
7601     SI opval = GET_H_GR (FLD (f_GRj));
7602     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
7603     written |= (1 << 4);
7604     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7605   }
7606   {
7607     USI opval = GET_H_GR (((FLD (f_GRj)) + (1)));
7608     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (1)), opval);
7609     written |= (1 << 5);
7610     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7611   }
7612 }
7613 }
7614
7615   abuf->written = written;
7616   return vpc;
7617 #undef FLD
7618 }
7619
7620 /* movfgd: movfgd$pack $FRintk,$GRj */
7621
7622 static SEM_PC
7623 SEM_FN_NAME (frvbf,movfgd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7624 {
7625 #define FLD(f) abuf->fields.sfmt_cmovfgd.f
7626   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7627   int UNUSED written = 0;
7628   IADDR UNUSED pc = abuf->addr;
7629   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7630
7631 if (NESI (FLD (f_GRj), 0)) {
7632 {
7633   {
7634     SI opval = GET_H_FR_INT (FLD (f_FRk));
7635     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRj), opval);
7636     written |= (1 << 4);
7637     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7638   }
7639   {
7640     USI opval = GET_H_FR_INT (((FLD (f_FRk)) + (1)));
7641     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, ((FLD (f_GRj)) + (1)), opval);
7642     written |= (1 << 5);
7643     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7644   }
7645 }
7646 }
7647
7648   abuf->written = written;
7649   return vpc;
7650 #undef FLD
7651 }
7652
7653 /* movgfq: movgfq$pack $GRj,$FRintk */
7654
7655 static SEM_PC
7656 SEM_FN_NAME (frvbf,movgfq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7657 {
7658 #define FLD(f) abuf->fields.sfmt_movgfq.f
7659   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7660   int UNUSED written = 0;
7661   IADDR UNUSED pc = abuf->addr;
7662   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7663
7664 if (EQSI (FLD (f_GRj), 0)) {
7665 {
7666   {
7667     SI opval = 0;
7668     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
7669     written |= (1 << 6);
7670     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7671   }
7672   {
7673     USI opval = 0;
7674     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (1)), opval);
7675     written |= (1 << 7);
7676     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7677   }
7678   {
7679     USI opval = 0;
7680     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (2)), opval);
7681     written |= (1 << 8);
7682     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7683   }
7684   {
7685     USI opval = 0;
7686     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (3)), opval);
7687     written |= (1 << 9);
7688     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7689   }
7690 }
7691 } else {
7692 {
7693   {
7694     SI opval = GET_H_GR (FLD (f_GRj));
7695     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
7696     written |= (1 << 6);
7697     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7698   }
7699   {
7700     USI opval = GET_H_GR (((FLD (f_GRj)) + (1)));
7701     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (1)), opval);
7702     written |= (1 << 7);
7703     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7704   }
7705   {
7706     USI opval = GET_H_GR (((FLD (f_GRj)) + (2)));
7707     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (2)), opval);
7708     written |= (1 << 8);
7709     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7710   }
7711   {
7712     USI opval = GET_H_GR (((FLD (f_GRj)) + (3)));
7713     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (3)), opval);
7714     written |= (1 << 9);
7715     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7716   }
7717 }
7718 }
7719
7720   abuf->written = written;
7721   return vpc;
7722 #undef FLD
7723 }
7724
7725 /* movfgq: movfgq$pack $FRintk,$GRj */
7726
7727 static SEM_PC
7728 SEM_FN_NAME (frvbf,movfgq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7729 {
7730 #define FLD(f) abuf->fields.sfmt_movfgq.f
7731   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7732   int UNUSED written = 0;
7733   IADDR UNUSED pc = abuf->addr;
7734   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7735
7736 if (NESI (FLD (f_GRj), 0)) {
7737 {
7738   {
7739     SI opval = GET_H_FR_INT (FLD (f_FRk));
7740     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRj), opval);
7741     written |= (1 << 6);
7742     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7743   }
7744   {
7745     USI opval = GET_H_FR_INT (((FLD (f_FRk)) + (1)));
7746     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, ((FLD (f_GRj)) + (1)), opval);
7747     written |= (1 << 7);
7748     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7749   }
7750   {
7751     USI opval = GET_H_FR_INT (((FLD (f_FRk)) + (2)));
7752     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, ((FLD (f_GRj)) + (2)), opval);
7753     written |= (1 << 8);
7754     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7755   }
7756   {
7757     USI opval = GET_H_FR_INT (((FLD (f_FRk)) + (3)));
7758     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, ((FLD (f_GRj)) + (3)), opval);
7759     written |= (1 << 9);
7760     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7761   }
7762 }
7763 }
7764
7765   abuf->written = written;
7766   return vpc;
7767 #undef FLD
7768 }
7769
7770 /* cmovgf: cmovgf$pack $GRj,$FRintk,$CCi,$cond */
7771
7772 static SEM_PC
7773 SEM_FN_NAME (frvbf,cmovgf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7774 {
7775 #define FLD(f) abuf->fields.sfmt_cmovgfd.f
7776   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7777   int UNUSED written = 0;
7778   IADDR UNUSED pc = abuf->addr;
7779   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7780
7781 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7782   {
7783     SI opval = GET_H_GR (FLD (f_GRj));
7784     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
7785     written |= (1 << 3);
7786     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7787   }
7788 }
7789
7790   abuf->written = written;
7791   return vpc;
7792 #undef FLD
7793 }
7794
7795 /* cmovfg: cmovfg$pack $FRintk,$GRj,$CCi,$cond */
7796
7797 static SEM_PC
7798 SEM_FN_NAME (frvbf,cmovfg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7799 {
7800 #define FLD(f) abuf->fields.sfmt_cmovfgd.f
7801   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7802   int UNUSED written = 0;
7803   IADDR UNUSED pc = abuf->addr;
7804   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7805
7806 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7807   {
7808     SI opval = GET_H_FR_INT (FLD (f_FRk));
7809     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRj), opval);
7810     written |= (1 << 3);
7811     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7812   }
7813 }
7814
7815   abuf->written = written;
7816   return vpc;
7817 #undef FLD
7818 }
7819
7820 /* cmovgfd: cmovgfd$pack $GRj,$FRintk,$CCi,$cond */
7821
7822 static SEM_PC
7823 SEM_FN_NAME (frvbf,cmovgfd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7824 {
7825 #define FLD(f) abuf->fields.sfmt_cmovgfd.f
7826   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7827   int UNUSED written = 0;
7828   IADDR UNUSED pc = abuf->addr;
7829   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7830
7831 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7832 if (EQSI (FLD (f_GRj), 0)) {
7833 {
7834   {
7835     SI opval = 0;
7836     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
7837     written |= (1 << 6);
7838     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7839   }
7840   {
7841     USI opval = 0;
7842     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (1)), opval);
7843     written |= (1 << 7);
7844     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7845   }
7846 }
7847 } else {
7848 {
7849   {
7850     SI opval = GET_H_GR (FLD (f_GRj));
7851     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
7852     written |= (1 << 6);
7853     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7854   }
7855   {
7856     USI opval = GET_H_GR (((FLD (f_GRj)) + (1)));
7857     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (1)), opval);
7858     written |= (1 << 7);
7859     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7860   }
7861 }
7862 }
7863 }
7864
7865   abuf->written = written;
7866   return vpc;
7867 #undef FLD
7868 }
7869
7870 /* cmovfgd: cmovfgd$pack $FRintk,$GRj,$CCi,$cond */
7871
7872 static SEM_PC
7873 SEM_FN_NAME (frvbf,cmovfgd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7874 {
7875 #define FLD(f) abuf->fields.sfmt_cmovfgd.f
7876   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7877   int UNUSED written = 0;
7878   IADDR UNUSED pc = abuf->addr;
7879   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7880
7881 if (ANDIF (NESI (FLD (f_GRj), 0), EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2)))) {
7882 {
7883   {
7884     SI opval = GET_H_FR_INT (FLD (f_FRk));
7885     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRj), opval);
7886     written |= (1 << 6);
7887     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7888   }
7889   {
7890     USI opval = GET_H_FR_INT (((FLD (f_FRk)) + (1)));
7891     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, ((FLD (f_GRj)) + (1)), opval);
7892     written |= (1 << 7);
7893     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7894   }
7895 }
7896 }
7897
7898   abuf->written = written;
7899   return vpc;
7900 #undef FLD
7901 }
7902
7903 /* movgs: movgs$pack $GRj,$spr */
7904
7905 static SEM_PC
7906 SEM_FN_NAME (frvbf,movgs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7907 {
7908 #define FLD(f) abuf->fields.sfmt_movgs.f
7909   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7910   int UNUSED written = 0;
7911   IADDR UNUSED pc = abuf->addr;
7912   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7913
7914   {
7915     USI opval = GET_H_GR (FLD (f_GRj));
7916     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, FLD (f_spr), opval);
7917     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
7918   }
7919
7920   return vpc;
7921 #undef FLD
7922 }
7923
7924 /* movsg: movsg$pack $spr,$GRj */
7925
7926 static SEM_PC
7927 SEM_FN_NAME (frvbf,movsg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7928 {
7929 #define FLD(f) abuf->fields.sfmt_movsg.f
7930   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7931   int UNUSED written = 0;
7932   IADDR UNUSED pc = abuf->addr;
7933   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7934
7935   {
7936     SI opval = GET_H_SPR (FLD (f_spr));
7937     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRj), opval);
7938     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7939   }
7940
7941   return vpc;
7942 #undef FLD
7943 }
7944
7945 /* bra: bra$pack $hint_taken$label16 */
7946
7947 static SEM_PC
7948 SEM_FN_NAME (frvbf,bra) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7949 {
7950 #define FLD(f) abuf->fields.sfmt_fbne.f
7951   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7952   int UNUSED written = 0;
7953   IADDR UNUSED pc = abuf->addr;
7954   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7955
7956 {
7957 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
7958   {
7959     USI opval = FLD (i_label16);
7960     sim_queue_pc_write (current_cpu, opval);
7961     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
7962   }
7963 }
7964
7965   return vpc;
7966 #undef FLD
7967 }
7968
7969 /* bno: bno$pack$hint_not_taken */
7970
7971 static SEM_PC
7972 SEM_FN_NAME (frvbf,bno) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7973 {
7974 #define FLD(f) abuf->fields.sfmt_fbne.f
7975   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7976   int UNUSED written = 0;
7977   IADDR UNUSED pc = abuf->addr;
7978   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7979
7980 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
7981
7982   return vpc;
7983 #undef FLD
7984 }
7985
7986 /* beq: beq$pack $ICCi_2,$hint,$label16 */
7987
7988 static SEM_PC
7989 SEM_FN_NAME (frvbf,beq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7990 {
7991 #define FLD(f) abuf->fields.sfmt_beq.f
7992   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7993   int UNUSED written = 0;
7994   IADDR UNUSED pc = abuf->addr;
7995   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7996
7997 {
7998 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
7999 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2))) {
8000   {
8001     USI opval = FLD (i_label16);
8002     sim_queue_pc_write (current_cpu, opval);
8003     written |= (1 << 3);
8004     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8005   }
8006 }
8007 }
8008
8009   abuf->written = written;
8010   return vpc;
8011 #undef FLD
8012 }
8013
8014 /* bne: bne$pack $ICCi_2,$hint,$label16 */
8015
8016 static SEM_PC
8017 SEM_FN_NAME (frvbf,bne) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8018 {
8019 #define FLD(f) abuf->fields.sfmt_beq.f
8020   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8021   int UNUSED written = 0;
8022   IADDR UNUSED pc = abuf->addr;
8023   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8024
8025 {
8026 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8027 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)))) {
8028   {
8029     USI opval = FLD (i_label16);
8030     sim_queue_pc_write (current_cpu, opval);
8031     written |= (1 << 3);
8032     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8033   }
8034 }
8035 }
8036
8037   abuf->written = written;
8038   return vpc;
8039 #undef FLD
8040 }
8041
8042 /* ble: ble$pack $ICCi_2,$hint,$label16 */
8043
8044 static SEM_PC
8045 SEM_FN_NAME (frvbf,ble) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8046 {
8047 #define FLD(f) abuf->fields.sfmt_beq.f
8048   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8049   int UNUSED written = 0;
8050   IADDR UNUSED pc = abuf->addr;
8051   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8052
8053 {
8054 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8055 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))))) {
8056   {
8057     USI opval = FLD (i_label16);
8058     sim_queue_pc_write (current_cpu, opval);
8059     written |= (1 << 3);
8060     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8061   }
8062 }
8063 }
8064
8065   abuf->written = written;
8066   return vpc;
8067 #undef FLD
8068 }
8069
8070 /* bgt: bgt$pack $ICCi_2,$hint,$label16 */
8071
8072 static SEM_PC
8073 SEM_FN_NAME (frvbf,bgt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8074 {
8075 #define FLD(f) abuf->fields.sfmt_beq.f
8076   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8077   int UNUSED written = 0;
8078   IADDR UNUSED pc = abuf->addr;
8079   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8080
8081 {
8082 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8083 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)))))) {
8084   {
8085     USI opval = FLD (i_label16);
8086     sim_queue_pc_write (current_cpu, opval);
8087     written |= (1 << 3);
8088     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8089   }
8090 }
8091 }
8092
8093   abuf->written = written;
8094   return vpc;
8095 #undef FLD
8096 }
8097
8098 /* blt: blt$pack $ICCi_2,$hint,$label16 */
8099
8100 static SEM_PC
8101 SEM_FN_NAME (frvbf,blt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8102 {
8103 #define FLD(f) abuf->fields.sfmt_beq.f
8104   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8105   int UNUSED written = 0;
8106   IADDR UNUSED pc = abuf->addr;
8107   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8108
8109 {
8110 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8111 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)))) {
8112   {
8113     USI opval = FLD (i_label16);
8114     sim_queue_pc_write (current_cpu, opval);
8115     written |= (1 << 3);
8116     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8117   }
8118 }
8119 }
8120
8121   abuf->written = written;
8122   return vpc;
8123 #undef FLD
8124 }
8125
8126 /* bge: bge$pack $ICCi_2,$hint,$label16 */
8127
8128 static SEM_PC
8129 SEM_FN_NAME (frvbf,bge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8130 {
8131 #define FLD(f) abuf->fields.sfmt_beq.f
8132   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8133   int UNUSED written = 0;
8134   IADDR UNUSED pc = abuf->addr;
8135   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8136
8137 {
8138 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8139 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))))) {
8140   {
8141     USI opval = FLD (i_label16);
8142     sim_queue_pc_write (current_cpu, opval);
8143     written |= (1 << 3);
8144     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8145   }
8146 }
8147 }
8148
8149   abuf->written = written;
8150   return vpc;
8151 #undef FLD
8152 }
8153
8154 /* bls: bls$pack $ICCi_2,$hint,$label16 */
8155
8156 static SEM_PC
8157 SEM_FN_NAME (frvbf,bls) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8158 {
8159 #define FLD(f) abuf->fields.sfmt_beq.f
8160   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8161   int UNUSED written = 0;
8162   IADDR UNUSED pc = abuf->addr;
8163   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8164
8165 {
8166 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8167 if (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)))) {
8168   {
8169     USI opval = FLD (i_label16);
8170     sim_queue_pc_write (current_cpu, opval);
8171     written |= (1 << 3);
8172     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8173   }
8174 }
8175 }
8176
8177   abuf->written = written;
8178   return vpc;
8179 #undef FLD
8180 }
8181
8182 /* bhi: bhi$pack $ICCi_2,$hint,$label16 */
8183
8184 static SEM_PC
8185 SEM_FN_NAME (frvbf,bhi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8186 {
8187 #define FLD(f) abuf->fields.sfmt_beq.f
8188   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8189   int UNUSED written = 0;
8190   IADDR UNUSED pc = abuf->addr;
8191   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8192
8193 {
8194 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8195 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))))) {
8196   {
8197     USI opval = FLD (i_label16);
8198     sim_queue_pc_write (current_cpu, opval);
8199     written |= (1 << 3);
8200     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8201   }
8202 }
8203 }
8204
8205   abuf->written = written;
8206   return vpc;
8207 #undef FLD
8208 }
8209
8210 /* bc: bc$pack $ICCi_2,$hint,$label16 */
8211
8212 static SEM_PC
8213 SEM_FN_NAME (frvbf,bc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8214 {
8215 #define FLD(f) abuf->fields.sfmt_beq.f
8216   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8217   int UNUSED written = 0;
8218   IADDR UNUSED pc = abuf->addr;
8219   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8220
8221 {
8222 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8223 if (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1))) {
8224   {
8225     USI opval = FLD (i_label16);
8226     sim_queue_pc_write (current_cpu, opval);
8227     written |= (1 << 3);
8228     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8229   }
8230 }
8231 }
8232
8233   abuf->written = written;
8234   return vpc;
8235 #undef FLD
8236 }
8237
8238 /* bnc: bnc$pack $ICCi_2,$hint,$label16 */
8239
8240 static SEM_PC
8241 SEM_FN_NAME (frvbf,bnc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8242 {
8243 #define FLD(f) abuf->fields.sfmt_beq.f
8244   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8245   int UNUSED written = 0;
8246   IADDR UNUSED pc = abuf->addr;
8247   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8248
8249 {
8250 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8251 if (NOTBI (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)))) {
8252   {
8253     USI opval = FLD (i_label16);
8254     sim_queue_pc_write (current_cpu, opval);
8255     written |= (1 << 3);
8256     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8257   }
8258 }
8259 }
8260
8261   abuf->written = written;
8262   return vpc;
8263 #undef FLD
8264 }
8265
8266 /* bn: bn$pack $ICCi_2,$hint,$label16 */
8267
8268 static SEM_PC
8269 SEM_FN_NAME (frvbf,bn) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8270 {
8271 #define FLD(f) abuf->fields.sfmt_beq.f
8272   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8273   int UNUSED written = 0;
8274   IADDR UNUSED pc = abuf->addr;
8275   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8276
8277 {
8278 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8279 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3))) {
8280   {
8281     USI opval = FLD (i_label16);
8282     sim_queue_pc_write (current_cpu, opval);
8283     written |= (1 << 3);
8284     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8285   }
8286 }
8287 }
8288
8289   abuf->written = written;
8290   return vpc;
8291 #undef FLD
8292 }
8293
8294 /* bp: bp$pack $ICCi_2,$hint,$label16 */
8295
8296 static SEM_PC
8297 SEM_FN_NAME (frvbf,bp) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8298 {
8299 #define FLD(f) abuf->fields.sfmt_beq.f
8300   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8301   int UNUSED written = 0;
8302   IADDR UNUSED pc = abuf->addr;
8303   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8304
8305 {
8306 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8307 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3)))) {
8308   {
8309     USI opval = FLD (i_label16);
8310     sim_queue_pc_write (current_cpu, opval);
8311     written |= (1 << 3);
8312     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8313   }
8314 }
8315 }
8316
8317   abuf->written = written;
8318   return vpc;
8319 #undef FLD
8320 }
8321
8322 /* bv: bv$pack $ICCi_2,$hint,$label16 */
8323
8324 static SEM_PC
8325 SEM_FN_NAME (frvbf,bv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8326 {
8327 #define FLD(f) abuf->fields.sfmt_beq.f
8328   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8329   int UNUSED written = 0;
8330   IADDR UNUSED pc = abuf->addr;
8331   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8332
8333 {
8334 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8335 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1))) {
8336   {
8337     USI opval = FLD (i_label16);
8338     sim_queue_pc_write (current_cpu, opval);
8339     written |= (1 << 3);
8340     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8341   }
8342 }
8343 }
8344
8345   abuf->written = written;
8346   return vpc;
8347 #undef FLD
8348 }
8349
8350 /* bnv: bnv$pack $ICCi_2,$hint,$label16 */
8351
8352 static SEM_PC
8353 SEM_FN_NAME (frvbf,bnv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8354 {
8355 #define FLD(f) abuf->fields.sfmt_beq.f
8356   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8357   int UNUSED written = 0;
8358   IADDR UNUSED pc = abuf->addr;
8359   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8360
8361 {
8362 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8363 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1)))) {
8364   {
8365     USI opval = FLD (i_label16);
8366     sim_queue_pc_write (current_cpu, opval);
8367     written |= (1 << 3);
8368     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8369   }
8370 }
8371 }
8372
8373   abuf->written = written;
8374   return vpc;
8375 #undef FLD
8376 }
8377
8378 /* fbra: fbra$pack $hint_taken$label16 */
8379
8380 static SEM_PC
8381 SEM_FN_NAME (frvbf,fbra) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8382 {
8383 #define FLD(f) abuf->fields.sfmt_fbne.f
8384   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8385   int UNUSED written = 0;
8386   IADDR UNUSED pc = abuf->addr;
8387   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8388
8389 {
8390 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8391   {
8392     USI opval = FLD (i_label16);
8393     sim_queue_pc_write (current_cpu, opval);
8394     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8395   }
8396 }
8397
8398   return vpc;
8399 #undef FLD
8400 }
8401
8402 /* fbno: fbno$pack$hint_not_taken */
8403
8404 static SEM_PC
8405 SEM_FN_NAME (frvbf,fbno) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8406 {
8407 #define FLD(f) abuf->fields.sfmt_fbne.f
8408   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8409   int UNUSED written = 0;
8410   IADDR UNUSED pc = abuf->addr;
8411   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8412
8413 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8414
8415   return vpc;
8416 #undef FLD
8417 }
8418
8419 /* fbne: fbne$pack $FCCi_2,$hint,$label16 */
8420
8421 static SEM_PC
8422 SEM_FN_NAME (frvbf,fbne) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8423 {
8424 #define FLD(f) abuf->fields.sfmt_fbne.f
8425   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8426   int UNUSED written = 0;
8427   IADDR UNUSED pc = abuf->addr;
8428   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8429
8430 {
8431 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8432 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))))) {
8433   {
8434     USI opval = FLD (i_label16);
8435     sim_queue_pc_write (current_cpu, opval);
8436     written |= (1 << 3);
8437     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8438   }
8439 }
8440 }
8441
8442   abuf->written = written;
8443   return vpc;
8444 #undef FLD
8445 }
8446
8447 /* fbeq: fbeq$pack $FCCi_2,$hint,$label16 */
8448
8449 static SEM_PC
8450 SEM_FN_NAME (frvbf,fbeq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8451 {
8452 #define FLD(f) abuf->fields.sfmt_fbne.f
8453   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8454   int UNUSED written = 0;
8455   IADDR UNUSED pc = abuf->addr;
8456   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8457
8458 {
8459 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8460 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3))) {
8461   {
8462     USI opval = FLD (i_label16);
8463     sim_queue_pc_write (current_cpu, opval);
8464     written |= (1 << 3);
8465     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8466   }
8467 }
8468 }
8469
8470   abuf->written = written;
8471   return vpc;
8472 #undef FLD
8473 }
8474
8475 /* fblg: fblg$pack $FCCi_2,$hint,$label16 */
8476
8477 static SEM_PC
8478 SEM_FN_NAME (frvbf,fblg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8479 {
8480 #define FLD(f) abuf->fields.sfmt_fbne.f
8481   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8482   int UNUSED written = 0;
8483   IADDR UNUSED pc = abuf->addr;
8484   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8485
8486 {
8487 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8488 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)))) {
8489   {
8490     USI opval = FLD (i_label16);
8491     sim_queue_pc_write (current_cpu, opval);
8492     written |= (1 << 3);
8493     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8494   }
8495 }
8496 }
8497
8498   abuf->written = written;
8499   return vpc;
8500 #undef FLD
8501 }
8502
8503 /* fbue: fbue$pack $FCCi_2,$hint,$label16 */
8504
8505 static SEM_PC
8506 SEM_FN_NAME (frvbf,fbue) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8507 {
8508 #define FLD(f) abuf->fields.sfmt_fbne.f
8509   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8510   int UNUSED written = 0;
8511   IADDR UNUSED pc = abuf->addr;
8512   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8513
8514 {
8515 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8516 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
8517   {
8518     USI opval = FLD (i_label16);
8519     sim_queue_pc_write (current_cpu, opval);
8520     written |= (1 << 3);
8521     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8522   }
8523 }
8524 }
8525
8526   abuf->written = written;
8527   return vpc;
8528 #undef FLD
8529 }
8530
8531 /* fbul: fbul$pack $FCCi_2,$hint,$label16 */
8532
8533 static SEM_PC
8534 SEM_FN_NAME (frvbf,fbul) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8535 {
8536 #define FLD(f) abuf->fields.sfmt_fbne.f
8537   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8538   int UNUSED written = 0;
8539   IADDR UNUSED pc = abuf->addr;
8540   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8541
8542 {
8543 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8544 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
8545   {
8546     USI opval = FLD (i_label16);
8547     sim_queue_pc_write (current_cpu, opval);
8548     written |= (1 << 3);
8549     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8550   }
8551 }
8552 }
8553
8554   abuf->written = written;
8555   return vpc;
8556 #undef FLD
8557 }
8558
8559 /* fbge: fbge$pack $FCCi_2,$hint,$label16 */
8560
8561 static SEM_PC
8562 SEM_FN_NAME (frvbf,fbge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8563 {
8564 #define FLD(f) abuf->fields.sfmt_fbne.f
8565   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8566   int UNUSED written = 0;
8567   IADDR UNUSED pc = abuf->addr;
8568   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8569
8570 {
8571 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8572 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)))) {
8573   {
8574     USI opval = FLD (i_label16);
8575     sim_queue_pc_write (current_cpu, opval);
8576     written |= (1 << 3);
8577     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8578   }
8579 }
8580 }
8581
8582   abuf->written = written;
8583   return vpc;
8584 #undef FLD
8585 }
8586
8587 /* fblt: fblt$pack $FCCi_2,$hint,$label16 */
8588
8589 static SEM_PC
8590 SEM_FN_NAME (frvbf,fblt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8591 {
8592 #define FLD(f) abuf->fields.sfmt_fbne.f
8593   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8594   int UNUSED written = 0;
8595   IADDR UNUSED pc = abuf->addr;
8596   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8597
8598 {
8599 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8600 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2))) {
8601   {
8602     USI opval = FLD (i_label16);
8603     sim_queue_pc_write (current_cpu, opval);
8604     written |= (1 << 3);
8605     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8606   }
8607 }
8608 }
8609
8610   abuf->written = written;
8611   return vpc;
8612 #undef FLD
8613 }
8614
8615 /* fbuge: fbuge$pack $FCCi_2,$hint,$label16 */
8616
8617 static SEM_PC
8618 SEM_FN_NAME (frvbf,fbuge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8619 {
8620 #define FLD(f) abuf->fields.sfmt_fbne.f
8621   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8622   int UNUSED written = 0;
8623   IADDR UNUSED pc = abuf->addr;
8624   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8625
8626 {
8627 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8628 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))))) {
8629   {
8630     USI opval = FLD (i_label16);
8631     sim_queue_pc_write (current_cpu, opval);
8632     written |= (1 << 3);
8633     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8634   }
8635 }
8636 }
8637
8638   abuf->written = written;
8639   return vpc;
8640 #undef FLD
8641 }
8642
8643 /* fbug: fbug$pack $FCCi_2,$hint,$label16 */
8644
8645 static SEM_PC
8646 SEM_FN_NAME (frvbf,fbug) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8647 {
8648 #define FLD(f) abuf->fields.sfmt_fbne.f
8649   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8650   int UNUSED written = 0;
8651   IADDR UNUSED pc = abuf->addr;
8652   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8653
8654 {
8655 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8656 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
8657   {
8658     USI opval = FLD (i_label16);
8659     sim_queue_pc_write (current_cpu, opval);
8660     written |= (1 << 3);
8661     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8662   }
8663 }
8664 }
8665
8666   abuf->written = written;
8667   return vpc;
8668 #undef FLD
8669 }
8670
8671 /* fble: fble$pack $FCCi_2,$hint,$label16 */
8672
8673 static SEM_PC
8674 SEM_FN_NAME (frvbf,fble) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8675 {
8676 #define FLD(f) abuf->fields.sfmt_fbne.f
8677   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8678   int UNUSED written = 0;
8679   IADDR UNUSED pc = abuf->addr;
8680   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8681
8682 {
8683 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8684 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)))) {
8685   {
8686     USI opval = FLD (i_label16);
8687     sim_queue_pc_write (current_cpu, opval);
8688     written |= (1 << 3);
8689     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8690   }
8691 }
8692 }
8693
8694   abuf->written = written;
8695   return vpc;
8696 #undef FLD
8697 }
8698
8699 /* fbgt: fbgt$pack $FCCi_2,$hint,$label16 */
8700
8701 static SEM_PC
8702 SEM_FN_NAME (frvbf,fbgt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8703 {
8704 #define FLD(f) abuf->fields.sfmt_fbne.f
8705   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8706   int UNUSED written = 0;
8707   IADDR UNUSED pc = abuf->addr;
8708   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8709
8710 {
8711 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8712 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1))) {
8713   {
8714     USI opval = FLD (i_label16);
8715     sim_queue_pc_write (current_cpu, opval);
8716     written |= (1 << 3);
8717     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8718   }
8719 }
8720 }
8721
8722   abuf->written = written;
8723   return vpc;
8724 #undef FLD
8725 }
8726
8727 /* fbule: fbule$pack $FCCi_2,$hint,$label16 */
8728
8729 static SEM_PC
8730 SEM_FN_NAME (frvbf,fbule) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8731 {
8732 #define FLD(f) abuf->fields.sfmt_fbne.f
8733   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8734   int UNUSED written = 0;
8735   IADDR UNUSED pc = abuf->addr;
8736   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8737
8738 {
8739 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8740 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))))) {
8741   {
8742     USI opval = FLD (i_label16);
8743     sim_queue_pc_write (current_cpu, opval);
8744     written |= (1 << 3);
8745     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8746   }
8747 }
8748 }
8749
8750   abuf->written = written;
8751   return vpc;
8752 #undef FLD
8753 }
8754
8755 /* fbu: fbu$pack $FCCi_2,$hint,$label16 */
8756
8757 static SEM_PC
8758 SEM_FN_NAME (frvbf,fbu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8759 {
8760 #define FLD(f) abuf->fields.sfmt_fbne.f
8761   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8762   int UNUSED written = 0;
8763   IADDR UNUSED pc = abuf->addr;
8764   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8765
8766 {
8767 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8768 if (TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1))) {
8769   {
8770     USI opval = FLD (i_label16);
8771     sim_queue_pc_write (current_cpu, opval);
8772     written |= (1 << 3);
8773     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8774   }
8775 }
8776 }
8777
8778   abuf->written = written;
8779   return vpc;
8780 #undef FLD
8781 }
8782
8783 /* fbo: fbo$pack $FCCi_2,$hint,$label16 */
8784
8785 static SEM_PC
8786 SEM_FN_NAME (frvbf,fbo) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8787 {
8788 #define FLD(f) abuf->fields.sfmt_fbne.f
8789   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8790   int UNUSED written = 0;
8791   IADDR UNUSED pc = abuf->addr;
8792   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8793
8794 {
8795 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8796 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))))) {
8797   {
8798     USI opval = FLD (i_label16);
8799     sim_queue_pc_write (current_cpu, opval);
8800     written |= (1 << 3);
8801     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8802   }
8803 }
8804 }
8805
8806   abuf->written = written;
8807   return vpc;
8808 #undef FLD
8809 }
8810
8811 /* bctrlr: bctrlr$pack $ccond,$hint */
8812
8813 static SEM_PC
8814 SEM_FN_NAME (frvbf,bctrlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8815 {
8816 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
8817   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8818   int UNUSED written = 0;
8819   IADDR UNUSED pc = abuf->addr;
8820   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8821
8822 {
8823 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
8824 {
8825   SI tmp_tmp;
8826   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
8827   {
8828     USI opval = tmp_tmp;
8829     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
8830     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
8831   }
8832 if (EQSI (FLD (f_ccond), 0)) {
8833 if (NESI (tmp_tmp, 0)) {
8834   {
8835     USI opval = GET_H_SPR (((UINT) 272));
8836     sim_queue_pc_write (current_cpu, opval);
8837     written |= (1 << 5);
8838     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8839   }
8840 }
8841 } else {
8842 if (EQSI (tmp_tmp, 0)) {
8843   {
8844     USI opval = GET_H_SPR (((UINT) 272));
8845     sim_queue_pc_write (current_cpu, opval);
8846     written |= (1 << 5);
8847     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8848   }
8849 }
8850 }
8851 }
8852 }
8853
8854   abuf->written = written;
8855   return vpc;
8856 #undef FLD
8857 }
8858
8859 /* bralr: bralr$pack$hint_taken */
8860
8861 static SEM_PC
8862 SEM_FN_NAME (frvbf,bralr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8863 {
8864 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
8865   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8866   int UNUSED written = 0;
8867   IADDR UNUSED pc = abuf->addr;
8868   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8869
8870 {
8871 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
8872   {
8873     USI opval = GET_H_SPR (((UINT) 272));
8874     sim_queue_pc_write (current_cpu, opval);
8875     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8876   }
8877 }
8878
8879   return vpc;
8880 #undef FLD
8881 }
8882
8883 /* bnolr: bnolr$pack$hint_not_taken */
8884
8885 static SEM_PC
8886 SEM_FN_NAME (frvbf,bnolr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8887 {
8888 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
8889   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8890   int UNUSED written = 0;
8891   IADDR UNUSED pc = abuf->addr;
8892   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8893
8894 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
8895
8896   return vpc;
8897 #undef FLD
8898 }
8899
8900 /* beqlr: beqlr$pack $ICCi_2,$hint */
8901
8902 static SEM_PC
8903 SEM_FN_NAME (frvbf,beqlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8904 {
8905 #define FLD(f) abuf->fields.sfmt_bceqlr.f
8906   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8907   int UNUSED written = 0;
8908   IADDR UNUSED pc = abuf->addr;
8909   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8910
8911 {
8912 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
8913 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2))) {
8914   {
8915     USI opval = GET_H_SPR (((UINT) 272));
8916     sim_queue_pc_write (current_cpu, opval);
8917     written |= (1 << 3);
8918     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8919   }
8920 }
8921 }
8922
8923   abuf->written = written;
8924   return vpc;
8925 #undef FLD
8926 }
8927
8928 /* bnelr: bnelr$pack $ICCi_2,$hint */
8929
8930 static SEM_PC
8931 SEM_FN_NAME (frvbf,bnelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8932 {
8933 #define FLD(f) abuf->fields.sfmt_bceqlr.f
8934   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8935   int UNUSED written = 0;
8936   IADDR UNUSED pc = abuf->addr;
8937   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8938
8939 {
8940 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
8941 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)))) {
8942   {
8943     USI opval = GET_H_SPR (((UINT) 272));
8944     sim_queue_pc_write (current_cpu, opval);
8945     written |= (1 << 3);
8946     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8947   }
8948 }
8949 }
8950
8951   abuf->written = written;
8952   return vpc;
8953 #undef FLD
8954 }
8955
8956 /* blelr: blelr$pack $ICCi_2,$hint */
8957
8958 static SEM_PC
8959 SEM_FN_NAME (frvbf,blelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8960 {
8961 #define FLD(f) abuf->fields.sfmt_bceqlr.f
8962   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8963   int UNUSED written = 0;
8964   IADDR UNUSED pc = abuf->addr;
8965   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8966
8967 {
8968 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
8969 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))))) {
8970   {
8971     USI opval = GET_H_SPR (((UINT) 272));
8972     sim_queue_pc_write (current_cpu, opval);
8973     written |= (1 << 3);
8974     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8975   }
8976 }
8977 }
8978
8979   abuf->written = written;
8980   return vpc;
8981 #undef FLD
8982 }
8983
8984 /* bgtlr: bgtlr$pack $ICCi_2,$hint */
8985
8986 static SEM_PC
8987 SEM_FN_NAME (frvbf,bgtlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8988 {
8989 #define FLD(f) abuf->fields.sfmt_bceqlr.f
8990   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8991   int UNUSED written = 0;
8992   IADDR UNUSED pc = abuf->addr;
8993   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8994
8995 {
8996 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
8997 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)))))) {
8998   {
8999     USI opval = GET_H_SPR (((UINT) 272));
9000     sim_queue_pc_write (current_cpu, opval);
9001     written |= (1 << 3);
9002     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9003   }
9004 }
9005 }
9006
9007   abuf->written = written;
9008   return vpc;
9009 #undef FLD
9010 }
9011
9012 /* bltlr: bltlr$pack $ICCi_2,$hint */
9013
9014 static SEM_PC
9015 SEM_FN_NAME (frvbf,bltlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9016 {
9017 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9018   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9019   int UNUSED written = 0;
9020   IADDR UNUSED pc = abuf->addr;
9021   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9022
9023 {
9024 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9025 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)))) {
9026   {
9027     USI opval = GET_H_SPR (((UINT) 272));
9028     sim_queue_pc_write (current_cpu, opval);
9029     written |= (1 << 3);
9030     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9031   }
9032 }
9033 }
9034
9035   abuf->written = written;
9036   return vpc;
9037 #undef FLD
9038 }
9039
9040 /* bgelr: bgelr$pack $ICCi_2,$hint */
9041
9042 static SEM_PC
9043 SEM_FN_NAME (frvbf,bgelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9044 {
9045 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9046   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9047   int UNUSED written = 0;
9048   IADDR UNUSED pc = abuf->addr;
9049   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9050
9051 {
9052 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9053 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))))) {
9054   {
9055     USI opval = GET_H_SPR (((UINT) 272));
9056     sim_queue_pc_write (current_cpu, opval);
9057     written |= (1 << 3);
9058     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9059   }
9060 }
9061 }
9062
9063   abuf->written = written;
9064   return vpc;
9065 #undef FLD
9066 }
9067
9068 /* blslr: blslr$pack $ICCi_2,$hint */
9069
9070 static SEM_PC
9071 SEM_FN_NAME (frvbf,blslr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9072 {
9073 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9074   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9075   int UNUSED written = 0;
9076   IADDR UNUSED pc = abuf->addr;
9077   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9078
9079 {
9080 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9081 if (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)))) {
9082   {
9083     USI opval = GET_H_SPR (((UINT) 272));
9084     sim_queue_pc_write (current_cpu, opval);
9085     written |= (1 << 3);
9086     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9087   }
9088 }
9089 }
9090
9091   abuf->written = written;
9092   return vpc;
9093 #undef FLD
9094 }
9095
9096 /* bhilr: bhilr$pack $ICCi_2,$hint */
9097
9098 static SEM_PC
9099 SEM_FN_NAME (frvbf,bhilr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9100 {
9101 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9102   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9103   int UNUSED written = 0;
9104   IADDR UNUSED pc = abuf->addr;
9105   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9106
9107 {
9108 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9109 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))))) {
9110   {
9111     USI opval = GET_H_SPR (((UINT) 272));
9112     sim_queue_pc_write (current_cpu, opval);
9113     written |= (1 << 3);
9114     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9115   }
9116 }
9117 }
9118
9119   abuf->written = written;
9120   return vpc;
9121 #undef FLD
9122 }
9123
9124 /* bclr: bclr$pack $ICCi_2,$hint */
9125
9126 static SEM_PC
9127 SEM_FN_NAME (frvbf,bclr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9128 {
9129 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9130   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9131   int UNUSED written = 0;
9132   IADDR UNUSED pc = abuf->addr;
9133   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9134
9135 {
9136 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9137 if (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1))) {
9138   {
9139     USI opval = GET_H_SPR (((UINT) 272));
9140     sim_queue_pc_write (current_cpu, opval);
9141     written |= (1 << 3);
9142     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9143   }
9144 }
9145 }
9146
9147   abuf->written = written;
9148   return vpc;
9149 #undef FLD
9150 }
9151
9152 /* bnclr: bnclr$pack $ICCi_2,$hint */
9153
9154 static SEM_PC
9155 SEM_FN_NAME (frvbf,bnclr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9156 {
9157 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9158   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9159   int UNUSED written = 0;
9160   IADDR UNUSED pc = abuf->addr;
9161   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9162
9163 {
9164 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9165 if (NOTBI (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)))) {
9166   {
9167     USI opval = GET_H_SPR (((UINT) 272));
9168     sim_queue_pc_write (current_cpu, opval);
9169     written |= (1 << 3);
9170     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9171   }
9172 }
9173 }
9174
9175   abuf->written = written;
9176   return vpc;
9177 #undef FLD
9178 }
9179
9180 /* bnlr: bnlr$pack $ICCi_2,$hint */
9181
9182 static SEM_PC
9183 SEM_FN_NAME (frvbf,bnlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9184 {
9185 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9186   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9187   int UNUSED written = 0;
9188   IADDR UNUSED pc = abuf->addr;
9189   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9190
9191 {
9192 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9193 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3))) {
9194   {
9195     USI opval = GET_H_SPR (((UINT) 272));
9196     sim_queue_pc_write (current_cpu, opval);
9197     written |= (1 << 3);
9198     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9199   }
9200 }
9201 }
9202
9203   abuf->written = written;
9204   return vpc;
9205 #undef FLD
9206 }
9207
9208 /* bplr: bplr$pack $ICCi_2,$hint */
9209
9210 static SEM_PC
9211 SEM_FN_NAME (frvbf,bplr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9212 {
9213 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9214   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9215   int UNUSED written = 0;
9216   IADDR UNUSED pc = abuf->addr;
9217   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9218
9219 {
9220 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9221 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3)))) {
9222   {
9223     USI opval = GET_H_SPR (((UINT) 272));
9224     sim_queue_pc_write (current_cpu, opval);
9225     written |= (1 << 3);
9226     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9227   }
9228 }
9229 }
9230
9231   abuf->written = written;
9232   return vpc;
9233 #undef FLD
9234 }
9235
9236 /* bvlr: bvlr$pack $ICCi_2,$hint */
9237
9238 static SEM_PC
9239 SEM_FN_NAME (frvbf,bvlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9240 {
9241 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9242   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9243   int UNUSED written = 0;
9244   IADDR UNUSED pc = abuf->addr;
9245   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9246
9247 {
9248 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9249 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1))) {
9250   {
9251     USI opval = GET_H_SPR (((UINT) 272));
9252     sim_queue_pc_write (current_cpu, opval);
9253     written |= (1 << 3);
9254     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9255   }
9256 }
9257 }
9258
9259   abuf->written = written;
9260   return vpc;
9261 #undef FLD
9262 }
9263
9264 /* bnvlr: bnvlr$pack $ICCi_2,$hint */
9265
9266 static SEM_PC
9267 SEM_FN_NAME (frvbf,bnvlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9268 {
9269 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9270   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9271   int UNUSED written = 0;
9272   IADDR UNUSED pc = abuf->addr;
9273   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9274
9275 {
9276 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9277 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1)))) {
9278   {
9279     USI opval = GET_H_SPR (((UINT) 272));
9280     sim_queue_pc_write (current_cpu, opval);
9281     written |= (1 << 3);
9282     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9283   }
9284 }
9285 }
9286
9287   abuf->written = written;
9288   return vpc;
9289 #undef FLD
9290 }
9291
9292 /* fbralr: fbralr$pack$hint_taken */
9293
9294 static SEM_PC
9295 SEM_FN_NAME (frvbf,fbralr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9296 {
9297 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9298   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9299   int UNUSED written = 0;
9300   IADDR UNUSED pc = abuf->addr;
9301   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9302
9303 {
9304 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9305   {
9306     USI opval = GET_H_SPR (((UINT) 272));
9307     sim_queue_pc_write (current_cpu, opval);
9308     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9309   }
9310 }
9311
9312   return vpc;
9313 #undef FLD
9314 }
9315
9316 /* fbnolr: fbnolr$pack$hint_not_taken */
9317
9318 static SEM_PC
9319 SEM_FN_NAME (frvbf,fbnolr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9320 {
9321 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9322   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9323   int UNUSED written = 0;
9324   IADDR UNUSED pc = abuf->addr;
9325   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9326
9327 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9328
9329   return vpc;
9330 #undef FLD
9331 }
9332
9333 /* fbeqlr: fbeqlr$pack $FCCi_2,$hint */
9334
9335 static SEM_PC
9336 SEM_FN_NAME (frvbf,fbeqlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9337 {
9338 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9339   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9340   int UNUSED written = 0;
9341   IADDR UNUSED pc = abuf->addr;
9342   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9343
9344 {
9345 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9346 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3))) {
9347   {
9348     USI opval = GET_H_SPR (((UINT) 272));
9349     sim_queue_pc_write (current_cpu, opval);
9350     written |= (1 << 3);
9351     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9352   }
9353 }
9354 }
9355
9356   abuf->written = written;
9357   return vpc;
9358 #undef FLD
9359 }
9360
9361 /* fbnelr: fbnelr$pack $FCCi_2,$hint */
9362
9363 static SEM_PC
9364 SEM_FN_NAME (frvbf,fbnelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9365 {
9366 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9367   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9368   int UNUSED written = 0;
9369   IADDR UNUSED pc = abuf->addr;
9370   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9371
9372 {
9373 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9374 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))))) {
9375   {
9376     USI opval = GET_H_SPR (((UINT) 272));
9377     sim_queue_pc_write (current_cpu, opval);
9378     written |= (1 << 3);
9379     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9380   }
9381 }
9382 }
9383
9384   abuf->written = written;
9385   return vpc;
9386 #undef FLD
9387 }
9388
9389 /* fblglr: fblglr$pack $FCCi_2,$hint */
9390
9391 static SEM_PC
9392 SEM_FN_NAME (frvbf,fblglr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9393 {
9394 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9395   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9396   int UNUSED written = 0;
9397   IADDR UNUSED pc = abuf->addr;
9398   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9399
9400 {
9401 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9402 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)))) {
9403   {
9404     USI opval = GET_H_SPR (((UINT) 272));
9405     sim_queue_pc_write (current_cpu, opval);
9406     written |= (1 << 3);
9407     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9408   }
9409 }
9410 }
9411
9412   abuf->written = written;
9413   return vpc;
9414 #undef FLD
9415 }
9416
9417 /* fbuelr: fbuelr$pack $FCCi_2,$hint */
9418
9419 static SEM_PC
9420 SEM_FN_NAME (frvbf,fbuelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9421 {
9422 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9423   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9424   int UNUSED written = 0;
9425   IADDR UNUSED pc = abuf->addr;
9426   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9427
9428 {
9429 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9430 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
9431   {
9432     USI opval = GET_H_SPR (((UINT) 272));
9433     sim_queue_pc_write (current_cpu, opval);
9434     written |= (1 << 3);
9435     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9436   }
9437 }
9438 }
9439
9440   abuf->written = written;
9441   return vpc;
9442 #undef FLD
9443 }
9444
9445 /* fbullr: fbullr$pack $FCCi_2,$hint */
9446
9447 static SEM_PC
9448 SEM_FN_NAME (frvbf,fbullr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9449 {
9450 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9451   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9452   int UNUSED written = 0;
9453   IADDR UNUSED pc = abuf->addr;
9454   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9455
9456 {
9457 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9458 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
9459   {
9460     USI opval = GET_H_SPR (((UINT) 272));
9461     sim_queue_pc_write (current_cpu, opval);
9462     written |= (1 << 3);
9463     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9464   }
9465 }
9466 }
9467
9468   abuf->written = written;
9469   return vpc;
9470 #undef FLD
9471 }
9472
9473 /* fbgelr: fbgelr$pack $FCCi_2,$hint */
9474
9475 static SEM_PC
9476 SEM_FN_NAME (frvbf,fbgelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9477 {
9478 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9479   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9480   int UNUSED written = 0;
9481   IADDR UNUSED pc = abuf->addr;
9482   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9483
9484 {
9485 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9486 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)))) {
9487   {
9488     USI opval = GET_H_SPR (((UINT) 272));
9489     sim_queue_pc_write (current_cpu, opval);
9490     written |= (1 << 3);
9491     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9492   }
9493 }
9494 }
9495
9496   abuf->written = written;
9497   return vpc;
9498 #undef FLD
9499 }
9500
9501 /* fbltlr: fbltlr$pack $FCCi_2,$hint */
9502
9503 static SEM_PC
9504 SEM_FN_NAME (frvbf,fbltlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9505 {
9506 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9507   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9508   int UNUSED written = 0;
9509   IADDR UNUSED pc = abuf->addr;
9510   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9511
9512 {
9513 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9514 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2))) {
9515   {
9516     USI opval = GET_H_SPR (((UINT) 272));
9517     sim_queue_pc_write (current_cpu, opval);
9518     written |= (1 << 3);
9519     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9520   }
9521 }
9522 }
9523
9524   abuf->written = written;
9525   return vpc;
9526 #undef FLD
9527 }
9528
9529 /* fbugelr: fbugelr$pack $FCCi_2,$hint */
9530
9531 static SEM_PC
9532 SEM_FN_NAME (frvbf,fbugelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9533 {
9534 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9535   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9536   int UNUSED written = 0;
9537   IADDR UNUSED pc = abuf->addr;
9538   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9539
9540 {
9541 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9542 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))))) {
9543   {
9544     USI opval = GET_H_SPR (((UINT) 272));
9545     sim_queue_pc_write (current_cpu, opval);
9546     written |= (1 << 3);
9547     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9548   }
9549 }
9550 }
9551
9552   abuf->written = written;
9553   return vpc;
9554 #undef FLD
9555 }
9556
9557 /* fbuglr: fbuglr$pack $FCCi_2,$hint */
9558
9559 static SEM_PC
9560 SEM_FN_NAME (frvbf,fbuglr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9561 {
9562 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9563   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9564   int UNUSED written = 0;
9565   IADDR UNUSED pc = abuf->addr;
9566   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9567
9568 {
9569 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9570 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
9571   {
9572     USI opval = GET_H_SPR (((UINT) 272));
9573     sim_queue_pc_write (current_cpu, opval);
9574     written |= (1 << 3);
9575     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9576   }
9577 }
9578 }
9579
9580   abuf->written = written;
9581   return vpc;
9582 #undef FLD
9583 }
9584
9585 /* fblelr: fblelr$pack $FCCi_2,$hint */
9586
9587 static SEM_PC
9588 SEM_FN_NAME (frvbf,fblelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9589 {
9590 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9591   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9592   int UNUSED written = 0;
9593   IADDR UNUSED pc = abuf->addr;
9594   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9595
9596 {
9597 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9598 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)))) {
9599   {
9600     USI opval = GET_H_SPR (((UINT) 272));
9601     sim_queue_pc_write (current_cpu, opval);
9602     written |= (1 << 3);
9603     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9604   }
9605 }
9606 }
9607
9608   abuf->written = written;
9609   return vpc;
9610 #undef FLD
9611 }
9612
9613 /* fbgtlr: fbgtlr$pack $FCCi_2,$hint */
9614
9615 static SEM_PC
9616 SEM_FN_NAME (frvbf,fbgtlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9617 {
9618 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9619   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9620   int UNUSED written = 0;
9621   IADDR UNUSED pc = abuf->addr;
9622   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9623
9624 {
9625 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9626 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1))) {
9627   {
9628     USI opval = GET_H_SPR (((UINT) 272));
9629     sim_queue_pc_write (current_cpu, opval);
9630     written |= (1 << 3);
9631     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9632   }
9633 }
9634 }
9635
9636   abuf->written = written;
9637   return vpc;
9638 #undef FLD
9639 }
9640
9641 /* fbulelr: fbulelr$pack $FCCi_2,$hint */
9642
9643 static SEM_PC
9644 SEM_FN_NAME (frvbf,fbulelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9645 {
9646 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9647   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9648   int UNUSED written = 0;
9649   IADDR UNUSED pc = abuf->addr;
9650   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9651
9652 {
9653 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9654 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))))) {
9655   {
9656     USI opval = GET_H_SPR (((UINT) 272));
9657     sim_queue_pc_write (current_cpu, opval);
9658     written |= (1 << 3);
9659     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9660   }
9661 }
9662 }
9663
9664   abuf->written = written;
9665   return vpc;
9666 #undef FLD
9667 }
9668
9669 /* fbulr: fbulr$pack $FCCi_2,$hint */
9670
9671 static SEM_PC
9672 SEM_FN_NAME (frvbf,fbulr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9673 {
9674 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9675   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9676   int UNUSED written = 0;
9677   IADDR UNUSED pc = abuf->addr;
9678   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9679
9680 {
9681 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9682 if (TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1))) {
9683   {
9684     USI opval = GET_H_SPR (((UINT) 272));
9685     sim_queue_pc_write (current_cpu, opval);
9686     written |= (1 << 3);
9687     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9688   }
9689 }
9690 }
9691
9692   abuf->written = written;
9693   return vpc;
9694 #undef FLD
9695 }
9696
9697 /* fbolr: fbolr$pack $FCCi_2,$hint */
9698
9699 static SEM_PC
9700 SEM_FN_NAME (frvbf,fbolr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9701 {
9702 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9703   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9704   int UNUSED written = 0;
9705   IADDR UNUSED pc = abuf->addr;
9706   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9707
9708 {
9709 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9710 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))))) {
9711   {
9712     USI opval = GET_H_SPR (((UINT) 272));
9713     sim_queue_pc_write (current_cpu, opval);
9714     written |= (1 << 3);
9715     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9716   }
9717 }
9718 }
9719
9720   abuf->written = written;
9721   return vpc;
9722 #undef FLD
9723 }
9724
9725 /* bcralr: bcralr$pack $ccond$hint_taken */
9726
9727 static SEM_PC
9728 SEM_FN_NAME (frvbf,bcralr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9729 {
9730 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9731   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9732   int UNUSED written = 0;
9733   IADDR UNUSED pc = abuf->addr;
9734   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9735
9736 {
9737 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9738 {
9739   SI tmp_tmp;
9740   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
9741   {
9742     USI opval = tmp_tmp;
9743     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
9744     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
9745   }
9746 if (EQSI (FLD (f_ccond), 0)) {
9747 if (NESI (tmp_tmp, 0)) {
9748   {
9749     USI opval = GET_H_SPR (((UINT) 272));
9750     sim_queue_pc_write (current_cpu, opval);
9751     written |= (1 << 5);
9752     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9753   }
9754 }
9755 } else {
9756 if (EQSI (tmp_tmp, 0)) {
9757   {
9758     USI opval = GET_H_SPR (((UINT) 272));
9759     sim_queue_pc_write (current_cpu, opval);
9760     written |= (1 << 5);
9761     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9762   }
9763 }
9764 }
9765 }
9766 }
9767
9768   abuf->written = written;
9769   return vpc;
9770 #undef FLD
9771 }
9772
9773 /* bcnolr: bcnolr$pack$hint_not_taken */
9774
9775 static SEM_PC
9776 SEM_FN_NAME (frvbf,bcnolr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9777 {
9778 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9779   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9780   int UNUSED written = 0;
9781   IADDR UNUSED pc = abuf->addr;
9782   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9783
9784 {
9785 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9786 {
9787   SI tmp_tmp;
9788   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
9789   {
9790     USI opval = tmp_tmp;
9791     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
9792     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
9793   }
9794 ((void) 0); /*nop*/
9795 }
9796 }
9797
9798   return vpc;
9799 #undef FLD
9800 }
9801
9802 /* bceqlr: bceqlr$pack $ICCi_2,$ccond,$hint */
9803
9804 static SEM_PC
9805 SEM_FN_NAME (frvbf,bceqlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9806 {
9807 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9808   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9809   int UNUSED written = 0;
9810   IADDR UNUSED pc = abuf->addr;
9811   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9812
9813 {
9814 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9815 {
9816   SI tmp_tmp;
9817   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
9818   {
9819     USI opval = tmp_tmp;
9820     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
9821     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
9822   }
9823 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2))) {
9824 if (EQSI (FLD (f_ccond), 0)) {
9825 if (NESI (tmp_tmp, 0)) {
9826   {
9827     USI opval = GET_H_SPR (((UINT) 272));
9828     sim_queue_pc_write (current_cpu, opval);
9829     written |= (1 << 6);
9830     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9831   }
9832 }
9833 } else {
9834 if (EQSI (tmp_tmp, 0)) {
9835   {
9836     USI opval = GET_H_SPR (((UINT) 272));
9837     sim_queue_pc_write (current_cpu, opval);
9838     written |= (1 << 6);
9839     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9840   }
9841 }
9842 }
9843 }
9844 }
9845 }
9846
9847   abuf->written = written;
9848   return vpc;
9849 #undef FLD
9850 }
9851
9852 /* bcnelr: bcnelr$pack $ICCi_2,$ccond,$hint */
9853
9854 static SEM_PC
9855 SEM_FN_NAME (frvbf,bcnelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9856 {
9857 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9858   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9859   int UNUSED written = 0;
9860   IADDR UNUSED pc = abuf->addr;
9861   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9862
9863 {
9864 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9865 {
9866   SI tmp_tmp;
9867   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
9868   {
9869     USI opval = tmp_tmp;
9870     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
9871     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
9872   }
9873 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)))) {
9874 if (EQSI (FLD (f_ccond), 0)) {
9875 if (NESI (tmp_tmp, 0)) {
9876   {
9877     USI opval = GET_H_SPR (((UINT) 272));
9878     sim_queue_pc_write (current_cpu, opval);
9879     written |= (1 << 6);
9880     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9881   }
9882 }
9883 } else {
9884 if (EQSI (tmp_tmp, 0)) {
9885   {
9886     USI opval = GET_H_SPR (((UINT) 272));
9887     sim_queue_pc_write (current_cpu, opval);
9888     written |= (1 << 6);
9889     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9890   }
9891 }
9892 }
9893 }
9894 }
9895 }
9896
9897   abuf->written = written;
9898   return vpc;
9899 #undef FLD
9900 }
9901
9902 /* bclelr: bclelr$pack $ICCi_2,$ccond,$hint */
9903
9904 static SEM_PC
9905 SEM_FN_NAME (frvbf,bclelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9906 {
9907 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9908   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9909   int UNUSED written = 0;
9910   IADDR UNUSED pc = abuf->addr;
9911   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9912
9913 {
9914 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9915 {
9916   SI tmp_tmp;
9917   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
9918   {
9919     USI opval = tmp_tmp;
9920     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
9921     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
9922   }
9923 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))))) {
9924 if (EQSI (FLD (f_ccond), 0)) {
9925 if (NESI (tmp_tmp, 0)) {
9926   {
9927     USI opval = GET_H_SPR (((UINT) 272));
9928     sim_queue_pc_write (current_cpu, opval);
9929     written |= (1 << 6);
9930     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9931   }
9932 }
9933 } else {
9934 if (EQSI (tmp_tmp, 0)) {
9935   {
9936     USI opval = GET_H_SPR (((UINT) 272));
9937     sim_queue_pc_write (current_cpu, opval);
9938     written |= (1 << 6);
9939     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9940   }
9941 }
9942 }
9943 }
9944 }
9945 }
9946
9947   abuf->written = written;
9948   return vpc;
9949 #undef FLD
9950 }
9951
9952 /* bcgtlr: bcgtlr$pack $ICCi_2,$ccond,$hint */
9953
9954 static SEM_PC
9955 SEM_FN_NAME (frvbf,bcgtlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9956 {
9957 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9958   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9959   int UNUSED written = 0;
9960   IADDR UNUSED pc = abuf->addr;
9961   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9962
9963 {
9964 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9965 {
9966   SI tmp_tmp;
9967   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
9968   {
9969     USI opval = tmp_tmp;
9970     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
9971     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
9972   }
9973 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)))))) {
9974 if (EQSI (FLD (f_ccond), 0)) {
9975 if (NESI (tmp_tmp, 0)) {
9976   {
9977     USI opval = GET_H_SPR (((UINT) 272));
9978     sim_queue_pc_write (current_cpu, opval);
9979     written |= (1 << 6);
9980     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9981   }
9982 }
9983 } else {
9984 if (EQSI (tmp_tmp, 0)) {
9985   {
9986     USI opval = GET_H_SPR (((UINT) 272));
9987     sim_queue_pc_write (current_cpu, opval);
9988     written |= (1 << 6);
9989     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9990   }
9991 }
9992 }
9993 }
9994 }
9995 }
9996
9997   abuf->written = written;
9998   return vpc;
9999 #undef FLD
10000 }
10001
10002 /* bcltlr: bcltlr$pack $ICCi_2,$ccond,$hint */
10003
10004 static SEM_PC
10005 SEM_FN_NAME (frvbf,bcltlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10006 {
10007 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10008   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10009   int UNUSED written = 0;
10010   IADDR UNUSED pc = abuf->addr;
10011   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10012
10013 {
10014 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10015 {
10016   SI tmp_tmp;
10017   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10018   {
10019     USI opval = tmp_tmp;
10020     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10021     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10022   }
10023 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)))) {
10024 if (EQSI (FLD (f_ccond), 0)) {
10025 if (NESI (tmp_tmp, 0)) {
10026   {
10027     USI opval = GET_H_SPR (((UINT) 272));
10028     sim_queue_pc_write (current_cpu, opval);
10029     written |= (1 << 6);
10030     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10031   }
10032 }
10033 } else {
10034 if (EQSI (tmp_tmp, 0)) {
10035   {
10036     USI opval = GET_H_SPR (((UINT) 272));
10037     sim_queue_pc_write (current_cpu, opval);
10038     written |= (1 << 6);
10039     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10040   }
10041 }
10042 }
10043 }
10044 }
10045 }
10046
10047   abuf->written = written;
10048   return vpc;
10049 #undef FLD
10050 }
10051
10052 /* bcgelr: bcgelr$pack $ICCi_2,$ccond,$hint */
10053
10054 static SEM_PC
10055 SEM_FN_NAME (frvbf,bcgelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10056 {
10057 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10058   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10059   int UNUSED written = 0;
10060   IADDR UNUSED pc = abuf->addr;
10061   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10062
10063 {
10064 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10065 {
10066   SI tmp_tmp;
10067   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10068   {
10069     USI opval = tmp_tmp;
10070     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10071     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10072   }
10073 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))))) {
10074 if (EQSI (FLD (f_ccond), 0)) {
10075 if (NESI (tmp_tmp, 0)) {
10076   {
10077     USI opval = GET_H_SPR (((UINT) 272));
10078     sim_queue_pc_write (current_cpu, opval);
10079     written |= (1 << 6);
10080     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10081   }
10082 }
10083 } else {
10084 if (EQSI (tmp_tmp, 0)) {
10085   {
10086     USI opval = GET_H_SPR (((UINT) 272));
10087     sim_queue_pc_write (current_cpu, opval);
10088     written |= (1 << 6);
10089     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10090   }
10091 }
10092 }
10093 }
10094 }
10095 }
10096
10097   abuf->written = written;
10098   return vpc;
10099 #undef FLD
10100 }
10101
10102 /* bclslr: bclslr$pack $ICCi_2,$ccond,$hint */
10103
10104 static SEM_PC
10105 SEM_FN_NAME (frvbf,bclslr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10106 {
10107 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10108   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10109   int UNUSED written = 0;
10110   IADDR UNUSED pc = abuf->addr;
10111   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10112
10113 {
10114 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10115 {
10116   SI tmp_tmp;
10117   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10118   {
10119     USI opval = tmp_tmp;
10120     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10121     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10122   }
10123 if (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)))) {
10124 if (EQSI (FLD (f_ccond), 0)) {
10125 if (NESI (tmp_tmp, 0)) {
10126   {
10127     USI opval = GET_H_SPR (((UINT) 272));
10128     sim_queue_pc_write (current_cpu, opval);
10129     written |= (1 << 6);
10130     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10131   }
10132 }
10133 } else {
10134 if (EQSI (tmp_tmp, 0)) {
10135   {
10136     USI opval = GET_H_SPR (((UINT) 272));
10137     sim_queue_pc_write (current_cpu, opval);
10138     written |= (1 << 6);
10139     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10140   }
10141 }
10142 }
10143 }
10144 }
10145 }
10146
10147   abuf->written = written;
10148   return vpc;
10149 #undef FLD
10150 }
10151
10152 /* bchilr: bchilr$pack $ICCi_2,$ccond,$hint */
10153
10154 static SEM_PC
10155 SEM_FN_NAME (frvbf,bchilr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10156 {
10157 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10158   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10159   int UNUSED written = 0;
10160   IADDR UNUSED pc = abuf->addr;
10161   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10162
10163 {
10164 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10165 {
10166   SI tmp_tmp;
10167   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10168   {
10169     USI opval = tmp_tmp;
10170     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10171     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10172   }
10173 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))))) {
10174 if (EQSI (FLD (f_ccond), 0)) {
10175 if (NESI (tmp_tmp, 0)) {
10176   {
10177     USI opval = GET_H_SPR (((UINT) 272));
10178     sim_queue_pc_write (current_cpu, opval);
10179     written |= (1 << 6);
10180     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10181   }
10182 }
10183 } else {
10184 if (EQSI (tmp_tmp, 0)) {
10185   {
10186     USI opval = GET_H_SPR (((UINT) 272));
10187     sim_queue_pc_write (current_cpu, opval);
10188     written |= (1 << 6);
10189     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10190   }
10191 }
10192 }
10193 }
10194 }
10195 }
10196
10197   abuf->written = written;
10198   return vpc;
10199 #undef FLD
10200 }
10201
10202 /* bcclr: bcclr$pack $ICCi_2,$ccond,$hint */
10203
10204 static SEM_PC
10205 SEM_FN_NAME (frvbf,bcclr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10206 {
10207 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10208   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10209   int UNUSED written = 0;
10210   IADDR UNUSED pc = abuf->addr;
10211   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10212
10213 {
10214 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10215 {
10216   SI tmp_tmp;
10217   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10218   {
10219     USI opval = tmp_tmp;
10220     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10221     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10222   }
10223 if (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1))) {
10224 if (EQSI (FLD (f_ccond), 0)) {
10225 if (NESI (tmp_tmp, 0)) {
10226   {
10227     USI opval = GET_H_SPR (((UINT) 272));
10228     sim_queue_pc_write (current_cpu, opval);
10229     written |= (1 << 6);
10230     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10231   }
10232 }
10233 } else {
10234 if (EQSI (tmp_tmp, 0)) {
10235   {
10236     USI opval = GET_H_SPR (((UINT) 272));
10237     sim_queue_pc_write (current_cpu, opval);
10238     written |= (1 << 6);
10239     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10240   }
10241 }
10242 }
10243 }
10244 }
10245 }
10246
10247   abuf->written = written;
10248   return vpc;
10249 #undef FLD
10250 }
10251
10252 /* bcnclr: bcnclr$pack $ICCi_2,$ccond,$hint */
10253
10254 static SEM_PC
10255 SEM_FN_NAME (frvbf,bcnclr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10256 {
10257 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10258   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10259   int UNUSED written = 0;
10260   IADDR UNUSED pc = abuf->addr;
10261   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10262
10263 {
10264 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10265 {
10266   SI tmp_tmp;
10267   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10268   {
10269     USI opval = tmp_tmp;
10270     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10271     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10272   }
10273 if (NOTBI (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)))) {
10274 if (EQSI (FLD (f_ccond), 0)) {
10275 if (NESI (tmp_tmp, 0)) {
10276   {
10277     USI opval = GET_H_SPR (((UINT) 272));
10278     sim_queue_pc_write (current_cpu, opval);
10279     written |= (1 << 6);
10280     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10281   }
10282 }
10283 } else {
10284 if (EQSI (tmp_tmp, 0)) {
10285   {
10286     USI opval = GET_H_SPR (((UINT) 272));
10287     sim_queue_pc_write (current_cpu, opval);
10288     written |= (1 << 6);
10289     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10290   }
10291 }
10292 }
10293 }
10294 }
10295 }
10296
10297   abuf->written = written;
10298   return vpc;
10299 #undef FLD
10300 }
10301
10302 /* bcnlr: bcnlr$pack $ICCi_2,$ccond,$hint */
10303
10304 static SEM_PC
10305 SEM_FN_NAME (frvbf,bcnlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10306 {
10307 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10308   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10309   int UNUSED written = 0;
10310   IADDR UNUSED pc = abuf->addr;
10311   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10312
10313 {
10314 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10315 {
10316   SI tmp_tmp;
10317   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10318   {
10319     USI opval = tmp_tmp;
10320     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10321     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10322   }
10323 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3))) {
10324 if (EQSI (FLD (f_ccond), 0)) {
10325 if (NESI (tmp_tmp, 0)) {
10326   {
10327     USI opval = GET_H_SPR (((UINT) 272));
10328     sim_queue_pc_write (current_cpu, opval);
10329     written |= (1 << 6);
10330     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10331   }
10332 }
10333 } else {
10334 if (EQSI (tmp_tmp, 0)) {
10335   {
10336     USI opval = GET_H_SPR (((UINT) 272));
10337     sim_queue_pc_write (current_cpu, opval);
10338     written |= (1 << 6);
10339     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10340   }
10341 }
10342 }
10343 }
10344 }
10345 }
10346
10347   abuf->written = written;
10348   return vpc;
10349 #undef FLD
10350 }
10351
10352 /* bcplr: bcplr$pack $ICCi_2,$ccond,$hint */
10353
10354 static SEM_PC
10355 SEM_FN_NAME (frvbf,bcplr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10356 {
10357 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10358   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10359   int UNUSED written = 0;
10360   IADDR UNUSED pc = abuf->addr;
10361   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10362
10363 {
10364 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10365 {
10366   SI tmp_tmp;
10367   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10368   {
10369     USI opval = tmp_tmp;
10370     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10371     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10372   }
10373 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3)))) {
10374 if (EQSI (FLD (f_ccond), 0)) {
10375 if (NESI (tmp_tmp, 0)) {
10376   {
10377     USI opval = GET_H_SPR (((UINT) 272));
10378     sim_queue_pc_write (current_cpu, opval);
10379     written |= (1 << 6);
10380     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10381   }
10382 }
10383 } else {
10384 if (EQSI (tmp_tmp, 0)) {
10385   {
10386     USI opval = GET_H_SPR (((UINT) 272));
10387     sim_queue_pc_write (current_cpu, opval);
10388     written |= (1 << 6);
10389     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10390   }
10391 }
10392 }
10393 }
10394 }
10395 }
10396
10397   abuf->written = written;
10398   return vpc;
10399 #undef FLD
10400 }
10401
10402 /* bcvlr: bcvlr$pack $ICCi_2,$ccond,$hint */
10403
10404 static SEM_PC
10405 SEM_FN_NAME (frvbf,bcvlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10406 {
10407 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10408   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10409   int UNUSED written = 0;
10410   IADDR UNUSED pc = abuf->addr;
10411   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10412
10413 {
10414 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10415 {
10416   SI tmp_tmp;
10417   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10418   {
10419     USI opval = tmp_tmp;
10420     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10421     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10422   }
10423 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1))) {
10424 if (EQSI (FLD (f_ccond), 0)) {
10425 if (NESI (tmp_tmp, 0)) {
10426   {
10427     USI opval = GET_H_SPR (((UINT) 272));
10428     sim_queue_pc_write (current_cpu, opval);
10429     written |= (1 << 6);
10430     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10431   }
10432 }
10433 } else {
10434 if (EQSI (tmp_tmp, 0)) {
10435   {
10436     USI opval = GET_H_SPR (((UINT) 272));
10437     sim_queue_pc_write (current_cpu, opval);
10438     written |= (1 << 6);
10439     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10440   }
10441 }
10442 }
10443 }
10444 }
10445 }
10446
10447   abuf->written = written;
10448   return vpc;
10449 #undef FLD
10450 }
10451
10452 /* bcnvlr: bcnvlr$pack $ICCi_2,$ccond,$hint */
10453
10454 static SEM_PC
10455 SEM_FN_NAME (frvbf,bcnvlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10456 {
10457 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10458   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10459   int UNUSED written = 0;
10460   IADDR UNUSED pc = abuf->addr;
10461   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10462
10463 {
10464 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10465 {
10466   SI tmp_tmp;
10467   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10468   {
10469     USI opval = tmp_tmp;
10470     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10471     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10472   }
10473 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1)))) {
10474 if (EQSI (FLD (f_ccond), 0)) {
10475 if (NESI (tmp_tmp, 0)) {
10476   {
10477     USI opval = GET_H_SPR (((UINT) 272));
10478     sim_queue_pc_write (current_cpu, opval);
10479     written |= (1 << 6);
10480     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10481   }
10482 }
10483 } else {
10484 if (EQSI (tmp_tmp, 0)) {
10485   {
10486     USI opval = GET_H_SPR (((UINT) 272));
10487     sim_queue_pc_write (current_cpu, opval);
10488     written |= (1 << 6);
10489     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10490   }
10491 }
10492 }
10493 }
10494 }
10495 }
10496
10497   abuf->written = written;
10498   return vpc;
10499 #undef FLD
10500 }
10501
10502 /* fcbralr: fcbralr$pack $ccond$hint_taken */
10503
10504 static SEM_PC
10505 SEM_FN_NAME (frvbf,fcbralr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10506 {
10507 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10508   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10509   int UNUSED written = 0;
10510   IADDR UNUSED pc = abuf->addr;
10511   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10512
10513 {
10514 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10515 {
10516   SI tmp_tmp;
10517   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10518   {
10519     USI opval = tmp_tmp;
10520     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10521     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10522   }
10523 if (EQSI (FLD (f_ccond), 0)) {
10524 if (NESI (tmp_tmp, 0)) {
10525   {
10526     USI opval = GET_H_SPR (((UINT) 272));
10527     sim_queue_pc_write (current_cpu, opval);
10528     written |= (1 << 5);
10529     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10530   }
10531 }
10532 } else {
10533 if (EQSI (tmp_tmp, 0)) {
10534   {
10535     USI opval = GET_H_SPR (((UINT) 272));
10536     sim_queue_pc_write (current_cpu, opval);
10537     written |= (1 << 5);
10538     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10539   }
10540 }
10541 }
10542 }
10543 }
10544
10545   abuf->written = written;
10546   return vpc;
10547 #undef FLD
10548 }
10549
10550 /* fcbnolr: fcbnolr$pack$hint_not_taken */
10551
10552 static SEM_PC
10553 SEM_FN_NAME (frvbf,fcbnolr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10554 {
10555 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10556   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10557   int UNUSED written = 0;
10558   IADDR UNUSED pc = abuf->addr;
10559   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10560
10561 {
10562 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10563 {
10564   SI tmp_tmp;
10565   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10566   {
10567     USI opval = tmp_tmp;
10568     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10569     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10570   }
10571 ((void) 0); /*nop*/
10572 }
10573 }
10574
10575   return vpc;
10576 #undef FLD
10577 }
10578
10579 /* fcbeqlr: fcbeqlr$pack $FCCi_2,$ccond,$hint */
10580
10581 static SEM_PC
10582 SEM_FN_NAME (frvbf,fcbeqlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10583 {
10584 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10585   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10586   int UNUSED written = 0;
10587   IADDR UNUSED pc = abuf->addr;
10588   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10589
10590 {
10591 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10592 {
10593   SI tmp_tmp;
10594   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10595   {
10596     USI opval = tmp_tmp;
10597     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10598     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10599   }
10600 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3))) {
10601 if (EQSI (FLD (f_ccond), 0)) {
10602 if (NESI (tmp_tmp, 0)) {
10603   {
10604     USI opval = GET_H_SPR (((UINT) 272));
10605     sim_queue_pc_write (current_cpu, opval);
10606     written |= (1 << 6);
10607     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10608   }
10609 }
10610 } else {
10611 if (EQSI (tmp_tmp, 0)) {
10612   {
10613     USI opval = GET_H_SPR (((UINT) 272));
10614     sim_queue_pc_write (current_cpu, opval);
10615     written |= (1 << 6);
10616     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10617   }
10618 }
10619 }
10620 }
10621 }
10622 }
10623
10624   abuf->written = written;
10625   return vpc;
10626 #undef FLD
10627 }
10628
10629 /* fcbnelr: fcbnelr$pack $FCCi_2,$ccond,$hint */
10630
10631 static SEM_PC
10632 SEM_FN_NAME (frvbf,fcbnelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10633 {
10634 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10635   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10636   int UNUSED written = 0;
10637   IADDR UNUSED pc = abuf->addr;
10638   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10639
10640 {
10641 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10642 {
10643   SI tmp_tmp;
10644   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10645   {
10646     USI opval = tmp_tmp;
10647     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10648     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10649   }
10650 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))))) {
10651 if (EQSI (FLD (f_ccond), 0)) {
10652 if (NESI (tmp_tmp, 0)) {
10653   {
10654     USI opval = GET_H_SPR (((UINT) 272));
10655     sim_queue_pc_write (current_cpu, opval);
10656     written |= (1 << 6);
10657     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10658   }
10659 }
10660 } else {
10661 if (EQSI (tmp_tmp, 0)) {
10662   {
10663     USI opval = GET_H_SPR (((UINT) 272));
10664     sim_queue_pc_write (current_cpu, opval);
10665     written |= (1 << 6);
10666     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10667   }
10668 }
10669 }
10670 }
10671 }
10672 }
10673
10674   abuf->written = written;
10675   return vpc;
10676 #undef FLD
10677 }
10678
10679 /* fcblglr: fcblglr$pack $FCCi_2,$ccond,$hint */
10680
10681 static SEM_PC
10682 SEM_FN_NAME (frvbf,fcblglr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10683 {
10684 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10685   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10686   int UNUSED written = 0;
10687   IADDR UNUSED pc = abuf->addr;
10688   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10689
10690 {
10691 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10692 {
10693   SI tmp_tmp;
10694   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10695   {
10696     USI opval = tmp_tmp;
10697     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10698     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10699   }
10700 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)))) {
10701 if (EQSI (FLD (f_ccond), 0)) {
10702 if (NESI (tmp_tmp, 0)) {
10703   {
10704     USI opval = GET_H_SPR (((UINT) 272));
10705     sim_queue_pc_write (current_cpu, opval);
10706     written |= (1 << 6);
10707     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10708   }
10709 }
10710 } else {
10711 if (EQSI (tmp_tmp, 0)) {
10712   {
10713     USI opval = GET_H_SPR (((UINT) 272));
10714     sim_queue_pc_write (current_cpu, opval);
10715     written |= (1 << 6);
10716     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10717   }
10718 }
10719 }
10720 }
10721 }
10722 }
10723
10724   abuf->written = written;
10725   return vpc;
10726 #undef FLD
10727 }
10728
10729 /* fcbuelr: fcbuelr$pack $FCCi_2,$ccond,$hint */
10730
10731 static SEM_PC
10732 SEM_FN_NAME (frvbf,fcbuelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10733 {
10734 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10735   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10736   int UNUSED written = 0;
10737   IADDR UNUSED pc = abuf->addr;
10738   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10739
10740 {
10741 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10742 {
10743   SI tmp_tmp;
10744   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10745   {
10746     USI opval = tmp_tmp;
10747     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10748     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10749   }
10750 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
10751 if (EQSI (FLD (f_ccond), 0)) {
10752 if (NESI (tmp_tmp, 0)) {
10753   {
10754     USI opval = GET_H_SPR (((UINT) 272));
10755     sim_queue_pc_write (current_cpu, opval);
10756     written |= (1 << 6);
10757     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10758   }
10759 }
10760 } else {
10761 if (EQSI (tmp_tmp, 0)) {
10762   {
10763     USI opval = GET_H_SPR (((UINT) 272));
10764     sim_queue_pc_write (current_cpu, opval);
10765     written |= (1 << 6);
10766     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10767   }
10768 }
10769 }
10770 }
10771 }
10772 }
10773
10774   abuf->written = written;
10775   return vpc;
10776 #undef FLD
10777 }
10778
10779 /* fcbullr: fcbullr$pack $FCCi_2,$ccond,$hint */
10780
10781 static SEM_PC
10782 SEM_FN_NAME (frvbf,fcbullr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10783 {
10784 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10785   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10786   int UNUSED written = 0;
10787   IADDR UNUSED pc = abuf->addr;
10788   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10789
10790 {
10791 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10792 {
10793   SI tmp_tmp;
10794   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10795   {
10796     USI opval = tmp_tmp;
10797     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10798     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10799   }
10800 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
10801 if (EQSI (FLD (f_ccond), 0)) {
10802 if (NESI (tmp_tmp, 0)) {
10803   {
10804     USI opval = GET_H_SPR (((UINT) 272));
10805     sim_queue_pc_write (current_cpu, opval);
10806     written |= (1 << 6);
10807     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10808   }
10809 }
10810 } else {
10811 if (EQSI (tmp_tmp, 0)) {
10812   {
10813     USI opval = GET_H_SPR (((UINT) 272));
10814     sim_queue_pc_write (current_cpu, opval);
10815     written |= (1 << 6);
10816     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10817   }
10818 }
10819 }
10820 }
10821 }
10822 }
10823
10824   abuf->written = written;
10825   return vpc;
10826 #undef FLD
10827 }
10828
10829 /* fcbgelr: fcbgelr$pack $FCCi_2,$ccond,$hint */
10830
10831 static SEM_PC
10832 SEM_FN_NAME (frvbf,fcbgelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10833 {
10834 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10835   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10836   int UNUSED written = 0;
10837   IADDR UNUSED pc = abuf->addr;
10838   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10839
10840 {
10841 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10842 {
10843   SI tmp_tmp;
10844   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10845   {
10846     USI opval = tmp_tmp;
10847     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10848     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10849   }
10850 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)))) {
10851 if (EQSI (FLD (f_ccond), 0)) {
10852 if (NESI (tmp_tmp, 0)) {
10853   {
10854     USI opval = GET_H_SPR (((UINT) 272));
10855     sim_queue_pc_write (current_cpu, opval);
10856     written |= (1 << 6);
10857     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10858   }
10859 }
10860 } else {
10861 if (EQSI (tmp_tmp, 0)) {
10862   {
10863     USI opval = GET_H_SPR (((UINT) 272));
10864     sim_queue_pc_write (current_cpu, opval);
10865     written |= (1 << 6);
10866     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10867   }
10868 }
10869 }
10870 }
10871 }
10872 }
10873
10874   abuf->written = written;
10875   return vpc;
10876 #undef FLD
10877 }
10878
10879 /* fcbltlr: fcbltlr$pack $FCCi_2,$ccond,$hint */
10880
10881 static SEM_PC
10882 SEM_FN_NAME (frvbf,fcbltlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10883 {
10884 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10885   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10886   int UNUSED written = 0;
10887   IADDR UNUSED pc = abuf->addr;
10888   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10889
10890 {
10891 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10892 {
10893   SI tmp_tmp;
10894   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10895   {
10896     USI opval = tmp_tmp;
10897     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10898     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10899   }
10900 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2))) {
10901 if (EQSI (FLD (f_ccond), 0)) {
10902 if (NESI (tmp_tmp, 0)) {
10903   {
10904     USI opval = GET_H_SPR (((UINT) 272));
10905     sim_queue_pc_write (current_cpu, opval);
10906     written |= (1 << 6);
10907     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10908   }
10909 }
10910 } else {
10911 if (EQSI (tmp_tmp, 0)) {
10912   {
10913     USI opval = GET_H_SPR (((UINT) 272));
10914     sim_queue_pc_write (current_cpu, opval);
10915     written |= (1 << 6);
10916     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10917   }
10918 }
10919 }
10920 }
10921 }
10922 }
10923
10924   abuf->written = written;
10925   return vpc;
10926 #undef FLD
10927 }
10928
10929 /* fcbugelr: fcbugelr$pack $FCCi_2,$ccond,$hint */
10930
10931 static SEM_PC
10932 SEM_FN_NAME (frvbf,fcbugelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10933 {
10934 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10935   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10936   int UNUSED written = 0;
10937   IADDR UNUSED pc = abuf->addr;
10938   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10939
10940 {
10941 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10942 {
10943   SI tmp_tmp;
10944   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10945   {
10946     USI opval = tmp_tmp;
10947     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10948     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10949   }
10950 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))))) {
10951 if (EQSI (FLD (f_ccond), 0)) {
10952 if (NESI (tmp_tmp, 0)) {
10953   {
10954     USI opval = GET_H_SPR (((UINT) 272));
10955     sim_queue_pc_write (current_cpu, opval);
10956     written |= (1 << 6);
10957     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10958   }
10959 }
10960 } else {
10961 if (EQSI (tmp_tmp, 0)) {
10962   {
10963     USI opval = GET_H_SPR (((UINT) 272));
10964     sim_queue_pc_write (current_cpu, opval);
10965     written |= (1 << 6);
10966     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10967   }
10968 }
10969 }
10970 }
10971 }
10972 }
10973
10974   abuf->written = written;
10975   return vpc;
10976 #undef FLD
10977 }
10978
10979 /* fcbuglr: fcbuglr$pack $FCCi_2,$ccond,$hint */
10980
10981 static SEM_PC
10982 SEM_FN_NAME (frvbf,fcbuglr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10983 {
10984 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10985   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10986   int UNUSED written = 0;
10987   IADDR UNUSED pc = abuf->addr;
10988   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10989
10990 {
10991 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10992 {
10993   SI tmp_tmp;
10994   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10995   {
10996     USI opval = tmp_tmp;
10997     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10998     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10999   }
11000 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
11001 if (EQSI (FLD (f_ccond), 0)) {
11002 if (NESI (tmp_tmp, 0)) {
11003   {
11004     USI opval = GET_H_SPR (((UINT) 272));
11005     sim_queue_pc_write (current_cpu, opval);
11006     written |= (1 << 6);
11007     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11008   }
11009 }
11010 } else {
11011 if (EQSI (tmp_tmp, 0)) {
11012   {
11013     USI opval = GET_H_SPR (((UINT) 272));
11014     sim_queue_pc_write (current_cpu, opval);
11015     written |= (1 << 6);
11016     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11017   }
11018 }
11019 }
11020 }
11021 }
11022 }
11023
11024   abuf->written = written;
11025   return vpc;
11026 #undef FLD
11027 }
11028
11029 /* fcblelr: fcblelr$pack $FCCi_2,$ccond,$hint */
11030
11031 static SEM_PC
11032 SEM_FN_NAME (frvbf,fcblelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11033 {
11034 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
11035   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11036   int UNUSED written = 0;
11037   IADDR UNUSED pc = abuf->addr;
11038   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11039
11040 {
11041 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
11042 {
11043   SI tmp_tmp;
11044   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
11045   {
11046     USI opval = tmp_tmp;
11047     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
11048     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
11049   }
11050 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)))) {
11051 if (EQSI (FLD (f_ccond), 0)) {
11052 if (NESI (tmp_tmp, 0)) {
11053   {
11054     USI opval = GET_H_SPR (((UINT) 272));
11055     sim_queue_pc_write (current_cpu, opval);
11056     written |= (1 << 6);
11057     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11058   }
11059 }
11060 } else {
11061 if (EQSI (tmp_tmp, 0)) {
11062   {
11063     USI opval = GET_H_SPR (((UINT) 272));
11064     sim_queue_pc_write (current_cpu, opval);
11065     written |= (1 << 6);
11066     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11067   }
11068 }
11069 }
11070 }
11071 }
11072 }
11073
11074   abuf->written = written;
11075   return vpc;
11076 #undef FLD
11077 }
11078
11079 /* fcbgtlr: fcbgtlr$pack $FCCi_2,$ccond,$hint */
11080
11081 static SEM_PC
11082 SEM_FN_NAME (frvbf,fcbgtlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11083 {
11084 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
11085   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11086   int UNUSED written = 0;
11087   IADDR UNUSED pc = abuf->addr;
11088   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11089
11090 {
11091 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
11092 {
11093   SI tmp_tmp;
11094   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
11095   {
11096     USI opval = tmp_tmp;
11097     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
11098     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
11099   }
11100 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1))) {
11101 if (EQSI (FLD (f_ccond), 0)) {
11102 if (NESI (tmp_tmp, 0)) {
11103   {
11104     USI opval = GET_H_SPR (((UINT) 272));
11105     sim_queue_pc_write (current_cpu, opval);
11106     written |= (1 << 6);
11107     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11108   }
11109 }
11110 } else {
11111 if (EQSI (tmp_tmp, 0)) {
11112   {
11113     USI opval = GET_H_SPR (((UINT) 272));
11114     sim_queue_pc_write (current_cpu, opval);
11115     written |= (1 << 6);
11116     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11117   }
11118 }
11119 }
11120 }
11121 }
11122 }
11123
11124   abuf->written = written;
11125   return vpc;
11126 #undef FLD
11127 }
11128
11129 /* fcbulelr: fcbulelr$pack $FCCi_2,$ccond,$hint */
11130
11131 static SEM_PC
11132 SEM_FN_NAME (frvbf,fcbulelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11133 {
11134 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
11135   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11136   int UNUSED written = 0;
11137   IADDR UNUSED pc = abuf->addr;
11138   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11139
11140 {
11141 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
11142 {
11143   SI tmp_tmp;
11144   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
11145   {
11146     USI opval = tmp_tmp;
11147     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
11148     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
11149   }
11150 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))))) {
11151 if (EQSI (FLD (f_ccond), 0)) {
11152 if (NESI (tmp_tmp, 0)) {
11153   {
11154     USI opval = GET_H_SPR (((UINT) 272));
11155     sim_queue_pc_write (current_cpu, opval);
11156     written |= (1 << 6);
11157     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11158   }
11159 }
11160 } else {
11161 if (EQSI (tmp_tmp, 0)) {
11162   {
11163     USI opval = GET_H_SPR (((UINT) 272));
11164     sim_queue_pc_write (current_cpu, opval);
11165     written |= (1 << 6);
11166     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11167   }
11168 }
11169 }
11170 }
11171 }
11172 }
11173
11174   abuf->written = written;
11175   return vpc;
11176 #undef FLD
11177 }
11178
11179 /* fcbulr: fcbulr$pack $FCCi_2,$ccond,$hint */
11180
11181 static SEM_PC
11182 SEM_FN_NAME (frvbf,fcbulr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11183 {
11184 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
11185   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11186   int UNUSED written = 0;
11187   IADDR UNUSED pc = abuf->addr;
11188   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11189
11190 {
11191 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
11192 {
11193   SI tmp_tmp;
11194   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
11195   {
11196     USI opval = tmp_tmp;
11197     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
11198     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
11199   }
11200 if (TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1))) {
11201 if (EQSI (FLD (f_ccond), 0)) {
11202 if (NESI (tmp_tmp, 0)) {
11203   {
11204     USI opval = GET_H_SPR (((UINT) 272));
11205     sim_queue_pc_write (current_cpu, opval);
11206     written |= (1 << 6);
11207     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11208   }
11209 }
11210 } else {
11211 if (EQSI (tmp_tmp, 0)) {
11212   {
11213     USI opval = GET_H_SPR (((UINT) 272));
11214     sim_queue_pc_write (current_cpu, opval);
11215     written |= (1 << 6);
11216     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11217   }
11218 }
11219 }
11220 }
11221 }
11222 }
11223
11224   abuf->written = written;
11225   return vpc;
11226 #undef FLD
11227 }
11228
11229 /* fcbolr: fcbolr$pack $FCCi_2,$ccond,$hint */
11230
11231 static SEM_PC
11232 SEM_FN_NAME (frvbf,fcbolr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11233 {
11234 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
11235   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11236   int UNUSED written = 0;
11237   IADDR UNUSED pc = abuf->addr;
11238   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11239
11240 {
11241 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
11242 {
11243   SI tmp_tmp;
11244   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
11245   {
11246     USI opval = tmp_tmp;
11247     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
11248     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
11249   }
11250 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))))) {
11251 if (EQSI (FLD (f_ccond), 0)) {
11252 if (NESI (tmp_tmp, 0)) {
11253   {
11254     USI opval = GET_H_SPR (((UINT) 272));
11255     sim_queue_pc_write (current_cpu, opval);
11256     written |= (1 << 6);
11257     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11258   }
11259 }
11260 } else {
11261 if (EQSI (tmp_tmp, 0)) {
11262   {
11263     USI opval = GET_H_SPR (((UINT) 272));
11264     sim_queue_pc_write (current_cpu, opval);
11265     written |= (1 << 6);
11266     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11267   }
11268 }
11269 }
11270 }
11271 }
11272 }
11273
11274   abuf->written = written;
11275   return vpc;
11276 #undef FLD
11277 }
11278
11279 /* jmpl: jmpl$pack @($GRi,$GRj) */
11280
11281 static SEM_PC
11282 SEM_FN_NAME (frvbf,jmpl) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11283 {
11284 #define FLD(f) abuf->fields.sfmt_cjmpl.f
11285   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11286   int UNUSED written = 0;
11287   IADDR UNUSED pc = abuf->addr;
11288   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11289
11290 {
11291 if (EQSI (FLD (f_LI), 1)) {
11292 frvbf_set_write_next_vliw_addr_to_LR (current_cpu, 1);
11293 }
11294   {
11295     USI opval = ANDSI (ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), 0xfffffffc);
11296     sim_queue_pc_write (current_cpu, opval);
11297     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11298   }
11299 frvbf_model_branch (current_cpu, pc, 2);
11300 }
11301
11302   return vpc;
11303 #undef FLD
11304 }
11305
11306 /* calll: calll$pack @($GRi,$GRj) */
11307
11308 static SEM_PC
11309 SEM_FN_NAME (frvbf,calll) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11310 {
11311 #define FLD(f) abuf->fields.sfmt_cjmpl.f
11312   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11313   int UNUSED written = 0;
11314   IADDR UNUSED pc = abuf->addr;
11315   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11316
11317 {
11318 if (EQSI (FLD (f_LI), 1)) {
11319 frvbf_set_write_next_vliw_addr_to_LR (current_cpu, 1);
11320 }
11321   {
11322     USI opval = ANDSI (ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), 0xfffffffc);
11323     sim_queue_pc_write (current_cpu, opval);
11324     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11325   }
11326 frvbf_model_branch (current_cpu, pc, 2);
11327 }
11328
11329   return vpc;
11330 #undef FLD
11331 }
11332
11333 /* jmpil: jmpil$pack @($GRi,$s12) */
11334
11335 static SEM_PC
11336 SEM_FN_NAME (frvbf,jmpil) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11337 {
11338 #define FLD(f) abuf->fields.sfmt_jmpil.f
11339   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11340   int UNUSED written = 0;
11341   IADDR UNUSED pc = abuf->addr;
11342   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11343
11344 {
11345 if (EQSI (FLD (f_LI), 1)) {
11346 frvbf_set_write_next_vliw_addr_to_LR (current_cpu, 1);
11347 }
11348   {
11349     USI opval = ANDSI (ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)), 0xfffffffc);
11350     sim_queue_pc_write (current_cpu, opval);
11351     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11352   }
11353 frvbf_model_branch (current_cpu, pc, 2);
11354 }
11355
11356   return vpc;
11357 #undef FLD
11358 }
11359
11360 /* callil: callil$pack @($GRi,$s12) */
11361
11362 static SEM_PC
11363 SEM_FN_NAME (frvbf,callil) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11364 {
11365 #define FLD(f) abuf->fields.sfmt_jmpil.f
11366   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11367   int UNUSED written = 0;
11368   IADDR UNUSED pc = abuf->addr;
11369   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11370
11371 {
11372 if (EQSI (FLD (f_LI), 1)) {
11373 frvbf_set_write_next_vliw_addr_to_LR (current_cpu, 1);
11374 }
11375   {
11376     USI opval = ANDSI (ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)), 0xfffffffc);
11377     sim_queue_pc_write (current_cpu, opval);
11378     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11379   }
11380 frvbf_model_branch (current_cpu, pc, 2);
11381 }
11382
11383   return vpc;
11384 #undef FLD
11385 }
11386
11387 /* call: call$pack $label24 */
11388
11389 static SEM_PC
11390 SEM_FN_NAME (frvbf,call) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11391 {
11392 #define FLD(f) abuf->fields.sfmt_call.f
11393   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11394   int UNUSED written = 0;
11395   IADDR UNUSED pc = abuf->addr;
11396   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11397
11398 {
11399 frvbf_set_write_next_vliw_addr_to_LR (current_cpu, 1);
11400   {
11401     USI opval = FLD (i_label24);
11402     sim_queue_pc_write (current_cpu, opval);
11403     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11404   }
11405 frvbf_model_branch (current_cpu, pc, 2);
11406 }
11407
11408   return vpc;
11409 #undef FLD
11410 }
11411
11412 /* rett: rett$pack $debug */
11413
11414 static SEM_PC
11415 SEM_FN_NAME (frvbf,rett) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11416 {
11417 #define FLD(f) abuf->fields.sfmt_rett.f
11418   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11419   int UNUSED written = 0;
11420   IADDR UNUSED pc = abuf->addr;
11421   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11422
11423 {
11424   {
11425     USI opval = frv_rett (current_cpu, pc, FLD (f_debug));
11426     sim_queue_pc_write (current_cpu, opval);
11427     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11428   }
11429 frvbf_model_branch (current_cpu, pc, 2);
11430 }
11431
11432   return vpc;
11433 #undef FLD
11434 }
11435
11436 /* rei: rei$pack $eir */
11437
11438 static SEM_PC
11439 SEM_FN_NAME (frvbf,rei) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11440 {
11441 #define FLD(f) abuf->fields.fmt_empty.f
11442   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11443   int UNUSED written = 0;
11444   IADDR UNUSED pc = abuf->addr;
11445   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11446
11447 ((void) 0); /*nop*/
11448
11449   return vpc;
11450 #undef FLD
11451 }
11452
11453 /* tra: tra$pack $GRi,$GRj */
11454
11455 static SEM_PC
11456 SEM_FN_NAME (frvbf,tra) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11457 {
11458 #define FLD(f) abuf->fields.sfmt_ftne.f
11459   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11460   int UNUSED written = 0;
11461   IADDR UNUSED pc = abuf->addr;
11462   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11463
11464 {
11465 ; /*clobber*/
11466 ; /*clobber*/
11467 ; /*clobber*/
11468 ; /*clobber*/
11469 if (NEBI (CPU (h_psr_esr), 0)) {
11470 {
11471 ; /*clobber*/
11472 ; /*clobber*/
11473 ; /*clobber*/
11474 ; /*clobber*/
11475 }
11476 }
11477 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11478 }
11479
11480   abuf->written = written;
11481   return vpc;
11482 #undef FLD
11483 }
11484
11485 /* tno: tno$pack */
11486
11487 static SEM_PC
11488 SEM_FN_NAME (frvbf,tno) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11489 {
11490 #define FLD(f) abuf->fields.fmt_empty.f
11491   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11492   int UNUSED written = 0;
11493   IADDR UNUSED pc = abuf->addr;
11494   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11495
11496 ((void) 0); /*nop*/
11497
11498   return vpc;
11499 #undef FLD
11500 }
11501
11502 /* teq: teq$pack $ICCi_2,$GRi,$GRj */
11503
11504 static SEM_PC
11505 SEM_FN_NAME (frvbf,teq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11506 {
11507 #define FLD(f) abuf->fields.sfmt_teq.f
11508   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11509   int UNUSED written = 0;
11510   IADDR UNUSED pc = abuf->addr;
11511   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11512
11513 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2))) {
11514 {
11515 ; /*clobber*/
11516 ; /*clobber*/
11517 ; /*clobber*/
11518 ; /*clobber*/
11519 if (NEBI (CPU (h_psr_esr), 0)) {
11520 {
11521 ; /*clobber*/
11522 ; /*clobber*/
11523 ; /*clobber*/
11524 ; /*clobber*/
11525 }
11526 }
11527 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11528 }
11529 }
11530
11531   abuf->written = written;
11532   return vpc;
11533 #undef FLD
11534 }
11535
11536 /* tne: tne$pack $ICCi_2,$GRi,$GRj */
11537
11538 static SEM_PC
11539 SEM_FN_NAME (frvbf,tne) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11540 {
11541 #define FLD(f) abuf->fields.sfmt_teq.f
11542   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11543   int UNUSED written = 0;
11544   IADDR UNUSED pc = abuf->addr;
11545   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11546
11547 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)))) {
11548 {
11549 ; /*clobber*/
11550 ; /*clobber*/
11551 ; /*clobber*/
11552 ; /*clobber*/
11553 if (NEBI (CPU (h_psr_esr), 0)) {
11554 {
11555 ; /*clobber*/
11556 ; /*clobber*/
11557 ; /*clobber*/
11558 ; /*clobber*/
11559 }
11560 }
11561 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11562 }
11563 }
11564
11565   abuf->written = written;
11566   return vpc;
11567 #undef FLD
11568 }
11569
11570 /* tle: tle$pack $ICCi_2,$GRi,$GRj */
11571
11572 static SEM_PC
11573 SEM_FN_NAME (frvbf,tle) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11574 {
11575 #define FLD(f) abuf->fields.sfmt_teq.f
11576   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11577   int UNUSED written = 0;
11578   IADDR UNUSED pc = abuf->addr;
11579   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11580
11581 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))))) {
11582 {
11583 ; /*clobber*/
11584 ; /*clobber*/
11585 ; /*clobber*/
11586 ; /*clobber*/
11587 if (NEBI (CPU (h_psr_esr), 0)) {
11588 {
11589 ; /*clobber*/
11590 ; /*clobber*/
11591 ; /*clobber*/
11592 ; /*clobber*/
11593 }
11594 }
11595 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11596 }
11597 }
11598
11599   abuf->written = written;
11600   return vpc;
11601 #undef FLD
11602 }
11603
11604 /* tgt: tgt$pack $ICCi_2,$GRi,$GRj */
11605
11606 static SEM_PC
11607 SEM_FN_NAME (frvbf,tgt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11608 {
11609 #define FLD(f) abuf->fields.sfmt_teq.f
11610   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11611   int UNUSED written = 0;
11612   IADDR UNUSED pc = abuf->addr;
11613   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11614
11615 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)))))) {
11616 {
11617 ; /*clobber*/
11618 ; /*clobber*/
11619 ; /*clobber*/
11620 ; /*clobber*/
11621 if (NEBI (CPU (h_psr_esr), 0)) {
11622 {
11623 ; /*clobber*/
11624 ; /*clobber*/
11625 ; /*clobber*/
11626 ; /*clobber*/
11627 }
11628 }
11629 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11630 }
11631 }
11632
11633   abuf->written = written;
11634   return vpc;
11635 #undef FLD
11636 }
11637
11638 /* tlt: tlt$pack $ICCi_2,$GRi,$GRj */
11639
11640 static SEM_PC
11641 SEM_FN_NAME (frvbf,tlt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11642 {
11643 #define FLD(f) abuf->fields.sfmt_teq.f
11644   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11645   int UNUSED written = 0;
11646   IADDR UNUSED pc = abuf->addr;
11647   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11648
11649 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)))) {
11650 {
11651 ; /*clobber*/
11652 ; /*clobber*/
11653 ; /*clobber*/
11654 ; /*clobber*/
11655 if (NEBI (CPU (h_psr_esr), 0)) {
11656 {
11657 ; /*clobber*/
11658 ; /*clobber*/
11659 ; /*clobber*/
11660 ; /*clobber*/
11661 }
11662 }
11663 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11664 }
11665 }
11666
11667   abuf->written = written;
11668   return vpc;
11669 #undef FLD
11670 }
11671
11672 /* tge: tge$pack $ICCi_2,$GRi,$GRj */
11673
11674 static SEM_PC
11675 SEM_FN_NAME (frvbf,tge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11676 {
11677 #define FLD(f) abuf->fields.sfmt_teq.f
11678   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11679   int UNUSED written = 0;
11680   IADDR UNUSED pc = abuf->addr;
11681   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11682
11683 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))))) {
11684 {
11685 ; /*clobber*/
11686 ; /*clobber*/
11687 ; /*clobber*/
11688 ; /*clobber*/
11689 if (NEBI (CPU (h_psr_esr), 0)) {
11690 {
11691 ; /*clobber*/
11692 ; /*clobber*/
11693 ; /*clobber*/
11694 ; /*clobber*/
11695 }
11696 }
11697 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11698 }
11699 }
11700
11701   abuf->written = written;
11702   return vpc;
11703 #undef FLD
11704 }
11705
11706 /* tls: tls$pack $ICCi_2,$GRi,$GRj */
11707
11708 static SEM_PC
11709 SEM_FN_NAME (frvbf,tls) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11710 {
11711 #define FLD(f) abuf->fields.sfmt_teq.f
11712   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11713   int UNUSED written = 0;
11714   IADDR UNUSED pc = abuf->addr;
11715   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11716
11717 if (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)))) {
11718 {
11719 ; /*clobber*/
11720 ; /*clobber*/
11721 ; /*clobber*/
11722 ; /*clobber*/
11723 if (NEBI (CPU (h_psr_esr), 0)) {
11724 {
11725 ; /*clobber*/
11726 ; /*clobber*/
11727 ; /*clobber*/
11728 ; /*clobber*/
11729 }
11730 }
11731 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11732 }
11733 }
11734
11735   abuf->written = written;
11736   return vpc;
11737 #undef FLD
11738 }
11739
11740 /* thi: thi$pack $ICCi_2,$GRi,$GRj */
11741
11742 static SEM_PC
11743 SEM_FN_NAME (frvbf,thi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11744 {
11745 #define FLD(f) abuf->fields.sfmt_teq.f
11746   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11747   int UNUSED written = 0;
11748   IADDR UNUSED pc = abuf->addr;
11749   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11750
11751 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))))) {
11752 {
11753 ; /*clobber*/
11754 ; /*clobber*/
11755 ; /*clobber*/
11756 ; /*clobber*/
11757 if (NEBI (CPU (h_psr_esr), 0)) {
11758 {
11759 ; /*clobber*/
11760 ; /*clobber*/
11761 ; /*clobber*/
11762 ; /*clobber*/
11763 }
11764 }
11765 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11766 }
11767 }
11768
11769   abuf->written = written;
11770   return vpc;
11771 #undef FLD
11772 }
11773
11774 /* tc: tc$pack $ICCi_2,$GRi,$GRj */
11775
11776 static SEM_PC
11777 SEM_FN_NAME (frvbf,tc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11778 {
11779 #define FLD(f) abuf->fields.sfmt_teq.f
11780   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11781   int UNUSED written = 0;
11782   IADDR UNUSED pc = abuf->addr;
11783   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11784
11785 if (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1))) {
11786 {
11787 ; /*clobber*/
11788 ; /*clobber*/
11789 ; /*clobber*/
11790 ; /*clobber*/
11791 if (NEBI (CPU (h_psr_esr), 0)) {
11792 {
11793 ; /*clobber*/
11794 ; /*clobber*/
11795 ; /*clobber*/
11796 ; /*clobber*/
11797 }
11798 }
11799 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11800 }
11801 }
11802
11803   abuf->written = written;
11804   return vpc;
11805 #undef FLD
11806 }
11807
11808 /* tnc: tnc$pack $ICCi_2,$GRi,$GRj */
11809
11810 static SEM_PC
11811 SEM_FN_NAME (frvbf,tnc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11812 {
11813 #define FLD(f) abuf->fields.sfmt_teq.f
11814   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11815   int UNUSED written = 0;
11816   IADDR UNUSED pc = abuf->addr;
11817   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11818
11819 if (NOTBI (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)))) {
11820 {
11821 ; /*clobber*/
11822 ; /*clobber*/
11823 ; /*clobber*/
11824 ; /*clobber*/
11825 if (NEBI (CPU (h_psr_esr), 0)) {
11826 {
11827 ; /*clobber*/
11828 ; /*clobber*/
11829 ; /*clobber*/
11830 ; /*clobber*/
11831 }
11832 }
11833 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11834 }
11835 }
11836
11837   abuf->written = written;
11838   return vpc;
11839 #undef FLD
11840 }
11841
11842 /* tn: tn$pack $ICCi_2,$GRi,$GRj */
11843
11844 static SEM_PC
11845 SEM_FN_NAME (frvbf,tn) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11846 {
11847 #define FLD(f) abuf->fields.sfmt_teq.f
11848   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11849   int UNUSED written = 0;
11850   IADDR UNUSED pc = abuf->addr;
11851   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11852
11853 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3))) {
11854 {
11855 ; /*clobber*/
11856 ; /*clobber*/
11857 ; /*clobber*/
11858 ; /*clobber*/
11859 if (NEBI (CPU (h_psr_esr), 0)) {
11860 {
11861 ; /*clobber*/
11862 ; /*clobber*/
11863 ; /*clobber*/
11864 ; /*clobber*/
11865 }
11866 }
11867 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11868 }
11869 }
11870
11871   abuf->written = written;
11872   return vpc;
11873 #undef FLD
11874 }
11875
11876 /* tp: tp$pack $ICCi_2,$GRi,$GRj */
11877
11878 static SEM_PC
11879 SEM_FN_NAME (frvbf,tp) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11880 {
11881 #define FLD(f) abuf->fields.sfmt_teq.f
11882   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11883   int UNUSED written = 0;
11884   IADDR UNUSED pc = abuf->addr;
11885   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11886
11887 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3)))) {
11888 {
11889 ; /*clobber*/
11890 ; /*clobber*/
11891 ; /*clobber*/
11892 ; /*clobber*/
11893 if (NEBI (CPU (h_psr_esr), 0)) {
11894 {
11895 ; /*clobber*/
11896 ; /*clobber*/
11897 ; /*clobber*/
11898 ; /*clobber*/
11899 }
11900 }
11901 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11902 }
11903 }
11904
11905   abuf->written = written;
11906   return vpc;
11907 #undef FLD
11908 }
11909
11910 /* tv: tv$pack $ICCi_2,$GRi,$GRj */
11911
11912 static SEM_PC
11913 SEM_FN_NAME (frvbf,tv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11914 {
11915 #define FLD(f) abuf->fields.sfmt_teq.f
11916   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11917   int UNUSED written = 0;
11918   IADDR UNUSED pc = abuf->addr;
11919   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11920
11921 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1))) {
11922 {
11923 ; /*clobber*/
11924 ; /*clobber*/
11925 ; /*clobber*/
11926 ; /*clobber*/
11927 if (NEBI (CPU (h_psr_esr), 0)) {
11928 {
11929 ; /*clobber*/
11930 ; /*clobber*/
11931 ; /*clobber*/
11932 ; /*clobber*/
11933 }
11934 }
11935 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11936 }
11937 }
11938
11939   abuf->written = written;
11940   return vpc;
11941 #undef FLD
11942 }
11943
11944 /* tnv: tnv$pack $ICCi_2,$GRi,$GRj */
11945
11946 static SEM_PC
11947 SEM_FN_NAME (frvbf,tnv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11948 {
11949 #define FLD(f) abuf->fields.sfmt_teq.f
11950   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11951   int UNUSED written = 0;
11952   IADDR UNUSED pc = abuf->addr;
11953   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11954
11955 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1)))) {
11956 {
11957 ; /*clobber*/
11958 ; /*clobber*/
11959 ; /*clobber*/
11960 ; /*clobber*/
11961 if (NEBI (CPU (h_psr_esr), 0)) {
11962 {
11963 ; /*clobber*/
11964 ; /*clobber*/
11965 ; /*clobber*/
11966 ; /*clobber*/
11967 }
11968 }
11969 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11970 }
11971 }
11972
11973   abuf->written = written;
11974   return vpc;
11975 #undef FLD
11976 }
11977
11978 /* ftra: ftra$pack $GRi,$GRj */
11979
11980 static SEM_PC
11981 SEM_FN_NAME (frvbf,ftra) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11982 {
11983 #define FLD(f) abuf->fields.sfmt_ftne.f
11984   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11985   int UNUSED written = 0;
11986   IADDR UNUSED pc = abuf->addr;
11987   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11988
11989 {
11990 ; /*clobber*/
11991 ; /*clobber*/
11992 ; /*clobber*/
11993 ; /*clobber*/
11994 if (NEBI (CPU (h_psr_esr), 0)) {
11995 {
11996 ; /*clobber*/
11997 ; /*clobber*/
11998 ; /*clobber*/
11999 ; /*clobber*/
12000 }
12001 }
12002 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12003 }
12004
12005   abuf->written = written;
12006   return vpc;
12007 #undef FLD
12008 }
12009
12010 /* ftno: ftno$pack */
12011
12012 static SEM_PC
12013 SEM_FN_NAME (frvbf,ftno) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12014 {
12015 #define FLD(f) abuf->fields.fmt_empty.f
12016   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12017   int UNUSED written = 0;
12018   IADDR UNUSED pc = abuf->addr;
12019   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12020
12021 ((void) 0); /*nop*/
12022
12023   return vpc;
12024 #undef FLD
12025 }
12026
12027 /* ftne: ftne$pack $FCCi_2,$GRi,$GRj */
12028
12029 static SEM_PC
12030 SEM_FN_NAME (frvbf,ftne) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12031 {
12032 #define FLD(f) abuf->fields.sfmt_ftne.f
12033   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12034   int UNUSED written = 0;
12035   IADDR UNUSED pc = abuf->addr;
12036   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12037
12038 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))))) {
12039 {
12040 ; /*clobber*/
12041 ; /*clobber*/
12042 ; /*clobber*/
12043 ; /*clobber*/
12044 if (NEBI (CPU (h_psr_esr), 0)) {
12045 {
12046 ; /*clobber*/
12047 ; /*clobber*/
12048 ; /*clobber*/
12049 ; /*clobber*/
12050 }
12051 }
12052 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12053 }
12054 }
12055
12056   abuf->written = written;
12057   return vpc;
12058 #undef FLD
12059 }
12060
12061 /* fteq: fteq$pack $FCCi_2,$GRi,$GRj */
12062
12063 static SEM_PC
12064 SEM_FN_NAME (frvbf,fteq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12065 {
12066 #define FLD(f) abuf->fields.sfmt_ftne.f
12067   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12068   int UNUSED written = 0;
12069   IADDR UNUSED pc = abuf->addr;
12070   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12071
12072 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3))) {
12073 {
12074 ; /*clobber*/
12075 ; /*clobber*/
12076 ; /*clobber*/
12077 ; /*clobber*/
12078 if (NEBI (CPU (h_psr_esr), 0)) {
12079 {
12080 ; /*clobber*/
12081 ; /*clobber*/
12082 ; /*clobber*/
12083 ; /*clobber*/
12084 }
12085 }
12086 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12087 }
12088 }
12089
12090   abuf->written = written;
12091   return vpc;
12092 #undef FLD
12093 }
12094
12095 /* ftlg: ftlg$pack $FCCi_2,$GRi,$GRj */
12096
12097 static SEM_PC
12098 SEM_FN_NAME (frvbf,ftlg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12099 {
12100 #define FLD(f) abuf->fields.sfmt_ftne.f
12101   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12102   int UNUSED written = 0;
12103   IADDR UNUSED pc = abuf->addr;
12104   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12105
12106 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)))) {
12107 {
12108 ; /*clobber*/
12109 ; /*clobber*/
12110 ; /*clobber*/
12111 ; /*clobber*/
12112 if (NEBI (CPU (h_psr_esr), 0)) {
12113 {
12114 ; /*clobber*/
12115 ; /*clobber*/
12116 ; /*clobber*/
12117 ; /*clobber*/
12118 }
12119 }
12120 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12121 }
12122 }
12123
12124   abuf->written = written;
12125   return vpc;
12126 #undef FLD
12127 }
12128
12129 /* ftue: ftue$pack $FCCi_2,$GRi,$GRj */
12130
12131 static SEM_PC
12132 SEM_FN_NAME (frvbf,ftue) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12133 {
12134 #define FLD(f) abuf->fields.sfmt_ftne.f
12135   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12136   int UNUSED written = 0;
12137   IADDR UNUSED pc = abuf->addr;
12138   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12139
12140 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
12141 {
12142 ; /*clobber*/
12143 ; /*clobber*/
12144 ; /*clobber*/
12145 ; /*clobber*/
12146 if (NEBI (CPU (h_psr_esr), 0)) {
12147 {
12148 ; /*clobber*/
12149 ; /*clobber*/
12150 ; /*clobber*/
12151 ; /*clobber*/
12152 }
12153 }
12154 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12155 }
12156 }
12157
12158   abuf->written = written;
12159   return vpc;
12160 #undef FLD
12161 }
12162
12163 /* ftul: ftul$pack $FCCi_2,$GRi,$GRj */
12164
12165 static SEM_PC
12166 SEM_FN_NAME (frvbf,ftul) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12167 {
12168 #define FLD(f) abuf->fields.sfmt_ftne.f
12169   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12170   int UNUSED written = 0;
12171   IADDR UNUSED pc = abuf->addr;
12172   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12173
12174 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
12175 {
12176 ; /*clobber*/
12177 ; /*clobber*/
12178 ; /*clobber*/
12179 ; /*clobber*/
12180 if (NEBI (CPU (h_psr_esr), 0)) {
12181 {
12182 ; /*clobber*/
12183 ; /*clobber*/
12184 ; /*clobber*/
12185 ; /*clobber*/
12186 }
12187 }
12188 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12189 }
12190 }
12191
12192   abuf->written = written;
12193   return vpc;
12194 #undef FLD
12195 }
12196
12197 /* ftge: ftge$pack $FCCi_2,$GRi,$GRj */
12198
12199 static SEM_PC
12200 SEM_FN_NAME (frvbf,ftge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12201 {
12202 #define FLD(f) abuf->fields.sfmt_ftne.f
12203   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12204   int UNUSED written = 0;
12205   IADDR UNUSED pc = abuf->addr;
12206   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12207
12208 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)))) {
12209 {
12210 ; /*clobber*/
12211 ; /*clobber*/
12212 ; /*clobber*/
12213 ; /*clobber*/
12214 if (NEBI (CPU (h_psr_esr), 0)) {
12215 {
12216 ; /*clobber*/
12217 ; /*clobber*/
12218 ; /*clobber*/
12219 ; /*clobber*/
12220 }
12221 }
12222 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12223 }
12224 }
12225
12226   abuf->written = written;
12227   return vpc;
12228 #undef FLD
12229 }
12230
12231 /* ftlt: ftlt$pack $FCCi_2,$GRi,$GRj */
12232
12233 static SEM_PC
12234 SEM_FN_NAME (frvbf,ftlt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12235 {
12236 #define FLD(f) abuf->fields.sfmt_ftne.f
12237   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12238   int UNUSED written = 0;
12239   IADDR UNUSED pc = abuf->addr;
12240   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12241
12242 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2))) {
12243 {
12244 ; /*clobber*/
12245 ; /*clobber*/
12246 ; /*clobber*/
12247 ; /*clobber*/
12248 if (NEBI (CPU (h_psr_esr), 0)) {
12249 {
12250 ; /*clobber*/
12251 ; /*clobber*/
12252 ; /*clobber*/
12253 ; /*clobber*/
12254 }
12255 }
12256 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12257 }
12258 }
12259
12260   abuf->written = written;
12261   return vpc;
12262 #undef FLD
12263 }
12264
12265 /* ftuge: ftuge$pack $FCCi_2,$GRi,$GRj */
12266
12267 static SEM_PC
12268 SEM_FN_NAME (frvbf,ftuge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12269 {
12270 #define FLD(f) abuf->fields.sfmt_ftne.f
12271   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12272   int UNUSED written = 0;
12273   IADDR UNUSED pc = abuf->addr;
12274   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12275
12276 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))))) {
12277 {
12278 ; /*clobber*/
12279 ; /*clobber*/
12280 ; /*clobber*/
12281 ; /*clobber*/
12282 if (NEBI (CPU (h_psr_esr), 0)) {
12283 {
12284 ; /*clobber*/
12285 ; /*clobber*/
12286 ; /*clobber*/
12287 ; /*clobber*/
12288 }
12289 }
12290 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12291 }
12292 }
12293
12294   abuf->written = written;
12295   return vpc;
12296 #undef FLD
12297 }
12298
12299 /* ftug: ftug$pack $FCCi_2,$GRi,$GRj */
12300
12301 static SEM_PC
12302 SEM_FN_NAME (frvbf,ftug) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12303 {
12304 #define FLD(f) abuf->fields.sfmt_ftne.f
12305   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12306   int UNUSED written = 0;
12307   IADDR UNUSED pc = abuf->addr;
12308   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12309
12310 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
12311 {
12312 ; /*clobber*/
12313 ; /*clobber*/
12314 ; /*clobber*/
12315 ; /*clobber*/
12316 if (NEBI (CPU (h_psr_esr), 0)) {
12317 {
12318 ; /*clobber*/
12319 ; /*clobber*/
12320 ; /*clobber*/
12321 ; /*clobber*/
12322 }
12323 }
12324 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12325 }
12326 }
12327
12328   abuf->written = written;
12329   return vpc;
12330 #undef FLD
12331 }
12332
12333 /* ftle: ftle$pack $FCCi_2,$GRi,$GRj */
12334
12335 static SEM_PC
12336 SEM_FN_NAME (frvbf,ftle) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12337 {
12338 #define FLD(f) abuf->fields.sfmt_ftne.f
12339   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12340   int UNUSED written = 0;
12341   IADDR UNUSED pc = abuf->addr;
12342   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12343
12344 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)))) {
12345 {
12346 ; /*clobber*/
12347 ; /*clobber*/
12348 ; /*clobber*/
12349 ; /*clobber*/
12350 if (NEBI (CPU (h_psr_esr), 0)) {
12351 {
12352 ; /*clobber*/
12353 ; /*clobber*/
12354 ; /*clobber*/
12355 ; /*clobber*/
12356 }
12357 }
12358 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12359 }
12360 }
12361
12362   abuf->written = written;
12363   return vpc;
12364 #undef FLD
12365 }
12366
12367 /* ftgt: ftgt$pack $FCCi_2,$GRi,$GRj */
12368
12369 static SEM_PC
12370 SEM_FN_NAME (frvbf,ftgt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12371 {
12372 #define FLD(f) abuf->fields.sfmt_ftne.f
12373   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12374   int UNUSED written = 0;
12375   IADDR UNUSED pc = abuf->addr;
12376   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12377
12378 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1))) {
12379 {
12380 ; /*clobber*/
12381 ; /*clobber*/
12382 ; /*clobber*/
12383 ; /*clobber*/
12384 if (NEBI (CPU (h_psr_esr), 0)) {
12385 {
12386 ; /*clobber*/
12387 ; /*clobber*/
12388 ; /*clobber*/
12389 ; /*clobber*/
12390 }
12391 }
12392 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12393 }
12394 }
12395
12396   abuf->written = written;
12397   return vpc;
12398 #undef FLD
12399 }
12400
12401 /* ftule: ftule$pack $FCCi_2,$GRi,$GRj */
12402
12403 static SEM_PC
12404 SEM_FN_NAME (frvbf,ftule) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12405 {
12406 #define FLD(f) abuf->fields.sfmt_ftne.f
12407   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12408   int UNUSED written = 0;
12409   IADDR UNUSED pc = abuf->addr;
12410   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12411
12412 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))))) {
12413 {
12414 ; /*clobber*/
12415 ; /*clobber*/
12416 ; /*clobber*/
12417 ; /*clobber*/
12418 if (NEBI (CPU (h_psr_esr), 0)) {
12419 {
12420 ; /*clobber*/
12421 ; /*clobber*/
12422 ; /*clobber*/
12423 ; /*clobber*/
12424 }
12425 }
12426 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12427 }
12428 }
12429
12430   abuf->written = written;
12431   return vpc;
12432 #undef FLD
12433 }
12434
12435 /* ftu: ftu$pack $FCCi_2,$GRi,$GRj */
12436
12437 static SEM_PC
12438 SEM_FN_NAME (frvbf,ftu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12439 {
12440 #define FLD(f) abuf->fields.sfmt_ftne.f
12441   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12442   int UNUSED written = 0;
12443   IADDR UNUSED pc = abuf->addr;
12444   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12445
12446 if (TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1))) {
12447 {
12448 ; /*clobber*/
12449 ; /*clobber*/
12450 ; /*clobber*/
12451 ; /*clobber*/
12452 if (NEBI (CPU (h_psr_esr), 0)) {
12453 {
12454 ; /*clobber*/
12455 ; /*clobber*/
12456 ; /*clobber*/
12457 ; /*clobber*/
12458 }
12459 }
12460 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12461 }
12462 }
12463
12464   abuf->written = written;
12465   return vpc;
12466 #undef FLD
12467 }
12468
12469 /* fto: fto$pack $FCCi_2,$GRi,$GRj */
12470
12471 static SEM_PC
12472 SEM_FN_NAME (frvbf,fto) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12473 {
12474 #define FLD(f) abuf->fields.sfmt_ftne.f
12475   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12476   int UNUSED written = 0;
12477   IADDR UNUSED pc = abuf->addr;
12478   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12479
12480 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))))) {
12481 {
12482 ; /*clobber*/
12483 ; /*clobber*/
12484 ; /*clobber*/
12485 ; /*clobber*/
12486 if (NEBI (CPU (h_psr_esr), 0)) {
12487 {
12488 ; /*clobber*/
12489 ; /*clobber*/
12490 ; /*clobber*/
12491 ; /*clobber*/
12492 }
12493 }
12494 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12495 }
12496 }
12497
12498   abuf->written = written;
12499   return vpc;
12500 #undef FLD
12501 }
12502
12503 /* tira: tira$pack $GRi,$s12 */
12504
12505 static SEM_PC
12506 SEM_FN_NAME (frvbf,tira) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12507 {
12508 #define FLD(f) abuf->fields.sfmt_ftine.f
12509   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12510   int UNUSED written = 0;
12511   IADDR UNUSED pc = abuf->addr;
12512   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12513
12514 {
12515 ; /*clobber*/
12516 ; /*clobber*/
12517 ; /*clobber*/
12518 ; /*clobber*/
12519 if (NEBI (CPU (h_psr_esr), 0)) {
12520 {
12521 ; /*clobber*/
12522 ; /*clobber*/
12523 ; /*clobber*/
12524 ; /*clobber*/
12525 }
12526 }
12527 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12528 }
12529
12530   abuf->written = written;
12531   return vpc;
12532 #undef FLD
12533 }
12534
12535 /* tino: tino$pack */
12536
12537 static SEM_PC
12538 SEM_FN_NAME (frvbf,tino) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12539 {
12540 #define FLD(f) abuf->fields.fmt_empty.f
12541   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12542   int UNUSED written = 0;
12543   IADDR UNUSED pc = abuf->addr;
12544   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12545
12546 ((void) 0); /*nop*/
12547
12548   return vpc;
12549 #undef FLD
12550 }
12551
12552 /* tieq: tieq$pack $ICCi_2,$GRi,$s12 */
12553
12554 static SEM_PC
12555 SEM_FN_NAME (frvbf,tieq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12556 {
12557 #define FLD(f) abuf->fields.sfmt_tieq.f
12558   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12559   int UNUSED written = 0;
12560   IADDR UNUSED pc = abuf->addr;
12561   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12562
12563 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2))) {
12564 {
12565 ; /*clobber*/
12566 ; /*clobber*/
12567 ; /*clobber*/
12568 ; /*clobber*/
12569 if (NEBI (CPU (h_psr_esr), 0)) {
12570 {
12571 ; /*clobber*/
12572 ; /*clobber*/
12573 ; /*clobber*/
12574 ; /*clobber*/
12575 }
12576 }
12577 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12578 }
12579 }
12580
12581   abuf->written = written;
12582   return vpc;
12583 #undef FLD
12584 }
12585
12586 /* tine: tine$pack $ICCi_2,$GRi,$s12 */
12587
12588 static SEM_PC
12589 SEM_FN_NAME (frvbf,tine) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12590 {
12591 #define FLD(f) abuf->fields.sfmt_tieq.f
12592   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12593   int UNUSED written = 0;
12594   IADDR UNUSED pc = abuf->addr;
12595   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12596
12597 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)))) {
12598 {
12599 ; /*clobber*/
12600 ; /*clobber*/
12601 ; /*clobber*/
12602 ; /*clobber*/
12603 if (NEBI (CPU (h_psr_esr), 0)) {
12604 {
12605 ; /*clobber*/
12606 ; /*clobber*/
12607 ; /*clobber*/
12608 ; /*clobber*/
12609 }
12610 }
12611 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12612 }
12613 }
12614
12615   abuf->written = written;
12616   return vpc;
12617 #undef FLD
12618 }
12619
12620 /* tile: tile$pack $ICCi_2,$GRi,$s12 */
12621
12622 static SEM_PC
12623 SEM_FN_NAME (frvbf,tile) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12624 {
12625 #define FLD(f) abuf->fields.sfmt_tieq.f
12626   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12627   int UNUSED written = 0;
12628   IADDR UNUSED pc = abuf->addr;
12629   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12630
12631 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))))) {
12632 {
12633 ; /*clobber*/
12634 ; /*clobber*/
12635 ; /*clobber*/
12636 ; /*clobber*/
12637 if (NEBI (CPU (h_psr_esr), 0)) {
12638 {
12639 ; /*clobber*/
12640 ; /*clobber*/
12641 ; /*clobber*/
12642 ; /*clobber*/
12643 }
12644 }
12645 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12646 }
12647 }
12648
12649   abuf->written = written;
12650   return vpc;
12651 #undef FLD
12652 }
12653
12654 /* tigt: tigt$pack $ICCi_2,$GRi,$s12 */
12655
12656 static SEM_PC
12657 SEM_FN_NAME (frvbf,tigt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12658 {
12659 #define FLD(f) abuf->fields.sfmt_tieq.f
12660   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12661   int UNUSED written = 0;
12662   IADDR UNUSED pc = abuf->addr;
12663   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12664
12665 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)))))) {
12666 {
12667 ; /*clobber*/
12668 ; /*clobber*/
12669 ; /*clobber*/
12670 ; /*clobber*/
12671 if (NEBI (CPU (h_psr_esr), 0)) {
12672 {
12673 ; /*clobber*/
12674 ; /*clobber*/
12675 ; /*clobber*/
12676 ; /*clobber*/
12677 }
12678 }
12679 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12680 }
12681 }
12682
12683   abuf->written = written;
12684   return vpc;
12685 #undef FLD
12686 }
12687
12688 /* tilt: tilt$pack $ICCi_2,$GRi,$s12 */
12689
12690 static SEM_PC
12691 SEM_FN_NAME (frvbf,tilt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12692 {
12693 #define FLD(f) abuf->fields.sfmt_tieq.f
12694   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12695   int UNUSED written = 0;
12696   IADDR UNUSED pc = abuf->addr;
12697   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12698
12699 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)))) {
12700 {
12701 ; /*clobber*/
12702 ; /*clobber*/
12703 ; /*clobber*/
12704 ; /*clobber*/
12705 if (NEBI (CPU (h_psr_esr), 0)) {
12706 {
12707 ; /*clobber*/
12708 ; /*clobber*/
12709 ; /*clobber*/
12710 ; /*clobber*/
12711 }
12712 }
12713 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12714 }
12715 }
12716
12717   abuf->written = written;
12718   return vpc;
12719 #undef FLD
12720 }
12721
12722 /* tige: tige$pack $ICCi_2,$GRi,$s12 */
12723
12724 static SEM_PC
12725 SEM_FN_NAME (frvbf,tige) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12726 {
12727 #define FLD(f) abuf->fields.sfmt_tieq.f
12728   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12729   int UNUSED written = 0;
12730   IADDR UNUSED pc = abuf->addr;
12731   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12732
12733 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))))) {
12734 {
12735 ; /*clobber*/
12736 ; /*clobber*/
12737 ; /*clobber*/
12738 ; /*clobber*/
12739 if (NEBI (CPU (h_psr_esr), 0)) {
12740 {
12741 ; /*clobber*/
12742 ; /*clobber*/
12743 ; /*clobber*/
12744 ; /*clobber*/
12745 }
12746 }
12747 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12748 }
12749 }
12750
12751   abuf->written = written;
12752   return vpc;
12753 #undef FLD
12754 }
12755
12756 /* tils: tils$pack $ICCi_2,$GRi,$s12 */
12757
12758 static SEM_PC
12759 SEM_FN_NAME (frvbf,tils) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12760 {
12761 #define FLD(f) abuf->fields.sfmt_tieq.f
12762   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12763   int UNUSED written = 0;
12764   IADDR UNUSED pc = abuf->addr;
12765   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12766
12767 if (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)))) {
12768 {
12769 ; /*clobber*/
12770 ; /*clobber*/
12771 ; /*clobber*/
12772 ; /*clobber*/
12773 if (NEBI (CPU (h_psr_esr), 0)) {
12774 {
12775 ; /*clobber*/
12776 ; /*clobber*/
12777 ; /*clobber*/
12778 ; /*clobber*/
12779 }
12780 }
12781 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12782 }
12783 }
12784
12785   abuf->written = written;
12786   return vpc;
12787 #undef FLD
12788 }
12789
12790 /* tihi: tihi$pack $ICCi_2,$GRi,$s12 */
12791
12792 static SEM_PC
12793 SEM_FN_NAME (frvbf,tihi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12794 {
12795 #define FLD(f) abuf->fields.sfmt_tieq.f
12796   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12797   int UNUSED written = 0;
12798   IADDR UNUSED pc = abuf->addr;
12799   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12800
12801 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))))) {
12802 {
12803 ; /*clobber*/
12804 ; /*clobber*/
12805 ; /*clobber*/
12806 ; /*clobber*/
12807 if (NEBI (CPU (h_psr_esr), 0)) {
12808 {
12809 ; /*clobber*/
12810 ; /*clobber*/
12811 ; /*clobber*/
12812 ; /*clobber*/
12813 }
12814 }
12815 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12816 }
12817 }
12818
12819   abuf->written = written;
12820   return vpc;
12821 #undef FLD
12822 }
12823
12824 /* tic: tic$pack $ICCi_2,$GRi,$s12 */
12825
12826 static SEM_PC
12827 SEM_FN_NAME (frvbf,tic) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12828 {
12829 #define FLD(f) abuf->fields.sfmt_tieq.f
12830   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12831   int UNUSED written = 0;
12832   IADDR UNUSED pc = abuf->addr;
12833   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12834
12835 if (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1))) {
12836 {
12837 ; /*clobber*/
12838 ; /*clobber*/
12839 ; /*clobber*/
12840 ; /*clobber*/
12841 if (NEBI (CPU (h_psr_esr), 0)) {
12842 {
12843 ; /*clobber*/
12844 ; /*clobber*/
12845 ; /*clobber*/
12846 ; /*clobber*/
12847 }
12848 }
12849 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12850 }
12851 }
12852
12853   abuf->written = written;
12854   return vpc;
12855 #undef FLD
12856 }
12857
12858 /* tinc: tinc$pack $ICCi_2,$GRi,$s12 */
12859
12860 static SEM_PC
12861 SEM_FN_NAME (frvbf,tinc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12862 {
12863 #define FLD(f) abuf->fields.sfmt_tieq.f
12864   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12865   int UNUSED written = 0;
12866   IADDR UNUSED pc = abuf->addr;
12867   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12868
12869 if (NOTBI (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)))) {
12870 {
12871 ; /*clobber*/
12872 ; /*clobber*/
12873 ; /*clobber*/
12874 ; /*clobber*/
12875 if (NEBI (CPU (h_psr_esr), 0)) {
12876 {
12877 ; /*clobber*/
12878 ; /*clobber*/
12879 ; /*clobber*/
12880 ; /*clobber*/
12881 }
12882 }
12883 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12884 }
12885 }
12886
12887   abuf->written = written;
12888   return vpc;
12889 #undef FLD
12890 }
12891
12892 /* tin: tin$pack $ICCi_2,$GRi,$s12 */
12893
12894 static SEM_PC
12895 SEM_FN_NAME (frvbf,tin) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12896 {
12897 #define FLD(f) abuf->fields.sfmt_tieq.f
12898   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12899   int UNUSED written = 0;
12900   IADDR UNUSED pc = abuf->addr;
12901   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12902
12903 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3))) {
12904 {
12905 ; /*clobber*/
12906 ; /*clobber*/
12907 ; /*clobber*/
12908 ; /*clobber*/
12909 if (NEBI (CPU (h_psr_esr), 0)) {
12910 {
12911 ; /*clobber*/
12912 ; /*clobber*/
12913 ; /*clobber*/
12914 ; /*clobber*/
12915 }
12916 }
12917 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12918 }
12919 }
12920
12921   abuf->written = written;
12922   return vpc;
12923 #undef FLD
12924 }
12925
12926 /* tip: tip$pack $ICCi_2,$GRi,$s12 */
12927
12928 static SEM_PC
12929 SEM_FN_NAME (frvbf,tip) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12930 {
12931 #define FLD(f) abuf->fields.sfmt_tieq.f
12932   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12933   int UNUSED written = 0;
12934   IADDR UNUSED pc = abuf->addr;
12935   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12936
12937 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3)))) {
12938 {
12939 ; /*clobber*/
12940 ; /*clobber*/
12941 ; /*clobber*/
12942 ; /*clobber*/
12943 if (NEBI (CPU (h_psr_esr), 0)) {
12944 {
12945 ; /*clobber*/
12946 ; /*clobber*/
12947 ; /*clobber*/
12948 ; /*clobber*/
12949 }
12950 }
12951 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12952 }
12953 }
12954
12955   abuf->written = written;
12956   return vpc;
12957 #undef FLD
12958 }
12959
12960 /* tiv: tiv$pack $ICCi_2,$GRi,$s12 */
12961
12962 static SEM_PC
12963 SEM_FN_NAME (frvbf,tiv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12964 {
12965 #define FLD(f) abuf->fields.sfmt_tieq.f
12966   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12967   int UNUSED written = 0;
12968   IADDR UNUSED pc = abuf->addr;
12969   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12970
12971 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1))) {
12972 {
12973 ; /*clobber*/
12974 ; /*clobber*/
12975 ; /*clobber*/
12976 ; /*clobber*/
12977 if (NEBI (CPU (h_psr_esr), 0)) {
12978 {
12979 ; /*clobber*/
12980 ; /*clobber*/
12981 ; /*clobber*/
12982 ; /*clobber*/
12983 }
12984 }
12985 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12986 }
12987 }
12988
12989   abuf->written = written;
12990   return vpc;
12991 #undef FLD
12992 }
12993
12994 /* tinv: tinv$pack $ICCi_2,$GRi,$s12 */
12995
12996 static SEM_PC
12997 SEM_FN_NAME (frvbf,tinv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12998 {
12999 #define FLD(f) abuf->fields.sfmt_tieq.f
13000   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13001   int UNUSED written = 0;
13002   IADDR UNUSED pc = abuf->addr;
13003   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13004
13005 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1)))) {
13006 {
13007 ; /*clobber*/
13008 ; /*clobber*/
13009 ; /*clobber*/
13010 ; /*clobber*/
13011 if (NEBI (CPU (h_psr_esr), 0)) {
13012 {
13013 ; /*clobber*/
13014 ; /*clobber*/
13015 ; /*clobber*/
13016 ; /*clobber*/
13017 }
13018 }
13019 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13020 }
13021 }
13022
13023   abuf->written = written;
13024   return vpc;
13025 #undef FLD
13026 }
13027
13028 /* ftira: ftira$pack $GRi,$s12 */
13029
13030 static SEM_PC
13031 SEM_FN_NAME (frvbf,ftira) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13032 {
13033 #define FLD(f) abuf->fields.sfmt_ftine.f
13034   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13035   int UNUSED written = 0;
13036   IADDR UNUSED pc = abuf->addr;
13037   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13038
13039 {
13040 ; /*clobber*/
13041 ; /*clobber*/
13042 ; /*clobber*/
13043 ; /*clobber*/
13044 if (NEBI (CPU (h_psr_esr), 0)) {
13045 {
13046 ; /*clobber*/
13047 ; /*clobber*/
13048 ; /*clobber*/
13049 ; /*clobber*/
13050 }
13051 }
13052 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13053 }
13054
13055   abuf->written = written;
13056   return vpc;
13057 #undef FLD
13058 }
13059
13060 /* ftino: ftino$pack */
13061
13062 static SEM_PC
13063 SEM_FN_NAME (frvbf,ftino) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13064 {
13065 #define FLD(f) abuf->fields.fmt_empty.f
13066   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13067   int UNUSED written = 0;
13068   IADDR UNUSED pc = abuf->addr;
13069   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13070
13071 ((void) 0); /*nop*/
13072
13073   return vpc;
13074 #undef FLD
13075 }
13076
13077 /* ftine: ftine$pack $FCCi_2,$GRi,$s12 */
13078
13079 static SEM_PC
13080 SEM_FN_NAME (frvbf,ftine) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13081 {
13082 #define FLD(f) abuf->fields.sfmt_ftine.f
13083   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13084   int UNUSED written = 0;
13085   IADDR UNUSED pc = abuf->addr;
13086   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13087
13088 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))))) {
13089 {
13090 ; /*clobber*/
13091 ; /*clobber*/
13092 ; /*clobber*/
13093 ; /*clobber*/
13094 if (NEBI (CPU (h_psr_esr), 0)) {
13095 {
13096 ; /*clobber*/
13097 ; /*clobber*/
13098 ; /*clobber*/
13099 ; /*clobber*/
13100 }
13101 }
13102 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13103 }
13104 }
13105
13106   abuf->written = written;
13107   return vpc;
13108 #undef FLD
13109 }
13110
13111 /* ftieq: ftieq$pack $FCCi_2,$GRi,$s12 */
13112
13113 static SEM_PC
13114 SEM_FN_NAME (frvbf,ftieq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13115 {
13116 #define FLD(f) abuf->fields.sfmt_ftine.f
13117   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13118   int UNUSED written = 0;
13119   IADDR UNUSED pc = abuf->addr;
13120   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13121
13122 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3))) {
13123 {
13124 ; /*clobber*/
13125 ; /*clobber*/
13126 ; /*clobber*/
13127 ; /*clobber*/
13128 if (NEBI (CPU (h_psr_esr), 0)) {
13129 {
13130 ; /*clobber*/
13131 ; /*clobber*/
13132 ; /*clobber*/
13133 ; /*clobber*/
13134 }
13135 }
13136 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13137 }
13138 }
13139
13140   abuf->written = written;
13141   return vpc;
13142 #undef FLD
13143 }
13144
13145 /* ftilg: ftilg$pack $FCCi_2,$GRi,$s12 */
13146
13147 static SEM_PC
13148 SEM_FN_NAME (frvbf,ftilg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13149 {
13150 #define FLD(f) abuf->fields.sfmt_ftine.f
13151   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13152   int UNUSED written = 0;
13153   IADDR UNUSED pc = abuf->addr;
13154   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13155
13156 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)))) {
13157 {
13158 ; /*clobber*/
13159 ; /*clobber*/
13160 ; /*clobber*/
13161 ; /*clobber*/
13162 if (NEBI (CPU (h_psr_esr), 0)) {
13163 {
13164 ; /*clobber*/
13165 ; /*clobber*/
13166 ; /*clobber*/
13167 ; /*clobber*/
13168 }
13169 }
13170 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13171 }
13172 }
13173
13174   abuf->written = written;
13175   return vpc;
13176 #undef FLD
13177 }
13178
13179 /* ftiue: ftiue$pack $FCCi_2,$GRi,$s12 */
13180
13181 static SEM_PC
13182 SEM_FN_NAME (frvbf,ftiue) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13183 {
13184 #define FLD(f) abuf->fields.sfmt_ftine.f
13185   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13186   int UNUSED written = 0;
13187   IADDR UNUSED pc = abuf->addr;
13188   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13189
13190 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
13191 {
13192 ; /*clobber*/
13193 ; /*clobber*/
13194 ; /*clobber*/
13195 ; /*clobber*/
13196 if (NEBI (CPU (h_psr_esr), 0)) {
13197 {
13198 ; /*clobber*/
13199 ; /*clobber*/
13200 ; /*clobber*/
13201 ; /*clobber*/
13202 }
13203 }
13204 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13205 }
13206 }
13207
13208   abuf->written = written;
13209   return vpc;
13210 #undef FLD
13211 }
13212
13213 /* ftiul: ftiul$pack $FCCi_2,$GRi,$s12 */
13214
13215 static SEM_PC
13216 SEM_FN_NAME (frvbf,ftiul) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13217 {
13218 #define FLD(f) abuf->fields.sfmt_ftine.f
13219   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13220   int UNUSED written = 0;
13221   IADDR UNUSED pc = abuf->addr;
13222   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13223
13224 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
13225 {
13226 ; /*clobber*/
13227 ; /*clobber*/
13228 ; /*clobber*/
13229 ; /*clobber*/
13230 if (NEBI (CPU (h_psr_esr), 0)) {
13231 {
13232 ; /*clobber*/
13233 ; /*clobber*/
13234 ; /*clobber*/
13235 ; /*clobber*/
13236 }
13237 }
13238 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13239 }
13240 }
13241
13242   abuf->written = written;
13243   return vpc;
13244 #undef FLD
13245 }
13246
13247 /* ftige: ftige$pack $FCCi_2,$GRi,$s12 */
13248
13249 static SEM_PC
13250 SEM_FN_NAME (frvbf,ftige) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13251 {
13252 #define FLD(f) abuf->fields.sfmt_ftine.f
13253   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13254   int UNUSED written = 0;
13255   IADDR UNUSED pc = abuf->addr;
13256   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13257
13258 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)))) {
13259 {
13260 ; /*clobber*/
13261 ; /*clobber*/
13262 ; /*clobber*/
13263 ; /*clobber*/
13264 if (NEBI (CPU (h_psr_esr), 0)) {
13265 {
13266 ; /*clobber*/
13267 ; /*clobber*/
13268 ; /*clobber*/
13269 ; /*clobber*/
13270 }
13271 }
13272 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13273 }
13274 }
13275
13276   abuf->written = written;
13277   return vpc;
13278 #undef FLD
13279 }
13280
13281 /* ftilt: ftilt$pack $FCCi_2,$GRi,$s12 */
13282
13283 static SEM_PC
13284 SEM_FN_NAME (frvbf,ftilt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13285 {
13286 #define FLD(f) abuf->fields.sfmt_ftine.f
13287   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13288   int UNUSED written = 0;
13289   IADDR UNUSED pc = abuf->addr;
13290   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13291
13292 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2))) {
13293 {
13294 ; /*clobber*/
13295 ; /*clobber*/
13296 ; /*clobber*/
13297 ; /*clobber*/
13298 if (NEBI (CPU (h_psr_esr), 0)) {
13299 {
13300 ; /*clobber*/
13301 ; /*clobber*/
13302 ; /*clobber*/
13303 ; /*clobber*/
13304 }
13305 }
13306 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13307 }
13308 }
13309
13310   abuf->written = written;
13311   return vpc;
13312 #undef FLD
13313 }
13314
13315 /* ftiuge: ftiuge$pack $FCCi_2,$GRi,$s12 */
13316
13317 static SEM_PC
13318 SEM_FN_NAME (frvbf,ftiuge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13319 {
13320 #define FLD(f) abuf->fields.sfmt_ftine.f
13321   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13322   int UNUSED written = 0;
13323   IADDR UNUSED pc = abuf->addr;
13324   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13325
13326 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))))) {
13327 {
13328 ; /*clobber*/
13329 ; /*clobber*/
13330 ; /*clobber*/
13331 ; /*clobber*/
13332 if (NEBI (CPU (h_psr_esr), 0)) {
13333 {
13334 ; /*clobber*/
13335 ; /*clobber*/
13336 ; /*clobber*/
13337 ; /*clobber*/
13338 }
13339 }
13340 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13341 }
13342 }
13343
13344   abuf->written = written;
13345   return vpc;
13346 #undef FLD
13347 }
13348
13349 /* ftiug: ftiug$pack $FCCi_2,$GRi,$s12 */
13350
13351 static SEM_PC
13352 SEM_FN_NAME (frvbf,ftiug) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13353 {
13354 #define FLD(f) abuf->fields.sfmt_ftine.f
13355   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13356   int UNUSED written = 0;
13357   IADDR UNUSED pc = abuf->addr;
13358   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13359
13360 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
13361 {
13362 ; /*clobber*/
13363 ; /*clobber*/
13364 ; /*clobber*/
13365 ; /*clobber*/
13366 if (NEBI (CPU (h_psr_esr), 0)) {
13367 {
13368 ; /*clobber*/
13369 ; /*clobber*/
13370 ; /*clobber*/
13371 ; /*clobber*/
13372 }
13373 }
13374 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13375 }
13376 }
13377
13378   abuf->written = written;
13379   return vpc;
13380 #undef FLD
13381 }
13382
13383 /* ftile: ftile$pack $FCCi_2,$GRi,$s12 */
13384
13385 static SEM_PC
13386 SEM_FN_NAME (frvbf,ftile) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13387 {
13388 #define FLD(f) abuf->fields.sfmt_ftine.f
13389   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13390   int UNUSED written = 0;
13391   IADDR UNUSED pc = abuf->addr;
13392   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13393
13394 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)))) {
13395 {
13396 ; /*clobber*/
13397 ; /*clobber*/
13398 ; /*clobber*/
13399 ; /*clobber*/
13400 if (NEBI (CPU (h_psr_esr), 0)) {
13401 {
13402 ; /*clobber*/
13403 ; /*clobber*/
13404 ; /*clobber*/
13405 ; /*clobber*/
13406 }
13407 }
13408 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13409 }
13410 }
13411
13412   abuf->written = written;
13413   return vpc;
13414 #undef FLD
13415 }
13416
13417 /* ftigt: ftigt$pack $FCCi_2,$GRi,$s12 */
13418
13419 static SEM_PC
13420 SEM_FN_NAME (frvbf,ftigt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13421 {
13422 #define FLD(f) abuf->fields.sfmt_ftine.f
13423   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13424   int UNUSED written = 0;
13425   IADDR UNUSED pc = abuf->addr;
13426   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13427
13428 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1))) {
13429 {
13430 ; /*clobber*/
13431 ; /*clobber*/
13432 ; /*clobber*/
13433 ; /*clobber*/
13434 if (NEBI (CPU (h_psr_esr), 0)) {
13435 {
13436 ; /*clobber*/
13437 ; /*clobber*/
13438 ; /*clobber*/
13439 ; /*clobber*/
13440 }
13441 }
13442 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13443 }
13444 }
13445
13446   abuf->written = written;
13447   return vpc;
13448 #undef FLD
13449 }
13450
13451 /* ftiule: ftiule$pack $FCCi_2,$GRi,$s12 */
13452
13453 static SEM_PC
13454 SEM_FN_NAME (frvbf,ftiule) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13455 {
13456 #define FLD(f) abuf->fields.sfmt_ftine.f
13457   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13458   int UNUSED written = 0;
13459   IADDR UNUSED pc = abuf->addr;
13460   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13461
13462 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))))) {
13463 {
13464 ; /*clobber*/
13465 ; /*clobber*/
13466 ; /*clobber*/
13467 ; /*clobber*/
13468 if (NEBI (CPU (h_psr_esr), 0)) {
13469 {
13470 ; /*clobber*/
13471 ; /*clobber*/
13472 ; /*clobber*/
13473 ; /*clobber*/
13474 }
13475 }
13476 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13477 }
13478 }
13479
13480   abuf->written = written;
13481   return vpc;
13482 #undef FLD
13483 }
13484
13485 /* ftiu: ftiu$pack $FCCi_2,$GRi,$s12 */
13486
13487 static SEM_PC
13488 SEM_FN_NAME (frvbf,ftiu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13489 {
13490 #define FLD(f) abuf->fields.sfmt_ftine.f
13491   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13492   int UNUSED written = 0;
13493   IADDR UNUSED pc = abuf->addr;
13494   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13495
13496 if (TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1))) {
13497 {
13498 ; /*clobber*/
13499 ; /*clobber*/
13500 ; /*clobber*/
13501 ; /*clobber*/
13502 if (NEBI (CPU (h_psr_esr), 0)) {
13503 {
13504 ; /*clobber*/
13505 ; /*clobber*/
13506 ; /*clobber*/
13507 ; /*clobber*/
13508 }
13509 }
13510 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13511 }
13512 }
13513
13514   abuf->written = written;
13515   return vpc;
13516 #undef FLD
13517 }
13518
13519 /* ftio: ftio$pack $FCCi_2,$GRi,$s12 */
13520
13521 static SEM_PC
13522 SEM_FN_NAME (frvbf,ftio) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13523 {
13524 #define FLD(f) abuf->fields.sfmt_ftine.f
13525   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13526   int UNUSED written = 0;
13527   IADDR UNUSED pc = abuf->addr;
13528   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13529
13530 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))))) {
13531 {
13532 ; /*clobber*/
13533 ; /*clobber*/
13534 ; /*clobber*/
13535 ; /*clobber*/
13536 if (NEBI (CPU (h_psr_esr), 0)) {
13537 {
13538 ; /*clobber*/
13539 ; /*clobber*/
13540 ; /*clobber*/
13541 ; /*clobber*/
13542 }
13543 }
13544 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13545 }
13546 }
13547
13548   abuf->written = written;
13549   return vpc;
13550 #undef FLD
13551 }
13552
13553 /* break: break$pack */
13554
13555 static SEM_PC
13556 SEM_FN_NAME (frvbf,break) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13557 {
13558 #define FLD(f) abuf->fields.sfmt_break.f
13559   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13560   int UNUSED written = 0;
13561   IADDR UNUSED pc = abuf->addr;
13562   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13563
13564 {
13565 ; /*clobber*/
13566 ; /*clobber*/
13567 ; /*clobber*/
13568 ; /*clobber*/
13569 ; /*clobber*/
13570 ; /*clobber*/
13571 frv_break (current_cpu);
13572 }
13573
13574   return vpc;
13575 #undef FLD
13576 }
13577
13578 /* mtrap: mtrap$pack */
13579
13580 static SEM_PC
13581 SEM_FN_NAME (frvbf,mtrap) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13582 {
13583 #define FLD(f) abuf->fields.fmt_empty.f
13584   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13585   int UNUSED written = 0;
13586   IADDR UNUSED pc = abuf->addr;
13587   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13588
13589 frv_mtrap (current_cpu);
13590
13591   return vpc;
13592 #undef FLD
13593 }
13594
13595 /* andcr: andcr$pack $CRi,$CRj,$CRk */
13596
13597 static SEM_PC
13598 SEM_FN_NAME (frvbf,andcr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13599 {
13600 #define FLD(f) abuf->fields.sfmt_andcr.f
13601   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13602   int UNUSED written = 0;
13603   IADDR UNUSED pc = abuf->addr;
13604   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13605
13606   {
13607     UQI opval = frvbf_cr_logic (current_cpu, 0, CPU (h_cccr[FLD (f_CRi)]), CPU (h_cccr[FLD (f_CRj)]));
13608     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRk)]), opval);
13609     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13610   }
13611
13612   return vpc;
13613 #undef FLD
13614 }
13615
13616 /* orcr: orcr$pack $CRi,$CRj,$CRk */
13617
13618 static SEM_PC
13619 SEM_FN_NAME (frvbf,orcr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13620 {
13621 #define FLD(f) abuf->fields.sfmt_andcr.f
13622   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13623   int UNUSED written = 0;
13624   IADDR UNUSED pc = abuf->addr;
13625   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13626
13627   {
13628     UQI opval = frvbf_cr_logic (current_cpu, 1, CPU (h_cccr[FLD (f_CRi)]), CPU (h_cccr[FLD (f_CRj)]));
13629     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRk)]), opval);
13630     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13631   }
13632
13633   return vpc;
13634 #undef FLD
13635 }
13636
13637 /* xorcr: xorcr$pack $CRi,$CRj,$CRk */
13638
13639 static SEM_PC
13640 SEM_FN_NAME (frvbf,xorcr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13641 {
13642 #define FLD(f) abuf->fields.sfmt_andcr.f
13643   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13644   int UNUSED written = 0;
13645   IADDR UNUSED pc = abuf->addr;
13646   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13647
13648   {
13649     UQI opval = frvbf_cr_logic (current_cpu, 2, CPU (h_cccr[FLD (f_CRi)]), CPU (h_cccr[FLD (f_CRj)]));
13650     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRk)]), opval);
13651     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13652   }
13653
13654   return vpc;
13655 #undef FLD
13656 }
13657
13658 /* nandcr: nandcr$pack $CRi,$CRj,$CRk */
13659
13660 static SEM_PC
13661 SEM_FN_NAME (frvbf,nandcr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13662 {
13663 #define FLD(f) abuf->fields.sfmt_andcr.f
13664   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13665   int UNUSED written = 0;
13666   IADDR UNUSED pc = abuf->addr;
13667   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13668
13669   {
13670     UQI opval = frvbf_cr_logic (current_cpu, 3, CPU (h_cccr[FLD (f_CRi)]), CPU (h_cccr[FLD (f_CRj)]));
13671     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRk)]), opval);
13672     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13673   }
13674
13675   return vpc;
13676 #undef FLD
13677 }
13678
13679 /* norcr: norcr$pack $CRi,$CRj,$CRk */
13680
13681 static SEM_PC
13682 SEM_FN_NAME (frvbf,norcr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13683 {
13684 #define FLD(f) abuf->fields.sfmt_andcr.f
13685   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13686   int UNUSED written = 0;
13687   IADDR UNUSED pc = abuf->addr;
13688   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13689
13690   {
13691     UQI opval = frvbf_cr_logic (current_cpu, 4, CPU (h_cccr[FLD (f_CRi)]), CPU (h_cccr[FLD (f_CRj)]));
13692     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRk)]), opval);
13693     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13694   }
13695
13696   return vpc;
13697 #undef FLD
13698 }
13699
13700 /* andncr: andncr$pack $CRi,$CRj,$CRk */
13701
13702 static SEM_PC
13703 SEM_FN_NAME (frvbf,andncr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13704 {
13705 #define FLD(f) abuf->fields.sfmt_andcr.f
13706   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13707   int UNUSED written = 0;
13708   IADDR UNUSED pc = abuf->addr;
13709   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13710
13711   {
13712     UQI opval = frvbf_cr_logic (current_cpu, 5, CPU (h_cccr[FLD (f_CRi)]), CPU (h_cccr[FLD (f_CRj)]));
13713     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRk)]), opval);
13714     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13715   }
13716
13717   return vpc;
13718 #undef FLD
13719 }
13720
13721 /* orncr: orncr$pack $CRi,$CRj,$CRk */
13722
13723 static SEM_PC
13724 SEM_FN_NAME (frvbf,orncr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13725 {
13726 #define FLD(f) abuf->fields.sfmt_andcr.f
13727   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13728   int UNUSED written = 0;
13729   IADDR UNUSED pc = abuf->addr;
13730   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13731
13732   {
13733     UQI opval = frvbf_cr_logic (current_cpu, 6, CPU (h_cccr[FLD (f_CRi)]), CPU (h_cccr[FLD (f_CRj)]));
13734     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRk)]), opval);
13735     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13736   }
13737
13738   return vpc;
13739 #undef FLD
13740 }
13741
13742 /* nandncr: nandncr$pack $CRi,$CRj,$CRk */
13743
13744 static SEM_PC
13745 SEM_FN_NAME (frvbf,nandncr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13746 {
13747 #define FLD(f) abuf->fields.sfmt_andcr.f
13748   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13749   int UNUSED written = 0;
13750   IADDR UNUSED pc = abuf->addr;
13751   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13752
13753   {
13754     UQI opval = frvbf_cr_logic (current_cpu, 7, CPU (h_cccr[FLD (f_CRi)]), CPU (h_cccr[FLD (f_CRj)]));
13755     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRk)]), opval);
13756     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13757   }
13758
13759   return vpc;
13760 #undef FLD
13761 }
13762
13763 /* norncr: norncr$pack $CRi,$CRj,$CRk */
13764
13765 static SEM_PC
13766 SEM_FN_NAME (frvbf,norncr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13767 {
13768 #define FLD(f) abuf->fields.sfmt_andcr.f
13769   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13770   int UNUSED written = 0;
13771   IADDR UNUSED pc = abuf->addr;
13772   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13773
13774   {
13775     UQI opval = frvbf_cr_logic (current_cpu, 8, CPU (h_cccr[FLD (f_CRi)]), CPU (h_cccr[FLD (f_CRj)]));
13776     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRk)]), opval);
13777     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13778   }
13779
13780   return vpc;
13781 #undef FLD
13782 }
13783
13784 /* notcr: notcr$pack $CRj,$CRk */
13785
13786 static SEM_PC
13787 SEM_FN_NAME (frvbf,notcr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13788 {
13789 #define FLD(f) abuf->fields.sfmt_andcr.f
13790   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13791   int UNUSED written = 0;
13792   IADDR UNUSED pc = abuf->addr;
13793   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13794
13795   {
13796     UQI opval = XORQI (CPU (h_cccr[FLD (f_CRj)]), 1);
13797     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRk)]), opval);
13798     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13799   }
13800
13801   return vpc;
13802 #undef FLD
13803 }
13804
13805 /* ckra: ckra$pack $CRj_int */
13806
13807 static SEM_PC
13808 SEM_FN_NAME (frvbf,ckra) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13809 {
13810 #define FLD(f) abuf->fields.sfmt_cckeq.f
13811   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13812   int UNUSED written = 0;
13813   IADDR UNUSED pc = abuf->addr;
13814   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13815
13816   {
13817     UQI opval = 3;
13818     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
13819     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13820   }
13821
13822   return vpc;
13823 #undef FLD
13824 }
13825
13826 /* ckno: ckno$pack $CRj_int */
13827
13828 static SEM_PC
13829 SEM_FN_NAME (frvbf,ckno) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13830 {
13831 #define FLD(f) abuf->fields.sfmt_cckeq.f
13832   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13833   int UNUSED written = 0;
13834   IADDR UNUSED pc = abuf->addr;
13835   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13836
13837   {
13838     UQI opval = 2;
13839     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
13840     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13841   }
13842
13843   return vpc;
13844 #undef FLD
13845 }
13846
13847 /* ckeq: ckeq$pack $ICCi_3,$CRj_int */
13848
13849 static SEM_PC
13850 SEM_FN_NAME (frvbf,ckeq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13851 {
13852 #define FLD(f) abuf->fields.sfmt_cckeq.f
13853   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13854   int UNUSED written = 0;
13855   IADDR UNUSED pc = abuf->addr;
13856   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13857
13858 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 4), 2))) {
13859   {
13860     UQI opval = 3;
13861     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
13862     written |= (1 << 1);
13863     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13864   }
13865 } else {
13866   {
13867     UQI opval = 2;
13868     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
13869     written |= (1 << 1);
13870     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13871   }
13872 }
13873
13874   abuf->written = written;
13875   return vpc;
13876 #undef FLD
13877 }
13878
13879 /* ckne: ckne$pack $ICCi_3,$CRj_int */
13880
13881 static SEM_PC
13882 SEM_FN_NAME (frvbf,ckne) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13883 {
13884 #define FLD(f) abuf->fields.sfmt_cckeq.f
13885   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13886   int UNUSED written = 0;
13887   IADDR UNUSED pc = abuf->addr;
13888   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13889
13890 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 4), 2)))) {
13891   {
13892     UQI opval = 3;
13893     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
13894     written |= (1 << 1);
13895     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13896   }
13897 } else {
13898   {
13899     UQI opval = 2;
13900     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
13901     written |= (1 << 1);
13902     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13903   }
13904 }
13905
13906   abuf->written = written;
13907   return vpc;
13908 #undef FLD
13909 }
13910
13911 /* ckle: ckle$pack $ICCi_3,$CRj_int */
13912
13913 static SEM_PC
13914 SEM_FN_NAME (frvbf,ckle) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13915 {
13916 #define FLD(f) abuf->fields.sfmt_cckeq.f
13917   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13918   int UNUSED written = 0;
13919   IADDR UNUSED pc = abuf->addr;
13920   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13921
13922 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))))) {
13923   {
13924     UQI opval = 3;
13925     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
13926     written |= (1 << 1);
13927     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13928   }
13929 } else {
13930   {
13931     UQI opval = 2;
13932     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
13933     written |= (1 << 1);
13934     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13935   }
13936 }
13937
13938   abuf->written = written;
13939   return vpc;
13940 #undef FLD
13941 }
13942
13943 /* ckgt: ckgt$pack $ICCi_3,$CRj_int */
13944
13945 static SEM_PC
13946 SEM_FN_NAME (frvbf,ckgt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13947 {
13948 #define FLD(f) abuf->fields.sfmt_cckeq.f
13949   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13950   int UNUSED written = 0;
13951   IADDR UNUSED pc = abuf->addr;
13952   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13953
13954 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)))))) {
13955   {
13956     UQI opval = 3;
13957     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
13958     written |= (1 << 1);
13959     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13960   }
13961 } else {
13962   {
13963     UQI opval = 2;
13964     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
13965     written |= (1 << 1);
13966     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13967   }
13968 }
13969
13970   abuf->written = written;
13971   return vpc;
13972 #undef FLD
13973 }
13974
13975 /* cklt: cklt$pack $ICCi_3,$CRj_int */
13976
13977 static SEM_PC
13978 SEM_FN_NAME (frvbf,cklt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13979 {
13980 #define FLD(f) abuf->fields.sfmt_cckeq.f
13981   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13982   int UNUSED written = 0;
13983   IADDR UNUSED pc = abuf->addr;
13984   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13985
13986 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)))) {
13987   {
13988     UQI opval = 3;
13989     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
13990     written |= (1 << 1);
13991     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13992   }
13993 } else {
13994   {
13995     UQI opval = 2;
13996     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
13997     written |= (1 << 1);
13998     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13999   }
14000 }
14001
14002   abuf->written = written;
14003   return vpc;
14004 #undef FLD
14005 }
14006
14007 /* ckge: ckge$pack $ICCi_3,$CRj_int */
14008
14009 static SEM_PC
14010 SEM_FN_NAME (frvbf,ckge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14011 {
14012 #define FLD(f) abuf->fields.sfmt_cckeq.f
14013   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14014   int UNUSED written = 0;
14015   IADDR UNUSED pc = abuf->addr;
14016   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14017
14018 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))))) {
14019   {
14020     UQI opval = 3;
14021     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14022     written |= (1 << 1);
14023     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14024   }
14025 } else {
14026   {
14027     UQI opval = 2;
14028     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14029     written |= (1 << 1);
14030     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14031   }
14032 }
14033
14034   abuf->written = written;
14035   return vpc;
14036 #undef FLD
14037 }
14038
14039 /* ckls: ckls$pack $ICCi_3,$CRj_int */
14040
14041 static SEM_PC
14042 SEM_FN_NAME (frvbf,ckls) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14043 {
14044 #define FLD(f) abuf->fields.sfmt_cckeq.f
14045   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14046   int UNUSED written = 0;
14047   IADDR UNUSED pc = abuf->addr;
14048   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14049
14050 if (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 4), 2)))) {
14051   {
14052     UQI opval = 3;
14053     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14054     written |= (1 << 1);
14055     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14056   }
14057 } else {
14058   {
14059     UQI opval = 2;
14060     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14061     written |= (1 << 1);
14062     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14063   }
14064 }
14065
14066   abuf->written = written;
14067   return vpc;
14068 #undef FLD
14069 }
14070
14071 /* ckhi: ckhi$pack $ICCi_3,$CRj_int */
14072
14073 static SEM_PC
14074 SEM_FN_NAME (frvbf,ckhi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14075 {
14076 #define FLD(f) abuf->fields.sfmt_cckeq.f
14077   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14078   int UNUSED written = 0;
14079   IADDR UNUSED pc = abuf->addr;
14080   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14081
14082 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))))) {
14083   {
14084     UQI opval = 3;
14085     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14086     written |= (1 << 1);
14087     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14088   }
14089 } else {
14090   {
14091     UQI opval = 2;
14092     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14093     written |= (1 << 1);
14094     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14095   }
14096 }
14097
14098   abuf->written = written;
14099   return vpc;
14100 #undef FLD
14101 }
14102
14103 /* ckc: ckc$pack $ICCi_3,$CRj_int */
14104
14105 static SEM_PC
14106 SEM_FN_NAME (frvbf,ckc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14107 {
14108 #define FLD(f) abuf->fields.sfmt_cckeq.f
14109   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14110   int UNUSED written = 0;
14111   IADDR UNUSED pc = abuf->addr;
14112   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14113
14114 if (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 1))) {
14115   {
14116     UQI opval = 3;
14117     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14118     written |= (1 << 1);
14119     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14120   }
14121 } else {
14122   {
14123     UQI opval = 2;
14124     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14125     written |= (1 << 1);
14126     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14127   }
14128 }
14129
14130   abuf->written = written;
14131   return vpc;
14132 #undef FLD
14133 }
14134
14135 /* cknc: cknc$pack $ICCi_3,$CRj_int */
14136
14137 static SEM_PC
14138 SEM_FN_NAME (frvbf,cknc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14139 {
14140 #define FLD(f) abuf->fields.sfmt_cckeq.f
14141   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14142   int UNUSED written = 0;
14143   IADDR UNUSED pc = abuf->addr;
14144   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14145
14146 if (NOTBI (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 1)))) {
14147   {
14148     UQI opval = 3;
14149     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14150     written |= (1 << 1);
14151     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14152   }
14153 } else {
14154   {
14155     UQI opval = 2;
14156     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14157     written |= (1 << 1);
14158     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14159   }
14160 }
14161
14162   abuf->written = written;
14163   return vpc;
14164 #undef FLD
14165 }
14166
14167 /* ckn: ckn$pack $ICCi_3,$CRj_int */
14168
14169 static SEM_PC
14170 SEM_FN_NAME (frvbf,ckn) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14171 {
14172 #define FLD(f) abuf->fields.sfmt_cckeq.f
14173   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14174   int UNUSED written = 0;
14175   IADDR UNUSED pc = abuf->addr;
14176   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14177
14178 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 8), 3))) {
14179   {
14180     UQI opval = 3;
14181     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14182     written |= (1 << 1);
14183     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14184   }
14185 } else {
14186   {
14187     UQI opval = 2;
14188     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14189     written |= (1 << 1);
14190     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14191   }
14192 }
14193
14194   abuf->written = written;
14195   return vpc;
14196 #undef FLD
14197 }
14198
14199 /* ckp: ckp$pack $ICCi_3,$CRj_int */
14200
14201 static SEM_PC
14202 SEM_FN_NAME (frvbf,ckp) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14203 {
14204 #define FLD(f) abuf->fields.sfmt_cckeq.f
14205   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14206   int UNUSED written = 0;
14207   IADDR UNUSED pc = abuf->addr;
14208   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14209
14210 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 8), 3)))) {
14211   {
14212     UQI opval = 3;
14213     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14214     written |= (1 << 1);
14215     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14216   }
14217 } else {
14218   {
14219     UQI opval = 2;
14220     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14221     written |= (1 << 1);
14222     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14223   }
14224 }
14225
14226   abuf->written = written;
14227   return vpc;
14228 #undef FLD
14229 }
14230
14231 /* ckv: ckv$pack $ICCi_3,$CRj_int */
14232
14233 static SEM_PC
14234 SEM_FN_NAME (frvbf,ckv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14235 {
14236 #define FLD(f) abuf->fields.sfmt_cckeq.f
14237   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14238   int UNUSED written = 0;
14239   IADDR UNUSED pc = abuf->addr;
14240   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14241
14242 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 2), 1))) {
14243   {
14244     UQI opval = 3;
14245     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14246     written |= (1 << 1);
14247     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14248   }
14249 } else {
14250   {
14251     UQI opval = 2;
14252     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14253     written |= (1 << 1);
14254     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14255   }
14256 }
14257
14258   abuf->written = written;
14259   return vpc;
14260 #undef FLD
14261 }
14262
14263 /* cknv: cknv$pack $ICCi_3,$CRj_int */
14264
14265 static SEM_PC
14266 SEM_FN_NAME (frvbf,cknv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14267 {
14268 #define FLD(f) abuf->fields.sfmt_cckeq.f
14269   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14270   int UNUSED written = 0;
14271   IADDR UNUSED pc = abuf->addr;
14272   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14273
14274 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 2), 1)))) {
14275   {
14276     UQI opval = 3;
14277     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14278     written |= (1 << 1);
14279     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14280   }
14281 } else {
14282   {
14283     UQI opval = 2;
14284     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14285     written |= (1 << 1);
14286     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14287   }
14288 }
14289
14290   abuf->written = written;
14291   return vpc;
14292 #undef FLD
14293 }
14294
14295 /* fckra: fckra$pack $CRj_float */
14296
14297 static SEM_PC
14298 SEM_FN_NAME (frvbf,fckra) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14299 {
14300 #define FLD(f) abuf->fields.sfmt_cfckne.f
14301   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14302   int UNUSED written = 0;
14303   IADDR UNUSED pc = abuf->addr;
14304   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14305
14306   {
14307     UQI opval = 3;
14308     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14309     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14310   }
14311
14312   return vpc;
14313 #undef FLD
14314 }
14315
14316 /* fckno: fckno$pack $CRj_float */
14317
14318 static SEM_PC
14319 SEM_FN_NAME (frvbf,fckno) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14320 {
14321 #define FLD(f) abuf->fields.sfmt_cfckne.f
14322   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14323   int UNUSED written = 0;
14324   IADDR UNUSED pc = abuf->addr;
14325   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14326
14327   {
14328     UQI opval = 2;
14329     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14330     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14331   }
14332
14333   return vpc;
14334 #undef FLD
14335 }
14336
14337 /* fckne: fckne$pack $FCCi_3,$CRj_float */
14338
14339 static SEM_PC
14340 SEM_FN_NAME (frvbf,fckne) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14341 {
14342 #define FLD(f) abuf->fields.sfmt_cfckne.f
14343   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14344   int UNUSED written = 0;
14345   IADDR UNUSED pc = abuf->addr;
14346   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14347
14348 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))))) {
14349   {
14350     UQI opval = 3;
14351     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14352     written |= (1 << 1);
14353     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14354   }
14355 } else {
14356   {
14357     UQI opval = 2;
14358     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14359     written |= (1 << 1);
14360     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14361   }
14362 }
14363
14364   abuf->written = written;
14365   return vpc;
14366 #undef FLD
14367 }
14368
14369 /* fckeq: fckeq$pack $FCCi_3,$CRj_float */
14370
14371 static SEM_PC
14372 SEM_FN_NAME (frvbf,fckeq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14373 {
14374 #define FLD(f) abuf->fields.sfmt_cfckne.f
14375   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14376   int UNUSED written = 0;
14377   IADDR UNUSED pc = abuf->addr;
14378   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14379
14380 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 8), 3))) {
14381   {
14382     UQI opval = 3;
14383     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14384     written |= (1 << 1);
14385     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14386   }
14387 } else {
14388   {
14389     UQI opval = 2;
14390     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14391     written |= (1 << 1);
14392     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14393   }
14394 }
14395
14396   abuf->written = written;
14397   return vpc;
14398 #undef FLD
14399 }
14400
14401 /* fcklg: fcklg$pack $FCCi_3,$CRj_float */
14402
14403 static SEM_PC
14404 SEM_FN_NAME (frvbf,fcklg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14405 {
14406 #define FLD(f) abuf->fields.sfmt_cfckne.f
14407   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14408   int UNUSED written = 0;
14409   IADDR UNUSED pc = abuf->addr;
14410   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14411
14412 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)))) {
14413   {
14414     UQI opval = 3;
14415     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14416     written |= (1 << 1);
14417     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14418   }
14419 } else {
14420   {
14421     UQI opval = 2;
14422     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14423     written |= (1 << 1);
14424     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14425   }
14426 }
14427
14428   abuf->written = written;
14429   return vpc;
14430 #undef FLD
14431 }
14432
14433 /* fckue: fckue$pack $FCCi_3,$CRj_float */
14434
14435 static SEM_PC
14436 SEM_FN_NAME (frvbf,fckue) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14437 {
14438 #define FLD(f) abuf->fields.sfmt_cfckne.f
14439   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14440   int UNUSED written = 0;
14441   IADDR UNUSED pc = abuf->addr;
14442   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14443
14444 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 8), 3)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 1)))) {
14445   {
14446     UQI opval = 3;
14447     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14448     written |= (1 << 1);
14449     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14450   }
14451 } else {
14452   {
14453     UQI opval = 2;
14454     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14455     written |= (1 << 1);
14456     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14457   }
14458 }
14459
14460   abuf->written = written;
14461   return vpc;
14462 #undef FLD
14463 }
14464
14465 /* fckul: fckul$pack $FCCi_3,$CRj_float */
14466
14467 static SEM_PC
14468 SEM_FN_NAME (frvbf,fckul) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14469 {
14470 #define FLD(f) abuf->fields.sfmt_cfckne.f
14471   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14472   int UNUSED written = 0;
14473   IADDR UNUSED pc = abuf->addr;
14474   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14475
14476 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 4), 2)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 1)))) {
14477   {
14478     UQI opval = 3;
14479     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14480     written |= (1 << 1);
14481     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14482   }
14483 } else {
14484   {
14485     UQI opval = 2;
14486     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14487     written |= (1 << 1);
14488     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14489   }
14490 }
14491
14492   abuf->written = written;
14493   return vpc;
14494 #undef FLD
14495 }
14496
14497 /* fckge: fckge$pack $FCCi_3,$CRj_float */
14498
14499 static SEM_PC
14500 SEM_FN_NAME (frvbf,fckge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14501 {
14502 #define FLD(f) abuf->fields.sfmt_cfckne.f
14503   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14504   int UNUSED written = 0;
14505   IADDR UNUSED pc = abuf->addr;
14506   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14507
14508 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)))) {
14509   {
14510     UQI opval = 3;
14511     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14512     written |= (1 << 1);
14513     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14514   }
14515 } else {
14516   {
14517     UQI opval = 2;
14518     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14519     written |= (1 << 1);
14520     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14521   }
14522 }
14523
14524   abuf->written = written;
14525   return vpc;
14526 #undef FLD
14527 }
14528
14529 /* fcklt: fcklt$pack $FCCi_3,$CRj_float */
14530
14531 static SEM_PC
14532 SEM_FN_NAME (frvbf,fcklt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14533 {
14534 #define FLD(f) abuf->fields.sfmt_cfckne.f
14535   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14536   int UNUSED written = 0;
14537   IADDR UNUSED pc = abuf->addr;
14538   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14539
14540 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 4), 2))) {
14541   {
14542     UQI opval = 3;
14543     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14544     written |= (1 << 1);
14545     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14546   }
14547 } else {
14548   {
14549     UQI opval = 2;
14550     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14551     written |= (1 << 1);
14552     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14553   }
14554 }
14555
14556   abuf->written = written;
14557   return vpc;
14558 #undef FLD
14559 }
14560
14561 /* fckuge: fckuge$pack $FCCi_3,$CRj_float */
14562
14563 static SEM_PC
14564 SEM_FN_NAME (frvbf,fckuge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14565 {
14566 #define FLD(f) abuf->fields.sfmt_cfckne.f
14567   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14568   int UNUSED written = 0;
14569   IADDR UNUSED pc = abuf->addr;
14570   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14571
14572 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))))) {
14573   {
14574     UQI opval = 3;
14575     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14576     written |= (1 << 1);
14577     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14578   }
14579 } else {
14580   {
14581     UQI opval = 2;
14582     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14583     written |= (1 << 1);
14584     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14585   }
14586 }
14587
14588   abuf->written = written;
14589   return vpc;
14590 #undef FLD
14591 }
14592
14593 /* fckug: fckug$pack $FCCi_3,$CRj_float */
14594
14595 static SEM_PC
14596 SEM_FN_NAME (frvbf,fckug) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14597 {
14598 #define FLD(f) abuf->fields.sfmt_cfckne.f
14599   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14600   int UNUSED written = 0;
14601   IADDR UNUSED pc = abuf->addr;
14602   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14603
14604 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 1)))) {
14605   {
14606     UQI opval = 3;
14607     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14608     written |= (1 << 1);
14609     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14610   }
14611 } else {
14612   {
14613     UQI opval = 2;
14614     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14615     written |= (1 << 1);
14616     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14617   }
14618 }
14619
14620   abuf->written = written;
14621   return vpc;
14622 #undef FLD
14623 }
14624
14625 /* fckle: fckle$pack $FCCi_3,$CRj_float */
14626
14627 static SEM_PC
14628 SEM_FN_NAME (frvbf,fckle) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14629 {
14630 #define FLD(f) abuf->fields.sfmt_cfckne.f
14631   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14632   int UNUSED written = 0;
14633   IADDR UNUSED pc = abuf->addr;
14634   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14635
14636 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)))) {
14637   {
14638     UQI opval = 3;
14639     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14640     written |= (1 << 1);
14641     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14642   }
14643 } else {
14644   {
14645     UQI opval = 2;
14646     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14647     written |= (1 << 1);
14648     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14649   }
14650 }
14651
14652   abuf->written = written;
14653   return vpc;
14654 #undef FLD
14655 }
14656
14657 /* fckgt: fckgt$pack $FCCi_3,$CRj_float */
14658
14659 static SEM_PC
14660 SEM_FN_NAME (frvbf,fckgt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14661 {
14662 #define FLD(f) abuf->fields.sfmt_cfckne.f
14663   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14664   int UNUSED written = 0;
14665   IADDR UNUSED pc = abuf->addr;
14666   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14667
14668 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 2), 1))) {
14669   {
14670     UQI opval = 3;
14671     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14672     written |= (1 << 1);
14673     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14674   }
14675 } else {
14676   {
14677     UQI opval = 2;
14678     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14679     written |= (1 << 1);
14680     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14681   }
14682 }
14683
14684   abuf->written = written;
14685   return vpc;
14686 #undef FLD
14687 }
14688
14689 /* fckule: fckule$pack $FCCi_3,$CRj_float */
14690
14691 static SEM_PC
14692 SEM_FN_NAME (frvbf,fckule) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14693 {
14694 #define FLD(f) abuf->fields.sfmt_cfckne.f
14695   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14696   int UNUSED written = 0;
14697   IADDR UNUSED pc = abuf->addr;
14698   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14699
14700 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))))) {
14701   {
14702     UQI opval = 3;
14703     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14704     written |= (1 << 1);
14705     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14706   }
14707 } else {
14708   {
14709     UQI opval = 2;
14710     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14711     written |= (1 << 1);
14712     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14713   }
14714 }
14715
14716   abuf->written = written;
14717   return vpc;
14718 #undef FLD
14719 }
14720
14721 /* fcku: fcku$pack $FCCi_3,$CRj_float */
14722
14723 static SEM_PC
14724 SEM_FN_NAME (frvbf,fcku) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14725 {
14726 #define FLD(f) abuf->fields.sfmt_cfckne.f
14727   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14728   int UNUSED written = 0;
14729   IADDR UNUSED pc = abuf->addr;
14730   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14731
14732 if (TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 1))) {
14733   {
14734     UQI opval = 3;
14735     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14736     written |= (1 << 1);
14737     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14738   }
14739 } else {
14740   {
14741     UQI opval = 2;
14742     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14743     written |= (1 << 1);
14744     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14745   }
14746 }
14747
14748   abuf->written = written;
14749   return vpc;
14750 #undef FLD
14751 }
14752
14753 /* fcko: fcko$pack $FCCi_3,$CRj_float */
14754
14755 static SEM_PC
14756 SEM_FN_NAME (frvbf,fcko) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14757 {
14758 #define FLD(f) abuf->fields.sfmt_cfckne.f
14759   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14760   int UNUSED written = 0;
14761   IADDR UNUSED pc = abuf->addr;
14762   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14763
14764 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))))) {
14765   {
14766     UQI opval = 3;
14767     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14768     written |= (1 << 1);
14769     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14770   }
14771 } else {
14772   {
14773     UQI opval = 2;
14774     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14775     written |= (1 << 1);
14776     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14777   }
14778 }
14779
14780   abuf->written = written;
14781   return vpc;
14782 #undef FLD
14783 }
14784
14785 /* cckra: cckra$pack $CRj_int,$CCi,$cond */
14786
14787 static SEM_PC
14788 SEM_FN_NAME (frvbf,cckra) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14789 {
14790 #define FLD(f) abuf->fields.sfmt_cckeq.f
14791   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14792   int UNUSED written = 0;
14793   IADDR UNUSED pc = abuf->addr;
14794   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14795
14796 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
14797   {
14798     UQI opval = 3;
14799     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14800     written |= (1 << 2);
14801     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14802   }
14803 } else {
14804   {
14805     UQI opval = 0;
14806     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14807     written |= (1 << 2);
14808     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14809   }
14810 }
14811
14812   abuf->written = written;
14813   return vpc;
14814 #undef FLD
14815 }
14816
14817 /* cckno: cckno$pack $CRj_int,$CCi,$cond */
14818
14819 static SEM_PC
14820 SEM_FN_NAME (frvbf,cckno) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14821 {
14822 #define FLD(f) abuf->fields.sfmt_cckeq.f
14823   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14824   int UNUSED written = 0;
14825   IADDR UNUSED pc = abuf->addr;
14826   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14827
14828 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
14829   {
14830     UQI opval = 2;
14831     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14832     written |= (1 << 2);
14833     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14834   }
14835 } else {
14836   {
14837     UQI opval = 0;
14838     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14839     written |= (1 << 2);
14840     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14841   }
14842 }
14843
14844   abuf->written = written;
14845   return vpc;
14846 #undef FLD
14847 }
14848
14849 /* cckeq: cckeq$pack $ICCi_3,$CRj_int,$CCi,$cond */
14850
14851 static SEM_PC
14852 SEM_FN_NAME (frvbf,cckeq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14853 {
14854 #define FLD(f) abuf->fields.sfmt_cckeq.f
14855   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14856   int UNUSED written = 0;
14857   IADDR UNUSED pc = abuf->addr;
14858   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14859
14860 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
14861 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 4), 2))) {
14862   {
14863     UQI opval = 3;
14864     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14865     written |= (1 << 3);
14866     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14867   }
14868 } else {
14869   {
14870     UQI opval = 2;
14871     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14872     written |= (1 << 3);
14873     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14874   }
14875 }
14876 } else {
14877   {
14878     UQI opval = 0;
14879     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14880     written |= (1 << 3);
14881     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14882   }
14883 }
14884
14885   abuf->written = written;
14886   return vpc;
14887 #undef FLD
14888 }
14889
14890 /* cckne: cckne$pack $ICCi_3,$CRj_int,$CCi,$cond */
14891
14892 static SEM_PC
14893 SEM_FN_NAME (frvbf,cckne) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14894 {
14895 #define FLD(f) abuf->fields.sfmt_cckeq.f
14896   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14897   int UNUSED written = 0;
14898   IADDR UNUSED pc = abuf->addr;
14899   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14900
14901 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
14902 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 4), 2)))) {
14903   {
14904     UQI opval = 3;
14905     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14906     written |= (1 << 3);
14907     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14908   }
14909 } else {
14910   {
14911     UQI opval = 2;
14912     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14913     written |= (1 << 3);
14914     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14915   }
14916 }
14917 } else {
14918   {
14919     UQI opval = 0;
14920     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14921     written |= (1 << 3);
14922     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14923   }
14924 }
14925
14926   abuf->written = written;
14927   return vpc;
14928 #undef FLD
14929 }
14930
14931 /* cckle: cckle$pack $ICCi_3,$CRj_int,$CCi,$cond */
14932
14933 static SEM_PC
14934 SEM_FN_NAME (frvbf,cckle) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14935 {
14936 #define FLD(f) abuf->fields.sfmt_cckeq.f
14937   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14938   int UNUSED written = 0;
14939   IADDR UNUSED pc = abuf->addr;
14940   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14941
14942 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
14943 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))))) {
14944   {
14945     UQI opval = 3;
14946     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14947     written |= (1 << 3);
14948     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14949   }
14950 } else {
14951   {
14952     UQI opval = 2;
14953     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14954     written |= (1 << 3);
14955     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14956   }
14957 }
14958 } else {
14959   {
14960     UQI opval = 0;
14961     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14962     written |= (1 << 3);
14963     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14964   }
14965 }
14966
14967   abuf->written = written;
14968   return vpc;
14969 #undef FLD
14970 }
14971
14972 /* cckgt: cckgt$pack $ICCi_3,$CRj_int,$CCi,$cond */
14973
14974 static SEM_PC
14975 SEM_FN_NAME (frvbf,cckgt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14976 {
14977 #define FLD(f) abuf->fields.sfmt_cckeq.f
14978   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14979   int UNUSED written = 0;
14980   IADDR UNUSED pc = abuf->addr;
14981   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14982
14983 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
14984 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)))))) {
14985   {
14986     UQI opval = 3;
14987     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14988     written |= (1 << 3);
14989     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14990   }
14991 } else {
14992   {
14993     UQI opval = 2;
14994     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14995     written |= (1 << 3);
14996     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14997   }
14998 }
14999 } else {
15000   {
15001     UQI opval = 0;
15002     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15003     written |= (1 << 3);
15004     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15005   }
15006 }
15007
15008   abuf->written = written;
15009   return vpc;
15010 #undef FLD
15011 }
15012
15013 /* ccklt: ccklt$pack $ICCi_3,$CRj_int,$CCi,$cond */
15014
15015 static SEM_PC
15016 SEM_FN_NAME (frvbf,ccklt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15017 {
15018 #define FLD(f) abuf->fields.sfmt_cckeq.f
15019   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15020   int UNUSED written = 0;
15021   IADDR UNUSED pc = abuf->addr;
15022   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15023
15024 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15025 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)))) {
15026   {
15027     UQI opval = 3;
15028     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15029     written |= (1 << 3);
15030     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15031   }
15032 } else {
15033   {
15034     UQI opval = 2;
15035     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15036     written |= (1 << 3);
15037     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15038   }
15039 }
15040 } else {
15041   {
15042     UQI opval = 0;
15043     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15044     written |= (1 << 3);
15045     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15046   }
15047 }
15048
15049   abuf->written = written;
15050   return vpc;
15051 #undef FLD
15052 }
15053
15054 /* cckge: cckge$pack $ICCi_3,$CRj_int,$CCi,$cond */
15055
15056 static SEM_PC
15057 SEM_FN_NAME (frvbf,cckge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15058 {
15059 #define FLD(f) abuf->fields.sfmt_cckeq.f
15060   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15061   int UNUSED written = 0;
15062   IADDR UNUSED pc = abuf->addr;
15063   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15064
15065 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15066 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))))) {
15067   {
15068     UQI opval = 3;
15069     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15070     written |= (1 << 3);
15071     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15072   }
15073 } else {
15074   {
15075     UQI opval = 2;
15076     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15077     written |= (1 << 3);
15078     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15079   }
15080 }
15081 } else {
15082   {
15083     UQI opval = 0;
15084     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15085     written |= (1 << 3);
15086     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15087   }
15088 }
15089
15090   abuf->written = written;
15091   return vpc;
15092 #undef FLD
15093 }
15094
15095 /* cckls: cckls$pack $ICCi_3,$CRj_int,$CCi,$cond */
15096
15097 static SEM_PC
15098 SEM_FN_NAME (frvbf,cckls) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15099 {
15100 #define FLD(f) abuf->fields.sfmt_cckeq.f
15101   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15102   int UNUSED written = 0;
15103   IADDR UNUSED pc = abuf->addr;
15104   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15105
15106 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15107 if (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 4), 2)))) {
15108   {
15109     UQI opval = 3;
15110     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15111     written |= (1 << 3);
15112     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15113   }
15114 } else {
15115   {
15116     UQI opval = 2;
15117     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15118     written |= (1 << 3);
15119     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15120   }
15121 }
15122 } else {
15123   {
15124     UQI opval = 0;
15125     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15126     written |= (1 << 3);
15127     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15128   }
15129 }
15130
15131   abuf->written = written;
15132   return vpc;
15133 #undef FLD
15134 }
15135
15136 /* cckhi: cckhi$pack $ICCi_3,$CRj_int,$CCi,$cond */
15137
15138 static SEM_PC
15139 SEM_FN_NAME (frvbf,cckhi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15140 {
15141 #define FLD(f) abuf->fields.sfmt_cckeq.f
15142   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15143   int UNUSED written = 0;
15144   IADDR UNUSED pc = abuf->addr;
15145   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15146
15147 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15148 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))))) {
15149   {
15150     UQI opval = 3;
15151     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15152     written |= (1 << 3);
15153     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15154   }
15155 } else {
15156   {
15157     UQI opval = 2;
15158     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15159     written |= (1 << 3);
15160     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15161   }
15162 }
15163 } else {
15164   {
15165     UQI opval = 0;
15166     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15167     written |= (1 << 3);
15168     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15169   }
15170 }
15171
15172   abuf->written = written;
15173   return vpc;
15174 #undef FLD
15175 }
15176
15177 /* cckc: cckc$pack $ICCi_3,$CRj_int,$CCi,$cond */
15178
15179 static SEM_PC
15180 SEM_FN_NAME (frvbf,cckc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15181 {
15182 #define FLD(f) abuf->fields.sfmt_cckeq.f
15183   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15184   int UNUSED written = 0;
15185   IADDR UNUSED pc = abuf->addr;
15186   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15187
15188 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15189 if (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 1))) {
15190   {
15191     UQI opval = 3;
15192     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15193     written |= (1 << 3);
15194     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15195   }
15196 } else {
15197   {
15198     UQI opval = 2;
15199     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15200     written |= (1 << 3);
15201     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15202   }
15203 }
15204 } else {
15205   {
15206     UQI opval = 0;
15207     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15208     written |= (1 << 3);
15209     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15210   }
15211 }
15212
15213   abuf->written = written;
15214   return vpc;
15215 #undef FLD
15216 }
15217
15218 /* ccknc: ccknc$pack $ICCi_3,$CRj_int,$CCi,$cond */
15219
15220 static SEM_PC
15221 SEM_FN_NAME (frvbf,ccknc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15222 {
15223 #define FLD(f) abuf->fields.sfmt_cckeq.f
15224   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15225   int UNUSED written = 0;
15226   IADDR UNUSED pc = abuf->addr;
15227   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15228
15229 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15230 if (NOTBI (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 1)))) {
15231   {
15232     UQI opval = 3;
15233     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15234     written |= (1 << 3);
15235     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15236   }
15237 } else {
15238   {
15239     UQI opval = 2;
15240     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15241     written |= (1 << 3);
15242     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15243   }
15244 }
15245 } else {
15246   {
15247     UQI opval = 0;
15248     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15249     written |= (1 << 3);
15250     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15251   }
15252 }
15253
15254   abuf->written = written;
15255   return vpc;
15256 #undef FLD
15257 }
15258
15259 /* cckn: cckn$pack $ICCi_3,$CRj_int,$CCi,$cond */
15260
15261 static SEM_PC
15262 SEM_FN_NAME (frvbf,cckn) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15263 {
15264 #define FLD(f) abuf->fields.sfmt_cckeq.f
15265   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15266   int UNUSED written = 0;
15267   IADDR UNUSED pc = abuf->addr;
15268   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15269
15270 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15271 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 8), 3))) {
15272   {
15273     UQI opval = 3;
15274     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15275     written |= (1 << 3);
15276     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15277   }
15278 } else {
15279   {
15280     UQI opval = 2;
15281     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15282     written |= (1 << 3);
15283     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15284   }
15285 }
15286 } else {
15287   {
15288     UQI opval = 0;
15289     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15290     written |= (1 << 3);
15291     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15292   }
15293 }
15294
15295   abuf->written = written;
15296   return vpc;
15297 #undef FLD
15298 }
15299
15300 /* cckp: cckp$pack $ICCi_3,$CRj_int,$CCi,$cond */
15301
15302 static SEM_PC
15303 SEM_FN_NAME (frvbf,cckp) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15304 {
15305 #define FLD(f) abuf->fields.sfmt_cckeq.f
15306   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15307   int UNUSED written = 0;
15308   IADDR UNUSED pc = abuf->addr;
15309   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15310
15311 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15312 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 8), 3)))) {
15313   {
15314     UQI opval = 3;
15315     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15316     written |= (1 << 3);
15317     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15318   }
15319 } else {
15320   {
15321     UQI opval = 2;
15322     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15323     written |= (1 << 3);
15324     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15325   }
15326 }
15327 } else {
15328   {
15329     UQI opval = 0;
15330     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15331     written |= (1 << 3);
15332     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15333   }
15334 }
15335
15336   abuf->written = written;
15337   return vpc;
15338 #undef FLD
15339 }
15340
15341 /* cckv: cckv$pack $ICCi_3,$CRj_int,$CCi,$cond */
15342
15343 static SEM_PC
15344 SEM_FN_NAME (frvbf,cckv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15345 {
15346 #define FLD(f) abuf->fields.sfmt_cckeq.f
15347   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15348   int UNUSED written = 0;
15349   IADDR UNUSED pc = abuf->addr;
15350   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15351
15352 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15353 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 2), 1))) {
15354   {
15355     UQI opval = 3;
15356     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15357     written |= (1 << 3);
15358     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15359   }
15360 } else {
15361   {
15362     UQI opval = 2;
15363     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15364     written |= (1 << 3);
15365     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15366   }
15367 }
15368 } else {
15369   {
15370     UQI opval = 0;
15371     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15372     written |= (1 << 3);
15373     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15374   }
15375 }
15376
15377   abuf->written = written;
15378   return vpc;
15379 #undef FLD
15380 }
15381
15382 /* ccknv: ccknv$pack $ICCi_3,$CRj_int,$CCi,$cond */
15383
15384 static SEM_PC
15385 SEM_FN_NAME (frvbf,ccknv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15386 {
15387 #define FLD(f) abuf->fields.sfmt_cckeq.f
15388   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15389   int UNUSED written = 0;
15390   IADDR UNUSED pc = abuf->addr;
15391   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15392
15393 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15394 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 2), 1)))) {
15395   {
15396     UQI opval = 3;
15397     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15398     written |= (1 << 3);
15399     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15400   }
15401 } else {
15402   {
15403     UQI opval = 2;
15404     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15405     written |= (1 << 3);
15406     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15407   }
15408 }
15409 } else {
15410   {
15411     UQI opval = 0;
15412     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15413     written |= (1 << 3);
15414     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15415   }
15416 }
15417
15418   abuf->written = written;
15419   return vpc;
15420 #undef FLD
15421 }
15422
15423 /* cfckra: cfckra$pack $CRj_float,$CCi,$cond */
15424
15425 static SEM_PC
15426 SEM_FN_NAME (frvbf,cfckra) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15427 {
15428 #define FLD(f) abuf->fields.sfmt_cfckne.f
15429   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15430   int UNUSED written = 0;
15431   IADDR UNUSED pc = abuf->addr;
15432   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15433
15434 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15435   {
15436     UQI opval = 3;
15437     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15438     written |= (1 << 2);
15439     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15440   }
15441 } else {
15442   {
15443     UQI opval = 0;
15444     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15445     written |= (1 << 2);
15446     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15447   }
15448 }
15449
15450   abuf->written = written;
15451   return vpc;
15452 #undef FLD
15453 }
15454
15455 /* cfckno: cfckno$pack $CRj_float,$CCi,$cond */
15456
15457 static SEM_PC
15458 SEM_FN_NAME (frvbf,cfckno) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15459 {
15460 #define FLD(f) abuf->fields.sfmt_cfckne.f
15461   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15462   int UNUSED written = 0;
15463   IADDR UNUSED pc = abuf->addr;
15464   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15465
15466 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15467   {
15468     UQI opval = 2;
15469     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15470     written |= (1 << 2);
15471     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15472   }
15473 } else {
15474   {
15475     UQI opval = 0;
15476     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15477     written |= (1 << 2);
15478     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15479   }
15480 }
15481
15482   abuf->written = written;
15483   return vpc;
15484 #undef FLD
15485 }
15486
15487 /* cfckne: cfckne$pack $FCCi_3,$CRj_float,$CCi,$cond */
15488
15489 static SEM_PC
15490 SEM_FN_NAME (frvbf,cfckne) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15491 {
15492 #define FLD(f) abuf->fields.sfmt_cfckne.f
15493   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15494   int UNUSED written = 0;
15495   IADDR UNUSED pc = abuf->addr;
15496   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15497
15498 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15499 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))))) {
15500   {
15501     UQI opval = 3;
15502     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15503     written |= (1 << 3);
15504     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15505   }
15506 } else {
15507   {
15508     UQI opval = 2;
15509     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15510     written |= (1 << 3);
15511     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15512   }
15513 }
15514 } else {
15515   {
15516     UQI opval = 0;
15517     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15518     written |= (1 << 3);
15519     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15520   }
15521 }
15522
15523   abuf->written = written;
15524   return vpc;
15525 #undef FLD
15526 }
15527
15528 /* cfckeq: cfckeq$pack $FCCi_3,$CRj_float,$CCi,$cond */
15529
15530 static SEM_PC
15531 SEM_FN_NAME (frvbf,cfckeq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15532 {
15533 #define FLD(f) abuf->fields.sfmt_cfckne.f
15534   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15535   int UNUSED written = 0;
15536   IADDR UNUSED pc = abuf->addr;
15537   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15538
15539 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15540 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 8), 3))) {
15541   {
15542     UQI opval = 3;
15543     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15544     written |= (1 << 3);
15545     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15546   }
15547 } else {
15548   {
15549     UQI opval = 2;
15550     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15551     written |= (1 << 3);
15552     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15553   }
15554 }
15555 } else {
15556   {
15557     UQI opval = 0;
15558     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15559     written |= (1 << 3);
15560     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15561   }
15562 }
15563
15564   abuf->written = written;
15565   return vpc;
15566 #undef FLD
15567 }
15568
15569 /* cfcklg: cfcklg$pack $FCCi_3,$CRj_float,$CCi,$cond */
15570
15571 static SEM_PC
15572 SEM_FN_NAME (frvbf,cfcklg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15573 {
15574 #define FLD(f) abuf->fields.sfmt_cfckne.f
15575   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15576   int UNUSED written = 0;
15577   IADDR UNUSED pc = abuf->addr;
15578   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15579
15580 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15581 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)))) {
15582   {
15583     UQI opval = 3;
15584     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15585     written |= (1 << 3);
15586     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15587   }
15588 } else {
15589   {
15590     UQI opval = 2;
15591     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15592     written |= (1 << 3);
15593     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15594   }
15595 }
15596 } else {
15597   {
15598     UQI opval = 0;
15599     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15600     written |= (1 << 3);
15601     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15602   }
15603 }
15604
15605   abuf->written = written;
15606   return vpc;
15607 #undef FLD
15608 }
15609
15610 /* cfckue: cfckue$pack $FCCi_3,$CRj_float,$CCi,$cond */
15611
15612 static SEM_PC
15613 SEM_FN_NAME (frvbf,cfckue) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15614 {
15615 #define FLD(f) abuf->fields.sfmt_cfckne.f
15616   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15617   int UNUSED written = 0;
15618   IADDR UNUSED pc = abuf->addr;
15619   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15620
15621 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15622 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 8), 3)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 1)))) {
15623   {
15624     UQI opval = 3;
15625     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15626     written |= (1 << 3);
15627     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15628   }
15629 } else {
15630   {
15631     UQI opval = 2;
15632     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15633     written |= (1 << 3);
15634     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15635   }
15636 }
15637 } else {
15638   {
15639     UQI opval = 0;
15640     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15641     written |= (1 << 3);
15642     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15643   }
15644 }
15645
15646   abuf->written = written;
15647   return vpc;
15648 #undef FLD
15649 }
15650
15651 /* cfckul: cfckul$pack $FCCi_3,$CRj_float,$CCi,$cond */
15652
15653 static SEM_PC
15654 SEM_FN_NAME (frvbf,cfckul) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15655 {
15656 #define FLD(f) abuf->fields.sfmt_cfckne.f
15657   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15658   int UNUSED written = 0;
15659   IADDR UNUSED pc = abuf->addr;
15660   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15661
15662 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15663 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 4), 2)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 1)))) {
15664   {
15665     UQI opval = 3;
15666     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15667     written |= (1 << 3);
15668     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15669   }
15670 } else {
15671   {
15672     UQI opval = 2;
15673     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15674     written |= (1 << 3);
15675     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15676   }
15677 }
15678 } else {
15679   {
15680     UQI opval = 0;
15681     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15682     written |= (1 << 3);
15683     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15684   }
15685 }
15686
15687   abuf->written = written;
15688   return vpc;
15689 #undef FLD
15690 }
15691
15692 /* cfckge: cfckge$pack $FCCi_3,$CRj_float,$CCi,$cond */
15693
15694 static SEM_PC
15695 SEM_FN_NAME (frvbf,cfckge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15696 {
15697 #define FLD(f) abuf->fields.sfmt_cfckne.f
15698   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15699   int UNUSED written = 0;
15700   IADDR UNUSED pc = abuf->addr;
15701   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15702
15703 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15704 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)))) {
15705   {
15706     UQI opval = 3;
15707     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15708     written |= (1 << 3);
15709     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15710   }
15711 } else {
15712   {
15713     UQI opval = 2;
15714     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15715     written |= (1 << 3);
15716     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15717   }
15718 }
15719 } else {
15720   {
15721     UQI opval = 0;
15722     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15723     written |= (1 << 3);
15724     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15725   }
15726 }
15727
15728   abuf->written = written;
15729   return vpc;
15730 #undef FLD
15731 }
15732
15733 /* cfcklt: cfcklt$pack $FCCi_3,$CRj_float,$CCi,$cond */
15734
15735 static SEM_PC
15736 SEM_FN_NAME (frvbf,cfcklt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15737 {
15738 #define FLD(f) abuf->fields.sfmt_cfckne.f
15739   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15740   int UNUSED written = 0;
15741   IADDR UNUSED pc = abuf->addr;
15742   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15743
15744 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15745 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 4), 2))) {
15746   {
15747     UQI opval = 3;
15748     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15749     written |= (1 << 3);
15750     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15751   }
15752 } else {
15753   {
15754     UQI opval = 2;
15755     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15756     written |= (1 << 3);
15757     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15758   }
15759 }
15760 } else {
15761   {
15762     UQI opval = 0;
15763     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15764     written |= (1 << 3);
15765     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15766   }
15767 }
15768
15769   abuf->written = written;
15770   return vpc;
15771 #undef FLD
15772 }
15773
15774 /* cfckuge: cfckuge$pack $FCCi_3,$CRj_float,$CCi,$cond */
15775
15776 static SEM_PC
15777 SEM_FN_NAME (frvbf,cfckuge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15778 {
15779 #define FLD(f) abuf->fields.sfmt_cfckne.f
15780   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15781   int UNUSED written = 0;
15782   IADDR UNUSED pc = abuf->addr;
15783   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15784
15785 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15786 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))))) {
15787   {
15788     UQI opval = 3;
15789     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15790     written |= (1 << 3);
15791     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15792   }
15793 } else {
15794   {
15795     UQI opval = 2;
15796     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15797     written |= (1 << 3);
15798     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15799   }
15800 }
15801 } else {
15802   {
15803     UQI opval = 0;
15804     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15805     written |= (1 << 3);
15806     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15807   }
15808 }
15809
15810   abuf->written = written;
15811   return vpc;
15812 #undef FLD
15813 }
15814
15815 /* cfckug: cfckug$pack $FCCi_3,$CRj_float,$CCi,$cond */
15816
15817 static SEM_PC
15818 SEM_FN_NAME (frvbf,cfckug) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15819 {
15820 #define FLD(f) abuf->fields.sfmt_cfckne.f
15821   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15822   int UNUSED written = 0;
15823   IADDR UNUSED pc = abuf->addr;
15824   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15825
15826 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15827 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 1)))) {
15828   {
15829     UQI opval = 3;
15830     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15831     written |= (1 << 3);
15832     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15833   }
15834 } else {
15835   {
15836     UQI opval = 2;
15837     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15838     written |= (1 << 3);
15839     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15840   }
15841 }
15842 } else {
15843   {
15844     UQI opval = 0;
15845     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15846     written |= (1 << 3);
15847     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15848   }
15849 }
15850
15851   abuf->written = written;
15852   return vpc;
15853 #undef FLD
15854 }
15855
15856 /* cfckle: cfckle$pack $FCCi_3,$CRj_float,$CCi,$cond */
15857
15858 static SEM_PC
15859 SEM_FN_NAME (frvbf,cfckle) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15860 {
15861 #define FLD(f) abuf->fields.sfmt_cfckne.f
15862   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15863   int UNUSED written = 0;
15864   IADDR UNUSED pc = abuf->addr;
15865   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15866
15867 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15868 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)))) {
15869   {
15870     UQI opval = 3;
15871     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15872     written |= (1 << 3);
15873     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15874   }
15875 } else {
15876   {
15877     UQI opval = 2;
15878     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15879     written |= (1 << 3);
15880     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15881   }
15882 }
15883 } else {
15884   {
15885     UQI opval = 0;
15886     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15887     written |= (1 << 3);
15888     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15889   }
15890 }
15891
15892   abuf->written = written;
15893   return vpc;
15894 #undef FLD
15895 }
15896
15897 /* cfckgt: cfckgt$pack $FCCi_3,$CRj_float,$CCi,$cond */
15898
15899 static SEM_PC
15900 SEM_FN_NAME (frvbf,cfckgt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15901 {
15902 #define FLD(f) abuf->fields.sfmt_cfckne.f
15903   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15904   int UNUSED written = 0;
15905   IADDR UNUSED pc = abuf->addr;
15906   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15907
15908 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15909 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 2), 1))) {
15910   {
15911     UQI opval = 3;
15912     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15913     written |= (1 << 3);
15914     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15915   }
15916 } else {
15917   {
15918     UQI opval = 2;
15919     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15920     written |= (1 << 3);
15921     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15922   }
15923 }
15924 } else {
15925   {
15926     UQI opval = 0;
15927     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15928     written |= (1 << 3);
15929     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15930   }
15931 }
15932
15933   abuf->written = written;
15934   return vpc;
15935 #undef FLD
15936 }
15937
15938 /* cfckule: cfckule$pack $FCCi_3,$CRj_float,$CCi,$cond */
15939
15940 static SEM_PC
15941 SEM_FN_NAME (frvbf,cfckule) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15942 {
15943 #define FLD(f) abuf->fields.sfmt_cfckne.f
15944   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15945   int UNUSED written = 0;
15946   IADDR UNUSED pc = abuf->addr;
15947   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15948
15949 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15950 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))))) {
15951   {
15952     UQI opval = 3;
15953     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15954     written |= (1 << 3);
15955     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15956   }
15957 } else {
15958   {
15959     UQI opval = 2;
15960     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15961     written |= (1 << 3);
15962     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15963   }
15964 }
15965 } else {
15966   {
15967     UQI opval = 0;
15968     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15969     written |= (1 << 3);
15970     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15971   }
15972 }
15973
15974   abuf->written = written;
15975   return vpc;
15976 #undef FLD
15977 }
15978
15979 /* cfcku: cfcku$pack $FCCi_3,$CRj_float,$CCi,$cond */
15980
15981 static SEM_PC
15982 SEM_FN_NAME (frvbf,cfcku) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15983 {
15984 #define FLD(f) abuf->fields.sfmt_cfckne.f
15985   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15986   int UNUSED written = 0;
15987   IADDR UNUSED pc = abuf->addr;
15988   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15989
15990 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15991 if (TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 1))) {
15992   {
15993     UQI opval = 3;
15994     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15995     written |= (1 << 3);
15996     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15997   }
15998 } else {
15999   {
16000     UQI opval = 2;
16001     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
16002     written |= (1 << 3);
16003     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
16004   }
16005 }
16006 } else {
16007   {
16008     UQI opval = 0;
16009     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
16010     written |= (1 << 3);
16011     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
16012   }
16013 }
16014
16015   abuf->written = written;
16016   return vpc;
16017 #undef FLD
16018 }
16019
16020 /* cfcko: cfcko$pack $FCCi_3,$CRj_float,$CCi,$cond */
16021
16022 static SEM_PC
16023 SEM_FN_NAME (frvbf,cfcko) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16024 {
16025 #define FLD(f) abuf->fields.sfmt_cfckne.f
16026   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16027   int UNUSED written = 0;
16028   IADDR UNUSED pc = abuf->addr;
16029   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16030
16031 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
16032 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))))) {
16033   {
16034     UQI opval = 3;
16035     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
16036     written |= (1 << 3);
16037     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
16038   }
16039 } else {
16040   {
16041     UQI opval = 2;
16042     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
16043     written |= (1 << 3);
16044     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
16045   }
16046 }
16047 } else {
16048   {
16049     UQI opval = 0;
16050     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
16051     written |= (1 << 3);
16052     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
16053   }
16054 }
16055
16056   abuf->written = written;
16057   return vpc;
16058 #undef FLD
16059 }
16060
16061 /* cjmpl: cjmpl$pack @($GRi,$GRj),$CCi,$cond */
16062
16063 static SEM_PC
16064 SEM_FN_NAME (frvbf,cjmpl) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16065 {
16066 #define FLD(f) abuf->fields.sfmt_cjmpl.f
16067   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16068   int UNUSED written = 0;
16069   IADDR UNUSED pc = abuf->addr;
16070   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16071
16072 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
16073 {
16074 if (EQSI (FLD (f_LI), 1)) {
16075 frvbf_set_write_next_vliw_addr_to_LR (current_cpu, 1);
16076 }
16077   {
16078     USI opval = ANDSI (ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), 0xfffffffc);
16079     sim_queue_pc_write (current_cpu, opval);
16080     written |= (1 << 6);
16081     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
16082   }
16083 frvbf_model_branch (current_cpu, pc, 2);
16084 }
16085 }
16086
16087   abuf->written = written;
16088   return vpc;
16089 #undef FLD
16090 }
16091
16092 /* ccalll: ccalll$pack @($GRi,$GRj),$CCi,$cond */
16093
16094 static SEM_PC
16095 SEM_FN_NAME (frvbf,ccalll) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16096 {
16097 #define FLD(f) abuf->fields.sfmt_cjmpl.f
16098   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16099   int UNUSED written = 0;
16100   IADDR UNUSED pc = abuf->addr;
16101   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16102
16103 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
16104 {
16105 if (EQSI (FLD (f_LI), 1)) {
16106 frvbf_set_write_next_vliw_addr_to_LR (current_cpu, 1);
16107 }
16108   {
16109     USI opval = ANDSI (ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), 0xfffffffc);
16110     sim_queue_pc_write (current_cpu, opval);
16111     written |= (1 << 6);
16112     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
16113   }
16114 frvbf_model_branch (current_cpu, pc, 2);
16115 }
16116 }
16117
16118   abuf->written = written;
16119   return vpc;
16120 #undef FLD
16121 }
16122
16123 /* ici: ici$pack @($GRi,$GRj) */
16124
16125 static SEM_PC
16126 SEM_FN_NAME (frvbf,ici) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16127 {
16128 #define FLD(f) abuf->fields.sfmt_icpl.f
16129   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16130   int UNUSED written = 0;
16131   IADDR UNUSED pc = abuf->addr;
16132   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16133
16134 frvbf_insn_cache_invalidate (current_cpu, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), 0);
16135
16136   return vpc;
16137 #undef FLD
16138 }
16139
16140 /* dci: dci$pack @($GRi,$GRj) */
16141
16142 static SEM_PC
16143 SEM_FN_NAME (frvbf,dci) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16144 {
16145 #define FLD(f) abuf->fields.sfmt_icpl.f
16146   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16147   int UNUSED written = 0;
16148   IADDR UNUSED pc = abuf->addr;
16149   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16150
16151 frvbf_data_cache_invalidate (current_cpu, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), 0);
16152
16153   return vpc;
16154 #undef FLD
16155 }
16156
16157 /* icei: icei$pack @($GRi,$GRj),$ae */
16158
16159 static SEM_PC
16160 SEM_FN_NAME (frvbf,icei) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16161 {
16162 #define FLD(f) abuf->fields.sfmt_icei.f
16163   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16164   int UNUSED written = 0;
16165   IADDR UNUSED pc = abuf->addr;
16166   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16167
16168 if (EQSI (FLD (f_ae), 0)) {
16169 frvbf_insn_cache_invalidate (current_cpu, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), -1);
16170 } else {
16171 frvbf_insn_cache_invalidate (current_cpu, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), FLD (f_ae));
16172 }
16173
16174   return vpc;
16175 #undef FLD
16176 }
16177
16178 /* dcei: dcei$pack @($GRi,$GRj),$ae */
16179
16180 static SEM_PC
16181 SEM_FN_NAME (frvbf,dcei) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16182 {
16183 #define FLD(f) abuf->fields.sfmt_icei.f
16184   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16185   int UNUSED written = 0;
16186   IADDR UNUSED pc = abuf->addr;
16187   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16188
16189 if (EQSI (FLD (f_ae), 0)) {
16190 frvbf_data_cache_invalidate (current_cpu, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), -1);
16191 } else {
16192 frvbf_data_cache_invalidate (current_cpu, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), FLD (f_ae));
16193 }
16194
16195   return vpc;
16196 #undef FLD
16197 }
16198
16199 /* dcf: dcf$pack @($GRi,$GRj) */
16200
16201 static SEM_PC
16202 SEM_FN_NAME (frvbf,dcf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16203 {
16204 #define FLD(f) abuf->fields.sfmt_icpl.f
16205   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16206   int UNUSED written = 0;
16207   IADDR UNUSED pc = abuf->addr;
16208   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16209
16210 frvbf_data_cache_flush (current_cpu, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), 0);
16211
16212   return vpc;
16213 #undef FLD
16214 }
16215
16216 /* dcef: dcef$pack @($GRi,$GRj),$ae */
16217
16218 static SEM_PC
16219 SEM_FN_NAME (frvbf,dcef) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16220 {
16221 #define FLD(f) abuf->fields.sfmt_icei.f
16222   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16223   int UNUSED written = 0;
16224   IADDR UNUSED pc = abuf->addr;
16225   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16226
16227 if (EQSI (FLD (f_ae), 0)) {
16228 frvbf_data_cache_flush (current_cpu, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), -1);
16229 } else {
16230 frvbf_data_cache_flush (current_cpu, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), FLD (f_ae));
16231 }
16232
16233   return vpc;
16234 #undef FLD
16235 }
16236
16237 /* witlb: witlb$pack $GRk,@($GRi,$GRj) */
16238
16239 static SEM_PC
16240 SEM_FN_NAME (frvbf,witlb) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16241 {
16242 #define FLD(f) abuf->fields.fmt_empty.f
16243   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16244   int UNUSED written = 0;
16245   IADDR UNUSED pc = abuf->addr;
16246   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16247
16248 ((void) 0); /*nop*/
16249
16250   return vpc;
16251 #undef FLD
16252 }
16253
16254 /* wdtlb: wdtlb$pack $GRk,@($GRi,$GRj) */
16255
16256 static SEM_PC
16257 SEM_FN_NAME (frvbf,wdtlb) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16258 {
16259 #define FLD(f) abuf->fields.fmt_empty.f
16260   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16261   int UNUSED written = 0;
16262   IADDR UNUSED pc = abuf->addr;
16263   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16264
16265 ((void) 0); /*nop*/
16266
16267   return vpc;
16268 #undef FLD
16269 }
16270
16271 /* itlbi: itlbi$pack @($GRi,$GRj) */
16272
16273 static SEM_PC
16274 SEM_FN_NAME (frvbf,itlbi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16275 {
16276 #define FLD(f) abuf->fields.fmt_empty.f
16277   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16278   int UNUSED written = 0;
16279   IADDR UNUSED pc = abuf->addr;
16280   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16281
16282 ((void) 0); /*nop*/
16283
16284   return vpc;
16285 #undef FLD
16286 }
16287
16288 /* dtlbi: dtlbi$pack @($GRi,$GRj) */
16289
16290 static SEM_PC
16291 SEM_FN_NAME (frvbf,dtlbi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16292 {
16293 #define FLD(f) abuf->fields.fmt_empty.f
16294   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16295   int UNUSED written = 0;
16296   IADDR UNUSED pc = abuf->addr;
16297   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16298
16299 ((void) 0); /*nop*/
16300
16301   return vpc;
16302 #undef FLD
16303 }
16304
16305 /* icpl: icpl$pack $GRi,$GRj,$lock */
16306
16307 static SEM_PC
16308 SEM_FN_NAME (frvbf,icpl) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16309 {
16310 #define FLD(f) abuf->fields.sfmt_icpl.f
16311   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16312   int UNUSED written = 0;
16313   IADDR UNUSED pc = abuf->addr;
16314   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16315
16316 frvbf_insn_cache_preload (current_cpu, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), FLD (f_lock));
16317
16318   return vpc;
16319 #undef FLD
16320 }
16321
16322 /* dcpl: dcpl$pack $GRi,$GRj,$lock */
16323
16324 static SEM_PC
16325 SEM_FN_NAME (frvbf,dcpl) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16326 {
16327 #define FLD(f) abuf->fields.sfmt_icpl.f
16328   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16329   int UNUSED written = 0;
16330   IADDR UNUSED pc = abuf->addr;
16331   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16332
16333 frvbf_data_cache_preload (current_cpu, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), FLD (f_lock));
16334
16335   return vpc;
16336 #undef FLD
16337 }
16338
16339 /* icul: icul$pack $GRi */
16340
16341 static SEM_PC
16342 SEM_FN_NAME (frvbf,icul) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16343 {
16344 #define FLD(f) abuf->fields.sfmt_jmpil.f
16345   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16346   int UNUSED written = 0;
16347   IADDR UNUSED pc = abuf->addr;
16348   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16349
16350 frvbf_insn_cache_unlock (current_cpu, GET_H_GR (FLD (f_GRi)));
16351
16352   return vpc;
16353 #undef FLD
16354 }
16355
16356 /* dcul: dcul$pack $GRi */
16357
16358 static SEM_PC
16359 SEM_FN_NAME (frvbf,dcul) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16360 {
16361 #define FLD(f) abuf->fields.sfmt_jmpil.f
16362   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16363   int UNUSED written = 0;
16364   IADDR UNUSED pc = abuf->addr;
16365   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16366
16367 frvbf_data_cache_unlock (current_cpu, GET_H_GR (FLD (f_GRi)));
16368
16369   return vpc;
16370 #undef FLD
16371 }
16372
16373 /* bar: bar$pack */
16374
16375 static SEM_PC
16376 SEM_FN_NAME (frvbf,bar) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16377 {
16378 #define FLD(f) abuf->fields.fmt_empty.f
16379   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16380   int UNUSED written = 0;
16381   IADDR UNUSED pc = abuf->addr;
16382   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16383
16384 ((void) 0); /*nop*/
16385
16386   return vpc;
16387 #undef FLD
16388 }
16389
16390 /* membar: membar$pack */
16391
16392 static SEM_PC
16393 SEM_FN_NAME (frvbf,membar) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16394 {
16395 #define FLD(f) abuf->fields.fmt_empty.f
16396   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16397   int UNUSED written = 0;
16398   IADDR UNUSED pc = abuf->addr;
16399   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16400
16401 ((void) 0); /*nop*/
16402
16403   return vpc;
16404 #undef FLD
16405 }
16406
16407 /* cop1: cop1$pack $s6_1,$CPRi,$CPRj,$CPRk */
16408
16409 static SEM_PC
16410 SEM_FN_NAME (frvbf,cop1) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16411 {
16412 #define FLD(f) abuf->fields.fmt_empty.f
16413   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16414   int UNUSED written = 0;
16415   IADDR UNUSED pc = abuf->addr;
16416   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16417
16418 ((void) 0); /*nop*/
16419
16420   return vpc;
16421 #undef FLD
16422 }
16423
16424 /* cop2: cop2$pack $s6_1,$CPRi,$CPRj,$CPRk */
16425
16426 static SEM_PC
16427 SEM_FN_NAME (frvbf,cop2) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16428 {
16429 #define FLD(f) abuf->fields.fmt_empty.f
16430   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16431   int UNUSED written = 0;
16432   IADDR UNUSED pc = abuf->addr;
16433   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16434
16435 ((void) 0); /*nop*/
16436
16437   return vpc;
16438 #undef FLD
16439 }
16440
16441 /* clrgr: clrgr$pack $GRk */
16442
16443 static SEM_PC
16444 SEM_FN_NAME (frvbf,clrgr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16445 {
16446 #define FLD(f) abuf->fields.sfmt_swapi.f
16447   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16448   int UNUSED written = 0;
16449   IADDR UNUSED pc = abuf->addr;
16450   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16451
16452 {
16453 frv_ref_SI (GET_H_GR (FLD (f_GRk)));
16454 frvbf_clear_ne_flags (current_cpu, FLD (f_GRk), 0);
16455 }
16456
16457   return vpc;
16458 #undef FLD
16459 }
16460
16461 /* clrfr: clrfr$pack $FRk */
16462
16463 static SEM_PC
16464 SEM_FN_NAME (frvbf,clrfr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16465 {
16466 #define FLD(f) abuf->fields.sfmt_cfmadds.f
16467   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16468   int UNUSED written = 0;
16469   IADDR UNUSED pc = abuf->addr;
16470   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16471
16472 {
16473 frv_ref_SI (GET_H_FR (FLD (f_FRk)));
16474 frvbf_clear_ne_flags (current_cpu, FLD (f_FRk), 1);
16475 }
16476
16477   return vpc;
16478 #undef FLD
16479 }
16480
16481 /* clrga: clrga$pack */
16482
16483 static SEM_PC
16484 SEM_FN_NAME (frvbf,clrga) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16485 {
16486 #define FLD(f) abuf->fields.fmt_empty.f
16487   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16488   int UNUSED written = 0;
16489   IADDR UNUSED pc = abuf->addr;
16490   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16491
16492 frvbf_clear_ne_flags (current_cpu, -1, 0);
16493
16494   return vpc;
16495 #undef FLD
16496 }
16497
16498 /* clrfa: clrfa$pack */
16499
16500 static SEM_PC
16501 SEM_FN_NAME (frvbf,clrfa) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16502 {
16503 #define FLD(f) abuf->fields.fmt_empty.f
16504   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16505   int UNUSED written = 0;
16506   IADDR UNUSED pc = abuf->addr;
16507   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16508
16509 frvbf_clear_ne_flags (current_cpu, -1, 1);
16510
16511   return vpc;
16512 #undef FLD
16513 }
16514
16515 /* commitgr: commitgr$pack $GRk */
16516
16517 static SEM_PC
16518 SEM_FN_NAME (frvbf,commitgr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16519 {
16520 #define FLD(f) abuf->fields.sfmt_setlos.f
16521   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16522   int UNUSED written = 0;
16523   IADDR UNUSED pc = abuf->addr;
16524   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16525
16526 frvbf_commit (current_cpu, FLD (f_GRk), 0);
16527
16528   return vpc;
16529 #undef FLD
16530 }
16531
16532 /* commitfr: commitfr$pack $FRk */
16533
16534 static SEM_PC
16535 SEM_FN_NAME (frvbf,commitfr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16536 {
16537 #define FLD(f) abuf->fields.sfmt_mhsethis.f
16538   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16539   int UNUSED written = 0;
16540   IADDR UNUSED pc = abuf->addr;
16541   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16542
16543 frvbf_commit (current_cpu, FLD (f_FRk), 1);
16544
16545   return vpc;
16546 #undef FLD
16547 }
16548
16549 /* commitga: commitga$pack */
16550
16551 static SEM_PC
16552 SEM_FN_NAME (frvbf,commitga) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16553 {
16554 #define FLD(f) abuf->fields.fmt_empty.f
16555   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16556   int UNUSED written = 0;
16557   IADDR UNUSED pc = abuf->addr;
16558   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16559
16560 frvbf_commit (current_cpu, -1, 0);
16561
16562   return vpc;
16563 #undef FLD
16564 }
16565
16566 /* commitfa: commitfa$pack */
16567
16568 static SEM_PC
16569 SEM_FN_NAME (frvbf,commitfa) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16570 {
16571 #define FLD(f) abuf->fields.fmt_empty.f
16572   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16573   int UNUSED written = 0;
16574   IADDR UNUSED pc = abuf->addr;
16575   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16576
16577 frvbf_commit (current_cpu, -1, 1);
16578
16579   return vpc;
16580 #undef FLD
16581 }
16582
16583 /* fitos: fitos$pack $FRintj,$FRk */
16584
16585 static SEM_PC
16586 SEM_FN_NAME (frvbf,fitos) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16587 {
16588 #define FLD(f) abuf->fields.sfmt_fditos.f
16589   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16590   int UNUSED written = 0;
16591   IADDR UNUSED pc = abuf->addr;
16592   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16593
16594   {
16595     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->floatsisf) (CGEN_CPU_FPU (current_cpu), GET_H_FR_INT (FLD (f_FRj)));
16596     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
16597     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
16598   }
16599
16600   return vpc;
16601 #undef FLD
16602 }
16603
16604 /* fstoi: fstoi$pack $FRj,$FRintk */
16605
16606 static SEM_PC
16607 SEM_FN_NAME (frvbf,fstoi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16608 {
16609 #define FLD(f) abuf->fields.sfmt_fdstoi.f
16610   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16611   int UNUSED written = 0;
16612   IADDR UNUSED pc = abuf->addr;
16613   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16614
16615   {
16616     SI opval = (* CGEN_CPU_FPU (current_cpu)->ops->fixsfsi) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
16617     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
16618     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
16619   }
16620
16621   return vpc;
16622 #undef FLD
16623 }
16624
16625 /* fitod: fitod$pack $FRintj,$FRdoublek */
16626
16627 static SEM_PC
16628 SEM_FN_NAME (frvbf,fitod) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16629 {
16630 #define FLD(f) abuf->fields.sfmt_fitod.f
16631   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16632   int UNUSED written = 0;
16633   IADDR UNUSED pc = abuf->addr;
16634   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16635
16636   {
16637     DF opval = (* CGEN_CPU_FPU (current_cpu)->ops->floatsidf) (CGEN_CPU_FPU (current_cpu), GET_H_FR_INT (FLD (f_FRj)));
16638     sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
16639     TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
16640   }
16641
16642   return vpc;
16643 #undef FLD
16644 }
16645
16646 /* fdtoi: fdtoi$pack $FRdoublej,$FRintk */
16647
16648 static SEM_PC
16649 SEM_FN_NAME (frvbf,fdtoi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16650 {
16651 #define FLD(f) abuf->fields.sfmt_fdtoi.f
16652   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16653   int UNUSED written = 0;
16654   IADDR UNUSED pc = abuf->addr;
16655   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16656
16657   {
16658     SI opval = (* CGEN_CPU_FPU (current_cpu)->ops->fixdfsi) (CGEN_CPU_FPU (current_cpu), GET_H_FR_DOUBLE (FLD (f_FRj)));
16659     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
16660     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
16661   }
16662
16663   return vpc;
16664 #undef FLD
16665 }
16666
16667 /* fditos: fditos$pack $FRintj,$FRk */
16668
16669 static SEM_PC
16670 SEM_FN_NAME (frvbf,fditos) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16671 {
16672 #define FLD(f) abuf->fields.sfmt_fditos.f
16673   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16674   int UNUSED written = 0;
16675   IADDR UNUSED pc = abuf->addr;
16676   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16677
16678 {
16679   {
16680     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->floatsisf) (CGEN_CPU_FPU (current_cpu), GET_H_FR_INT (FLD (f_FRj)));
16681     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
16682     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
16683   }
16684   {
16685     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->floatsisf) (CGEN_CPU_FPU (current_cpu), GET_H_FR_INT (((FLD (f_FRj)) + (1))));
16686     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
16687     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
16688   }
16689 }
16690
16691   return vpc;
16692 #undef FLD
16693 }
16694
16695 /* fdstoi: fdstoi$pack $FRj,$FRintk */
16696
16697 static SEM_PC
16698 SEM_FN_NAME (frvbf,fdstoi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16699 {
16700 #define FLD(f) abuf->fields.sfmt_fdstoi.f
16701   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16702   int UNUSED written = 0;
16703   IADDR UNUSED pc = abuf->addr;
16704   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16705
16706 {
16707   {
16708     SI opval = (* CGEN_CPU_FPU (current_cpu)->ops->fixsfsi) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
16709     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
16710     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
16711   }
16712   {
16713     USI opval = (* CGEN_CPU_FPU (current_cpu)->ops->fixsfsi) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRj)) + (1))));
16714     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (1)), opval);
16715     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
16716   }
16717 }
16718
16719   return vpc;
16720 #undef FLD
16721 }
16722
16723 /* nfditos: nfditos$pack $FRintj,$FRk */
16724
16725 static SEM_PC
16726 SEM_FN_NAME (frvbf,nfditos) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16727 {
16728 #define FLD(f) abuf->fields.sfmt_fditos.f
16729   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16730   int UNUSED written = 0;
16731   IADDR UNUSED pc = abuf->addr;
16732   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16733
16734 {
16735 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
16736   {
16737     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->floatsisf) (CGEN_CPU_FPU (current_cpu), GET_H_FR_INT (FLD (f_FRj)));
16738     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
16739     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
16740   }
16741 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
16742   {
16743     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->floatsisf) (CGEN_CPU_FPU (current_cpu), GET_H_FR_INT (((FLD (f_FRj)) + (1))));
16744     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
16745     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
16746   }
16747 }
16748
16749   return vpc;
16750 #undef FLD
16751 }
16752
16753 /* nfdstoi: nfdstoi$pack $FRj,$FRintk */
16754
16755 static SEM_PC
16756 SEM_FN_NAME (frvbf,nfdstoi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16757 {
16758 #define FLD(f) abuf->fields.sfmt_fdstoi.f
16759   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16760   int UNUSED written = 0;
16761   IADDR UNUSED pc = abuf->addr;
16762   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16763
16764 {
16765 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
16766   {
16767     SI opval = (* CGEN_CPU_FPU (current_cpu)->ops->fixsfsi) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
16768     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
16769     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
16770   }
16771 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
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 /* cfitos: cfitos$pack $FRintj,$FRk,$CCi,$cond */
16784
16785 static SEM_PC
16786 SEM_FN_NAME (frvbf,cfitos) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16787 {
16788 #define FLD(f) abuf->fields.sfmt_cfitos.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 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
16795   {
16796     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->floatsisf) (CGEN_CPU_FPU (current_cpu), GET_H_FR_INT (FLD (f_FRj)));
16797     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
16798     written |= (1 << 3);
16799     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
16800   }
16801 }
16802
16803   abuf->written = written;
16804   return vpc;
16805 #undef FLD
16806 }
16807
16808 /* cfstoi: cfstoi$pack $FRj,$FRintk,$CCi,$cond */
16809
16810 static SEM_PC
16811 SEM_FN_NAME (frvbf,cfstoi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16812 {
16813 #define FLD(f) abuf->fields.sfmt_cfstoi.f
16814   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16815   int UNUSED written = 0;
16816   IADDR UNUSED pc = abuf->addr;
16817   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16818
16819 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
16820   {
16821     SI opval = (* CGEN_CPU_FPU (current_cpu)->ops->fixsfsi) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
16822     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
16823     written |= (1 << 3);
16824     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
16825   }
16826 }
16827
16828   abuf->written = written;
16829   return vpc;
16830 #undef FLD
16831 }
16832
16833 /* nfitos: nfitos$pack $FRintj,$FRk */
16834
16835 static SEM_PC
16836 SEM_FN_NAME (frvbf,nfitos) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16837 {
16838 #define FLD(f) abuf->fields.sfmt_fditos.f
16839   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16840   int UNUSED written = 0;
16841   IADDR UNUSED pc = abuf->addr;
16842   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16843
16844 {
16845 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
16846   {
16847     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->floatsisf) (CGEN_CPU_FPU (current_cpu), GET_H_FR_INT (FLD (f_FRj)));
16848     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
16849     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
16850   }
16851 }
16852
16853   return vpc;
16854 #undef FLD
16855 }
16856
16857 /* nfstoi: nfstoi$pack $FRj,$FRintk */
16858
16859 static SEM_PC
16860 SEM_FN_NAME (frvbf,nfstoi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16861 {
16862 #define FLD(f) abuf->fields.sfmt_fdstoi.f
16863   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16864   int UNUSED written = 0;
16865   IADDR UNUSED pc = abuf->addr;
16866   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16867
16868 {
16869 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
16870   {
16871     SI opval = (* CGEN_CPU_FPU (current_cpu)->ops->fixsfsi) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
16872     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
16873     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
16874   }
16875 }
16876
16877   return vpc;
16878 #undef FLD
16879 }
16880
16881 /* fmovs: fmovs$pack $FRj,$FRk */
16882
16883 static SEM_PC
16884 SEM_FN_NAME (frvbf,fmovs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16885 {
16886 #define FLD(f) abuf->fields.sfmt_cfmadds.f
16887   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16888   int UNUSED written = 0;
16889   IADDR UNUSED pc = abuf->addr;
16890   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16891
16892   {
16893     SF opval = GET_H_FR (FLD (f_FRj));
16894     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
16895     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
16896   }
16897
16898   return vpc;
16899 #undef FLD
16900 }
16901
16902 /* fmovd: fmovd$pack $FRdoublej,$FRdoublek */
16903
16904 static SEM_PC
16905 SEM_FN_NAME (frvbf,fmovd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16906 {
16907 #define FLD(f) abuf->fields.sfmt_fmaddd.f
16908   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16909   int UNUSED written = 0;
16910   IADDR UNUSED pc = abuf->addr;
16911   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16912
16913   {
16914     DF opval = GET_H_FR_DOUBLE (FLD (f_FRj));
16915     sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
16916     TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
16917   }
16918
16919   return vpc;
16920 #undef FLD
16921 }
16922
16923 /* fdmovs: fdmovs$pack $FRj,$FRk */
16924
16925 static SEM_PC
16926 SEM_FN_NAME (frvbf,fdmovs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16927 {
16928 #define FLD(f) abuf->fields.sfmt_fdmadds.f
16929   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16930   int UNUSED written = 0;
16931   IADDR UNUSED pc = abuf->addr;
16932   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16933
16934 {
16935   {
16936     SF opval = GET_H_FR (FLD (f_FRj));
16937     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
16938     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
16939   }
16940   {
16941     SF opval = GET_H_FR (((FLD (f_FRj)) + (1)));
16942     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
16943     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
16944   }
16945 }
16946
16947   return vpc;
16948 #undef FLD
16949 }
16950
16951 /* cfmovs: cfmovs$pack $FRj,$FRk,$CCi,$cond */
16952
16953 static SEM_PC
16954 SEM_FN_NAME (frvbf,cfmovs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16955 {
16956 #define FLD(f) abuf->fields.sfmt_cfmadds.f
16957   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16958   int UNUSED written = 0;
16959   IADDR UNUSED pc = abuf->addr;
16960   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16961
16962 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
16963   {
16964     SF opval = GET_H_FR (FLD (f_FRj));
16965     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
16966     written |= (1 << 3);
16967     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
16968   }
16969 }
16970
16971   abuf->written = written;
16972   return vpc;
16973 #undef FLD
16974 }
16975
16976 /* fnegs: fnegs$pack $FRj,$FRk */
16977
16978 static SEM_PC
16979 SEM_FN_NAME (frvbf,fnegs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16980 {
16981 #define FLD(f) abuf->fields.sfmt_cfmadds.f
16982   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16983   int UNUSED written = 0;
16984   IADDR UNUSED pc = abuf->addr;
16985   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16986
16987   {
16988     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->negsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
16989     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
16990     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
16991   }
16992
16993   return vpc;
16994 #undef FLD
16995 }
16996
16997 /* fnegd: fnegd$pack $FRdoublej,$FRdoublek */
16998
16999 static SEM_PC
17000 SEM_FN_NAME (frvbf,fnegd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17001 {
17002 #define FLD(f) abuf->fields.sfmt_fmaddd.f
17003   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17004   int UNUSED written = 0;
17005   IADDR UNUSED pc = abuf->addr;
17006   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17007
17008   {
17009     DF opval = (* CGEN_CPU_FPU (current_cpu)->ops->negdf) (CGEN_CPU_FPU (current_cpu), GET_H_FR_DOUBLE (FLD (f_FRj)));
17010     sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
17011     TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
17012   }
17013
17014   return vpc;
17015 #undef FLD
17016 }
17017
17018 /* fdnegs: fdnegs$pack $FRj,$FRk */
17019
17020 static SEM_PC
17021 SEM_FN_NAME (frvbf,fdnegs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17022 {
17023 #define FLD(f) abuf->fields.sfmt_fdmadds.f
17024   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17025   int UNUSED written = 0;
17026   IADDR UNUSED pc = abuf->addr;
17027   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17028
17029 {
17030   {
17031     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->negsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17032     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17033     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17034   }
17035   {
17036     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->negsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRj)) + (1))));
17037     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
17038     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17039   }
17040 }
17041
17042   return vpc;
17043 #undef FLD
17044 }
17045
17046 /* cfnegs: cfnegs$pack $FRj,$FRk,$CCi,$cond */
17047
17048 static SEM_PC
17049 SEM_FN_NAME (frvbf,cfnegs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17050 {
17051 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17052   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17053   int UNUSED written = 0;
17054   IADDR UNUSED pc = abuf->addr;
17055   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17056
17057 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
17058   {
17059     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->negsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17060     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17061     written |= (1 << 3);
17062     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17063   }
17064 }
17065
17066   abuf->written = written;
17067   return vpc;
17068 #undef FLD
17069 }
17070
17071 /* fabss: fabss$pack $FRj,$FRk */
17072
17073 static SEM_PC
17074 SEM_FN_NAME (frvbf,fabss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17075 {
17076 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17077   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17078   int UNUSED written = 0;
17079   IADDR UNUSED pc = abuf->addr;
17080   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17081
17082   {
17083     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->abssf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17084     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17085     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17086   }
17087
17088   return vpc;
17089 #undef FLD
17090 }
17091
17092 /* fabsd: fabsd$pack $FRdoublej,$FRdoublek */
17093
17094 static SEM_PC
17095 SEM_FN_NAME (frvbf,fabsd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17096 {
17097 #define FLD(f) abuf->fields.sfmt_fmaddd.f
17098   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17099   int UNUSED written = 0;
17100   IADDR UNUSED pc = abuf->addr;
17101   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17102
17103   {
17104     DF opval = (* CGEN_CPU_FPU (current_cpu)->ops->absdf) (CGEN_CPU_FPU (current_cpu), GET_H_FR_DOUBLE (FLD (f_FRj)));
17105     sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
17106     TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
17107   }
17108
17109   return vpc;
17110 #undef FLD
17111 }
17112
17113 /* fdabss: fdabss$pack $FRj,$FRk */
17114
17115 static SEM_PC
17116 SEM_FN_NAME (frvbf,fdabss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17117 {
17118 #define FLD(f) abuf->fields.sfmt_fdmadds.f
17119   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17120   int UNUSED written = 0;
17121   IADDR UNUSED pc = abuf->addr;
17122   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17123
17124 {
17125   {
17126     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->abssf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17127     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17128     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17129   }
17130   {
17131     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->abssf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRj)) + (1))));
17132     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
17133     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17134   }
17135 }
17136
17137   return vpc;
17138 #undef FLD
17139 }
17140
17141 /* cfabss: cfabss$pack $FRj,$FRk,$CCi,$cond */
17142
17143 static SEM_PC
17144 SEM_FN_NAME (frvbf,cfabss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17145 {
17146 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17147   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17148   int UNUSED written = 0;
17149   IADDR UNUSED pc = abuf->addr;
17150   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17151
17152 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
17153   {
17154     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->abssf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17155     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17156     written |= (1 << 3);
17157     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17158   }
17159 }
17160
17161   abuf->written = written;
17162   return vpc;
17163 #undef FLD
17164 }
17165
17166 /* fsqrts: fsqrts$pack $FRj,$FRk */
17167
17168 static SEM_PC
17169 SEM_FN_NAME (frvbf,fsqrts) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17170 {
17171 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17172   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17173   int UNUSED written = 0;
17174   IADDR UNUSED pc = abuf->addr;
17175   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17176
17177   {
17178     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->sqrtsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17179     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17180     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17181   }
17182
17183   return vpc;
17184 #undef FLD
17185 }
17186
17187 /* fdsqrts: fdsqrts$pack $FRj,$FRk */
17188
17189 static SEM_PC
17190 SEM_FN_NAME (frvbf,fdsqrts) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17191 {
17192 #define FLD(f) abuf->fields.sfmt_fdmadds.f
17193   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17194   int UNUSED written = 0;
17195   IADDR UNUSED pc = abuf->addr;
17196   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17197
17198 {
17199   {
17200     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->sqrtsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17201     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17202     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17203   }
17204   {
17205     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->sqrtsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRj)) + (1))));
17206     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
17207     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17208   }
17209 }
17210
17211   return vpc;
17212 #undef FLD
17213 }
17214
17215 /* nfdsqrts: nfdsqrts$pack $FRj,$FRk */
17216
17217 static SEM_PC
17218 SEM_FN_NAME (frvbf,nfdsqrts) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17219 {
17220 #define FLD(f) abuf->fields.sfmt_fdmadds.f
17221   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17222   int UNUSED written = 0;
17223   IADDR UNUSED pc = abuf->addr;
17224   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17225
17226 {
17227 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
17228   {
17229     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->sqrtsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17230     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17231     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17232   }
17233 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
17234   {
17235     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->sqrtsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRj)) + (1))));
17236     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
17237     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17238   }
17239 }
17240
17241   return vpc;
17242 #undef FLD
17243 }
17244
17245 /* fsqrtd: fsqrtd$pack $FRdoublej,$FRdoublek */
17246
17247 static SEM_PC
17248 SEM_FN_NAME (frvbf,fsqrtd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17249 {
17250 #define FLD(f) abuf->fields.sfmt_fmaddd.f
17251   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17252   int UNUSED written = 0;
17253   IADDR UNUSED pc = abuf->addr;
17254   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17255
17256   {
17257     DF opval = (* CGEN_CPU_FPU (current_cpu)->ops->sqrtdf) (CGEN_CPU_FPU (current_cpu), GET_H_FR_DOUBLE (FLD (f_FRj)));
17258     sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
17259     TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
17260   }
17261
17262   return vpc;
17263 #undef FLD
17264 }
17265
17266 /* cfsqrts: cfsqrts$pack $FRj,$FRk,$CCi,$cond */
17267
17268 static SEM_PC
17269 SEM_FN_NAME (frvbf,cfsqrts) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17270 {
17271 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17272   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17273   int UNUSED written = 0;
17274   IADDR UNUSED pc = abuf->addr;
17275   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17276
17277 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
17278   {
17279     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->sqrtsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17280     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17281     written |= (1 << 3);
17282     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17283   }
17284 }
17285
17286   abuf->written = written;
17287   return vpc;
17288 #undef FLD
17289 }
17290
17291 /* nfsqrts: nfsqrts$pack $FRj,$FRk */
17292
17293 static SEM_PC
17294 SEM_FN_NAME (frvbf,nfsqrts) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17295 {
17296 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17297   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17298   int UNUSED written = 0;
17299   IADDR UNUSED pc = abuf->addr;
17300   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17301
17302 {
17303 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
17304   {
17305     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->sqrtsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17306     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17307     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17308   }
17309 }
17310
17311   return vpc;
17312 #undef FLD
17313 }
17314
17315 /* fadds: fadds$pack $FRi,$FRj,$FRk */
17316
17317 static SEM_PC
17318 SEM_FN_NAME (frvbf,fadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17319 {
17320 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17321   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17322   int UNUSED written = 0;
17323   IADDR UNUSED pc = abuf->addr;
17324   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17325
17326   {
17327     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)));
17328     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17329     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17330   }
17331
17332   return vpc;
17333 #undef FLD
17334 }
17335
17336 /* fsubs: fsubs$pack $FRi,$FRj,$FRk */
17337
17338 static SEM_PC
17339 SEM_FN_NAME (frvbf,fsubs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17340 {
17341 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17342   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17343   int UNUSED written = 0;
17344   IADDR UNUSED pc = abuf->addr;
17345   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17346
17347   {
17348     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)));
17349     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17350     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17351   }
17352
17353   return vpc;
17354 #undef FLD
17355 }
17356
17357 /* fmuls: fmuls$pack $FRi,$FRj,$FRk */
17358
17359 static SEM_PC
17360 SEM_FN_NAME (frvbf,fmuls) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17361 {
17362 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17363   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17364   int UNUSED written = 0;
17365   IADDR UNUSED pc = abuf->addr;
17366   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17367
17368   {
17369     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)));
17370     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17371     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17372   }
17373
17374   return vpc;
17375 #undef FLD
17376 }
17377
17378 /* fdivs: fdivs$pack $FRi,$FRj,$FRk */
17379
17380 static SEM_PC
17381 SEM_FN_NAME (frvbf,fdivs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17382 {
17383 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17384   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17385   int UNUSED written = 0;
17386   IADDR UNUSED pc = abuf->addr;
17387   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17388
17389   {
17390     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)));
17391     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17392     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17393   }
17394
17395   return vpc;
17396 #undef FLD
17397 }
17398
17399 /* faddd: faddd$pack $FRdoublei,$FRdoublej,$FRdoublek */
17400
17401 static SEM_PC
17402 SEM_FN_NAME (frvbf,faddd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17403 {
17404 #define FLD(f) abuf->fields.sfmt_fmaddd.f
17405   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17406   int UNUSED written = 0;
17407   IADDR UNUSED pc = abuf->addr;
17408   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17409
17410   {
17411     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)));
17412     sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
17413     TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
17414   }
17415
17416   return vpc;
17417 #undef FLD
17418 }
17419
17420 /* fsubd: fsubd$pack $FRdoublei,$FRdoublej,$FRdoublek */
17421
17422 static SEM_PC
17423 SEM_FN_NAME (frvbf,fsubd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17424 {
17425 #define FLD(f) abuf->fields.sfmt_fmaddd.f
17426   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17427   int UNUSED written = 0;
17428   IADDR UNUSED pc = abuf->addr;
17429   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17430
17431   {
17432     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)));
17433     sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
17434     TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
17435   }
17436
17437   return vpc;
17438 #undef FLD
17439 }
17440
17441 /* fmuld: fmuld$pack $FRdoublei,$FRdoublej,$FRdoublek */
17442
17443 static SEM_PC
17444 SEM_FN_NAME (frvbf,fmuld) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17445 {
17446 #define FLD(f) abuf->fields.sfmt_fmaddd.f
17447   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17448   int UNUSED written = 0;
17449   IADDR UNUSED pc = abuf->addr;
17450   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17451
17452   {
17453     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)));
17454     sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
17455     TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
17456   }
17457
17458   return vpc;
17459 #undef FLD
17460 }
17461
17462 /* fdivd: fdivd$pack $FRdoublei,$FRdoublej,$FRdoublek */
17463
17464 static SEM_PC
17465 SEM_FN_NAME (frvbf,fdivd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17466 {
17467 #define FLD(f) abuf->fields.sfmt_fmaddd.f
17468   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17469   int UNUSED written = 0;
17470   IADDR UNUSED pc = abuf->addr;
17471   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17472
17473   {
17474     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)));
17475     sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
17476     TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
17477   }
17478
17479   return vpc;
17480 #undef FLD
17481 }
17482
17483 /* cfadds: cfadds$pack $FRi,$FRj,$FRk,$CCi,$cond */
17484
17485 static SEM_PC
17486 SEM_FN_NAME (frvbf,cfadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17487 {
17488 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17489   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17490   int UNUSED written = 0;
17491   IADDR UNUSED pc = abuf->addr;
17492   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17493
17494 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
17495   {
17496     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)));
17497     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17498     written |= (1 << 4);
17499     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17500   }
17501 }
17502
17503   abuf->written = written;
17504   return vpc;
17505 #undef FLD
17506 }
17507
17508 /* cfsubs: cfsubs$pack $FRi,$FRj,$FRk,$CCi,$cond */
17509
17510 static SEM_PC
17511 SEM_FN_NAME (frvbf,cfsubs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17512 {
17513 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17514   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17515   int UNUSED written = 0;
17516   IADDR UNUSED pc = abuf->addr;
17517   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17518
17519 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
17520   {
17521     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)));
17522     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17523     written |= (1 << 4);
17524     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17525   }
17526 }
17527
17528   abuf->written = written;
17529   return vpc;
17530 #undef FLD
17531 }
17532
17533 /* cfmuls: cfmuls$pack $FRi,$FRj,$FRk,$CCi,$cond */
17534
17535 static SEM_PC
17536 SEM_FN_NAME (frvbf,cfmuls) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17537 {
17538 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17539   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17540   int UNUSED written = 0;
17541   IADDR UNUSED pc = abuf->addr;
17542   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17543
17544 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
17545   {
17546     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)));
17547     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17548     written |= (1 << 4);
17549     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17550   }
17551 }
17552
17553   abuf->written = written;
17554   return vpc;
17555 #undef FLD
17556 }
17557
17558 /* cfdivs: cfdivs$pack $FRi,$FRj,$FRk,$CCi,$cond */
17559
17560 static SEM_PC
17561 SEM_FN_NAME (frvbf,cfdivs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17562 {
17563 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17564   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17565   int UNUSED written = 0;
17566   IADDR UNUSED pc = abuf->addr;
17567   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17568
17569 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
17570   {
17571     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)));
17572     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17573     written |= (1 << 4);
17574     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17575   }
17576 }
17577
17578   abuf->written = written;
17579   return vpc;
17580 #undef FLD
17581 }
17582
17583 /* nfadds: nfadds$pack $FRi,$FRj,$FRk */
17584
17585 static SEM_PC
17586 SEM_FN_NAME (frvbf,nfadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17587 {
17588 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17589   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17590   int UNUSED written = 0;
17591   IADDR UNUSED pc = abuf->addr;
17592   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17593
17594 {
17595 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
17596   {
17597     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)));
17598     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17599     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17600   }
17601 }
17602
17603   return vpc;
17604 #undef FLD
17605 }
17606
17607 /* nfsubs: nfsubs$pack $FRi,$FRj,$FRk */
17608
17609 static SEM_PC
17610 SEM_FN_NAME (frvbf,nfsubs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17611 {
17612 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17613   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17614   int UNUSED written = 0;
17615   IADDR UNUSED pc = abuf->addr;
17616   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17617
17618 {
17619 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
17620   {
17621     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)));
17622     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17623     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17624   }
17625 }
17626
17627   return vpc;
17628 #undef FLD
17629 }
17630
17631 /* nfmuls: nfmuls$pack $FRi,$FRj,$FRk */
17632
17633 static SEM_PC
17634 SEM_FN_NAME (frvbf,nfmuls) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17635 {
17636 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17637   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17638   int UNUSED written = 0;
17639   IADDR UNUSED pc = abuf->addr;
17640   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17641
17642 {
17643 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
17644   {
17645     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)));
17646     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17647     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17648   }
17649 }
17650
17651   return vpc;
17652 #undef FLD
17653 }
17654
17655 /* nfdivs: nfdivs$pack $FRi,$FRj,$FRk */
17656
17657 static SEM_PC
17658 SEM_FN_NAME (frvbf,nfdivs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17659 {
17660 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17661   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17662   int UNUSED written = 0;
17663   IADDR UNUSED pc = abuf->addr;
17664   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17665
17666 {
17667 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
17668   {
17669     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)));
17670     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17671     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17672   }
17673 }
17674
17675   return vpc;
17676 #undef FLD
17677 }
17678
17679 /* fcmps: fcmps$pack $FRi,$FRj,$FCCi_2 */
17680
17681 static SEM_PC
17682 SEM_FN_NAME (frvbf,fcmps) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17683 {
17684 #define FLD(f) abuf->fields.sfmt_cfcmps.f
17685   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17686   int UNUSED written = 0;
17687   IADDR UNUSED pc = abuf->addr;
17688   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17689
17690 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)))) {
17691   {
17692     UQI opval = 2;
17693     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17694     written |= (1 << 2);
17695     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17696   }
17697 } else {
17698 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)))) {
17699   {
17700     UQI opval = 8;
17701     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17702     written |= (1 << 2);
17703     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17704   }
17705 } else {
17706 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)))) {
17707   {
17708     UQI opval = 4;
17709     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17710     written |= (1 << 2);
17711     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17712   }
17713 } else {
17714   {
17715     UQI opval = 1;
17716     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17717     written |= (1 << 2);
17718     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17719   }
17720 }
17721 }
17722 }
17723
17724   abuf->written = written;
17725   return vpc;
17726 #undef FLD
17727 }
17728
17729 /* fcmpd: fcmpd$pack $FRdoublei,$FRdoublej,$FCCi_2 */
17730
17731 static SEM_PC
17732 SEM_FN_NAME (frvbf,fcmpd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17733 {
17734 #define FLD(f) abuf->fields.sfmt_fcmpd.f
17735   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17736   int UNUSED written = 0;
17737   IADDR UNUSED pc = abuf->addr;
17738   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17739
17740 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)))) {
17741   {
17742     UQI opval = 2;
17743     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17744     written |= (1 << 2);
17745     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17746   }
17747 } else {
17748 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)))) {
17749   {
17750     UQI opval = 8;
17751     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17752     written |= (1 << 2);
17753     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17754   }
17755 } else {
17756 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)))) {
17757   {
17758     UQI opval = 4;
17759     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17760     written |= (1 << 2);
17761     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17762   }
17763 } else {
17764   {
17765     UQI opval = 1;
17766     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17767     written |= (1 << 2);
17768     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17769   }
17770 }
17771 }
17772 }
17773
17774   abuf->written = written;
17775   return vpc;
17776 #undef FLD
17777 }
17778
17779 /* cfcmps: cfcmps$pack $FRi,$FRj,$FCCi_2,$CCi,$cond */
17780
17781 static SEM_PC
17782 SEM_FN_NAME (frvbf,cfcmps) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17783 {
17784 #define FLD(f) abuf->fields.sfmt_cfcmps.f
17785   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17786   int UNUSED written = 0;
17787   IADDR UNUSED pc = abuf->addr;
17788   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17789
17790 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
17791 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)))) {
17792   {
17793     UQI opval = 2;
17794     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17795     written |= (1 << 4);
17796     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17797   }
17798 } else {
17799 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)))) {
17800   {
17801     UQI opval = 8;
17802     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17803     written |= (1 << 4);
17804     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17805   }
17806 } else {
17807 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)))) {
17808   {
17809     UQI opval = 4;
17810     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17811     written |= (1 << 4);
17812     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17813   }
17814 } else {
17815   {
17816     UQI opval = 1;
17817     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17818     written |= (1 << 4);
17819     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17820   }
17821 }
17822 }
17823 }
17824 }
17825
17826   abuf->written = written;
17827   return vpc;
17828 #undef FLD
17829 }
17830
17831 /* fdcmps: fdcmps$pack $FRi,$FRj,$FCCi_2 */
17832
17833 static SEM_PC
17834 SEM_FN_NAME (frvbf,fdcmps) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17835 {
17836 #define FLD(f) abuf->fields.sfmt_nfdcmps.f
17837   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17838   int UNUSED written = 0;
17839   IADDR UNUSED pc = abuf->addr;
17840   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17841
17842 {
17843 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)))) {
17844   {
17845     UQI opval = 2;
17846     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17847     written |= (1 << 7);
17848     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17849   }
17850 } else {
17851 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)))) {
17852   {
17853     UQI opval = 8;
17854     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17855     written |= (1 << 7);
17856     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17857   }
17858 } else {
17859 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)))) {
17860   {
17861     UQI opval = 4;
17862     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17863     written |= (1 << 7);
17864     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17865   }
17866 } else {
17867   {
17868     UQI opval = 1;
17869     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17870     written |= (1 << 7);
17871     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17872   }
17873 }
17874 }
17875 }
17876 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))))) {
17877   {
17878     UQI opval = 2;
17879     sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCi_2)) + (1))]), opval);
17880     written |= (1 << 8);
17881     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17882   }
17883 } else {
17884 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))))) {
17885   {
17886     UQI opval = 8;
17887     sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCi_2)) + (1))]), opval);
17888     written |= (1 << 8);
17889     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17890   }
17891 } else {
17892 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))))) {
17893   {
17894     UQI opval = 4;
17895     sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCi_2)) + (1))]), opval);
17896     written |= (1 << 8);
17897     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17898   }
17899 } else {
17900   {
17901     UQI opval = 1;
17902     sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCi_2)) + (1))]), opval);
17903     written |= (1 << 8);
17904     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17905   }
17906 }
17907 }
17908 }
17909 }
17910
17911   abuf->written = written;
17912   return vpc;
17913 #undef FLD
17914 }
17915
17916 /* fmadds: fmadds$pack $FRi,$FRj,$FRk */
17917
17918 static SEM_PC
17919 SEM_FN_NAME (frvbf,fmadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17920 {
17921 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17922   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17923   int UNUSED written = 0;
17924   IADDR UNUSED pc = abuf->addr;
17925   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17926
17927   {
17928     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)));
17929     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17930     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17931   }
17932
17933   return vpc;
17934 #undef FLD
17935 }
17936
17937 /* fmsubs: fmsubs$pack $FRi,$FRj,$FRk */
17938
17939 static SEM_PC
17940 SEM_FN_NAME (frvbf,fmsubs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17941 {
17942 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17943   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17944   int UNUSED written = 0;
17945   IADDR UNUSED pc = abuf->addr;
17946   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17947
17948   {
17949     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)));
17950     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17951     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17952   }
17953
17954   return vpc;
17955 #undef FLD
17956 }
17957
17958 /* fmaddd: fmaddd$pack $FRdoublei,$FRdoublej,$FRdoublek */
17959
17960 static SEM_PC
17961 SEM_FN_NAME (frvbf,fmaddd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17962 {
17963 #define FLD(f) abuf->fields.sfmt_fmaddd.f
17964   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17965   int UNUSED written = 0;
17966   IADDR UNUSED pc = abuf->addr;
17967   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17968
17969   {
17970     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)));
17971     sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
17972     TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
17973   }
17974
17975   return vpc;
17976 #undef FLD
17977 }
17978
17979 /* fmsubd: fmsubd$pack $FRdoublei,$FRdoublej,$FRdoublek */
17980
17981 static SEM_PC
17982 SEM_FN_NAME (frvbf,fmsubd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17983 {
17984 #define FLD(f) abuf->fields.sfmt_fmaddd.f
17985   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17986   int UNUSED written = 0;
17987   IADDR UNUSED pc = abuf->addr;
17988   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17989
17990   {
17991     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)));
17992     sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
17993     TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
17994   }
17995
17996   return vpc;
17997 #undef FLD
17998 }
17999
18000 /* fdmadds: fdmadds$pack $FRi,$FRj,$FRk */
18001
18002 static SEM_PC
18003 SEM_FN_NAME (frvbf,fdmadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18004 {
18005 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18006   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18007   int UNUSED written = 0;
18008   IADDR UNUSED pc = abuf->addr;
18009   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18010
18011 {
18012   {
18013     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)));
18014     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18015     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18016   }
18017   {
18018     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))));
18019     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18020     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18021   }
18022 }
18023
18024   return vpc;
18025 #undef FLD
18026 }
18027
18028 /* nfdmadds: nfdmadds$pack $FRi,$FRj,$FRk */
18029
18030 static SEM_PC
18031 SEM_FN_NAME (frvbf,nfdmadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18032 {
18033 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18034   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18035   int UNUSED written = 0;
18036   IADDR UNUSED pc = abuf->addr;
18037   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18038
18039 {
18040 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18041   {
18042     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)));
18043     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18044     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18045   }
18046 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18047   {
18048     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))));
18049     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18050     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18051   }
18052 }
18053
18054   return vpc;
18055 #undef FLD
18056 }
18057
18058 /* cfmadds: cfmadds$pack $FRi,$FRj,$FRk,$CCi,$cond */
18059
18060 static SEM_PC
18061 SEM_FN_NAME (frvbf,cfmadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18062 {
18063 #define FLD(f) abuf->fields.sfmt_cfmadds.f
18064   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18065   int UNUSED written = 0;
18066   IADDR UNUSED pc = abuf->addr;
18067   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18068
18069 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
18070   {
18071     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)));
18072     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18073     written |= (1 << 5);
18074     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18075   }
18076 }
18077
18078   abuf->written = written;
18079   return vpc;
18080 #undef FLD
18081 }
18082
18083 /* cfmsubs: cfmsubs$pack $FRi,$FRj,$FRk,$CCi,$cond */
18084
18085 static SEM_PC
18086 SEM_FN_NAME (frvbf,cfmsubs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18087 {
18088 #define FLD(f) abuf->fields.sfmt_cfmadds.f
18089   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18090   int UNUSED written = 0;
18091   IADDR UNUSED pc = abuf->addr;
18092   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18093
18094 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
18095   {
18096     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)));
18097     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18098     written |= (1 << 5);
18099     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18100   }
18101 }
18102
18103   abuf->written = written;
18104   return vpc;
18105 #undef FLD
18106 }
18107
18108 /* nfmadds: nfmadds$pack $FRi,$FRj,$FRk */
18109
18110 static SEM_PC
18111 SEM_FN_NAME (frvbf,nfmadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18112 {
18113 #define FLD(f) abuf->fields.sfmt_cfmadds.f
18114   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18115   int UNUSED written = 0;
18116   IADDR UNUSED pc = abuf->addr;
18117   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18118
18119 {
18120 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18121   {
18122     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)));
18123     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18124     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18125   }
18126 }
18127
18128   return vpc;
18129 #undef FLD
18130 }
18131
18132 /* nfmsubs: nfmsubs$pack $FRi,$FRj,$FRk */
18133
18134 static SEM_PC
18135 SEM_FN_NAME (frvbf,nfmsubs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18136 {
18137 #define FLD(f) abuf->fields.sfmt_cfmadds.f
18138   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18139   int UNUSED written = 0;
18140   IADDR UNUSED pc = abuf->addr;
18141   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18142
18143 {
18144 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18145   {
18146     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->subsf) (CGEN_CPU_FPU (current_cpu), (* CGEN_CPU_FPU (current_cpu)->ops->mulsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj))), GET_H_FR (FLD (f_FRk)));
18147     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18148     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18149   }
18150 }
18151
18152   return vpc;
18153 #undef FLD
18154 }
18155
18156 /* fmas: fmas$pack $FRi,$FRj,$FRk */
18157
18158 static SEM_PC
18159 SEM_FN_NAME (frvbf,fmas) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18160 {
18161 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18162   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18163   int UNUSED written = 0;
18164   IADDR UNUSED pc = abuf->addr;
18165   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18166
18167 {
18168   {
18169     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)));
18170     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18171     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18172   }
18173   {
18174     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))));
18175     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18176     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18177   }
18178 }
18179
18180   return vpc;
18181 #undef FLD
18182 }
18183
18184 /* fmss: fmss$pack $FRi,$FRj,$FRk */
18185
18186 static SEM_PC
18187 SEM_FN_NAME (frvbf,fmss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18188 {
18189 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18190   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18191   int UNUSED written = 0;
18192   IADDR UNUSED pc = abuf->addr;
18193   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18194
18195 {
18196   {
18197     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)));
18198     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18199     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18200   }
18201   {
18202     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))));
18203     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18204     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18205   }
18206 }
18207
18208   return vpc;
18209 #undef FLD
18210 }
18211
18212 /* fdmas: fdmas$pack $FRi,$FRj,$FRk */
18213
18214 static SEM_PC
18215 SEM_FN_NAME (frvbf,fdmas) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18216 {
18217 #define FLD(f) abuf->fields.sfmt_fdmas.f
18218   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18219   int UNUSED written = 0;
18220   IADDR UNUSED pc = abuf->addr;
18221   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18222
18223 {
18224   {
18225     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)));
18226     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18227     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18228   }
18229   {
18230     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))));
18231     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18232     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18233   }
18234   {
18235     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))));
18236     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (2)), opval);
18237     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18238   }
18239   {
18240     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))));
18241     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (3)), opval);
18242     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18243   }
18244 }
18245
18246   return vpc;
18247 #undef FLD
18248 }
18249
18250 /* fdmss: fdmss$pack $FRi,$FRj,$FRk */
18251
18252 static SEM_PC
18253 SEM_FN_NAME (frvbf,fdmss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18254 {
18255 #define FLD(f) abuf->fields.sfmt_fdmas.f
18256   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18257   int UNUSED written = 0;
18258   IADDR UNUSED pc = abuf->addr;
18259   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18260
18261 {
18262   {
18263     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)));
18264     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18265     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18266   }
18267   {
18268     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))));
18269     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18270     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18271   }
18272   {
18273     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))));
18274     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (2)), opval);
18275     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18276   }
18277   {
18278     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))));
18279     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (3)), opval);
18280     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18281   }
18282 }
18283
18284   return vpc;
18285 #undef FLD
18286 }
18287
18288 /* nfdmas: nfdmas$pack $FRi,$FRj,$FRk */
18289
18290 static SEM_PC
18291 SEM_FN_NAME (frvbf,nfdmas) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18292 {
18293 #define FLD(f) abuf->fields.sfmt_fdmas.f
18294   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18295   int UNUSED written = 0;
18296   IADDR UNUSED pc = abuf->addr;
18297   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18298
18299 {
18300 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18301 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18302 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 2));
18303 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 3));
18304   {
18305     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)));
18306     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18307     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18308   }
18309   {
18310     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))));
18311     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18312     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18313   }
18314   {
18315     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))));
18316     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (2)), opval);
18317     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18318   }
18319   {
18320     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))));
18321     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (3)), opval);
18322     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18323   }
18324 }
18325
18326   return vpc;
18327 #undef FLD
18328 }
18329
18330 /* nfdmss: nfdmss$pack $FRi,$FRj,$FRk */
18331
18332 static SEM_PC
18333 SEM_FN_NAME (frvbf,nfdmss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18334 {
18335 #define FLD(f) abuf->fields.sfmt_fdmas.f
18336   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18337   int UNUSED written = 0;
18338   IADDR UNUSED pc = abuf->addr;
18339   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18340
18341 {
18342 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18343 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18344 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 2));
18345 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 3));
18346   {
18347     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)));
18348     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18349     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18350   }
18351   {
18352     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))));
18353     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18354     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18355   }
18356   {
18357     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))));
18358     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (2)), opval);
18359     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18360   }
18361   {
18362     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))));
18363     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (3)), opval);
18364     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18365   }
18366 }
18367
18368   return vpc;
18369 #undef FLD
18370 }
18371
18372 /* cfmas: cfmas$pack $FRi,$FRj,$FRk,$CCi,$cond */
18373
18374 static SEM_PC
18375 SEM_FN_NAME (frvbf,cfmas) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18376 {
18377 #define FLD(f) abuf->fields.sfmt_cfmas.f
18378   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18379   int UNUSED written = 0;
18380   IADDR UNUSED pc = abuf->addr;
18381   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18382
18383 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
18384 {
18385   {
18386     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)));
18387     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18388     written |= (1 << 9);
18389     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18390   }
18391   {
18392     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))));
18393     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18394     written |= (1 << 10);
18395     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18396   }
18397 }
18398 }
18399
18400   abuf->written = written;
18401   return vpc;
18402 #undef FLD
18403 }
18404
18405 /* cfmss: cfmss$pack $FRi,$FRj,$FRk,$CCi,$cond */
18406
18407 static SEM_PC
18408 SEM_FN_NAME (frvbf,cfmss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18409 {
18410 #define FLD(f) abuf->fields.sfmt_cfmas.f
18411   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18412   int UNUSED written = 0;
18413   IADDR UNUSED pc = abuf->addr;
18414   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18415
18416 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
18417 {
18418   {
18419     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)));
18420     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18421     written |= (1 << 9);
18422     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18423   }
18424   {
18425     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))));
18426     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18427     written |= (1 << 10);
18428     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18429   }
18430 }
18431 }
18432
18433   abuf->written = written;
18434   return vpc;
18435 #undef FLD
18436 }
18437
18438 /* fmad: fmad$pack $FRi,$FRj,$FRk */
18439
18440 static SEM_PC
18441 SEM_FN_NAME (frvbf,fmad) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18442 {
18443 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18444   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18445   int UNUSED written = 0;
18446   IADDR UNUSED pc = abuf->addr;
18447   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18448
18449 {
18450   {
18451     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)))));
18452     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18453     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18454   }
18455   {
18456     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))))));
18457     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18458     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18459   }
18460 }
18461
18462   return vpc;
18463 #undef FLD
18464 }
18465
18466 /* fmsd: fmsd$pack $FRi,$FRj,$FRk */
18467
18468 static SEM_PC
18469 SEM_FN_NAME (frvbf,fmsd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18470 {
18471 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18472   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18473   int UNUSED written = 0;
18474   IADDR UNUSED pc = abuf->addr;
18475   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18476
18477 {
18478   {
18479     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)))));
18480     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18481     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18482   }
18483   {
18484     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))))));
18485     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18486     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18487   }
18488 }
18489
18490   return vpc;
18491 #undef FLD
18492 }
18493
18494 /* nfmas: nfmas$pack $FRi,$FRj,$FRk */
18495
18496 static SEM_PC
18497 SEM_FN_NAME (frvbf,nfmas) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18498 {
18499 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18500   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18501   int UNUSED written = 0;
18502   IADDR UNUSED pc = abuf->addr;
18503   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18504
18505 {
18506 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18507   {
18508     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->mulsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)));
18509     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18510     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18511   }
18512 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18513   {
18514     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))));
18515     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18516     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18517   }
18518 }
18519
18520   return vpc;
18521 #undef FLD
18522 }
18523
18524 /* nfmss: nfmss$pack $FRi,$FRj,$FRk */
18525
18526 static SEM_PC
18527 SEM_FN_NAME (frvbf,nfmss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18528 {
18529 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18530   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18531   int UNUSED written = 0;
18532   IADDR UNUSED pc = abuf->addr;
18533   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18534
18535 {
18536 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18537   {
18538     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)));
18539     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18540     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18541   }
18542 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18543   {
18544     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))));
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 /* fdadds: fdadds$pack $FRi,$FRj,$FRk */
18555
18556 static SEM_PC
18557 SEM_FN_NAME (frvbf,fdadds) (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   {
18567     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)));
18568     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18569     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18570   }
18571   {
18572     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))));
18573     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18574     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18575   }
18576 }
18577
18578   return vpc;
18579 #undef FLD
18580 }
18581
18582 /* fdsubs: fdsubs$pack $FRi,$FRj,$FRk */
18583
18584 static SEM_PC
18585 SEM_FN_NAME (frvbf,fdsubs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18586 {
18587 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18588   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18589   int UNUSED written = 0;
18590   IADDR UNUSED pc = abuf->addr;
18591   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18592
18593 {
18594   {
18595     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)));
18596     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18597     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18598   }
18599   {
18600     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))));
18601     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18602     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18603   }
18604 }
18605
18606   return vpc;
18607 #undef FLD
18608 }
18609
18610 /* fdmuls: fdmuls$pack $FRi,$FRj,$FRk */
18611
18612 static SEM_PC
18613 SEM_FN_NAME (frvbf,fdmuls) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18614 {
18615 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18616   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18617   int UNUSED written = 0;
18618   IADDR UNUSED pc = abuf->addr;
18619   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18620
18621 {
18622   {
18623     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)));
18624     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18625     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18626   }
18627   {
18628     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))));
18629     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18630     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18631   }
18632 }
18633
18634   return vpc;
18635 #undef FLD
18636 }
18637
18638 /* fddivs: fddivs$pack $FRi,$FRj,$FRk */
18639
18640 static SEM_PC
18641 SEM_FN_NAME (frvbf,fddivs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18642 {
18643 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18644   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18645   int UNUSED written = 0;
18646   IADDR UNUSED pc = abuf->addr;
18647   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18648
18649 {
18650   {
18651     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)));
18652     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18653     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18654   }
18655   {
18656     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))));
18657     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18658     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18659   }
18660 }
18661
18662   return vpc;
18663 #undef FLD
18664 }
18665
18666 /* fdsads: fdsads$pack $FRi,$FRj,$FRk */
18667
18668 static SEM_PC
18669 SEM_FN_NAME (frvbf,fdsads) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18670 {
18671 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18672   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18673   int UNUSED written = 0;
18674   IADDR UNUSED pc = abuf->addr;
18675   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18676
18677 {
18678   {
18679     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)));
18680     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18681     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18682   }
18683   {
18684     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))));
18685     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18686     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18687   }
18688 }
18689
18690   return vpc;
18691 #undef FLD
18692 }
18693
18694 /* fdmulcs: fdmulcs$pack $FRi,$FRj,$FRk */
18695
18696 static SEM_PC
18697 SEM_FN_NAME (frvbf,fdmulcs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18698 {
18699 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18700   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18701   int UNUSED written = 0;
18702   IADDR UNUSED pc = abuf->addr;
18703   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18704
18705 {
18706   {
18707     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))));
18708     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18709     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18710   }
18711   {
18712     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)));
18713     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18714     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18715   }
18716 }
18717
18718   return vpc;
18719 #undef FLD
18720 }
18721
18722 /* nfdmulcs: nfdmulcs$pack $FRi,$FRj,$FRk */
18723
18724 static SEM_PC
18725 SEM_FN_NAME (frvbf,nfdmulcs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18726 {
18727 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18728   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18729   int UNUSED written = 0;
18730   IADDR UNUSED pc = abuf->addr;
18731   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18732
18733 {
18734 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18735   {
18736     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))));
18737     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18738     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18739   }
18740 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18741   {
18742     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)));
18743     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18744     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18745   }
18746 }
18747
18748   return vpc;
18749 #undef FLD
18750 }
18751
18752 /* nfdadds: nfdadds$pack $FRi,$FRj,$FRk */
18753
18754 static SEM_PC
18755 SEM_FN_NAME (frvbf,nfdadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18756 {
18757 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18758   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18759   int UNUSED written = 0;
18760   IADDR UNUSED pc = abuf->addr;
18761   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18762
18763 {
18764 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18765   {
18766     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)));
18767     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18768     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18769   }
18770 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18771   {
18772     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))));
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 /* nfdsubs: nfdsubs$pack $FRi,$FRj,$FRk */
18783
18784 static SEM_PC
18785 SEM_FN_NAME (frvbf,nfdsubs) (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->subsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)));
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->subsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (1))), GET_H_FR (((FLD (f_FRj)) + (1))));
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 /* nfdmuls: nfdmuls$pack $FRi,$FRj,$FRk */
18813
18814 static SEM_PC
18815 SEM_FN_NAME (frvbf,nfdmuls) (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->mulsf) (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->mulsf) (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 /* nfddivs: nfddivs$pack $FRi,$FRj,$FRk */
18843
18844 static SEM_PC
18845 SEM_FN_NAME (frvbf,nfddivs) (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->divsf) (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->divsf) (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 /* nfdsads: nfdsads$pack $FRi,$FRj,$FRk */
18873
18874 static SEM_PC
18875 SEM_FN_NAME (frvbf,nfdsads) (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->addsf) (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->subsf) (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 /* nfdcmps: nfdcmps$pack $FRi,$FRj,$FCCi_2 */
18903
18904 static SEM_PC
18905 SEM_FN_NAME (frvbf,nfdcmps) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18906 {
18907 #define FLD(f) abuf->fields.sfmt_nfdcmps.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 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)))) {
18916   {
18917     UQI opval = 2;
18918     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
18919     written |= (1 << 8);
18920     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
18921   }
18922 } else {
18923 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)))) {
18924   {
18925     UQI opval = 8;
18926     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
18927     written |= (1 << 8);
18928     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
18929   }
18930 } else {
18931 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)))) {
18932   {
18933     UQI opval = 4;
18934     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
18935     written |= (1 << 8);
18936     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
18937   }
18938 } else {
18939   {
18940     UQI opval = 1;
18941     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
18942     written |= (1 << 8);
18943     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
18944   }
18945 }
18946 }
18947 }
18948 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18949 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))))) {
18950   {
18951     UQI opval = 2;
18952     sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCi_2)) + (1))]), opval);
18953     written |= (1 << 9);
18954     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
18955   }
18956 } else {
18957 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))))) {
18958   {
18959     UQI opval = 8;
18960     sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCi_2)) + (1))]), opval);
18961     written |= (1 << 9);
18962     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
18963   }
18964 } else {
18965 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))))) {
18966   {
18967     UQI opval = 4;
18968     sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCi_2)) + (1))]), opval);
18969     written |= (1 << 9);
18970     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
18971   }
18972 } else {
18973   {
18974     UQI opval = 1;
18975     sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCi_2)) + (1))]), opval);
18976     written |= (1 << 9);
18977     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
18978   }
18979 }
18980 }
18981 }
18982 }
18983
18984   abuf->written = written;
18985   return vpc;
18986 #undef FLD
18987 }
18988
18989 /* mhsetlos: mhsetlos$pack $u12,$FRklo */
18990
18991 static SEM_PC
18992 SEM_FN_NAME (frvbf,mhsetlos) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18993 {
18994 #define FLD(f) abuf->fields.sfmt_mhsetlos.f
18995   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18996   int UNUSED written = 0;
18997   IADDR UNUSED pc = abuf->addr;
18998   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18999
19000   {
19001     UHI opval = FLD (f_u12);
19002     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, FLD (f_FRk), opval);
19003     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19004   }
19005
19006   return vpc;
19007 #undef FLD
19008 }
19009
19010 /* mhsethis: mhsethis$pack $u12,$FRkhi */
19011
19012 static SEM_PC
19013 SEM_FN_NAME (frvbf,mhsethis) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19014 {
19015 #define FLD(f) abuf->fields.sfmt_mhsethis.f
19016   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19017   int UNUSED written = 0;
19018   IADDR UNUSED pc = abuf->addr;
19019   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19020
19021   {
19022     UHI opval = FLD (f_u12);
19023     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, FLD (f_FRk), opval);
19024     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19025   }
19026
19027   return vpc;
19028 #undef FLD
19029 }
19030
19031 /* mhdsets: mhdsets$pack $u12,$FRintk */
19032
19033 static SEM_PC
19034 SEM_FN_NAME (frvbf,mhdsets) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19035 {
19036 #define FLD(f) abuf->fields.sfmt_mhdsets.f
19037   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19038   int UNUSED written = 0;
19039   IADDR UNUSED pc = abuf->addr;
19040   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19041
19042 {
19043   {
19044     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
19045     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19046     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19047   }
19048   {
19049     UHI opval = FLD (f_u12);
19050     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
19051     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19052   }
19053   {
19054     UHI opval = FLD (f_u12);
19055     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
19056     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19057   }
19058 }
19059
19060   return vpc;
19061 #undef FLD
19062 }
19063
19064 /* mhsetloh: mhsetloh$pack $s5,$FRklo */
19065
19066 static SEM_PC
19067 SEM_FN_NAME (frvbf,mhsetloh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19068 {
19069 #define FLD(f) abuf->fields.sfmt_mhsetloh.f
19070   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19071   int UNUSED written = 0;
19072   IADDR UNUSED pc = abuf->addr;
19073   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19074
19075 {
19076   HI tmp_tmp;
19077   tmp_tmp = GET_H_FR_LO (FLD (f_FRk));
19078   tmp_tmp = ANDHI (tmp_tmp, 2047);
19079   tmp_tmp = ORHI (tmp_tmp, SLLSI (ANDSI (FLD (f_s5), 31), 11));
19080   {
19081     UHI opval = tmp_tmp;
19082     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, FLD (f_FRk), opval);
19083     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19084   }
19085 }
19086
19087   return vpc;
19088 #undef FLD
19089 }
19090
19091 /* mhsethih: mhsethih$pack $s5,$FRkhi */
19092
19093 static SEM_PC
19094 SEM_FN_NAME (frvbf,mhsethih) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19095 {
19096 #define FLD(f) abuf->fields.sfmt_mhsethih.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   HI tmp_tmp;
19104   tmp_tmp = GET_H_FR_HI (FLD (f_FRk));
19105   tmp_tmp = ANDHI (tmp_tmp, 2047);
19106   tmp_tmp = ORHI (tmp_tmp, SLLSI (ANDSI (FLD (f_s5), 31), 11));
19107   {
19108     UHI opval = tmp_tmp;
19109     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, FLD (f_FRk), opval);
19110     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19111   }
19112 }
19113
19114   return vpc;
19115 #undef FLD
19116 }
19117
19118 /* mhdseth: mhdseth$pack $s5,$FRintk */
19119
19120 static SEM_PC
19121 SEM_FN_NAME (frvbf,mhdseth) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19122 {
19123 #define FLD(f) abuf->fields.sfmt_mhdseth.f
19124   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19125   int UNUSED written = 0;
19126   IADDR UNUSED pc = abuf->addr;
19127   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19128
19129 {
19130   {
19131     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
19132     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19133     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19134   }
19135 {
19136   HI tmp_tmp;
19137   tmp_tmp = GET_H_FR_HI (((FLD (f_FRk)) + (0)));
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_hi_set, ((FLD (f_FRk)) + (0)), opval);
19143     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19144   }
19145 }
19146 {
19147   HI tmp_tmp;
19148   tmp_tmp = GET_H_FR_LO (((FLD (f_FRk)) + (0)));
19149   tmp_tmp = ANDHI (tmp_tmp, 2047);
19150   tmp_tmp = ORHI (tmp_tmp, SLLSI (ANDSI (FLD (f_s5), 31), 11));
19151   {
19152     UHI opval = tmp_tmp;
19153     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
19154     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19155   }
19156 }
19157 }
19158
19159   return vpc;
19160 #undef FLD
19161 }
19162
19163 /* mand: mand$pack $FRinti,$FRintj,$FRintk */
19164
19165 static SEM_PC
19166 SEM_FN_NAME (frvbf,mand) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19167 {
19168 #define FLD(f) abuf->fields.sfmt_mwcut.f
19169   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19170   int UNUSED written = 0;
19171   IADDR UNUSED pc = abuf->addr;
19172   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19173
19174   {
19175     SI opval = ANDSI (GET_H_FR_INT (FLD (f_FRi)), GET_H_FR_INT (FLD (f_FRj)));
19176     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19177     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19178   }
19179
19180   return vpc;
19181 #undef FLD
19182 }
19183
19184 /* mor: mor$pack $FRinti,$FRintj,$FRintk */
19185
19186 static SEM_PC
19187 SEM_FN_NAME (frvbf,mor) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19188 {
19189 #define FLD(f) abuf->fields.sfmt_mwcut.f
19190   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19191   int UNUSED written = 0;
19192   IADDR UNUSED pc = abuf->addr;
19193   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19194
19195   {
19196     SI opval = ORSI (GET_H_FR_INT (FLD (f_FRi)), GET_H_FR_INT (FLD (f_FRj)));
19197     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19198     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19199   }
19200
19201   return vpc;
19202 #undef FLD
19203 }
19204
19205 /* mxor: mxor$pack $FRinti,$FRintj,$FRintk */
19206
19207 static SEM_PC
19208 SEM_FN_NAME (frvbf,mxor) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19209 {
19210 #define FLD(f) abuf->fields.sfmt_mwcut.f
19211   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19212   int UNUSED written = 0;
19213   IADDR UNUSED pc = abuf->addr;
19214   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19215
19216   {
19217     SI opval = XORSI (GET_H_FR_INT (FLD (f_FRi)), GET_H_FR_INT (FLD (f_FRj)));
19218     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19219     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19220   }
19221
19222   return vpc;
19223 #undef FLD
19224 }
19225
19226 /* cmand: cmand$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
19227
19228 static SEM_PC
19229 SEM_FN_NAME (frvbf,cmand) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19230 {
19231 #define FLD(f) abuf->fields.sfmt_cmand.f
19232   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19233   int UNUSED written = 0;
19234   IADDR UNUSED pc = abuf->addr;
19235   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19236
19237 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
19238   {
19239     SI opval = ANDSI (GET_H_FR_INT (FLD (f_FRi)), GET_H_FR_INT (FLD (f_FRj)));
19240     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19241     written |= (1 << 4);
19242     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19243   }
19244 }
19245
19246   abuf->written = written;
19247   return vpc;
19248 #undef FLD
19249 }
19250
19251 /* cmor: cmor$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
19252
19253 static SEM_PC
19254 SEM_FN_NAME (frvbf,cmor) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19255 {
19256 #define FLD(f) abuf->fields.sfmt_cmand.f
19257   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19258   int UNUSED written = 0;
19259   IADDR UNUSED pc = abuf->addr;
19260   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19261
19262 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
19263   {
19264     SI opval = ORSI (GET_H_FR_INT (FLD (f_FRi)), GET_H_FR_INT (FLD (f_FRj)));
19265     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19266     written |= (1 << 4);
19267     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19268   }
19269 }
19270
19271   abuf->written = written;
19272   return vpc;
19273 #undef FLD
19274 }
19275
19276 /* cmxor: cmxor$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
19277
19278 static SEM_PC
19279 SEM_FN_NAME (frvbf,cmxor) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19280 {
19281 #define FLD(f) abuf->fields.sfmt_cmand.f
19282   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19283   int UNUSED written = 0;
19284   IADDR UNUSED pc = abuf->addr;
19285   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19286
19287 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
19288   {
19289     SI opval = XORSI (GET_H_FR_INT (FLD (f_FRi)), GET_H_FR_INT (FLD (f_FRj)));
19290     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19291     written |= (1 << 4);
19292     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19293   }
19294 }
19295
19296   abuf->written = written;
19297   return vpc;
19298 #undef FLD
19299 }
19300
19301 /* mnot: mnot$pack $FRintj,$FRintk */
19302
19303 static SEM_PC
19304 SEM_FN_NAME (frvbf,mnot) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19305 {
19306 #define FLD(f) abuf->fields.sfmt_mcut.f
19307   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19308   int UNUSED written = 0;
19309   IADDR UNUSED pc = abuf->addr;
19310   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19311
19312   {
19313     SI opval = INVSI (GET_H_FR_INT (FLD (f_FRj)));
19314     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19315     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19316   }
19317
19318   return vpc;
19319 #undef FLD
19320 }
19321
19322 /* cmnot: cmnot$pack $FRintj,$FRintk,$CCi,$cond */
19323
19324 static SEM_PC
19325 SEM_FN_NAME (frvbf,cmnot) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19326 {
19327 #define FLD(f) abuf->fields.sfmt_cmand.f
19328   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19329   int UNUSED written = 0;
19330   IADDR UNUSED pc = abuf->addr;
19331   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19332
19333 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
19334   {
19335     SI opval = INVSI (GET_H_FR_INT (FLD (f_FRj)));
19336     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19337     written |= (1 << 3);
19338     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19339   }
19340 }
19341
19342   abuf->written = written;
19343   return vpc;
19344 #undef FLD
19345 }
19346
19347 /* mrotli: mrotli$pack $FRinti,$u6,$FRintk */
19348
19349 static SEM_PC
19350 SEM_FN_NAME (frvbf,mrotli) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19351 {
19352 #define FLD(f) abuf->fields.sfmt_mwcuti.f
19353   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19354   int UNUSED written = 0;
19355   IADDR UNUSED pc = abuf->addr;
19356   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19357
19358   {
19359     SI opval = ROLSI (GET_H_FR_INT (FLD (f_FRi)), ANDSI (FLD (f_u6), 31));
19360     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19361     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19362   }
19363
19364   return vpc;
19365 #undef FLD
19366 }
19367
19368 /* mrotri: mrotri$pack $FRinti,$u6,$FRintk */
19369
19370 static SEM_PC
19371 SEM_FN_NAME (frvbf,mrotri) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19372 {
19373 #define FLD(f) abuf->fields.sfmt_mwcuti.f
19374   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19375   int UNUSED written = 0;
19376   IADDR UNUSED pc = abuf->addr;
19377   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19378
19379   {
19380     SI opval = RORSI (GET_H_FR_INT (FLD (f_FRi)), ANDSI (FLD (f_u6), 31));
19381     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19382     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19383   }
19384
19385   return vpc;
19386 #undef FLD
19387 }
19388
19389 /* mwcut: mwcut$pack $FRinti,$FRintj,$FRintk */
19390
19391 static SEM_PC
19392 SEM_FN_NAME (frvbf,mwcut) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19393 {
19394 #define FLD(f) abuf->fields.sfmt_mwcut.f
19395   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19396   int UNUSED written = 0;
19397   IADDR UNUSED pc = abuf->addr;
19398   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19399
19400   {
19401     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)));
19402     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19403     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19404   }
19405
19406   return vpc;
19407 #undef FLD
19408 }
19409
19410 /* mwcuti: mwcuti$pack $FRinti,$u6,$FRintk */
19411
19412 static SEM_PC
19413 SEM_FN_NAME (frvbf,mwcuti) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19414 {
19415 #define FLD(f) abuf->fields.sfmt_mwcuti.f
19416   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19417   int UNUSED written = 0;
19418   IADDR UNUSED pc = abuf->addr;
19419   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19420
19421   {
19422     SI opval = frvbf_cut (current_cpu, GET_H_FR_INT (FLD (f_FRi)), GET_H_FR_INT (((FLD (f_FRi)) + (1))), FLD (f_u6));
19423     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19424     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19425   }
19426
19427   return vpc;
19428 #undef FLD
19429 }
19430
19431 /* mcut: mcut$pack $ACC40Si,$FRintj,$FRintk */
19432
19433 static SEM_PC
19434 SEM_FN_NAME (frvbf,mcut) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19435 {
19436 #define FLD(f) abuf->fields.sfmt_mcut.f
19437   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19438   int UNUSED written = 0;
19439   IADDR UNUSED pc = abuf->addr;
19440   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19441
19442   {
19443     SI opval = frvbf_media_cut (current_cpu, GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_FR_INT (FLD (f_FRj)));
19444     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19445     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19446   }
19447
19448   return vpc;
19449 #undef FLD
19450 }
19451
19452 /* mcuti: mcuti$pack $ACC40Si,$s6,$FRintk */
19453
19454 static SEM_PC
19455 SEM_FN_NAME (frvbf,mcuti) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19456 {
19457 #define FLD(f) abuf->fields.sfmt_mcuti.f
19458   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19459   int UNUSED written = 0;
19460   IADDR UNUSED pc = abuf->addr;
19461   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19462
19463   {
19464     SI opval = frvbf_media_cut (current_cpu, GET_H_ACC40S (FLD (f_ACC40Si)), FLD (f_s6));
19465     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19466     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19467   }
19468
19469   return vpc;
19470 #undef FLD
19471 }
19472
19473 /* mcutss: mcutss$pack $ACC40Si,$FRintj,$FRintk */
19474
19475 static SEM_PC
19476 SEM_FN_NAME (frvbf,mcutss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19477 {
19478 #define FLD(f) abuf->fields.sfmt_mcut.f
19479   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19480   int UNUSED written = 0;
19481   IADDR UNUSED pc = abuf->addr;
19482   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19483
19484   {
19485     SI opval = frvbf_media_cut_ss (current_cpu, GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_FR_INT (FLD (f_FRj)));
19486     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19487     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19488   }
19489
19490   return vpc;
19491 #undef FLD
19492 }
19493
19494 /* mcutssi: mcutssi$pack $ACC40Si,$s6,$FRintk */
19495
19496 static SEM_PC
19497 SEM_FN_NAME (frvbf,mcutssi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19498 {
19499 #define FLD(f) abuf->fields.sfmt_mcuti.f
19500   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19501   int UNUSED written = 0;
19502   IADDR UNUSED pc = abuf->addr;
19503   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19504
19505   {
19506     SI opval = frvbf_media_cut_ss (current_cpu, GET_H_ACC40S (FLD (f_ACC40Si)), FLD (f_s6));
19507     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19508     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19509   }
19510
19511   return vpc;
19512 #undef FLD
19513 }
19514
19515 /* mdcutssi: mdcutssi$pack $ACC40Si,$s6,$FRintkeven */
19516
19517 static SEM_PC
19518 SEM_FN_NAME (frvbf,mdcutssi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19519 {
19520 #define FLD(f) abuf->fields.sfmt_mdcutssi.f
19521   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19522   int UNUSED written = 0;
19523   IADDR UNUSED pc = abuf->addr;
19524   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19525
19526 if (ANDSI (FLD (f_ACC40Si), SUBSI (2, 1))) {
19527 frvbf_media_acc_not_aligned (current_cpu);
19528 } else {
19529 if (ANDSI (FLD (f_FRk), SUBSI (2, 1))) {
19530 frvbf_media_register_not_aligned (current_cpu);
19531 } else {
19532 {
19533   {
19534     SI opval = frvbf_media_cut_ss (current_cpu, GET_H_ACC40S (FLD (f_ACC40Si)), FLD (f_s6));
19535     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19536     written |= (1 << 5);
19537     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19538   }
19539   {
19540     USI opval = frvbf_media_cut_ss (current_cpu, GET_H_ACC40S (((FLD (f_ACC40Si)) + (1))), FLD (f_s6));
19541     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (1)), opval);
19542     written |= (1 << 6);
19543     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19544   }
19545 }
19546 }
19547 }
19548
19549   abuf->written = written;
19550   return vpc;
19551 #undef FLD
19552 }
19553
19554 /* maveh: maveh$pack $FRinti,$FRintj,$FRintk */
19555
19556 static SEM_PC
19557 SEM_FN_NAME (frvbf,maveh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19558 {
19559 #define FLD(f) abuf->fields.sfmt_mwcut.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_average (current_cpu, GET_H_FR_INT (FLD (f_FRi)), GET_H_FR_INT (FLD (f_FRj)));
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 /* msllhi: msllhi$pack $FRinti,$u6,$FRintk */
19576
19577 static SEM_PC
19578 SEM_FN_NAME (frvbf,msllhi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19579 {
19580 #define FLD(f) abuf->fields.sfmt_msllhi.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 {
19587   {
19588     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRi)));
19589     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRi), opval);
19590     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19591   }
19592   {
19593     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
19594     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19595     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19596   }
19597   {
19598     UHI opval = SLLHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), ANDSI (FLD (f_u6), 15));
19599     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
19600     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19601   }
19602   {
19603     UHI opval = SLLHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), ANDSI (FLD (f_u6), 15));
19604     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
19605     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19606   }
19607 }
19608
19609   return vpc;
19610 #undef FLD
19611 }
19612
19613 /* msrlhi: msrlhi$pack $FRinti,$u6,$FRintk */
19614
19615 static SEM_PC
19616 SEM_FN_NAME (frvbf,msrlhi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19617 {
19618 #define FLD(f) abuf->fields.sfmt_msllhi.f
19619   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19620   int UNUSED written = 0;
19621   IADDR UNUSED pc = abuf->addr;
19622   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19623
19624 {
19625   {
19626     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRi)));
19627     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRi), opval);
19628     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19629   }
19630   {
19631     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
19632     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19633     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19634   }
19635   {
19636     UHI opval = SRLHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), ANDSI (FLD (f_u6), 15));
19637     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
19638     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19639   }
19640   {
19641     UHI opval = SRLHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), ANDSI (FLD (f_u6), 15));
19642     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
19643     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19644   }
19645 }
19646
19647   return vpc;
19648 #undef FLD
19649 }
19650
19651 /* msrahi: msrahi$pack $FRinti,$u6,$FRintk */
19652
19653 static SEM_PC
19654 SEM_FN_NAME (frvbf,msrahi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19655 {
19656 #define FLD(f) abuf->fields.sfmt_msllhi.f
19657   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19658   int UNUSED written = 0;
19659   IADDR UNUSED pc = abuf->addr;
19660   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19661
19662 {
19663   {
19664     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRi)));
19665     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRi), opval);
19666     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19667   }
19668   {
19669     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
19670     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19671     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19672   }
19673   {
19674     UHI opval = SRAHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), ANDSI (FLD (f_u6), 15));
19675     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
19676     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19677   }
19678   {
19679     UHI opval = SRAHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), ANDSI (FLD (f_u6), 15));
19680     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
19681     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19682   }
19683 }
19684
19685   return vpc;
19686 #undef FLD
19687 }
19688
19689 /* mdrotli: mdrotli$pack $FRintieven,$s6,$FRintkeven */
19690
19691 static SEM_PC
19692 SEM_FN_NAME (frvbf,mdrotli) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19693 {
19694 #define FLD(f) abuf->fields.sfmt_mdrotli.f
19695   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19696   int UNUSED written = 0;
19697   IADDR UNUSED pc = abuf->addr;
19698   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19699
19700 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1)))) {
19701 frvbf_media_register_not_aligned (current_cpu);
19702 } else {
19703 {
19704   {
19705     SI opval = ROLSI (GET_H_FR_INT (FLD (f_FRi)), ANDSI (FLD (f_s6), 31));
19706     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19707     written |= (1 << 5);
19708     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19709   }
19710   {
19711     USI opval = ROLSI (GET_H_FR_INT (((FLD (f_FRi)) + (1))), ANDSI (FLD (f_s6), 31));
19712     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (1)), opval);
19713     written |= (1 << 6);
19714     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19715   }
19716 }
19717 }
19718
19719   abuf->written = written;
19720   return vpc;
19721 #undef FLD
19722 }
19723
19724 /* mcplhi: mcplhi$pack $FRinti,$u6,$FRintk */
19725
19726 static SEM_PC
19727 SEM_FN_NAME (frvbf,mcplhi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19728 {
19729 #define FLD(f) abuf->fields.sfmt_mcplhi.f
19730   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19731   int UNUSED written = 0;
19732   IADDR UNUSED pc = abuf->addr;
19733   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19734
19735 {
19736   HI tmp_arg1;
19737   HI tmp_arg2;
19738   HI tmp_shift;
19739   {
19740     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRi)));
19741     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRi), opval);
19742     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19743   }
19744   {
19745     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
19746     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19747     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19748   }
19749   tmp_shift = ANDSI (FLD (f_u6), 15);
19750   tmp_arg1 = SLLHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), tmp_shift);
19751 if (NEHI (tmp_shift, 0)) {
19752 {
19753   tmp_arg2 = GET_H_FR_HI (((FLD (f_FRi)) + (1)));
19754   tmp_arg2 = SRLHI (SLLHI (tmp_arg2, SUBSI (15, tmp_shift)), SUBSI (15, tmp_shift));
19755   tmp_arg1 = ORHI (tmp_arg1, tmp_arg2);
19756 }
19757 }
19758   {
19759     UHI opval = tmp_arg1;
19760     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
19761     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19762   }
19763 }
19764
19765   return vpc;
19766 #undef FLD
19767 }
19768
19769 /* mcpli: mcpli$pack $FRinti,$u6,$FRintk */
19770
19771 static SEM_PC
19772 SEM_FN_NAME (frvbf,mcpli) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19773 {
19774 #define FLD(f) abuf->fields.sfmt_mwcuti.f
19775   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19776   int UNUSED written = 0;
19777   IADDR UNUSED pc = abuf->addr;
19778   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19779
19780 {
19781   SI tmp_tmp;
19782   SI tmp_shift;
19783   tmp_shift = ANDSI (FLD (f_u6), 31);
19784   tmp_tmp = SLLSI (GET_H_FR_INT (FLD (f_FRi)), tmp_shift);
19785 if (NESI (tmp_shift, 0)) {
19786 {
19787   SI tmp_tmp1;
19788   tmp_tmp1 = SRLSI (SLLSI (GET_H_FR_INT (((FLD (f_FRi)) + (1))), SUBSI (31, tmp_shift)), SUBSI (31, tmp_shift));
19789   tmp_tmp = ORSI (tmp_tmp, tmp_tmp1);
19790 }
19791 }
19792   {
19793     SI opval = tmp_tmp;
19794     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19795     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19796   }
19797 }
19798
19799   return vpc;
19800 #undef FLD
19801 }
19802
19803 /* msaths: msaths$pack $FRinti,$FRintj,$FRintk */
19804
19805 static SEM_PC
19806 SEM_FN_NAME (frvbf,msaths) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19807 {
19808 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
19809   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19810   int UNUSED written = 0;
19811   IADDR UNUSED pc = abuf->addr;
19812   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19813
19814 {
19815   HI tmp_argihi;
19816   HI tmp_argilo;
19817   HI tmp_argjhi;
19818   HI tmp_argjlo;
19819 {
19820   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
19821   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
19822   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
19823   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
19824 }
19825 if (GTHI (tmp_argihi, tmp_argjhi)) {
19826   {
19827     UHI opval = tmp_argjhi;
19828     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
19829     written |= (1 << 9);
19830     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19831   }
19832 } else {
19833 if (LTHI (tmp_argihi, INVHI (tmp_argjhi))) {
19834   {
19835     UHI opval = INVHI (tmp_argjhi);
19836     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
19837     written |= (1 << 9);
19838     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19839   }
19840 } else {
19841   {
19842     UHI opval = tmp_argihi;
19843     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
19844     written |= (1 << 9);
19845     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19846   }
19847 }
19848 }
19849 if (GTHI (tmp_argilo, tmp_argjlo)) {
19850   {
19851     UHI opval = tmp_argjlo;
19852     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
19853     written |= (1 << 10);
19854     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19855   }
19856 } else {
19857 if (LTHI (tmp_argilo, INVHI (tmp_argjlo))) {
19858   {
19859     UHI opval = INVHI (tmp_argjlo);
19860     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
19861     written |= (1 << 10);
19862     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19863   }
19864 } else {
19865   {
19866     UHI opval = tmp_argilo;
19867     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
19868     written |= (1 << 10);
19869     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19870   }
19871 }
19872 }
19873 }
19874
19875   abuf->written = written;
19876   return vpc;
19877 #undef FLD
19878 }
19879
19880 /* mqsaths: mqsaths$pack $FRintieven,$FRintjeven,$FRintkeven */
19881
19882 static SEM_PC
19883 SEM_FN_NAME (frvbf,mqsaths) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19884 {
19885 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
19886   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19887   int UNUSED written = 0;
19888   IADDR UNUSED pc = abuf->addr;
19889   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19890
19891 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
19892 frvbf_media_register_not_aligned (current_cpu);
19893 } else {
19894 {
19895   HI tmp_argihi;
19896   HI tmp_argilo;
19897   HI tmp_argjhi;
19898   HI tmp_argjlo;
19899   {
19900     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
19901     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19902     written |= (1 << 14);
19903     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19904   }
19905 {
19906   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
19907   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
19908   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
19909   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
19910 }
19911 if (GTHI (tmp_argihi, tmp_argjhi)) {
19912   {
19913     UHI opval = tmp_argjhi;
19914     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
19915     written |= (1 << 15);
19916     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19917   }
19918 } else {
19919 if (LTHI (tmp_argihi, INVHI (tmp_argjhi))) {
19920   {
19921     UHI opval = INVHI (tmp_argjhi);
19922     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
19923     written |= (1 << 15);
19924     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19925   }
19926 } else {
19927   {
19928     UHI opval = tmp_argihi;
19929     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
19930     written |= (1 << 15);
19931     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19932   }
19933 }
19934 }
19935 if (GTHI (tmp_argilo, tmp_argjlo)) {
19936   {
19937     UHI opval = tmp_argjlo;
19938     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
19939     written |= (1 << 17);
19940     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19941   }
19942 } else {
19943 if (LTHI (tmp_argilo, INVHI (tmp_argjlo))) {
19944   {
19945     UHI opval = INVHI (tmp_argjlo);
19946     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
19947     written |= (1 << 17);
19948     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19949   }
19950 } else {
19951   {
19952     UHI opval = tmp_argilo;
19953     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
19954     written |= (1 << 17);
19955     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19956   }
19957 }
19958 }
19959 {
19960   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
19961   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
19962   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
19963   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
19964 }
19965 if (GTHI (tmp_argihi, tmp_argjhi)) {
19966   {
19967     UHI opval = tmp_argjhi;
19968     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
19969     written |= (1 << 16);
19970     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19971   }
19972 } else {
19973 if (LTHI (tmp_argihi, INVHI (tmp_argjhi))) {
19974   {
19975     UHI opval = INVHI (tmp_argjhi);
19976     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
19977     written |= (1 << 16);
19978     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19979   }
19980 } else {
19981   {
19982     UHI opval = tmp_argihi;
19983     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
19984     written |= (1 << 16);
19985     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19986   }
19987 }
19988 }
19989 if (GTHI (tmp_argilo, tmp_argjlo)) {
19990   {
19991     UHI opval = tmp_argjlo;
19992     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
19993     written |= (1 << 18);
19994     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19995   }
19996 } else {
19997 if (LTHI (tmp_argilo, INVHI (tmp_argjlo))) {
19998   {
19999     UHI opval = INVHI (tmp_argjlo);
20000     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
20001     written |= (1 << 18);
20002     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20003   }
20004 } else {
20005   {
20006     UHI opval = tmp_argilo;
20007     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
20008     written |= (1 << 18);
20009     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20010   }
20011 }
20012 }
20013 }
20014 }
20015
20016   abuf->written = written;
20017   return vpc;
20018 #undef FLD
20019 }
20020
20021 /* msathu: msathu$pack $FRinti,$FRintj,$FRintk */
20022
20023 static SEM_PC
20024 SEM_FN_NAME (frvbf,msathu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20025 {
20026 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
20027   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20028   int UNUSED written = 0;
20029   IADDR UNUSED pc = abuf->addr;
20030   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20031
20032 {
20033   UHI tmp_argihi;
20034   UHI tmp_argilo;
20035   UHI tmp_argjhi;
20036   UHI tmp_argjlo;
20037 {
20038   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20039   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20040   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20041   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20042 }
20043 if (GTUHI (tmp_argihi, tmp_argjhi)) {
20044   {
20045     UHI opval = tmp_argjhi;
20046     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20047     written |= (1 << 9);
20048     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20049   }
20050 } else {
20051   {
20052     UHI opval = tmp_argihi;
20053     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20054     written |= (1 << 9);
20055     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20056   }
20057 }
20058 if (GTUHI (tmp_argilo, tmp_argjlo)) {
20059   {
20060     UHI opval = tmp_argjlo;
20061     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20062     written |= (1 << 10);
20063     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20064   }
20065 } else {
20066   {
20067     UHI opval = tmp_argilo;
20068     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20069     written |= (1 << 10);
20070     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20071   }
20072 }
20073 }
20074
20075   abuf->written = written;
20076   return vpc;
20077 #undef FLD
20078 }
20079
20080 /* mcmpsh: mcmpsh$pack $FRinti,$FRintj,$FCCk */
20081
20082 static SEM_PC
20083 SEM_FN_NAME (frvbf,mcmpsh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20084 {
20085 #define FLD(f) abuf->fields.sfmt_mcmpsh.f
20086   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20087   int UNUSED written = 0;
20088   IADDR UNUSED pc = abuf->addr;
20089   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20090
20091 if (ANDSI (FLD (f_FCCk), SUBSI (2, 1))) {
20092 frvbf_media_cr_not_aligned (current_cpu);
20093 } else {
20094 {
20095   HI tmp_argihi;
20096   HI tmp_argilo;
20097   HI tmp_argjhi;
20098   HI tmp_argjlo;
20099 {
20100   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20101   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20102   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20103   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20104 }
20105 if (GTHI (tmp_argihi, tmp_argjhi)) {
20106   {
20107     UQI opval = 2;
20108     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCk)]), opval);
20109     written |= (1 << 9);
20110     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20111   }
20112 } else {
20113 if (EQHI (tmp_argihi, tmp_argjhi)) {
20114   {
20115     UQI opval = 8;
20116     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCk)]), opval);
20117     written |= (1 << 9);
20118     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20119   }
20120 } else {
20121 if (LTHI (tmp_argihi, tmp_argjhi)) {
20122   {
20123     UQI opval = 4;
20124     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCk)]), opval);
20125     written |= (1 << 9);
20126     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20127   }
20128 } else {
20129   {
20130     UQI opval = 1;
20131     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCk)]), opval);
20132     written |= (1 << 9);
20133     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20134   }
20135 }
20136 }
20137 }
20138 if (GTHI (tmp_argilo, tmp_argjlo)) {
20139   {
20140     UQI opval = 2;
20141     sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCk)) + (1))]), opval);
20142     written |= (1 << 10);
20143     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20144   }
20145 } else {
20146 if (EQHI (tmp_argilo, tmp_argjlo)) {
20147   {
20148     UQI opval = 8;
20149     sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCk)) + (1))]), opval);
20150     written |= (1 << 10);
20151     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20152   }
20153 } else {
20154 if (LTHI (tmp_argilo, tmp_argjlo)) {
20155   {
20156     UQI opval = 4;
20157     sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCk)) + (1))]), opval);
20158     written |= (1 << 10);
20159     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20160   }
20161 } else {
20162   {
20163     UQI opval = 1;
20164     sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCk)) + (1))]), opval);
20165     written |= (1 << 10);
20166     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20167   }
20168 }
20169 }
20170 }
20171 }
20172 }
20173
20174   abuf->written = written;
20175   return vpc;
20176 #undef FLD
20177 }
20178
20179 /* mcmpuh: mcmpuh$pack $FRinti,$FRintj,$FCCk */
20180
20181 static SEM_PC
20182 SEM_FN_NAME (frvbf,mcmpuh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20183 {
20184 #define FLD(f) abuf->fields.sfmt_mcmpsh.f
20185   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20186   int UNUSED written = 0;
20187   IADDR UNUSED pc = abuf->addr;
20188   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20189
20190 if (ANDSI (FLD (f_FCCk), SUBSI (2, 1))) {
20191 frvbf_media_cr_not_aligned (current_cpu);
20192 } else {
20193 {
20194   UHI tmp_argihi;
20195   UHI tmp_argilo;
20196   UHI tmp_argjhi;
20197   UHI tmp_argjlo;
20198 {
20199   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20200   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20201   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20202   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20203 }
20204 if (GTUHI (tmp_argihi, tmp_argjhi)) {
20205   {
20206     UQI opval = 2;
20207     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCk)]), opval);
20208     written |= (1 << 9);
20209     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20210   }
20211 } else {
20212 if (EQHI (tmp_argihi, tmp_argjhi)) {
20213   {
20214     UQI opval = 8;
20215     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCk)]), opval);
20216     written |= (1 << 9);
20217     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20218   }
20219 } else {
20220 if (LTUHI (tmp_argihi, tmp_argjhi)) {
20221   {
20222     UQI opval = 4;
20223     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCk)]), opval);
20224     written |= (1 << 9);
20225     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20226   }
20227 } else {
20228   {
20229     UQI opval = 1;
20230     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCk)]), opval);
20231     written |= (1 << 9);
20232     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20233   }
20234 }
20235 }
20236 }
20237 if (GTUHI (tmp_argilo, tmp_argjlo)) {
20238   {
20239     UQI opval = 2;
20240     sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCk)) + (1))]), opval);
20241     written |= (1 << 10);
20242     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20243   }
20244 } else {
20245 if (EQHI (tmp_argilo, tmp_argjlo)) {
20246   {
20247     UQI opval = 8;
20248     sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCk)) + (1))]), opval);
20249     written |= (1 << 10);
20250     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20251   }
20252 } else {
20253 if (LTUHI (tmp_argilo, tmp_argjlo)) {
20254   {
20255     UQI opval = 4;
20256     sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCk)) + (1))]), opval);
20257     written |= (1 << 10);
20258     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20259   }
20260 } else {
20261   {
20262     UQI opval = 1;
20263     sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCk)) + (1))]), opval);
20264     written |= (1 << 10);
20265     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20266   }
20267 }
20268 }
20269 }
20270 }
20271 }
20272
20273   abuf->written = written;
20274   return vpc;
20275 #undef FLD
20276 }
20277
20278 /* mabshs: mabshs$pack $FRintj,$FRintk */
20279
20280 static SEM_PC
20281 SEM_FN_NAME (frvbf,mabshs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20282 {
20283 #define FLD(f) abuf->fields.sfmt_mabshs.f
20284   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20285   int UNUSED written = 0;
20286   IADDR UNUSED pc = abuf->addr;
20287   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20288
20289 {
20290   HI tmp_arghi;
20291   HI tmp_arglo;
20292   {
20293     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRj)));
20294     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRj), opval);
20295     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
20296   }
20297   {
20298     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
20299     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
20300     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
20301   }
20302   tmp_arghi = GET_H_FR_HI (((FLD (f_FRj)) + (0)));
20303   tmp_arglo = GET_H_FR_LO (((FLD (f_FRj)) + (0)));
20304 if (GTDI (ABSHI (tmp_arghi), 32767)) {
20305 {
20306   {
20307     UHI opval = 32767;
20308     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20309     written |= (1 << 8);
20310     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20311   }
20312 frvbf_media_overflow (current_cpu, 8);
20313 }
20314 } else {
20315 if (LTDI (ABSHI (tmp_arghi), -32768)) {
20316 {
20317   {
20318     UHI opval = -32768;
20319     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20320     written |= (1 << 8);
20321     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20322   }
20323 frvbf_media_overflow (current_cpu, 8);
20324 }
20325 } else {
20326   {
20327     UHI opval = ABSHI (tmp_arghi);
20328     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20329     written |= (1 << 8);
20330     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20331   }
20332 }
20333 }
20334 if (GTDI (ABSHI (tmp_arglo), 32767)) {
20335 {
20336   {
20337     UHI opval = 32767;
20338     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20339     written |= (1 << 9);
20340     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20341   }
20342 frvbf_media_overflow (current_cpu, 4);
20343 }
20344 } else {
20345 if (LTDI (ABSHI (tmp_arglo), -32768)) {
20346 {
20347   {
20348     UHI opval = -32768;
20349     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20350     written |= (1 << 9);
20351     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20352   }
20353 frvbf_media_overflow (current_cpu, 4);
20354 }
20355 } else {
20356   {
20357     UHI opval = ABSHI (tmp_arglo);
20358     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20359     written |= (1 << 9);
20360     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20361   }
20362 }
20363 }
20364 }
20365
20366   abuf->written = written;
20367   return vpc;
20368 #undef FLD
20369 }
20370
20371 /* maddhss: maddhss$pack $FRinti,$FRintj,$FRintk */
20372
20373 static SEM_PC
20374 SEM_FN_NAME (frvbf,maddhss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20375 {
20376 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
20377   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20378   int UNUSED written = 0;
20379   IADDR UNUSED pc = abuf->addr;
20380   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20381
20382 {
20383   HI tmp_argihi;
20384   HI tmp_argilo;
20385   HI tmp_argjhi;
20386   HI tmp_argjlo;
20387 {
20388   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20389   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20390   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20391   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20392 }
20393 {
20394   DI tmp_tmp;
20395   tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
20396 if (GTDI (tmp_tmp, 32767)) {
20397 {
20398   {
20399     UHI opval = 32767;
20400     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20401     written |= (1 << 9);
20402     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20403   }
20404 frvbf_media_overflow (current_cpu, 8);
20405 }
20406 } else {
20407 if (LTDI (tmp_tmp, -32768)) {
20408 {
20409   {
20410     UHI opval = -32768;
20411     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20412     written |= (1 << 9);
20413     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20414   }
20415 frvbf_media_overflow (current_cpu, 8);
20416 }
20417 } else {
20418   {
20419     UHI opval = tmp_tmp;
20420     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20421     written |= (1 << 9);
20422     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20423   }
20424 }
20425 }
20426 }
20427 {
20428   DI tmp_tmp;
20429   tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
20430 if (GTDI (tmp_tmp, 32767)) {
20431 {
20432   {
20433     UHI opval = 32767;
20434     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20435     written |= (1 << 10);
20436     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20437   }
20438 frvbf_media_overflow (current_cpu, 4);
20439 }
20440 } else {
20441 if (LTDI (tmp_tmp, -32768)) {
20442 {
20443   {
20444     UHI opval = -32768;
20445     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20446     written |= (1 << 10);
20447     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20448   }
20449 frvbf_media_overflow (current_cpu, 4);
20450 }
20451 } else {
20452   {
20453     UHI opval = tmp_tmp;
20454     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20455     written |= (1 << 10);
20456     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20457   }
20458 }
20459 }
20460 }
20461 }
20462
20463   abuf->written = written;
20464   return vpc;
20465 #undef FLD
20466 }
20467
20468 /* maddhus: maddhus$pack $FRinti,$FRintj,$FRintk */
20469
20470 static SEM_PC
20471 SEM_FN_NAME (frvbf,maddhus) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20472 {
20473 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
20474   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20475   int UNUSED written = 0;
20476   IADDR UNUSED pc = abuf->addr;
20477   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20478
20479 {
20480   UHI tmp_argihi;
20481   UHI tmp_argilo;
20482   UHI tmp_argjhi;
20483   UHI tmp_argjlo;
20484 {
20485   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20486   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20487   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20488   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20489 }
20490 {
20491   DI tmp_tmp;
20492   tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
20493 if (GTDI (tmp_tmp, 65535)) {
20494 {
20495   {
20496     UHI opval = 65535;
20497     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20498     written |= (1 << 9);
20499     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20500   }
20501 frvbf_media_overflow (current_cpu, 8);
20502 }
20503 } else {
20504 if (LTDI (tmp_tmp, 0)) {
20505 {
20506   {
20507     UHI opval = 0;
20508     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20509     written |= (1 << 9);
20510     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20511   }
20512 frvbf_media_overflow (current_cpu, 8);
20513 }
20514 } else {
20515   {
20516     UHI opval = tmp_tmp;
20517     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20518     written |= (1 << 9);
20519     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20520   }
20521 }
20522 }
20523 }
20524 {
20525   DI tmp_tmp;
20526   tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
20527 if (GTDI (tmp_tmp, 65535)) {
20528 {
20529   {
20530     UHI opval = 65535;
20531     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20532     written |= (1 << 10);
20533     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20534   }
20535 frvbf_media_overflow (current_cpu, 4);
20536 }
20537 } else {
20538 if (LTDI (tmp_tmp, 0)) {
20539 {
20540   {
20541     UHI opval = 0;
20542     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20543     written |= (1 << 10);
20544     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20545   }
20546 frvbf_media_overflow (current_cpu, 4);
20547 }
20548 } else {
20549   {
20550     UHI opval = tmp_tmp;
20551     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20552     written |= (1 << 10);
20553     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20554   }
20555 }
20556 }
20557 }
20558 }
20559
20560   abuf->written = written;
20561   return vpc;
20562 #undef FLD
20563 }
20564
20565 /* msubhss: msubhss$pack $FRinti,$FRintj,$FRintk */
20566
20567 static SEM_PC
20568 SEM_FN_NAME (frvbf,msubhss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20569 {
20570 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
20571   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20572   int UNUSED written = 0;
20573   IADDR UNUSED pc = abuf->addr;
20574   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20575
20576 {
20577   HI tmp_argihi;
20578   HI tmp_argilo;
20579   HI tmp_argjhi;
20580   HI tmp_argjlo;
20581 {
20582   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20583   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20584   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20585   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20586 }
20587 {
20588   DI tmp_tmp;
20589   tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
20590 if (GTDI (tmp_tmp, 32767)) {
20591 {
20592   {
20593     UHI opval = 32767;
20594     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20595     written |= (1 << 9);
20596     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20597   }
20598 frvbf_media_overflow (current_cpu, 8);
20599 }
20600 } else {
20601 if (LTDI (tmp_tmp, -32768)) {
20602 {
20603   {
20604     UHI opval = -32768;
20605     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20606     written |= (1 << 9);
20607     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20608   }
20609 frvbf_media_overflow (current_cpu, 8);
20610 }
20611 } else {
20612   {
20613     UHI opval = tmp_tmp;
20614     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20615     written |= (1 << 9);
20616     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20617   }
20618 }
20619 }
20620 }
20621 {
20622   DI tmp_tmp;
20623   tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
20624 if (GTDI (tmp_tmp, 32767)) {
20625 {
20626   {
20627     UHI opval = 32767;
20628     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20629     written |= (1 << 10);
20630     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20631   }
20632 frvbf_media_overflow (current_cpu, 4);
20633 }
20634 } else {
20635 if (LTDI (tmp_tmp, -32768)) {
20636 {
20637   {
20638     UHI opval = -32768;
20639     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20640     written |= (1 << 10);
20641     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20642   }
20643 frvbf_media_overflow (current_cpu, 4);
20644 }
20645 } else {
20646   {
20647     UHI opval = tmp_tmp;
20648     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20649     written |= (1 << 10);
20650     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20651   }
20652 }
20653 }
20654 }
20655 }
20656
20657   abuf->written = written;
20658   return vpc;
20659 #undef FLD
20660 }
20661
20662 /* msubhus: msubhus$pack $FRinti,$FRintj,$FRintk */
20663
20664 static SEM_PC
20665 SEM_FN_NAME (frvbf,msubhus) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20666 {
20667 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
20668   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20669   int UNUSED written = 0;
20670   IADDR UNUSED pc = abuf->addr;
20671   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20672
20673 {
20674   UHI tmp_argihi;
20675   UHI tmp_argilo;
20676   UHI tmp_argjhi;
20677   UHI tmp_argjlo;
20678 {
20679   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20680   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20681   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20682   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20683 }
20684 {
20685   DI tmp_tmp;
20686   tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
20687 if (GTDI (tmp_tmp, 65535)) {
20688 {
20689   {
20690     UHI opval = 65535;
20691     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20692     written |= (1 << 9);
20693     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20694   }
20695 frvbf_media_overflow (current_cpu, 8);
20696 }
20697 } else {
20698 if (LTDI (tmp_tmp, 0)) {
20699 {
20700   {
20701     UHI opval = 0;
20702     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20703     written |= (1 << 9);
20704     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20705   }
20706 frvbf_media_overflow (current_cpu, 8);
20707 }
20708 } else {
20709   {
20710     UHI opval = tmp_tmp;
20711     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20712     written |= (1 << 9);
20713     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20714   }
20715 }
20716 }
20717 }
20718 {
20719   DI tmp_tmp;
20720   tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
20721 if (GTDI (tmp_tmp, 65535)) {
20722 {
20723   {
20724     UHI opval = 65535;
20725     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20726     written |= (1 << 10);
20727     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20728   }
20729 frvbf_media_overflow (current_cpu, 4);
20730 }
20731 } else {
20732 if (LTDI (tmp_tmp, 0)) {
20733 {
20734   {
20735     UHI opval = 0;
20736     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20737     written |= (1 << 10);
20738     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20739   }
20740 frvbf_media_overflow (current_cpu, 4);
20741 }
20742 } else {
20743   {
20744     UHI opval = tmp_tmp;
20745     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20746     written |= (1 << 10);
20747     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20748   }
20749 }
20750 }
20751 }
20752 }
20753
20754   abuf->written = written;
20755   return vpc;
20756 #undef FLD
20757 }
20758
20759 /* cmaddhss: cmaddhss$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
20760
20761 static SEM_PC
20762 SEM_FN_NAME (frvbf,cmaddhss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20763 {
20764 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
20765   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20766   int UNUSED written = 0;
20767   IADDR UNUSED pc = abuf->addr;
20768   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20769
20770 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
20771 {
20772   HI tmp_argihi;
20773   HI tmp_argilo;
20774   HI tmp_argjhi;
20775   HI tmp_argjlo;
20776 {
20777   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20778   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20779   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20780   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20781 }
20782 {
20783   DI tmp_tmp;
20784   tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
20785 if (GTDI (tmp_tmp, 32767)) {
20786 {
20787   {
20788     UHI opval = 32767;
20789     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20790     written |= (1 << 11);
20791     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20792   }
20793 frvbf_media_overflow (current_cpu, 8);
20794 }
20795 } else {
20796 if (LTDI (tmp_tmp, -32768)) {
20797 {
20798   {
20799     UHI opval = -32768;
20800     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20801     written |= (1 << 11);
20802     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20803   }
20804 frvbf_media_overflow (current_cpu, 8);
20805 }
20806 } else {
20807   {
20808     UHI opval = tmp_tmp;
20809     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20810     written |= (1 << 11);
20811     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20812   }
20813 }
20814 }
20815 }
20816 {
20817   DI tmp_tmp;
20818   tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
20819 if (GTDI (tmp_tmp, 32767)) {
20820 {
20821   {
20822     UHI opval = 32767;
20823     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20824     written |= (1 << 12);
20825     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20826   }
20827 frvbf_media_overflow (current_cpu, 4);
20828 }
20829 } else {
20830 if (LTDI (tmp_tmp, -32768)) {
20831 {
20832   {
20833     UHI opval = -32768;
20834     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20835     written |= (1 << 12);
20836     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20837   }
20838 frvbf_media_overflow (current_cpu, 4);
20839 }
20840 } else {
20841   {
20842     UHI opval = tmp_tmp;
20843     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20844     written |= (1 << 12);
20845     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20846   }
20847 }
20848 }
20849 }
20850 }
20851 }
20852
20853   abuf->written = written;
20854   return vpc;
20855 #undef FLD
20856 }
20857
20858 /* cmaddhus: cmaddhus$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
20859
20860 static SEM_PC
20861 SEM_FN_NAME (frvbf,cmaddhus) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20862 {
20863 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
20864   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20865   int UNUSED written = 0;
20866   IADDR UNUSED pc = abuf->addr;
20867   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20868
20869 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
20870 {
20871   UHI tmp_argihi;
20872   UHI tmp_argilo;
20873   UHI tmp_argjhi;
20874   UHI tmp_argjlo;
20875 {
20876   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20877   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20878   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20879   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20880 }
20881 {
20882   DI tmp_tmp;
20883   tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
20884 if (GTDI (tmp_tmp, 65535)) {
20885 {
20886   {
20887     UHI opval = 65535;
20888     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20889     written |= (1 << 11);
20890     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20891   }
20892 frvbf_media_overflow (current_cpu, 8);
20893 }
20894 } else {
20895 if (LTDI (tmp_tmp, 0)) {
20896 {
20897   {
20898     UHI opval = 0;
20899     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20900     written |= (1 << 11);
20901     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20902   }
20903 frvbf_media_overflow (current_cpu, 8);
20904 }
20905 } else {
20906   {
20907     UHI opval = tmp_tmp;
20908     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20909     written |= (1 << 11);
20910     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20911   }
20912 }
20913 }
20914 }
20915 {
20916   DI tmp_tmp;
20917   tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
20918 if (GTDI (tmp_tmp, 65535)) {
20919 {
20920   {
20921     UHI opval = 65535;
20922     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20923     written |= (1 << 12);
20924     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20925   }
20926 frvbf_media_overflow (current_cpu, 4);
20927 }
20928 } else {
20929 if (LTDI (tmp_tmp, 0)) {
20930 {
20931   {
20932     UHI opval = 0;
20933     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20934     written |= (1 << 12);
20935     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20936   }
20937 frvbf_media_overflow (current_cpu, 4);
20938 }
20939 } else {
20940   {
20941     UHI opval = tmp_tmp;
20942     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20943     written |= (1 << 12);
20944     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20945   }
20946 }
20947 }
20948 }
20949 }
20950 }
20951
20952   abuf->written = written;
20953   return vpc;
20954 #undef FLD
20955 }
20956
20957 /* cmsubhss: cmsubhss$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
20958
20959 static SEM_PC
20960 SEM_FN_NAME (frvbf,cmsubhss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20961 {
20962 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
20963   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20964   int UNUSED written = 0;
20965   IADDR UNUSED pc = abuf->addr;
20966   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20967
20968 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
20969 {
20970   HI tmp_argihi;
20971   HI tmp_argilo;
20972   HI tmp_argjhi;
20973   HI tmp_argjlo;
20974 {
20975   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20976   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20977   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20978   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20979 }
20980 {
20981   DI tmp_tmp;
20982   tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
20983 if (GTDI (tmp_tmp, 32767)) {
20984 {
20985   {
20986     UHI opval = 32767;
20987     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20988     written |= (1 << 11);
20989     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20990   }
20991 frvbf_media_overflow (current_cpu, 8);
20992 }
20993 } else {
20994 if (LTDI (tmp_tmp, -32768)) {
20995 {
20996   {
20997     UHI opval = -32768;
20998     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20999     written |= (1 << 11);
21000     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21001   }
21002 frvbf_media_overflow (current_cpu, 8);
21003 }
21004 } else {
21005   {
21006     UHI opval = tmp_tmp;
21007     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21008     written |= (1 << 11);
21009     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21010   }
21011 }
21012 }
21013 }
21014 {
21015   DI tmp_tmp;
21016   tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
21017 if (GTDI (tmp_tmp, 32767)) {
21018 {
21019   {
21020     UHI opval = 32767;
21021     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21022     written |= (1 << 12);
21023     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21024   }
21025 frvbf_media_overflow (current_cpu, 4);
21026 }
21027 } else {
21028 if (LTDI (tmp_tmp, -32768)) {
21029 {
21030   {
21031     UHI opval = -32768;
21032     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21033     written |= (1 << 12);
21034     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21035   }
21036 frvbf_media_overflow (current_cpu, 4);
21037 }
21038 } else {
21039   {
21040     UHI opval = tmp_tmp;
21041     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21042     written |= (1 << 12);
21043     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21044   }
21045 }
21046 }
21047 }
21048 }
21049 }
21050
21051   abuf->written = written;
21052   return vpc;
21053 #undef FLD
21054 }
21055
21056 /* cmsubhus: cmsubhus$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
21057
21058 static SEM_PC
21059 SEM_FN_NAME (frvbf,cmsubhus) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
21060 {
21061 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
21062   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
21063   int UNUSED written = 0;
21064   IADDR UNUSED pc = abuf->addr;
21065   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
21066
21067 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
21068 {
21069   UHI tmp_argihi;
21070   UHI tmp_argilo;
21071   UHI tmp_argjhi;
21072   UHI tmp_argjlo;
21073 {
21074   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21075   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21076   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21077   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21078 }
21079 {
21080   DI tmp_tmp;
21081   tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
21082 if (GTDI (tmp_tmp, 65535)) {
21083 {
21084   {
21085     UHI opval = 65535;
21086     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21087     written |= (1 << 11);
21088     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21089   }
21090 frvbf_media_overflow (current_cpu, 8);
21091 }
21092 } else {
21093 if (LTDI (tmp_tmp, 0)) {
21094 {
21095   {
21096     UHI opval = 0;
21097     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21098     written |= (1 << 11);
21099     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21100   }
21101 frvbf_media_overflow (current_cpu, 8);
21102 }
21103 } else {
21104   {
21105     UHI opval = tmp_tmp;
21106     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21107     written |= (1 << 11);
21108     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21109   }
21110 }
21111 }
21112 }
21113 {
21114   DI tmp_tmp;
21115   tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
21116 if (GTDI (tmp_tmp, 65535)) {
21117 {
21118   {
21119     UHI opval = 65535;
21120     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21121     written |= (1 << 12);
21122     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21123   }
21124 frvbf_media_overflow (current_cpu, 4);
21125 }
21126 } else {
21127 if (LTDI (tmp_tmp, 0)) {
21128 {
21129   {
21130     UHI opval = 0;
21131     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21132     written |= (1 << 12);
21133     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21134   }
21135 frvbf_media_overflow (current_cpu, 4);
21136 }
21137 } else {
21138   {
21139     UHI opval = tmp_tmp;
21140     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21141     written |= (1 << 12);
21142     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21143   }
21144 }
21145 }
21146 }
21147 }
21148 }
21149
21150   abuf->written = written;
21151   return vpc;
21152 #undef FLD
21153 }
21154
21155 /* mqaddhss: mqaddhss$pack $FRintieven,$FRintjeven,$FRintkeven */
21156
21157 static SEM_PC
21158 SEM_FN_NAME (frvbf,mqaddhss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
21159 {
21160 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
21161   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
21162   int UNUSED written = 0;
21163   IADDR UNUSED pc = abuf->addr;
21164   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
21165
21166 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
21167 frvbf_media_register_not_aligned (current_cpu);
21168 } else {
21169 {
21170   HI tmp_argihi;
21171   HI tmp_argilo;
21172   HI tmp_argjhi;
21173   HI tmp_argjlo;
21174   {
21175     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
21176     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
21177     written |= (1 << 14);
21178     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
21179   }
21180 {
21181   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21182   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21183   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21184   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21185 }
21186 {
21187   DI tmp_tmp;
21188   tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
21189 if (GTDI (tmp_tmp, 32767)) {
21190 {
21191   {
21192     UHI opval = 32767;
21193     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21194     written |= (1 << 15);
21195     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21196   }
21197 frvbf_media_overflow (current_cpu, 8);
21198 }
21199 } else {
21200 if (LTDI (tmp_tmp, -32768)) {
21201 {
21202   {
21203     UHI opval = -32768;
21204     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21205     written |= (1 << 15);
21206     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21207   }
21208 frvbf_media_overflow (current_cpu, 8);
21209 }
21210 } else {
21211   {
21212     UHI opval = tmp_tmp;
21213     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21214     written |= (1 << 15);
21215     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21216   }
21217 }
21218 }
21219 }
21220 {
21221   DI tmp_tmp;
21222   tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
21223 if (GTDI (tmp_tmp, 32767)) {
21224 {
21225   {
21226     UHI opval = 32767;
21227     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21228     written |= (1 << 17);
21229     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21230   }
21231 frvbf_media_overflow (current_cpu, 4);
21232 }
21233 } else {
21234 if (LTDI (tmp_tmp, -32768)) {
21235 {
21236   {
21237     UHI opval = -32768;
21238     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21239     written |= (1 << 17);
21240     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21241   }
21242 frvbf_media_overflow (current_cpu, 4);
21243 }
21244 } else {
21245   {
21246     UHI opval = tmp_tmp;
21247     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21248     written |= (1 << 17);
21249     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21250   }
21251 }
21252 }
21253 }
21254 {
21255   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21256   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21257   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21258   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21259 }
21260 {
21261   DI tmp_tmp;
21262   tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
21263 if (GTDI (tmp_tmp, 32767)) {
21264 {
21265   {
21266     UHI opval = 32767;
21267     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21268     written |= (1 << 16);
21269     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21270   }
21271 frvbf_media_overflow (current_cpu, 2);
21272 }
21273 } else {
21274 if (LTDI (tmp_tmp, -32768)) {
21275 {
21276   {
21277     UHI opval = -32768;
21278     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21279     written |= (1 << 16);
21280     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21281   }
21282 frvbf_media_overflow (current_cpu, 2);
21283 }
21284 } else {
21285   {
21286     UHI opval = tmp_tmp;
21287     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21288     written |= (1 << 16);
21289     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21290   }
21291 }
21292 }
21293 }
21294 {
21295   DI tmp_tmp;
21296   tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
21297 if (GTDI (tmp_tmp, 32767)) {
21298 {
21299   {
21300     UHI opval = 32767;
21301     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21302     written |= (1 << 18);
21303     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21304   }
21305 frvbf_media_overflow (current_cpu, 1);
21306 }
21307 } else {
21308 if (LTDI (tmp_tmp, -32768)) {
21309 {
21310   {
21311     UHI opval = -32768;
21312     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21313     written |= (1 << 18);
21314     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21315   }
21316 frvbf_media_overflow (current_cpu, 1);
21317 }
21318 } else {
21319   {
21320     UHI opval = tmp_tmp;
21321     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21322     written |= (1 << 18);
21323     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21324   }
21325 }
21326 }
21327 }
21328 }
21329 }
21330
21331   abuf->written = written;
21332   return vpc;
21333 #undef FLD
21334 }
21335
21336 /* mqaddhus: mqaddhus$pack $FRintieven,$FRintjeven,$FRintkeven */
21337
21338 static SEM_PC
21339 SEM_FN_NAME (frvbf,mqaddhus) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
21340 {
21341 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
21342   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
21343   int UNUSED written = 0;
21344   IADDR UNUSED pc = abuf->addr;
21345   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
21346
21347 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
21348 frvbf_media_register_not_aligned (current_cpu);
21349 } else {
21350 {
21351   UHI tmp_argihi;
21352   UHI tmp_argilo;
21353   UHI tmp_argjhi;
21354   UHI tmp_argjlo;
21355   {
21356     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
21357     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
21358     written |= (1 << 14);
21359     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
21360   }
21361 {
21362   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21363   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21364   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21365   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21366 }
21367 {
21368   DI tmp_tmp;
21369   tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
21370 if (GTDI (tmp_tmp, 65535)) {
21371 {
21372   {
21373     UHI opval = 65535;
21374     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21375     written |= (1 << 15);
21376     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21377   }
21378 frvbf_media_overflow (current_cpu, 8);
21379 }
21380 } else {
21381 if (LTDI (tmp_tmp, 0)) {
21382 {
21383   {
21384     UHI opval = 0;
21385     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21386     written |= (1 << 15);
21387     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21388   }
21389 frvbf_media_overflow (current_cpu, 8);
21390 }
21391 } else {
21392   {
21393     UHI opval = tmp_tmp;
21394     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21395     written |= (1 << 15);
21396     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21397   }
21398 }
21399 }
21400 }
21401 {
21402   DI tmp_tmp;
21403   tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
21404 if (GTDI (tmp_tmp, 65535)) {
21405 {
21406   {
21407     UHI opval = 65535;
21408     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21409     written |= (1 << 17);
21410     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21411   }
21412 frvbf_media_overflow (current_cpu, 4);
21413 }
21414 } else {
21415 if (LTDI (tmp_tmp, 0)) {
21416 {
21417   {
21418     UHI opval = 0;
21419     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21420     written |= (1 << 17);
21421     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21422   }
21423 frvbf_media_overflow (current_cpu, 4);
21424 }
21425 } else {
21426   {
21427     UHI opval = tmp_tmp;
21428     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21429     written |= (1 << 17);
21430     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21431   }
21432 }
21433 }
21434 }
21435 {
21436   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21437   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21438   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21439   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21440 }
21441 {
21442   DI tmp_tmp;
21443   tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
21444 if (GTDI (tmp_tmp, 65535)) {
21445 {
21446   {
21447     UHI opval = 65535;
21448     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21449     written |= (1 << 16);
21450     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21451   }
21452 frvbf_media_overflow (current_cpu, 2);
21453 }
21454 } else {
21455 if (LTDI (tmp_tmp, 0)) {
21456 {
21457   {
21458     UHI opval = 0;
21459     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21460     written |= (1 << 16);
21461     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21462   }
21463 frvbf_media_overflow (current_cpu, 2);
21464 }
21465 } else {
21466   {
21467     UHI opval = tmp_tmp;
21468     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21469     written |= (1 << 16);
21470     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21471   }
21472 }
21473 }
21474 }
21475 {
21476   DI tmp_tmp;
21477   tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
21478 if (GTDI (tmp_tmp, 65535)) {
21479 {
21480   {
21481     UHI opval = 65535;
21482     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21483     written |= (1 << 18);
21484     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21485   }
21486 frvbf_media_overflow (current_cpu, 1);
21487 }
21488 } else {
21489 if (LTDI (tmp_tmp, 0)) {
21490 {
21491   {
21492     UHI opval = 0;
21493     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21494     written |= (1 << 18);
21495     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21496   }
21497 frvbf_media_overflow (current_cpu, 1);
21498 }
21499 } else {
21500   {
21501     UHI opval = tmp_tmp;
21502     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21503     written |= (1 << 18);
21504     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21505   }
21506 }
21507 }
21508 }
21509 }
21510 }
21511
21512   abuf->written = written;
21513   return vpc;
21514 #undef FLD
21515 }
21516
21517 /* mqsubhss: mqsubhss$pack $FRintieven,$FRintjeven,$FRintkeven */
21518
21519 static SEM_PC
21520 SEM_FN_NAME (frvbf,mqsubhss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
21521 {
21522 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
21523   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
21524   int UNUSED written = 0;
21525   IADDR UNUSED pc = abuf->addr;
21526   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
21527
21528 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
21529 frvbf_media_register_not_aligned (current_cpu);
21530 } else {
21531 {
21532   HI tmp_argihi;
21533   HI tmp_argilo;
21534   HI tmp_argjhi;
21535   HI tmp_argjlo;
21536   {
21537     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
21538     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
21539     written |= (1 << 14);
21540     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
21541   }
21542 {
21543   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21544   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21545   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21546   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21547 }
21548 {
21549   DI tmp_tmp;
21550   tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
21551 if (GTDI (tmp_tmp, 32767)) {
21552 {
21553   {
21554     UHI opval = 32767;
21555     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21556     written |= (1 << 15);
21557     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21558   }
21559 frvbf_media_overflow (current_cpu, 8);
21560 }
21561 } else {
21562 if (LTDI (tmp_tmp, -32768)) {
21563 {
21564   {
21565     UHI opval = -32768;
21566     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21567     written |= (1 << 15);
21568     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21569   }
21570 frvbf_media_overflow (current_cpu, 8);
21571 }
21572 } else {
21573   {
21574     UHI opval = tmp_tmp;
21575     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21576     written |= (1 << 15);
21577     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21578   }
21579 }
21580 }
21581 }
21582 {
21583   DI tmp_tmp;
21584   tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
21585 if (GTDI (tmp_tmp, 32767)) {
21586 {
21587   {
21588     UHI opval = 32767;
21589     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21590     written |= (1 << 17);
21591     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21592   }
21593 frvbf_media_overflow (current_cpu, 4);
21594 }
21595 } else {
21596 if (LTDI (tmp_tmp, -32768)) {
21597 {
21598   {
21599     UHI opval = -32768;
21600     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21601     written |= (1 << 17);
21602     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21603   }
21604 frvbf_media_overflow (current_cpu, 4);
21605 }
21606 } else {
21607   {
21608     UHI opval = tmp_tmp;
21609     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21610     written |= (1 << 17);
21611     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21612   }
21613 }
21614 }
21615 }
21616 {
21617   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21618   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21619   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21620   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21621 }
21622 {
21623   DI tmp_tmp;
21624   tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
21625 if (GTDI (tmp_tmp, 32767)) {
21626 {
21627   {
21628     UHI opval = 32767;
21629     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21630     written |= (1 << 16);
21631     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21632   }
21633 frvbf_media_overflow (current_cpu, 2);
21634 }
21635 } else {
21636 if (LTDI (tmp_tmp, -32768)) {
21637 {
21638   {
21639     UHI opval = -32768;
21640     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21641     written |= (1 << 16);
21642     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21643   }
21644 frvbf_media_overflow (current_cpu, 2);
21645 }
21646 } else {
21647   {
21648     UHI opval = tmp_tmp;
21649     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21650     written |= (1 << 16);
21651     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21652   }
21653 }
21654 }
21655 }
21656 {
21657   DI tmp_tmp;
21658   tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
21659 if (GTDI (tmp_tmp, 32767)) {
21660 {
21661   {
21662     UHI opval = 32767;
21663     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21664     written |= (1 << 18);
21665     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21666   }
21667 frvbf_media_overflow (current_cpu, 1);
21668 }
21669 } else {
21670 if (LTDI (tmp_tmp, -32768)) {
21671 {
21672   {
21673     UHI opval = -32768;
21674     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21675     written |= (1 << 18);
21676     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21677   }
21678 frvbf_media_overflow (current_cpu, 1);
21679 }
21680 } else {
21681   {
21682     UHI opval = tmp_tmp;
21683     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21684     written |= (1 << 18);
21685     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21686   }
21687 }
21688 }
21689 }
21690 }
21691 }
21692
21693   abuf->written = written;
21694   return vpc;
21695 #undef FLD
21696 }
21697
21698 /* mqsubhus: mqsubhus$pack $FRintieven,$FRintjeven,$FRintkeven */
21699
21700 static SEM_PC
21701 SEM_FN_NAME (frvbf,mqsubhus) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
21702 {
21703 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
21704   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
21705   int UNUSED written = 0;
21706   IADDR UNUSED pc = abuf->addr;
21707   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
21708
21709 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
21710 frvbf_media_register_not_aligned (current_cpu);
21711 } else {
21712 {
21713   UHI tmp_argihi;
21714   UHI tmp_argilo;
21715   UHI tmp_argjhi;
21716   UHI tmp_argjlo;
21717   {
21718     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
21719     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
21720     written |= (1 << 14);
21721     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
21722   }
21723 {
21724   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21725   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21726   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21727   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21728 }
21729 {
21730   DI tmp_tmp;
21731   tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
21732 if (GTDI (tmp_tmp, 65535)) {
21733 {
21734   {
21735     UHI opval = 65535;
21736     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21737     written |= (1 << 15);
21738     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21739   }
21740 frvbf_media_overflow (current_cpu, 8);
21741 }
21742 } else {
21743 if (LTDI (tmp_tmp, 0)) {
21744 {
21745   {
21746     UHI opval = 0;
21747     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21748     written |= (1 << 15);
21749     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21750   }
21751 frvbf_media_overflow (current_cpu, 8);
21752 }
21753 } else {
21754   {
21755     UHI opval = tmp_tmp;
21756     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21757     written |= (1 << 15);
21758     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21759   }
21760 }
21761 }
21762 }
21763 {
21764   DI tmp_tmp;
21765   tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
21766 if (GTDI (tmp_tmp, 65535)) {
21767 {
21768   {
21769     UHI opval = 65535;
21770     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21771     written |= (1 << 17);
21772     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21773   }
21774 frvbf_media_overflow (current_cpu, 4);
21775 }
21776 } else {
21777 if (LTDI (tmp_tmp, 0)) {
21778 {
21779   {
21780     UHI opval = 0;
21781     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21782     written |= (1 << 17);
21783     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21784   }
21785 frvbf_media_overflow (current_cpu, 4);
21786 }
21787 } else {
21788   {
21789     UHI opval = tmp_tmp;
21790     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21791     written |= (1 << 17);
21792     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21793   }
21794 }
21795 }
21796 }
21797 {
21798   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21799   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21800   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21801   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21802 }
21803 {
21804   DI tmp_tmp;
21805   tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
21806 if (GTDI (tmp_tmp, 65535)) {
21807 {
21808   {
21809     UHI opval = 65535;
21810     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21811     written |= (1 << 16);
21812     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21813   }
21814 frvbf_media_overflow (current_cpu, 2);
21815 }
21816 } else {
21817 if (LTDI (tmp_tmp, 0)) {
21818 {
21819   {
21820     UHI opval = 0;
21821     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21822     written |= (1 << 16);
21823     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21824   }
21825 frvbf_media_overflow (current_cpu, 2);
21826 }
21827 } else {
21828   {
21829     UHI opval = tmp_tmp;
21830     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21831     written |= (1 << 16);
21832     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21833   }
21834 }
21835 }
21836 }
21837 {
21838   DI tmp_tmp;
21839   tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
21840 if (GTDI (tmp_tmp, 65535)) {
21841 {
21842   {
21843     UHI opval = 65535;
21844     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21845     written |= (1 << 18);
21846     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21847   }
21848 frvbf_media_overflow (current_cpu, 1);
21849 }
21850 } else {
21851 if (LTDI (tmp_tmp, 0)) {
21852 {
21853   {
21854     UHI opval = 0;
21855     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21856     written |= (1 << 18);
21857     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21858   }
21859 frvbf_media_overflow (current_cpu, 1);
21860 }
21861 } else {
21862   {
21863     UHI opval = tmp_tmp;
21864     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21865     written |= (1 << 18);
21866     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21867   }
21868 }
21869 }
21870 }
21871 }
21872 }
21873
21874   abuf->written = written;
21875   return vpc;
21876 #undef FLD
21877 }
21878
21879 /* cmqaddhss: cmqaddhss$pack $FRintieven,$FRintjeven,$FRintkeven,$CCi,$cond */
21880
21881 static SEM_PC
21882 SEM_FN_NAME (frvbf,cmqaddhss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
21883 {
21884 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
21885   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
21886   int UNUSED written = 0;
21887   IADDR UNUSED pc = abuf->addr;
21888   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
21889
21890 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
21891 frvbf_media_register_not_aligned (current_cpu);
21892 } else {
21893 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
21894 {
21895   HI tmp_argihi;
21896   HI tmp_argilo;
21897   HI tmp_argjhi;
21898   HI tmp_argjlo;
21899   {
21900     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
21901     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
21902     written |= (1 << 16);
21903     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
21904   }
21905 {
21906   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21907   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21908   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21909   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21910 }
21911 {
21912   DI tmp_tmp;
21913   tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
21914 if (GTDI (tmp_tmp, 32767)) {
21915 {
21916   {
21917     UHI opval = 32767;
21918     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21919     written |= (1 << 17);
21920     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21921   }
21922 frvbf_media_overflow (current_cpu, 8);
21923 }
21924 } else {
21925 if (LTDI (tmp_tmp, -32768)) {
21926 {
21927   {
21928     UHI opval = -32768;
21929     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21930     written |= (1 << 17);
21931     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21932   }
21933 frvbf_media_overflow (current_cpu, 8);
21934 }
21935 } else {
21936   {
21937     UHI opval = tmp_tmp;
21938     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21939     written |= (1 << 17);
21940     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21941   }
21942 }
21943 }
21944 }
21945 {
21946   DI tmp_tmp;
21947   tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
21948 if (GTDI (tmp_tmp, 32767)) {
21949 {
21950   {
21951     UHI opval = 32767;
21952     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21953     written |= (1 << 19);
21954     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21955   }
21956 frvbf_media_overflow (current_cpu, 4);
21957 }
21958 } else {
21959 if (LTDI (tmp_tmp, -32768)) {
21960 {
21961   {
21962     UHI opval = -32768;
21963     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21964     written |= (1 << 19);
21965     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21966   }
21967 frvbf_media_overflow (current_cpu, 4);
21968 }
21969 } else {
21970   {
21971     UHI opval = tmp_tmp;
21972     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21973     written |= (1 << 19);
21974     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21975   }
21976 }
21977 }
21978 }
21979 {
21980   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21981   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21982   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21983   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21984 }
21985 {
21986   DI tmp_tmp;
21987   tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
21988 if (GTDI (tmp_tmp, 32767)) {
21989 {
21990   {
21991     UHI opval = 32767;
21992     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21993     written |= (1 << 18);
21994     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21995   }
21996 frvbf_media_overflow (current_cpu, 2);
21997 }
21998 } else {
21999 if (LTDI (tmp_tmp, -32768)) {
22000 {
22001   {
22002     UHI opval = -32768;
22003     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22004     written |= (1 << 18);
22005     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22006   }
22007 frvbf_media_overflow (current_cpu, 2);
22008 }
22009 } else {
22010   {
22011     UHI opval = tmp_tmp;
22012     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22013     written |= (1 << 18);
22014     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22015   }
22016 }
22017 }
22018 }
22019 {
22020   DI tmp_tmp;
22021   tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
22022 if (GTDI (tmp_tmp, 32767)) {
22023 {
22024   {
22025     UHI opval = 32767;
22026     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22027     written |= (1 << 20);
22028     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22029   }
22030 frvbf_media_overflow (current_cpu, 1);
22031 }
22032 } else {
22033 if (LTDI (tmp_tmp, -32768)) {
22034 {
22035   {
22036     UHI opval = -32768;
22037     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22038     written |= (1 << 20);
22039     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22040   }
22041 frvbf_media_overflow (current_cpu, 1);
22042 }
22043 } else {
22044   {
22045     UHI opval = tmp_tmp;
22046     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22047     written |= (1 << 20);
22048     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22049   }
22050 }
22051 }
22052 }
22053 }
22054 }
22055 }
22056
22057   abuf->written = written;
22058   return vpc;
22059 #undef FLD
22060 }
22061
22062 /* cmqaddhus: cmqaddhus$pack $FRintieven,$FRintjeven,$FRintkeven,$CCi,$cond */
22063
22064 static SEM_PC
22065 SEM_FN_NAME (frvbf,cmqaddhus) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
22066 {
22067 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
22068   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
22069   int UNUSED written = 0;
22070   IADDR UNUSED pc = abuf->addr;
22071   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
22072
22073 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
22074 frvbf_media_register_not_aligned (current_cpu);
22075 } else {
22076 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
22077 {
22078   UHI tmp_argihi;
22079   UHI tmp_argilo;
22080   UHI tmp_argjhi;
22081   UHI tmp_argjlo;
22082   {
22083     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
22084     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
22085     written |= (1 << 16);
22086     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
22087   }
22088 {
22089   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22090   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22091   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22092   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22093 }
22094 {
22095   DI tmp_tmp;
22096   tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
22097 if (GTDI (tmp_tmp, 65535)) {
22098 {
22099   {
22100     UHI opval = 65535;
22101     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22102     written |= (1 << 17);
22103     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22104   }
22105 frvbf_media_overflow (current_cpu, 8);
22106 }
22107 } else {
22108 if (LTDI (tmp_tmp, 0)) {
22109 {
22110   {
22111     UHI opval = 0;
22112     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22113     written |= (1 << 17);
22114     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22115   }
22116 frvbf_media_overflow (current_cpu, 8);
22117 }
22118 } else {
22119   {
22120     UHI opval = tmp_tmp;
22121     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22122     written |= (1 << 17);
22123     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22124   }
22125 }
22126 }
22127 }
22128 {
22129   DI tmp_tmp;
22130   tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
22131 if (GTDI (tmp_tmp, 65535)) {
22132 {
22133   {
22134     UHI opval = 65535;
22135     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22136     written |= (1 << 19);
22137     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22138   }
22139 frvbf_media_overflow (current_cpu, 4);
22140 }
22141 } else {
22142 if (LTDI (tmp_tmp, 0)) {
22143 {
22144   {
22145     UHI opval = 0;
22146     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22147     written |= (1 << 19);
22148     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22149   }
22150 frvbf_media_overflow (current_cpu, 4);
22151 }
22152 } else {
22153   {
22154     UHI opval = tmp_tmp;
22155     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22156     written |= (1 << 19);
22157     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22158   }
22159 }
22160 }
22161 }
22162 {
22163   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22164   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22165   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22166   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22167 }
22168 {
22169   DI tmp_tmp;
22170   tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
22171 if (GTDI (tmp_tmp, 65535)) {
22172 {
22173   {
22174     UHI opval = 65535;
22175     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22176     written |= (1 << 18);
22177     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22178   }
22179 frvbf_media_overflow (current_cpu, 2);
22180 }
22181 } else {
22182 if (LTDI (tmp_tmp, 0)) {
22183 {
22184   {
22185     UHI opval = 0;
22186     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22187     written |= (1 << 18);
22188     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22189   }
22190 frvbf_media_overflow (current_cpu, 2);
22191 }
22192 } else {
22193   {
22194     UHI opval = tmp_tmp;
22195     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22196     written |= (1 << 18);
22197     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22198   }
22199 }
22200 }
22201 }
22202 {
22203   DI tmp_tmp;
22204   tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
22205 if (GTDI (tmp_tmp, 65535)) {
22206 {
22207   {
22208     UHI opval = 65535;
22209     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22210     written |= (1 << 20);
22211     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22212   }
22213 frvbf_media_overflow (current_cpu, 1);
22214 }
22215 } else {
22216 if (LTDI (tmp_tmp, 0)) {
22217 {
22218   {
22219     UHI opval = 0;
22220     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22221     written |= (1 << 20);
22222     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22223   }
22224 frvbf_media_overflow (current_cpu, 1);
22225 }
22226 } else {
22227   {
22228     UHI opval = tmp_tmp;
22229     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22230     written |= (1 << 20);
22231     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22232   }
22233 }
22234 }
22235 }
22236 }
22237 }
22238 }
22239
22240   abuf->written = written;
22241   return vpc;
22242 #undef FLD
22243 }
22244
22245 /* cmqsubhss: cmqsubhss$pack $FRintieven,$FRintjeven,$FRintkeven,$CCi,$cond */
22246
22247 static SEM_PC
22248 SEM_FN_NAME (frvbf,cmqsubhss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
22249 {
22250 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
22251   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
22252   int UNUSED written = 0;
22253   IADDR UNUSED pc = abuf->addr;
22254   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
22255
22256 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
22257 frvbf_media_register_not_aligned (current_cpu);
22258 } else {
22259 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
22260 {
22261   HI tmp_argihi;
22262   HI tmp_argilo;
22263   HI tmp_argjhi;
22264   HI tmp_argjlo;
22265   {
22266     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
22267     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
22268     written |= (1 << 16);
22269     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
22270   }
22271 {
22272   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22273   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22274   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22275   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22276 }
22277 {
22278   DI tmp_tmp;
22279   tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
22280 if (GTDI (tmp_tmp, 32767)) {
22281 {
22282   {
22283     UHI opval = 32767;
22284     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22285     written |= (1 << 17);
22286     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22287   }
22288 frvbf_media_overflow (current_cpu, 8);
22289 }
22290 } else {
22291 if (LTDI (tmp_tmp, -32768)) {
22292 {
22293   {
22294     UHI opval = -32768;
22295     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22296     written |= (1 << 17);
22297     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22298   }
22299 frvbf_media_overflow (current_cpu, 8);
22300 }
22301 } else {
22302   {
22303     UHI opval = tmp_tmp;
22304     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22305     written |= (1 << 17);
22306     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22307   }
22308 }
22309 }
22310 }
22311 {
22312   DI tmp_tmp;
22313   tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
22314 if (GTDI (tmp_tmp, 32767)) {
22315 {
22316   {
22317     UHI opval = 32767;
22318     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22319     written |= (1 << 19);
22320     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22321   }
22322 frvbf_media_overflow (current_cpu, 4);
22323 }
22324 } else {
22325 if (LTDI (tmp_tmp, -32768)) {
22326 {
22327   {
22328     UHI opval = -32768;
22329     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22330     written |= (1 << 19);
22331     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22332   }
22333 frvbf_media_overflow (current_cpu, 4);
22334 }
22335 } else {
22336   {
22337     UHI opval = tmp_tmp;
22338     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22339     written |= (1 << 19);
22340     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22341   }
22342 }
22343 }
22344 }
22345 {
22346   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22347   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22348   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22349   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22350 }
22351 {
22352   DI tmp_tmp;
22353   tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
22354 if (GTDI (tmp_tmp, 32767)) {
22355 {
22356   {
22357     UHI opval = 32767;
22358     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22359     written |= (1 << 18);
22360     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22361   }
22362 frvbf_media_overflow (current_cpu, 2);
22363 }
22364 } else {
22365 if (LTDI (tmp_tmp, -32768)) {
22366 {
22367   {
22368     UHI opval = -32768;
22369     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22370     written |= (1 << 18);
22371     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22372   }
22373 frvbf_media_overflow (current_cpu, 2);
22374 }
22375 } else {
22376   {
22377     UHI opval = tmp_tmp;
22378     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22379     written |= (1 << 18);
22380     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22381   }
22382 }
22383 }
22384 }
22385 {
22386   DI tmp_tmp;
22387   tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
22388 if (GTDI (tmp_tmp, 32767)) {
22389 {
22390   {
22391     UHI opval = 32767;
22392     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22393     written |= (1 << 20);
22394     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22395   }
22396 frvbf_media_overflow (current_cpu, 1);
22397 }
22398 } else {
22399 if (LTDI (tmp_tmp, -32768)) {
22400 {
22401   {
22402     UHI opval = -32768;
22403     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22404     written |= (1 << 20);
22405     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22406   }
22407 frvbf_media_overflow (current_cpu, 1);
22408 }
22409 } else {
22410   {
22411     UHI opval = tmp_tmp;
22412     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22413     written |= (1 << 20);
22414     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22415   }
22416 }
22417 }
22418 }
22419 }
22420 }
22421 }
22422
22423   abuf->written = written;
22424   return vpc;
22425 #undef FLD
22426 }
22427
22428 /* cmqsubhus: cmqsubhus$pack $FRintieven,$FRintjeven,$FRintkeven,$CCi,$cond */
22429
22430 static SEM_PC
22431 SEM_FN_NAME (frvbf,cmqsubhus) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
22432 {
22433 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
22434   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
22435   int UNUSED written = 0;
22436   IADDR UNUSED pc = abuf->addr;
22437   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
22438
22439 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
22440 frvbf_media_register_not_aligned (current_cpu);
22441 } else {
22442 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
22443 {
22444   UHI tmp_argihi;
22445   UHI tmp_argilo;
22446   UHI tmp_argjhi;
22447   UHI tmp_argjlo;
22448   {
22449     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
22450     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
22451     written |= (1 << 16);
22452     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
22453   }
22454 {
22455   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22456   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22457   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22458   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22459 }
22460 {
22461   DI tmp_tmp;
22462   tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
22463 if (GTDI (tmp_tmp, 65535)) {
22464 {
22465   {
22466     UHI opval = 65535;
22467     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22468     written |= (1 << 17);
22469     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22470   }
22471 frvbf_media_overflow (current_cpu, 8);
22472 }
22473 } else {
22474 if (LTDI (tmp_tmp, 0)) {
22475 {
22476   {
22477     UHI opval = 0;
22478     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22479     written |= (1 << 17);
22480     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22481   }
22482 frvbf_media_overflow (current_cpu, 8);
22483 }
22484 } else {
22485   {
22486     UHI opval = tmp_tmp;
22487     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22488     written |= (1 << 17);
22489     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22490   }
22491 }
22492 }
22493 }
22494 {
22495   DI tmp_tmp;
22496   tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
22497 if (GTDI (tmp_tmp, 65535)) {
22498 {
22499   {
22500     UHI opval = 65535;
22501     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22502     written |= (1 << 19);
22503     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22504   }
22505 frvbf_media_overflow (current_cpu, 4);
22506 }
22507 } else {
22508 if (LTDI (tmp_tmp, 0)) {
22509 {
22510   {
22511     UHI opval = 0;
22512     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22513     written |= (1 << 19);
22514     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22515   }
22516 frvbf_media_overflow (current_cpu, 4);
22517 }
22518 } else {
22519   {
22520     UHI opval = tmp_tmp;
22521     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22522     written |= (1 << 19);
22523     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22524   }
22525 }
22526 }
22527 }
22528 {
22529   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22530   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22531   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22532   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22533 }
22534 {
22535   DI tmp_tmp;
22536   tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
22537 if (GTDI (tmp_tmp, 65535)) {
22538 {
22539   {
22540     UHI opval = 65535;
22541     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22542     written |= (1 << 18);
22543     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22544   }
22545 frvbf_media_overflow (current_cpu, 2);
22546 }
22547 } else {
22548 if (LTDI (tmp_tmp, 0)) {
22549 {
22550   {
22551     UHI opval = 0;
22552     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22553     written |= (1 << 18);
22554     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22555   }
22556 frvbf_media_overflow (current_cpu, 2);
22557 }
22558 } else {
22559   {
22560     UHI opval = tmp_tmp;
22561     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22562     written |= (1 << 18);
22563     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22564   }
22565 }
22566 }
22567 }
22568 {
22569   DI tmp_tmp;
22570   tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
22571 if (GTDI (tmp_tmp, 65535)) {
22572 {
22573   {
22574     UHI opval = 65535;
22575     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22576     written |= (1 << 20);
22577     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22578   }
22579 frvbf_media_overflow (current_cpu, 1);
22580 }
22581 } else {
22582 if (LTDI (tmp_tmp, 0)) {
22583 {
22584   {
22585     UHI opval = 0;
22586     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22587     written |= (1 << 20);
22588     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22589   }
22590 frvbf_media_overflow (current_cpu, 1);
22591 }
22592 } else {
22593   {
22594     UHI opval = tmp_tmp;
22595     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22596     written |= (1 << 20);
22597     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22598   }
22599 }
22600 }
22601 }
22602 }
22603 }
22604 }
22605
22606   abuf->written = written;
22607   return vpc;
22608 #undef FLD
22609 }
22610
22611 /* maddaccs: maddaccs$pack $ACC40Si,$ACC40Sk */
22612
22613 static SEM_PC
22614 SEM_FN_NAME (frvbf,maddaccs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
22615 {
22616 #define FLD(f) abuf->fields.sfmt_mdasaccs.f
22617   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
22618   int UNUSED written = 0;
22619   IADDR UNUSED pc = abuf->addr;
22620   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
22621
22622 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Si))) {
22623 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
22624 if (ANDSI (FLD (f_ACC40Si), SUBSI (2, 1))) {
22625 frvbf_media_acc_not_aligned (current_cpu);
22626 } else {
22627 {
22628   DI tmp_tmp;
22629   tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_ACC40S (((FLD (f_ACC40Si)) + (1))));
22630 if (GTDI (tmp_tmp, 549755813887)) {
22631 {
22632   {
22633     DI opval = 549755813887;
22634     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
22635     written |= (1 << 4);
22636     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22637   }
22638 frvbf_media_overflow (current_cpu, 8);
22639 }
22640 } else {
22641 if (LTDI (tmp_tmp, INVDI (549755813887))) {
22642 {
22643   {
22644     DI opval = INVDI (549755813887);
22645     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
22646     written |= (1 << 4);
22647     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22648   }
22649 frvbf_media_overflow (current_cpu, 8);
22650 }
22651 } else {
22652   {
22653     DI opval = tmp_tmp;
22654     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
22655     written |= (1 << 4);
22656     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22657   }
22658 }
22659 }
22660 }
22661 }
22662 }
22663 }
22664
22665   abuf->written = written;
22666   return vpc;
22667 #undef FLD
22668 }
22669
22670 /* msubaccs: msubaccs$pack $ACC40Si,$ACC40Sk */
22671
22672 static SEM_PC
22673 SEM_FN_NAME (frvbf,msubaccs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
22674 {
22675 #define FLD(f) abuf->fields.sfmt_mdasaccs.f
22676   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
22677   int UNUSED written = 0;
22678   IADDR UNUSED pc = abuf->addr;
22679   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
22680
22681 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Si))) {
22682 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
22683 if (ANDSI (FLD (f_ACC40Si), SUBSI (2, 1))) {
22684 frvbf_media_acc_not_aligned (current_cpu);
22685 } else {
22686 {
22687   DI tmp_tmp;
22688   tmp_tmp = SUBDI (GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_ACC40S (((FLD (f_ACC40Si)) + (1))));
22689 if (GTDI (tmp_tmp, 549755813887)) {
22690 {
22691   {
22692     DI opval = 549755813887;
22693     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
22694     written |= (1 << 4);
22695     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22696   }
22697 frvbf_media_overflow (current_cpu, 8);
22698 }
22699 } else {
22700 if (LTDI (tmp_tmp, INVDI (549755813887))) {
22701 {
22702   {
22703     DI opval = INVDI (549755813887);
22704     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
22705     written |= (1 << 4);
22706     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22707   }
22708 frvbf_media_overflow (current_cpu, 8);
22709 }
22710 } else {
22711   {
22712     DI opval = tmp_tmp;
22713     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
22714     written |= (1 << 4);
22715     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22716   }
22717 }
22718 }
22719 }
22720 }
22721 }
22722 }
22723
22724   abuf->written = written;
22725   return vpc;
22726 #undef FLD
22727 }
22728
22729 /* mdaddaccs: mdaddaccs$pack $ACC40Si,$ACC40Sk */
22730
22731 static SEM_PC
22732 SEM_FN_NAME (frvbf,mdaddaccs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
22733 {
22734 #define FLD(f) abuf->fields.sfmt_mdasaccs.f
22735   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
22736   int UNUSED written = 0;
22737   IADDR UNUSED pc = abuf->addr;
22738   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
22739
22740 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Si))) {
22741 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
22742 if (ANDSI (FLD (f_ACC40Si), SUBSI (4, 1))) {
22743 frvbf_media_acc_not_aligned (current_cpu);
22744 } else {
22745 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
22746 frvbf_media_acc_not_aligned (current_cpu);
22747 } else {
22748 {
22749 {
22750   DI tmp_tmp;
22751   tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_ACC40S (((FLD (f_ACC40Si)) + (1))));
22752 if (GTDI (tmp_tmp, 549755813887)) {
22753 {
22754   {
22755     DI opval = 549755813887;
22756     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
22757     written |= (1 << 6);
22758     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22759   }
22760 frvbf_media_overflow (current_cpu, 8);
22761 }
22762 } else {
22763 if (LTDI (tmp_tmp, INVDI (549755813887))) {
22764 {
22765   {
22766     DI opval = INVDI (549755813887);
22767     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
22768     written |= (1 << 6);
22769     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22770   }
22771 frvbf_media_overflow (current_cpu, 8);
22772 }
22773 } else {
22774   {
22775     DI opval = tmp_tmp;
22776     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
22777     written |= (1 << 6);
22778     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22779   }
22780 }
22781 }
22782 }
22783 {
22784   DI tmp_tmp;
22785   tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Si)) + (2))), GET_H_ACC40S (((FLD (f_ACC40Si)) + (3))));
22786 if (GTDI (tmp_tmp, 549755813887)) {
22787 {
22788   {
22789     DI opval = 549755813887;
22790     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
22791     written |= (1 << 7);
22792     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22793   }
22794 frvbf_media_overflow (current_cpu, 4);
22795 }
22796 } else {
22797 if (LTDI (tmp_tmp, INVDI (549755813887))) {
22798 {
22799   {
22800     DI opval = INVDI (549755813887);
22801     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
22802     written |= (1 << 7);
22803     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22804   }
22805 frvbf_media_overflow (current_cpu, 4);
22806 }
22807 } else {
22808   {
22809     DI opval = tmp_tmp;
22810     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
22811     written |= (1 << 7);
22812     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22813   }
22814 }
22815 }
22816 }
22817 }
22818 }
22819 }
22820 }
22821 }
22822
22823   abuf->written = written;
22824   return vpc;
22825 #undef FLD
22826 }
22827
22828 /* mdsubaccs: mdsubaccs$pack $ACC40Si,$ACC40Sk */
22829
22830 static SEM_PC
22831 SEM_FN_NAME (frvbf,mdsubaccs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
22832 {
22833 #define FLD(f) abuf->fields.sfmt_mdasaccs.f
22834   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
22835   int UNUSED written = 0;
22836   IADDR UNUSED pc = abuf->addr;
22837   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
22838
22839 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Si))) {
22840 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
22841 if (ANDSI (FLD (f_ACC40Si), SUBSI (4, 1))) {
22842 frvbf_media_acc_not_aligned (current_cpu);
22843 } else {
22844 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
22845 frvbf_media_acc_not_aligned (current_cpu);
22846 } else {
22847 {
22848 {
22849   DI tmp_tmp;
22850   tmp_tmp = SUBDI (GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_ACC40S (((FLD (f_ACC40Si)) + (1))));
22851 if (GTDI (tmp_tmp, 549755813887)) {
22852 {
22853   {
22854     DI opval = 549755813887;
22855     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
22856     written |= (1 << 6);
22857     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22858   }
22859 frvbf_media_overflow (current_cpu, 8);
22860 }
22861 } else {
22862 if (LTDI (tmp_tmp, INVDI (549755813887))) {
22863 {
22864   {
22865     DI opval = INVDI (549755813887);
22866     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
22867     written |= (1 << 6);
22868     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22869   }
22870 frvbf_media_overflow (current_cpu, 8);
22871 }
22872 } else {
22873   {
22874     DI opval = tmp_tmp;
22875     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
22876     written |= (1 << 6);
22877     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22878   }
22879 }
22880 }
22881 }
22882 {
22883   DI tmp_tmp;
22884   tmp_tmp = SUBDI (GET_H_ACC40S (((FLD (f_ACC40Si)) + (2))), GET_H_ACC40S (((FLD (f_ACC40Si)) + (3))));
22885 if (GTDI (tmp_tmp, 549755813887)) {
22886 {
22887   {
22888     DI opval = 549755813887;
22889     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
22890     written |= (1 << 7);
22891     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22892   }
22893 frvbf_media_overflow (current_cpu, 4);
22894 }
22895 } else {
22896 if (LTDI (tmp_tmp, INVDI (549755813887))) {
22897 {
22898   {
22899     DI opval = INVDI (549755813887);
22900     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
22901     written |= (1 << 7);
22902     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22903   }
22904 frvbf_media_overflow (current_cpu, 4);
22905 }
22906 } else {
22907   {
22908     DI opval = tmp_tmp;
22909     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
22910     written |= (1 << 7);
22911     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22912   }
22913 }
22914 }
22915 }
22916 }
22917 }
22918 }
22919 }
22920 }
22921
22922   abuf->written = written;
22923   return vpc;
22924 #undef FLD
22925 }
22926
22927 /* masaccs: masaccs$pack $ACC40Si,$ACC40Sk */
22928
22929 static SEM_PC
22930 SEM_FN_NAME (frvbf,masaccs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
22931 {
22932 #define FLD(f) abuf->fields.sfmt_mdasaccs.f
22933   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
22934   int UNUSED written = 0;
22935   IADDR UNUSED pc = abuf->addr;
22936   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
22937
22938 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Si))) {
22939 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
22940 if (ANDSI (FLD (f_ACC40Si), SUBSI (2, 1))) {
22941 frvbf_media_acc_not_aligned (current_cpu);
22942 } else {
22943 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
22944 frvbf_media_acc_not_aligned (current_cpu);
22945 } else {
22946 {
22947 {
22948   DI tmp_tmp;
22949   tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_ACC40S (((FLD (f_ACC40Si)) + (1))));
22950 if (GTDI (tmp_tmp, 549755813887)) {
22951 {
22952   {
22953     DI opval = 549755813887;
22954     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
22955     written |= (1 << 4);
22956     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22957   }
22958 frvbf_media_overflow (current_cpu, 8);
22959 }
22960 } else {
22961 if (LTDI (tmp_tmp, INVDI (549755813887))) {
22962 {
22963   {
22964     DI opval = INVDI (549755813887);
22965     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
22966     written |= (1 << 4);
22967     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22968   }
22969 frvbf_media_overflow (current_cpu, 8);
22970 }
22971 } else {
22972   {
22973     DI opval = tmp_tmp;
22974     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
22975     written |= (1 << 4);
22976     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22977   }
22978 }
22979 }
22980 }
22981 {
22982   DI tmp_tmp;
22983   tmp_tmp = SUBDI (GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_ACC40S (((FLD (f_ACC40Si)) + (1))));
22984 if (GTDI (tmp_tmp, 549755813887)) {
22985 {
22986   {
22987     DI opval = 549755813887;
22988     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
22989     written |= (1 << 5);
22990     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22991   }
22992 frvbf_media_overflow (current_cpu, 4);
22993 }
22994 } else {
22995 if (LTDI (tmp_tmp, INVDI (549755813887))) {
22996 {
22997   {
22998     DI opval = INVDI (549755813887);
22999     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23000     written |= (1 << 5);
23001     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23002   }
23003 frvbf_media_overflow (current_cpu, 4);
23004 }
23005 } else {
23006   {
23007     DI opval = tmp_tmp;
23008     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23009     written |= (1 << 5);
23010     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23011   }
23012 }
23013 }
23014 }
23015 }
23016 }
23017 }
23018 }
23019 }
23020
23021   abuf->written = written;
23022   return vpc;
23023 #undef FLD
23024 }
23025
23026 /* mdasaccs: mdasaccs$pack $ACC40Si,$ACC40Sk */
23027
23028 static SEM_PC
23029 SEM_FN_NAME (frvbf,mdasaccs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23030 {
23031 #define FLD(f) abuf->fields.sfmt_mdasaccs.f
23032   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23033   int UNUSED written = 0;
23034   IADDR UNUSED pc = abuf->addr;
23035   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23036
23037 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Si))) {
23038 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
23039 if (ANDSI (FLD (f_ACC40Si), SUBSI (4, 1))) {
23040 frvbf_media_acc_not_aligned (current_cpu);
23041 } else {
23042 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
23043 frvbf_media_acc_not_aligned (current_cpu);
23044 } else {
23045 {
23046 {
23047   DI tmp_tmp;
23048   tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_ACC40S (((FLD (f_ACC40Si)) + (1))));
23049 if (GTDI (tmp_tmp, 549755813887)) {
23050 {
23051   {
23052     DI opval = 549755813887;
23053     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23054     written |= (1 << 6);
23055     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23056   }
23057 frvbf_media_overflow (current_cpu, 8);
23058 }
23059 } else {
23060 if (LTDI (tmp_tmp, INVDI (549755813887))) {
23061 {
23062   {
23063     DI opval = INVDI (549755813887);
23064     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23065     written |= (1 << 6);
23066     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23067   }
23068 frvbf_media_overflow (current_cpu, 8);
23069 }
23070 } else {
23071   {
23072     DI opval = tmp_tmp;
23073     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23074     written |= (1 << 6);
23075     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23076   }
23077 }
23078 }
23079 }
23080 {
23081   DI tmp_tmp;
23082   tmp_tmp = SUBDI (GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_ACC40S (((FLD (f_ACC40Si)) + (1))));
23083 if (GTDI (tmp_tmp, 549755813887)) {
23084 {
23085   {
23086     DI opval = 549755813887;
23087     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23088     written |= (1 << 7);
23089     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23090   }
23091 frvbf_media_overflow (current_cpu, 4);
23092 }
23093 } else {
23094 if (LTDI (tmp_tmp, INVDI (549755813887))) {
23095 {
23096   {
23097     DI opval = INVDI (549755813887);
23098     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23099     written |= (1 << 7);
23100     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23101   }
23102 frvbf_media_overflow (current_cpu, 4);
23103 }
23104 } else {
23105   {
23106     DI opval = tmp_tmp;
23107     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23108     written |= (1 << 7);
23109     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23110   }
23111 }
23112 }
23113 }
23114 {
23115   DI tmp_tmp;
23116   tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Si)) + (2))), GET_H_ACC40S (((FLD (f_ACC40Si)) + (3))));
23117 if (GTDI (tmp_tmp, 549755813887)) {
23118 {
23119   {
23120     DI opval = 549755813887;
23121     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
23122     written |= (1 << 8);
23123     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23124   }
23125 frvbf_media_overflow (current_cpu, 2);
23126 }
23127 } else {
23128 if (LTDI (tmp_tmp, INVDI (549755813887))) {
23129 {
23130   {
23131     DI opval = INVDI (549755813887);
23132     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
23133     written |= (1 << 8);
23134     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23135   }
23136 frvbf_media_overflow (current_cpu, 2);
23137 }
23138 } else {
23139   {
23140     DI opval = tmp_tmp;
23141     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
23142     written |= (1 << 8);
23143     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23144   }
23145 }
23146 }
23147 }
23148 {
23149   DI tmp_tmp;
23150   tmp_tmp = SUBDI (GET_H_ACC40S (((FLD (f_ACC40Si)) + (2))), GET_H_ACC40S (((FLD (f_ACC40Si)) + (3))));
23151 if (GTDI (tmp_tmp, 549755813887)) {
23152 {
23153   {
23154     DI opval = 549755813887;
23155     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
23156     written |= (1 << 9);
23157     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23158   }
23159 frvbf_media_overflow (current_cpu, 1);
23160 }
23161 } else {
23162 if (LTDI (tmp_tmp, INVDI (549755813887))) {
23163 {
23164   {
23165     DI opval = INVDI (549755813887);
23166     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
23167     written |= (1 << 9);
23168     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23169   }
23170 frvbf_media_overflow (current_cpu, 1);
23171 }
23172 } else {
23173   {
23174     DI opval = tmp_tmp;
23175     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
23176     written |= (1 << 9);
23177     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23178   }
23179 }
23180 }
23181 }
23182 }
23183 }
23184 }
23185 }
23186 }
23187
23188   abuf->written = written;
23189   return vpc;
23190 #undef FLD
23191 }
23192
23193 /* mmulhs: mmulhs$pack $FRinti,$FRintj,$ACC40Sk */
23194
23195 static SEM_PC
23196 SEM_FN_NAME (frvbf,mmulhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23197 {
23198 #define FLD(f) abuf->fields.sfmt_cmmachs.f
23199   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23200   int UNUSED written = 0;
23201   IADDR UNUSED pc = abuf->addr;
23202   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23203
23204 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
23205 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
23206 frvbf_media_acc_not_aligned (current_cpu);
23207 } else {
23208 {
23209   HI tmp_argihi;
23210   HI tmp_argilo;
23211   HI tmp_argjhi;
23212   HI tmp_argjlo;
23213 {
23214   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23215   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23216   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23217   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23218 }
23219   {
23220     DI opval = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
23221     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23222     written |= (1 << 9);
23223     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23224   }
23225   {
23226     DI opval = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
23227     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23228     written |= (1 << 10);
23229     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23230   }
23231 }
23232 }
23233 }
23234
23235   abuf->written = written;
23236   return vpc;
23237 #undef FLD
23238 }
23239
23240 /* mmulhu: mmulhu$pack $FRinti,$FRintj,$ACC40Sk */
23241
23242 static SEM_PC
23243 SEM_FN_NAME (frvbf,mmulhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23244 {
23245 #define FLD(f) abuf->fields.sfmt_cmmachs.f
23246   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23247   int UNUSED written = 0;
23248   IADDR UNUSED pc = abuf->addr;
23249   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23250
23251 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
23252 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
23253 frvbf_media_acc_not_aligned (current_cpu);
23254 } else {
23255 {
23256   UHI tmp_argihi;
23257   UHI tmp_argilo;
23258   UHI tmp_argjhi;
23259   UHI tmp_argjlo;
23260 {
23261   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23262   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23263   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23264   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23265 }
23266   {
23267     DI opval = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
23268     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23269     written |= (1 << 9);
23270     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23271   }
23272   {
23273     DI opval = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
23274     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23275     written |= (1 << 10);
23276     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23277   }
23278 }
23279 }
23280 }
23281
23282   abuf->written = written;
23283   return vpc;
23284 #undef FLD
23285 }
23286
23287 /* mmulxhs: mmulxhs$pack $FRinti,$FRintj,$ACC40Sk */
23288
23289 static SEM_PC
23290 SEM_FN_NAME (frvbf,mmulxhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23291 {
23292 #define FLD(f) abuf->fields.sfmt_cmmachs.f
23293   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23294   int UNUSED written = 0;
23295   IADDR UNUSED pc = abuf->addr;
23296   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23297
23298 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
23299 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
23300 frvbf_media_acc_not_aligned (current_cpu);
23301 } else {
23302 {
23303   HI tmp_argihi;
23304   HI tmp_argilo;
23305   HI tmp_argjhi;
23306   HI tmp_argjlo;
23307 {
23308   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23309   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23310   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23311   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23312 }
23313   {
23314     DI opval = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo));
23315     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23316     written |= (1 << 9);
23317     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23318   }
23319   {
23320     DI opval = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi));
23321     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23322     written |= (1 << 10);
23323     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23324   }
23325 }
23326 }
23327 }
23328
23329   abuf->written = written;
23330   return vpc;
23331 #undef FLD
23332 }
23333
23334 /* mmulxhu: mmulxhu$pack $FRinti,$FRintj,$ACC40Sk */
23335
23336 static SEM_PC
23337 SEM_FN_NAME (frvbf,mmulxhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23338 {
23339 #define FLD(f) abuf->fields.sfmt_cmmachs.f
23340   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23341   int UNUSED written = 0;
23342   IADDR UNUSED pc = abuf->addr;
23343   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23344
23345 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
23346 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
23347 frvbf_media_acc_not_aligned (current_cpu);
23348 } else {
23349 {
23350   UHI tmp_argihi;
23351   UHI tmp_argilo;
23352   UHI tmp_argjhi;
23353   UHI tmp_argjlo;
23354 {
23355   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23356   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23357   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23358   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23359 }
23360   {
23361     DI opval = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjlo));
23362     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23363     written |= (1 << 9);
23364     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23365   }
23366   {
23367     DI opval = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjhi));
23368     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23369     written |= (1 << 10);
23370     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23371   }
23372 }
23373 }
23374 }
23375
23376   abuf->written = written;
23377   return vpc;
23378 #undef FLD
23379 }
23380
23381 /* cmmulhs: cmmulhs$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
23382
23383 static SEM_PC
23384 SEM_FN_NAME (frvbf,cmmulhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23385 {
23386 #define FLD(f) abuf->fields.sfmt_cmmachs.f
23387   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23388   int UNUSED written = 0;
23389   IADDR UNUSED pc = abuf->addr;
23390   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23391
23392 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
23393 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
23394 frvbf_media_acc_not_aligned (current_cpu);
23395 } else {
23396 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
23397 {
23398   HI tmp_argihi;
23399   HI tmp_argilo;
23400   HI tmp_argjhi;
23401   HI tmp_argjlo;
23402 {
23403   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23404   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23405   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23406   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23407 }
23408   {
23409     DI opval = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
23410     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23411     written |= (1 << 11);
23412     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23413   }
23414   {
23415     DI opval = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
23416     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23417     written |= (1 << 12);
23418     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23419   }
23420 }
23421 }
23422 }
23423 }
23424
23425   abuf->written = written;
23426   return vpc;
23427 #undef FLD
23428 }
23429
23430 /* cmmulhu: cmmulhu$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
23431
23432 static SEM_PC
23433 SEM_FN_NAME (frvbf,cmmulhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23434 {
23435 #define FLD(f) abuf->fields.sfmt_cmmachs.f
23436   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23437   int UNUSED written = 0;
23438   IADDR UNUSED pc = abuf->addr;
23439   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23440
23441 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
23442 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
23443 frvbf_media_acc_not_aligned (current_cpu);
23444 } else {
23445 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
23446 {
23447   UHI tmp_argihi;
23448   UHI tmp_argilo;
23449   UHI tmp_argjhi;
23450   UHI tmp_argjlo;
23451 {
23452   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23453   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23454   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23455   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23456 }
23457   {
23458     DI opval = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
23459     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23460     written |= (1 << 11);
23461     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23462   }
23463   {
23464     DI opval = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
23465     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23466     written |= (1 << 12);
23467     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23468   }
23469 }
23470 }
23471 }
23472 }
23473
23474   abuf->written = written;
23475   return vpc;
23476 #undef FLD
23477 }
23478
23479 /* mqmulhs: mqmulhs$pack $FRintieven,$FRintjeven,$ACC40Sk */
23480
23481 static SEM_PC
23482 SEM_FN_NAME (frvbf,mqmulhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23483 {
23484 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
23485   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23486   int UNUSED written = 0;
23487   IADDR UNUSED pc = abuf->addr;
23488   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23489
23490 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
23491 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
23492 frvbf_media_acc_not_aligned (current_cpu);
23493 } else {
23494 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
23495 frvbf_media_register_not_aligned (current_cpu);
23496 } else {
23497 {
23498   HI tmp_argihi;
23499   HI tmp_argilo;
23500   HI tmp_argjhi;
23501   HI tmp_argjlo;
23502 {
23503   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23504   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23505   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23506   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23507 }
23508   {
23509     DI opval = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
23510     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23511     written |= (1 << 13);
23512     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23513   }
23514   {
23515     DI opval = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
23516     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23517     written |= (1 << 14);
23518     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23519   }
23520 {
23521   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23522   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23523   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23524   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23525 }
23526   {
23527     DI opval = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
23528     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
23529     written |= (1 << 15);
23530     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23531   }
23532   {
23533     DI opval = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
23534     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
23535     written |= (1 << 16);
23536     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23537   }
23538 }
23539 }
23540 }
23541 }
23542
23543   abuf->written = written;
23544   return vpc;
23545 #undef FLD
23546 }
23547
23548 /* mqmulhu: mqmulhu$pack $FRintieven,$FRintjeven,$ACC40Sk */
23549
23550 static SEM_PC
23551 SEM_FN_NAME (frvbf,mqmulhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23552 {
23553 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
23554   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23555   int UNUSED written = 0;
23556   IADDR UNUSED pc = abuf->addr;
23557   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23558
23559 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
23560 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
23561 frvbf_media_acc_not_aligned (current_cpu);
23562 } else {
23563 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
23564 frvbf_media_register_not_aligned (current_cpu);
23565 } else {
23566 {
23567   UHI tmp_argihi;
23568   UHI tmp_argilo;
23569   UHI tmp_argjhi;
23570   UHI tmp_argjlo;
23571 {
23572   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23573   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23574   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23575   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23576 }
23577   {
23578     DI opval = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
23579     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23580     written |= (1 << 13);
23581     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23582   }
23583   {
23584     DI opval = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
23585     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23586     written |= (1 << 14);
23587     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23588   }
23589 {
23590   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23591   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23592   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23593   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23594 }
23595   {
23596     DI opval = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
23597     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
23598     written |= (1 << 15);
23599     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23600   }
23601   {
23602     DI opval = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
23603     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
23604     written |= (1 << 16);
23605     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23606   }
23607 }
23608 }
23609 }
23610 }
23611
23612   abuf->written = written;
23613   return vpc;
23614 #undef FLD
23615 }
23616
23617 /* mqmulxhs: mqmulxhs$pack $FRintieven,$FRintjeven,$ACC40Sk */
23618
23619 static SEM_PC
23620 SEM_FN_NAME (frvbf,mqmulxhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23621 {
23622 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
23623   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23624   int UNUSED written = 0;
23625   IADDR UNUSED pc = abuf->addr;
23626   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23627
23628 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
23629 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
23630 frvbf_media_acc_not_aligned (current_cpu);
23631 } else {
23632 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
23633 frvbf_media_register_not_aligned (current_cpu);
23634 } else {
23635 {
23636   HI tmp_argihi;
23637   HI tmp_argilo;
23638   HI tmp_argjhi;
23639   HI tmp_argjlo;
23640 {
23641   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23642   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23643   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23644   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23645 }
23646   {
23647     DI opval = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo));
23648     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23649     written |= (1 << 13);
23650     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23651   }
23652   {
23653     DI opval = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi));
23654     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23655     written |= (1 << 14);
23656     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23657   }
23658 {
23659   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23660   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23661   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23662   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23663 }
23664   {
23665     DI opval = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo));
23666     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
23667     written |= (1 << 15);
23668     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23669   }
23670   {
23671     DI opval = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi));
23672     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
23673     written |= (1 << 16);
23674     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23675   }
23676 }
23677 }
23678 }
23679 }
23680
23681   abuf->written = written;
23682   return vpc;
23683 #undef FLD
23684 }
23685
23686 /* mqmulxhu: mqmulxhu$pack $FRintieven,$FRintjeven,$ACC40Sk */
23687
23688 static SEM_PC
23689 SEM_FN_NAME (frvbf,mqmulxhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23690 {
23691 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
23692   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23693   int UNUSED written = 0;
23694   IADDR UNUSED pc = abuf->addr;
23695   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23696
23697 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
23698 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
23699 frvbf_media_acc_not_aligned (current_cpu);
23700 } else {
23701 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
23702 frvbf_media_register_not_aligned (current_cpu);
23703 } else {
23704 {
23705   UHI tmp_argihi;
23706   UHI tmp_argilo;
23707   UHI tmp_argjhi;
23708   UHI tmp_argjlo;
23709 {
23710   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23711   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23712   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23713   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23714 }
23715   {
23716     DI opval = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjlo));
23717     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23718     written |= (1 << 13);
23719     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23720   }
23721   {
23722     DI opval = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjhi));
23723     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23724     written |= (1 << 14);
23725     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23726   }
23727 {
23728   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23729   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23730   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23731   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23732 }
23733   {
23734     DI opval = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjlo));
23735     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
23736     written |= (1 << 15);
23737     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23738   }
23739   {
23740     DI opval = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjhi));
23741     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
23742     written |= (1 << 16);
23743     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23744   }
23745 }
23746 }
23747 }
23748 }
23749
23750   abuf->written = written;
23751   return vpc;
23752 #undef FLD
23753 }
23754
23755 /* cmqmulhs: cmqmulhs$pack $FRintieven,$FRintjeven,$ACC40Sk,$CCi,$cond */
23756
23757 static SEM_PC
23758 SEM_FN_NAME (frvbf,cmqmulhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23759 {
23760 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
23761   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23762   int UNUSED written = 0;
23763   IADDR UNUSED pc = abuf->addr;
23764   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23765
23766 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
23767 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
23768 frvbf_media_acc_not_aligned (current_cpu);
23769 } else {
23770 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
23771 frvbf_media_register_not_aligned (current_cpu);
23772 } else {
23773 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
23774 {
23775   HI tmp_argihi;
23776   HI tmp_argilo;
23777   HI tmp_argjhi;
23778   HI tmp_argjlo;
23779 {
23780   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23781   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23782   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23783   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23784 }
23785   {
23786     DI opval = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
23787     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23788     written |= (1 << 15);
23789     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23790   }
23791   {
23792     DI opval = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
23793     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23794     written |= (1 << 16);
23795     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23796   }
23797 {
23798   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23799   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23800   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23801   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23802 }
23803   {
23804     DI opval = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
23805     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
23806     written |= (1 << 17);
23807     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23808   }
23809   {
23810     DI opval = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
23811     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
23812     written |= (1 << 18);
23813     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23814   }
23815 }
23816 }
23817 }
23818 }
23819 }
23820
23821   abuf->written = written;
23822   return vpc;
23823 #undef FLD
23824 }
23825
23826 /* cmqmulhu: cmqmulhu$pack $FRintieven,$FRintjeven,$ACC40Sk,$CCi,$cond */
23827
23828 static SEM_PC
23829 SEM_FN_NAME (frvbf,cmqmulhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23830 {
23831 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
23832   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23833   int UNUSED written = 0;
23834   IADDR UNUSED pc = abuf->addr;
23835   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23836
23837 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
23838 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
23839 frvbf_media_acc_not_aligned (current_cpu);
23840 } else {
23841 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
23842 frvbf_media_register_not_aligned (current_cpu);
23843 } else {
23844 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
23845 {
23846   UHI tmp_argihi;
23847   UHI tmp_argilo;
23848   UHI tmp_argjhi;
23849   UHI tmp_argjlo;
23850 {
23851   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23852   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23853   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23854   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23855 }
23856   {
23857     DI opval = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
23858     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23859     written |= (1 << 15);
23860     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23861   }
23862   {
23863     DI opval = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
23864     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23865     written |= (1 << 16);
23866     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23867   }
23868 {
23869   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23870   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23871   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23872   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23873 }
23874   {
23875     DI opval = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
23876     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
23877     written |= (1 << 17);
23878     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23879   }
23880   {
23881     DI opval = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
23882     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
23883     written |= (1 << 18);
23884     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23885   }
23886 }
23887 }
23888 }
23889 }
23890 }
23891
23892   abuf->written = written;
23893   return vpc;
23894 #undef FLD
23895 }
23896
23897 /* mmachs: mmachs$pack $FRinti,$FRintj,$ACC40Sk */
23898
23899 static SEM_PC
23900 SEM_FN_NAME (frvbf,mmachs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23901 {
23902 #define FLD(f) abuf->fields.sfmt_cmmachs.f
23903   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23904   int UNUSED written = 0;
23905   IADDR UNUSED pc = abuf->addr;
23906   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23907
23908 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
23909 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
23910 frvbf_media_acc_not_aligned (current_cpu);
23911 } else {
23912 {
23913   HI tmp_argihi;
23914   HI tmp_argilo;
23915   HI tmp_argjhi;
23916   HI tmp_argjlo;
23917 {
23918   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23919   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23920   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23921   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23922 }
23923 {
23924   DI tmp_tmp;
23925   tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Sk)), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi)));
23926 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
23927 {
23928   {
23929     DI opval = MAKEDI (127, 0xffffffff);
23930     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23931     written |= (1 << 11);
23932     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23933   }
23934 frvbf_media_overflow (current_cpu, 8);
23935 }
23936 } else {
23937 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
23938 {
23939   {
23940     DI opval = MAKEDI (0xffffff80, 0);
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   {
23949     DI opval = tmp_tmp;
23950     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23951     written |= (1 << 11);
23952     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23953   }
23954 }
23955 }
23956 }
23957 {
23958   DI tmp_tmp;
23959   tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (1))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo)));
23960 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
23961 {
23962   {
23963     DI opval = MAKEDI (127, 0xffffffff);
23964     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23965     written |= (1 << 12);
23966     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23967   }
23968 frvbf_media_overflow (current_cpu, 4);
23969 }
23970 } else {
23971 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
23972 {
23973   {
23974     DI opval = MAKEDI (0xffffff80, 0);
23975     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (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   {
23983     DI opval = tmp_tmp;
23984     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23985     written |= (1 << 12);
23986     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23987   }
23988 }
23989 }
23990 }
23991 }
23992 }
23993 }
23994
23995   abuf->written = written;
23996   return vpc;
23997 #undef FLD
23998 }
23999
24000 /* mmachu: mmachu$pack $FRinti,$FRintj,$ACC40Uk */
24001
24002 static SEM_PC
24003 SEM_FN_NAME (frvbf,mmachu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
24004 {
24005 #define FLD(f) abuf->fields.sfmt_cmmachu.f
24006   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
24007   int UNUSED written = 0;
24008   IADDR UNUSED pc = abuf->addr;
24009   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
24010
24011 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Uk))) {
24012 if (ANDSI (FLD (f_ACC40Uk), SUBSI (2, 1))) {
24013 frvbf_media_acc_not_aligned (current_cpu);
24014 } else {
24015 {
24016   UHI tmp_argihi;
24017   UHI tmp_argilo;
24018   UHI tmp_argjhi;
24019   UHI tmp_argjlo;
24020 {
24021   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24022   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24023   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24024   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24025 }
24026 {
24027   DI tmp_tmp;
24028   tmp_tmp = ADDDI (GET_H_ACC40U (FLD (f_ACC40Uk)), MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi)));
24029 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
24030 {
24031   {
24032     UDI opval = MAKEDI (255, 0xffffffff);
24033     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24034     written |= (1 << 11);
24035     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24036   }
24037 frvbf_media_overflow (current_cpu, 8);
24038 }
24039 } else {
24040 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
24041 {
24042   {
24043     UDI opval = MAKEDI (0, 0);
24044     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24045     written |= (1 << 11);
24046     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24047   }
24048 frvbf_media_overflow (current_cpu, 8);
24049 }
24050 } else {
24051   {
24052     UDI opval = tmp_tmp;
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 }
24058 }
24059 }
24060 {
24061   DI tmp_tmp;
24062   tmp_tmp = ADDDI (GET_H_ACC40U (((FLD (f_ACC40Uk)) + (1))), MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo)));
24063 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
24064 {
24065   {
24066     UDI opval = MAKEDI (255, 0xffffffff);
24067     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
24068     written |= (1 << 12);
24069     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24070   }
24071 frvbf_media_overflow (current_cpu, 4);
24072 }
24073 } else {
24074 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
24075 {
24076   {
24077     UDI opval = MAKEDI (0, 0);
24078     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
24079     written |= (1 << 12);
24080     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24081   }
24082 frvbf_media_overflow (current_cpu, 4);
24083 }
24084 } else {
24085   {
24086     UDI opval = tmp_tmp;
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 }
24092 }
24093 }
24094 }
24095 }
24096 }
24097
24098   abuf->written = written;
24099   return vpc;
24100 #undef FLD
24101 }
24102
24103 /* mmrdhs: mmrdhs$pack $FRinti,$FRintj,$ACC40Sk */
24104
24105 static SEM_PC
24106 SEM_FN_NAME (frvbf,mmrdhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
24107 {
24108 #define FLD(f) abuf->fields.sfmt_cmmachs.f
24109   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
24110   int UNUSED written = 0;
24111   IADDR UNUSED pc = abuf->addr;
24112   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
24113
24114 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
24115 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
24116 frvbf_media_acc_not_aligned (current_cpu);
24117 } else {
24118 {
24119   HI tmp_argihi;
24120   HI tmp_argilo;
24121   HI tmp_argjhi;
24122   HI tmp_argjlo;
24123 {
24124   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24125   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24126   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24127   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24128 }
24129 {
24130   DI tmp_tmp;
24131   tmp_tmp = SUBDI (GET_H_ACC40S (FLD (f_ACC40Sk)), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi)));
24132 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24133 {
24134   {
24135     DI opval = MAKEDI (127, 0xffffffff);
24136     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24137     written |= (1 << 11);
24138     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24139   }
24140 frvbf_media_overflow (current_cpu, 8);
24141 }
24142 } else {
24143 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24144 {
24145   {
24146     DI opval = MAKEDI (0xffffff80, 0);
24147     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24148     written |= (1 << 11);
24149     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24150   }
24151 frvbf_media_overflow (current_cpu, 8);
24152 }
24153 } else {
24154   {
24155     DI opval = tmp_tmp;
24156     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24157     written |= (1 << 11);
24158     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24159   }
24160 }
24161 }
24162 }
24163 {
24164   DI tmp_tmp;
24165   tmp_tmp = SUBDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (1))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo)));
24166 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24167 {
24168   {
24169     DI opval = MAKEDI (127, 0xffffffff);
24170     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24171     written |= (1 << 12);
24172     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24173   }
24174 frvbf_media_overflow (current_cpu, 4);
24175 }
24176 } else {
24177 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24178 {
24179   {
24180     DI opval = MAKEDI (0xffffff80, 0);
24181     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24182     written |= (1 << 12);
24183     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24184   }
24185 frvbf_media_overflow (current_cpu, 4);
24186 }
24187 } else {
24188   {
24189     DI opval = tmp_tmp;
24190     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24191     written |= (1 << 12);
24192     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24193   }
24194 }
24195 }
24196 }
24197 }
24198 }
24199 }
24200
24201   abuf->written = written;
24202   return vpc;
24203 #undef FLD
24204 }
24205
24206 /* mmrdhu: mmrdhu$pack $FRinti,$FRintj,$ACC40Uk */
24207
24208 static SEM_PC
24209 SEM_FN_NAME (frvbf,mmrdhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
24210 {
24211 #define FLD(f) abuf->fields.sfmt_cmmachu.f
24212   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
24213   int UNUSED written = 0;
24214   IADDR UNUSED pc = abuf->addr;
24215   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
24216
24217 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Uk))) {
24218 if (ANDSI (FLD (f_ACC40Uk), SUBSI (2, 1))) {
24219 frvbf_media_acc_not_aligned (current_cpu);
24220 } else {
24221 {
24222   UHI tmp_argihi;
24223   UHI tmp_argilo;
24224   UHI tmp_argjhi;
24225   UHI tmp_argjlo;
24226 {
24227   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24228   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24229   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24230   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24231 }
24232 {
24233   DI tmp_tmp;
24234   tmp_tmp = SUBDI (GET_H_ACC40U (FLD (f_ACC40Uk)), MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi)));
24235 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
24236 {
24237   {
24238     UDI opval = MAKEDI (255, 0xffffffff);
24239     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24240     written |= (1 << 11);
24241     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24242   }
24243 frvbf_media_overflow (current_cpu, 8);
24244 }
24245 } else {
24246 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
24247 {
24248   {
24249     UDI opval = MAKEDI (0, 0);
24250     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24251     written |= (1 << 11);
24252     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24253   }
24254 frvbf_media_overflow (current_cpu, 8);
24255 }
24256 } else {
24257   {
24258     UDI opval = tmp_tmp;
24259     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24260     written |= (1 << 11);
24261     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24262   }
24263 }
24264 }
24265 }
24266 {
24267   DI tmp_tmp;
24268   tmp_tmp = SUBDI (GET_H_ACC40U (((FLD (f_ACC40Uk)) + (1))), MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo)));
24269 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
24270 {
24271   {
24272     UDI opval = MAKEDI (255, 0xffffffff);
24273     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
24274     written |= (1 << 12);
24275     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24276   }
24277 frvbf_media_overflow (current_cpu, 4);
24278 }
24279 } else {
24280 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
24281 {
24282   {
24283     UDI opval = MAKEDI (0, 0);
24284     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
24285     written |= (1 << 12);
24286     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24287   }
24288 frvbf_media_overflow (current_cpu, 4);
24289 }
24290 } else {
24291   {
24292     UDI opval = tmp_tmp;
24293     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
24294     written |= (1 << 12);
24295     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24296   }
24297 }
24298 }
24299 }
24300 }
24301 }
24302 }
24303
24304   abuf->written = written;
24305   return vpc;
24306 #undef FLD
24307 }
24308
24309 /* cmmachs: cmmachs$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
24310
24311 static SEM_PC
24312 SEM_FN_NAME (frvbf,cmmachs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
24313 {
24314 #define FLD(f) abuf->fields.sfmt_cmmachs.f
24315   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
24316   int UNUSED written = 0;
24317   IADDR UNUSED pc = abuf->addr;
24318   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
24319
24320 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
24321 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
24322 frvbf_media_acc_not_aligned (current_cpu);
24323 } else {
24324 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
24325 {
24326   HI tmp_argihi;
24327   HI tmp_argilo;
24328   HI tmp_argjhi;
24329   HI tmp_argjlo;
24330 {
24331   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24332   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24333   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24334   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24335 }
24336 {
24337   DI tmp_tmp;
24338   tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Sk)), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi)));
24339 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24340 {
24341   {
24342     DI opval = MAKEDI (127, 0xffffffff);
24343     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24344     written |= (1 << 13);
24345     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24346   }
24347 frvbf_media_overflow (current_cpu, 8);
24348 }
24349 } else {
24350 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24351 {
24352   {
24353     DI opval = MAKEDI (0xffffff80, 0);
24354     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24355     written |= (1 << 13);
24356     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24357   }
24358 frvbf_media_overflow (current_cpu, 8);
24359 }
24360 } else {
24361   {
24362     DI opval = tmp_tmp;
24363     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24364     written |= (1 << 13);
24365     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24366   }
24367 }
24368 }
24369 }
24370 {
24371   DI tmp_tmp;
24372   tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (1))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo)));
24373 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24374 {
24375   {
24376     DI opval = MAKEDI (127, 0xffffffff);
24377     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24378     written |= (1 << 14);
24379     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24380   }
24381 frvbf_media_overflow (current_cpu, 4);
24382 }
24383 } else {
24384 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24385 {
24386   {
24387     DI opval = MAKEDI (0xffffff80, 0);
24388     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24389     written |= (1 << 14);
24390     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24391   }
24392 frvbf_media_overflow (current_cpu, 4);
24393 }
24394 } else {
24395   {
24396     DI opval = tmp_tmp;
24397     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24398     written |= (1 << 14);
24399     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24400   }
24401 }
24402 }
24403 }
24404 }
24405 }
24406 }
24407 }
24408
24409   abuf->written = written;
24410   return vpc;
24411 #undef FLD
24412 }
24413
24414 /* cmmachu: cmmachu$pack $FRinti,$FRintj,$ACC40Uk,$CCi,$cond */
24415
24416 static SEM_PC
24417 SEM_FN_NAME (frvbf,cmmachu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
24418 {
24419 #define FLD(f) abuf->fields.sfmt_cmmachu.f
24420   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
24421   int UNUSED written = 0;
24422   IADDR UNUSED pc = abuf->addr;
24423   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
24424
24425 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Uk))) {
24426 if (ANDSI (FLD (f_ACC40Uk), SUBSI (2, 1))) {
24427 frvbf_media_acc_not_aligned (current_cpu);
24428 } else {
24429 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
24430 {
24431   UHI tmp_argihi;
24432   UHI tmp_argilo;
24433   UHI tmp_argjhi;
24434   UHI tmp_argjlo;
24435 {
24436   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24437   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24438   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24439   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24440 }
24441 {
24442   DI tmp_tmp;
24443   tmp_tmp = ADDDI (GET_H_ACC40U (FLD (f_ACC40Uk)), MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi)));
24444 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
24445 {
24446   {
24447     UDI opval = MAKEDI (255, 0xffffffff);
24448     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24449     written |= (1 << 13);
24450     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24451   }
24452 frvbf_media_overflow (current_cpu, 8);
24453 }
24454 } else {
24455 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
24456 {
24457   {
24458     UDI opval = MAKEDI (0, 0);
24459     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24460     written |= (1 << 13);
24461     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24462   }
24463 frvbf_media_overflow (current_cpu, 8);
24464 }
24465 } else {
24466   {
24467     UDI opval = tmp_tmp;
24468     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24469     written |= (1 << 13);
24470     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24471   }
24472 }
24473 }
24474 }
24475 {
24476   DI tmp_tmp;
24477   tmp_tmp = ADDDI (GET_H_ACC40U (((FLD (f_ACC40Uk)) + (1))), MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo)));
24478 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
24479 {
24480   {
24481     UDI opval = MAKEDI (255, 0xffffffff);
24482     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
24483     written |= (1 << 14);
24484     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24485   }
24486 frvbf_media_overflow (current_cpu, 4);
24487 }
24488 } else {
24489 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
24490 {
24491   {
24492     UDI opval = MAKEDI (0, 0);
24493     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
24494     written |= (1 << 14);
24495     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24496   }
24497 frvbf_media_overflow (current_cpu, 4);
24498 }
24499 } else {
24500   {
24501     UDI opval = tmp_tmp;
24502     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
24503     written |= (1 << 14);
24504     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24505   }
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 (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
24531 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
24532 frvbf_media_acc_not_aligned (current_cpu);
24533 } else {
24534 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
24535 frvbf_media_register_not_aligned (current_cpu);
24536 } else {
24537 {
24538   HI tmp_argihi;
24539   HI tmp_argilo;
24540   HI tmp_argjhi;
24541   HI tmp_argjlo;
24542 {
24543   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24544   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24545   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24546   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24547 }
24548 {
24549   DI tmp_tmp;
24550   tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Sk)), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi)));
24551 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24552 {
24553   {
24554     DI opval = MAKEDI (127, 0xffffffff);
24555     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24556     written |= (1 << 17);
24557     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24558   }
24559 frvbf_media_overflow (current_cpu, 8);
24560 }
24561 } else {
24562 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24563 {
24564   {
24565     DI opval = MAKEDI (0xffffff80, 0);
24566     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24567     written |= (1 << 17);
24568     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24569   }
24570 frvbf_media_overflow (current_cpu, 8);
24571 }
24572 } else {
24573   {
24574     DI opval = tmp_tmp;
24575     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24576     written |= (1 << 17);
24577     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24578   }
24579 }
24580 }
24581 }
24582 {
24583   DI tmp_tmp;
24584   tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (1))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo)));
24585 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24586 {
24587   {
24588     DI opval = MAKEDI (127, 0xffffffff);
24589     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24590     written |= (1 << 18);
24591     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24592   }
24593 frvbf_media_overflow (current_cpu, 4);
24594 }
24595 } else {
24596 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24597 {
24598   {
24599     DI opval = MAKEDI (0xffffff80, 0);
24600     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24601     written |= (1 << 18);
24602     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24603   }
24604 frvbf_media_overflow (current_cpu, 4);
24605 }
24606 } else {
24607   {
24608     DI opval = tmp_tmp;
24609     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24610     written |= (1 << 18);
24611     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24612   }
24613 }
24614 }
24615 }
24616 {
24617   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24618   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24619   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24620   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24621 }
24622 {
24623   DI tmp_tmp;
24624   tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (2))), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi)));
24625 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24626 {
24627   {
24628     DI opval = MAKEDI (127, 0xffffffff);
24629     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
24630     written |= (1 << 19);
24631     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24632   }
24633 frvbf_media_overflow (current_cpu, 2);
24634 }
24635 } else {
24636 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24637 {
24638   {
24639     DI opval = MAKEDI (0xffffff80, 0);
24640     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
24641     written |= (1 << 19);
24642     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24643   }
24644 frvbf_media_overflow (current_cpu, 2);
24645 }
24646 } else {
24647   {
24648     DI opval = tmp_tmp;
24649     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
24650     written |= (1 << 19);
24651     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24652   }
24653 }
24654 }
24655 }
24656 {
24657   DI tmp_tmp;
24658   tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (3))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo)));
24659 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24660 {
24661   {
24662     DI opval = MAKEDI (127, 0xffffffff);
24663     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
24664     written |= (1 << 20);
24665     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24666   }
24667 frvbf_media_overflow (current_cpu, 1);
24668 }
24669 } else {
24670 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24671 {
24672   {
24673     DI opval = MAKEDI (0xffffff80, 0);
24674     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
24675     written |= (1 << 20);
24676     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24677   }
24678 frvbf_media_overflow (current_cpu, 1);
24679 }
24680 } else {
24681   {
24682     DI opval = tmp_tmp;
24683     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
24684     written |= (1 << 20);
24685     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24686   }
24687 }
24688 }
24689 }
24690 }
24691 }
24692 }
24693 }
24694
24695   abuf->written = written;
24696   return vpc;
24697 #undef FLD
24698 }
24699
24700 /* mqmachu: mqmachu$pack $FRintieven,$FRintjeven,$ACC40Uk */
24701
24702 static SEM_PC
24703 SEM_FN_NAME (frvbf,mqmachu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
24704 {
24705 #define FLD(f) abuf->fields.sfmt_cmqmachu.f
24706   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
24707   int UNUSED written = 0;
24708   IADDR UNUSED pc = abuf->addr;
24709   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
24710
24711 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Uk))) {
24712 if (ANDSI (FLD (f_ACC40Uk), SUBSI (4, 1))) {
24713 frvbf_media_acc_not_aligned (current_cpu);
24714 } else {
24715 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
24716 frvbf_media_register_not_aligned (current_cpu);
24717 } else {
24718 {
24719   UHI tmp_argihi;
24720   UHI tmp_argilo;
24721   UHI tmp_argjhi;
24722   UHI tmp_argjlo;
24723 {
24724   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24725   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24726   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24727   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24728 }
24729 {
24730   DI tmp_tmp;
24731   tmp_tmp = ADDDI (GET_H_ACC40U (FLD (f_ACC40Uk)), MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi)));
24732 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
24733 {
24734   {
24735     UDI opval = MAKEDI (255, 0xffffffff);
24736     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24737     written |= (1 << 17);
24738     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24739   }
24740 frvbf_media_overflow (current_cpu, 8);
24741 }
24742 } else {
24743 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
24744 {
24745   {
24746     UDI opval = MAKEDI (0, 0);
24747     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24748     written |= (1 << 17);
24749     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24750   }
24751 frvbf_media_overflow (current_cpu, 8);
24752 }
24753 } else {
24754   {
24755     UDI opval = tmp_tmp;
24756     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24757     written |= (1 << 17);
24758     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24759   }
24760 }
24761 }
24762 }
24763 {
24764   DI tmp_tmp;
24765   tmp_tmp = ADDDI (GET_H_ACC40U (((FLD (f_ACC40Uk)) + (1))), MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo)));
24766 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
24767 {
24768   {
24769     UDI opval = MAKEDI (255, 0xffffffff);
24770     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
24771     written |= (1 << 18);
24772     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24773   }
24774 frvbf_media_overflow (current_cpu, 4);
24775 }
24776 } else {
24777 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
24778 {
24779   {
24780     UDI opval = MAKEDI (0, 0);
24781     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
24782     written |= (1 << 18);
24783     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24784   }
24785 frvbf_media_overflow (current_cpu, 4);
24786 }
24787 } else {
24788   {
24789     UDI opval = tmp_tmp;
24790     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
24791     written |= (1 << 18);
24792     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24793   }
24794 }
24795 }
24796 }
24797 {
24798   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24799   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24800   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24801   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24802 }
24803 {
24804   DI tmp_tmp;
24805   tmp_tmp = ADDDI (GET_H_ACC40U (((FLD (f_ACC40Uk)) + (2))), MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi)));
24806 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
24807 {
24808   {
24809     UDI opval = MAKEDI (255, 0xffffffff);
24810     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (2)), opval);
24811     written |= (1 << 19);
24812     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24813   }
24814 frvbf_media_overflow (current_cpu, 2);
24815 }
24816 } else {
24817 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
24818 {
24819   {
24820     UDI opval = MAKEDI (0, 0);
24821     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (2)), opval);
24822     written |= (1 << 19);
24823     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24824   }
24825 frvbf_media_overflow (current_cpu, 2);
24826 }
24827 } else {
24828   {
24829     UDI opval = tmp_tmp;
24830     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (2)), opval);
24831     written |= (1 << 19);
24832     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24833   }
24834 }
24835 }
24836 }
24837 {
24838   DI tmp_tmp;
24839   tmp_tmp = ADDDI (GET_H_ACC40U (((FLD (f_ACC40Uk)) + (3))), MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo)));
24840 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
24841 {
24842   {
24843     UDI opval = MAKEDI (255, 0xffffffff);
24844     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (3)), opval);
24845     written |= (1 << 20);
24846     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24847   }
24848 frvbf_media_overflow (current_cpu, 1);
24849 }
24850 } else {
24851 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
24852 {
24853   {
24854     UDI opval = MAKEDI (0, 0);
24855     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (3)), opval);
24856     written |= (1 << 20);
24857     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24858   }
24859 frvbf_media_overflow (current_cpu, 1);
24860 }
24861 } else {
24862   {
24863     UDI opval = tmp_tmp;
24864     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (3)), opval);
24865     written |= (1 << 20);
24866     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24867   }
24868 }
24869 }
24870 }
24871 }
24872 }
24873 }
24874 }
24875
24876   abuf->written = written;
24877   return vpc;
24878 #undef FLD
24879 }
24880
24881 /* cmqmachs: cmqmachs$pack $FRintieven,$FRintjeven,$ACC40Sk,$CCi,$cond */
24882
24883 static SEM_PC
24884 SEM_FN_NAME (frvbf,cmqmachs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
24885 {
24886 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
24887   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
24888   int UNUSED written = 0;
24889   IADDR UNUSED pc = abuf->addr;
24890   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
24891
24892 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
24893 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
24894 frvbf_media_acc_not_aligned (current_cpu);
24895 } else {
24896 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
24897 frvbf_media_register_not_aligned (current_cpu);
24898 } else {
24899 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
24900 {
24901   HI tmp_argihi;
24902   HI tmp_argilo;
24903   HI tmp_argjhi;
24904   HI tmp_argjlo;
24905 {
24906   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24907   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24908   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24909   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24910 }
24911 {
24912   DI tmp_tmp;
24913   tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Sk)), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi)));
24914 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24915 {
24916   {
24917     DI opval = MAKEDI (127, 0xffffffff);
24918     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24919     written |= (1 << 19);
24920     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24921   }
24922 frvbf_media_overflow (current_cpu, 8);
24923 }
24924 } else {
24925 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24926 {
24927   {
24928     DI opval = MAKEDI (0xffffff80, 0);
24929     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24930     written |= (1 << 19);
24931     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24932   }
24933 frvbf_media_overflow (current_cpu, 8);
24934 }
24935 } else {
24936   {
24937     DI opval = tmp_tmp;
24938     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24939     written |= (1 << 19);
24940     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24941   }
24942 }
24943 }
24944 }
24945 {
24946   DI tmp_tmp;
24947   tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (1))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo)));
24948 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24949 {
24950   {
24951     DI opval = MAKEDI (127, 0xffffffff);
24952     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24953     written |= (1 << 20);
24954     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24955   }
24956 frvbf_media_overflow (current_cpu, 4);
24957 }
24958 } else {
24959 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24960 {
24961   {
24962     DI opval = MAKEDI (0xffffff80, 0);
24963     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24964     written |= (1 << 20);
24965     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24966   }
24967 frvbf_media_overflow (current_cpu, 4);
24968 }
24969 } else {
24970   {
24971     DI opval = tmp_tmp;
24972     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24973     written |= (1 << 20);
24974     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24975   }
24976 }
24977 }
24978 }
24979 {
24980   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24981   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24982   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24983   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24984 }
24985 {
24986   DI tmp_tmp;
24987   tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (2))), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi)));
24988 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24989 {
24990   {
24991     DI opval = MAKEDI (127, 0xffffffff);
24992     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
24993     written |= (1 << 21);
24994     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24995   }
24996 frvbf_media_overflow (current_cpu, 2);
24997 }
24998 } else {
24999 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25000 {
25001   {
25002     DI opval = MAKEDI (0xffffff80, 0);
25003     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
25004     written |= (1 << 21);
25005     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25006   }
25007 frvbf_media_overflow (current_cpu, 2);
25008 }
25009 } else {
25010   {
25011     DI opval = tmp_tmp;
25012     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
25013     written |= (1 << 21);
25014     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25015   }
25016 }
25017 }
25018 }
25019 {
25020   DI tmp_tmp;
25021   tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (3))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo)));
25022 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25023 {
25024   {
25025     DI opval = MAKEDI (127, 0xffffffff);
25026     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
25027     written |= (1 << 22);
25028     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25029   }
25030 frvbf_media_overflow (current_cpu, 1);
25031 }
25032 } else {
25033 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25034 {
25035   {
25036     DI opval = MAKEDI (0xffffff80, 0);
25037     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
25038     written |= (1 << 22);
25039     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25040   }
25041 frvbf_media_overflow (current_cpu, 1);
25042 }
25043 } else {
25044   {
25045     DI opval = tmp_tmp;
25046     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
25047     written |= (1 << 22);
25048     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25049   }
25050 }
25051 }
25052 }
25053 }
25054 }
25055 }
25056 }
25057 }
25058
25059   abuf->written = written;
25060   return vpc;
25061 #undef FLD
25062 }
25063
25064 /* cmqmachu: cmqmachu$pack $FRintieven,$FRintjeven,$ACC40Uk,$CCi,$cond */
25065
25066 static SEM_PC
25067 SEM_FN_NAME (frvbf,cmqmachu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
25068 {
25069 #define FLD(f) abuf->fields.sfmt_cmqmachu.f
25070   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
25071   int UNUSED written = 0;
25072   IADDR UNUSED pc = abuf->addr;
25073   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
25074
25075 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Uk))) {
25076 if (ANDSI (FLD (f_ACC40Uk), SUBSI (4, 1))) {
25077 frvbf_media_acc_not_aligned (current_cpu);
25078 } else {
25079 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
25080 frvbf_media_register_not_aligned (current_cpu);
25081 } else {
25082 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
25083 {
25084   UHI tmp_argihi;
25085   UHI tmp_argilo;
25086   UHI tmp_argjhi;
25087   UHI tmp_argjlo;
25088 {
25089   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25090   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25091   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25092   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25093 }
25094 {
25095   DI tmp_tmp;
25096   tmp_tmp = ADDDI (GET_H_ACC40U (FLD (f_ACC40Uk)), MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi)));
25097 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
25098 {
25099   {
25100     UDI opval = MAKEDI (255, 0xffffffff);
25101     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
25102     written |= (1 << 19);
25103     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25104   }
25105 frvbf_media_overflow (current_cpu, 8);
25106 }
25107 } else {
25108 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
25109 {
25110   {
25111     UDI opval = MAKEDI (0, 0);
25112     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
25113     written |= (1 << 19);
25114     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25115   }
25116 frvbf_media_overflow (current_cpu, 8);
25117 }
25118 } else {
25119   {
25120     UDI opval = tmp_tmp;
25121     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
25122     written |= (1 << 19);
25123     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25124   }
25125 }
25126 }
25127 }
25128 {
25129   DI tmp_tmp;
25130   tmp_tmp = ADDDI (GET_H_ACC40U (((FLD (f_ACC40Uk)) + (1))), MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo)));
25131 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
25132 {
25133   {
25134     UDI opval = MAKEDI (255, 0xffffffff);
25135     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
25136     written |= (1 << 20);
25137     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25138   }
25139 frvbf_media_overflow (current_cpu, 4);
25140 }
25141 } else {
25142 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
25143 {
25144   {
25145     UDI opval = MAKEDI (0, 0);
25146     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
25147     written |= (1 << 20);
25148     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25149   }
25150 frvbf_media_overflow (current_cpu, 4);
25151 }
25152 } else {
25153   {
25154     UDI opval = tmp_tmp;
25155     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
25156     written |= (1 << 20);
25157     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25158   }
25159 }
25160 }
25161 }
25162 {
25163   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25164   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25165   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25166   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25167 }
25168 {
25169   DI tmp_tmp;
25170   tmp_tmp = ADDDI (GET_H_ACC40U (((FLD (f_ACC40Uk)) + (2))), MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi)));
25171 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
25172 {
25173   {
25174     UDI opval = MAKEDI (255, 0xffffffff);
25175     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (2)), opval);
25176     written |= (1 << 21);
25177     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25178   }
25179 frvbf_media_overflow (current_cpu, 2);
25180 }
25181 } else {
25182 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
25183 {
25184   {
25185     UDI opval = MAKEDI (0, 0);
25186     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (2)), opval);
25187     written |= (1 << 21);
25188     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25189   }
25190 frvbf_media_overflow (current_cpu, 2);
25191 }
25192 } else {
25193   {
25194     UDI opval = tmp_tmp;
25195     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (2)), opval);
25196     written |= (1 << 21);
25197     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25198   }
25199 }
25200 }
25201 }
25202 {
25203   DI tmp_tmp;
25204   tmp_tmp = ADDDI (GET_H_ACC40U (((FLD (f_ACC40Uk)) + (3))), MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo)));
25205 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
25206 {
25207   {
25208     UDI opval = MAKEDI (255, 0xffffffff);
25209     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (3)), opval);
25210     written |= (1 << 22);
25211     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25212   }
25213 frvbf_media_overflow (current_cpu, 1);
25214 }
25215 } else {
25216 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
25217 {
25218   {
25219     UDI opval = MAKEDI (0, 0);
25220     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (3)), opval);
25221     written |= (1 << 22);
25222     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25223   }
25224 frvbf_media_overflow (current_cpu, 1);
25225 }
25226 } else {
25227   {
25228     UDI opval = tmp_tmp;
25229     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (3)), opval);
25230     written |= (1 << 22);
25231     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25232   }
25233 }
25234 }
25235 }
25236 }
25237 }
25238 }
25239 }
25240 }
25241
25242   abuf->written = written;
25243   return vpc;
25244 #undef FLD
25245 }
25246
25247 /* mqxmachs: mqxmachs$pack $FRintieven,$FRintjeven,$ACC40Sk */
25248
25249 static SEM_PC
25250 SEM_FN_NAME (frvbf,mqxmachs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
25251 {
25252 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
25253   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
25254   int UNUSED written = 0;
25255   IADDR UNUSED pc = abuf->addr;
25256   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
25257
25258 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
25259 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
25260 frvbf_media_acc_not_aligned (current_cpu);
25261 } else {
25262 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
25263 frvbf_media_register_not_aligned (current_cpu);
25264 } else {
25265 {
25266   HI tmp_argihi;
25267   HI tmp_argilo;
25268   HI tmp_argjhi;
25269   HI tmp_argjlo;
25270 {
25271   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25272   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25273   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25274   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25275 }
25276 {
25277   DI tmp_tmp;
25278   tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (2))), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi)));
25279 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25280 {
25281   {
25282     DI opval = MAKEDI (127, 0xffffffff);
25283     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
25284     written |= (1 << 19);
25285     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25286   }
25287 frvbf_media_overflow (current_cpu, 2);
25288 }
25289 } else {
25290 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25291 {
25292   {
25293     DI opval = MAKEDI (0xffffff80, 0);
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 frvbf_media_overflow (current_cpu, 2);
25299 }
25300 } else {
25301   {
25302     DI opval = tmp_tmp;
25303     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
25304     written |= (1 << 19);
25305     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25306   }
25307 }
25308 }
25309 }
25310 {
25311   DI tmp_tmp;
25312   tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (3))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo)));
25313 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25314 {
25315   {
25316     DI opval = MAKEDI (127, 0xffffffff);
25317     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
25318     written |= (1 << 20);
25319     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25320   }
25321 frvbf_media_overflow (current_cpu, 1);
25322 }
25323 } else {
25324 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25325 {
25326   {
25327     DI opval = MAKEDI (0xffffff80, 0);
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 frvbf_media_overflow (current_cpu, 1);
25333 }
25334 } else {
25335   {
25336     DI opval = tmp_tmp;
25337     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
25338     written |= (1 << 20);
25339     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25340   }
25341 }
25342 }
25343 }
25344 {
25345   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25346   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25347   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25348   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25349 }
25350 {
25351   DI tmp_tmp;
25352   tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Sk)), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi)));
25353 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25354 {
25355   {
25356     DI opval = MAKEDI (127, 0xffffffff);
25357     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25358     written |= (1 << 17);
25359     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25360   }
25361 frvbf_media_overflow (current_cpu, 8);
25362 }
25363 } else {
25364 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25365 {
25366   {
25367     DI opval = MAKEDI (0xffffff80, 0);
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 frvbf_media_overflow (current_cpu, 8);
25373 }
25374 } else {
25375   {
25376     DI opval = tmp_tmp;
25377     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25378     written |= (1 << 17);
25379     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25380   }
25381 }
25382 }
25383 }
25384 {
25385   DI tmp_tmp;
25386   tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (1))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo)));
25387 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25388 {
25389   {
25390     DI opval = MAKEDI (127, 0xffffffff);
25391     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
25392     written |= (1 << 18);
25393     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25394   }
25395 frvbf_media_overflow (current_cpu, 4);
25396 }
25397 } else {
25398 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25399 {
25400   {
25401     DI opval = MAKEDI (0xffffff80, 0);
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 frvbf_media_overflow (current_cpu, 4);
25407 }
25408 } else {
25409   {
25410     DI opval = tmp_tmp;
25411     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
25412     written |= (1 << 18);
25413     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25414   }
25415 }
25416 }
25417 }
25418 }
25419 }
25420 }
25421 }
25422
25423   abuf->written = written;
25424   return vpc;
25425 #undef FLD
25426 }
25427
25428 /* mqxmacxhs: mqxmacxhs$pack $FRintieven,$FRintjeven,$ACC40Sk */
25429
25430 static SEM_PC
25431 SEM_FN_NAME (frvbf,mqxmacxhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
25432 {
25433 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
25434   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
25435   int UNUSED written = 0;
25436   IADDR UNUSED pc = abuf->addr;
25437   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
25438
25439 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
25440 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
25441 frvbf_media_acc_not_aligned (current_cpu);
25442 } else {
25443 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
25444 frvbf_media_register_not_aligned (current_cpu);
25445 } else {
25446 {
25447   HI tmp_argihi;
25448   HI tmp_argilo;
25449   HI tmp_argjhi;
25450   HI tmp_argjlo;
25451 {
25452   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25453   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25454   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25455   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25456 }
25457 {
25458   DI tmp_tmp;
25459   tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (2))), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo)));
25460 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25461 {
25462   {
25463     DI opval = MAKEDI (127, 0xffffffff);
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 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25472 {
25473   {
25474     DI opval = MAKEDI (0xffffff80, 0);
25475     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
25476     written |= (1 << 19);
25477     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25478   }
25479 frvbf_media_overflow (current_cpu, 2);
25480 }
25481 } else {
25482   {
25483     DI opval = tmp_tmp;
25484     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
25485     written |= (1 << 19);
25486     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25487   }
25488 }
25489 }
25490 }
25491 {
25492   DI tmp_tmp;
25493   tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (3))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi)));
25494 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25495 {
25496   {
25497     DI opval = MAKEDI (127, 0xffffffff);
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 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25506 {
25507   {
25508     DI opval = MAKEDI (0xffffff80, 0);
25509     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
25510     written |= (1 << 20);
25511     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25512   }
25513 frvbf_media_overflow (current_cpu, 1);
25514 }
25515 } else {
25516   {
25517     DI opval = tmp_tmp;
25518     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
25519     written |= (1 << 20);
25520     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25521   }
25522 }
25523 }
25524 }
25525 {
25526   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25527   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25528   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25529   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25530 }
25531 {
25532   DI tmp_tmp;
25533   tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Sk)), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo)));
25534 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25535 {
25536   {
25537     DI opval = MAKEDI (127, 0xffffffff);
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 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25546 {
25547   {
25548     DI opval = MAKEDI (0xffffff80, 0);
25549     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25550     written |= (1 << 17);
25551     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25552   }
25553 frvbf_media_overflow (current_cpu, 8);
25554 }
25555 } else {
25556   {
25557     DI opval = tmp_tmp;
25558     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25559     written |= (1 << 17);
25560     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25561   }
25562 }
25563 }
25564 }
25565 {
25566   DI tmp_tmp;
25567   tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (1))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi)));
25568 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25569 {
25570   {
25571     DI opval = MAKEDI (127, 0xffffffff);
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 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25580 {
25581   {
25582     DI opval = MAKEDI (0xffffff80, 0);
25583     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
25584     written |= (1 << 18);
25585     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25586   }
25587 frvbf_media_overflow (current_cpu, 4);
25588 }
25589 } else {
25590   {
25591     DI opval = tmp_tmp;
25592     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
25593     written |= (1 << 18);
25594     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25595   }
25596 }
25597 }
25598 }
25599 }
25600 }
25601 }
25602 }
25603
25604   abuf->written = written;
25605   return vpc;
25606 #undef FLD
25607 }
25608
25609 /* mqmacxhs: mqmacxhs$pack $FRintieven,$FRintjeven,$ACC40Sk */
25610
25611 static SEM_PC
25612 SEM_FN_NAME (frvbf,mqmacxhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
25613 {
25614 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
25615   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
25616   int UNUSED written = 0;
25617   IADDR UNUSED pc = abuf->addr;
25618   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
25619
25620 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
25621 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
25622 frvbf_media_acc_not_aligned (current_cpu);
25623 } else {
25624 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
25625 frvbf_media_register_not_aligned (current_cpu);
25626 } else {
25627 {
25628   HI tmp_argihi;
25629   HI tmp_argilo;
25630   HI tmp_argjhi;
25631   HI tmp_argjlo;
25632 {
25633   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25634   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25635   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25636   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25637 }
25638 {
25639   DI tmp_tmp;
25640   tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Sk)), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo)));
25641 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25642 {
25643   {
25644     DI opval = MAKEDI (127, 0xffffffff);
25645     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25646     written |= (1 << 17);
25647     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25648   }
25649 frvbf_media_overflow (current_cpu, 8);
25650 }
25651 } else {
25652 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25653 {
25654   {
25655     DI opval = MAKEDI (0xffffff80, 0);
25656     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25657     written |= (1 << 17);
25658     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25659   }
25660 frvbf_media_overflow (current_cpu, 8);
25661 }
25662 } else {
25663   {
25664     DI opval = tmp_tmp;
25665     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25666     written |= (1 << 17);
25667     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25668   }
25669 }
25670 }
25671 }
25672 {
25673   DI tmp_tmp;
25674   tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (1))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi)));
25675 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25676 {
25677   {
25678     DI opval = MAKEDI (127, 0xffffffff);
25679     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
25680     written |= (1 << 18);
25681     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25682   }
25683 frvbf_media_overflow (current_cpu, 4);
25684 }
25685 } else {
25686 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25687 {
25688   {
25689     DI opval = MAKEDI (0xffffff80, 0);
25690     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
25691     written |= (1 << 18);
25692     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25693   }
25694 frvbf_media_overflow (current_cpu, 4);
25695 }
25696 } else {
25697   {
25698     DI opval = tmp_tmp;
25699     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
25700     written |= (1 << 18);
25701     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25702   }
25703 }
25704 }
25705 }
25706 {
25707   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25708   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25709   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25710   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25711 }
25712 {
25713   DI tmp_tmp;
25714   tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (2))), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo)));
25715 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25716 {
25717   {
25718     DI opval = MAKEDI (127, 0xffffffff);
25719     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
25720     written |= (1 << 19);
25721     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25722   }
25723 frvbf_media_overflow (current_cpu, 2);
25724 }
25725 } else {
25726 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25727 {
25728   {
25729     DI opval = MAKEDI (0xffffff80, 0);
25730     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
25731     written |= (1 << 19);
25732     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25733   }
25734 frvbf_media_overflow (current_cpu, 2);
25735 }
25736 } else {
25737   {
25738     DI opval = tmp_tmp;
25739     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
25740     written |= (1 << 19);
25741     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25742   }
25743 }
25744 }
25745 }
25746 {
25747   DI tmp_tmp;
25748   tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (3))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi)));
25749 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25750 {
25751   {
25752     DI opval = MAKEDI (127, 0xffffffff);
25753     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
25754     written |= (1 << 20);
25755     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25756   }
25757 frvbf_media_overflow (current_cpu, 1);
25758 }
25759 } else {
25760 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25761 {
25762   {
25763     DI opval = MAKEDI (0xffffff80, 0);
25764     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
25765     written |= (1 << 20);
25766     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25767   }
25768 frvbf_media_overflow (current_cpu, 1);
25769 }
25770 } else {
25771   {
25772     DI opval = tmp_tmp;
25773     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
25774     written |= (1 << 20);
25775     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25776   }
25777 }
25778 }
25779 }
25780 }
25781 }
25782 }
25783 }
25784
25785   abuf->written = written;
25786   return vpc;
25787 #undef FLD
25788 }
25789
25790 /* mcpxrs: mcpxrs$pack $FRinti,$FRintj,$ACC40Sk */
25791
25792 static SEM_PC
25793 SEM_FN_NAME (frvbf,mcpxrs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
25794 {
25795 #define FLD(f) abuf->fields.sfmt_cmmachs.f
25796   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
25797   int UNUSED written = 0;
25798   IADDR UNUSED pc = abuf->addr;
25799   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
25800
25801 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
25802 {
25803   HI tmp_argihi;
25804   HI tmp_argilo;
25805   HI tmp_argjhi;
25806   HI tmp_argjlo;
25807 {
25808   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25809   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25810   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25811   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25812 }
25813 {
25814   DI tmp_tmp1;
25815   DI tmp_tmp2;
25816   tmp_tmp1 = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
25817   tmp_tmp2 = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
25818   tmp_tmp1 = SUBDI (tmp_tmp1, tmp_tmp2);
25819 if (GTDI (tmp_tmp1, MAKEDI (127, 0xffffffff))) {
25820 {
25821   {
25822     DI opval = MAKEDI (127, 0xffffffff);
25823     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25824     written |= (1 << 9);
25825     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25826   }
25827 frvbf_media_overflow (current_cpu, 8);
25828 }
25829 } else {
25830 if (LTDI (tmp_tmp1, MAKEDI (0xffffff80, 0))) {
25831 {
25832   {
25833     DI opval = MAKEDI (0xffffff80, 0);
25834     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25835     written |= (1 << 9);
25836     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25837   }
25838 frvbf_media_overflow (current_cpu, 8);
25839 }
25840 } else {
25841   {
25842     DI opval = tmp_tmp1;
25843     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25844     written |= (1 << 9);
25845     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25846   }
25847 }
25848 }
25849 }
25850 }
25851 }
25852
25853   abuf->written = written;
25854   return vpc;
25855 #undef FLD
25856 }
25857
25858 /* mcpxru: mcpxru$pack $FRinti,$FRintj,$ACC40Sk */
25859
25860 static SEM_PC
25861 SEM_FN_NAME (frvbf,mcpxru) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
25862 {
25863 #define FLD(f) abuf->fields.sfmt_cmmachs.f
25864   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
25865   int UNUSED written = 0;
25866   IADDR UNUSED pc = abuf->addr;
25867   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
25868
25869 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
25870 {
25871   UHI tmp_argihi;
25872   UHI tmp_argilo;
25873   UHI tmp_argjhi;
25874   UHI tmp_argjlo;
25875 {
25876   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25877   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25878   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25879   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25880 }
25881 {
25882   DI tmp_tmp1;
25883   DI tmp_tmp2;
25884   tmp_tmp1 = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
25885   tmp_tmp2 = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
25886   tmp_tmp1 = SUBDI (tmp_tmp1, tmp_tmp2);
25887 if (GTDI (tmp_tmp1, MAKEDI (255, 0xffffffff))) {
25888 {
25889   {
25890     DI opval = MAKEDI (255, 0xffffffff);
25891     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25892     written |= (1 << 9);
25893     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25894   }
25895 frvbf_media_overflow (current_cpu, 8);
25896 }
25897 } else {
25898 if (LTDI (tmp_tmp1, MAKEDI (0, 0))) {
25899 {
25900   {
25901     DI opval = MAKEDI (0, 0);
25902     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25903     written |= (1 << 9);
25904     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25905   }
25906 frvbf_media_overflow (current_cpu, 8);
25907 }
25908 } else {
25909   {
25910     DI opval = tmp_tmp1;
25911     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25912     written |= (1 << 9);
25913     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25914   }
25915 }
25916 }
25917 }
25918 }
25919 }
25920
25921   abuf->written = written;
25922   return vpc;
25923 #undef FLD
25924 }
25925
25926 /* mcpxis: mcpxis$pack $FRinti,$FRintj,$ACC40Sk */
25927
25928 static SEM_PC
25929 SEM_FN_NAME (frvbf,mcpxis) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
25930 {
25931 #define FLD(f) abuf->fields.sfmt_cmmachs.f
25932   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
25933   int UNUSED written = 0;
25934   IADDR UNUSED pc = abuf->addr;
25935   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
25936
25937 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
25938 {
25939   HI tmp_argihi;
25940   HI tmp_argilo;
25941   HI tmp_argjhi;
25942   HI tmp_argjlo;
25943 {
25944   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25945   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25946   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25947   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25948 }
25949 {
25950   DI tmp_tmp1;
25951   DI tmp_tmp2;
25952   tmp_tmp1 = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo));
25953   tmp_tmp2 = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi));
25954   tmp_tmp1 = ADDDI (tmp_tmp1, tmp_tmp2);
25955 if (GTDI (tmp_tmp1, MAKEDI (127, 0xffffffff))) {
25956 {
25957   {
25958     DI opval = MAKEDI (127, 0xffffffff);
25959     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25960     written |= (1 << 9);
25961     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25962   }
25963 frvbf_media_overflow (current_cpu, 8);
25964 }
25965 } else {
25966 if (LTDI (tmp_tmp1, MAKEDI (0xffffff80, 0))) {
25967 {
25968   {
25969     DI opval = MAKEDI (0xffffff80, 0);
25970     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25971     written |= (1 << 9);
25972     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25973   }
25974 frvbf_media_overflow (current_cpu, 8);
25975 }
25976 } else {
25977   {
25978     DI opval = tmp_tmp1;
25979     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25980     written |= (1 << 9);
25981     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25982   }
25983 }
25984 }
25985 }
25986 }
25987 }
25988
25989   abuf->written = written;
25990   return vpc;
25991 #undef FLD
25992 }
25993
25994 /* mcpxiu: mcpxiu$pack $FRinti,$FRintj,$ACC40Sk */
25995
25996 static SEM_PC
25997 SEM_FN_NAME (frvbf,mcpxiu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
25998 {
25999 #define FLD(f) abuf->fields.sfmt_cmmachs.f
26000   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26001   int UNUSED written = 0;
26002   IADDR UNUSED pc = abuf->addr;
26003   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26004
26005 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
26006 {
26007   UHI tmp_argihi;
26008   UHI tmp_argilo;
26009   UHI tmp_argjhi;
26010   UHI tmp_argjlo;
26011 {
26012   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26013   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26014   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26015   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26016 }
26017 {
26018   DI tmp_tmp1;
26019   DI tmp_tmp2;
26020   tmp_tmp1 = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjlo));
26021   tmp_tmp2 = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjhi));
26022   tmp_tmp1 = ADDDI (tmp_tmp1, tmp_tmp2);
26023 if (GTDI (tmp_tmp1, MAKEDI (255, 0xffffffff))) {
26024 {
26025   {
26026     DI opval = MAKEDI (255, 0xffffffff);
26027     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26028     written |= (1 << 9);
26029     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26030   }
26031 frvbf_media_overflow (current_cpu, 8);
26032 }
26033 } else {
26034 if (LTDI (tmp_tmp1, MAKEDI (0, 0))) {
26035 {
26036   {
26037     DI opval = MAKEDI (0, 0);
26038     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26039     written |= (1 << 9);
26040     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26041   }
26042 frvbf_media_overflow (current_cpu, 8);
26043 }
26044 } else {
26045   {
26046     DI opval = tmp_tmp1;
26047     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26048     written |= (1 << 9);
26049     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26050   }
26051 }
26052 }
26053 }
26054 }
26055 }
26056
26057   abuf->written = written;
26058   return vpc;
26059 #undef FLD
26060 }
26061
26062 /* cmcpxrs: cmcpxrs$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
26063
26064 static SEM_PC
26065 SEM_FN_NAME (frvbf,cmcpxrs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26066 {
26067 #define FLD(f) abuf->fields.sfmt_cmmachs.f
26068   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26069   int UNUSED written = 0;
26070   IADDR UNUSED pc = abuf->addr;
26071   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26072
26073 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
26074 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
26075 {
26076   HI tmp_argihi;
26077   HI tmp_argilo;
26078   HI tmp_argjhi;
26079   HI tmp_argjlo;
26080 {
26081   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26082   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26083   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26084   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26085 }
26086 {
26087   DI tmp_tmp1;
26088   DI tmp_tmp2;
26089   tmp_tmp1 = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
26090   tmp_tmp2 = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
26091   tmp_tmp1 = SUBDI (tmp_tmp1, tmp_tmp2);
26092 if (GTDI (tmp_tmp1, MAKEDI (127, 0xffffffff))) {
26093 {
26094   {
26095     DI opval = MAKEDI (127, 0xffffffff);
26096     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26097     written |= (1 << 11);
26098     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26099   }
26100 frvbf_media_overflow (current_cpu, 8);
26101 }
26102 } else {
26103 if (LTDI (tmp_tmp1, MAKEDI (0xffffff80, 0))) {
26104 {
26105   {
26106     DI opval = MAKEDI (0xffffff80, 0);
26107     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26108     written |= (1 << 11);
26109     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26110   }
26111 frvbf_media_overflow (current_cpu, 8);
26112 }
26113 } else {
26114   {
26115     DI opval = tmp_tmp1;
26116     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26117     written |= (1 << 11);
26118     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26119   }
26120 }
26121 }
26122 }
26123 }
26124 }
26125 }
26126
26127   abuf->written = written;
26128   return vpc;
26129 #undef FLD
26130 }
26131
26132 /* cmcpxru: cmcpxru$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
26133
26134 static SEM_PC
26135 SEM_FN_NAME (frvbf,cmcpxru) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26136 {
26137 #define FLD(f) abuf->fields.sfmt_cmmachs.f
26138   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26139   int UNUSED written = 0;
26140   IADDR UNUSED pc = abuf->addr;
26141   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26142
26143 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
26144 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
26145 {
26146   UHI tmp_argihi;
26147   UHI tmp_argilo;
26148   UHI tmp_argjhi;
26149   UHI tmp_argjlo;
26150 {
26151   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26152   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26153   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26154   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26155 }
26156 {
26157   DI tmp_tmp1;
26158   DI tmp_tmp2;
26159   tmp_tmp1 = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
26160   tmp_tmp2 = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
26161   tmp_tmp1 = SUBDI (tmp_tmp1, tmp_tmp2);
26162 if (GTDI (tmp_tmp1, MAKEDI (255, 0xffffffff))) {
26163 {
26164   {
26165     DI opval = MAKEDI (255, 0xffffffff);
26166     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26167     written |= (1 << 11);
26168     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26169   }
26170 frvbf_media_overflow (current_cpu, 8);
26171 }
26172 } else {
26173 if (LTDI (tmp_tmp1, MAKEDI (0, 0))) {
26174 {
26175   {
26176     DI opval = MAKEDI (0, 0);
26177     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26178     written |= (1 << 11);
26179     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26180   }
26181 frvbf_media_overflow (current_cpu, 8);
26182 }
26183 } else {
26184   {
26185     DI opval = tmp_tmp1;
26186     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26187     written |= (1 << 11);
26188     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26189   }
26190 }
26191 }
26192 }
26193 }
26194 }
26195 }
26196
26197   abuf->written = written;
26198   return vpc;
26199 #undef FLD
26200 }
26201
26202 /* cmcpxis: cmcpxis$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
26203
26204 static SEM_PC
26205 SEM_FN_NAME (frvbf,cmcpxis) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26206 {
26207 #define FLD(f) abuf->fields.sfmt_cmmachs.f
26208   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26209   int UNUSED written = 0;
26210   IADDR UNUSED pc = abuf->addr;
26211   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26212
26213 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
26214 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
26215 {
26216   HI tmp_argihi;
26217   HI tmp_argilo;
26218   HI tmp_argjhi;
26219   HI tmp_argjlo;
26220 {
26221   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26222   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26223   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26224   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26225 }
26226 {
26227   DI tmp_tmp1;
26228   DI tmp_tmp2;
26229   tmp_tmp1 = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo));
26230   tmp_tmp2 = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi));
26231   tmp_tmp1 = ADDDI (tmp_tmp1, tmp_tmp2);
26232 if (GTDI (tmp_tmp1, MAKEDI (127, 0xffffffff))) {
26233 {
26234   {
26235     DI opval = MAKEDI (127, 0xffffffff);
26236     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26237     written |= (1 << 11);
26238     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26239   }
26240 frvbf_media_overflow (current_cpu, 8);
26241 }
26242 } else {
26243 if (LTDI (tmp_tmp1, MAKEDI (0xffffff80, 0))) {
26244 {
26245   {
26246     DI opval = MAKEDI (0xffffff80, 0);
26247     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26248     written |= (1 << 11);
26249     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26250   }
26251 frvbf_media_overflow (current_cpu, 8);
26252 }
26253 } else {
26254   {
26255     DI opval = tmp_tmp1;
26256     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26257     written |= (1 << 11);
26258     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26259   }
26260 }
26261 }
26262 }
26263 }
26264 }
26265 }
26266
26267   abuf->written = written;
26268   return vpc;
26269 #undef FLD
26270 }
26271
26272 /* cmcpxiu: cmcpxiu$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
26273
26274 static SEM_PC
26275 SEM_FN_NAME (frvbf,cmcpxiu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26276 {
26277 #define FLD(f) abuf->fields.sfmt_cmmachs.f
26278   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26279   int UNUSED written = 0;
26280   IADDR UNUSED pc = abuf->addr;
26281   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26282
26283 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
26284 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
26285 {
26286   UHI tmp_argihi;
26287   UHI tmp_argilo;
26288   UHI tmp_argjhi;
26289   UHI tmp_argjlo;
26290 {
26291   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26292   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26293   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26294   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26295 }
26296 {
26297   DI tmp_tmp1;
26298   DI tmp_tmp2;
26299   tmp_tmp1 = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjlo));
26300   tmp_tmp2 = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjhi));
26301   tmp_tmp1 = ADDDI (tmp_tmp1, tmp_tmp2);
26302 if (GTDI (tmp_tmp1, MAKEDI (255, 0xffffffff))) {
26303 {
26304   {
26305     DI opval = MAKEDI (255, 0xffffffff);
26306     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26307     written |= (1 << 11);
26308     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26309   }
26310 frvbf_media_overflow (current_cpu, 8);
26311 }
26312 } else {
26313 if (LTDI (tmp_tmp1, MAKEDI (0, 0))) {
26314 {
26315   {
26316     DI opval = MAKEDI (0, 0);
26317     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26318     written |= (1 << 11);
26319     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26320   }
26321 frvbf_media_overflow (current_cpu, 8);
26322 }
26323 } else {
26324   {
26325     DI opval = tmp_tmp1;
26326     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26327     written |= (1 << 11);
26328     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26329   }
26330 }
26331 }
26332 }
26333 }
26334 }
26335 }
26336
26337   abuf->written = written;
26338   return vpc;
26339 #undef FLD
26340 }
26341
26342 /* mqcpxrs: mqcpxrs$pack $FRintieven,$FRintjeven,$ACC40Sk */
26343
26344 static SEM_PC
26345 SEM_FN_NAME (frvbf,mqcpxrs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26346 {
26347 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
26348   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26349   int UNUSED written = 0;
26350   IADDR UNUSED pc = abuf->addr;
26351   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26352
26353 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
26354 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
26355 frvbf_media_acc_not_aligned (current_cpu);
26356 } else {
26357 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
26358 frvbf_media_register_not_aligned (current_cpu);
26359 } else {
26360 {
26361   HI tmp_argihi;
26362   HI tmp_argilo;
26363   HI tmp_argjhi;
26364   HI tmp_argjlo;
26365 {
26366   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26367   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26368   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26369   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26370 }
26371 {
26372   DI tmp_tmp1;
26373   DI tmp_tmp2;
26374   tmp_tmp1 = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
26375   tmp_tmp2 = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
26376   tmp_tmp1 = SUBDI (tmp_tmp1, tmp_tmp2);
26377 if (GTDI (tmp_tmp1, MAKEDI (127, 0xffffffff))) {
26378 {
26379   {
26380     DI opval = MAKEDI (127, 0xffffffff);
26381     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26382     written |= (1 << 13);
26383     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26384   }
26385 frvbf_media_overflow (current_cpu, 8);
26386 }
26387 } else {
26388 if (LTDI (tmp_tmp1, MAKEDI (0xffffff80, 0))) {
26389 {
26390   {
26391     DI opval = MAKEDI (0xffffff80, 0);
26392     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26393     written |= (1 << 13);
26394     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26395   }
26396 frvbf_media_overflow (current_cpu, 8);
26397 }
26398 } else {
26399   {
26400     DI opval = tmp_tmp1;
26401     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26402     written |= (1 << 13);
26403     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26404   }
26405 }
26406 }
26407 }
26408 {
26409   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26410   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26411   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26412   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26413 }
26414 {
26415   DI tmp_tmp1;
26416   DI tmp_tmp2;
26417   tmp_tmp1 = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
26418   tmp_tmp2 = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
26419   tmp_tmp1 = SUBDI (tmp_tmp1, tmp_tmp2);
26420 if (GTDI (tmp_tmp1, MAKEDI (127, 0xffffffff))) {
26421 {
26422   {
26423     DI opval = MAKEDI (127, 0xffffffff);
26424     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
26425     written |= (1 << 14);
26426     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26427   }
26428 frvbf_media_overflow (current_cpu, 4);
26429 }
26430 } else {
26431 if (LTDI (tmp_tmp1, MAKEDI (0xffffff80, 0))) {
26432 {
26433   {
26434     DI opval = MAKEDI (0xffffff80, 0);
26435     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
26436     written |= (1 << 14);
26437     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26438   }
26439 frvbf_media_overflow (current_cpu, 4);
26440 }
26441 } else {
26442   {
26443     DI opval = tmp_tmp1;
26444     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
26445     written |= (1 << 14);
26446     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26447   }
26448 }
26449 }
26450 }
26451 }
26452 }
26453 }
26454 }
26455
26456   abuf->written = written;
26457   return vpc;
26458 #undef FLD
26459 }
26460
26461 /* mqcpxru: mqcpxru$pack $FRintieven,$FRintjeven,$ACC40Sk */
26462
26463 static SEM_PC
26464 SEM_FN_NAME (frvbf,mqcpxru) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26465 {
26466 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
26467   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26468   int UNUSED written = 0;
26469   IADDR UNUSED pc = abuf->addr;
26470   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26471
26472 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
26473 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
26474 frvbf_media_acc_not_aligned (current_cpu);
26475 } else {
26476 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
26477 frvbf_media_register_not_aligned (current_cpu);
26478 } else {
26479 {
26480   UHI tmp_argihi;
26481   UHI tmp_argilo;
26482   UHI tmp_argjhi;
26483   UHI tmp_argjlo;
26484 {
26485   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26486   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26487   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26488   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26489 }
26490 {
26491   DI tmp_tmp1;
26492   DI tmp_tmp2;
26493   tmp_tmp1 = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
26494   tmp_tmp2 = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
26495   tmp_tmp1 = SUBDI (tmp_tmp1, tmp_tmp2);
26496 if (GTDI (tmp_tmp1, MAKEDI (255, 0xffffffff))) {
26497 {
26498   {
26499     DI opval = MAKEDI (255, 0xffffffff);
26500     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26501     written |= (1 << 13);
26502     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26503   }
26504 frvbf_media_overflow (current_cpu, 8);
26505 }
26506 } else {
26507 if (LTDI (tmp_tmp1, MAKEDI (0, 0))) {
26508 {
26509   {
26510     DI opval = MAKEDI (0, 0);
26511     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26512     written |= (1 << 13);
26513     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26514   }
26515 frvbf_media_overflow (current_cpu, 8);
26516 }
26517 } else {
26518   {
26519     DI opval = tmp_tmp1;
26520     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26521     written |= (1 << 13);
26522     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26523   }
26524 }
26525 }
26526 }
26527 {
26528   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26529   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26530   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26531   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26532 }
26533 {
26534   DI tmp_tmp1;
26535   DI tmp_tmp2;
26536   tmp_tmp1 = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
26537   tmp_tmp2 = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
26538   tmp_tmp1 = SUBDI (tmp_tmp1, tmp_tmp2);
26539 if (GTDI (tmp_tmp1, MAKEDI (255, 0xffffffff))) {
26540 {
26541   {
26542     DI opval = MAKEDI (255, 0xffffffff);
26543     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
26544     written |= (1 << 14);
26545     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26546   }
26547 frvbf_media_overflow (current_cpu, 4);
26548 }
26549 } else {
26550 if (LTDI (tmp_tmp1, MAKEDI (0, 0))) {
26551 {
26552   {
26553     DI opval = MAKEDI (0, 0);
26554     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
26555     written |= (1 << 14);
26556     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26557   }
26558 frvbf_media_overflow (current_cpu, 4);
26559 }
26560 } else {
26561   {
26562     DI opval = tmp_tmp1;
26563     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
26564     written |= (1 << 14);
26565     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26566   }
26567 }
26568 }
26569 }
26570 }
26571 }
26572 }
26573 }
26574
26575   abuf->written = written;
26576   return vpc;
26577 #undef FLD
26578 }
26579
26580 /* mqcpxis: mqcpxis$pack $FRintieven,$FRintjeven,$ACC40Sk */
26581
26582 static SEM_PC
26583 SEM_FN_NAME (frvbf,mqcpxis) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26584 {
26585 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
26586   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26587   int UNUSED written = 0;
26588   IADDR UNUSED pc = abuf->addr;
26589   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26590
26591 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
26592 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
26593 frvbf_media_acc_not_aligned (current_cpu);
26594 } else {
26595 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
26596 frvbf_media_register_not_aligned (current_cpu);
26597 } else {
26598 {
26599   HI tmp_argihi;
26600   HI tmp_argilo;
26601   HI tmp_argjhi;
26602   HI tmp_argjlo;
26603 {
26604   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26605   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26606   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26607   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26608 }
26609 {
26610   DI tmp_tmp1;
26611   DI tmp_tmp2;
26612   tmp_tmp1 = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo));
26613   tmp_tmp2 = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi));
26614   tmp_tmp1 = ADDDI (tmp_tmp1, tmp_tmp2);
26615 if (GTDI (tmp_tmp1, MAKEDI (127, 0xffffffff))) {
26616 {
26617   {
26618     DI opval = MAKEDI (127, 0xffffffff);
26619     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26620     written |= (1 << 13);
26621     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26622   }
26623 frvbf_media_overflow (current_cpu, 8);
26624 }
26625 } else {
26626 if (LTDI (tmp_tmp1, MAKEDI (0xffffff80, 0))) {
26627 {
26628   {
26629     DI opval = MAKEDI (0xffffff80, 0);
26630     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26631     written |= (1 << 13);
26632     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26633   }
26634 frvbf_media_overflow (current_cpu, 8);
26635 }
26636 } else {
26637   {
26638     DI opval = tmp_tmp1;
26639     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26640     written |= (1 << 13);
26641     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26642   }
26643 }
26644 }
26645 }
26646 {
26647   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26648   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26649   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26650   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26651 }
26652 {
26653   DI tmp_tmp1;
26654   DI tmp_tmp2;
26655   tmp_tmp1 = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo));
26656   tmp_tmp2 = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi));
26657   tmp_tmp1 = ADDDI (tmp_tmp1, tmp_tmp2);
26658 if (GTDI (tmp_tmp1, MAKEDI (127, 0xffffffff))) {
26659 {
26660   {
26661     DI opval = MAKEDI (127, 0xffffffff);
26662     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
26663     written |= (1 << 14);
26664     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26665   }
26666 frvbf_media_overflow (current_cpu, 4);
26667 }
26668 } else {
26669 if (LTDI (tmp_tmp1, MAKEDI (0xffffff80, 0))) {
26670 {
26671   {
26672     DI opval = MAKEDI (0xffffff80, 0);
26673     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
26674     written |= (1 << 14);
26675     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26676   }
26677 frvbf_media_overflow (current_cpu, 4);
26678 }
26679 } else {
26680   {
26681     DI opval = tmp_tmp1;
26682     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
26683     written |= (1 << 14);
26684     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26685   }
26686 }
26687 }
26688 }
26689 }
26690 }
26691 }
26692 }
26693
26694   abuf->written = written;
26695   return vpc;
26696 #undef FLD
26697 }
26698
26699 /* mqcpxiu: mqcpxiu$pack $FRintieven,$FRintjeven,$ACC40Sk */
26700
26701 static SEM_PC
26702 SEM_FN_NAME (frvbf,mqcpxiu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26703 {
26704 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
26705   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26706   int UNUSED written = 0;
26707   IADDR UNUSED pc = abuf->addr;
26708   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26709
26710 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
26711 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
26712 frvbf_media_acc_not_aligned (current_cpu);
26713 } else {
26714 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
26715 frvbf_media_register_not_aligned (current_cpu);
26716 } else {
26717 {
26718   UHI tmp_argihi;
26719   UHI tmp_argilo;
26720   UHI tmp_argjhi;
26721   UHI tmp_argjlo;
26722 {
26723   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26724   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26725   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26726   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26727 }
26728 {
26729   DI tmp_tmp1;
26730   DI tmp_tmp2;
26731   tmp_tmp1 = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjlo));
26732   tmp_tmp2 = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjhi));
26733   tmp_tmp1 = ADDDI (tmp_tmp1, tmp_tmp2);
26734 if (GTDI (tmp_tmp1, MAKEDI (255, 0xffffffff))) {
26735 {
26736   {
26737     DI opval = MAKEDI (255, 0xffffffff);
26738     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26739     written |= (1 << 13);
26740     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26741   }
26742 frvbf_media_overflow (current_cpu, 8);
26743 }
26744 } else {
26745 if (LTDI (tmp_tmp1, MAKEDI (0, 0))) {
26746 {
26747   {
26748     DI opval = MAKEDI (0, 0);
26749     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26750     written |= (1 << 13);
26751     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26752   }
26753 frvbf_media_overflow (current_cpu, 8);
26754 }
26755 } else {
26756   {
26757     DI opval = tmp_tmp1;
26758     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26759     written |= (1 << 13);
26760     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26761   }
26762 }
26763 }
26764 }
26765 {
26766   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26767   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26768   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26769   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26770 }
26771 {
26772   DI tmp_tmp1;
26773   DI tmp_tmp2;
26774   tmp_tmp1 = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjlo));
26775   tmp_tmp2 = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjhi));
26776   tmp_tmp1 = ADDDI (tmp_tmp1, tmp_tmp2);
26777 if (GTDI (tmp_tmp1, MAKEDI (255, 0xffffffff))) {
26778 {
26779   {
26780     DI opval = MAKEDI (255, 0xffffffff);
26781     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
26782     written |= (1 << 14);
26783     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26784   }
26785 frvbf_media_overflow (current_cpu, 4);
26786 }
26787 } else {
26788 if (LTDI (tmp_tmp1, MAKEDI (0, 0))) {
26789 {
26790   {
26791     DI opval = MAKEDI (0, 0);
26792     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
26793     written |= (1 << 14);
26794     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26795   }
26796 frvbf_media_overflow (current_cpu, 4);
26797 }
26798 } else {
26799   {
26800     DI opval = tmp_tmp1;
26801     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
26802     written |= (1 << 14);
26803     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26804   }
26805 }
26806 }
26807 }
26808 }
26809 }
26810 }
26811 }
26812
26813   abuf->written = written;
26814   return vpc;
26815 #undef FLD
26816 }
26817
26818 /* mexpdhw: mexpdhw$pack $FRinti,$u6,$FRintk */
26819
26820 static SEM_PC
26821 SEM_FN_NAME (frvbf,mexpdhw) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26822 {
26823 #define FLD(f) abuf->fields.sfmt_cmexpdhw.f
26824   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26825   int UNUSED written = 0;
26826   IADDR UNUSED pc = abuf->addr;
26827   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26828
26829 {
26830   UHI tmp_tmp;
26831 if (ANDSI (FLD (f_u6), 1)) {
26832   tmp_tmp = GET_H_FR_LO (((FLD (f_FRi)) + (0)));
26833 } else {
26834   tmp_tmp = GET_H_FR_HI (((FLD (f_FRi)) + (0)));
26835 }
26836   {
26837     UHI opval = tmp_tmp;
26838     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
26839     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
26840   }
26841   {
26842     UHI opval = tmp_tmp;
26843     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
26844     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
26845   }
26846 }
26847
26848   return vpc;
26849 #undef FLD
26850 }
26851
26852 /* cmexpdhw: cmexpdhw$pack $FRinti,$u6,$FRintk,$CCi,$cond */
26853
26854 static SEM_PC
26855 SEM_FN_NAME (frvbf,cmexpdhw) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26856 {
26857 #define FLD(f) abuf->fields.sfmt_cmexpdhw.f
26858   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26859   int UNUSED written = 0;
26860   IADDR UNUSED pc = abuf->addr;
26861   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26862
26863 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
26864 {
26865   UHI tmp_tmp;
26866 if (ANDSI (FLD (f_u6), 1)) {
26867   tmp_tmp = GET_H_FR_LO (((FLD (f_FRi)) + (0)));
26868 } else {
26869   tmp_tmp = GET_H_FR_HI (((FLD (f_FRi)) + (0)));
26870 }
26871   {
26872     UHI opval = tmp_tmp;
26873     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
26874     written |= (1 << 7);
26875     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
26876   }
26877   {
26878     UHI opval = tmp_tmp;
26879     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
26880     written |= (1 << 8);
26881     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
26882   }
26883 }
26884 }
26885
26886   abuf->written = written;
26887   return vpc;
26888 #undef FLD
26889 }
26890
26891 /* mexpdhd: mexpdhd$pack $FRinti,$u6,$FRintkeven */
26892
26893 static SEM_PC
26894 SEM_FN_NAME (frvbf,mexpdhd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26895 {
26896 #define FLD(f) abuf->fields.sfmt_cmexpdhd.f
26897   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26898   int UNUSED written = 0;
26899   IADDR UNUSED pc = abuf->addr;
26900   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26901
26902 if (ANDSI (FLD (f_FRk), SUBSI (2, 1))) {
26903 frvbf_media_register_not_aligned (current_cpu);
26904 } else {
26905 {
26906   UHI tmp_tmp;
26907   {
26908     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
26909     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
26910     written |= (1 << 6);
26911     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
26912   }
26913 if (ANDSI (FLD (f_u6), 1)) {
26914   tmp_tmp = GET_H_FR_LO (((FLD (f_FRi)) + (0)));
26915 } else {
26916   tmp_tmp = GET_H_FR_HI (((FLD (f_FRi)) + (0)));
26917 }
26918   {
26919     UHI opval = tmp_tmp;
26920     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
26921     written |= (1 << 7);
26922     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
26923   }
26924   {
26925     UHI opval = tmp_tmp;
26926     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
26927     written |= (1 << 9);
26928     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
26929   }
26930   {
26931     UHI opval = tmp_tmp;
26932     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
26933     written |= (1 << 8);
26934     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
26935   }
26936   {
26937     UHI opval = tmp_tmp;
26938     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
26939     written |= (1 << 10);
26940     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
26941   }
26942 }
26943 }
26944
26945   abuf->written = written;
26946   return vpc;
26947 #undef FLD
26948 }
26949
26950 /* cmexpdhd: cmexpdhd$pack $FRinti,$u6,$FRintkeven,$CCi,$cond */
26951
26952 static SEM_PC
26953 SEM_FN_NAME (frvbf,cmexpdhd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26954 {
26955 #define FLD(f) abuf->fields.sfmt_cmexpdhd.f
26956   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26957   int UNUSED written = 0;
26958   IADDR UNUSED pc = abuf->addr;
26959   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26960
26961 if (ANDSI (FLD (f_FRk), SUBSI (2, 1))) {
26962 frvbf_media_register_not_aligned (current_cpu);
26963 } else {
26964 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
26965 {
26966   UHI tmp_tmp;
26967   {
26968     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
26969     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
26970     written |= (1 << 8);
26971     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
26972   }
26973 if (ANDSI (FLD (f_u6), 1)) {
26974   tmp_tmp = GET_H_FR_LO (((FLD (f_FRi)) + (0)));
26975 } else {
26976   tmp_tmp = GET_H_FR_HI (((FLD (f_FRi)) + (0)));
26977 }
26978   {
26979     UHI opval = tmp_tmp;
26980     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
26981     written |= (1 << 9);
26982     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
26983   }
26984   {
26985     UHI opval = tmp_tmp;
26986     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
26987     written |= (1 << 11);
26988     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
26989   }
26990   {
26991     UHI opval = tmp_tmp;
26992     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
26993     written |= (1 << 10);
26994     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
26995   }
26996   {
26997     UHI opval = tmp_tmp;
26998     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
26999     written |= (1 << 12);
27000     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27001   }
27002 }
27003 }
27004 }
27005
27006   abuf->written = written;
27007   return vpc;
27008 #undef FLD
27009 }
27010
27011 /* mpackh: mpackh$pack $FRinti,$FRintj,$FRintk */
27012
27013 static SEM_PC
27014 SEM_FN_NAME (frvbf,mpackh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27015 {
27016 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
27017   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27018   int UNUSED written = 0;
27019   IADDR UNUSED pc = abuf->addr;
27020   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27021
27022 {
27023   {
27024     UHI opval = GET_H_FR_LO (((FLD (f_FRi)) + (0)));
27025     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
27026     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27027   }
27028   {
27029     UHI opval = GET_H_FR_LO (((FLD (f_FRj)) + (0)));
27030     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
27031     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27032   }
27033 }
27034
27035   return vpc;
27036 #undef FLD
27037 }
27038
27039 /* mdpackh: mdpackh$pack $FRintieven,$FRintjeven,$FRintkeven */
27040
27041 static SEM_PC
27042 SEM_FN_NAME (frvbf,mdpackh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27043 {
27044 #define FLD(f) abuf->fields.sfmt_mdpackh.f
27045   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27046   int UNUSED written = 0;
27047   IADDR UNUSED pc = abuf->addr;
27048   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27049
27050 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
27051 frvbf_media_register_not_aligned (current_cpu);
27052 } else {
27053 {
27054   {
27055     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRi)));
27056     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRi), opval);
27057     written |= (1 << 10);
27058     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27059   }
27060   {
27061     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRj)));
27062     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRj), opval);
27063     written |= (1 << 11);
27064     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27065   }
27066   {
27067     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27068     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27069     written |= (1 << 12);
27070     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27071   }
27072 {
27073   {
27074     UHI opval = GET_H_FR_LO (((FLD (f_FRi)) + (0)));
27075     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
27076     written |= (1 << 13);
27077     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27078   }
27079   {
27080     UHI opval = GET_H_FR_LO (((FLD (f_FRj)) + (0)));
27081     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
27082     written |= (1 << 15);
27083     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27084   }
27085 }
27086 {
27087   {
27088     UHI opval = GET_H_FR_LO (((FLD (f_FRi)) + (1)));
27089     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
27090     written |= (1 << 14);
27091     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27092   }
27093   {
27094     UHI opval = GET_H_FR_LO (((FLD (f_FRj)) + (1)));
27095     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
27096     written |= (1 << 16);
27097     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27098   }
27099 }
27100 }
27101 }
27102
27103   abuf->written = written;
27104   return vpc;
27105 #undef FLD
27106 }
27107
27108 /* munpackh: munpackh$pack $FRinti,$FRintkeven */
27109
27110 static SEM_PC
27111 SEM_FN_NAME (frvbf,munpackh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27112 {
27113 #define FLD(f) abuf->fields.sfmt_munpackh.f
27114   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27115   int UNUSED written = 0;
27116   IADDR UNUSED pc = abuf->addr;
27117   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27118
27119 if (ANDSI (FLD (f_FRk), SUBSI (2, 1))) {
27120 frvbf_media_register_not_aligned (current_cpu);
27121 } else {
27122 {
27123   {
27124     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRi)));
27125     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRi), opval);
27126     written |= (1 << 6);
27127     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27128   }
27129   {
27130     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27131     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27132     written |= (1 << 7);
27133     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27134   }
27135 {
27136   {
27137     UHI opval = GET_H_FR_HI (((FLD (f_FRi)) + (0)));
27138     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
27139     written |= (1 << 8);
27140     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27141   }
27142   {
27143     UHI opval = GET_H_FR_HI (((FLD (f_FRi)) + (0)));
27144     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
27145     written |= (1 << 10);
27146     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27147   }
27148   {
27149     UHI opval = GET_H_FR_LO (((FLD (f_FRi)) + (0)));
27150     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (ADDSI (0, 1))), opval);
27151     written |= (1 << 9);
27152     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27153   }
27154   {
27155     UHI opval = GET_H_FR_LO (((FLD (f_FRi)) + (0)));
27156     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (ADDSI (0, 1))), opval);
27157     written |= (1 << 11);
27158     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27159   }
27160 }
27161 }
27162 }
27163
27164   abuf->written = written;
27165   return vpc;
27166 #undef FLD
27167 }
27168
27169 /* mdunpackh: mdunpackh$pack $FRintieven,$FRintk */
27170
27171 static SEM_PC
27172 SEM_FN_NAME (frvbf,mdunpackh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27173 {
27174 #define FLD(f) abuf->fields.sfmt_mdunpackh.f
27175   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27176   int UNUSED written = 0;
27177   IADDR UNUSED pc = abuf->addr;
27178   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27179
27180 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (4, 1)))) {
27181 frvbf_media_register_not_aligned (current_cpu);
27182 } else {
27183 {
27184   {
27185     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRi)));
27186     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRi), opval);
27187     written |= (1 << 8);
27188     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27189   }
27190   {
27191     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27192     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27193     written |= (1 << 9);
27194     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27195   }
27196 {
27197   {
27198     UHI opval = GET_H_FR_HI (((FLD (f_FRi)) + (0)));
27199     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
27200     written |= (1 << 10);
27201     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27202   }
27203   {
27204     UHI opval = GET_H_FR_HI (((FLD (f_FRi)) + (0)));
27205     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
27206     written |= (1 << 14);
27207     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27208   }
27209   {
27210     UHI opval = GET_H_FR_LO (((FLD (f_FRi)) + (0)));
27211     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (ADDSI (0, 1))), opval);
27212     written |= (1 << 12);
27213     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27214   }
27215   {
27216     UHI opval = GET_H_FR_LO (((FLD (f_FRi)) + (0)));
27217     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (ADDSI (0, 1))), opval);
27218     written |= (1 << 16);
27219     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27220   }
27221 }
27222 {
27223   {
27224     UHI opval = GET_H_FR_HI (((FLD (f_FRi)) + (1)));
27225     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (2)), opval);
27226     written |= (1 << 11);
27227     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27228   }
27229   {
27230     UHI opval = GET_H_FR_HI (((FLD (f_FRi)) + (1)));
27231     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (2)), opval);
27232     written |= (1 << 15);
27233     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27234   }
27235   {
27236     UHI opval = GET_H_FR_LO (((FLD (f_FRi)) + (1)));
27237     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (ADDSI (2, 1))), opval);
27238     written |= (1 << 13);
27239     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27240   }
27241   {
27242     UHI opval = GET_H_FR_LO (((FLD (f_FRi)) + (1)));
27243     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (ADDSI (2, 1))), opval);
27244     written |= (1 << 17);
27245     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27246   }
27247 }
27248 }
27249 }
27250
27251   abuf->written = written;
27252   return vpc;
27253 #undef FLD
27254 }
27255
27256 /* mbtoh: mbtoh$pack $FRintj,$FRintkeven */
27257
27258 static SEM_PC
27259 SEM_FN_NAME (frvbf,mbtoh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27260 {
27261 #define FLD(f) abuf->fields.sfmt_cmbtoh.f
27262   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27263   int UNUSED written = 0;
27264   IADDR UNUSED pc = abuf->addr;
27265   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27266
27267 {
27268   {
27269     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRj)));
27270     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRj), opval);
27271     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27272   }
27273   {
27274     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27275     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27276     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27277   }
27278 if (ANDSI (FLD (f_FRk), SUBSI (2, 1))) {
27279 frvbf_media_register_not_aligned (current_cpu);
27280 } else {
27281 {
27282   {
27283     UHI opval = GET_H_FR_3 (((FLD (f_FRj)) + (0)));
27284     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
27285     written |= (1 << 10);
27286     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27287   }
27288   {
27289     UHI opval = GET_H_FR_2 (((FLD (f_FRj)) + (0)));
27290     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
27291     written |= (1 << 12);
27292     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27293   }
27294   {
27295     UHI opval = GET_H_FR_1 (((FLD (f_FRj)) + (0)));
27296     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
27297     written |= (1 << 11);
27298     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27299   }
27300   {
27301     UHI opval = GET_H_FR_0 (((FLD (f_FRj)) + (0)));
27302     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
27303     written |= (1 << 13);
27304     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27305   }
27306 }
27307 }
27308 }
27309
27310   abuf->written = written;
27311   return vpc;
27312 #undef FLD
27313 }
27314
27315 /* cmbtoh: cmbtoh$pack $FRintj,$FRintkeven,$CCi,$cond */
27316
27317 static SEM_PC
27318 SEM_FN_NAME (frvbf,cmbtoh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27319 {
27320 #define FLD(f) abuf->fields.sfmt_cmbtoh.f
27321   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27322   int UNUSED written = 0;
27323   IADDR UNUSED pc = abuf->addr;
27324   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27325
27326 {
27327   {
27328     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRj)));
27329     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRj), opval);
27330     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27331   }
27332   {
27333     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27334     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27335     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27336   }
27337 if (ANDSI (FLD (f_FRk), SUBSI (2, 1))) {
27338 frvbf_media_register_not_aligned (current_cpu);
27339 } else {
27340 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
27341 {
27342   {
27343     UHI opval = GET_H_FR_3 (((FLD (f_FRj)) + (0)));
27344     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
27345     written |= (1 << 12);
27346     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27347   }
27348   {
27349     UHI opval = GET_H_FR_2 (((FLD (f_FRj)) + (0)));
27350     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
27351     written |= (1 << 14);
27352     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27353   }
27354   {
27355     UHI opval = GET_H_FR_1 (((FLD (f_FRj)) + (0)));
27356     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
27357     written |= (1 << 13);
27358     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27359   }
27360   {
27361     UHI opval = GET_H_FR_0 (((FLD (f_FRj)) + (0)));
27362     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
27363     written |= (1 << 15);
27364     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27365   }
27366 }
27367 }
27368 }
27369 }
27370
27371   abuf->written = written;
27372   return vpc;
27373 #undef FLD
27374 }
27375
27376 /* mhtob: mhtob$pack $FRintjeven,$FRintk */
27377
27378 static SEM_PC
27379 SEM_FN_NAME (frvbf,mhtob) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27380 {
27381 #define FLD(f) abuf->fields.sfmt_cmhtob.f
27382   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27383   int UNUSED written = 0;
27384   IADDR UNUSED pc = abuf->addr;
27385   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27386
27387 {
27388   {
27389     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRj)));
27390     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRj), opval);
27391     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27392   }
27393   {
27394     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27395     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27396     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27397   }
27398 if (ANDSI (FLD (f_FRj), SUBSI (2, 1))) {
27399 frvbf_media_register_not_aligned (current_cpu);
27400 } else {
27401 {
27402   {
27403     UHI opval = GET_H_FR_HI (((FLD (f_FRj)) + (0)));
27404     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_3_set, ((FLD (f_FRk)) + (0)), opval);
27405     written |= (1 << 13);
27406     TRACE_RESULT (current_cpu, abuf, "fr_3", 'x', opval);
27407   }
27408   {
27409     UHI opval = GET_H_FR_LO (((FLD (f_FRj)) + (0)));
27410     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_2_set, ((FLD (f_FRk)) + (0)), opval);
27411     written |= (1 << 12);
27412     TRACE_RESULT (current_cpu, abuf, "fr_2", 'x', opval);
27413   }
27414   {
27415     UHI opval = GET_H_FR_HI (((FLD (f_FRj)) + (1)));
27416     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_1_set, ((FLD (f_FRk)) + (0)), opval);
27417     written |= (1 << 11);
27418     TRACE_RESULT (current_cpu, abuf, "fr_1", 'x', opval);
27419   }
27420   {
27421     UHI opval = GET_H_FR_LO (((FLD (f_FRj)) + (1)));
27422     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_0_set, ((FLD (f_FRk)) + (0)), opval);
27423     written |= (1 << 10);
27424     TRACE_RESULT (current_cpu, abuf, "fr_0", 'x', opval);
27425   }
27426 }
27427 }
27428 }
27429
27430   abuf->written = written;
27431   return vpc;
27432 #undef FLD
27433 }
27434
27435 /* cmhtob: cmhtob$pack $FRintjeven,$FRintk,$CCi,$cond */
27436
27437 static SEM_PC
27438 SEM_FN_NAME (frvbf,cmhtob) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27439 {
27440 #define FLD(f) abuf->fields.sfmt_cmhtob.f
27441   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27442   int UNUSED written = 0;
27443   IADDR UNUSED pc = abuf->addr;
27444   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27445
27446 {
27447   {
27448     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRj)));
27449     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRj), opval);
27450     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27451   }
27452   {
27453     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27454     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27455     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27456   }
27457 if (ANDSI (FLD (f_FRj), SUBSI (2, 1))) {
27458 frvbf_media_register_not_aligned (current_cpu);
27459 } else {
27460 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
27461 {
27462   {
27463     UHI opval = GET_H_FR_HI (((FLD (f_FRj)) + (0)));
27464     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_3_set, ((FLD (f_FRk)) + (0)), opval);
27465     written |= (1 << 15);
27466     TRACE_RESULT (current_cpu, abuf, "fr_3", 'x', opval);
27467   }
27468   {
27469     UHI opval = GET_H_FR_LO (((FLD (f_FRj)) + (0)));
27470     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_2_set, ((FLD (f_FRk)) + (0)), opval);
27471     written |= (1 << 14);
27472     TRACE_RESULT (current_cpu, abuf, "fr_2", 'x', opval);
27473   }
27474   {
27475     UHI opval = GET_H_FR_HI (((FLD (f_FRj)) + (1)));
27476     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_1_set, ((FLD (f_FRk)) + (0)), opval);
27477     written |= (1 << 13);
27478     TRACE_RESULT (current_cpu, abuf, "fr_1", 'x', opval);
27479   }
27480   {
27481     UHI opval = GET_H_FR_LO (((FLD (f_FRj)) + (1)));
27482     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_0_set, ((FLD (f_FRk)) + (0)), opval);
27483     written |= (1 << 12);
27484     TRACE_RESULT (current_cpu, abuf, "fr_0", 'x', opval);
27485   }
27486 }
27487 }
27488 }
27489 }
27490
27491   abuf->written = written;
27492   return vpc;
27493 #undef FLD
27494 }
27495
27496 /* mbtohe: mbtohe$pack $FRintj,$FRintk */
27497
27498 static SEM_PC
27499 SEM_FN_NAME (frvbf,mbtohe) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27500 {
27501 #define FLD(f) abuf->fields.sfmt_cmbtohe.f
27502   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27503   int UNUSED written = 0;
27504   IADDR UNUSED pc = abuf->addr;
27505   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27506
27507 {
27508   {
27509     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRj)));
27510     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRj), opval);
27511     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27512   }
27513   {
27514     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27515     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27516     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27517   }
27518 if (ANDSI (FLD (f_FRk), SUBSI (4, 1))) {
27519 frvbf_media_register_not_aligned (current_cpu);
27520 } else {
27521 {
27522   {
27523     UHI opval = GET_H_FR_3 (((FLD (f_FRj)) + (0)));
27524     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
27525     written |= (1 << 10);
27526     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27527   }
27528   {
27529     UHI opval = GET_H_FR_3 (((FLD (f_FRj)) + (0)));
27530     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
27531     written |= (1 << 14);
27532     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27533   }
27534   {
27535     UHI opval = GET_H_FR_2 (((FLD (f_FRj)) + (0)));
27536     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
27537     written |= (1 << 11);
27538     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27539   }
27540   {
27541     UHI opval = GET_H_FR_2 (((FLD (f_FRj)) + (0)));
27542     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
27543     written |= (1 << 15);
27544     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27545   }
27546   {
27547     UHI opval = GET_H_FR_1 (((FLD (f_FRj)) + (0)));
27548     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (2)), opval);
27549     written |= (1 << 12);
27550     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27551   }
27552   {
27553     UHI opval = GET_H_FR_1 (((FLD (f_FRj)) + (0)));
27554     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (2)), opval);
27555     written |= (1 << 16);
27556     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27557   }
27558   {
27559     UHI opval = GET_H_FR_0 (((FLD (f_FRj)) + (0)));
27560     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (3)), opval);
27561     written |= (1 << 13);
27562     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27563   }
27564   {
27565     UHI opval = GET_H_FR_0 (((FLD (f_FRj)) + (0)));
27566     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (3)), opval);
27567     written |= (1 << 17);
27568     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27569   }
27570 }
27571 }
27572 }
27573
27574   abuf->written = written;
27575   return vpc;
27576 #undef FLD
27577 }
27578
27579 /* cmbtohe: cmbtohe$pack $FRintj,$FRintk,$CCi,$cond */
27580
27581 static SEM_PC
27582 SEM_FN_NAME (frvbf,cmbtohe) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27583 {
27584 #define FLD(f) abuf->fields.sfmt_cmbtohe.f
27585   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27586   int UNUSED written = 0;
27587   IADDR UNUSED pc = abuf->addr;
27588   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27589
27590 {
27591   {
27592     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRj)));
27593     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRj), opval);
27594     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27595   }
27596   {
27597     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27598     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27599     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27600   }
27601 if (ANDSI (FLD (f_FRk), SUBSI (4, 1))) {
27602 frvbf_media_register_not_aligned (current_cpu);
27603 } else {
27604 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
27605 {
27606   {
27607     UHI opval = GET_H_FR_3 (((FLD (f_FRj)) + (0)));
27608     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
27609     written |= (1 << 12);
27610     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27611   }
27612   {
27613     UHI opval = GET_H_FR_3 (((FLD (f_FRj)) + (0)));
27614     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
27615     written |= (1 << 16);
27616     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27617   }
27618   {
27619     UHI opval = GET_H_FR_2 (((FLD (f_FRj)) + (0)));
27620     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
27621     written |= (1 << 13);
27622     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27623   }
27624   {
27625     UHI opval = GET_H_FR_2 (((FLD (f_FRj)) + (0)));
27626     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
27627     written |= (1 << 17);
27628     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27629   }
27630   {
27631     UHI opval = GET_H_FR_1 (((FLD (f_FRj)) + (0)));
27632     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (2)), opval);
27633     written |= (1 << 14);
27634     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27635   }
27636   {
27637     UHI opval = GET_H_FR_1 (((FLD (f_FRj)) + (0)));
27638     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (2)), opval);
27639     written |= (1 << 18);
27640     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27641   }
27642   {
27643     UHI opval = GET_H_FR_0 (((FLD (f_FRj)) + (0)));
27644     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (3)), opval);
27645     written |= (1 << 15);
27646     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27647   }
27648   {
27649     UHI opval = GET_H_FR_0 (((FLD (f_FRj)) + (0)));
27650     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (3)), opval);
27651     written |= (1 << 19);
27652     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27653   }
27654 }
27655 }
27656 }
27657 }
27658
27659   abuf->written = written;
27660   return vpc;
27661 #undef FLD
27662 }
27663
27664 /* mnop: mnop$pack */
27665
27666 static SEM_PC
27667 SEM_FN_NAME (frvbf,mnop) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27668 {
27669 #define FLD(f) abuf->fields.fmt_empty.f
27670   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27671   int UNUSED written = 0;
27672   IADDR UNUSED pc = abuf->addr;
27673   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27674
27675 ((void) 0); /*nop*/
27676
27677   return vpc;
27678 #undef FLD
27679 }
27680
27681 /* mclracc-0: mclracc$pack $ACC40Sk,$A0 */
27682
27683 static SEM_PC
27684 SEM_FN_NAME (frvbf,mclracc_0) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27685 {
27686 #define FLD(f) abuf->fields.sfmt_mdasaccs.f
27687   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27688   int UNUSED written = 0;
27689   IADDR UNUSED pc = abuf->addr;
27690   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27691
27692 frvbf_clear_accumulators (current_cpu, FLD (f_ACC40Sk), 0);
27693
27694   return vpc;
27695 #undef FLD
27696 }
27697
27698 /* mclracc-1: mclracc$pack $ACC40Sk,$A1 */
27699
27700 static SEM_PC
27701 SEM_FN_NAME (frvbf,mclracc_1) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27702 {
27703 #define FLD(f) abuf->fields.sfmt_mdasaccs.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 frvbf_clear_accumulators (current_cpu, FLD (f_ACC40Sk), 1);
27710
27711   return vpc;
27712 #undef FLD
27713 }
27714
27715 /* mrdacc: mrdacc$pack $ACC40Si,$FRintk */
27716
27717 static SEM_PC
27718 SEM_FN_NAME (frvbf,mrdacc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27719 {
27720 #define FLD(f) abuf->fields.sfmt_mcuti.f
27721   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27722   int UNUSED written = 0;
27723   IADDR UNUSED pc = abuf->addr;
27724   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27725
27726   {
27727     SI opval = GET_H_ACC40S (FLD (f_ACC40Si));
27728     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27729     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27730   }
27731
27732   return vpc;
27733 #undef FLD
27734 }
27735
27736 /* mrdaccg: mrdaccg$pack $ACCGi,$FRintk */
27737
27738 static SEM_PC
27739 SEM_FN_NAME (frvbf,mrdaccg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27740 {
27741 #define FLD(f) abuf->fields.sfmt_mrdaccg.f
27742   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27743   int UNUSED written = 0;
27744   IADDR UNUSED pc = abuf->addr;
27745   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27746
27747   {
27748     SI opval = GET_H_ACCG (FLD (f_ACCGi));
27749     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27750     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27751   }
27752
27753   return vpc;
27754 #undef FLD
27755 }
27756
27757 /* mwtacc: mwtacc$pack $FRinti,$ACC40Sk */
27758
27759 static SEM_PC
27760 SEM_FN_NAME (frvbf,mwtacc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27761 {
27762 #define FLD(f) abuf->fields.sfmt_cmmachs.f
27763   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27764   int UNUSED written = 0;
27765   IADDR UNUSED pc = abuf->addr;
27766   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27767
27768   {
27769     DI opval = ORDI (ANDDI (GET_H_ACC40S (FLD (f_ACC40Sk)), MAKEDI (0xffffffff, 0)), GET_H_FR_INT (FLD (f_FRi)));
27770     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
27771     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
27772   }
27773
27774   return vpc;
27775 #undef FLD
27776 }
27777
27778 /* mwtaccg: mwtaccg$pack $FRinti,$ACCGk */
27779
27780 static SEM_PC
27781 SEM_FN_NAME (frvbf,mwtaccg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27782 {
27783 #define FLD(f) abuf->fields.sfmt_mwtaccg.f
27784   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27785   int UNUSED written = 0;
27786   IADDR UNUSED pc = abuf->addr;
27787   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27788
27789 {
27790 frv_ref_SI (GET_H_ACCG (FLD (f_ACCGk)));
27791   {
27792     USI opval = GET_H_FR_INT (FLD (f_FRi));
27793     sim_queue_fn_si_write (current_cpu, frvbf_h_accg_set, FLD (f_ACCGk), opval);
27794     TRACE_RESULT (current_cpu, abuf, "accg", 'x', opval);
27795   }
27796 }
27797
27798   return vpc;
27799 #undef FLD
27800 }
27801
27802 /* mcop1: mcop1$pack $FRi,$FRj,$FRk */
27803
27804 static SEM_PC
27805 SEM_FN_NAME (frvbf,mcop1) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27806 {
27807 #define FLD(f) abuf->fields.fmt_empty.f
27808   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27809   int UNUSED written = 0;
27810   IADDR UNUSED pc = abuf->addr;
27811   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27812
27813 frvbf_media_cop (current_cpu, 1);
27814
27815   return vpc;
27816 #undef FLD
27817 }
27818
27819 /* mcop2: mcop2$pack $FRi,$FRj,$FRk */
27820
27821 static SEM_PC
27822 SEM_FN_NAME (frvbf,mcop2) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27823 {
27824 #define FLD(f) abuf->fields.fmt_empty.f
27825   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27826   int UNUSED written = 0;
27827   IADDR UNUSED pc = abuf->addr;
27828   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27829
27830 frvbf_media_cop (current_cpu, 2);
27831
27832   return vpc;
27833 #undef FLD
27834 }
27835
27836 /* fnop: fnop$pack */
27837
27838 static SEM_PC
27839 SEM_FN_NAME (frvbf,fnop) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27840 {
27841 #define FLD(f) abuf->fields.fmt_empty.f
27842   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27843   int UNUSED written = 0;
27844   IADDR UNUSED pc = abuf->addr;
27845   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27846
27847 ((void) 0); /*nop*/
27848
27849   return vpc;
27850 #undef FLD
27851 }
27852
27853 /* Table of all semantic fns.  */
27854
27855 static const struct sem_fn_desc sem_fns[] = {
27856   { FRVBF_INSN_X_INVALID, SEM_FN_NAME (frvbf,x_invalid) },
27857   { FRVBF_INSN_X_AFTER, SEM_FN_NAME (frvbf,x_after) },
27858   { FRVBF_INSN_X_BEFORE, SEM_FN_NAME (frvbf,x_before) },
27859   { FRVBF_INSN_X_CTI_CHAIN, SEM_FN_NAME (frvbf,x_cti_chain) },
27860   { FRVBF_INSN_X_CHAIN, SEM_FN_NAME (frvbf,x_chain) },
27861   { FRVBF_INSN_X_BEGIN, SEM_FN_NAME (frvbf,x_begin) },
27862   { FRVBF_INSN_ADD, SEM_FN_NAME (frvbf,add) },
27863   { FRVBF_INSN_SUB, SEM_FN_NAME (frvbf,sub) },
27864   { FRVBF_INSN_AND, SEM_FN_NAME (frvbf,and) },
27865   { FRVBF_INSN_OR, SEM_FN_NAME (frvbf,or) },
27866   { FRVBF_INSN_XOR, SEM_FN_NAME (frvbf,xor) },
27867   { FRVBF_INSN_NOT, SEM_FN_NAME (frvbf,not) },
27868   { FRVBF_INSN_SDIV, SEM_FN_NAME (frvbf,sdiv) },
27869   { FRVBF_INSN_NSDIV, SEM_FN_NAME (frvbf,nsdiv) },
27870   { FRVBF_INSN_UDIV, SEM_FN_NAME (frvbf,udiv) },
27871   { FRVBF_INSN_NUDIV, SEM_FN_NAME (frvbf,nudiv) },
27872   { FRVBF_INSN_SMUL, SEM_FN_NAME (frvbf,smul) },
27873   { FRVBF_INSN_UMUL, SEM_FN_NAME (frvbf,umul) },
27874   { FRVBF_INSN_SMU, SEM_FN_NAME (frvbf,smu) },
27875   { FRVBF_INSN_SMASS, SEM_FN_NAME (frvbf,smass) },
27876   { FRVBF_INSN_SMSSS, SEM_FN_NAME (frvbf,smsss) },
27877   { FRVBF_INSN_SLL, SEM_FN_NAME (frvbf,sll) },
27878   { FRVBF_INSN_SRL, SEM_FN_NAME (frvbf,srl) },
27879   { FRVBF_INSN_SRA, SEM_FN_NAME (frvbf,sra) },
27880   { FRVBF_INSN_SLASS, SEM_FN_NAME (frvbf,slass) },
27881   { FRVBF_INSN_SCUTSS, SEM_FN_NAME (frvbf,scutss) },
27882   { FRVBF_INSN_SCAN, SEM_FN_NAME (frvbf,scan) },
27883   { FRVBF_INSN_CADD, SEM_FN_NAME (frvbf,cadd) },
27884   { FRVBF_INSN_CSUB, SEM_FN_NAME (frvbf,csub) },
27885   { FRVBF_INSN_CAND, SEM_FN_NAME (frvbf,cand) },
27886   { FRVBF_INSN_COR, SEM_FN_NAME (frvbf,cor) },
27887   { FRVBF_INSN_CXOR, SEM_FN_NAME (frvbf,cxor) },
27888   { FRVBF_INSN_CNOT, SEM_FN_NAME (frvbf,cnot) },
27889   { FRVBF_INSN_CSMUL, SEM_FN_NAME (frvbf,csmul) },
27890   { FRVBF_INSN_CSDIV, SEM_FN_NAME (frvbf,csdiv) },
27891   { FRVBF_INSN_CUDIV, SEM_FN_NAME (frvbf,cudiv) },
27892   { FRVBF_INSN_CSLL, SEM_FN_NAME (frvbf,csll) },
27893   { FRVBF_INSN_CSRL, SEM_FN_NAME (frvbf,csrl) },
27894   { FRVBF_INSN_CSRA, SEM_FN_NAME (frvbf,csra) },
27895   { FRVBF_INSN_CSCAN, SEM_FN_NAME (frvbf,cscan) },
27896   { FRVBF_INSN_ADDCC, SEM_FN_NAME (frvbf,addcc) },
27897   { FRVBF_INSN_SUBCC, SEM_FN_NAME (frvbf,subcc) },
27898   { FRVBF_INSN_ANDCC, SEM_FN_NAME (frvbf,andcc) },
27899   { FRVBF_INSN_ORCC, SEM_FN_NAME (frvbf,orcc) },
27900   { FRVBF_INSN_XORCC, SEM_FN_NAME (frvbf,xorcc) },
27901   { FRVBF_INSN_SLLCC, SEM_FN_NAME (frvbf,sllcc) },
27902   { FRVBF_INSN_SRLCC, SEM_FN_NAME (frvbf,srlcc) },
27903   { FRVBF_INSN_SRACC, SEM_FN_NAME (frvbf,sracc) },
27904   { FRVBF_INSN_SMULCC, SEM_FN_NAME (frvbf,smulcc) },
27905   { FRVBF_INSN_UMULCC, SEM_FN_NAME (frvbf,umulcc) },
27906   { FRVBF_INSN_CADDCC, SEM_FN_NAME (frvbf,caddcc) },
27907   { FRVBF_INSN_CSUBCC, SEM_FN_NAME (frvbf,csubcc) },
27908   { FRVBF_INSN_CSMULCC, SEM_FN_NAME (frvbf,csmulcc) },
27909   { FRVBF_INSN_CANDCC, SEM_FN_NAME (frvbf,candcc) },
27910   { FRVBF_INSN_CORCC, SEM_FN_NAME (frvbf,corcc) },
27911   { FRVBF_INSN_CXORCC, SEM_FN_NAME (frvbf,cxorcc) },
27912   { FRVBF_INSN_CSLLCC, SEM_FN_NAME (frvbf,csllcc) },
27913   { FRVBF_INSN_CSRLCC, SEM_FN_NAME (frvbf,csrlcc) },
27914   { FRVBF_INSN_CSRACC, SEM_FN_NAME (frvbf,csracc) },
27915   { FRVBF_INSN_ADDX, SEM_FN_NAME (frvbf,addx) },
27916   { FRVBF_INSN_SUBX, SEM_FN_NAME (frvbf,subx) },
27917   { FRVBF_INSN_ADDXCC, SEM_FN_NAME (frvbf,addxcc) },
27918   { FRVBF_INSN_SUBXCC, SEM_FN_NAME (frvbf,subxcc) },
27919   { FRVBF_INSN_ADDSS, SEM_FN_NAME (frvbf,addss) },
27920   { FRVBF_INSN_SUBSS, SEM_FN_NAME (frvbf,subss) },
27921   { FRVBF_INSN_ADDI, SEM_FN_NAME (frvbf,addi) },
27922   { FRVBF_INSN_SUBI, SEM_FN_NAME (frvbf,subi) },
27923   { FRVBF_INSN_ANDI, SEM_FN_NAME (frvbf,andi) },
27924   { FRVBF_INSN_ORI, SEM_FN_NAME (frvbf,ori) },
27925   { FRVBF_INSN_XORI, SEM_FN_NAME (frvbf,xori) },
27926   { FRVBF_INSN_SDIVI, SEM_FN_NAME (frvbf,sdivi) },
27927   { FRVBF_INSN_NSDIVI, SEM_FN_NAME (frvbf,nsdivi) },
27928   { FRVBF_INSN_UDIVI, SEM_FN_NAME (frvbf,udivi) },
27929   { FRVBF_INSN_NUDIVI, SEM_FN_NAME (frvbf,nudivi) },
27930   { FRVBF_INSN_SMULI, SEM_FN_NAME (frvbf,smuli) },
27931   { FRVBF_INSN_UMULI, SEM_FN_NAME (frvbf,umuli) },
27932   { FRVBF_INSN_SLLI, SEM_FN_NAME (frvbf,slli) },
27933   { FRVBF_INSN_SRLI, SEM_FN_NAME (frvbf,srli) },
27934   { FRVBF_INSN_SRAI, SEM_FN_NAME (frvbf,srai) },
27935   { FRVBF_INSN_SCANI, SEM_FN_NAME (frvbf,scani) },
27936   { FRVBF_INSN_ADDICC, SEM_FN_NAME (frvbf,addicc) },
27937   { FRVBF_INSN_SUBICC, SEM_FN_NAME (frvbf,subicc) },
27938   { FRVBF_INSN_ANDICC, SEM_FN_NAME (frvbf,andicc) },
27939   { FRVBF_INSN_ORICC, SEM_FN_NAME (frvbf,oricc) },
27940   { FRVBF_INSN_XORICC, SEM_FN_NAME (frvbf,xoricc) },
27941   { FRVBF_INSN_SMULICC, SEM_FN_NAME (frvbf,smulicc) },
27942   { FRVBF_INSN_UMULICC, SEM_FN_NAME (frvbf,umulicc) },
27943   { FRVBF_INSN_SLLICC, SEM_FN_NAME (frvbf,sllicc) },
27944   { FRVBF_INSN_SRLICC, SEM_FN_NAME (frvbf,srlicc) },
27945   { FRVBF_INSN_SRAICC, SEM_FN_NAME (frvbf,sraicc) },
27946   { FRVBF_INSN_ADDXI, SEM_FN_NAME (frvbf,addxi) },
27947   { FRVBF_INSN_SUBXI, SEM_FN_NAME (frvbf,subxi) },
27948   { FRVBF_INSN_ADDXICC, SEM_FN_NAME (frvbf,addxicc) },
27949   { FRVBF_INSN_SUBXICC, SEM_FN_NAME (frvbf,subxicc) },
27950   { FRVBF_INSN_CMPB, SEM_FN_NAME (frvbf,cmpb) },
27951   { FRVBF_INSN_CMPBA, SEM_FN_NAME (frvbf,cmpba) },
27952   { FRVBF_INSN_SETLO, SEM_FN_NAME (frvbf,setlo) },
27953   { FRVBF_INSN_SETHI, SEM_FN_NAME (frvbf,sethi) },
27954   { FRVBF_INSN_SETLOS, SEM_FN_NAME (frvbf,setlos) },
27955   { FRVBF_INSN_LDSB, SEM_FN_NAME (frvbf,ldsb) },
27956   { FRVBF_INSN_LDUB, SEM_FN_NAME (frvbf,ldub) },
27957   { FRVBF_INSN_LDSH, SEM_FN_NAME (frvbf,ldsh) },
27958   { FRVBF_INSN_LDUH, SEM_FN_NAME (frvbf,lduh) },
27959   { FRVBF_INSN_LD, SEM_FN_NAME (frvbf,ld) },
27960   { FRVBF_INSN_LDBF, SEM_FN_NAME (frvbf,ldbf) },
27961   { FRVBF_INSN_LDHF, SEM_FN_NAME (frvbf,ldhf) },
27962   { FRVBF_INSN_LDF, SEM_FN_NAME (frvbf,ldf) },
27963   { FRVBF_INSN_LDC, SEM_FN_NAME (frvbf,ldc) },
27964   { FRVBF_INSN_NLDSB, SEM_FN_NAME (frvbf,nldsb) },
27965   { FRVBF_INSN_NLDUB, SEM_FN_NAME (frvbf,nldub) },
27966   { FRVBF_INSN_NLDSH, SEM_FN_NAME (frvbf,nldsh) },
27967   { FRVBF_INSN_NLDUH, SEM_FN_NAME (frvbf,nlduh) },
27968   { FRVBF_INSN_NLD, SEM_FN_NAME (frvbf,nld) },
27969   { FRVBF_INSN_NLDBF, SEM_FN_NAME (frvbf,nldbf) },
27970   { FRVBF_INSN_NLDHF, SEM_FN_NAME (frvbf,nldhf) },
27971   { FRVBF_INSN_NLDF, SEM_FN_NAME (frvbf,nldf) },
27972   { FRVBF_INSN_LDD, SEM_FN_NAME (frvbf,ldd) },
27973   { FRVBF_INSN_LDDF, SEM_FN_NAME (frvbf,lddf) },
27974   { FRVBF_INSN_LDDC, SEM_FN_NAME (frvbf,lddc) },
27975   { FRVBF_INSN_NLDD, SEM_FN_NAME (frvbf,nldd) },
27976   { FRVBF_INSN_NLDDF, SEM_FN_NAME (frvbf,nlddf) },
27977   { FRVBF_INSN_LDQ, SEM_FN_NAME (frvbf,ldq) },
27978   { FRVBF_INSN_LDQF, SEM_FN_NAME (frvbf,ldqf) },
27979   { FRVBF_INSN_LDQC, SEM_FN_NAME (frvbf,ldqc) },
27980   { FRVBF_INSN_NLDQ, SEM_FN_NAME (frvbf,nldq) },
27981   { FRVBF_INSN_NLDQF, SEM_FN_NAME (frvbf,nldqf) },
27982   { FRVBF_INSN_LDSBU, SEM_FN_NAME (frvbf,ldsbu) },
27983   { FRVBF_INSN_LDUBU, SEM_FN_NAME (frvbf,ldubu) },
27984   { FRVBF_INSN_LDSHU, SEM_FN_NAME (frvbf,ldshu) },
27985   { FRVBF_INSN_LDUHU, SEM_FN_NAME (frvbf,lduhu) },
27986   { FRVBF_INSN_LDU, SEM_FN_NAME (frvbf,ldu) },
27987   { FRVBF_INSN_NLDSBU, SEM_FN_NAME (frvbf,nldsbu) },
27988   { FRVBF_INSN_NLDUBU, SEM_FN_NAME (frvbf,nldubu) },
27989   { FRVBF_INSN_NLDSHU, SEM_FN_NAME (frvbf,nldshu) },
27990   { FRVBF_INSN_NLDUHU, SEM_FN_NAME (frvbf,nlduhu) },
27991   { FRVBF_INSN_NLDU, SEM_FN_NAME (frvbf,nldu) },
27992   { FRVBF_INSN_LDBFU, SEM_FN_NAME (frvbf,ldbfu) },
27993   { FRVBF_INSN_LDHFU, SEM_FN_NAME (frvbf,ldhfu) },
27994   { FRVBF_INSN_LDFU, SEM_FN_NAME (frvbf,ldfu) },
27995   { FRVBF_INSN_LDCU, SEM_FN_NAME (frvbf,ldcu) },
27996   { FRVBF_INSN_NLDBFU, SEM_FN_NAME (frvbf,nldbfu) },
27997   { FRVBF_INSN_NLDHFU, SEM_FN_NAME (frvbf,nldhfu) },
27998   { FRVBF_INSN_NLDFU, SEM_FN_NAME (frvbf,nldfu) },
27999   { FRVBF_INSN_LDDU, SEM_FN_NAME (frvbf,lddu) },
28000   { FRVBF_INSN_NLDDU, SEM_FN_NAME (frvbf,nlddu) },
28001   { FRVBF_INSN_LDDFU, SEM_FN_NAME (frvbf,lddfu) },
28002   { FRVBF_INSN_LDDCU, SEM_FN_NAME (frvbf,lddcu) },
28003   { FRVBF_INSN_NLDDFU, SEM_FN_NAME (frvbf,nlddfu) },
28004   { FRVBF_INSN_LDQU, SEM_FN_NAME (frvbf,ldqu) },
28005   { FRVBF_INSN_NLDQU, SEM_FN_NAME (frvbf,nldqu) },
28006   { FRVBF_INSN_LDQFU, SEM_FN_NAME (frvbf,ldqfu) },
28007   { FRVBF_INSN_LDQCU, SEM_FN_NAME (frvbf,ldqcu) },
28008   { FRVBF_INSN_NLDQFU, SEM_FN_NAME (frvbf,nldqfu) },
28009   { FRVBF_INSN_LDSBI, SEM_FN_NAME (frvbf,ldsbi) },
28010   { FRVBF_INSN_LDSHI, SEM_FN_NAME (frvbf,ldshi) },
28011   { FRVBF_INSN_LDI, SEM_FN_NAME (frvbf,ldi) },
28012   { FRVBF_INSN_LDUBI, SEM_FN_NAME (frvbf,ldubi) },
28013   { FRVBF_INSN_LDUHI, SEM_FN_NAME (frvbf,lduhi) },
28014   { FRVBF_INSN_LDBFI, SEM_FN_NAME (frvbf,ldbfi) },
28015   { FRVBF_INSN_LDHFI, SEM_FN_NAME (frvbf,ldhfi) },
28016   { FRVBF_INSN_LDFI, SEM_FN_NAME (frvbf,ldfi) },
28017   { FRVBF_INSN_NLDSBI, SEM_FN_NAME (frvbf,nldsbi) },
28018   { FRVBF_INSN_NLDUBI, SEM_FN_NAME (frvbf,nldubi) },
28019   { FRVBF_INSN_NLDSHI, SEM_FN_NAME (frvbf,nldshi) },
28020   { FRVBF_INSN_NLDUHI, SEM_FN_NAME (frvbf,nlduhi) },
28021   { FRVBF_INSN_NLDI, SEM_FN_NAME (frvbf,nldi) },
28022   { FRVBF_INSN_NLDBFI, SEM_FN_NAME (frvbf,nldbfi) },
28023   { FRVBF_INSN_NLDHFI, SEM_FN_NAME (frvbf,nldhfi) },
28024   { FRVBF_INSN_NLDFI, SEM_FN_NAME (frvbf,nldfi) },
28025   { FRVBF_INSN_LDDI, SEM_FN_NAME (frvbf,lddi) },
28026   { FRVBF_INSN_LDDFI, SEM_FN_NAME (frvbf,lddfi) },
28027   { FRVBF_INSN_NLDDI, SEM_FN_NAME (frvbf,nlddi) },
28028   { FRVBF_INSN_NLDDFI, SEM_FN_NAME (frvbf,nlddfi) },
28029   { FRVBF_INSN_LDQI, SEM_FN_NAME (frvbf,ldqi) },
28030   { FRVBF_INSN_LDQFI, SEM_FN_NAME (frvbf,ldqfi) },
28031   { FRVBF_INSN_NLDQFI, SEM_FN_NAME (frvbf,nldqfi) },
28032   { FRVBF_INSN_STB, SEM_FN_NAME (frvbf,stb) },
28033   { FRVBF_INSN_STH, SEM_FN_NAME (frvbf,sth) },
28034   { FRVBF_INSN_ST, SEM_FN_NAME (frvbf,st) },
28035   { FRVBF_INSN_STBF, SEM_FN_NAME (frvbf,stbf) },
28036   { FRVBF_INSN_STHF, SEM_FN_NAME (frvbf,sthf) },
28037   { FRVBF_INSN_STF, SEM_FN_NAME (frvbf,stf) },
28038   { FRVBF_INSN_STC, SEM_FN_NAME (frvbf,stc) },
28039   { FRVBF_INSN_STD, SEM_FN_NAME (frvbf,std) },
28040   { FRVBF_INSN_STDF, SEM_FN_NAME (frvbf,stdf) },
28041   { FRVBF_INSN_STDC, SEM_FN_NAME (frvbf,stdc) },
28042   { FRVBF_INSN_STQ, SEM_FN_NAME (frvbf,stq) },
28043   { FRVBF_INSN_STQF, SEM_FN_NAME (frvbf,stqf) },
28044   { FRVBF_INSN_STQC, SEM_FN_NAME (frvbf,stqc) },
28045   { FRVBF_INSN_STBU, SEM_FN_NAME (frvbf,stbu) },
28046   { FRVBF_INSN_STHU, SEM_FN_NAME (frvbf,sthu) },
28047   { FRVBF_INSN_STU, SEM_FN_NAME (frvbf,stu) },
28048   { FRVBF_INSN_STBFU, SEM_FN_NAME (frvbf,stbfu) },
28049   { FRVBF_INSN_STHFU, SEM_FN_NAME (frvbf,sthfu) },
28050   { FRVBF_INSN_STFU, SEM_FN_NAME (frvbf,stfu) },
28051   { FRVBF_INSN_STCU, SEM_FN_NAME (frvbf,stcu) },
28052   { FRVBF_INSN_STDU, SEM_FN_NAME (frvbf,stdu) },
28053   { FRVBF_INSN_STDFU, SEM_FN_NAME (frvbf,stdfu) },
28054   { FRVBF_INSN_STDCU, SEM_FN_NAME (frvbf,stdcu) },
28055   { FRVBF_INSN_STQU, SEM_FN_NAME (frvbf,stqu) },
28056   { FRVBF_INSN_STQFU, SEM_FN_NAME (frvbf,stqfu) },
28057   { FRVBF_INSN_STQCU, SEM_FN_NAME (frvbf,stqcu) },
28058   { FRVBF_INSN_CLDSB, SEM_FN_NAME (frvbf,cldsb) },
28059   { FRVBF_INSN_CLDUB, SEM_FN_NAME (frvbf,cldub) },
28060   { FRVBF_INSN_CLDSH, SEM_FN_NAME (frvbf,cldsh) },
28061   { FRVBF_INSN_CLDUH, SEM_FN_NAME (frvbf,clduh) },
28062   { FRVBF_INSN_CLD, SEM_FN_NAME (frvbf,cld) },
28063   { FRVBF_INSN_CLDBF, SEM_FN_NAME (frvbf,cldbf) },
28064   { FRVBF_INSN_CLDHF, SEM_FN_NAME (frvbf,cldhf) },
28065   { FRVBF_INSN_CLDF, SEM_FN_NAME (frvbf,cldf) },
28066   { FRVBF_INSN_CLDD, SEM_FN_NAME (frvbf,cldd) },
28067   { FRVBF_INSN_CLDDF, SEM_FN_NAME (frvbf,clddf) },
28068   { FRVBF_INSN_CLDQ, SEM_FN_NAME (frvbf,cldq) },
28069   { FRVBF_INSN_CLDSBU, SEM_FN_NAME (frvbf,cldsbu) },
28070   { FRVBF_INSN_CLDUBU, SEM_FN_NAME (frvbf,cldubu) },
28071   { FRVBF_INSN_CLDSHU, SEM_FN_NAME (frvbf,cldshu) },
28072   { FRVBF_INSN_CLDUHU, SEM_FN_NAME (frvbf,clduhu) },
28073   { FRVBF_INSN_CLDU, SEM_FN_NAME (frvbf,cldu) },
28074   { FRVBF_INSN_CLDBFU, SEM_FN_NAME (frvbf,cldbfu) },
28075   { FRVBF_INSN_CLDHFU, SEM_FN_NAME (frvbf,cldhfu) },
28076   { FRVBF_INSN_CLDFU, SEM_FN_NAME (frvbf,cldfu) },
28077   { FRVBF_INSN_CLDDU, SEM_FN_NAME (frvbf,clddu) },
28078   { FRVBF_INSN_CLDDFU, SEM_FN_NAME (frvbf,clddfu) },
28079   { FRVBF_INSN_CLDQU, SEM_FN_NAME (frvbf,cldqu) },
28080   { FRVBF_INSN_CSTB, SEM_FN_NAME (frvbf,cstb) },
28081   { FRVBF_INSN_CSTH, SEM_FN_NAME (frvbf,csth) },
28082   { FRVBF_INSN_CST, SEM_FN_NAME (frvbf,cst) },
28083   { FRVBF_INSN_CSTBF, SEM_FN_NAME (frvbf,cstbf) },
28084   { FRVBF_INSN_CSTHF, SEM_FN_NAME (frvbf,csthf) },
28085   { FRVBF_INSN_CSTF, SEM_FN_NAME (frvbf,cstf) },
28086   { FRVBF_INSN_CSTD, SEM_FN_NAME (frvbf,cstd) },
28087   { FRVBF_INSN_CSTDF, SEM_FN_NAME (frvbf,cstdf) },
28088   { FRVBF_INSN_CSTQ, SEM_FN_NAME (frvbf,cstq) },
28089   { FRVBF_INSN_CSTBU, SEM_FN_NAME (frvbf,cstbu) },
28090   { FRVBF_INSN_CSTHU, SEM_FN_NAME (frvbf,csthu) },
28091   { FRVBF_INSN_CSTU, SEM_FN_NAME (frvbf,cstu) },
28092   { FRVBF_INSN_CSTBFU, SEM_FN_NAME (frvbf,cstbfu) },
28093   { FRVBF_INSN_CSTHFU, SEM_FN_NAME (frvbf,csthfu) },
28094   { FRVBF_INSN_CSTFU, SEM_FN_NAME (frvbf,cstfu) },
28095   { FRVBF_INSN_CSTDU, SEM_FN_NAME (frvbf,cstdu) },
28096   { FRVBF_INSN_CSTDFU, SEM_FN_NAME (frvbf,cstdfu) },
28097   { FRVBF_INSN_STBI, SEM_FN_NAME (frvbf,stbi) },
28098   { FRVBF_INSN_STHI, SEM_FN_NAME (frvbf,sthi) },
28099   { FRVBF_INSN_STI, SEM_FN_NAME (frvbf,sti) },
28100   { FRVBF_INSN_STBFI, SEM_FN_NAME (frvbf,stbfi) },
28101   { FRVBF_INSN_STHFI, SEM_FN_NAME (frvbf,sthfi) },
28102   { FRVBF_INSN_STFI, SEM_FN_NAME (frvbf,stfi) },
28103   { FRVBF_INSN_STDI, SEM_FN_NAME (frvbf,stdi) },
28104   { FRVBF_INSN_STDFI, SEM_FN_NAME (frvbf,stdfi) },
28105   { FRVBF_INSN_STQI, SEM_FN_NAME (frvbf,stqi) },
28106   { FRVBF_INSN_STQFI, SEM_FN_NAME (frvbf,stqfi) },
28107   { FRVBF_INSN_SWAP, SEM_FN_NAME (frvbf,swap) },
28108   { FRVBF_INSN_SWAPI, SEM_FN_NAME (frvbf,swapi) },
28109   { FRVBF_INSN_CSWAP, SEM_FN_NAME (frvbf,cswap) },
28110   { FRVBF_INSN_MOVGF, SEM_FN_NAME (frvbf,movgf) },
28111   { FRVBF_INSN_MOVFG, SEM_FN_NAME (frvbf,movfg) },
28112   { FRVBF_INSN_MOVGFD, SEM_FN_NAME (frvbf,movgfd) },
28113   { FRVBF_INSN_MOVFGD, SEM_FN_NAME (frvbf,movfgd) },
28114   { FRVBF_INSN_MOVGFQ, SEM_FN_NAME (frvbf,movgfq) },
28115   { FRVBF_INSN_MOVFGQ, SEM_FN_NAME (frvbf,movfgq) },
28116   { FRVBF_INSN_CMOVGF, SEM_FN_NAME (frvbf,cmovgf) },
28117   { FRVBF_INSN_CMOVFG, SEM_FN_NAME (frvbf,cmovfg) },
28118   { FRVBF_INSN_CMOVGFD, SEM_FN_NAME (frvbf,cmovgfd) },
28119   { FRVBF_INSN_CMOVFGD, SEM_FN_NAME (frvbf,cmovfgd) },
28120   { FRVBF_INSN_MOVGS, SEM_FN_NAME (frvbf,movgs) },
28121   { FRVBF_INSN_MOVSG, SEM_FN_NAME (frvbf,movsg) },
28122   { FRVBF_INSN_BRA, SEM_FN_NAME (frvbf,bra) },
28123   { FRVBF_INSN_BNO, SEM_FN_NAME (frvbf,bno) },
28124   { FRVBF_INSN_BEQ, SEM_FN_NAME (frvbf,beq) },
28125   { FRVBF_INSN_BNE, SEM_FN_NAME (frvbf,bne) },
28126   { FRVBF_INSN_BLE, SEM_FN_NAME (frvbf,ble) },
28127   { FRVBF_INSN_BGT, SEM_FN_NAME (frvbf,bgt) },
28128   { FRVBF_INSN_BLT, SEM_FN_NAME (frvbf,blt) },
28129   { FRVBF_INSN_BGE, SEM_FN_NAME (frvbf,bge) },
28130   { FRVBF_INSN_BLS, SEM_FN_NAME (frvbf,bls) },
28131   { FRVBF_INSN_BHI, SEM_FN_NAME (frvbf,bhi) },
28132   { FRVBF_INSN_BC, SEM_FN_NAME (frvbf,bc) },
28133   { FRVBF_INSN_BNC, SEM_FN_NAME (frvbf,bnc) },
28134   { FRVBF_INSN_BN, SEM_FN_NAME (frvbf,bn) },
28135   { FRVBF_INSN_BP, SEM_FN_NAME (frvbf,bp) },
28136   { FRVBF_INSN_BV, SEM_FN_NAME (frvbf,bv) },
28137   { FRVBF_INSN_BNV, SEM_FN_NAME (frvbf,bnv) },
28138   { FRVBF_INSN_FBRA, SEM_FN_NAME (frvbf,fbra) },
28139   { FRVBF_INSN_FBNO, SEM_FN_NAME (frvbf,fbno) },
28140   { FRVBF_INSN_FBNE, SEM_FN_NAME (frvbf,fbne) },
28141   { FRVBF_INSN_FBEQ, SEM_FN_NAME (frvbf,fbeq) },
28142   { FRVBF_INSN_FBLG, SEM_FN_NAME (frvbf,fblg) },
28143   { FRVBF_INSN_FBUE, SEM_FN_NAME (frvbf,fbue) },
28144   { FRVBF_INSN_FBUL, SEM_FN_NAME (frvbf,fbul) },
28145   { FRVBF_INSN_FBGE, SEM_FN_NAME (frvbf,fbge) },
28146   { FRVBF_INSN_FBLT, SEM_FN_NAME (frvbf,fblt) },
28147   { FRVBF_INSN_FBUGE, SEM_FN_NAME (frvbf,fbuge) },
28148   { FRVBF_INSN_FBUG, SEM_FN_NAME (frvbf,fbug) },
28149   { FRVBF_INSN_FBLE, SEM_FN_NAME (frvbf,fble) },
28150   { FRVBF_INSN_FBGT, SEM_FN_NAME (frvbf,fbgt) },
28151   { FRVBF_INSN_FBULE, SEM_FN_NAME (frvbf,fbule) },
28152   { FRVBF_INSN_FBU, SEM_FN_NAME (frvbf,fbu) },
28153   { FRVBF_INSN_FBO, SEM_FN_NAME (frvbf,fbo) },
28154   { FRVBF_INSN_BCTRLR, SEM_FN_NAME (frvbf,bctrlr) },
28155   { FRVBF_INSN_BRALR, SEM_FN_NAME (frvbf,bralr) },
28156   { FRVBF_INSN_BNOLR, SEM_FN_NAME (frvbf,bnolr) },
28157   { FRVBF_INSN_BEQLR, SEM_FN_NAME (frvbf,beqlr) },
28158   { FRVBF_INSN_BNELR, SEM_FN_NAME (frvbf,bnelr) },
28159   { FRVBF_INSN_BLELR, SEM_FN_NAME (frvbf,blelr) },
28160   { FRVBF_INSN_BGTLR, SEM_FN_NAME (frvbf,bgtlr) },
28161   { FRVBF_INSN_BLTLR, SEM_FN_NAME (frvbf,bltlr) },
28162   { FRVBF_INSN_BGELR, SEM_FN_NAME (frvbf,bgelr) },
28163   { FRVBF_INSN_BLSLR, SEM_FN_NAME (frvbf,blslr) },
28164   { FRVBF_INSN_BHILR, SEM_FN_NAME (frvbf,bhilr) },
28165   { FRVBF_INSN_BCLR, SEM_FN_NAME (frvbf,bclr) },
28166   { FRVBF_INSN_BNCLR, SEM_FN_NAME (frvbf,bnclr) },
28167   { FRVBF_INSN_BNLR, SEM_FN_NAME (frvbf,bnlr) },
28168   { FRVBF_INSN_BPLR, SEM_FN_NAME (frvbf,bplr) },
28169   { FRVBF_INSN_BVLR, SEM_FN_NAME (frvbf,bvlr) },
28170   { FRVBF_INSN_BNVLR, SEM_FN_NAME (frvbf,bnvlr) },
28171   { FRVBF_INSN_FBRALR, SEM_FN_NAME (frvbf,fbralr) },
28172   { FRVBF_INSN_FBNOLR, SEM_FN_NAME (frvbf,fbnolr) },
28173   { FRVBF_INSN_FBEQLR, SEM_FN_NAME (frvbf,fbeqlr) },
28174   { FRVBF_INSN_FBNELR, SEM_FN_NAME (frvbf,fbnelr) },
28175   { FRVBF_INSN_FBLGLR, SEM_FN_NAME (frvbf,fblglr) },
28176   { FRVBF_INSN_FBUELR, SEM_FN_NAME (frvbf,fbuelr) },
28177   { FRVBF_INSN_FBULLR, SEM_FN_NAME (frvbf,fbullr) },
28178   { FRVBF_INSN_FBGELR, SEM_FN_NAME (frvbf,fbgelr) },
28179   { FRVBF_INSN_FBLTLR, SEM_FN_NAME (frvbf,fbltlr) },
28180   { FRVBF_INSN_FBUGELR, SEM_FN_NAME (frvbf,fbugelr) },
28181   { FRVBF_INSN_FBUGLR, SEM_FN_NAME (frvbf,fbuglr) },
28182   { FRVBF_INSN_FBLELR, SEM_FN_NAME (frvbf,fblelr) },
28183   { FRVBF_INSN_FBGTLR, SEM_FN_NAME (frvbf,fbgtlr) },
28184   { FRVBF_INSN_FBULELR, SEM_FN_NAME (frvbf,fbulelr) },
28185   { FRVBF_INSN_FBULR, SEM_FN_NAME (frvbf,fbulr) },
28186   { FRVBF_INSN_FBOLR, SEM_FN_NAME (frvbf,fbolr) },
28187   { FRVBF_INSN_BCRALR, SEM_FN_NAME (frvbf,bcralr) },
28188   { FRVBF_INSN_BCNOLR, SEM_FN_NAME (frvbf,bcnolr) },
28189   { FRVBF_INSN_BCEQLR, SEM_FN_NAME (frvbf,bceqlr) },
28190   { FRVBF_INSN_BCNELR, SEM_FN_NAME (frvbf,bcnelr) },
28191   { FRVBF_INSN_BCLELR, SEM_FN_NAME (frvbf,bclelr) },
28192   { FRVBF_INSN_BCGTLR, SEM_FN_NAME (frvbf,bcgtlr) },
28193   { FRVBF_INSN_BCLTLR, SEM_FN_NAME (frvbf,bcltlr) },
28194   { FRVBF_INSN_BCGELR, SEM_FN_NAME (frvbf,bcgelr) },
28195   { FRVBF_INSN_BCLSLR, SEM_FN_NAME (frvbf,bclslr) },
28196   { FRVBF_INSN_BCHILR, SEM_FN_NAME (frvbf,bchilr) },
28197   { FRVBF_INSN_BCCLR, SEM_FN_NAME (frvbf,bcclr) },
28198   { FRVBF_INSN_BCNCLR, SEM_FN_NAME (frvbf,bcnclr) },
28199   { FRVBF_INSN_BCNLR, SEM_FN_NAME (frvbf,bcnlr) },
28200   { FRVBF_INSN_BCPLR, SEM_FN_NAME (frvbf,bcplr) },
28201   { FRVBF_INSN_BCVLR, SEM_FN_NAME (frvbf,bcvlr) },
28202   { FRVBF_INSN_BCNVLR, SEM_FN_NAME (frvbf,bcnvlr) },
28203   { FRVBF_INSN_FCBRALR, SEM_FN_NAME (frvbf,fcbralr) },
28204   { FRVBF_INSN_FCBNOLR, SEM_FN_NAME (frvbf,fcbnolr) },
28205   { FRVBF_INSN_FCBEQLR, SEM_FN_NAME (frvbf,fcbeqlr) },
28206   { FRVBF_INSN_FCBNELR, SEM_FN_NAME (frvbf,fcbnelr) },
28207   { FRVBF_INSN_FCBLGLR, SEM_FN_NAME (frvbf,fcblglr) },
28208   { FRVBF_INSN_FCBUELR, SEM_FN_NAME (frvbf,fcbuelr) },
28209   { FRVBF_INSN_FCBULLR, SEM_FN_NAME (frvbf,fcbullr) },
28210   { FRVBF_INSN_FCBGELR, SEM_FN_NAME (frvbf,fcbgelr) },
28211   { FRVBF_INSN_FCBLTLR, SEM_FN_NAME (frvbf,fcbltlr) },
28212   { FRVBF_INSN_FCBUGELR, SEM_FN_NAME (frvbf,fcbugelr) },
28213   { FRVBF_INSN_FCBUGLR, SEM_FN_NAME (frvbf,fcbuglr) },
28214   { FRVBF_INSN_FCBLELR, SEM_FN_NAME (frvbf,fcblelr) },
28215   { FRVBF_INSN_FCBGTLR, SEM_FN_NAME (frvbf,fcbgtlr) },
28216   { FRVBF_INSN_FCBULELR, SEM_FN_NAME (frvbf,fcbulelr) },
28217   { FRVBF_INSN_FCBULR, SEM_FN_NAME (frvbf,fcbulr) },
28218   { FRVBF_INSN_FCBOLR, SEM_FN_NAME (frvbf,fcbolr) },
28219   { FRVBF_INSN_JMPL, SEM_FN_NAME (frvbf,jmpl) },
28220   { FRVBF_INSN_CALLL, SEM_FN_NAME (frvbf,calll) },
28221   { FRVBF_INSN_JMPIL, SEM_FN_NAME (frvbf,jmpil) },
28222   { FRVBF_INSN_CALLIL, SEM_FN_NAME (frvbf,callil) },
28223   { FRVBF_INSN_CALL, SEM_FN_NAME (frvbf,call) },
28224   { FRVBF_INSN_RETT, SEM_FN_NAME (frvbf,rett) },
28225   { FRVBF_INSN_REI, SEM_FN_NAME (frvbf,rei) },
28226   { FRVBF_INSN_TRA, SEM_FN_NAME (frvbf,tra) },
28227   { FRVBF_INSN_TNO, SEM_FN_NAME (frvbf,tno) },
28228   { FRVBF_INSN_TEQ, SEM_FN_NAME (frvbf,teq) },
28229   { FRVBF_INSN_TNE, SEM_FN_NAME (frvbf,tne) },
28230   { FRVBF_INSN_TLE, SEM_FN_NAME (frvbf,tle) },
28231   { FRVBF_INSN_TGT, SEM_FN_NAME (frvbf,tgt) },
28232   { FRVBF_INSN_TLT, SEM_FN_NAME (frvbf,tlt) },
28233   { FRVBF_INSN_TGE, SEM_FN_NAME (frvbf,tge) },
28234   { FRVBF_INSN_TLS, SEM_FN_NAME (frvbf,tls) },
28235   { FRVBF_INSN_THI, SEM_FN_NAME (frvbf,thi) },
28236   { FRVBF_INSN_TC, SEM_FN_NAME (frvbf,tc) },
28237   { FRVBF_INSN_TNC, SEM_FN_NAME (frvbf,tnc) },
28238   { FRVBF_INSN_TN, SEM_FN_NAME (frvbf,tn) },
28239   { FRVBF_INSN_TP, SEM_FN_NAME (frvbf,tp) },
28240   { FRVBF_INSN_TV, SEM_FN_NAME (frvbf,tv) },
28241   { FRVBF_INSN_TNV, SEM_FN_NAME (frvbf,tnv) },
28242   { FRVBF_INSN_FTRA, SEM_FN_NAME (frvbf,ftra) },
28243   { FRVBF_INSN_FTNO, SEM_FN_NAME (frvbf,ftno) },
28244   { FRVBF_INSN_FTNE, SEM_FN_NAME (frvbf,ftne) },
28245   { FRVBF_INSN_FTEQ, SEM_FN_NAME (frvbf,fteq) },
28246   { FRVBF_INSN_FTLG, SEM_FN_NAME (frvbf,ftlg) },
28247   { FRVBF_INSN_FTUE, SEM_FN_NAME (frvbf,ftue) },
28248   { FRVBF_INSN_FTUL, SEM_FN_NAME (frvbf,ftul) },
28249   { FRVBF_INSN_FTGE, SEM_FN_NAME (frvbf,ftge) },
28250   { FRVBF_INSN_FTLT, SEM_FN_NAME (frvbf,ftlt) },
28251   { FRVBF_INSN_FTUGE, SEM_FN_NAME (frvbf,ftuge) },
28252   { FRVBF_INSN_FTUG, SEM_FN_NAME (frvbf,ftug) },
28253   { FRVBF_INSN_FTLE, SEM_FN_NAME (frvbf,ftle) },
28254   { FRVBF_INSN_FTGT, SEM_FN_NAME (frvbf,ftgt) },
28255   { FRVBF_INSN_FTULE, SEM_FN_NAME (frvbf,ftule) },
28256   { FRVBF_INSN_FTU, SEM_FN_NAME (frvbf,ftu) },
28257   { FRVBF_INSN_FTO, SEM_FN_NAME (frvbf,fto) },
28258   { FRVBF_INSN_TIRA, SEM_FN_NAME (frvbf,tira) },
28259   { FRVBF_INSN_TINO, SEM_FN_NAME (frvbf,tino) },
28260   { FRVBF_INSN_TIEQ, SEM_FN_NAME (frvbf,tieq) },
28261   { FRVBF_INSN_TINE, SEM_FN_NAME (frvbf,tine) },
28262   { FRVBF_INSN_TILE, SEM_FN_NAME (frvbf,tile) },
28263   { FRVBF_INSN_TIGT, SEM_FN_NAME (frvbf,tigt) },
28264   { FRVBF_INSN_TILT, SEM_FN_NAME (frvbf,tilt) },
28265   { FRVBF_INSN_TIGE, SEM_FN_NAME (frvbf,tige) },
28266   { FRVBF_INSN_TILS, SEM_FN_NAME (frvbf,tils) },
28267   { FRVBF_INSN_TIHI, SEM_FN_NAME (frvbf,tihi) },
28268   { FRVBF_INSN_TIC, SEM_FN_NAME (frvbf,tic) },
28269   { FRVBF_INSN_TINC, SEM_FN_NAME (frvbf,tinc) },
28270   { FRVBF_INSN_TIN, SEM_FN_NAME (frvbf,tin) },
28271   { FRVBF_INSN_TIP, SEM_FN_NAME (frvbf,tip) },
28272   { FRVBF_INSN_TIV, SEM_FN_NAME (frvbf,tiv) },
28273   { FRVBF_INSN_TINV, SEM_FN_NAME (frvbf,tinv) },
28274   { FRVBF_INSN_FTIRA, SEM_FN_NAME (frvbf,ftira) },
28275   { FRVBF_INSN_FTINO, SEM_FN_NAME (frvbf,ftino) },
28276   { FRVBF_INSN_FTINE, SEM_FN_NAME (frvbf,ftine) },
28277   { FRVBF_INSN_FTIEQ, SEM_FN_NAME (frvbf,ftieq) },
28278   { FRVBF_INSN_FTILG, SEM_FN_NAME (frvbf,ftilg) },
28279   { FRVBF_INSN_FTIUE, SEM_FN_NAME (frvbf,ftiue) },
28280   { FRVBF_INSN_FTIUL, SEM_FN_NAME (frvbf,ftiul) },
28281   { FRVBF_INSN_FTIGE, SEM_FN_NAME (frvbf,ftige) },
28282   { FRVBF_INSN_FTILT, SEM_FN_NAME (frvbf,ftilt) },
28283   { FRVBF_INSN_FTIUGE, SEM_FN_NAME (frvbf,ftiuge) },
28284   { FRVBF_INSN_FTIUG, SEM_FN_NAME (frvbf,ftiug) },
28285   { FRVBF_INSN_FTILE, SEM_FN_NAME (frvbf,ftile) },
28286   { FRVBF_INSN_FTIGT, SEM_FN_NAME (frvbf,ftigt) },
28287   { FRVBF_INSN_FTIULE, SEM_FN_NAME (frvbf,ftiule) },
28288   { FRVBF_INSN_FTIU, SEM_FN_NAME (frvbf,ftiu) },
28289   { FRVBF_INSN_FTIO, SEM_FN_NAME (frvbf,ftio) },
28290   { FRVBF_INSN_BREAK, SEM_FN_NAME (frvbf,break) },
28291   { FRVBF_INSN_MTRAP, SEM_FN_NAME (frvbf,mtrap) },
28292   { FRVBF_INSN_ANDCR, SEM_FN_NAME (frvbf,andcr) },
28293   { FRVBF_INSN_ORCR, SEM_FN_NAME (frvbf,orcr) },
28294   { FRVBF_INSN_XORCR, SEM_FN_NAME (frvbf,xorcr) },
28295   { FRVBF_INSN_NANDCR, SEM_FN_NAME (frvbf,nandcr) },
28296   { FRVBF_INSN_NORCR, SEM_FN_NAME (frvbf,norcr) },
28297   { FRVBF_INSN_ANDNCR, SEM_FN_NAME (frvbf,andncr) },
28298   { FRVBF_INSN_ORNCR, SEM_FN_NAME (frvbf,orncr) },
28299   { FRVBF_INSN_NANDNCR, SEM_FN_NAME (frvbf,nandncr) },
28300   { FRVBF_INSN_NORNCR, SEM_FN_NAME (frvbf,norncr) },
28301   { FRVBF_INSN_NOTCR, SEM_FN_NAME (frvbf,notcr) },
28302   { FRVBF_INSN_CKRA, SEM_FN_NAME (frvbf,ckra) },
28303   { FRVBF_INSN_CKNO, SEM_FN_NAME (frvbf,ckno) },
28304   { FRVBF_INSN_CKEQ, SEM_FN_NAME (frvbf,ckeq) },
28305   { FRVBF_INSN_CKNE, SEM_FN_NAME (frvbf,ckne) },
28306   { FRVBF_INSN_CKLE, SEM_FN_NAME (frvbf,ckle) },
28307   { FRVBF_INSN_CKGT, SEM_FN_NAME (frvbf,ckgt) },
28308   { FRVBF_INSN_CKLT, SEM_FN_NAME (frvbf,cklt) },
28309   { FRVBF_INSN_CKGE, SEM_FN_NAME (frvbf,ckge) },
28310   { FRVBF_INSN_CKLS, SEM_FN_NAME (frvbf,ckls) },
28311   { FRVBF_INSN_CKHI, SEM_FN_NAME (frvbf,ckhi) },
28312   { FRVBF_INSN_CKC, SEM_FN_NAME (frvbf,ckc) },
28313   { FRVBF_INSN_CKNC, SEM_FN_NAME (frvbf,cknc) },
28314   { FRVBF_INSN_CKN, SEM_FN_NAME (frvbf,ckn) },
28315   { FRVBF_INSN_CKP, SEM_FN_NAME (frvbf,ckp) },
28316   { FRVBF_INSN_CKV, SEM_FN_NAME (frvbf,ckv) },
28317   { FRVBF_INSN_CKNV, SEM_FN_NAME (frvbf,cknv) },
28318   { FRVBF_INSN_FCKRA, SEM_FN_NAME (frvbf,fckra) },
28319   { FRVBF_INSN_FCKNO, SEM_FN_NAME (frvbf,fckno) },
28320   { FRVBF_INSN_FCKNE, SEM_FN_NAME (frvbf,fckne) },
28321   { FRVBF_INSN_FCKEQ, SEM_FN_NAME (frvbf,fckeq) },
28322   { FRVBF_INSN_FCKLG, SEM_FN_NAME (frvbf,fcklg) },
28323   { FRVBF_INSN_FCKUE, SEM_FN_NAME (frvbf,fckue) },
28324   { FRVBF_INSN_FCKUL, SEM_FN_NAME (frvbf,fckul) },
28325   { FRVBF_INSN_FCKGE, SEM_FN_NAME (frvbf,fckge) },
28326   { FRVBF_INSN_FCKLT, SEM_FN_NAME (frvbf,fcklt) },
28327   { FRVBF_INSN_FCKUGE, SEM_FN_NAME (frvbf,fckuge) },
28328   { FRVBF_INSN_FCKUG, SEM_FN_NAME (frvbf,fckug) },
28329   { FRVBF_INSN_FCKLE, SEM_FN_NAME (frvbf,fckle) },
28330   { FRVBF_INSN_FCKGT, SEM_FN_NAME (frvbf,fckgt) },
28331   { FRVBF_INSN_FCKULE, SEM_FN_NAME (frvbf,fckule) },
28332   { FRVBF_INSN_FCKU, SEM_FN_NAME (frvbf,fcku) },
28333   { FRVBF_INSN_FCKO, SEM_FN_NAME (frvbf,fcko) },
28334   { FRVBF_INSN_CCKRA, SEM_FN_NAME (frvbf,cckra) },
28335   { FRVBF_INSN_CCKNO, SEM_FN_NAME (frvbf,cckno) },
28336   { FRVBF_INSN_CCKEQ, SEM_FN_NAME (frvbf,cckeq) },
28337   { FRVBF_INSN_CCKNE, SEM_FN_NAME (frvbf,cckne) },
28338   { FRVBF_INSN_CCKLE, SEM_FN_NAME (frvbf,cckle) },
28339   { FRVBF_INSN_CCKGT, SEM_FN_NAME (frvbf,cckgt) },
28340   { FRVBF_INSN_CCKLT, SEM_FN_NAME (frvbf,ccklt) },
28341   { FRVBF_INSN_CCKGE, SEM_FN_NAME (frvbf,cckge) },
28342   { FRVBF_INSN_CCKLS, SEM_FN_NAME (frvbf,cckls) },
28343   { FRVBF_INSN_CCKHI, SEM_FN_NAME (frvbf,cckhi) },
28344   { FRVBF_INSN_CCKC, SEM_FN_NAME (frvbf,cckc) },
28345   { FRVBF_INSN_CCKNC, SEM_FN_NAME (frvbf,ccknc) },
28346   { FRVBF_INSN_CCKN, SEM_FN_NAME (frvbf,cckn) },
28347   { FRVBF_INSN_CCKP, SEM_FN_NAME (frvbf,cckp) },
28348   { FRVBF_INSN_CCKV, SEM_FN_NAME (frvbf,cckv) },
28349   { FRVBF_INSN_CCKNV, SEM_FN_NAME (frvbf,ccknv) },
28350   { FRVBF_INSN_CFCKRA, SEM_FN_NAME (frvbf,cfckra) },
28351   { FRVBF_INSN_CFCKNO, SEM_FN_NAME (frvbf,cfckno) },
28352   { FRVBF_INSN_CFCKNE, SEM_FN_NAME (frvbf,cfckne) },
28353   { FRVBF_INSN_CFCKEQ, SEM_FN_NAME (frvbf,cfckeq) },
28354   { FRVBF_INSN_CFCKLG, SEM_FN_NAME (frvbf,cfcklg) },
28355   { FRVBF_INSN_CFCKUE, SEM_FN_NAME (frvbf,cfckue) },
28356   { FRVBF_INSN_CFCKUL, SEM_FN_NAME (frvbf,cfckul) },
28357   { FRVBF_INSN_CFCKGE, SEM_FN_NAME (frvbf,cfckge) },
28358   { FRVBF_INSN_CFCKLT, SEM_FN_NAME (frvbf,cfcklt) },
28359   { FRVBF_INSN_CFCKUGE, SEM_FN_NAME (frvbf,cfckuge) },
28360   { FRVBF_INSN_CFCKUG, SEM_FN_NAME (frvbf,cfckug) },
28361   { FRVBF_INSN_CFCKLE, SEM_FN_NAME (frvbf,cfckle) },
28362   { FRVBF_INSN_CFCKGT, SEM_FN_NAME (frvbf,cfckgt) },
28363   { FRVBF_INSN_CFCKULE, SEM_FN_NAME (frvbf,cfckule) },
28364   { FRVBF_INSN_CFCKU, SEM_FN_NAME (frvbf,cfcku) },
28365   { FRVBF_INSN_CFCKO, SEM_FN_NAME (frvbf,cfcko) },
28366   { FRVBF_INSN_CJMPL, SEM_FN_NAME (frvbf,cjmpl) },
28367   { FRVBF_INSN_CCALLL, SEM_FN_NAME (frvbf,ccalll) },
28368   { FRVBF_INSN_ICI, SEM_FN_NAME (frvbf,ici) },
28369   { FRVBF_INSN_DCI, SEM_FN_NAME (frvbf,dci) },
28370   { FRVBF_INSN_ICEI, SEM_FN_NAME (frvbf,icei) },
28371   { FRVBF_INSN_DCEI, SEM_FN_NAME (frvbf,dcei) },
28372   { FRVBF_INSN_DCF, SEM_FN_NAME (frvbf,dcf) },
28373   { FRVBF_INSN_DCEF, SEM_FN_NAME (frvbf,dcef) },
28374   { FRVBF_INSN_WITLB, SEM_FN_NAME (frvbf,witlb) },
28375   { FRVBF_INSN_WDTLB, SEM_FN_NAME (frvbf,wdtlb) },
28376   { FRVBF_INSN_ITLBI, SEM_FN_NAME (frvbf,itlbi) },
28377   { FRVBF_INSN_DTLBI, SEM_FN_NAME (frvbf,dtlbi) },
28378   { FRVBF_INSN_ICPL, SEM_FN_NAME (frvbf,icpl) },
28379   { FRVBF_INSN_DCPL, SEM_FN_NAME (frvbf,dcpl) },
28380   { FRVBF_INSN_ICUL, SEM_FN_NAME (frvbf,icul) },
28381   { FRVBF_INSN_DCUL, SEM_FN_NAME (frvbf,dcul) },
28382   { FRVBF_INSN_BAR, SEM_FN_NAME (frvbf,bar) },
28383   { FRVBF_INSN_MEMBAR, SEM_FN_NAME (frvbf,membar) },
28384   { FRVBF_INSN_COP1, SEM_FN_NAME (frvbf,cop1) },
28385   { FRVBF_INSN_COP2, SEM_FN_NAME (frvbf,cop2) },
28386   { FRVBF_INSN_CLRGR, SEM_FN_NAME (frvbf,clrgr) },
28387   { FRVBF_INSN_CLRFR, SEM_FN_NAME (frvbf,clrfr) },
28388   { FRVBF_INSN_CLRGA, SEM_FN_NAME (frvbf,clrga) },
28389   { FRVBF_INSN_CLRFA, SEM_FN_NAME (frvbf,clrfa) },
28390   { FRVBF_INSN_COMMITGR, SEM_FN_NAME (frvbf,commitgr) },
28391   { FRVBF_INSN_COMMITFR, SEM_FN_NAME (frvbf,commitfr) },
28392   { FRVBF_INSN_COMMITGA, SEM_FN_NAME (frvbf,commitga) },
28393   { FRVBF_INSN_COMMITFA, SEM_FN_NAME (frvbf,commitfa) },
28394   { FRVBF_INSN_FITOS, SEM_FN_NAME (frvbf,fitos) },
28395   { FRVBF_INSN_FSTOI, SEM_FN_NAME (frvbf,fstoi) },
28396   { FRVBF_INSN_FITOD, SEM_FN_NAME (frvbf,fitod) },
28397   { FRVBF_INSN_FDTOI, SEM_FN_NAME (frvbf,fdtoi) },
28398   { FRVBF_INSN_FDITOS, SEM_FN_NAME (frvbf,fditos) },
28399   { FRVBF_INSN_FDSTOI, SEM_FN_NAME (frvbf,fdstoi) },
28400   { FRVBF_INSN_NFDITOS, SEM_FN_NAME (frvbf,nfditos) },
28401   { FRVBF_INSN_NFDSTOI, SEM_FN_NAME (frvbf,nfdstoi) },
28402   { FRVBF_INSN_CFITOS, SEM_FN_NAME (frvbf,cfitos) },
28403   { FRVBF_INSN_CFSTOI, SEM_FN_NAME (frvbf,cfstoi) },
28404   { FRVBF_INSN_NFITOS, SEM_FN_NAME (frvbf,nfitos) },
28405   { FRVBF_INSN_NFSTOI, SEM_FN_NAME (frvbf,nfstoi) },
28406   { FRVBF_INSN_FMOVS, SEM_FN_NAME (frvbf,fmovs) },
28407   { FRVBF_INSN_FMOVD, SEM_FN_NAME (frvbf,fmovd) },
28408   { FRVBF_INSN_FDMOVS, SEM_FN_NAME (frvbf,fdmovs) },
28409   { FRVBF_INSN_CFMOVS, SEM_FN_NAME (frvbf,cfmovs) },
28410   { FRVBF_INSN_FNEGS, SEM_FN_NAME (frvbf,fnegs) },
28411   { FRVBF_INSN_FNEGD, SEM_FN_NAME (frvbf,fnegd) },
28412   { FRVBF_INSN_FDNEGS, SEM_FN_NAME (frvbf,fdnegs) },
28413   { FRVBF_INSN_CFNEGS, SEM_FN_NAME (frvbf,cfnegs) },
28414   { FRVBF_INSN_FABSS, SEM_FN_NAME (frvbf,fabss) },
28415   { FRVBF_INSN_FABSD, SEM_FN_NAME (frvbf,fabsd) },
28416   { FRVBF_INSN_FDABSS, SEM_FN_NAME (frvbf,fdabss) },
28417   { FRVBF_INSN_CFABSS, SEM_FN_NAME (frvbf,cfabss) },
28418   { FRVBF_INSN_FSQRTS, SEM_FN_NAME (frvbf,fsqrts) },
28419   { FRVBF_INSN_FDSQRTS, SEM_FN_NAME (frvbf,fdsqrts) },
28420   { FRVBF_INSN_NFDSQRTS, SEM_FN_NAME (frvbf,nfdsqrts) },
28421   { FRVBF_INSN_FSQRTD, SEM_FN_NAME (frvbf,fsqrtd) },
28422   { FRVBF_INSN_CFSQRTS, SEM_FN_NAME (frvbf,cfsqrts) },
28423   { FRVBF_INSN_NFSQRTS, SEM_FN_NAME (frvbf,nfsqrts) },
28424   { FRVBF_INSN_FADDS, SEM_FN_NAME (frvbf,fadds) },
28425   { FRVBF_INSN_FSUBS, SEM_FN_NAME (frvbf,fsubs) },
28426   { FRVBF_INSN_FMULS, SEM_FN_NAME (frvbf,fmuls) },
28427   { FRVBF_INSN_FDIVS, SEM_FN_NAME (frvbf,fdivs) },
28428   { FRVBF_INSN_FADDD, SEM_FN_NAME (frvbf,faddd) },
28429   { FRVBF_INSN_FSUBD, SEM_FN_NAME (frvbf,fsubd) },
28430   { FRVBF_INSN_FMULD, SEM_FN_NAME (frvbf,fmuld) },
28431   { FRVBF_INSN_FDIVD, SEM_FN_NAME (frvbf,fdivd) },
28432   { FRVBF_INSN_CFADDS, SEM_FN_NAME (frvbf,cfadds) },
28433   { FRVBF_INSN_CFSUBS, SEM_FN_NAME (frvbf,cfsubs) },
28434   { FRVBF_INSN_CFMULS, SEM_FN_NAME (frvbf,cfmuls) },
28435   { FRVBF_INSN_CFDIVS, SEM_FN_NAME (frvbf,cfdivs) },
28436   { FRVBF_INSN_NFADDS, SEM_FN_NAME (frvbf,nfadds) },
28437   { FRVBF_INSN_NFSUBS, SEM_FN_NAME (frvbf,nfsubs) },
28438   { FRVBF_INSN_NFMULS, SEM_FN_NAME (frvbf,nfmuls) },
28439   { FRVBF_INSN_NFDIVS, SEM_FN_NAME (frvbf,nfdivs) },
28440   { FRVBF_INSN_FCMPS, SEM_FN_NAME (frvbf,fcmps) },
28441   { FRVBF_INSN_FCMPD, SEM_FN_NAME (frvbf,fcmpd) },
28442   { FRVBF_INSN_CFCMPS, SEM_FN_NAME (frvbf,cfcmps) },
28443   { FRVBF_INSN_FDCMPS, SEM_FN_NAME (frvbf,fdcmps) },
28444   { FRVBF_INSN_FMADDS, SEM_FN_NAME (frvbf,fmadds) },
28445   { FRVBF_INSN_FMSUBS, SEM_FN_NAME (frvbf,fmsubs) },
28446   { FRVBF_INSN_FMADDD, SEM_FN_NAME (frvbf,fmaddd) },
28447   { FRVBF_INSN_FMSUBD, SEM_FN_NAME (frvbf,fmsubd) },
28448   { FRVBF_INSN_FDMADDS, SEM_FN_NAME (frvbf,fdmadds) },
28449   { FRVBF_INSN_NFDMADDS, SEM_FN_NAME (frvbf,nfdmadds) },
28450   { FRVBF_INSN_CFMADDS, SEM_FN_NAME (frvbf,cfmadds) },
28451   { FRVBF_INSN_CFMSUBS, SEM_FN_NAME (frvbf,cfmsubs) },
28452   { FRVBF_INSN_NFMADDS, SEM_FN_NAME (frvbf,nfmadds) },
28453   { FRVBF_INSN_NFMSUBS, SEM_FN_NAME (frvbf,nfmsubs) },
28454   { FRVBF_INSN_FMAS, SEM_FN_NAME (frvbf,fmas) },
28455   { FRVBF_INSN_FMSS, SEM_FN_NAME (frvbf,fmss) },
28456   { FRVBF_INSN_FDMAS, SEM_FN_NAME (frvbf,fdmas) },
28457   { FRVBF_INSN_FDMSS, SEM_FN_NAME (frvbf,fdmss) },
28458   { FRVBF_INSN_NFDMAS, SEM_FN_NAME (frvbf,nfdmas) },
28459   { FRVBF_INSN_NFDMSS, SEM_FN_NAME (frvbf,nfdmss) },
28460   { FRVBF_INSN_CFMAS, SEM_FN_NAME (frvbf,cfmas) },
28461   { FRVBF_INSN_CFMSS, SEM_FN_NAME (frvbf,cfmss) },
28462   { FRVBF_INSN_FMAD, SEM_FN_NAME (frvbf,fmad) },
28463   { FRVBF_INSN_FMSD, SEM_FN_NAME (frvbf,fmsd) },
28464   { FRVBF_INSN_NFMAS, SEM_FN_NAME (frvbf,nfmas) },
28465   { FRVBF_INSN_NFMSS, SEM_FN_NAME (frvbf,nfmss) },
28466   { FRVBF_INSN_FDADDS, SEM_FN_NAME (frvbf,fdadds) },
28467   { FRVBF_INSN_FDSUBS, SEM_FN_NAME (frvbf,fdsubs) },
28468   { FRVBF_INSN_FDMULS, SEM_FN_NAME (frvbf,fdmuls) },
28469   { FRVBF_INSN_FDDIVS, SEM_FN_NAME (frvbf,fddivs) },
28470   { FRVBF_INSN_FDSADS, SEM_FN_NAME (frvbf,fdsads) },
28471   { FRVBF_INSN_FDMULCS, SEM_FN_NAME (frvbf,fdmulcs) },
28472   { FRVBF_INSN_NFDMULCS, SEM_FN_NAME (frvbf,nfdmulcs) },
28473   { FRVBF_INSN_NFDADDS, SEM_FN_NAME (frvbf,nfdadds) },
28474   { FRVBF_INSN_NFDSUBS, SEM_FN_NAME (frvbf,nfdsubs) },
28475   { FRVBF_INSN_NFDMULS, SEM_FN_NAME (frvbf,nfdmuls) },
28476   { FRVBF_INSN_NFDDIVS, SEM_FN_NAME (frvbf,nfddivs) },
28477   { FRVBF_INSN_NFDSADS, SEM_FN_NAME (frvbf,nfdsads) },
28478   { FRVBF_INSN_NFDCMPS, SEM_FN_NAME (frvbf,nfdcmps) },
28479   { FRVBF_INSN_MHSETLOS, SEM_FN_NAME (frvbf,mhsetlos) },
28480   { FRVBF_INSN_MHSETHIS, SEM_FN_NAME (frvbf,mhsethis) },
28481   { FRVBF_INSN_MHDSETS, SEM_FN_NAME (frvbf,mhdsets) },
28482   { FRVBF_INSN_MHSETLOH, SEM_FN_NAME (frvbf,mhsetloh) },
28483   { FRVBF_INSN_MHSETHIH, SEM_FN_NAME (frvbf,mhsethih) },
28484   { FRVBF_INSN_MHDSETH, SEM_FN_NAME (frvbf,mhdseth) },
28485   { FRVBF_INSN_MAND, SEM_FN_NAME (frvbf,mand) },
28486   { FRVBF_INSN_MOR, SEM_FN_NAME (frvbf,mor) },
28487   { FRVBF_INSN_MXOR, SEM_FN_NAME (frvbf,mxor) },
28488   { FRVBF_INSN_CMAND, SEM_FN_NAME (frvbf,cmand) },
28489   { FRVBF_INSN_CMOR, SEM_FN_NAME (frvbf,cmor) },
28490   { FRVBF_INSN_CMXOR, SEM_FN_NAME (frvbf,cmxor) },
28491   { FRVBF_INSN_MNOT, SEM_FN_NAME (frvbf,mnot) },
28492   { FRVBF_INSN_CMNOT, SEM_FN_NAME (frvbf,cmnot) },
28493   { FRVBF_INSN_MROTLI, SEM_FN_NAME (frvbf,mrotli) },
28494   { FRVBF_INSN_MROTRI, SEM_FN_NAME (frvbf,mrotri) },
28495   { FRVBF_INSN_MWCUT, SEM_FN_NAME (frvbf,mwcut) },
28496   { FRVBF_INSN_MWCUTI, SEM_FN_NAME (frvbf,mwcuti) },
28497   { FRVBF_INSN_MCUT, SEM_FN_NAME (frvbf,mcut) },
28498   { FRVBF_INSN_MCUTI, SEM_FN_NAME (frvbf,mcuti) },
28499   { FRVBF_INSN_MCUTSS, SEM_FN_NAME (frvbf,mcutss) },
28500   { FRVBF_INSN_MCUTSSI, SEM_FN_NAME (frvbf,mcutssi) },
28501   { FRVBF_INSN_MDCUTSSI, SEM_FN_NAME (frvbf,mdcutssi) },
28502   { FRVBF_INSN_MAVEH, SEM_FN_NAME (frvbf,maveh) },
28503   { FRVBF_INSN_MSLLHI, SEM_FN_NAME (frvbf,msllhi) },
28504   { FRVBF_INSN_MSRLHI, SEM_FN_NAME (frvbf,msrlhi) },
28505   { FRVBF_INSN_MSRAHI, SEM_FN_NAME (frvbf,msrahi) },
28506   { FRVBF_INSN_MDROTLI, SEM_FN_NAME (frvbf,mdrotli) },
28507   { FRVBF_INSN_MCPLHI, SEM_FN_NAME (frvbf,mcplhi) },
28508   { FRVBF_INSN_MCPLI, SEM_FN_NAME (frvbf,mcpli) },
28509   { FRVBF_INSN_MSATHS, SEM_FN_NAME (frvbf,msaths) },
28510   { FRVBF_INSN_MQSATHS, SEM_FN_NAME (frvbf,mqsaths) },
28511   { FRVBF_INSN_MSATHU, SEM_FN_NAME (frvbf,msathu) },
28512   { FRVBF_INSN_MCMPSH, SEM_FN_NAME (frvbf,mcmpsh) },
28513   { FRVBF_INSN_MCMPUH, SEM_FN_NAME (frvbf,mcmpuh) },
28514   { FRVBF_INSN_MABSHS, SEM_FN_NAME (frvbf,mabshs) },
28515   { FRVBF_INSN_MADDHSS, SEM_FN_NAME (frvbf,maddhss) },
28516   { FRVBF_INSN_MADDHUS, SEM_FN_NAME (frvbf,maddhus) },
28517   { FRVBF_INSN_MSUBHSS, SEM_FN_NAME (frvbf,msubhss) },
28518   { FRVBF_INSN_MSUBHUS, SEM_FN_NAME (frvbf,msubhus) },
28519   { FRVBF_INSN_CMADDHSS, SEM_FN_NAME (frvbf,cmaddhss) },
28520   { FRVBF_INSN_CMADDHUS, SEM_FN_NAME (frvbf,cmaddhus) },
28521   { FRVBF_INSN_CMSUBHSS, SEM_FN_NAME (frvbf,cmsubhss) },
28522   { FRVBF_INSN_CMSUBHUS, SEM_FN_NAME (frvbf,cmsubhus) },
28523   { FRVBF_INSN_MQADDHSS, SEM_FN_NAME (frvbf,mqaddhss) },
28524   { FRVBF_INSN_MQADDHUS, SEM_FN_NAME (frvbf,mqaddhus) },
28525   { FRVBF_INSN_MQSUBHSS, SEM_FN_NAME (frvbf,mqsubhss) },
28526   { FRVBF_INSN_MQSUBHUS, SEM_FN_NAME (frvbf,mqsubhus) },
28527   { FRVBF_INSN_CMQADDHSS, SEM_FN_NAME (frvbf,cmqaddhss) },
28528   { FRVBF_INSN_CMQADDHUS, SEM_FN_NAME (frvbf,cmqaddhus) },
28529   { FRVBF_INSN_CMQSUBHSS, SEM_FN_NAME (frvbf,cmqsubhss) },
28530   { FRVBF_INSN_CMQSUBHUS, SEM_FN_NAME (frvbf,cmqsubhus) },
28531   { FRVBF_INSN_MADDACCS, SEM_FN_NAME (frvbf,maddaccs) },
28532   { FRVBF_INSN_MSUBACCS, SEM_FN_NAME (frvbf,msubaccs) },
28533   { FRVBF_INSN_MDADDACCS, SEM_FN_NAME (frvbf,mdaddaccs) },
28534   { FRVBF_INSN_MDSUBACCS, SEM_FN_NAME (frvbf,mdsubaccs) },
28535   { FRVBF_INSN_MASACCS, SEM_FN_NAME (frvbf,masaccs) },
28536   { FRVBF_INSN_MDASACCS, SEM_FN_NAME (frvbf,mdasaccs) },
28537   { FRVBF_INSN_MMULHS, SEM_FN_NAME (frvbf,mmulhs) },
28538   { FRVBF_INSN_MMULHU, SEM_FN_NAME (frvbf,mmulhu) },
28539   { FRVBF_INSN_MMULXHS, SEM_FN_NAME (frvbf,mmulxhs) },
28540   { FRVBF_INSN_MMULXHU, SEM_FN_NAME (frvbf,mmulxhu) },
28541   { FRVBF_INSN_CMMULHS, SEM_FN_NAME (frvbf,cmmulhs) },
28542   { FRVBF_INSN_CMMULHU, SEM_FN_NAME (frvbf,cmmulhu) },
28543   { FRVBF_INSN_MQMULHS, SEM_FN_NAME (frvbf,mqmulhs) },
28544   { FRVBF_INSN_MQMULHU, SEM_FN_NAME (frvbf,mqmulhu) },
28545   { FRVBF_INSN_MQMULXHS, SEM_FN_NAME (frvbf,mqmulxhs) },
28546   { FRVBF_INSN_MQMULXHU, SEM_FN_NAME (frvbf,mqmulxhu) },
28547   { FRVBF_INSN_CMQMULHS, SEM_FN_NAME (frvbf,cmqmulhs) },
28548   { FRVBF_INSN_CMQMULHU, SEM_FN_NAME (frvbf,cmqmulhu) },
28549   { FRVBF_INSN_MMACHS, SEM_FN_NAME (frvbf,mmachs) },
28550   { FRVBF_INSN_MMACHU, SEM_FN_NAME (frvbf,mmachu) },
28551   { FRVBF_INSN_MMRDHS, SEM_FN_NAME (frvbf,mmrdhs) },
28552   { FRVBF_INSN_MMRDHU, SEM_FN_NAME (frvbf,mmrdhu) },
28553   { FRVBF_INSN_CMMACHS, SEM_FN_NAME (frvbf,cmmachs) },
28554   { FRVBF_INSN_CMMACHU, SEM_FN_NAME (frvbf,cmmachu) },
28555   { FRVBF_INSN_MQMACHS, SEM_FN_NAME (frvbf,mqmachs) },
28556   { FRVBF_INSN_MQMACHU, SEM_FN_NAME (frvbf,mqmachu) },
28557   { FRVBF_INSN_CMQMACHS, SEM_FN_NAME (frvbf,cmqmachs) },
28558   { FRVBF_INSN_CMQMACHU, SEM_FN_NAME (frvbf,cmqmachu) },
28559   { FRVBF_INSN_MQXMACHS, SEM_FN_NAME (frvbf,mqxmachs) },
28560   { FRVBF_INSN_MQXMACXHS, SEM_FN_NAME (frvbf,mqxmacxhs) },
28561   { FRVBF_INSN_MQMACXHS, SEM_FN_NAME (frvbf,mqmacxhs) },
28562   { FRVBF_INSN_MCPXRS, SEM_FN_NAME (frvbf,mcpxrs) },
28563   { FRVBF_INSN_MCPXRU, SEM_FN_NAME (frvbf,mcpxru) },
28564   { FRVBF_INSN_MCPXIS, SEM_FN_NAME (frvbf,mcpxis) },
28565   { FRVBF_INSN_MCPXIU, SEM_FN_NAME (frvbf,mcpxiu) },
28566   { FRVBF_INSN_CMCPXRS, SEM_FN_NAME (frvbf,cmcpxrs) },
28567   { FRVBF_INSN_CMCPXRU, SEM_FN_NAME (frvbf,cmcpxru) },
28568   { FRVBF_INSN_CMCPXIS, SEM_FN_NAME (frvbf,cmcpxis) },
28569   { FRVBF_INSN_CMCPXIU, SEM_FN_NAME (frvbf,cmcpxiu) },
28570   { FRVBF_INSN_MQCPXRS, SEM_FN_NAME (frvbf,mqcpxrs) },
28571   { FRVBF_INSN_MQCPXRU, SEM_FN_NAME (frvbf,mqcpxru) },
28572   { FRVBF_INSN_MQCPXIS, SEM_FN_NAME (frvbf,mqcpxis) },
28573   { FRVBF_INSN_MQCPXIU, SEM_FN_NAME (frvbf,mqcpxiu) },
28574   { FRVBF_INSN_MEXPDHW, SEM_FN_NAME (frvbf,mexpdhw) },
28575   { FRVBF_INSN_CMEXPDHW, SEM_FN_NAME (frvbf,cmexpdhw) },
28576   { FRVBF_INSN_MEXPDHD, SEM_FN_NAME (frvbf,mexpdhd) },
28577   { FRVBF_INSN_CMEXPDHD, SEM_FN_NAME (frvbf,cmexpdhd) },
28578   { FRVBF_INSN_MPACKH, SEM_FN_NAME (frvbf,mpackh) },
28579   { FRVBF_INSN_MDPACKH, SEM_FN_NAME (frvbf,mdpackh) },
28580   { FRVBF_INSN_MUNPACKH, SEM_FN_NAME (frvbf,munpackh) },
28581   { FRVBF_INSN_MDUNPACKH, SEM_FN_NAME (frvbf,mdunpackh) },
28582   { FRVBF_INSN_MBTOH, SEM_FN_NAME (frvbf,mbtoh) },
28583   { FRVBF_INSN_CMBTOH, SEM_FN_NAME (frvbf,cmbtoh) },
28584   { FRVBF_INSN_MHTOB, SEM_FN_NAME (frvbf,mhtob) },
28585   { FRVBF_INSN_CMHTOB, SEM_FN_NAME (frvbf,cmhtob) },
28586   { FRVBF_INSN_MBTOHE, SEM_FN_NAME (frvbf,mbtohe) },
28587   { FRVBF_INSN_CMBTOHE, SEM_FN_NAME (frvbf,cmbtohe) },
28588   { FRVBF_INSN_MNOP, SEM_FN_NAME (frvbf,mnop) },
28589   { FRVBF_INSN_MCLRACC_0, SEM_FN_NAME (frvbf,mclracc_0) },
28590   { FRVBF_INSN_MCLRACC_1, SEM_FN_NAME (frvbf,mclracc_1) },
28591   { FRVBF_INSN_MRDACC, SEM_FN_NAME (frvbf,mrdacc) },
28592   { FRVBF_INSN_MRDACCG, SEM_FN_NAME (frvbf,mrdaccg) },
28593   { FRVBF_INSN_MWTACC, SEM_FN_NAME (frvbf,mwtacc) },
28594   { FRVBF_INSN_MWTACCG, SEM_FN_NAME (frvbf,mwtaccg) },
28595   { FRVBF_INSN_MCOP1, SEM_FN_NAME (frvbf,mcop1) },
28596   { FRVBF_INSN_MCOP2, SEM_FN_NAME (frvbf,mcop2) },
28597   { FRVBF_INSN_FNOP, SEM_FN_NAME (frvbf,fnop) },
28598   { 0, 0 }
28599 };
28600
28601 /* Add the semantic fns to IDESC_TABLE.  */
28602
28603 void
28604 SEM_FN_NAME (frvbf,init_idesc_table) (SIM_CPU *current_cpu)
28605 {
28606   IDESC *idesc_table = CPU_IDESC (current_cpu);
28607   const struct sem_fn_desc *sf;
28608   int mach_num = MACH_NUM (CPU_MACH (current_cpu));
28609
28610   for (sf = &sem_fns[0]; sf->fn != 0; ++sf)
28611     {
28612       const CGEN_INSN *insn = idesc_table[sf->index].idata;
28613       int valid_p = (CGEN_INSN_VIRTUAL_P (insn)
28614                      || CGEN_INSN_MACH_HAS_P (insn, mach_num));
28615 #if FAST_P
28616       if (valid_p)
28617         idesc_table[sf->index].sem_fast = sf->fn;
28618       else
28619         idesc_table[sf->index].sem_fast = SEM_FN_NAME (frvbf,x_invalid);
28620 #else
28621       if (valid_p)
28622         idesc_table[sf->index].sem_full = sf->fn;
28623       else
28624         idesc_table[sf->index].sem_full = SEM_FN_NAME (frvbf,x_invalid);
28625 #endif
28626     }
28627 }
28628