2003-10-06 Dave Brolley <brolley@redhat.com>
[platform/upstream/binutils.git] / sim / frv / sem.c
1 /* Simulator instruction semantics for frvbf.
2
3 THIS FILE IS MACHINE GENERATED WITH CGEN.
4
5 Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
6
7 This file is part of the GNU simulators.
8
9 This program is free software; you can redistribute it and/or modify
10 it under the terms of the GNU General Public License as published by
11 the Free Software Foundation; either version 2, or (at your option)
12 any later version.
13
14 This program is distributed in the hope that it will be useful,
15 but WITHOUT ANY WARRANTY; without even the implied warranty of
16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17 GNU General Public License for more details.
18
19 You should have received a copy of the GNU General Public License along
20 with this program; if not, write to the Free Software Foundation, Inc.,
21 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
22
23 */
24
25 #define WANT_CPU frvbf
26 #define WANT_CPU_FRVBF
27
28 #include "sim-main.h"
29 #include "cgen-mem.h"
30 #include "cgen-ops.h"
31
32 #undef GET_ATTR
33 #if defined (__STDC__) || defined (ALMOST_STDC) || defined (HAVE_STRINGIZE)
34 #define GET_ATTR(cpu, num, attr) CGEN_ATTR_VALUE (NULL, abuf->idesc->attrs, CGEN_INSN_##attr)
35 #else
36 #define GET_ATTR(cpu, num, attr) CGEN_ATTR_VALUE (NULL, abuf->idesc->attrs, CGEN_INSN_/**/attr)
37 #endif
38
39 /* This is used so that we can compile two copies of the semantic code,
40    one with full feature support and one without that runs fast(er).
41    FAST_P, when desired, is defined on the command line, -DFAST_P=1.  */
42 #if FAST_P
43 #define SEM_FN_NAME(cpu,fn) XCONCAT3 (cpu,_semf_,fn)
44 #undef TRACE_RESULT
45 #define TRACE_RESULT(cpu, abuf, name, type, val)
46 #else
47 #define SEM_FN_NAME(cpu,fn) XCONCAT3 (cpu,_sem_,fn)
48 #endif
49
50 /* x-invalid: --invalid-- */
51
52 static SEM_PC
53 SEM_FN_NAME (frvbf,x_invalid) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
54 {
55 #define FLD(f) abuf->fields.fmt_empty.f
56   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
57   int UNUSED written = 0;
58   IADDR UNUSED pc = abuf->addr;
59   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 0);
60
61   {
62     /* Update the recorded pc in the cpu state struct.
63        Only necessary for WITH_SCACHE case, but to avoid the
64        conditional compilation ....  */
65     SET_H_PC (pc);
66     /* Virtual insns have zero size.  Overwrite vpc with address of next insn
67        using the default-insn-bitsize spec.  When executing insns in parallel
68        we may want to queue the fault and continue execution.  */
69     vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
70     vpc = sim_engine_invalid_insn (current_cpu, pc, vpc);
71   }
72
73   return vpc;
74 #undef FLD
75 }
76
77 /* x-after: --after-- */
78
79 static SEM_PC
80 SEM_FN_NAME (frvbf,x_after) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
81 {
82 #define FLD(f) abuf->fields.fmt_empty.f
83   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
84   int UNUSED written = 0;
85   IADDR UNUSED pc = abuf->addr;
86   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 0);
87
88   {
89 #if WITH_SCACHE_PBB_FRVBF
90     frvbf_pbb_after (current_cpu, sem_arg);
91 #endif
92   }
93
94   return vpc;
95 #undef FLD
96 }
97
98 /* x-before: --before-- */
99
100 static SEM_PC
101 SEM_FN_NAME (frvbf,x_before) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
102 {
103 #define FLD(f) abuf->fields.fmt_empty.f
104   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
105   int UNUSED written = 0;
106   IADDR UNUSED pc = abuf->addr;
107   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 0);
108
109   {
110 #if WITH_SCACHE_PBB_FRVBF
111     frvbf_pbb_before (current_cpu, sem_arg);
112 #endif
113   }
114
115   return vpc;
116 #undef FLD
117 }
118
119 /* x-cti-chain: --cti-chain-- */
120
121 static SEM_PC
122 SEM_FN_NAME (frvbf,x_cti_chain) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
123 {
124 #define FLD(f) abuf->fields.fmt_empty.f
125   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
126   int UNUSED written = 0;
127   IADDR UNUSED pc = abuf->addr;
128   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 0);
129
130   {
131 #if WITH_SCACHE_PBB_FRVBF
132 #ifdef DEFINE_SWITCH
133     vpc = frvbf_pbb_cti_chain (current_cpu, sem_arg,
134                                pbb_br_type, pbb_br_npc);
135     BREAK (sem);
136 #else
137     /* FIXME: Allow provision of explicit ifmt spec in insn spec.  */
138     vpc = frvbf_pbb_cti_chain (current_cpu, sem_arg,
139                                CPU_PBB_BR_TYPE (current_cpu),
140                                CPU_PBB_BR_NPC (current_cpu));
141 #endif
142 #endif
143   }
144
145   return vpc;
146 #undef FLD
147 }
148
149 /* x-chain: --chain-- */
150
151 static SEM_PC
152 SEM_FN_NAME (frvbf,x_chain) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
153 {
154 #define FLD(f) abuf->fields.fmt_empty.f
155   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
156   int UNUSED written = 0;
157   IADDR UNUSED pc = abuf->addr;
158   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 0);
159
160   {
161 #if WITH_SCACHE_PBB_FRVBF
162     vpc = frvbf_pbb_chain (current_cpu, sem_arg);
163 #ifdef DEFINE_SWITCH
164     BREAK (sem);
165 #endif
166 #endif
167   }
168
169   return vpc;
170 #undef FLD
171 }
172
173 /* x-begin: --begin-- */
174
175 static SEM_PC
176 SEM_FN_NAME (frvbf,x_begin) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
177 {
178 #define FLD(f) abuf->fields.fmt_empty.f
179   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
180   int UNUSED written = 0;
181   IADDR UNUSED pc = abuf->addr;
182   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 0);
183
184   {
185 #if WITH_SCACHE_PBB_FRVBF
186 #if defined DEFINE_SWITCH || defined FAST_P
187     /* In the switch case FAST_P is a constant, allowing several optimizations
188        in any called inline functions.  */
189     vpc = frvbf_pbb_begin (current_cpu, FAST_P);
190 #else
191 #if 0 /* cgen engine can't handle dynamic fast/full switching yet.  */
192     vpc = frvbf_pbb_begin (current_cpu, STATE_RUN_FAST_P (CPU_STATE (current_cpu)));
193 #else
194     vpc = frvbf_pbb_begin (current_cpu, 0);
195 #endif
196 #endif
197 #endif
198   }
199
200   return vpc;
201 #undef FLD
202 }
203
204 /* add: add$pack $GRi,$GRj,$GRk */
205
206 static SEM_PC
207 SEM_FN_NAME (frvbf,add) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
208 {
209 #define FLD(f) abuf->fields.sfmt_addcc.f
210   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
211   int UNUSED written = 0;
212   IADDR UNUSED pc = abuf->addr;
213   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
214
215   {
216     SI opval = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
217     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
218     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
219   }
220
221   return vpc;
222 #undef FLD
223 }
224
225 /* sub: sub$pack $GRi,$GRj,$GRk */
226
227 static SEM_PC
228 SEM_FN_NAME (frvbf,sub) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
229 {
230 #define FLD(f) abuf->fields.sfmt_addcc.f
231   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
232   int UNUSED written = 0;
233   IADDR UNUSED pc = abuf->addr;
234   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
235
236   {
237     SI opval = SUBSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
238     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
239     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
240   }
241
242   return vpc;
243 #undef FLD
244 }
245
246 /* and: and$pack $GRi,$GRj,$GRk */
247
248 static SEM_PC
249 SEM_FN_NAME (frvbf,and) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
250 {
251 #define FLD(f) abuf->fields.sfmt_addcc.f
252   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
253   int UNUSED written = 0;
254   IADDR UNUSED pc = abuf->addr;
255   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
256
257   {
258     SI opval = ANDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
259     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
260     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
261   }
262
263   return vpc;
264 #undef FLD
265 }
266
267 /* or: or$pack $GRi,$GRj,$GRk */
268
269 static SEM_PC
270 SEM_FN_NAME (frvbf,or) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
271 {
272 #define FLD(f) abuf->fields.sfmt_addcc.f
273   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
274   int UNUSED written = 0;
275   IADDR UNUSED pc = abuf->addr;
276   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
277
278   {
279     SI opval = ORSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
280     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
281     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
282   }
283
284   return vpc;
285 #undef FLD
286 }
287
288 /* xor: xor$pack $GRi,$GRj,$GRk */
289
290 static SEM_PC
291 SEM_FN_NAME (frvbf,xor) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
292 {
293 #define FLD(f) abuf->fields.sfmt_addcc.f
294   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
295   int UNUSED written = 0;
296   IADDR UNUSED pc = abuf->addr;
297   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
298
299   {
300     SI opval = XORSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
301     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
302     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
303   }
304
305   return vpc;
306 #undef FLD
307 }
308
309 /* not: not$pack $GRj,$GRk */
310
311 static SEM_PC
312 SEM_FN_NAME (frvbf,not) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
313 {
314 #define FLD(f) abuf->fields.sfmt_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 /* rstb: rstb$pack $GRk,@($GRi,$GRj) */
5634
5635 static SEM_PC
5636 SEM_FN_NAME (frvbf,rstb) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5637 {
5638 #define FLD(f) abuf->fields.sfmt_cswap.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   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5647 frvbf_write_mem_QI (current_cpu, pc, tmp_address, GET_H_GR (FLD (f_GRk)));
5648 frvbf_check_recovering_store (current_cpu, tmp_address, FLD (f_GRk), 1, 0);
5649 }
5650
5651   return vpc;
5652 #undef FLD
5653 }
5654
5655 /* rsth: rsth$pack $GRk,@($GRi,$GRj) */
5656
5657 static SEM_PC
5658 SEM_FN_NAME (frvbf,rsth) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5659 {
5660 #define FLD(f) abuf->fields.sfmt_cswap.f
5661   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5662   int UNUSED written = 0;
5663   IADDR UNUSED pc = abuf->addr;
5664   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5665
5666 {
5667   SI tmp_address;
5668   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5669 frvbf_write_mem_HI (current_cpu, pc, tmp_address, GET_H_GR (FLD (f_GRk)));
5670 frvbf_check_recovering_store (current_cpu, tmp_address, FLD (f_GRk), 2, 0);
5671 }
5672
5673   return vpc;
5674 #undef FLD
5675 }
5676
5677 /* rst: rst$pack $GRk,@($GRi,$GRj) */
5678
5679 static SEM_PC
5680 SEM_FN_NAME (frvbf,rst) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5681 {
5682 #define FLD(f) abuf->fields.sfmt_cswap.f
5683   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5684   int UNUSED written = 0;
5685   IADDR UNUSED pc = abuf->addr;
5686   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5687
5688 {
5689   SI tmp_address;
5690   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5691 frvbf_write_mem_SI (current_cpu, pc, tmp_address, GET_H_GR (FLD (f_GRk)));
5692 frvbf_check_recovering_store (current_cpu, tmp_address, FLD (f_GRk), 4, 0);
5693 }
5694
5695   return vpc;
5696 #undef FLD
5697 }
5698
5699 /* rstbf: rstbf$pack $FRintk,@($GRi,$GRj) */
5700
5701 static SEM_PC
5702 SEM_FN_NAME (frvbf,rstbf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5703 {
5704 #define FLD(f) abuf->fields.sfmt_cstbfu.f
5705   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5706   int UNUSED written = 0;
5707   IADDR UNUSED pc = abuf->addr;
5708   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5709
5710 {
5711   SI tmp_address;
5712   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5713 frvbf_write_mem_QI (current_cpu, pc, tmp_address, GET_H_FR_INT (FLD (f_FRk)));
5714 frvbf_check_recovering_store (current_cpu, tmp_address, FLD (f_FRk), 1, 1);
5715 }
5716
5717   return vpc;
5718 #undef FLD
5719 }
5720
5721 /* rsthf: rsthf$pack $FRintk,@($GRi,$GRj) */
5722
5723 static SEM_PC
5724 SEM_FN_NAME (frvbf,rsthf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5725 {
5726 #define FLD(f) abuf->fields.sfmt_cstbfu.f
5727   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5728   int UNUSED written = 0;
5729   IADDR UNUSED pc = abuf->addr;
5730   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5731
5732 {
5733   SI tmp_address;
5734   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5735 frvbf_write_mem_HI (current_cpu, pc, tmp_address, GET_H_FR_INT (FLD (f_FRk)));
5736 frvbf_check_recovering_store (current_cpu, tmp_address, FLD (f_FRk), 2, 1);
5737 }
5738
5739   return vpc;
5740 #undef FLD
5741 }
5742
5743 /* rstf: rstf$pack $FRintk,@($GRi,$GRj) */
5744
5745 static SEM_PC
5746 SEM_FN_NAME (frvbf,rstf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5747 {
5748 #define FLD(f) abuf->fields.sfmt_cstbfu.f
5749   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5750   int UNUSED written = 0;
5751   IADDR UNUSED pc = abuf->addr;
5752   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5753
5754 {
5755   SI tmp_address;
5756   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5757 frvbf_write_mem_SI (current_cpu, pc, tmp_address, GET_H_FR_INT (FLD (f_FRk)));
5758 frvbf_check_recovering_store (current_cpu, tmp_address, FLD (f_FRk), 4, 1);
5759 }
5760
5761   return vpc;
5762 #undef FLD
5763 }
5764
5765 /* std: std$pack $GRk,@($GRi,$GRj) */
5766
5767 static SEM_PC
5768 SEM_FN_NAME (frvbf,std) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5769 {
5770 #define FLD(f) abuf->fields.sfmt_cstdu.f
5771   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5772   int UNUSED written = 0;
5773   IADDR UNUSED pc = abuf->addr;
5774   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5775
5776 {
5777   SI tmp_address;
5778 {
5779   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5780 frvbf_write_mem_DI (current_cpu, pc, tmp_address, GET_H_GR_DOUBLE (FLD (f_GRk)));
5781 }
5782 }
5783
5784   return vpc;
5785 #undef FLD
5786 }
5787
5788 /* stdf: stdf$pack $FRk,@($GRi,$GRj) */
5789
5790 static SEM_PC
5791 SEM_FN_NAME (frvbf,stdf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5792 {
5793 #define FLD(f) abuf->fields.sfmt_cstdfu.f
5794   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5795   int UNUSED written = 0;
5796   IADDR UNUSED pc = abuf->addr;
5797   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5798
5799 {
5800   SI tmp_address;
5801 {
5802   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5803 frvbf_write_mem_DF (current_cpu, pc, tmp_address, GET_H_FR_DOUBLE (FLD (f_FRk)));
5804 }
5805 }
5806
5807   return vpc;
5808 #undef FLD
5809 }
5810
5811 /* stdc: stdc$pack $CPRk,@($GRi,$GRj) */
5812
5813 static SEM_PC
5814 SEM_FN_NAME (frvbf,stdc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5815 {
5816 #define FLD(f) abuf->fields.sfmt_stdcu.f
5817   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5818   int UNUSED written = 0;
5819   IADDR UNUSED pc = abuf->addr;
5820   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5821
5822 {
5823   SI tmp_address;
5824 {
5825   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5826 frvbf_write_mem_DI (current_cpu, pc, tmp_address, GET_H_CPR_DOUBLE (FLD (f_CPRk)));
5827 }
5828 }
5829
5830   return vpc;
5831 #undef FLD
5832 }
5833
5834 /* rstd: rstd$pack $GRk,@($GRi,$GRj) */
5835
5836 static SEM_PC
5837 SEM_FN_NAME (frvbf,rstd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5838 {
5839 #define FLD(f) abuf->fields.sfmt_cstdu.f
5840   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5841   int UNUSED written = 0;
5842   IADDR UNUSED pc = abuf->addr;
5843   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5844
5845 {
5846   SI tmp_address;
5847 {
5848   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5849 frvbf_write_mem_DI (current_cpu, pc, tmp_address, GET_H_GR_DOUBLE (FLD (f_GRk)));
5850 }
5851 frvbf_check_recovering_store (current_cpu, tmp_address, FLD (f_GRk), 8, 0);
5852 }
5853
5854   return vpc;
5855 #undef FLD
5856 }
5857
5858 /* rstdf: rstdf$pack $FRk,@($GRi,$GRj) */
5859
5860 static SEM_PC
5861 SEM_FN_NAME (frvbf,rstdf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5862 {
5863 #define FLD(f) abuf->fields.sfmt_cstdfu.f
5864   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5865   int UNUSED written = 0;
5866   IADDR UNUSED pc = abuf->addr;
5867   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5868
5869 {
5870   SI tmp_address;
5871 {
5872   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5873 frvbf_write_mem_DF (current_cpu, pc, tmp_address, GET_H_FR_DOUBLE (FLD (f_FRk)));
5874 }
5875 frvbf_check_recovering_store (current_cpu, tmp_address, FLD (f_FRk), 8, 1);
5876 }
5877
5878   return vpc;
5879 #undef FLD
5880 }
5881
5882 /* stq: stq$pack $GRk,@($GRi,$GRj) */
5883
5884 static SEM_PC
5885 SEM_FN_NAME (frvbf,stq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5886 {
5887 #define FLD(f) abuf->fields.sfmt_smulcc.f
5888   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5889   int UNUSED written = 0;
5890   IADDR UNUSED pc = abuf->addr;
5891   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5892
5893 {
5894   SI tmp_address;
5895 {
5896   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5897 frvbf_store_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
5898 }
5899 }
5900
5901   return vpc;
5902 #undef FLD
5903 }
5904
5905 /* stqf: stqf$pack $FRintk,@($GRi,$GRj) */
5906
5907 static SEM_PC
5908 SEM_FN_NAME (frvbf,stqf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5909 {
5910 #define FLD(f) abuf->fields.sfmt_cstdfu.f
5911   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5912   int UNUSED written = 0;
5913   IADDR UNUSED pc = abuf->addr;
5914   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5915
5916 {
5917   SI tmp_address;
5918 {
5919   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5920 frvbf_store_quad_FRint (current_cpu, pc, tmp_address, FLD (f_FRk));
5921 }
5922 }
5923
5924   return vpc;
5925 #undef FLD
5926 }
5927
5928 /* stqc: stqc$pack $CPRk,@($GRi,$GRj) */
5929
5930 static SEM_PC
5931 SEM_FN_NAME (frvbf,stqc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5932 {
5933 #define FLD(f) abuf->fields.sfmt_stdcu.f
5934   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5935   int UNUSED written = 0;
5936   IADDR UNUSED pc = abuf->addr;
5937   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5938
5939 {
5940   SI tmp_address;
5941 {
5942   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5943 frvbf_store_quad_CPR (current_cpu, pc, tmp_address, FLD (f_CPRk));
5944 }
5945 }
5946
5947   return vpc;
5948 #undef FLD
5949 }
5950
5951 /* rstq: rstq$pack $GRk,@($GRi,$GRj) */
5952
5953 static SEM_PC
5954 SEM_FN_NAME (frvbf,rstq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5955 {
5956 #define FLD(f) abuf->fields.sfmt_smulcc.f
5957   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5958   int UNUSED written = 0;
5959   IADDR UNUSED pc = abuf->addr;
5960   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5961
5962 {
5963   SI tmp_address;
5964 {
5965   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5966 frvbf_store_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
5967 }
5968 frvbf_check_recovering_store (current_cpu, tmp_address, FLD (f_GRk), 16, 0);
5969 }
5970
5971   return vpc;
5972 #undef FLD
5973 }
5974
5975 /* rstqf: rstqf$pack $FRintk,@($GRi,$GRj) */
5976
5977 static SEM_PC
5978 SEM_FN_NAME (frvbf,rstqf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5979 {
5980 #define FLD(f) abuf->fields.sfmt_cstdfu.f
5981   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5982   int UNUSED written = 0;
5983   IADDR UNUSED pc = abuf->addr;
5984   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5985
5986 {
5987   SI tmp_address;
5988 {
5989   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5990 frvbf_store_quad_FRint (current_cpu, pc, tmp_address, FLD (f_FRk));
5991 }
5992 frvbf_check_recovering_store (current_cpu, tmp_address, FLD (f_FRk), 16, 1);
5993 }
5994
5995   return vpc;
5996 #undef FLD
5997 }
5998
5999 /* stbu: stbu$pack $GRk,@($GRi,$GRj) */
6000
6001 static SEM_PC
6002 SEM_FN_NAME (frvbf,stbu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6003 {
6004 #define FLD(f) abuf->fields.sfmt_cstbu.f
6005   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6006   int UNUSED written = 0;
6007   IADDR UNUSED pc = abuf->addr;
6008   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6009
6010 {
6011   USI tmp_address;
6012   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6013 frvbf_write_mem_QI (current_cpu, pc, tmp_address, GET_H_GR (FLD (f_GRk)));
6014   {
6015     SI opval = tmp_address;
6016     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6017     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6018   }
6019 }
6020
6021   return vpc;
6022 #undef FLD
6023 }
6024
6025 /* sthu: sthu$pack $GRk,@($GRi,$GRj) */
6026
6027 static SEM_PC
6028 SEM_FN_NAME (frvbf,sthu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6029 {
6030 #define FLD(f) abuf->fields.sfmt_cstbu.f
6031   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6032   int UNUSED written = 0;
6033   IADDR UNUSED pc = abuf->addr;
6034   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6035
6036 {
6037   USI tmp_address;
6038   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6039 frvbf_write_mem_HI (current_cpu, pc, tmp_address, GET_H_GR (FLD (f_GRk)));
6040   {
6041     SI opval = tmp_address;
6042     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6043     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6044   }
6045 }
6046
6047   return vpc;
6048 #undef FLD
6049 }
6050
6051 /* stu: stu$pack $GRk,@($GRi,$GRj) */
6052
6053 static SEM_PC
6054 SEM_FN_NAME (frvbf,stu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6055 {
6056 #define FLD(f) abuf->fields.sfmt_cstbu.f
6057   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6058   int UNUSED written = 0;
6059   IADDR UNUSED pc = abuf->addr;
6060   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6061
6062 {
6063   USI tmp_address;
6064   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6065 frvbf_write_mem_WI (current_cpu, pc, tmp_address, GET_H_GR (FLD (f_GRk)));
6066   {
6067     SI opval = tmp_address;
6068     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6069     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6070   }
6071 }
6072
6073   return vpc;
6074 #undef FLD
6075 }
6076
6077 /* stbfu: stbfu$pack $FRintk,@($GRi,$GRj) */
6078
6079 static SEM_PC
6080 SEM_FN_NAME (frvbf,stbfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6081 {
6082 #define FLD(f) abuf->fields.sfmt_cstbfu.f
6083   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6084   int UNUSED written = 0;
6085   IADDR UNUSED pc = abuf->addr;
6086   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6087
6088 {
6089   USI tmp_address;
6090   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6091 frvbf_write_mem_QI (current_cpu, pc, tmp_address, GET_H_FR_INT (FLD (f_FRk)));
6092   {
6093     SI opval = tmp_address;
6094     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6095     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6096   }
6097 }
6098
6099   return vpc;
6100 #undef FLD
6101 }
6102
6103 /* sthfu: sthfu$pack $FRintk,@($GRi,$GRj) */
6104
6105 static SEM_PC
6106 SEM_FN_NAME (frvbf,sthfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6107 {
6108 #define FLD(f) abuf->fields.sfmt_cstbfu.f
6109   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6110   int UNUSED written = 0;
6111   IADDR UNUSED pc = abuf->addr;
6112   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6113
6114 {
6115   USI tmp_address;
6116   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6117 frvbf_write_mem_HI (current_cpu, pc, tmp_address, GET_H_FR_INT (FLD (f_FRk)));
6118   {
6119     SI opval = tmp_address;
6120     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6121     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6122   }
6123 }
6124
6125   return vpc;
6126 #undef FLD
6127 }
6128
6129 /* stfu: stfu$pack $FRintk,@($GRi,$GRj) */
6130
6131 static SEM_PC
6132 SEM_FN_NAME (frvbf,stfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6133 {
6134 #define FLD(f) abuf->fields.sfmt_cstbfu.f
6135   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6136   int UNUSED written = 0;
6137   IADDR UNUSED pc = abuf->addr;
6138   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6139
6140 {
6141   USI tmp_address;
6142   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6143 frvbf_write_mem_SI (current_cpu, pc, tmp_address, GET_H_FR_INT (FLD (f_FRk)));
6144   {
6145     SI opval = tmp_address;
6146     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6147     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6148   }
6149 }
6150
6151   return vpc;
6152 #undef FLD
6153 }
6154
6155 /* stcu: stcu$pack $CPRk,@($GRi,$GRj) */
6156
6157 static SEM_PC
6158 SEM_FN_NAME (frvbf,stcu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6159 {
6160 #define FLD(f) abuf->fields.sfmt_stcu.f
6161   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6162   int UNUSED written = 0;
6163   IADDR UNUSED pc = abuf->addr;
6164   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6165
6166 {
6167   USI tmp_address;
6168   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6169 frvbf_write_mem_SI (current_cpu, pc, tmp_address, CPU (h_cpr[FLD (f_CPRk)]));
6170   {
6171     SI opval = tmp_address;
6172     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6173     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6174   }
6175 }
6176
6177   return vpc;
6178 #undef FLD
6179 }
6180
6181 /* stdu: stdu$pack $GRk,@($GRi,$GRj) */
6182
6183 static SEM_PC
6184 SEM_FN_NAME (frvbf,stdu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6185 {
6186 #define FLD(f) abuf->fields.sfmt_cstdu.f
6187   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6188   int UNUSED written = 0;
6189   IADDR UNUSED pc = abuf->addr;
6190   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6191
6192 {
6193   SI tmp_address;
6194 {
6195   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6196 frvbf_write_mem_DI (current_cpu, pc, tmp_address, GET_H_GR_DOUBLE (FLD (f_GRk)));
6197 }
6198   {
6199     SI opval = tmp_address;
6200     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6201     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6202   }
6203 }
6204
6205   return vpc;
6206 #undef FLD
6207 }
6208
6209 /* stdfu: stdfu$pack $FRk,@($GRi,$GRj) */
6210
6211 static SEM_PC
6212 SEM_FN_NAME (frvbf,stdfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6213 {
6214 #define FLD(f) abuf->fields.sfmt_cstdfu.f
6215   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6216   int UNUSED written = 0;
6217   IADDR UNUSED pc = abuf->addr;
6218   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6219
6220 {
6221   SI tmp_address;
6222 {
6223   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6224 frvbf_write_mem_DF (current_cpu, pc, tmp_address, GET_H_FR_DOUBLE (FLD (f_FRk)));
6225 }
6226   {
6227     SI opval = tmp_address;
6228     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6229     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6230   }
6231 }
6232
6233   return vpc;
6234 #undef FLD
6235 }
6236
6237 /* stdcu: stdcu$pack $CPRk,@($GRi,$GRj) */
6238
6239 static SEM_PC
6240 SEM_FN_NAME (frvbf,stdcu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6241 {
6242 #define FLD(f) abuf->fields.sfmt_stdcu.f
6243   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6244   int UNUSED written = 0;
6245   IADDR UNUSED pc = abuf->addr;
6246   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6247
6248 {
6249   SI tmp_address;
6250 {
6251   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6252 frvbf_write_mem_DI (current_cpu, pc, tmp_address, GET_H_CPR_DOUBLE (FLD (f_CPRk)));
6253 }
6254   {
6255     SI opval = tmp_address;
6256     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6257     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6258   }
6259 }
6260
6261   return vpc;
6262 #undef FLD
6263 }
6264
6265 /* stqu: stqu$pack $GRk,@($GRi,$GRj) */
6266
6267 static SEM_PC
6268 SEM_FN_NAME (frvbf,stqu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6269 {
6270 #define FLD(f) abuf->fields.sfmt_cstdu.f
6271   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6272   int UNUSED written = 0;
6273   IADDR UNUSED pc = abuf->addr;
6274   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6275
6276 {
6277   SI tmp_address;
6278 {
6279   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6280 frvbf_store_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
6281 }
6282   {
6283     SI opval = tmp_address;
6284     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6285     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6286   }
6287 }
6288
6289   return vpc;
6290 #undef FLD
6291 }
6292
6293 /* stqfu: stqfu$pack $FRintk,@($GRi,$GRj) */
6294
6295 static SEM_PC
6296 SEM_FN_NAME (frvbf,stqfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6297 {
6298 #define FLD(f) abuf->fields.sfmt_cstdfu.f
6299   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6300   int UNUSED written = 0;
6301   IADDR UNUSED pc = abuf->addr;
6302   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6303
6304 {
6305   SI tmp_address;
6306 {
6307   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6308 frvbf_store_quad_FRint (current_cpu, pc, tmp_address, FLD (f_FRk));
6309 }
6310   {
6311     SI opval = tmp_address;
6312     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6313     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6314   }
6315 }
6316
6317   return vpc;
6318 #undef FLD
6319 }
6320
6321 /* stqcu: stqcu$pack $CPRk,@($GRi,$GRj) */
6322
6323 static SEM_PC
6324 SEM_FN_NAME (frvbf,stqcu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6325 {
6326 #define FLD(f) abuf->fields.sfmt_stdcu.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 {
6333   SI tmp_address;
6334 {
6335   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6336 frvbf_store_quad_CPR (current_cpu, pc, tmp_address, FLD (f_CPRk));
6337 }
6338   {
6339     SI opval = tmp_address;
6340     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6341     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6342   }
6343 }
6344
6345   return vpc;
6346 #undef FLD
6347 }
6348
6349 /* cldsb: cldsb$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6350
6351 static SEM_PC
6352 SEM_FN_NAME (frvbf,cldsb) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6353 {
6354 #define FLD(f) abuf->fields.sfmt_cswap.f
6355   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6356   int UNUSED written = 0;
6357   IADDR UNUSED pc = abuf->addr;
6358   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6359
6360 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6361   {
6362     SI opval = frvbf_read_mem_QI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
6363     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
6364     written |= (1 << 5);
6365     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6366   }
6367 }
6368
6369   abuf->written = written;
6370   return vpc;
6371 #undef FLD
6372 }
6373
6374 /* cldub: cldub$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6375
6376 static SEM_PC
6377 SEM_FN_NAME (frvbf,cldub) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6378 {
6379 #define FLD(f) abuf->fields.sfmt_cswap.f
6380   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6381   int UNUSED written = 0;
6382   IADDR UNUSED pc = abuf->addr;
6383   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6384
6385 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6386   {
6387     SI opval = frvbf_read_mem_UQI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
6388     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
6389     written |= (1 << 5);
6390     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6391   }
6392 }
6393
6394   abuf->written = written;
6395   return vpc;
6396 #undef FLD
6397 }
6398
6399 /* cldsh: cldsh$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6400
6401 static SEM_PC
6402 SEM_FN_NAME (frvbf,cldsh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6403 {
6404 #define FLD(f) abuf->fields.sfmt_cswap.f
6405   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6406   int UNUSED written = 0;
6407   IADDR UNUSED pc = abuf->addr;
6408   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6409
6410 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6411   {
6412     SI opval = frvbf_read_mem_HI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
6413     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
6414     written |= (1 << 5);
6415     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6416   }
6417 }
6418
6419   abuf->written = written;
6420   return vpc;
6421 #undef FLD
6422 }
6423
6424 /* clduh: clduh$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6425
6426 static SEM_PC
6427 SEM_FN_NAME (frvbf,clduh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6428 {
6429 #define FLD(f) abuf->fields.sfmt_cswap.f
6430   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6431   int UNUSED written = 0;
6432   IADDR UNUSED pc = abuf->addr;
6433   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6434
6435 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6436   {
6437     SI opval = frvbf_read_mem_UHI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
6438     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
6439     written |= (1 << 5);
6440     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6441   }
6442 }
6443
6444   abuf->written = written;
6445   return vpc;
6446 #undef FLD
6447 }
6448
6449 /* cld: cld$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6450
6451 static SEM_PC
6452 SEM_FN_NAME (frvbf,cld) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6453 {
6454 #define FLD(f) abuf->fields.sfmt_cswap.f
6455   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6456   int UNUSED written = 0;
6457   IADDR UNUSED pc = abuf->addr;
6458   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6459
6460 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6461   {
6462     SI opval = frvbf_read_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
6463     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
6464     written |= (1 << 5);
6465     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6466   }
6467 }
6468
6469   abuf->written = written;
6470   return vpc;
6471 #undef FLD
6472 }
6473
6474 /* cldbf: cldbf$pack @($GRi,$GRj),$FRintk,$CCi,$cond */
6475
6476 static SEM_PC
6477 SEM_FN_NAME (frvbf,cldbf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6478 {
6479 #define FLD(f) abuf->fields.sfmt_cldbfu.f
6480   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6481   int UNUSED written = 0;
6482   IADDR UNUSED pc = abuf->addr;
6483   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6484
6485 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6486   {
6487     SI opval = frvbf_read_mem_UQI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
6488     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
6489     written |= (1 << 5);
6490     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
6491   }
6492 }
6493
6494   abuf->written = written;
6495   return vpc;
6496 #undef FLD
6497 }
6498
6499 /* cldhf: cldhf$pack @($GRi,$GRj),$FRintk,$CCi,$cond */
6500
6501 static SEM_PC
6502 SEM_FN_NAME (frvbf,cldhf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6503 {
6504 #define FLD(f) abuf->fields.sfmt_cldbfu.f
6505   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6506   int UNUSED written = 0;
6507   IADDR UNUSED pc = abuf->addr;
6508   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6509
6510 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6511   {
6512     SI opval = frvbf_read_mem_UHI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
6513     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
6514     written |= (1 << 5);
6515     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
6516   }
6517 }
6518
6519   abuf->written = written;
6520   return vpc;
6521 #undef FLD
6522 }
6523
6524 /* cldf: cldf$pack @($GRi,$GRj),$FRintk,$CCi,$cond */
6525
6526 static SEM_PC
6527 SEM_FN_NAME (frvbf,cldf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6528 {
6529 #define FLD(f) abuf->fields.sfmt_cldbfu.f
6530   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6531   int UNUSED written = 0;
6532   IADDR UNUSED pc = abuf->addr;
6533   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6534
6535 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6536   {
6537     SI opval = frvbf_read_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
6538     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
6539     written |= (1 << 5);
6540     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
6541   }
6542 }
6543
6544   abuf->written = written;
6545   return vpc;
6546 #undef FLD
6547 }
6548
6549 /* cldd: cldd$pack @($GRi,$GRj),$GRdoublek,$CCi,$cond */
6550
6551 static SEM_PC
6552 SEM_FN_NAME (frvbf,cldd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6553 {
6554 #define FLD(f) abuf->fields.sfmt_clddu.f
6555   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6556   int UNUSED written = 0;
6557   IADDR UNUSED pc = abuf->addr;
6558   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6559
6560 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6561 {
6562   SI tmp_address;
6563 if (NESI (FLD (f_GRk), 0)) {
6564 {
6565   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6566   {
6567     DI opval = frvbf_read_mem_DI (current_cpu, pc, tmp_address);
6568     sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
6569     written |= (1 << 6);
6570     TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
6571   }
6572 }
6573 }
6574 }
6575 }
6576
6577   abuf->written = written;
6578   return vpc;
6579 #undef FLD
6580 }
6581
6582 /* clddf: clddf$pack @($GRi,$GRj),$FRdoublek,$CCi,$cond */
6583
6584 static SEM_PC
6585 SEM_FN_NAME (frvbf,clddf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6586 {
6587 #define FLD(f) abuf->fields.sfmt_clddfu.f
6588   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6589   int UNUSED written = 0;
6590   IADDR UNUSED pc = abuf->addr;
6591   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6592
6593 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6594 {
6595   SI tmp_address;
6596 {
6597   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6598   {
6599     DF opval = frvbf_read_mem_DF (current_cpu, pc, tmp_address);
6600     sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
6601     written |= (1 << 5);
6602     TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
6603   }
6604 }
6605 }
6606 }
6607
6608   abuf->written = written;
6609   return vpc;
6610 #undef FLD
6611 }
6612
6613 /* cldq: cldq$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6614
6615 static SEM_PC
6616 SEM_FN_NAME (frvbf,cldq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6617 {
6618 #define FLD(f) abuf->fields.sfmt_cswap.f
6619   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6620   int UNUSED written = 0;
6621   IADDR UNUSED pc = abuf->addr;
6622   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6623
6624 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6625 {
6626   SI tmp_address;
6627 {
6628   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6629 frvbf_load_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
6630 }
6631 }
6632 }
6633
6634   return vpc;
6635 #undef FLD
6636 }
6637
6638 /* cldsbu: cldsbu$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6639
6640 static SEM_PC
6641 SEM_FN_NAME (frvbf,cldsbu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6642 {
6643 #define FLD(f) abuf->fields.sfmt_cldsbu.f
6644   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6645   int UNUSED written = 0;
6646   IADDR UNUSED pc = abuf->addr;
6647   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6648
6649 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6650 {
6651   SI tmp_address;
6652   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6653   {
6654     SI opval = frvbf_read_mem_QI (current_cpu, pc, tmp_address);
6655     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
6656     written |= (1 << 8);
6657     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6658   }
6659 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
6660   {
6661     SI opval = tmp_address;
6662     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6663     written |= (1 << 7);
6664     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6665   }
6666 }
6667 }
6668 }
6669
6670   abuf->written = written;
6671   return vpc;
6672 #undef FLD
6673 }
6674
6675 /* cldubu: cldubu$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6676
6677 static SEM_PC
6678 SEM_FN_NAME (frvbf,cldubu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6679 {
6680 #define FLD(f) abuf->fields.sfmt_cldsbu.f
6681   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6682   int UNUSED written = 0;
6683   IADDR UNUSED pc = abuf->addr;
6684   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6685
6686 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6687 {
6688   SI tmp_address;
6689   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6690   {
6691     SI opval = frvbf_read_mem_UQI (current_cpu, pc, tmp_address);
6692     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
6693     written |= (1 << 8);
6694     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6695   }
6696 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
6697   {
6698     SI opval = tmp_address;
6699     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6700     written |= (1 << 7);
6701     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6702   }
6703 }
6704 }
6705 }
6706
6707   abuf->written = written;
6708   return vpc;
6709 #undef FLD
6710 }
6711
6712 /* cldshu: cldshu$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6713
6714 static SEM_PC
6715 SEM_FN_NAME (frvbf,cldshu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6716 {
6717 #define FLD(f) abuf->fields.sfmt_cldsbu.f
6718   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6719   int UNUSED written = 0;
6720   IADDR UNUSED pc = abuf->addr;
6721   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6722
6723 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6724 {
6725   SI tmp_address;
6726   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6727   {
6728     SI opval = frvbf_read_mem_HI (current_cpu, pc, tmp_address);
6729     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
6730     written |= (1 << 8);
6731     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6732   }
6733 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
6734   {
6735     SI opval = tmp_address;
6736     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6737     written |= (1 << 7);
6738     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6739   }
6740 }
6741 }
6742 }
6743
6744   abuf->written = written;
6745   return vpc;
6746 #undef FLD
6747 }
6748
6749 /* clduhu: clduhu$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6750
6751 static SEM_PC
6752 SEM_FN_NAME (frvbf,clduhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6753 {
6754 #define FLD(f) abuf->fields.sfmt_cldsbu.f
6755   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6756   int UNUSED written = 0;
6757   IADDR UNUSED pc = abuf->addr;
6758   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6759
6760 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6761 {
6762   SI tmp_address;
6763   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6764   {
6765     SI opval = frvbf_read_mem_UHI (current_cpu, pc, tmp_address);
6766     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
6767     written |= (1 << 8);
6768     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6769   }
6770 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
6771   {
6772     SI opval = tmp_address;
6773     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6774     written |= (1 << 7);
6775     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6776   }
6777 }
6778 }
6779 }
6780
6781   abuf->written = written;
6782   return vpc;
6783 #undef FLD
6784 }
6785
6786 /* cldu: cldu$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6787
6788 static SEM_PC
6789 SEM_FN_NAME (frvbf,cldu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6790 {
6791 #define FLD(f) abuf->fields.sfmt_cldsbu.f
6792   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6793   int UNUSED written = 0;
6794   IADDR UNUSED pc = abuf->addr;
6795   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6796
6797 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6798 {
6799   SI tmp_address;
6800   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6801   {
6802     SI opval = frvbf_read_mem_SI (current_cpu, pc, tmp_address);
6803     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
6804     written |= (1 << 8);
6805     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6806   }
6807 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
6808   {
6809     SI opval = tmp_address;
6810     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6811     written |= (1 << 7);
6812     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6813   }
6814 }
6815 }
6816 }
6817
6818   abuf->written = written;
6819   return vpc;
6820 #undef FLD
6821 }
6822
6823 /* cldbfu: cldbfu$pack @($GRi,$GRj),$FRintk,$CCi,$cond */
6824
6825 static SEM_PC
6826 SEM_FN_NAME (frvbf,cldbfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6827 {
6828 #define FLD(f) abuf->fields.sfmt_cldbfu.f
6829   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6830   int UNUSED written = 0;
6831   IADDR UNUSED pc = abuf->addr;
6832   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6833
6834 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6835 {
6836   SI tmp_address;
6837   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6838   {
6839     SI opval = frvbf_read_mem_UQI (current_cpu, pc, tmp_address);
6840     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
6841     written |= (1 << 5);
6842     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
6843   }
6844   {
6845     SI opval = tmp_address;
6846     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6847     written |= (1 << 6);
6848     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6849   }
6850 }
6851 }
6852
6853   abuf->written = written;
6854   return vpc;
6855 #undef FLD
6856 }
6857
6858 /* cldhfu: cldhfu$pack @($GRi,$GRj),$FRintk,$CCi,$cond */
6859
6860 static SEM_PC
6861 SEM_FN_NAME (frvbf,cldhfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6862 {
6863 #define FLD(f) abuf->fields.sfmt_cldbfu.f
6864   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6865   int UNUSED written = 0;
6866   IADDR UNUSED pc = abuf->addr;
6867   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6868
6869 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6870 {
6871   SI tmp_address;
6872   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6873   {
6874     SI opval = frvbf_read_mem_UHI (current_cpu, pc, tmp_address);
6875     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
6876     written |= (1 << 5);
6877     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
6878   }
6879   {
6880     SI opval = tmp_address;
6881     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6882     written |= (1 << 6);
6883     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6884   }
6885 }
6886 }
6887
6888   abuf->written = written;
6889   return vpc;
6890 #undef FLD
6891 }
6892
6893 /* cldfu: cldfu$pack @($GRi,$GRj),$FRintk,$CCi,$cond */
6894
6895 static SEM_PC
6896 SEM_FN_NAME (frvbf,cldfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6897 {
6898 #define FLD(f) abuf->fields.sfmt_cldbfu.f
6899   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6900   int UNUSED written = 0;
6901   IADDR UNUSED pc = abuf->addr;
6902   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6903
6904 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6905 {
6906   SI tmp_address;
6907   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6908   {
6909     SI opval = frvbf_read_mem_SI (current_cpu, pc, tmp_address);
6910     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
6911     written |= (1 << 5);
6912     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
6913   }
6914   {
6915     SI opval = tmp_address;
6916     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6917     written |= (1 << 6);
6918     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6919   }
6920 }
6921 }
6922
6923   abuf->written = written;
6924   return vpc;
6925 #undef FLD
6926 }
6927
6928 /* clddu: clddu$pack @($GRi,$GRj),$GRdoublek,$CCi,$cond */
6929
6930 static SEM_PC
6931 SEM_FN_NAME (frvbf,clddu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6932 {
6933 #define FLD(f) abuf->fields.sfmt_clddu.f
6934   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6935   int UNUSED written = 0;
6936   IADDR UNUSED pc = abuf->addr;
6937   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6938
6939 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6940 {
6941   SI tmp_address;
6942 if (NESI (FLD (f_GRk), 0)) {
6943 {
6944   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6945   {
6946     DI opval = frvbf_read_mem_DI (current_cpu, pc, tmp_address);
6947     sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
6948     written |= (1 << 7);
6949     TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
6950   }
6951 }
6952 }
6953 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
6954   {
6955     SI opval = tmp_address;
6956     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6957     written |= (1 << 8);
6958     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6959   }
6960 }
6961 }
6962 }
6963
6964   abuf->written = written;
6965   return vpc;
6966 #undef FLD
6967 }
6968
6969 /* clddfu: clddfu$pack @($GRi,$GRj),$FRdoublek,$CCi,$cond */
6970
6971 static SEM_PC
6972 SEM_FN_NAME (frvbf,clddfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6973 {
6974 #define FLD(f) abuf->fields.sfmt_clddfu.f
6975   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6976   int UNUSED written = 0;
6977   IADDR UNUSED pc = abuf->addr;
6978   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6979
6980 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6981 {
6982   SI tmp_address;
6983 {
6984   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6985   {
6986     DF opval = frvbf_read_mem_DF (current_cpu, pc, tmp_address);
6987     sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
6988     written |= (1 << 5);
6989     TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
6990   }
6991 }
6992   {
6993     SI opval = tmp_address;
6994     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6995     written |= (1 << 6);
6996     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6997   }
6998 }
6999 }
7000
7001   abuf->written = written;
7002   return vpc;
7003 #undef FLD
7004 }
7005
7006 /* cldqu: cldqu$pack @($GRi,$GRj),$GRk,$CCi,$cond */
7007
7008 static SEM_PC
7009 SEM_FN_NAME (frvbf,cldqu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7010 {
7011 #define FLD(f) abuf->fields.sfmt_cstdu.f
7012   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7013   int UNUSED written = 0;
7014   IADDR UNUSED pc = abuf->addr;
7015   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7016
7017 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7018 {
7019   SI tmp_address;
7020 {
7021   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7022 frvbf_load_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
7023 }
7024 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
7025   {
7026     SI opval = tmp_address;
7027     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
7028     written |= (1 << 7);
7029     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7030   }
7031 }
7032 }
7033 }
7034
7035   abuf->written = written;
7036   return vpc;
7037 #undef FLD
7038 }
7039
7040 /* cstb: cstb$pack $GRk,@($GRi,$GRj),$CCi,$cond */
7041
7042 static SEM_PC
7043 SEM_FN_NAME (frvbf,cstb) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7044 {
7045 #define FLD(f) abuf->fields.sfmt_cswap.f
7046   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7047   int UNUSED written = 0;
7048   IADDR UNUSED pc = abuf->addr;
7049   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7050
7051 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7052 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)));
7053 }
7054
7055   return vpc;
7056 #undef FLD
7057 }
7058
7059 /* csth: csth$pack $GRk,@($GRi,$GRj),$CCi,$cond */
7060
7061 static SEM_PC
7062 SEM_FN_NAME (frvbf,csth) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7063 {
7064 #define FLD(f) abuf->fields.sfmt_cswap.f
7065   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7066   int UNUSED written = 0;
7067   IADDR UNUSED pc = abuf->addr;
7068   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7069
7070 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7071 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)));
7072 }
7073
7074   return vpc;
7075 #undef FLD
7076 }
7077
7078 /* cst: cst$pack $GRk,@($GRi,$GRj),$CCi,$cond */
7079
7080 static SEM_PC
7081 SEM_FN_NAME (frvbf,cst) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7082 {
7083 #define FLD(f) abuf->fields.sfmt_cswap.f
7084   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7085   int UNUSED written = 0;
7086   IADDR UNUSED pc = abuf->addr;
7087   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7088
7089 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7090 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)));
7091 }
7092
7093   return vpc;
7094 #undef FLD
7095 }
7096
7097 /* cstbf: cstbf$pack $FRintk,@($GRi,$GRj),$CCi,$cond */
7098
7099 static SEM_PC
7100 SEM_FN_NAME (frvbf,cstbf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7101 {
7102 #define FLD(f) abuf->fields.sfmt_cstbfu.f
7103   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7104   int UNUSED written = 0;
7105   IADDR UNUSED pc = abuf->addr;
7106   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7107
7108 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7109 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)));
7110 }
7111
7112   return vpc;
7113 #undef FLD
7114 }
7115
7116 /* csthf: csthf$pack $FRintk,@($GRi,$GRj),$CCi,$cond */
7117
7118 static SEM_PC
7119 SEM_FN_NAME (frvbf,csthf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7120 {
7121 #define FLD(f) abuf->fields.sfmt_cstbfu.f
7122   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7123   int UNUSED written = 0;
7124   IADDR UNUSED pc = abuf->addr;
7125   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7126
7127 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7128 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)));
7129 }
7130
7131   return vpc;
7132 #undef FLD
7133 }
7134
7135 /* cstf: cstf$pack $FRintk,@($GRi,$GRj),$CCi,$cond */
7136
7137 static SEM_PC
7138 SEM_FN_NAME (frvbf,cstf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7139 {
7140 #define FLD(f) abuf->fields.sfmt_cstbfu.f
7141   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7142   int UNUSED written = 0;
7143   IADDR UNUSED pc = abuf->addr;
7144   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7145
7146 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7147 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)));
7148 }
7149
7150   return vpc;
7151 #undef FLD
7152 }
7153
7154 /* cstd: cstd$pack $GRk,@($GRi,$GRj),$CCi,$cond */
7155
7156 static SEM_PC
7157 SEM_FN_NAME (frvbf,cstd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7158 {
7159 #define FLD(f) abuf->fields.sfmt_cstdu.f
7160   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7161   int UNUSED written = 0;
7162   IADDR UNUSED pc = abuf->addr;
7163   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7164
7165 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7166 {
7167   SI tmp_address;
7168 {
7169   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7170 frvbf_write_mem_DI (current_cpu, pc, tmp_address, GET_H_GR_DOUBLE (FLD (f_GRk)));
7171 }
7172 }
7173 }
7174
7175   return vpc;
7176 #undef FLD
7177 }
7178
7179 /* cstdf: cstdf$pack $FRk,@($GRi,$GRj),$CCi,$cond */
7180
7181 static SEM_PC
7182 SEM_FN_NAME (frvbf,cstdf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7183 {
7184 #define FLD(f) abuf->fields.sfmt_cstdfu.f
7185   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7186   int UNUSED written = 0;
7187   IADDR UNUSED pc = abuf->addr;
7188   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7189
7190 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7191 {
7192   SI tmp_address;
7193 {
7194   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7195 frvbf_write_mem_DF (current_cpu, pc, tmp_address, GET_H_FR_DOUBLE (FLD (f_FRk)));
7196 }
7197 }
7198 }
7199
7200   return vpc;
7201 #undef FLD
7202 }
7203
7204 /* cstq: cstq$pack $GRk,@($GRi,$GRj),$CCi,$cond */
7205
7206 static SEM_PC
7207 SEM_FN_NAME (frvbf,cstq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7208 {
7209 #define FLD(f) abuf->fields.sfmt_cswap.f
7210   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7211   int UNUSED written = 0;
7212   IADDR UNUSED pc = abuf->addr;
7213   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7214
7215 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7216 {
7217   SI tmp_address;
7218 {
7219   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7220 frvbf_store_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
7221 }
7222 }
7223 }
7224
7225   return vpc;
7226 #undef FLD
7227 }
7228
7229 /* cstbu: cstbu$pack $GRk,@($GRi,$GRj),$CCi,$cond */
7230
7231 static SEM_PC
7232 SEM_FN_NAME (frvbf,cstbu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7233 {
7234 #define FLD(f) abuf->fields.sfmt_cstbu.f
7235   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7236   int UNUSED written = 0;
7237   IADDR UNUSED pc = abuf->addr;
7238   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7239
7240 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7241 {
7242   SI tmp_address;
7243   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7244 frvbf_write_mem_QI (current_cpu, pc, tmp_address, GET_H_GR (FLD (f_GRk)));
7245   {
7246     SI opval = tmp_address;
7247     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
7248     written |= (1 << 6);
7249     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7250   }
7251 }
7252 }
7253
7254   abuf->written = written;
7255   return vpc;
7256 #undef FLD
7257 }
7258
7259 /* csthu: csthu$pack $GRk,@($GRi,$GRj),$CCi,$cond */
7260
7261 static SEM_PC
7262 SEM_FN_NAME (frvbf,csthu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7263 {
7264 #define FLD(f) abuf->fields.sfmt_cstbu.f
7265   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7266   int UNUSED written = 0;
7267   IADDR UNUSED pc = abuf->addr;
7268   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7269
7270 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7271 {
7272   SI tmp_address;
7273   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7274 frvbf_write_mem_HI (current_cpu, pc, tmp_address, GET_H_GR (FLD (f_GRk)));
7275   {
7276     SI opval = tmp_address;
7277     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
7278     written |= (1 << 6);
7279     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7280   }
7281 }
7282 }
7283
7284   abuf->written = written;
7285   return vpc;
7286 #undef FLD
7287 }
7288
7289 /* cstu: cstu$pack $GRk,@($GRi,$GRj),$CCi,$cond */
7290
7291 static SEM_PC
7292 SEM_FN_NAME (frvbf,cstu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7293 {
7294 #define FLD(f) abuf->fields.sfmt_cstbu.f
7295   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7296   int UNUSED written = 0;
7297   IADDR UNUSED pc = abuf->addr;
7298   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7299
7300 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7301 {
7302   SI tmp_address;
7303   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7304 frvbf_write_mem_SI (current_cpu, pc, tmp_address, GET_H_GR (FLD (f_GRk)));
7305   {
7306     SI opval = tmp_address;
7307     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
7308     written |= (1 << 6);
7309     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7310   }
7311 }
7312 }
7313
7314   abuf->written = written;
7315   return vpc;
7316 #undef FLD
7317 }
7318
7319 /* cstbfu: cstbfu$pack $FRintk,@($GRi,$GRj),$CCi,$cond */
7320
7321 static SEM_PC
7322 SEM_FN_NAME (frvbf,cstbfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7323 {
7324 #define FLD(f) abuf->fields.sfmt_cstbfu.f
7325   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7326   int UNUSED written = 0;
7327   IADDR UNUSED pc = abuf->addr;
7328   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7329
7330 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7331 {
7332   SI tmp_address;
7333   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7334 frvbf_write_mem_QI (current_cpu, pc, tmp_address, GET_H_FR_INT (FLD (f_FRk)));
7335   {
7336     SI opval = tmp_address;
7337     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
7338     written |= (1 << 6);
7339     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7340   }
7341 }
7342 }
7343
7344   abuf->written = written;
7345   return vpc;
7346 #undef FLD
7347 }
7348
7349 /* csthfu: csthfu$pack $FRintk,@($GRi,$GRj),$CCi,$cond */
7350
7351 static SEM_PC
7352 SEM_FN_NAME (frvbf,csthfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7353 {
7354 #define FLD(f) abuf->fields.sfmt_cstbfu.f
7355   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7356   int UNUSED written = 0;
7357   IADDR UNUSED pc = abuf->addr;
7358   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7359
7360 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7361 {
7362   SI tmp_address;
7363   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7364 frvbf_write_mem_HI (current_cpu, pc, tmp_address, GET_H_FR_INT (FLD (f_FRk)));
7365   {
7366     SI opval = tmp_address;
7367     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
7368     written |= (1 << 6);
7369     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7370   }
7371 }
7372 }
7373
7374   abuf->written = written;
7375   return vpc;
7376 #undef FLD
7377 }
7378
7379 /* cstfu: cstfu$pack $FRintk,@($GRi,$GRj),$CCi,$cond */
7380
7381 static SEM_PC
7382 SEM_FN_NAME (frvbf,cstfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7383 {
7384 #define FLD(f) abuf->fields.sfmt_cstbfu.f
7385   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7386   int UNUSED written = 0;
7387   IADDR UNUSED pc = abuf->addr;
7388   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7389
7390 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7391 {
7392   SI tmp_address;
7393   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7394 frvbf_write_mem_SI (current_cpu, pc, tmp_address, GET_H_FR_INT (FLD (f_FRk)));
7395   {
7396     SI opval = tmp_address;
7397     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
7398     written |= (1 << 6);
7399     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7400   }
7401 }
7402 }
7403
7404   abuf->written = written;
7405   return vpc;
7406 #undef FLD
7407 }
7408
7409 /* cstdu: cstdu$pack $GRk,@($GRi,$GRj),$CCi,$cond */
7410
7411 static SEM_PC
7412 SEM_FN_NAME (frvbf,cstdu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7413 {
7414 #define FLD(f) abuf->fields.sfmt_cstdu.f
7415   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7416   int UNUSED written = 0;
7417   IADDR UNUSED pc = abuf->addr;
7418   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7419
7420 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7421 {
7422   SI tmp_address;
7423 {
7424   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7425 frvbf_write_mem_DI (current_cpu, pc, tmp_address, GET_H_GR_DOUBLE (FLD (f_GRk)));
7426 }
7427   {
7428     SI opval = tmp_address;
7429     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
7430     written |= (1 << 6);
7431     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7432   }
7433 }
7434 }
7435
7436   abuf->written = written;
7437   return vpc;
7438 #undef FLD
7439 }
7440
7441 /* cstdfu: cstdfu$pack $FRk,@($GRi,$GRj),$CCi,$cond */
7442
7443 static SEM_PC
7444 SEM_FN_NAME (frvbf,cstdfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7445 {
7446 #define FLD(f) abuf->fields.sfmt_cstdfu.f
7447   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7448   int UNUSED written = 0;
7449   IADDR UNUSED pc = abuf->addr;
7450   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7451
7452 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7453 {
7454   SI tmp_address;
7455 {
7456   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7457 frvbf_write_mem_DF (current_cpu, pc, tmp_address, GET_H_FR_DOUBLE (FLD (f_FRk)));
7458 }
7459   {
7460     SI opval = tmp_address;
7461     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
7462     written |= (1 << 6);
7463     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7464   }
7465 }
7466 }
7467
7468   abuf->written = written;
7469   return vpc;
7470 #undef FLD
7471 }
7472
7473 /* stbi: stbi$pack $GRk,@($GRi,$d12) */
7474
7475 static SEM_PC
7476 SEM_FN_NAME (frvbf,stbi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7477 {
7478 #define FLD(f) abuf->fields.sfmt_swapi.f
7479   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7480   int UNUSED written = 0;
7481   IADDR UNUSED pc = abuf->addr;
7482   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7483
7484 frvbf_write_mem_QI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)), GET_H_GR (FLD (f_GRk)));
7485
7486   return vpc;
7487 #undef FLD
7488 }
7489
7490 /* sthi: sthi$pack $GRk,@($GRi,$d12) */
7491
7492 static SEM_PC
7493 SEM_FN_NAME (frvbf,sthi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7494 {
7495 #define FLD(f) abuf->fields.sfmt_swapi.f
7496   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7497   int UNUSED written = 0;
7498   IADDR UNUSED pc = abuf->addr;
7499   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7500
7501 frvbf_write_mem_HI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)), GET_H_GR (FLD (f_GRk)));
7502
7503   return vpc;
7504 #undef FLD
7505 }
7506
7507 /* sti: sti$pack $GRk,@($GRi,$d12) */
7508
7509 static SEM_PC
7510 SEM_FN_NAME (frvbf,sti) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7511 {
7512 #define FLD(f) abuf->fields.sfmt_swapi.f
7513   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7514   int UNUSED written = 0;
7515   IADDR UNUSED pc = abuf->addr;
7516   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7517
7518 frvbf_write_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)), GET_H_GR (FLD (f_GRk)));
7519
7520   return vpc;
7521 #undef FLD
7522 }
7523
7524 /* stbfi: stbfi$pack $FRintk,@($GRi,$d12) */
7525
7526 static SEM_PC
7527 SEM_FN_NAME (frvbf,stbfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7528 {
7529 #define FLD(f) abuf->fields.sfmt_stbfi.f
7530   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7531   int UNUSED written = 0;
7532   IADDR UNUSED pc = abuf->addr;
7533   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7534
7535 frvbf_write_mem_QI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)), GET_H_FR_INT (FLD (f_FRk)));
7536
7537   return vpc;
7538 #undef FLD
7539 }
7540
7541 /* sthfi: sthfi$pack $FRintk,@($GRi,$d12) */
7542
7543 static SEM_PC
7544 SEM_FN_NAME (frvbf,sthfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7545 {
7546 #define FLD(f) abuf->fields.sfmt_stbfi.f
7547   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7548   int UNUSED written = 0;
7549   IADDR UNUSED pc = abuf->addr;
7550   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7551
7552 frvbf_write_mem_HI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)), GET_H_FR_INT (FLD (f_FRk)));
7553
7554   return vpc;
7555 #undef FLD
7556 }
7557
7558 /* stfi: stfi$pack $FRintk,@($GRi,$d12) */
7559
7560 static SEM_PC
7561 SEM_FN_NAME (frvbf,stfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7562 {
7563 #define FLD(f) abuf->fields.sfmt_stbfi.f
7564   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7565   int UNUSED written = 0;
7566   IADDR UNUSED pc = abuf->addr;
7567   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7568
7569 frvbf_write_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)), GET_H_FR_INT (FLD (f_FRk)));
7570
7571   return vpc;
7572 #undef FLD
7573 }
7574
7575 /* stdi: stdi$pack $GRk,@($GRi,$d12) */
7576
7577 static SEM_PC
7578 SEM_FN_NAME (frvbf,stdi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7579 {
7580 #define FLD(f) abuf->fields.sfmt_stdi.f
7581   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7582   int UNUSED written = 0;
7583   IADDR UNUSED pc = abuf->addr;
7584   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7585
7586 {
7587   SI tmp_address;
7588 {
7589   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
7590 frvbf_write_mem_DI (current_cpu, pc, tmp_address, GET_H_GR_DOUBLE (FLD (f_GRk)));
7591 }
7592 }
7593
7594   return vpc;
7595 #undef FLD
7596 }
7597
7598 /* stdfi: stdfi$pack $FRk,@($GRi,$d12) */
7599
7600 static SEM_PC
7601 SEM_FN_NAME (frvbf,stdfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7602 {
7603 #define FLD(f) abuf->fields.sfmt_stdfi.f
7604   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7605   int UNUSED written = 0;
7606   IADDR UNUSED pc = abuf->addr;
7607   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7608
7609 {
7610   SI tmp_address;
7611 {
7612   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
7613 frvbf_write_mem_DF (current_cpu, pc, tmp_address, GET_H_FR_DOUBLE (FLD (f_FRk)));
7614 }
7615 }
7616
7617   return vpc;
7618 #undef FLD
7619 }
7620
7621 /* stqi: stqi$pack $GRk,@($GRi,$d12) */
7622
7623 static SEM_PC
7624 SEM_FN_NAME (frvbf,stqi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7625 {
7626 #define FLD(f) abuf->fields.sfmt_stdi.f
7627   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7628   int UNUSED written = 0;
7629   IADDR UNUSED pc = abuf->addr;
7630   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7631
7632 {
7633   SI tmp_address;
7634 {
7635   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
7636 frvbf_store_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
7637 }
7638 }
7639
7640   return vpc;
7641 #undef FLD
7642 }
7643
7644 /* stqfi: stqfi$pack $FRintk,@($GRi,$d12) */
7645
7646 static SEM_PC
7647 SEM_FN_NAME (frvbf,stqfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7648 {
7649 #define FLD(f) abuf->fields.sfmt_stdfi.f
7650   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7651   int UNUSED written = 0;
7652   IADDR UNUSED pc = abuf->addr;
7653   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7654
7655 {
7656   SI tmp_address;
7657 {
7658   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
7659 frvbf_store_quad_FRint (current_cpu, pc, tmp_address, FLD (f_FRk));
7660 }
7661 }
7662
7663   return vpc;
7664 #undef FLD
7665 }
7666
7667 /* swap: swap$pack @($GRi,$GRj),$GRk */
7668
7669 static SEM_PC
7670 SEM_FN_NAME (frvbf,swap) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7671 {
7672 #define FLD(f) abuf->fields.sfmt_cswap.f
7673   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7674   int UNUSED written = 0;
7675   IADDR UNUSED pc = abuf->addr;
7676   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7677
7678 {
7679   SI tmp_tmp;
7680   SI tmp_address;
7681   tmp_tmp = GET_H_GR (FLD (f_GRk));
7682   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7683 frvbf_check_swap_address (current_cpu, tmp_address);
7684   {
7685     SI opval = frvbf_read_mem_WI (current_cpu, pc, tmp_address);
7686     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
7687     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7688   }
7689 frvbf_write_mem_WI (current_cpu, pc, tmp_address, tmp_tmp);
7690 }
7691
7692   return vpc;
7693 #undef FLD
7694 }
7695
7696 /* swapi: swapi$pack @($GRi,$d12),$GRk */
7697
7698 static SEM_PC
7699 SEM_FN_NAME (frvbf,swapi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7700 {
7701 #define FLD(f) abuf->fields.sfmt_swapi.f
7702   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7703   int UNUSED written = 0;
7704   IADDR UNUSED pc = abuf->addr;
7705   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7706
7707 {
7708   SI tmp_tmp;
7709   SI tmp_address;
7710   tmp_tmp = GET_H_GR (FLD (f_GRk));
7711   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
7712 frvbf_check_swap_address (current_cpu, tmp_address);
7713   {
7714     SI opval = frvbf_read_mem_WI (current_cpu, pc, tmp_address);
7715     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
7716     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7717   }
7718 frvbf_write_mem_WI (current_cpu, pc, tmp_address, tmp_tmp);
7719 }
7720
7721   return vpc;
7722 #undef FLD
7723 }
7724
7725 /* cswap: cswap$pack @($GRi,$GRj),$GRk,$CCi,$cond */
7726
7727 static SEM_PC
7728 SEM_FN_NAME (frvbf,cswap) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7729 {
7730 #define FLD(f) abuf->fields.sfmt_cswap.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 (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7737 {
7738   SI tmp_tmp;
7739   SI tmp_address;
7740   tmp_tmp = GET_H_GR (FLD (f_GRk));
7741   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7742 frvbf_check_swap_address (current_cpu, tmp_address);
7743   {
7744     SI opval = frvbf_read_mem_WI (current_cpu, pc, tmp_address);
7745     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
7746     written |= (1 << 6);
7747     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7748   }
7749 frvbf_write_mem_WI (current_cpu, pc, tmp_address, tmp_tmp);
7750 }
7751 }
7752
7753   abuf->written = written;
7754   return vpc;
7755 #undef FLD
7756 }
7757
7758 /* movgf: movgf$pack $GRj,$FRintk */
7759
7760 static SEM_PC
7761 SEM_FN_NAME (frvbf,movgf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7762 {
7763 #define FLD(f) abuf->fields.sfmt_cmovgfd.f
7764   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7765   int UNUSED written = 0;
7766   IADDR UNUSED pc = abuf->addr;
7767   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7768
7769   {
7770     SI opval = GET_H_GR (FLD (f_GRj));
7771     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
7772     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7773   }
7774
7775   return vpc;
7776 #undef FLD
7777 }
7778
7779 /* movfg: movfg$pack $FRintk,$GRj */
7780
7781 static SEM_PC
7782 SEM_FN_NAME (frvbf,movfg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7783 {
7784 #define FLD(f) abuf->fields.sfmt_cmovfgd.f
7785   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7786   int UNUSED written = 0;
7787   IADDR UNUSED pc = abuf->addr;
7788   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7789
7790   {
7791     SI opval = GET_H_FR_INT (FLD (f_FRk));
7792     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRj), opval);
7793     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7794   }
7795
7796   return vpc;
7797 #undef FLD
7798 }
7799
7800 /* movgfd: movgfd$pack $GRj,$FRintk */
7801
7802 static SEM_PC
7803 SEM_FN_NAME (frvbf,movgfd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7804 {
7805 #define FLD(f) abuf->fields.sfmt_cmovgfd.f
7806   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7807   int UNUSED written = 0;
7808   IADDR UNUSED pc = abuf->addr;
7809   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7810
7811 if (EQSI (FLD (f_GRj), 0)) {
7812 {
7813   {
7814     SI opval = 0;
7815     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
7816     written |= (1 << 4);
7817     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7818   }
7819   {
7820     USI opval = 0;
7821     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (1)), opval);
7822     written |= (1 << 5);
7823     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7824   }
7825 }
7826 } else {
7827 {
7828   {
7829     SI opval = GET_H_GR (FLD (f_GRj));
7830     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
7831     written |= (1 << 4);
7832     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7833   }
7834   {
7835     USI opval = GET_H_GR (((FLD (f_GRj)) + (1)));
7836     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (1)), opval);
7837     written |= (1 << 5);
7838     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7839   }
7840 }
7841 }
7842
7843   abuf->written = written;
7844   return vpc;
7845 #undef FLD
7846 }
7847
7848 /* movfgd: movfgd$pack $FRintk,$GRj */
7849
7850 static SEM_PC
7851 SEM_FN_NAME (frvbf,movfgd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7852 {
7853 #define FLD(f) abuf->fields.sfmt_cmovfgd.f
7854   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7855   int UNUSED written = 0;
7856   IADDR UNUSED pc = abuf->addr;
7857   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7858
7859 if (NESI (FLD (f_GRj), 0)) {
7860 {
7861   {
7862     SI opval = GET_H_FR_INT (FLD (f_FRk));
7863     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRj), opval);
7864     written |= (1 << 4);
7865     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7866   }
7867   {
7868     USI opval = GET_H_FR_INT (((FLD (f_FRk)) + (1)));
7869     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, ((FLD (f_GRj)) + (1)), opval);
7870     written |= (1 << 5);
7871     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7872   }
7873 }
7874 }
7875
7876   abuf->written = written;
7877   return vpc;
7878 #undef FLD
7879 }
7880
7881 /* movgfq: movgfq$pack $GRj,$FRintk */
7882
7883 static SEM_PC
7884 SEM_FN_NAME (frvbf,movgfq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7885 {
7886 #define FLD(f) abuf->fields.sfmt_movgfq.f
7887   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7888   int UNUSED written = 0;
7889   IADDR UNUSED pc = abuf->addr;
7890   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7891
7892 if (EQSI (FLD (f_GRj), 0)) {
7893 {
7894   {
7895     SI opval = 0;
7896     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
7897     written |= (1 << 6);
7898     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7899   }
7900   {
7901     USI opval = 0;
7902     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (1)), opval);
7903     written |= (1 << 7);
7904     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7905   }
7906   {
7907     USI opval = 0;
7908     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (2)), opval);
7909     written |= (1 << 8);
7910     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7911   }
7912   {
7913     USI opval = 0;
7914     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (3)), opval);
7915     written |= (1 << 9);
7916     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7917   }
7918 }
7919 } else {
7920 {
7921   {
7922     SI opval = GET_H_GR (FLD (f_GRj));
7923     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
7924     written |= (1 << 6);
7925     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7926   }
7927   {
7928     USI opval = GET_H_GR (((FLD (f_GRj)) + (1)));
7929     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (1)), opval);
7930     written |= (1 << 7);
7931     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7932   }
7933   {
7934     USI opval = GET_H_GR (((FLD (f_GRj)) + (2)));
7935     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (2)), opval);
7936     written |= (1 << 8);
7937     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7938   }
7939   {
7940     USI opval = GET_H_GR (((FLD (f_GRj)) + (3)));
7941     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (3)), opval);
7942     written |= (1 << 9);
7943     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7944   }
7945 }
7946 }
7947
7948   abuf->written = written;
7949   return vpc;
7950 #undef FLD
7951 }
7952
7953 /* movfgq: movfgq$pack $FRintk,$GRj */
7954
7955 static SEM_PC
7956 SEM_FN_NAME (frvbf,movfgq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7957 {
7958 #define FLD(f) abuf->fields.sfmt_movfgq.f
7959   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7960   int UNUSED written = 0;
7961   IADDR UNUSED pc = abuf->addr;
7962   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7963
7964 if (NESI (FLD (f_GRj), 0)) {
7965 {
7966   {
7967     SI opval = GET_H_FR_INT (FLD (f_FRk));
7968     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRj), opval);
7969     written |= (1 << 6);
7970     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7971   }
7972   {
7973     USI opval = GET_H_FR_INT (((FLD (f_FRk)) + (1)));
7974     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, ((FLD (f_GRj)) + (1)), opval);
7975     written |= (1 << 7);
7976     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7977   }
7978   {
7979     USI opval = GET_H_FR_INT (((FLD (f_FRk)) + (2)));
7980     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, ((FLD (f_GRj)) + (2)), opval);
7981     written |= (1 << 8);
7982     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7983   }
7984   {
7985     USI opval = GET_H_FR_INT (((FLD (f_FRk)) + (3)));
7986     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, ((FLD (f_GRj)) + (3)), opval);
7987     written |= (1 << 9);
7988     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7989   }
7990 }
7991 }
7992
7993   abuf->written = written;
7994   return vpc;
7995 #undef FLD
7996 }
7997
7998 /* cmovgf: cmovgf$pack $GRj,$FRintk,$CCi,$cond */
7999
8000 static SEM_PC
8001 SEM_FN_NAME (frvbf,cmovgf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8002 {
8003 #define FLD(f) abuf->fields.sfmt_cmovgfd.f
8004   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8005   int UNUSED written = 0;
8006   IADDR UNUSED pc = abuf->addr;
8007   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8008
8009 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
8010   {
8011     SI opval = GET_H_GR (FLD (f_GRj));
8012     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
8013     written |= (1 << 3);
8014     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
8015   }
8016 }
8017
8018   abuf->written = written;
8019   return vpc;
8020 #undef FLD
8021 }
8022
8023 /* cmovfg: cmovfg$pack $FRintk,$GRj,$CCi,$cond */
8024
8025 static SEM_PC
8026 SEM_FN_NAME (frvbf,cmovfg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8027 {
8028 #define FLD(f) abuf->fields.sfmt_cmovfgd.f
8029   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8030   int UNUSED written = 0;
8031   IADDR UNUSED pc = abuf->addr;
8032   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8033
8034 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
8035   {
8036     SI opval = GET_H_FR_INT (FLD (f_FRk));
8037     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRj), opval);
8038     written |= (1 << 3);
8039     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
8040   }
8041 }
8042
8043   abuf->written = written;
8044   return vpc;
8045 #undef FLD
8046 }
8047
8048 /* cmovgfd: cmovgfd$pack $GRj,$FRintk,$CCi,$cond */
8049
8050 static SEM_PC
8051 SEM_FN_NAME (frvbf,cmovgfd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8052 {
8053 #define FLD(f) abuf->fields.sfmt_cmovgfd.f
8054   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8055   int UNUSED written = 0;
8056   IADDR UNUSED pc = abuf->addr;
8057   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8058
8059 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
8060 if (EQSI (FLD (f_GRj), 0)) {
8061 {
8062   {
8063     SI opval = 0;
8064     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
8065     written |= (1 << 6);
8066     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
8067   }
8068   {
8069     USI opval = 0;
8070     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (1)), opval);
8071     written |= (1 << 7);
8072     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
8073   }
8074 }
8075 } else {
8076 {
8077   {
8078     SI opval = GET_H_GR (FLD (f_GRj));
8079     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
8080     written |= (1 << 6);
8081     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
8082   }
8083   {
8084     USI opval = GET_H_GR (((FLD (f_GRj)) + (1)));
8085     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (1)), opval);
8086     written |= (1 << 7);
8087     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
8088   }
8089 }
8090 }
8091 }
8092
8093   abuf->written = written;
8094   return vpc;
8095 #undef FLD
8096 }
8097
8098 /* cmovfgd: cmovfgd$pack $FRintk,$GRj,$CCi,$cond */
8099
8100 static SEM_PC
8101 SEM_FN_NAME (frvbf,cmovfgd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8102 {
8103 #define FLD(f) abuf->fields.sfmt_cmovfgd.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 if (ANDIF (NESI (FLD (f_GRj), 0), EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2)))) {
8110 {
8111   {
8112     SI opval = GET_H_FR_INT (FLD (f_FRk));
8113     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRj), opval);
8114     written |= (1 << 6);
8115     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
8116   }
8117   {
8118     USI opval = GET_H_FR_INT (((FLD (f_FRk)) + (1)));
8119     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, ((FLD (f_GRj)) + (1)), opval);
8120     written |= (1 << 7);
8121     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
8122   }
8123 }
8124 }
8125
8126   abuf->written = written;
8127   return vpc;
8128 #undef FLD
8129 }
8130
8131 /* movgs: movgs$pack $GRj,$spr */
8132
8133 static SEM_PC
8134 SEM_FN_NAME (frvbf,movgs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8135 {
8136 #define FLD(f) abuf->fields.sfmt_movgs.f
8137   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8138   int UNUSED written = 0;
8139   IADDR UNUSED pc = abuf->addr;
8140   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8141
8142   {
8143     USI opval = GET_H_GR (FLD (f_GRj));
8144     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, FLD (f_spr), opval);
8145     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
8146   }
8147
8148   return vpc;
8149 #undef FLD
8150 }
8151
8152 /* movsg: movsg$pack $spr,$GRj */
8153
8154 static SEM_PC
8155 SEM_FN_NAME (frvbf,movsg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8156 {
8157 #define FLD(f) abuf->fields.sfmt_movsg.f
8158   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8159   int UNUSED written = 0;
8160   IADDR UNUSED pc = abuf->addr;
8161   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8162
8163   {
8164     SI opval = GET_H_SPR (FLD (f_spr));
8165     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRj), opval);
8166     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
8167   }
8168
8169   return vpc;
8170 #undef FLD
8171 }
8172
8173 /* bra: bra$pack $hint_taken$label16 */
8174
8175 static SEM_PC
8176 SEM_FN_NAME (frvbf,bra) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8177 {
8178 #define FLD(f) abuf->fields.sfmt_fbne.f
8179   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8180   int UNUSED written = 0;
8181   IADDR UNUSED pc = abuf->addr;
8182   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8183
8184 {
8185 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8186   {
8187     USI opval = FLD (i_label16);
8188     sim_queue_pc_write (current_cpu, opval);
8189     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8190   }
8191 }
8192
8193   return vpc;
8194 #undef FLD
8195 }
8196
8197 /* bno: bno$pack$hint_not_taken */
8198
8199 static SEM_PC
8200 SEM_FN_NAME (frvbf,bno) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8201 {
8202 #define FLD(f) abuf->fields.sfmt_fbne.f
8203   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8204   int UNUSED written = 0;
8205   IADDR UNUSED pc = abuf->addr;
8206   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8207
8208 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8209
8210   return vpc;
8211 #undef FLD
8212 }
8213
8214 /* beq: beq$pack $ICCi_2,$hint,$label16 */
8215
8216 static SEM_PC
8217 SEM_FN_NAME (frvbf,beq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8218 {
8219 #define FLD(f) abuf->fields.sfmt_beq.f
8220   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8221   int UNUSED written = 0;
8222   IADDR UNUSED pc = abuf->addr;
8223   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8224
8225 {
8226 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8227 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2))) {
8228   {
8229     USI opval = FLD (i_label16);
8230     sim_queue_pc_write (current_cpu, opval);
8231     written |= (1 << 3);
8232     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8233   }
8234 }
8235 }
8236
8237   abuf->written = written;
8238   return vpc;
8239 #undef FLD
8240 }
8241
8242 /* bne: bne$pack $ICCi_2,$hint,$label16 */
8243
8244 static SEM_PC
8245 SEM_FN_NAME (frvbf,bne) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8246 {
8247 #define FLD(f) abuf->fields.sfmt_beq.f
8248   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8249   int UNUSED written = 0;
8250   IADDR UNUSED pc = abuf->addr;
8251   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8252
8253 {
8254 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8255 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)))) {
8256   {
8257     USI opval = FLD (i_label16);
8258     sim_queue_pc_write (current_cpu, opval);
8259     written |= (1 << 3);
8260     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8261   }
8262 }
8263 }
8264
8265   abuf->written = written;
8266   return vpc;
8267 #undef FLD
8268 }
8269
8270 /* ble: ble$pack $ICCi_2,$hint,$label16 */
8271
8272 static SEM_PC
8273 SEM_FN_NAME (frvbf,ble) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8274 {
8275 #define FLD(f) abuf->fields.sfmt_beq.f
8276   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8277   int UNUSED written = 0;
8278   IADDR UNUSED pc = abuf->addr;
8279   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8280
8281 {
8282 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8283 if (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))))) {
8284   {
8285     USI opval = FLD (i_label16);
8286     sim_queue_pc_write (current_cpu, opval);
8287     written |= (1 << 3);
8288     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8289   }
8290 }
8291 }
8292
8293   abuf->written = written;
8294   return vpc;
8295 #undef FLD
8296 }
8297
8298 /* bgt: bgt$pack $ICCi_2,$hint,$label16 */
8299
8300 static SEM_PC
8301 SEM_FN_NAME (frvbf,bgt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8302 {
8303 #define FLD(f) abuf->fields.sfmt_beq.f
8304   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8305   int UNUSED written = 0;
8306   IADDR UNUSED pc = abuf->addr;
8307   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8308
8309 {
8310 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8311 if (NOTBI (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)))))) {
8312   {
8313     USI opval = FLD (i_label16);
8314     sim_queue_pc_write (current_cpu, opval);
8315     written |= (1 << 3);
8316     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8317   }
8318 }
8319 }
8320
8321   abuf->written = written;
8322   return vpc;
8323 #undef FLD
8324 }
8325
8326 /* blt: blt$pack $ICCi_2,$hint,$label16 */
8327
8328 static SEM_PC
8329 SEM_FN_NAME (frvbf,blt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8330 {
8331 #define FLD(f) abuf->fields.sfmt_beq.f
8332   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8333   int UNUSED written = 0;
8334   IADDR UNUSED pc = abuf->addr;
8335   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8336
8337 {
8338 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8339 if (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)))) {
8340   {
8341     USI opval = FLD (i_label16);
8342     sim_queue_pc_write (current_cpu, opval);
8343     written |= (1 << 3);
8344     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8345   }
8346 }
8347 }
8348
8349   abuf->written = written;
8350   return vpc;
8351 #undef FLD
8352 }
8353
8354 /* bge: bge$pack $ICCi_2,$hint,$label16 */
8355
8356 static SEM_PC
8357 SEM_FN_NAME (frvbf,bge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8358 {
8359 #define FLD(f) abuf->fields.sfmt_beq.f
8360   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8361   int UNUSED written = 0;
8362   IADDR UNUSED pc = abuf->addr;
8363   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8364
8365 {
8366 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8367 if (NOTBI (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))))) {
8368   {
8369     USI opval = FLD (i_label16);
8370     sim_queue_pc_write (current_cpu, opval);
8371     written |= (1 << 3);
8372     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8373   }
8374 }
8375 }
8376
8377   abuf->written = written;
8378   return vpc;
8379 #undef FLD
8380 }
8381
8382 /* bls: bls$pack $ICCi_2,$hint,$label16 */
8383
8384 static SEM_PC
8385 SEM_FN_NAME (frvbf,bls) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8386 {
8387 #define FLD(f) abuf->fields.sfmt_beq.f
8388   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8389   int UNUSED written = 0;
8390   IADDR UNUSED pc = abuf->addr;
8391   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8392
8393 {
8394 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8395 if (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)))) {
8396   {
8397     USI opval = FLD (i_label16);
8398     sim_queue_pc_write (current_cpu, opval);
8399     written |= (1 << 3);
8400     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8401   }
8402 }
8403 }
8404
8405   abuf->written = written;
8406   return vpc;
8407 #undef FLD
8408 }
8409
8410 /* bhi: bhi$pack $ICCi_2,$hint,$label16 */
8411
8412 static SEM_PC
8413 SEM_FN_NAME (frvbf,bhi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8414 {
8415 #define FLD(f) abuf->fields.sfmt_beq.f
8416   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8417   int UNUSED written = 0;
8418   IADDR UNUSED pc = abuf->addr;
8419   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8420
8421 {
8422 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8423 if (NOTBI (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2))))) {
8424   {
8425     USI opval = FLD (i_label16);
8426     sim_queue_pc_write (current_cpu, opval);
8427     written |= (1 << 3);
8428     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8429   }
8430 }
8431 }
8432
8433   abuf->written = written;
8434   return vpc;
8435 #undef FLD
8436 }
8437
8438 /* bc: bc$pack $ICCi_2,$hint,$label16 */
8439
8440 static SEM_PC
8441 SEM_FN_NAME (frvbf,bc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8442 {
8443 #define FLD(f) abuf->fields.sfmt_beq.f
8444   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8445   int UNUSED written = 0;
8446   IADDR UNUSED pc = abuf->addr;
8447   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8448
8449 {
8450 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8451 if (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1))) {
8452   {
8453     USI opval = FLD (i_label16);
8454     sim_queue_pc_write (current_cpu, opval);
8455     written |= (1 << 3);
8456     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8457   }
8458 }
8459 }
8460
8461   abuf->written = written;
8462   return vpc;
8463 #undef FLD
8464 }
8465
8466 /* bnc: bnc$pack $ICCi_2,$hint,$label16 */
8467
8468 static SEM_PC
8469 SEM_FN_NAME (frvbf,bnc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8470 {
8471 #define FLD(f) abuf->fields.sfmt_beq.f
8472   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8473   int UNUSED written = 0;
8474   IADDR UNUSED pc = abuf->addr;
8475   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8476
8477 {
8478 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8479 if (NOTBI (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)))) {
8480   {
8481     USI opval = FLD (i_label16);
8482     sim_queue_pc_write (current_cpu, opval);
8483     written |= (1 << 3);
8484     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8485   }
8486 }
8487 }
8488
8489   abuf->written = written;
8490   return vpc;
8491 #undef FLD
8492 }
8493
8494 /* bn: bn$pack $ICCi_2,$hint,$label16 */
8495
8496 static SEM_PC
8497 SEM_FN_NAME (frvbf,bn) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8498 {
8499 #define FLD(f) abuf->fields.sfmt_beq.f
8500   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8501   int UNUSED written = 0;
8502   IADDR UNUSED pc = abuf->addr;
8503   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8504
8505 {
8506 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8507 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3))) {
8508   {
8509     USI opval = FLD (i_label16);
8510     sim_queue_pc_write (current_cpu, opval);
8511     written |= (1 << 3);
8512     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8513   }
8514 }
8515 }
8516
8517   abuf->written = written;
8518   return vpc;
8519 #undef FLD
8520 }
8521
8522 /* bp: bp$pack $ICCi_2,$hint,$label16 */
8523
8524 static SEM_PC
8525 SEM_FN_NAME (frvbf,bp) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8526 {
8527 #define FLD(f) abuf->fields.sfmt_beq.f
8528   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8529   int UNUSED written = 0;
8530   IADDR UNUSED pc = abuf->addr;
8531   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8532
8533 {
8534 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8535 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3)))) {
8536   {
8537     USI opval = FLD (i_label16);
8538     sim_queue_pc_write (current_cpu, opval);
8539     written |= (1 << 3);
8540     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8541   }
8542 }
8543 }
8544
8545   abuf->written = written;
8546   return vpc;
8547 #undef FLD
8548 }
8549
8550 /* bv: bv$pack $ICCi_2,$hint,$label16 */
8551
8552 static SEM_PC
8553 SEM_FN_NAME (frvbf,bv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8554 {
8555 #define FLD(f) abuf->fields.sfmt_beq.f
8556   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8557   int UNUSED written = 0;
8558   IADDR UNUSED pc = abuf->addr;
8559   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8560
8561 {
8562 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8563 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1))) {
8564   {
8565     USI opval = FLD (i_label16);
8566     sim_queue_pc_write (current_cpu, opval);
8567     written |= (1 << 3);
8568     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8569   }
8570 }
8571 }
8572
8573   abuf->written = written;
8574   return vpc;
8575 #undef FLD
8576 }
8577
8578 /* bnv: bnv$pack $ICCi_2,$hint,$label16 */
8579
8580 static SEM_PC
8581 SEM_FN_NAME (frvbf,bnv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8582 {
8583 #define FLD(f) abuf->fields.sfmt_beq.f
8584   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8585   int UNUSED written = 0;
8586   IADDR UNUSED pc = abuf->addr;
8587   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8588
8589 {
8590 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8591 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1)))) {
8592   {
8593     USI opval = FLD (i_label16);
8594     sim_queue_pc_write (current_cpu, opval);
8595     written |= (1 << 3);
8596     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8597   }
8598 }
8599 }
8600
8601   abuf->written = written;
8602   return vpc;
8603 #undef FLD
8604 }
8605
8606 /* fbra: fbra$pack $hint_taken$label16 */
8607
8608 static SEM_PC
8609 SEM_FN_NAME (frvbf,fbra) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8610 {
8611 #define FLD(f) abuf->fields.sfmt_fbne.f
8612   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8613   int UNUSED written = 0;
8614   IADDR UNUSED pc = abuf->addr;
8615   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8616
8617 {
8618 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8619   {
8620     USI opval = FLD (i_label16);
8621     sim_queue_pc_write (current_cpu, opval);
8622     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8623   }
8624 }
8625
8626   return vpc;
8627 #undef FLD
8628 }
8629
8630 /* fbno: fbno$pack$hint_not_taken */
8631
8632 static SEM_PC
8633 SEM_FN_NAME (frvbf,fbno) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8634 {
8635 #define FLD(f) abuf->fields.sfmt_fbne.f
8636   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8637   int UNUSED written = 0;
8638   IADDR UNUSED pc = abuf->addr;
8639   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8640
8641 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8642
8643   return vpc;
8644 #undef FLD
8645 }
8646
8647 /* fbne: fbne$pack $FCCi_2,$hint,$label16 */
8648
8649 static SEM_PC
8650 SEM_FN_NAME (frvbf,fbne) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8651 {
8652 #define FLD(f) abuf->fields.sfmt_fbne.f
8653   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8654   int UNUSED written = 0;
8655   IADDR UNUSED pc = abuf->addr;
8656   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8657
8658 {
8659 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8660 if (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))))) {
8661   {
8662     USI opval = FLD (i_label16);
8663     sim_queue_pc_write (current_cpu, opval);
8664     written |= (1 << 3);
8665     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8666   }
8667 }
8668 }
8669
8670   abuf->written = written;
8671   return vpc;
8672 #undef FLD
8673 }
8674
8675 /* fbeq: fbeq$pack $FCCi_2,$hint,$label16 */
8676
8677 static SEM_PC
8678 SEM_FN_NAME (frvbf,fbeq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8679 {
8680 #define FLD(f) abuf->fields.sfmt_fbne.f
8681   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8682   int UNUSED written = 0;
8683   IADDR UNUSED pc = abuf->addr;
8684   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8685
8686 {
8687 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8688 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3))) {
8689   {
8690     USI opval = FLD (i_label16);
8691     sim_queue_pc_write (current_cpu, opval);
8692     written |= (1 << 3);
8693     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8694   }
8695 }
8696 }
8697
8698   abuf->written = written;
8699   return vpc;
8700 #undef FLD
8701 }
8702
8703 /* fblg: fblg$pack $FCCi_2,$hint,$label16 */
8704
8705 static SEM_PC
8706 SEM_FN_NAME (frvbf,fblg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8707 {
8708 #define FLD(f) abuf->fields.sfmt_fbne.f
8709   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8710   int UNUSED written = 0;
8711   IADDR UNUSED pc = abuf->addr;
8712   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8713
8714 {
8715 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8716 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1)))) {
8717   {
8718     USI opval = FLD (i_label16);
8719     sim_queue_pc_write (current_cpu, opval);
8720     written |= (1 << 3);
8721     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8722   }
8723 }
8724 }
8725
8726   abuf->written = written;
8727   return vpc;
8728 #undef FLD
8729 }
8730
8731 /* fbue: fbue$pack $FCCi_2,$hint,$label16 */
8732
8733 static SEM_PC
8734 SEM_FN_NAME (frvbf,fbue) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8735 {
8736 #define FLD(f) abuf->fields.sfmt_fbne.f
8737   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8738   int UNUSED written = 0;
8739   IADDR UNUSED pc = abuf->addr;
8740   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8741
8742 {
8743 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8744 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
8745   {
8746     USI opval = FLD (i_label16);
8747     sim_queue_pc_write (current_cpu, opval);
8748     written |= (1 << 3);
8749     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8750   }
8751 }
8752 }
8753
8754   abuf->written = written;
8755   return vpc;
8756 #undef FLD
8757 }
8758
8759 /* fbul: fbul$pack $FCCi_2,$hint,$label16 */
8760
8761 static SEM_PC
8762 SEM_FN_NAME (frvbf,fbul) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8763 {
8764 #define FLD(f) abuf->fields.sfmt_fbne.f
8765   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8766   int UNUSED written = 0;
8767   IADDR UNUSED pc = abuf->addr;
8768   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8769
8770 {
8771 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8772 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
8773   {
8774     USI opval = FLD (i_label16);
8775     sim_queue_pc_write (current_cpu, opval);
8776     written |= (1 << 3);
8777     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8778   }
8779 }
8780 }
8781
8782   abuf->written = written;
8783   return vpc;
8784 #undef FLD
8785 }
8786
8787 /* fbge: fbge$pack $FCCi_2,$hint,$label16 */
8788
8789 static SEM_PC
8790 SEM_FN_NAME (frvbf,fbge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8791 {
8792 #define FLD(f) abuf->fields.sfmt_fbne.f
8793   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8794   int UNUSED written = 0;
8795   IADDR UNUSED pc = abuf->addr;
8796   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8797
8798 {
8799 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8800 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1)))) {
8801   {
8802     USI opval = FLD (i_label16);
8803     sim_queue_pc_write (current_cpu, opval);
8804     written |= (1 << 3);
8805     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8806   }
8807 }
8808 }
8809
8810   abuf->written = written;
8811   return vpc;
8812 #undef FLD
8813 }
8814
8815 /* fblt: fblt$pack $FCCi_2,$hint,$label16 */
8816
8817 static SEM_PC
8818 SEM_FN_NAME (frvbf,fblt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8819 {
8820 #define FLD(f) abuf->fields.sfmt_fbne.f
8821   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8822   int UNUSED written = 0;
8823   IADDR UNUSED pc = abuf->addr;
8824   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8825
8826 {
8827 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8828 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2))) {
8829   {
8830     USI opval = FLD (i_label16);
8831     sim_queue_pc_write (current_cpu, opval);
8832     written |= (1 << 3);
8833     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8834   }
8835 }
8836 }
8837
8838   abuf->written = written;
8839   return vpc;
8840 #undef FLD
8841 }
8842
8843 /* fbuge: fbuge$pack $FCCi_2,$hint,$label16 */
8844
8845 static SEM_PC
8846 SEM_FN_NAME (frvbf,fbuge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8847 {
8848 #define FLD(f) abuf->fields.sfmt_fbne.f
8849   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8850   int UNUSED written = 0;
8851   IADDR UNUSED pc = abuf->addr;
8852   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8853
8854 {
8855 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8856 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3)), ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1))))) {
8857   {
8858     USI opval = FLD (i_label16);
8859     sim_queue_pc_write (current_cpu, opval);
8860     written |= (1 << 3);
8861     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8862   }
8863 }
8864 }
8865
8866   abuf->written = written;
8867   return vpc;
8868 #undef FLD
8869 }
8870
8871 /* fbug: fbug$pack $FCCi_2,$hint,$label16 */
8872
8873 static SEM_PC
8874 SEM_FN_NAME (frvbf,fbug) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8875 {
8876 #define FLD(f) abuf->fields.sfmt_fbne.f
8877   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8878   int UNUSED written = 0;
8879   IADDR UNUSED pc = abuf->addr;
8880   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8881
8882 {
8883 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8884 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
8885   {
8886     USI opval = FLD (i_label16);
8887     sim_queue_pc_write (current_cpu, opval);
8888     written |= (1 << 3);
8889     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8890   }
8891 }
8892 }
8893
8894   abuf->written = written;
8895   return vpc;
8896 #undef FLD
8897 }
8898
8899 /* fble: fble$pack $FCCi_2,$hint,$label16 */
8900
8901 static SEM_PC
8902 SEM_FN_NAME (frvbf,fble) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8903 {
8904 #define FLD(f) abuf->fields.sfmt_fbne.f
8905   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8906   int UNUSED written = 0;
8907   IADDR UNUSED pc = abuf->addr;
8908   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8909
8910 {
8911 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8912 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)))) {
8913   {
8914     USI opval = FLD (i_label16);
8915     sim_queue_pc_write (current_cpu, opval);
8916     written |= (1 << 3);
8917     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8918   }
8919 }
8920 }
8921
8922   abuf->written = written;
8923   return vpc;
8924 #undef FLD
8925 }
8926
8927 /* fbgt: fbgt$pack $FCCi_2,$hint,$label16 */
8928
8929 static SEM_PC
8930 SEM_FN_NAME (frvbf,fbgt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8931 {
8932 #define FLD(f) abuf->fields.sfmt_fbne.f
8933   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8934   int UNUSED written = 0;
8935   IADDR UNUSED pc = abuf->addr;
8936   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8937
8938 {
8939 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8940 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1))) {
8941   {
8942     USI opval = FLD (i_label16);
8943     sim_queue_pc_write (current_cpu, opval);
8944     written |= (1 << 3);
8945     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8946   }
8947 }
8948 }
8949
8950   abuf->written = written;
8951   return vpc;
8952 #undef FLD
8953 }
8954
8955 /* fbule: fbule$pack $FCCi_2,$hint,$label16 */
8956
8957 static SEM_PC
8958 SEM_FN_NAME (frvbf,fbule) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8959 {
8960 #define FLD(f) abuf->fields.sfmt_fbne.f
8961   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8962   int UNUSED written = 0;
8963   IADDR UNUSED pc = abuf->addr;
8964   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8965
8966 {
8967 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8968 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))))) {
8969   {
8970     USI opval = FLD (i_label16);
8971     sim_queue_pc_write (current_cpu, opval);
8972     written |= (1 << 3);
8973     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8974   }
8975 }
8976 }
8977
8978   abuf->written = written;
8979   return vpc;
8980 #undef FLD
8981 }
8982
8983 /* fbu: fbu$pack $FCCi_2,$hint,$label16 */
8984
8985 static SEM_PC
8986 SEM_FN_NAME (frvbf,fbu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8987 {
8988 #define FLD(f) abuf->fields.sfmt_fbne.f
8989   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8990   int UNUSED written = 0;
8991   IADDR UNUSED pc = abuf->addr;
8992   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8993
8994 {
8995 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8996 if (TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1))) {
8997   {
8998     USI opval = FLD (i_label16);
8999     sim_queue_pc_write (current_cpu, opval);
9000     written |= (1 << 3);
9001     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9002   }
9003 }
9004 }
9005
9006   abuf->written = written;
9007   return vpc;
9008 #undef FLD
9009 }
9010
9011 /* fbo: fbo$pack $FCCi_2,$hint,$label16 */
9012
9013 static SEM_PC
9014 SEM_FN_NAME (frvbf,fbo) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9015 {
9016 #define FLD(f) abuf->fields.sfmt_fbne.f
9017   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9018   int UNUSED written = 0;
9019   IADDR UNUSED pc = abuf->addr;
9020   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9021
9022 {
9023 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
9024 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))))) {
9025   {
9026     USI opval = FLD (i_label16);
9027     sim_queue_pc_write (current_cpu, opval);
9028     written |= (1 << 3);
9029     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9030   }
9031 }
9032 }
9033
9034   abuf->written = written;
9035   return vpc;
9036 #undef FLD
9037 }
9038
9039 /* bctrlr: bctrlr$pack $ccond,$hint */
9040
9041 static SEM_PC
9042 SEM_FN_NAME (frvbf,bctrlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9043 {
9044 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9045   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9046   int UNUSED written = 0;
9047   IADDR UNUSED pc = abuf->addr;
9048   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9049
9050 {
9051 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9052 {
9053   SI tmp_tmp;
9054   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
9055   {
9056     USI opval = tmp_tmp;
9057     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
9058     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
9059   }
9060 if (EQSI (FLD (f_ccond), 0)) {
9061 if (NESI (tmp_tmp, 0)) {
9062   {
9063     USI opval = GET_H_SPR (((UINT) 272));
9064     sim_queue_pc_write (current_cpu, opval);
9065     written |= (1 << 5);
9066     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9067   }
9068 }
9069 } else {
9070 if (EQSI (tmp_tmp, 0)) {
9071   {
9072     USI opval = GET_H_SPR (((UINT) 272));
9073     sim_queue_pc_write (current_cpu, opval);
9074     written |= (1 << 5);
9075     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9076   }
9077 }
9078 }
9079 }
9080 }
9081
9082   abuf->written = written;
9083   return vpc;
9084 #undef FLD
9085 }
9086
9087 /* bralr: bralr$pack$hint_taken */
9088
9089 static SEM_PC
9090 SEM_FN_NAME (frvbf,bralr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9091 {
9092 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9093   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9094   int UNUSED written = 0;
9095   IADDR UNUSED pc = abuf->addr;
9096   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9097
9098 {
9099 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9100   {
9101     USI opval = GET_H_SPR (((UINT) 272));
9102     sim_queue_pc_write (current_cpu, opval);
9103     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9104   }
9105 }
9106
9107   return vpc;
9108 #undef FLD
9109 }
9110
9111 /* bnolr: bnolr$pack$hint_not_taken */
9112
9113 static SEM_PC
9114 SEM_FN_NAME (frvbf,bnolr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9115 {
9116 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9117   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9118   int UNUSED written = 0;
9119   IADDR UNUSED pc = abuf->addr;
9120   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9121
9122 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9123
9124   return vpc;
9125 #undef FLD
9126 }
9127
9128 /* beqlr: beqlr$pack $ICCi_2,$hint */
9129
9130 static SEM_PC
9131 SEM_FN_NAME (frvbf,beqlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9132 {
9133 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9134   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9135   int UNUSED written = 0;
9136   IADDR UNUSED pc = abuf->addr;
9137   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9138
9139 {
9140 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9141 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2))) {
9142   {
9143     USI opval = GET_H_SPR (((UINT) 272));
9144     sim_queue_pc_write (current_cpu, opval);
9145     written |= (1 << 3);
9146     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9147   }
9148 }
9149 }
9150
9151   abuf->written = written;
9152   return vpc;
9153 #undef FLD
9154 }
9155
9156 /* bnelr: bnelr$pack $ICCi_2,$hint */
9157
9158 static SEM_PC
9159 SEM_FN_NAME (frvbf,bnelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9160 {
9161 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9162   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9163   int UNUSED written = 0;
9164   IADDR UNUSED pc = abuf->addr;
9165   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9166
9167 {
9168 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9169 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)))) {
9170   {
9171     USI opval = GET_H_SPR (((UINT) 272));
9172     sim_queue_pc_write (current_cpu, opval);
9173     written |= (1 << 3);
9174     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9175   }
9176 }
9177 }
9178
9179   abuf->written = written;
9180   return vpc;
9181 #undef FLD
9182 }
9183
9184 /* blelr: blelr$pack $ICCi_2,$hint */
9185
9186 static SEM_PC
9187 SEM_FN_NAME (frvbf,blelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9188 {
9189 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9190   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9191   int UNUSED written = 0;
9192   IADDR UNUSED pc = abuf->addr;
9193   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9194
9195 {
9196 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9197 if (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))))) {
9198   {
9199     USI opval = GET_H_SPR (((UINT) 272));
9200     sim_queue_pc_write (current_cpu, opval);
9201     written |= (1 << 3);
9202     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9203   }
9204 }
9205 }
9206
9207   abuf->written = written;
9208   return vpc;
9209 #undef FLD
9210 }
9211
9212 /* bgtlr: bgtlr$pack $ICCi_2,$hint */
9213
9214 static SEM_PC
9215 SEM_FN_NAME (frvbf,bgtlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9216 {
9217 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9218   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9219   int UNUSED written = 0;
9220   IADDR UNUSED pc = abuf->addr;
9221   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9222
9223 {
9224 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9225 if (NOTBI (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)))))) {
9226   {
9227     USI opval = GET_H_SPR (((UINT) 272));
9228     sim_queue_pc_write (current_cpu, opval);
9229     written |= (1 << 3);
9230     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9231   }
9232 }
9233 }
9234
9235   abuf->written = written;
9236   return vpc;
9237 #undef FLD
9238 }
9239
9240 /* bltlr: bltlr$pack $ICCi_2,$hint */
9241
9242 static SEM_PC
9243 SEM_FN_NAME (frvbf,bltlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9244 {
9245 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9246   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9247   int UNUSED written = 0;
9248   IADDR UNUSED pc = abuf->addr;
9249   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9250
9251 {
9252 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9253 if (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)))) {
9254   {
9255     USI opval = GET_H_SPR (((UINT) 272));
9256     sim_queue_pc_write (current_cpu, opval);
9257     written |= (1 << 3);
9258     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9259   }
9260 }
9261 }
9262
9263   abuf->written = written;
9264   return vpc;
9265 #undef FLD
9266 }
9267
9268 /* bgelr: bgelr$pack $ICCi_2,$hint */
9269
9270 static SEM_PC
9271 SEM_FN_NAME (frvbf,bgelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9272 {
9273 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9274   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9275   int UNUSED written = 0;
9276   IADDR UNUSED pc = abuf->addr;
9277   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9278
9279 {
9280 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9281 if (NOTBI (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))))) {
9282   {
9283     USI opval = GET_H_SPR (((UINT) 272));
9284     sim_queue_pc_write (current_cpu, opval);
9285     written |= (1 << 3);
9286     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9287   }
9288 }
9289 }
9290
9291   abuf->written = written;
9292   return vpc;
9293 #undef FLD
9294 }
9295
9296 /* blslr: blslr$pack $ICCi_2,$hint */
9297
9298 static SEM_PC
9299 SEM_FN_NAME (frvbf,blslr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9300 {
9301 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9302   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9303   int UNUSED written = 0;
9304   IADDR UNUSED pc = abuf->addr;
9305   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9306
9307 {
9308 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9309 if (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)))) {
9310   {
9311     USI opval = GET_H_SPR (((UINT) 272));
9312     sim_queue_pc_write (current_cpu, opval);
9313     written |= (1 << 3);
9314     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9315   }
9316 }
9317 }
9318
9319   abuf->written = written;
9320   return vpc;
9321 #undef FLD
9322 }
9323
9324 /* bhilr: bhilr$pack $ICCi_2,$hint */
9325
9326 static SEM_PC
9327 SEM_FN_NAME (frvbf,bhilr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9328 {
9329 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9330   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9331   int UNUSED written = 0;
9332   IADDR UNUSED pc = abuf->addr;
9333   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9334
9335 {
9336 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9337 if (NOTBI (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2))))) {
9338   {
9339     USI opval = GET_H_SPR (((UINT) 272));
9340     sim_queue_pc_write (current_cpu, opval);
9341     written |= (1 << 3);
9342     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9343   }
9344 }
9345 }
9346
9347   abuf->written = written;
9348   return vpc;
9349 #undef FLD
9350 }
9351
9352 /* bclr: bclr$pack $ICCi_2,$hint */
9353
9354 static SEM_PC
9355 SEM_FN_NAME (frvbf,bclr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9356 {
9357 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9358   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9359   int UNUSED written = 0;
9360   IADDR UNUSED pc = abuf->addr;
9361   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9362
9363 {
9364 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9365 if (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1))) {
9366   {
9367     USI opval = GET_H_SPR (((UINT) 272));
9368     sim_queue_pc_write (current_cpu, opval);
9369     written |= (1 << 3);
9370     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9371   }
9372 }
9373 }
9374
9375   abuf->written = written;
9376   return vpc;
9377 #undef FLD
9378 }
9379
9380 /* bnclr: bnclr$pack $ICCi_2,$hint */
9381
9382 static SEM_PC
9383 SEM_FN_NAME (frvbf,bnclr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9384 {
9385 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9386   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9387   int UNUSED written = 0;
9388   IADDR UNUSED pc = abuf->addr;
9389   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9390
9391 {
9392 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9393 if (NOTBI (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)))) {
9394   {
9395     USI opval = GET_H_SPR (((UINT) 272));
9396     sim_queue_pc_write (current_cpu, opval);
9397     written |= (1 << 3);
9398     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9399   }
9400 }
9401 }
9402
9403   abuf->written = written;
9404   return vpc;
9405 #undef FLD
9406 }
9407
9408 /* bnlr: bnlr$pack $ICCi_2,$hint */
9409
9410 static SEM_PC
9411 SEM_FN_NAME (frvbf,bnlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9412 {
9413 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9414   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9415   int UNUSED written = 0;
9416   IADDR UNUSED pc = abuf->addr;
9417   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9418
9419 {
9420 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9421 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3))) {
9422   {
9423     USI opval = GET_H_SPR (((UINT) 272));
9424     sim_queue_pc_write (current_cpu, opval);
9425     written |= (1 << 3);
9426     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9427   }
9428 }
9429 }
9430
9431   abuf->written = written;
9432   return vpc;
9433 #undef FLD
9434 }
9435
9436 /* bplr: bplr$pack $ICCi_2,$hint */
9437
9438 static SEM_PC
9439 SEM_FN_NAME (frvbf,bplr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9440 {
9441 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9442   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9443   int UNUSED written = 0;
9444   IADDR UNUSED pc = abuf->addr;
9445   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9446
9447 {
9448 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9449 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3)))) {
9450   {
9451     USI opval = GET_H_SPR (((UINT) 272));
9452     sim_queue_pc_write (current_cpu, opval);
9453     written |= (1 << 3);
9454     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9455   }
9456 }
9457 }
9458
9459   abuf->written = written;
9460   return vpc;
9461 #undef FLD
9462 }
9463
9464 /* bvlr: bvlr$pack $ICCi_2,$hint */
9465
9466 static SEM_PC
9467 SEM_FN_NAME (frvbf,bvlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9468 {
9469 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9470   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9471   int UNUSED written = 0;
9472   IADDR UNUSED pc = abuf->addr;
9473   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9474
9475 {
9476 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9477 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1))) {
9478   {
9479     USI opval = GET_H_SPR (((UINT) 272));
9480     sim_queue_pc_write (current_cpu, opval);
9481     written |= (1 << 3);
9482     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9483   }
9484 }
9485 }
9486
9487   abuf->written = written;
9488   return vpc;
9489 #undef FLD
9490 }
9491
9492 /* bnvlr: bnvlr$pack $ICCi_2,$hint */
9493
9494 static SEM_PC
9495 SEM_FN_NAME (frvbf,bnvlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9496 {
9497 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9498   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9499   int UNUSED written = 0;
9500   IADDR UNUSED pc = abuf->addr;
9501   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9502
9503 {
9504 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9505 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1)))) {
9506   {
9507     USI opval = GET_H_SPR (((UINT) 272));
9508     sim_queue_pc_write (current_cpu, opval);
9509     written |= (1 << 3);
9510     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9511   }
9512 }
9513 }
9514
9515   abuf->written = written;
9516   return vpc;
9517 #undef FLD
9518 }
9519
9520 /* fbralr: fbralr$pack$hint_taken */
9521
9522 static SEM_PC
9523 SEM_FN_NAME (frvbf,fbralr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9524 {
9525 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9526   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9527   int UNUSED written = 0;
9528   IADDR UNUSED pc = abuf->addr;
9529   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9530
9531 {
9532 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9533   {
9534     USI opval = GET_H_SPR (((UINT) 272));
9535     sim_queue_pc_write (current_cpu, opval);
9536     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9537   }
9538 }
9539
9540   return vpc;
9541 #undef FLD
9542 }
9543
9544 /* fbnolr: fbnolr$pack$hint_not_taken */
9545
9546 static SEM_PC
9547 SEM_FN_NAME (frvbf,fbnolr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9548 {
9549 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9550   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9551   int UNUSED written = 0;
9552   IADDR UNUSED pc = abuf->addr;
9553   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9554
9555 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9556
9557   return vpc;
9558 #undef FLD
9559 }
9560
9561 /* fbeqlr: fbeqlr$pack $FCCi_2,$hint */
9562
9563 static SEM_PC
9564 SEM_FN_NAME (frvbf,fbeqlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9565 {
9566 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9567   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9568   int UNUSED written = 0;
9569   IADDR UNUSED pc = abuf->addr;
9570   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9571
9572 {
9573 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9574 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3))) {
9575   {
9576     USI opval = GET_H_SPR (((UINT) 272));
9577     sim_queue_pc_write (current_cpu, opval);
9578     written |= (1 << 3);
9579     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9580   }
9581 }
9582 }
9583
9584   abuf->written = written;
9585   return vpc;
9586 #undef FLD
9587 }
9588
9589 /* fbnelr: fbnelr$pack $FCCi_2,$hint */
9590
9591 static SEM_PC
9592 SEM_FN_NAME (frvbf,fbnelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9593 {
9594 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9595   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9596   int UNUSED written = 0;
9597   IADDR UNUSED pc = abuf->addr;
9598   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9599
9600 {
9601 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9602 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 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))))) {
9603   {
9604     USI opval = GET_H_SPR (((UINT) 272));
9605     sim_queue_pc_write (current_cpu, opval);
9606     written |= (1 << 3);
9607     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9608   }
9609 }
9610 }
9611
9612   abuf->written = written;
9613   return vpc;
9614 #undef FLD
9615 }
9616
9617 /* fblglr: fblglr$pack $FCCi_2,$hint */
9618
9619 static SEM_PC
9620 SEM_FN_NAME (frvbf,fblglr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9621 {
9622 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9623   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9624   int UNUSED written = 0;
9625   IADDR UNUSED pc = abuf->addr;
9626   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9627
9628 {
9629 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9630 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1)))) {
9631   {
9632     USI opval = GET_H_SPR (((UINT) 272));
9633     sim_queue_pc_write (current_cpu, opval);
9634     written |= (1 << 3);
9635     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9636   }
9637 }
9638 }
9639
9640   abuf->written = written;
9641   return vpc;
9642 #undef FLD
9643 }
9644
9645 /* fbuelr: fbuelr$pack $FCCi_2,$hint */
9646
9647 static SEM_PC
9648 SEM_FN_NAME (frvbf,fbuelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9649 {
9650 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9651   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9652   int UNUSED written = 0;
9653   IADDR UNUSED pc = abuf->addr;
9654   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9655
9656 {
9657 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9658 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
9659   {
9660     USI opval = GET_H_SPR (((UINT) 272));
9661     sim_queue_pc_write (current_cpu, opval);
9662     written |= (1 << 3);
9663     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9664   }
9665 }
9666 }
9667
9668   abuf->written = written;
9669   return vpc;
9670 #undef FLD
9671 }
9672
9673 /* fbullr: fbullr$pack $FCCi_2,$hint */
9674
9675 static SEM_PC
9676 SEM_FN_NAME (frvbf,fbullr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9677 {
9678 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9679   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9680   int UNUSED written = 0;
9681   IADDR UNUSED pc = abuf->addr;
9682   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9683
9684 {
9685 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9686 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
9687   {
9688     USI opval = GET_H_SPR (((UINT) 272));
9689     sim_queue_pc_write (current_cpu, opval);
9690     written |= (1 << 3);
9691     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9692   }
9693 }
9694 }
9695
9696   abuf->written = written;
9697   return vpc;
9698 #undef FLD
9699 }
9700
9701 /* fbgelr: fbgelr$pack $FCCi_2,$hint */
9702
9703 static SEM_PC
9704 SEM_FN_NAME (frvbf,fbgelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9705 {
9706 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9707   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9708   int UNUSED written = 0;
9709   IADDR UNUSED pc = abuf->addr;
9710   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9711
9712 {
9713 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9714 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1)))) {
9715   {
9716     USI opval = GET_H_SPR (((UINT) 272));
9717     sim_queue_pc_write (current_cpu, opval);
9718     written |= (1 << 3);
9719     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9720   }
9721 }
9722 }
9723
9724   abuf->written = written;
9725   return vpc;
9726 #undef FLD
9727 }
9728
9729 /* fbltlr: fbltlr$pack $FCCi_2,$hint */
9730
9731 static SEM_PC
9732 SEM_FN_NAME (frvbf,fbltlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9733 {
9734 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9735   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9736   int UNUSED written = 0;
9737   IADDR UNUSED pc = abuf->addr;
9738   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9739
9740 {
9741 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9742 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2))) {
9743   {
9744     USI opval = GET_H_SPR (((UINT) 272));
9745     sim_queue_pc_write (current_cpu, opval);
9746     written |= (1 << 3);
9747     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9748   }
9749 }
9750 }
9751
9752   abuf->written = written;
9753   return vpc;
9754 #undef FLD
9755 }
9756
9757 /* fbugelr: fbugelr$pack $FCCi_2,$hint */
9758
9759 static SEM_PC
9760 SEM_FN_NAME (frvbf,fbugelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9761 {
9762 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9763   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9764   int UNUSED written = 0;
9765   IADDR UNUSED pc = abuf->addr;
9766   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9767
9768 {
9769 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9770 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3)), ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1))))) {
9771   {
9772     USI opval = GET_H_SPR (((UINT) 272));
9773     sim_queue_pc_write (current_cpu, opval);
9774     written |= (1 << 3);
9775     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9776   }
9777 }
9778 }
9779
9780   abuf->written = written;
9781   return vpc;
9782 #undef FLD
9783 }
9784
9785 /* fbuglr: fbuglr$pack $FCCi_2,$hint */
9786
9787 static SEM_PC
9788 SEM_FN_NAME (frvbf,fbuglr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9789 {
9790 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9791   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9792   int UNUSED written = 0;
9793   IADDR UNUSED pc = abuf->addr;
9794   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9795
9796 {
9797 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9798 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
9799   {
9800     USI opval = GET_H_SPR (((UINT) 272));
9801     sim_queue_pc_write (current_cpu, opval);
9802     written |= (1 << 3);
9803     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9804   }
9805 }
9806 }
9807
9808   abuf->written = written;
9809   return vpc;
9810 #undef FLD
9811 }
9812
9813 /* fblelr: fblelr$pack $FCCi_2,$hint */
9814
9815 static SEM_PC
9816 SEM_FN_NAME (frvbf,fblelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9817 {
9818 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9819   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9820   int UNUSED written = 0;
9821   IADDR UNUSED pc = abuf->addr;
9822   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9823
9824 {
9825 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9826 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)))) {
9827   {
9828     USI opval = GET_H_SPR (((UINT) 272));
9829     sim_queue_pc_write (current_cpu, opval);
9830     written |= (1 << 3);
9831     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9832   }
9833 }
9834 }
9835
9836   abuf->written = written;
9837   return vpc;
9838 #undef FLD
9839 }
9840
9841 /* fbgtlr: fbgtlr$pack $FCCi_2,$hint */
9842
9843 static SEM_PC
9844 SEM_FN_NAME (frvbf,fbgtlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9845 {
9846 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9847   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9848   int UNUSED written = 0;
9849   IADDR UNUSED pc = abuf->addr;
9850   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9851
9852 {
9853 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9854 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1))) {
9855   {
9856     USI opval = GET_H_SPR (((UINT) 272));
9857     sim_queue_pc_write (current_cpu, opval);
9858     written |= (1 << 3);
9859     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9860   }
9861 }
9862 }
9863
9864   abuf->written = written;
9865   return vpc;
9866 #undef FLD
9867 }
9868
9869 /* fbulelr: fbulelr$pack $FCCi_2,$hint */
9870
9871 static SEM_PC
9872 SEM_FN_NAME (frvbf,fbulelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9873 {
9874 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9875   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9876   int UNUSED written = 0;
9877   IADDR UNUSED pc = abuf->addr;
9878   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9879
9880 {
9881 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9882 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))))) {
9883   {
9884     USI opval = GET_H_SPR (((UINT) 272));
9885     sim_queue_pc_write (current_cpu, opval);
9886     written |= (1 << 3);
9887     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9888   }
9889 }
9890 }
9891
9892   abuf->written = written;
9893   return vpc;
9894 #undef FLD
9895 }
9896
9897 /* fbulr: fbulr$pack $FCCi_2,$hint */
9898
9899 static SEM_PC
9900 SEM_FN_NAME (frvbf,fbulr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9901 {
9902 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9903   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9904   int UNUSED written = 0;
9905   IADDR UNUSED pc = abuf->addr;
9906   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9907
9908 {
9909 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9910 if (TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1))) {
9911   {
9912     USI opval = GET_H_SPR (((UINT) 272));
9913     sim_queue_pc_write (current_cpu, opval);
9914     written |= (1 << 3);
9915     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9916   }
9917 }
9918 }
9919
9920   abuf->written = written;
9921   return vpc;
9922 #undef FLD
9923 }
9924
9925 /* fbolr: fbolr$pack $FCCi_2,$hint */
9926
9927 static SEM_PC
9928 SEM_FN_NAME (frvbf,fbolr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9929 {
9930 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9931   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9932   int UNUSED written = 0;
9933   IADDR UNUSED pc = abuf->addr;
9934   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9935
9936 {
9937 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9938 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))))) {
9939   {
9940     USI opval = GET_H_SPR (((UINT) 272));
9941     sim_queue_pc_write (current_cpu, opval);
9942     written |= (1 << 3);
9943     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9944   }
9945 }
9946 }
9947
9948   abuf->written = written;
9949   return vpc;
9950 #undef FLD
9951 }
9952
9953 /* bcralr: bcralr$pack $ccond$hint_taken */
9954
9955 static SEM_PC
9956 SEM_FN_NAME (frvbf,bcralr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9957 {
9958 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9959   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9960   int UNUSED written = 0;
9961   IADDR UNUSED pc = abuf->addr;
9962   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9963
9964 {
9965 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9966 {
9967   SI tmp_tmp;
9968   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
9969   {
9970     USI opval = tmp_tmp;
9971     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
9972     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
9973   }
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 << 5);
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 << 5);
9989     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9990   }
9991 }
9992 }
9993 }
9994 }
9995
9996   abuf->written = written;
9997   return vpc;
9998 #undef FLD
9999 }
10000
10001 /* bcnolr: bcnolr$pack$hint_not_taken */
10002
10003 static SEM_PC
10004 SEM_FN_NAME (frvbf,bcnolr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10005 {
10006 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10007   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10008   int UNUSED written = 0;
10009   IADDR UNUSED pc = abuf->addr;
10010   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10011
10012 {
10013 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10014 {
10015   SI tmp_tmp;
10016   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10017   {
10018     USI opval = tmp_tmp;
10019     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10020     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10021   }
10022 ((void) 0); /*nop*/
10023 }
10024 }
10025
10026   return vpc;
10027 #undef FLD
10028 }
10029
10030 /* bceqlr: bceqlr$pack $ICCi_2,$ccond,$hint */
10031
10032 static SEM_PC
10033 SEM_FN_NAME (frvbf,bceqlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10034 {
10035 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10036   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10037   int UNUSED written = 0;
10038   IADDR UNUSED pc = abuf->addr;
10039   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10040
10041 {
10042 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10043 {
10044   SI tmp_tmp;
10045   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10046   {
10047     USI opval = tmp_tmp;
10048     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10049     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10050   }
10051 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2))) {
10052 if (EQSI (FLD (f_ccond), 0)) {
10053 if (NESI (tmp_tmp, 0)) {
10054   {
10055     USI opval = GET_H_SPR (((UINT) 272));
10056     sim_queue_pc_write (current_cpu, opval);
10057     written |= (1 << 6);
10058     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10059   }
10060 }
10061 } else {
10062 if (EQSI (tmp_tmp, 0)) {
10063   {
10064     USI opval = GET_H_SPR (((UINT) 272));
10065     sim_queue_pc_write (current_cpu, opval);
10066     written |= (1 << 6);
10067     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10068   }
10069 }
10070 }
10071 }
10072 }
10073 }
10074
10075   abuf->written = written;
10076   return vpc;
10077 #undef FLD
10078 }
10079
10080 /* bcnelr: bcnelr$pack $ICCi_2,$ccond,$hint */
10081
10082 static SEM_PC
10083 SEM_FN_NAME (frvbf,bcnelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10084 {
10085 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10086   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10087   int UNUSED written = 0;
10088   IADDR UNUSED pc = abuf->addr;
10089   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10090
10091 {
10092 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10093 {
10094   SI tmp_tmp;
10095   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10096   {
10097     USI opval = tmp_tmp;
10098     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10099     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10100   }
10101 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)))) {
10102 if (EQSI (FLD (f_ccond), 0)) {
10103 if (NESI (tmp_tmp, 0)) {
10104   {
10105     USI opval = GET_H_SPR (((UINT) 272));
10106     sim_queue_pc_write (current_cpu, opval);
10107     written |= (1 << 6);
10108     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10109   }
10110 }
10111 } else {
10112 if (EQSI (tmp_tmp, 0)) {
10113   {
10114     USI opval = GET_H_SPR (((UINT) 272));
10115     sim_queue_pc_write (current_cpu, opval);
10116     written |= (1 << 6);
10117     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10118   }
10119 }
10120 }
10121 }
10122 }
10123 }
10124
10125   abuf->written = written;
10126   return vpc;
10127 #undef FLD
10128 }
10129
10130 /* bclelr: bclelr$pack $ICCi_2,$ccond,$hint */
10131
10132 static SEM_PC
10133 SEM_FN_NAME (frvbf,bclelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10134 {
10135 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10136   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10137   int UNUSED written = 0;
10138   IADDR UNUSED pc = abuf->addr;
10139   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10140
10141 {
10142 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10143 {
10144   SI tmp_tmp;
10145   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10146   {
10147     USI opval = tmp_tmp;
10148     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10149     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10150   }
10151 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))))) {
10152 if (EQSI (FLD (f_ccond), 0)) {
10153 if (NESI (tmp_tmp, 0)) {
10154   {
10155     USI opval = GET_H_SPR (((UINT) 272));
10156     sim_queue_pc_write (current_cpu, opval);
10157     written |= (1 << 6);
10158     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10159   }
10160 }
10161 } else {
10162 if (EQSI (tmp_tmp, 0)) {
10163   {
10164     USI opval = GET_H_SPR (((UINT) 272));
10165     sim_queue_pc_write (current_cpu, opval);
10166     written |= (1 << 6);
10167     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10168   }
10169 }
10170 }
10171 }
10172 }
10173 }
10174
10175   abuf->written = written;
10176   return vpc;
10177 #undef FLD
10178 }
10179
10180 /* bcgtlr: bcgtlr$pack $ICCi_2,$ccond,$hint */
10181
10182 static SEM_PC
10183 SEM_FN_NAME (frvbf,bcgtlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10184 {
10185 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10186   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10187   int UNUSED written = 0;
10188   IADDR UNUSED pc = abuf->addr;
10189   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10190
10191 {
10192 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10193 {
10194   SI tmp_tmp;
10195   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10196   {
10197     USI opval = tmp_tmp;
10198     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10199     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10200   }
10201 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)))))) {
10202 if (EQSI (FLD (f_ccond), 0)) {
10203 if (NESI (tmp_tmp, 0)) {
10204   {
10205     USI opval = GET_H_SPR (((UINT) 272));
10206     sim_queue_pc_write (current_cpu, opval);
10207     written |= (1 << 6);
10208     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10209   }
10210 }
10211 } else {
10212 if (EQSI (tmp_tmp, 0)) {
10213   {
10214     USI opval = GET_H_SPR (((UINT) 272));
10215     sim_queue_pc_write (current_cpu, opval);
10216     written |= (1 << 6);
10217     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10218   }
10219 }
10220 }
10221 }
10222 }
10223 }
10224
10225   abuf->written = written;
10226   return vpc;
10227 #undef FLD
10228 }
10229
10230 /* bcltlr: bcltlr$pack $ICCi_2,$ccond,$hint */
10231
10232 static SEM_PC
10233 SEM_FN_NAME (frvbf,bcltlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10234 {
10235 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10236   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10237   int UNUSED written = 0;
10238   IADDR UNUSED pc = abuf->addr;
10239   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10240
10241 {
10242 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10243 {
10244   SI tmp_tmp;
10245   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10246   {
10247     USI opval = tmp_tmp;
10248     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10249     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10250   }
10251 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)))) {
10252 if (EQSI (FLD (f_ccond), 0)) {
10253 if (NESI (tmp_tmp, 0)) {
10254   {
10255     USI opval = GET_H_SPR (((UINT) 272));
10256     sim_queue_pc_write (current_cpu, opval);
10257     written |= (1 << 6);
10258     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10259   }
10260 }
10261 } else {
10262 if (EQSI (tmp_tmp, 0)) {
10263   {
10264     USI opval = GET_H_SPR (((UINT) 272));
10265     sim_queue_pc_write (current_cpu, opval);
10266     written |= (1 << 6);
10267     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10268   }
10269 }
10270 }
10271 }
10272 }
10273 }
10274
10275   abuf->written = written;
10276   return vpc;
10277 #undef FLD
10278 }
10279
10280 /* bcgelr: bcgelr$pack $ICCi_2,$ccond,$hint */
10281
10282 static SEM_PC
10283 SEM_FN_NAME (frvbf,bcgelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10284 {
10285 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10286   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10287   int UNUSED written = 0;
10288   IADDR UNUSED pc = abuf->addr;
10289   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10290
10291 {
10292 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10293 {
10294   SI tmp_tmp;
10295   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10296   {
10297     USI opval = tmp_tmp;
10298     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10299     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10300   }
10301 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))))) {
10302 if (EQSI (FLD (f_ccond), 0)) {
10303 if (NESI (tmp_tmp, 0)) {
10304   {
10305     USI opval = GET_H_SPR (((UINT) 272));
10306     sim_queue_pc_write (current_cpu, opval);
10307     written |= (1 << 6);
10308     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10309   }
10310 }
10311 } else {
10312 if (EQSI (tmp_tmp, 0)) {
10313   {
10314     USI opval = GET_H_SPR (((UINT) 272));
10315     sim_queue_pc_write (current_cpu, opval);
10316     written |= (1 << 6);
10317     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10318   }
10319 }
10320 }
10321 }
10322 }
10323 }
10324
10325   abuf->written = written;
10326   return vpc;
10327 #undef FLD
10328 }
10329
10330 /* bclslr: bclslr$pack $ICCi_2,$ccond,$hint */
10331
10332 static SEM_PC
10333 SEM_FN_NAME (frvbf,bclslr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10334 {
10335 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10336   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10337   int UNUSED written = 0;
10338   IADDR UNUSED pc = abuf->addr;
10339   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10340
10341 {
10342 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10343 {
10344   SI tmp_tmp;
10345   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10346   {
10347     USI opval = tmp_tmp;
10348     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10349     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10350   }
10351 if (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)))) {
10352 if (EQSI (FLD (f_ccond), 0)) {
10353 if (NESI (tmp_tmp, 0)) {
10354   {
10355     USI opval = GET_H_SPR (((UINT) 272));
10356     sim_queue_pc_write (current_cpu, opval);
10357     written |= (1 << 6);
10358     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10359   }
10360 }
10361 } else {
10362 if (EQSI (tmp_tmp, 0)) {
10363   {
10364     USI opval = GET_H_SPR (((UINT) 272));
10365     sim_queue_pc_write (current_cpu, opval);
10366     written |= (1 << 6);
10367     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10368   }
10369 }
10370 }
10371 }
10372 }
10373 }
10374
10375   abuf->written = written;
10376   return vpc;
10377 #undef FLD
10378 }
10379
10380 /* bchilr: bchilr$pack $ICCi_2,$ccond,$hint */
10381
10382 static SEM_PC
10383 SEM_FN_NAME (frvbf,bchilr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10384 {
10385 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10386   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10387   int UNUSED written = 0;
10388   IADDR UNUSED pc = abuf->addr;
10389   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10390
10391 {
10392 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10393 {
10394   SI tmp_tmp;
10395   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10396   {
10397     USI opval = tmp_tmp;
10398     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10399     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10400   }
10401 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))))) {
10402 if (EQSI (FLD (f_ccond), 0)) {
10403 if (NESI (tmp_tmp, 0)) {
10404   {
10405     USI opval = GET_H_SPR (((UINT) 272));
10406     sim_queue_pc_write (current_cpu, opval);
10407     written |= (1 << 6);
10408     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10409   }
10410 }
10411 } else {
10412 if (EQSI (tmp_tmp, 0)) {
10413   {
10414     USI opval = GET_H_SPR (((UINT) 272));
10415     sim_queue_pc_write (current_cpu, opval);
10416     written |= (1 << 6);
10417     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10418   }
10419 }
10420 }
10421 }
10422 }
10423 }
10424
10425   abuf->written = written;
10426   return vpc;
10427 #undef FLD
10428 }
10429
10430 /* bcclr: bcclr$pack $ICCi_2,$ccond,$hint */
10431
10432 static SEM_PC
10433 SEM_FN_NAME (frvbf,bcclr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10434 {
10435 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10436   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10437   int UNUSED written = 0;
10438   IADDR UNUSED pc = abuf->addr;
10439   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10440
10441 {
10442 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10443 {
10444   SI tmp_tmp;
10445   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10446   {
10447     USI opval = tmp_tmp;
10448     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10449     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10450   }
10451 if (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1))) {
10452 if (EQSI (FLD (f_ccond), 0)) {
10453 if (NESI (tmp_tmp, 0)) {
10454   {
10455     USI opval = GET_H_SPR (((UINT) 272));
10456     sim_queue_pc_write (current_cpu, opval);
10457     written |= (1 << 6);
10458     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10459   }
10460 }
10461 } else {
10462 if (EQSI (tmp_tmp, 0)) {
10463   {
10464     USI opval = GET_H_SPR (((UINT) 272));
10465     sim_queue_pc_write (current_cpu, opval);
10466     written |= (1 << 6);
10467     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10468   }
10469 }
10470 }
10471 }
10472 }
10473 }
10474
10475   abuf->written = written;
10476   return vpc;
10477 #undef FLD
10478 }
10479
10480 /* bcnclr: bcnclr$pack $ICCi_2,$ccond,$hint */
10481
10482 static SEM_PC
10483 SEM_FN_NAME (frvbf,bcnclr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10484 {
10485 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10486   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10487   int UNUSED written = 0;
10488   IADDR UNUSED pc = abuf->addr;
10489   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10490
10491 {
10492 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10493 {
10494   SI tmp_tmp;
10495   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10496   {
10497     USI opval = tmp_tmp;
10498     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10499     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10500   }
10501 if (NOTBI (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)))) {
10502 if (EQSI (FLD (f_ccond), 0)) {
10503 if (NESI (tmp_tmp, 0)) {
10504   {
10505     USI opval = GET_H_SPR (((UINT) 272));
10506     sim_queue_pc_write (current_cpu, opval);
10507     written |= (1 << 6);
10508     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10509   }
10510 }
10511 } else {
10512 if (EQSI (tmp_tmp, 0)) {
10513   {
10514     USI opval = GET_H_SPR (((UINT) 272));
10515     sim_queue_pc_write (current_cpu, opval);
10516     written |= (1 << 6);
10517     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10518   }
10519 }
10520 }
10521 }
10522 }
10523 }
10524
10525   abuf->written = written;
10526   return vpc;
10527 #undef FLD
10528 }
10529
10530 /* bcnlr: bcnlr$pack $ICCi_2,$ccond,$hint */
10531
10532 static SEM_PC
10533 SEM_FN_NAME (frvbf,bcnlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10534 {
10535 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10536   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10537   int UNUSED written = 0;
10538   IADDR UNUSED pc = abuf->addr;
10539   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10540
10541 {
10542 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10543 {
10544   SI tmp_tmp;
10545   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10546   {
10547     USI opval = tmp_tmp;
10548     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10549     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10550   }
10551 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3))) {
10552 if (EQSI (FLD (f_ccond), 0)) {
10553 if (NESI (tmp_tmp, 0)) {
10554   {
10555     USI opval = GET_H_SPR (((UINT) 272));
10556     sim_queue_pc_write (current_cpu, opval);
10557     written |= (1 << 6);
10558     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10559   }
10560 }
10561 } else {
10562 if (EQSI (tmp_tmp, 0)) {
10563   {
10564     USI opval = GET_H_SPR (((UINT) 272));
10565     sim_queue_pc_write (current_cpu, opval);
10566     written |= (1 << 6);
10567     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10568   }
10569 }
10570 }
10571 }
10572 }
10573 }
10574
10575   abuf->written = written;
10576   return vpc;
10577 #undef FLD
10578 }
10579
10580 /* bcplr: bcplr$pack $ICCi_2,$ccond,$hint */
10581
10582 static SEM_PC
10583 SEM_FN_NAME (frvbf,bcplr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10584 {
10585 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10586   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10587   int UNUSED written = 0;
10588   IADDR UNUSED pc = abuf->addr;
10589   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10590
10591 {
10592 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10593 {
10594   SI tmp_tmp;
10595   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10596   {
10597     USI opval = tmp_tmp;
10598     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10599     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10600   }
10601 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3)))) {
10602 if (EQSI (FLD (f_ccond), 0)) {
10603 if (NESI (tmp_tmp, 0)) {
10604   {
10605     USI opval = GET_H_SPR (((UINT) 272));
10606     sim_queue_pc_write (current_cpu, opval);
10607     written |= (1 << 6);
10608     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10609   }
10610 }
10611 } else {
10612 if (EQSI (tmp_tmp, 0)) {
10613   {
10614     USI opval = GET_H_SPR (((UINT) 272));
10615     sim_queue_pc_write (current_cpu, opval);
10616     written |= (1 << 6);
10617     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10618   }
10619 }
10620 }
10621 }
10622 }
10623 }
10624
10625   abuf->written = written;
10626   return vpc;
10627 #undef FLD
10628 }
10629
10630 /* bcvlr: bcvlr$pack $ICCi_2,$ccond,$hint */
10631
10632 static SEM_PC
10633 SEM_FN_NAME (frvbf,bcvlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10634 {
10635 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10636   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10637   int UNUSED written = 0;
10638   IADDR UNUSED pc = abuf->addr;
10639   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10640
10641 {
10642 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10643 {
10644   SI tmp_tmp;
10645   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10646   {
10647     USI opval = tmp_tmp;
10648     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10649     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10650   }
10651 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1))) {
10652 if (EQSI (FLD (f_ccond), 0)) {
10653 if (NESI (tmp_tmp, 0)) {
10654   {
10655     USI opval = GET_H_SPR (((UINT) 272));
10656     sim_queue_pc_write (current_cpu, opval);
10657     written |= (1 << 6);
10658     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10659   }
10660 }
10661 } else {
10662 if (EQSI (tmp_tmp, 0)) {
10663   {
10664     USI opval = GET_H_SPR (((UINT) 272));
10665     sim_queue_pc_write (current_cpu, opval);
10666     written |= (1 << 6);
10667     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10668   }
10669 }
10670 }
10671 }
10672 }
10673 }
10674
10675   abuf->written = written;
10676   return vpc;
10677 #undef FLD
10678 }
10679
10680 /* bcnvlr: bcnvlr$pack $ICCi_2,$ccond,$hint */
10681
10682 static SEM_PC
10683 SEM_FN_NAME (frvbf,bcnvlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10684 {
10685 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10686   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10687   int UNUSED written = 0;
10688   IADDR UNUSED pc = abuf->addr;
10689   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10690
10691 {
10692 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10693 {
10694   SI tmp_tmp;
10695   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10696   {
10697     USI opval = tmp_tmp;
10698     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10699     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10700   }
10701 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1)))) {
10702 if (EQSI (FLD (f_ccond), 0)) {
10703 if (NESI (tmp_tmp, 0)) {
10704   {
10705     USI opval = GET_H_SPR (((UINT) 272));
10706     sim_queue_pc_write (current_cpu, opval);
10707     written |= (1 << 6);
10708     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10709   }
10710 }
10711 } else {
10712 if (EQSI (tmp_tmp, 0)) {
10713   {
10714     USI opval = GET_H_SPR (((UINT) 272));
10715     sim_queue_pc_write (current_cpu, opval);
10716     written |= (1 << 6);
10717     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10718   }
10719 }
10720 }
10721 }
10722 }
10723 }
10724
10725   abuf->written = written;
10726   return vpc;
10727 #undef FLD
10728 }
10729
10730 /* fcbralr: fcbralr$pack $ccond$hint_taken */
10731
10732 static SEM_PC
10733 SEM_FN_NAME (frvbf,fcbralr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10734 {
10735 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10736   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10737   int UNUSED written = 0;
10738   IADDR UNUSED pc = abuf->addr;
10739   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10740
10741 {
10742 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10743 {
10744   SI tmp_tmp;
10745   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10746   {
10747     USI opval = tmp_tmp;
10748     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10749     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10750   }
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 << 5);
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 << 5);
10766     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10767   }
10768 }
10769 }
10770 }
10771 }
10772
10773   abuf->written = written;
10774   return vpc;
10775 #undef FLD
10776 }
10777
10778 /* fcbnolr: fcbnolr$pack$hint_not_taken */
10779
10780 static SEM_PC
10781 SEM_FN_NAME (frvbf,fcbnolr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10782 {
10783 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10784   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10785   int UNUSED written = 0;
10786   IADDR UNUSED pc = abuf->addr;
10787   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10788
10789 {
10790 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10791 {
10792   SI tmp_tmp;
10793   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10794   {
10795     USI opval = tmp_tmp;
10796     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10797     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10798   }
10799 ((void) 0); /*nop*/
10800 }
10801 }
10802
10803   return vpc;
10804 #undef FLD
10805 }
10806
10807 /* fcbeqlr: fcbeqlr$pack $FCCi_2,$ccond,$hint */
10808
10809 static SEM_PC
10810 SEM_FN_NAME (frvbf,fcbeqlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10811 {
10812 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10813   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10814   int UNUSED written = 0;
10815   IADDR UNUSED pc = abuf->addr;
10816   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10817
10818 {
10819 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10820 {
10821   SI tmp_tmp;
10822   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10823   {
10824     USI opval = tmp_tmp;
10825     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10826     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10827   }
10828 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3))) {
10829 if (EQSI (FLD (f_ccond), 0)) {
10830 if (NESI (tmp_tmp, 0)) {
10831   {
10832     USI opval = GET_H_SPR (((UINT) 272));
10833     sim_queue_pc_write (current_cpu, opval);
10834     written |= (1 << 6);
10835     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10836   }
10837 }
10838 } else {
10839 if (EQSI (tmp_tmp, 0)) {
10840   {
10841     USI opval = GET_H_SPR (((UINT) 272));
10842     sim_queue_pc_write (current_cpu, opval);
10843     written |= (1 << 6);
10844     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10845   }
10846 }
10847 }
10848 }
10849 }
10850 }
10851
10852   abuf->written = written;
10853   return vpc;
10854 #undef FLD
10855 }
10856
10857 /* fcbnelr: fcbnelr$pack $FCCi_2,$ccond,$hint */
10858
10859 static SEM_PC
10860 SEM_FN_NAME (frvbf,fcbnelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10861 {
10862 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10863   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10864   int UNUSED written = 0;
10865   IADDR UNUSED pc = abuf->addr;
10866   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10867
10868 {
10869 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10870 {
10871   SI tmp_tmp;
10872   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10873   {
10874     USI opval = tmp_tmp;
10875     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10876     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10877   }
10878 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))))) {
10879 if (EQSI (FLD (f_ccond), 0)) {
10880 if (NESI (tmp_tmp, 0)) {
10881   {
10882     USI opval = GET_H_SPR (((UINT) 272));
10883     sim_queue_pc_write (current_cpu, opval);
10884     written |= (1 << 6);
10885     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10886   }
10887 }
10888 } else {
10889 if (EQSI (tmp_tmp, 0)) {
10890   {
10891     USI opval = GET_H_SPR (((UINT) 272));
10892     sim_queue_pc_write (current_cpu, opval);
10893     written |= (1 << 6);
10894     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10895   }
10896 }
10897 }
10898 }
10899 }
10900 }
10901
10902   abuf->written = written;
10903   return vpc;
10904 #undef FLD
10905 }
10906
10907 /* fcblglr: fcblglr$pack $FCCi_2,$ccond,$hint */
10908
10909 static SEM_PC
10910 SEM_FN_NAME (frvbf,fcblglr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10911 {
10912 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10913   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10914   int UNUSED written = 0;
10915   IADDR UNUSED pc = abuf->addr;
10916   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10917
10918 {
10919 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10920 {
10921   SI tmp_tmp;
10922   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10923   {
10924     USI opval = tmp_tmp;
10925     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10926     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10927   }
10928 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)))) {
10929 if (EQSI (FLD (f_ccond), 0)) {
10930 if (NESI (tmp_tmp, 0)) {
10931   {
10932     USI opval = GET_H_SPR (((UINT) 272));
10933     sim_queue_pc_write (current_cpu, opval);
10934     written |= (1 << 6);
10935     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10936   }
10937 }
10938 } else {
10939 if (EQSI (tmp_tmp, 0)) {
10940   {
10941     USI opval = GET_H_SPR (((UINT) 272));
10942     sim_queue_pc_write (current_cpu, opval);
10943     written |= (1 << 6);
10944     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10945   }
10946 }
10947 }
10948 }
10949 }
10950 }
10951
10952   abuf->written = written;
10953   return vpc;
10954 #undef FLD
10955 }
10956
10957 /* fcbuelr: fcbuelr$pack $FCCi_2,$ccond,$hint */
10958
10959 static SEM_PC
10960 SEM_FN_NAME (frvbf,fcbuelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10961 {
10962 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10963   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10964   int UNUSED written = 0;
10965   IADDR UNUSED pc = abuf->addr;
10966   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10967
10968 {
10969 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10970 {
10971   SI tmp_tmp;
10972   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10973   {
10974     USI opval = tmp_tmp;
10975     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10976     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10977   }
10978 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
10979 if (EQSI (FLD (f_ccond), 0)) {
10980 if (NESI (tmp_tmp, 0)) {
10981   {
10982     USI opval = GET_H_SPR (((UINT) 272));
10983     sim_queue_pc_write (current_cpu, opval);
10984     written |= (1 << 6);
10985     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10986   }
10987 }
10988 } else {
10989 if (EQSI (tmp_tmp, 0)) {
10990   {
10991     USI opval = GET_H_SPR (((UINT) 272));
10992     sim_queue_pc_write (current_cpu, opval);
10993     written |= (1 << 6);
10994     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10995   }
10996 }
10997 }
10998 }
10999 }
11000 }
11001
11002   abuf->written = written;
11003   return vpc;
11004 #undef FLD
11005 }
11006
11007 /* fcbullr: fcbullr$pack $FCCi_2,$ccond,$hint */
11008
11009 static SEM_PC
11010 SEM_FN_NAME (frvbf,fcbullr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11011 {
11012 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
11013   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11014   int UNUSED written = 0;
11015   IADDR UNUSED pc = abuf->addr;
11016   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11017
11018 {
11019 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
11020 {
11021   SI tmp_tmp;
11022   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
11023   {
11024     USI opval = tmp_tmp;
11025     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
11026     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
11027   }
11028 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
11029 if (EQSI (FLD (f_ccond), 0)) {
11030 if (NESI (tmp_tmp, 0)) {
11031   {
11032     USI opval = GET_H_SPR (((UINT) 272));
11033     sim_queue_pc_write (current_cpu, opval);
11034     written |= (1 << 6);
11035     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11036   }
11037 }
11038 } else {
11039 if (EQSI (tmp_tmp, 0)) {
11040   {
11041     USI opval = GET_H_SPR (((UINT) 272));
11042     sim_queue_pc_write (current_cpu, opval);
11043     written |= (1 << 6);
11044     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11045   }
11046 }
11047 }
11048 }
11049 }
11050 }
11051
11052   abuf->written = written;
11053   return vpc;
11054 #undef FLD
11055 }
11056
11057 /* fcbgelr: fcbgelr$pack $FCCi_2,$ccond,$hint */
11058
11059 static SEM_PC
11060 SEM_FN_NAME (frvbf,fcbgelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11061 {
11062 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
11063   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11064   int UNUSED written = 0;
11065   IADDR UNUSED pc = abuf->addr;
11066   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11067
11068 {
11069 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
11070 {
11071   SI tmp_tmp;
11072   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
11073   {
11074     USI opval = tmp_tmp;
11075     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
11076     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
11077   }
11078 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)))) {
11079 if (EQSI (FLD (f_ccond), 0)) {
11080 if (NESI (tmp_tmp, 0)) {
11081   {
11082     USI opval = GET_H_SPR (((UINT) 272));
11083     sim_queue_pc_write (current_cpu, opval);
11084     written |= (1 << 6);
11085     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11086   }
11087 }
11088 } else {
11089 if (EQSI (tmp_tmp, 0)) {
11090   {
11091     USI opval = GET_H_SPR (((UINT) 272));
11092     sim_queue_pc_write (current_cpu, opval);
11093     written |= (1 << 6);
11094     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11095   }
11096 }
11097 }
11098 }
11099 }
11100 }
11101
11102   abuf->written = written;
11103   return vpc;
11104 #undef FLD
11105 }
11106
11107 /* fcbltlr: fcbltlr$pack $FCCi_2,$ccond,$hint */
11108
11109 static SEM_PC
11110 SEM_FN_NAME (frvbf,fcbltlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11111 {
11112 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
11113   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11114   int UNUSED written = 0;
11115   IADDR UNUSED pc = abuf->addr;
11116   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11117
11118 {
11119 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
11120 {
11121   SI tmp_tmp;
11122   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
11123   {
11124     USI opval = tmp_tmp;
11125     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
11126     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
11127   }
11128 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2))) {
11129 if (EQSI (FLD (f_ccond), 0)) {
11130 if (NESI (tmp_tmp, 0)) {
11131   {
11132     USI opval = GET_H_SPR (((UINT) 272));
11133     sim_queue_pc_write (current_cpu, opval);
11134     written |= (1 << 6);
11135     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11136   }
11137 }
11138 } else {
11139 if (EQSI (tmp_tmp, 0)) {
11140   {
11141     USI opval = GET_H_SPR (((UINT) 272));
11142     sim_queue_pc_write (current_cpu, opval);
11143     written |= (1 << 6);
11144     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11145   }
11146 }
11147 }
11148 }
11149 }
11150 }
11151
11152   abuf->written = written;
11153   return vpc;
11154 #undef FLD
11155 }
11156
11157 /* fcbugelr: fcbugelr$pack $FCCi_2,$ccond,$hint */
11158
11159 static SEM_PC
11160 SEM_FN_NAME (frvbf,fcbugelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11161 {
11162 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
11163   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11164   int UNUSED written = 0;
11165   IADDR UNUSED pc = abuf->addr;
11166   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11167
11168 {
11169 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
11170 {
11171   SI tmp_tmp;
11172   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
11173   {
11174     USI opval = tmp_tmp;
11175     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
11176     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
11177   }
11178 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))))) {
11179 if (EQSI (FLD (f_ccond), 0)) {
11180 if (NESI (tmp_tmp, 0)) {
11181   {
11182     USI opval = GET_H_SPR (((UINT) 272));
11183     sim_queue_pc_write (current_cpu, opval);
11184     written |= (1 << 6);
11185     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11186   }
11187 }
11188 } else {
11189 if (EQSI (tmp_tmp, 0)) {
11190   {
11191     USI opval = GET_H_SPR (((UINT) 272));
11192     sim_queue_pc_write (current_cpu, opval);
11193     written |= (1 << 6);
11194     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11195   }
11196 }
11197 }
11198 }
11199 }
11200 }
11201
11202   abuf->written = written;
11203   return vpc;
11204 #undef FLD
11205 }
11206
11207 /* fcbuglr: fcbuglr$pack $FCCi_2,$ccond,$hint */
11208
11209 static SEM_PC
11210 SEM_FN_NAME (frvbf,fcbuglr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11211 {
11212 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
11213   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11214   int UNUSED written = 0;
11215   IADDR UNUSED pc = abuf->addr;
11216   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11217
11218 {
11219 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
11220 {
11221   SI tmp_tmp;
11222   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
11223   {
11224     USI opval = tmp_tmp;
11225     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
11226     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
11227   }
11228 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
11229 if (EQSI (FLD (f_ccond), 0)) {
11230 if (NESI (tmp_tmp, 0)) {
11231   {
11232     USI opval = GET_H_SPR (((UINT) 272));
11233     sim_queue_pc_write (current_cpu, opval);
11234     written |= (1 << 6);
11235     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11236   }
11237 }
11238 } else {
11239 if (EQSI (tmp_tmp, 0)) {
11240   {
11241     USI opval = GET_H_SPR (((UINT) 272));
11242     sim_queue_pc_write (current_cpu, opval);
11243     written |= (1 << 6);
11244     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11245   }
11246 }
11247 }
11248 }
11249 }
11250 }
11251
11252   abuf->written = written;
11253   return vpc;
11254 #undef FLD
11255 }
11256
11257 /* fcblelr: fcblelr$pack $FCCi_2,$ccond,$hint */
11258
11259 static SEM_PC
11260 SEM_FN_NAME (frvbf,fcblelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11261 {
11262 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
11263   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11264   int UNUSED written = 0;
11265   IADDR UNUSED pc = abuf->addr;
11266   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11267
11268 {
11269 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
11270 {
11271   SI tmp_tmp;
11272   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
11273   {
11274     USI opval = tmp_tmp;
11275     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
11276     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
11277   }
11278 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)))) {
11279 if (EQSI (FLD (f_ccond), 0)) {
11280 if (NESI (tmp_tmp, 0)) {
11281   {
11282     USI opval = GET_H_SPR (((UINT) 272));
11283     sim_queue_pc_write (current_cpu, opval);
11284     written |= (1 << 6);
11285     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11286   }
11287 }
11288 } else {
11289 if (EQSI (tmp_tmp, 0)) {
11290   {
11291     USI opval = GET_H_SPR (((UINT) 272));
11292     sim_queue_pc_write (current_cpu, opval);
11293     written |= (1 << 6);
11294     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11295   }
11296 }
11297 }
11298 }
11299 }
11300 }
11301
11302   abuf->written = written;
11303   return vpc;
11304 #undef FLD
11305 }
11306
11307 /* fcbgtlr: fcbgtlr$pack $FCCi_2,$ccond,$hint */
11308
11309 static SEM_PC
11310 SEM_FN_NAME (frvbf,fcbgtlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11311 {
11312 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
11313   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11314   int UNUSED written = 0;
11315   IADDR UNUSED pc = abuf->addr;
11316   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11317
11318 {
11319 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
11320 {
11321   SI tmp_tmp;
11322   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
11323   {
11324     USI opval = tmp_tmp;
11325     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
11326     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
11327   }
11328 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1))) {
11329 if (EQSI (FLD (f_ccond), 0)) {
11330 if (NESI (tmp_tmp, 0)) {
11331   {
11332     USI opval = GET_H_SPR (((UINT) 272));
11333     sim_queue_pc_write (current_cpu, opval);
11334     written |= (1 << 6);
11335     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11336   }
11337 }
11338 } else {
11339 if (EQSI (tmp_tmp, 0)) {
11340   {
11341     USI opval = GET_H_SPR (((UINT) 272));
11342     sim_queue_pc_write (current_cpu, opval);
11343     written |= (1 << 6);
11344     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11345   }
11346 }
11347 }
11348 }
11349 }
11350 }
11351
11352   abuf->written = written;
11353   return vpc;
11354 #undef FLD
11355 }
11356
11357 /* fcbulelr: fcbulelr$pack $FCCi_2,$ccond,$hint */
11358
11359 static SEM_PC
11360 SEM_FN_NAME (frvbf,fcbulelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11361 {
11362 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
11363   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11364   int UNUSED written = 0;
11365   IADDR UNUSED pc = abuf->addr;
11366   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11367
11368 {
11369 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
11370 {
11371   SI tmp_tmp;
11372   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
11373   {
11374     USI opval = tmp_tmp;
11375     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
11376     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
11377   }
11378 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))))) {
11379 if (EQSI (FLD (f_ccond), 0)) {
11380 if (NESI (tmp_tmp, 0)) {
11381   {
11382     USI opval = GET_H_SPR (((UINT) 272));
11383     sim_queue_pc_write (current_cpu, opval);
11384     written |= (1 << 6);
11385     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11386   }
11387 }
11388 } else {
11389 if (EQSI (tmp_tmp, 0)) {
11390   {
11391     USI opval = GET_H_SPR (((UINT) 272));
11392     sim_queue_pc_write (current_cpu, opval);
11393     written |= (1 << 6);
11394     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11395   }
11396 }
11397 }
11398 }
11399 }
11400 }
11401
11402   abuf->written = written;
11403   return vpc;
11404 #undef FLD
11405 }
11406
11407 /* fcbulr: fcbulr$pack $FCCi_2,$ccond,$hint */
11408
11409 static SEM_PC
11410 SEM_FN_NAME (frvbf,fcbulr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11411 {
11412 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
11413   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11414   int UNUSED written = 0;
11415   IADDR UNUSED pc = abuf->addr;
11416   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11417
11418 {
11419 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
11420 {
11421   SI tmp_tmp;
11422   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
11423   {
11424     USI opval = tmp_tmp;
11425     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
11426     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
11427   }
11428 if (TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1))) {
11429 if (EQSI (FLD (f_ccond), 0)) {
11430 if (NESI (tmp_tmp, 0)) {
11431   {
11432     USI opval = GET_H_SPR (((UINT) 272));
11433     sim_queue_pc_write (current_cpu, opval);
11434     written |= (1 << 6);
11435     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11436   }
11437 }
11438 } else {
11439 if (EQSI (tmp_tmp, 0)) {
11440   {
11441     USI opval = GET_H_SPR (((UINT) 272));
11442     sim_queue_pc_write (current_cpu, opval);
11443     written |= (1 << 6);
11444     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11445   }
11446 }
11447 }
11448 }
11449 }
11450 }
11451
11452   abuf->written = written;
11453   return vpc;
11454 #undef FLD
11455 }
11456
11457 /* fcbolr: fcbolr$pack $FCCi_2,$ccond,$hint */
11458
11459 static SEM_PC
11460 SEM_FN_NAME (frvbf,fcbolr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11461 {
11462 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
11463   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11464   int UNUSED written = 0;
11465   IADDR UNUSED pc = abuf->addr;
11466   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11467
11468 {
11469 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
11470 {
11471   SI tmp_tmp;
11472   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
11473   {
11474     USI opval = tmp_tmp;
11475     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
11476     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
11477   }
11478 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))))) {
11479 if (EQSI (FLD (f_ccond), 0)) {
11480 if (NESI (tmp_tmp, 0)) {
11481   {
11482     USI opval = GET_H_SPR (((UINT) 272));
11483     sim_queue_pc_write (current_cpu, opval);
11484     written |= (1 << 6);
11485     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11486   }
11487 }
11488 } else {
11489 if (EQSI (tmp_tmp, 0)) {
11490   {
11491     USI opval = GET_H_SPR (((UINT) 272));
11492     sim_queue_pc_write (current_cpu, opval);
11493     written |= (1 << 6);
11494     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11495   }
11496 }
11497 }
11498 }
11499 }
11500 }
11501
11502   abuf->written = written;
11503   return vpc;
11504 #undef FLD
11505 }
11506
11507 /* jmpl: jmpl$pack @($GRi,$GRj) */
11508
11509 static SEM_PC
11510 SEM_FN_NAME (frvbf,jmpl) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11511 {
11512 #define FLD(f) abuf->fields.sfmt_cjmpl.f
11513   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11514   int UNUSED written = 0;
11515   IADDR UNUSED pc = abuf->addr;
11516   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11517
11518 {
11519 if (EQSI (FLD (f_LI), 1)) {
11520 frvbf_set_write_next_vliw_addr_to_LR (current_cpu, 1);
11521 }
11522   {
11523     USI opval = ANDSI (ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), 0xfffffffc);
11524     sim_queue_pc_write (current_cpu, opval);
11525     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11526   }
11527 frvbf_model_branch (current_cpu, pc, 2);
11528 }
11529
11530   return vpc;
11531 #undef FLD
11532 }
11533
11534 /* calll: calll$pack @($GRi,$GRj) */
11535
11536 static SEM_PC
11537 SEM_FN_NAME (frvbf,calll) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11538 {
11539 #define FLD(f) abuf->fields.sfmt_cjmpl.f
11540   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11541   int UNUSED written = 0;
11542   IADDR UNUSED pc = abuf->addr;
11543   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11544
11545 {
11546 if (EQSI (FLD (f_LI), 1)) {
11547 frvbf_set_write_next_vliw_addr_to_LR (current_cpu, 1);
11548 }
11549   {
11550     USI opval = ANDSI (ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), 0xfffffffc);
11551     sim_queue_pc_write (current_cpu, opval);
11552     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11553   }
11554 frvbf_model_branch (current_cpu, pc, 2);
11555 }
11556
11557   return vpc;
11558 #undef FLD
11559 }
11560
11561 /* jmpil: jmpil$pack @($GRi,$s12) */
11562
11563 static SEM_PC
11564 SEM_FN_NAME (frvbf,jmpil) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11565 {
11566 #define FLD(f) abuf->fields.sfmt_jmpil.f
11567   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11568   int UNUSED written = 0;
11569   IADDR UNUSED pc = abuf->addr;
11570   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11571
11572 {
11573 if (EQSI (FLD (f_LI), 1)) {
11574 frvbf_set_write_next_vliw_addr_to_LR (current_cpu, 1);
11575 }
11576   {
11577     USI opval = ANDSI (ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)), 0xfffffffc);
11578     sim_queue_pc_write (current_cpu, opval);
11579     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11580   }
11581 frvbf_model_branch (current_cpu, pc, 2);
11582 }
11583
11584   return vpc;
11585 #undef FLD
11586 }
11587
11588 /* callil: callil$pack @($GRi,$s12) */
11589
11590 static SEM_PC
11591 SEM_FN_NAME (frvbf,callil) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11592 {
11593 #define FLD(f) abuf->fields.sfmt_jmpil.f
11594   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11595   int UNUSED written = 0;
11596   IADDR UNUSED pc = abuf->addr;
11597   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11598
11599 {
11600 if (EQSI (FLD (f_LI), 1)) {
11601 frvbf_set_write_next_vliw_addr_to_LR (current_cpu, 1);
11602 }
11603   {
11604     USI opval = ANDSI (ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)), 0xfffffffc);
11605     sim_queue_pc_write (current_cpu, opval);
11606     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11607   }
11608 frvbf_model_branch (current_cpu, pc, 2);
11609 }
11610
11611   return vpc;
11612 #undef FLD
11613 }
11614
11615 /* call: call$pack $label24 */
11616
11617 static SEM_PC
11618 SEM_FN_NAME (frvbf,call) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11619 {
11620 #define FLD(f) abuf->fields.sfmt_call.f
11621   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11622   int UNUSED written = 0;
11623   IADDR UNUSED pc = abuf->addr;
11624   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11625
11626 {
11627 frvbf_set_write_next_vliw_addr_to_LR (current_cpu, 1);
11628   {
11629     USI opval = FLD (i_label24);
11630     sim_queue_pc_write (current_cpu, opval);
11631     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11632   }
11633 frvbf_model_branch (current_cpu, pc, 2);
11634 }
11635
11636   return vpc;
11637 #undef FLD
11638 }
11639
11640 /* rett: rett$pack $debug */
11641
11642 static SEM_PC
11643 SEM_FN_NAME (frvbf,rett) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11644 {
11645 #define FLD(f) abuf->fields.sfmt_rett.f
11646   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11647   int UNUSED written = 0;
11648   IADDR UNUSED pc = abuf->addr;
11649   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11650
11651 {
11652   {
11653     USI opval = frv_rett (current_cpu, pc, FLD (f_debug));
11654     sim_queue_pc_write (current_cpu, opval);
11655     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11656   }
11657 frvbf_model_branch (current_cpu, pc, 2);
11658 }
11659
11660   return vpc;
11661 #undef FLD
11662 }
11663
11664 /* rei: rei$pack $eir */
11665
11666 static SEM_PC
11667 SEM_FN_NAME (frvbf,rei) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11668 {
11669 #define FLD(f) abuf->fields.fmt_empty.f
11670   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11671   int UNUSED written = 0;
11672   IADDR UNUSED pc = abuf->addr;
11673   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11674
11675 ((void) 0); /*nop*/
11676
11677   return vpc;
11678 #undef FLD
11679 }
11680
11681 /* tra: tra$pack $GRi,$GRj */
11682
11683 static SEM_PC
11684 SEM_FN_NAME (frvbf,tra) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11685 {
11686 #define FLD(f) abuf->fields.sfmt_ftne.f
11687   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11688   int UNUSED written = 0;
11689   IADDR UNUSED pc = abuf->addr;
11690   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11691
11692 {
11693 ; /*clobber*/
11694 ; /*clobber*/
11695 ; /*clobber*/
11696 ; /*clobber*/
11697 if (NEBI (CPU (h_psr_esr), 0)) {
11698 {
11699 ; /*clobber*/
11700 ; /*clobber*/
11701 ; /*clobber*/
11702 ; /*clobber*/
11703 }
11704 }
11705 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11706 }
11707
11708   abuf->written = written;
11709   return vpc;
11710 #undef FLD
11711 }
11712
11713 /* tno: tno$pack */
11714
11715 static SEM_PC
11716 SEM_FN_NAME (frvbf,tno) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11717 {
11718 #define FLD(f) abuf->fields.fmt_empty.f
11719   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11720   int UNUSED written = 0;
11721   IADDR UNUSED pc = abuf->addr;
11722   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11723
11724 ((void) 0); /*nop*/
11725
11726   return vpc;
11727 #undef FLD
11728 }
11729
11730 /* teq: teq$pack $ICCi_2,$GRi,$GRj */
11731
11732 static SEM_PC
11733 SEM_FN_NAME (frvbf,teq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11734 {
11735 #define FLD(f) abuf->fields.sfmt_teq.f
11736   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11737   int UNUSED written = 0;
11738   IADDR UNUSED pc = abuf->addr;
11739   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11740
11741 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2))) {
11742 {
11743 ; /*clobber*/
11744 ; /*clobber*/
11745 ; /*clobber*/
11746 ; /*clobber*/
11747 if (NEBI (CPU (h_psr_esr), 0)) {
11748 {
11749 ; /*clobber*/
11750 ; /*clobber*/
11751 ; /*clobber*/
11752 ; /*clobber*/
11753 }
11754 }
11755 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11756 }
11757 }
11758
11759   abuf->written = written;
11760   return vpc;
11761 #undef FLD
11762 }
11763
11764 /* tne: tne$pack $ICCi_2,$GRi,$GRj */
11765
11766 static SEM_PC
11767 SEM_FN_NAME (frvbf,tne) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11768 {
11769 #define FLD(f) abuf->fields.sfmt_teq.f
11770   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11771   int UNUSED written = 0;
11772   IADDR UNUSED pc = abuf->addr;
11773   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11774
11775 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)))) {
11776 {
11777 ; /*clobber*/
11778 ; /*clobber*/
11779 ; /*clobber*/
11780 ; /*clobber*/
11781 if (NEBI (CPU (h_psr_esr), 0)) {
11782 {
11783 ; /*clobber*/
11784 ; /*clobber*/
11785 ; /*clobber*/
11786 ; /*clobber*/
11787 }
11788 }
11789 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11790 }
11791 }
11792
11793   abuf->written = written;
11794   return vpc;
11795 #undef FLD
11796 }
11797
11798 /* tle: tle$pack $ICCi_2,$GRi,$GRj */
11799
11800 static SEM_PC
11801 SEM_FN_NAME (frvbf,tle) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11802 {
11803 #define FLD(f) abuf->fields.sfmt_teq.f
11804   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11805   int UNUSED written = 0;
11806   IADDR UNUSED pc = abuf->addr;
11807   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11808
11809 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))))) {
11810 {
11811 ; /*clobber*/
11812 ; /*clobber*/
11813 ; /*clobber*/
11814 ; /*clobber*/
11815 if (NEBI (CPU (h_psr_esr), 0)) {
11816 {
11817 ; /*clobber*/
11818 ; /*clobber*/
11819 ; /*clobber*/
11820 ; /*clobber*/
11821 }
11822 }
11823 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11824 }
11825 }
11826
11827   abuf->written = written;
11828   return vpc;
11829 #undef FLD
11830 }
11831
11832 /* tgt: tgt$pack $ICCi_2,$GRi,$GRj */
11833
11834 static SEM_PC
11835 SEM_FN_NAME (frvbf,tgt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11836 {
11837 #define FLD(f) abuf->fields.sfmt_teq.f
11838   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11839   int UNUSED written = 0;
11840   IADDR UNUSED pc = abuf->addr;
11841   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11842
11843 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)))))) {
11844 {
11845 ; /*clobber*/
11846 ; /*clobber*/
11847 ; /*clobber*/
11848 ; /*clobber*/
11849 if (NEBI (CPU (h_psr_esr), 0)) {
11850 {
11851 ; /*clobber*/
11852 ; /*clobber*/
11853 ; /*clobber*/
11854 ; /*clobber*/
11855 }
11856 }
11857 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11858 }
11859 }
11860
11861   abuf->written = written;
11862   return vpc;
11863 #undef FLD
11864 }
11865
11866 /* tlt: tlt$pack $ICCi_2,$GRi,$GRj */
11867
11868 static SEM_PC
11869 SEM_FN_NAME (frvbf,tlt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11870 {
11871 #define FLD(f) abuf->fields.sfmt_teq.f
11872   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11873   int UNUSED written = 0;
11874   IADDR UNUSED pc = abuf->addr;
11875   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11876
11877 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)))) {
11878 {
11879 ; /*clobber*/
11880 ; /*clobber*/
11881 ; /*clobber*/
11882 ; /*clobber*/
11883 if (NEBI (CPU (h_psr_esr), 0)) {
11884 {
11885 ; /*clobber*/
11886 ; /*clobber*/
11887 ; /*clobber*/
11888 ; /*clobber*/
11889 }
11890 }
11891 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11892 }
11893 }
11894
11895   abuf->written = written;
11896   return vpc;
11897 #undef FLD
11898 }
11899
11900 /* tge: tge$pack $ICCi_2,$GRi,$GRj */
11901
11902 static SEM_PC
11903 SEM_FN_NAME (frvbf,tge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11904 {
11905 #define FLD(f) abuf->fields.sfmt_teq.f
11906   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11907   int UNUSED written = 0;
11908   IADDR UNUSED pc = abuf->addr;
11909   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11910
11911 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))))) {
11912 {
11913 ; /*clobber*/
11914 ; /*clobber*/
11915 ; /*clobber*/
11916 ; /*clobber*/
11917 if (NEBI (CPU (h_psr_esr), 0)) {
11918 {
11919 ; /*clobber*/
11920 ; /*clobber*/
11921 ; /*clobber*/
11922 ; /*clobber*/
11923 }
11924 }
11925 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11926 }
11927 }
11928
11929   abuf->written = written;
11930   return vpc;
11931 #undef FLD
11932 }
11933
11934 /* tls: tls$pack $ICCi_2,$GRi,$GRj */
11935
11936 static SEM_PC
11937 SEM_FN_NAME (frvbf,tls) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11938 {
11939 #define FLD(f) abuf->fields.sfmt_teq.f
11940   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11941   int UNUSED written = 0;
11942   IADDR UNUSED pc = abuf->addr;
11943   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11944
11945 if (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)))) {
11946 {
11947 ; /*clobber*/
11948 ; /*clobber*/
11949 ; /*clobber*/
11950 ; /*clobber*/
11951 if (NEBI (CPU (h_psr_esr), 0)) {
11952 {
11953 ; /*clobber*/
11954 ; /*clobber*/
11955 ; /*clobber*/
11956 ; /*clobber*/
11957 }
11958 }
11959 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11960 }
11961 }
11962
11963   abuf->written = written;
11964   return vpc;
11965 #undef FLD
11966 }
11967
11968 /* thi: thi$pack $ICCi_2,$GRi,$GRj */
11969
11970 static SEM_PC
11971 SEM_FN_NAME (frvbf,thi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11972 {
11973 #define FLD(f) abuf->fields.sfmt_teq.f
11974   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11975   int UNUSED written = 0;
11976   IADDR UNUSED pc = abuf->addr;
11977   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11978
11979 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))))) {
11980 {
11981 ; /*clobber*/
11982 ; /*clobber*/
11983 ; /*clobber*/
11984 ; /*clobber*/
11985 if (NEBI (CPU (h_psr_esr), 0)) {
11986 {
11987 ; /*clobber*/
11988 ; /*clobber*/
11989 ; /*clobber*/
11990 ; /*clobber*/
11991 }
11992 }
11993 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11994 }
11995 }
11996
11997   abuf->written = written;
11998   return vpc;
11999 #undef FLD
12000 }
12001
12002 /* tc: tc$pack $ICCi_2,$GRi,$GRj */
12003
12004 static SEM_PC
12005 SEM_FN_NAME (frvbf,tc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12006 {
12007 #define FLD(f) abuf->fields.sfmt_teq.f
12008   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12009   int UNUSED written = 0;
12010   IADDR UNUSED pc = abuf->addr;
12011   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12012
12013 if (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1))) {
12014 {
12015 ; /*clobber*/
12016 ; /*clobber*/
12017 ; /*clobber*/
12018 ; /*clobber*/
12019 if (NEBI (CPU (h_psr_esr), 0)) {
12020 {
12021 ; /*clobber*/
12022 ; /*clobber*/
12023 ; /*clobber*/
12024 ; /*clobber*/
12025 }
12026 }
12027 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12028 }
12029 }
12030
12031   abuf->written = written;
12032   return vpc;
12033 #undef FLD
12034 }
12035
12036 /* tnc: tnc$pack $ICCi_2,$GRi,$GRj */
12037
12038 static SEM_PC
12039 SEM_FN_NAME (frvbf,tnc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12040 {
12041 #define FLD(f) abuf->fields.sfmt_teq.f
12042   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12043   int UNUSED written = 0;
12044   IADDR UNUSED pc = abuf->addr;
12045   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12046
12047 if (NOTBI (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)))) {
12048 {
12049 ; /*clobber*/
12050 ; /*clobber*/
12051 ; /*clobber*/
12052 ; /*clobber*/
12053 if (NEBI (CPU (h_psr_esr), 0)) {
12054 {
12055 ; /*clobber*/
12056 ; /*clobber*/
12057 ; /*clobber*/
12058 ; /*clobber*/
12059 }
12060 }
12061 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12062 }
12063 }
12064
12065   abuf->written = written;
12066   return vpc;
12067 #undef FLD
12068 }
12069
12070 /* tn: tn$pack $ICCi_2,$GRi,$GRj */
12071
12072 static SEM_PC
12073 SEM_FN_NAME (frvbf,tn) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12074 {
12075 #define FLD(f) abuf->fields.sfmt_teq.f
12076   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12077   int UNUSED written = 0;
12078   IADDR UNUSED pc = abuf->addr;
12079   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12080
12081 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3))) {
12082 {
12083 ; /*clobber*/
12084 ; /*clobber*/
12085 ; /*clobber*/
12086 ; /*clobber*/
12087 if (NEBI (CPU (h_psr_esr), 0)) {
12088 {
12089 ; /*clobber*/
12090 ; /*clobber*/
12091 ; /*clobber*/
12092 ; /*clobber*/
12093 }
12094 }
12095 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12096 }
12097 }
12098
12099   abuf->written = written;
12100   return vpc;
12101 #undef FLD
12102 }
12103
12104 /* tp: tp$pack $ICCi_2,$GRi,$GRj */
12105
12106 static SEM_PC
12107 SEM_FN_NAME (frvbf,tp) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12108 {
12109 #define FLD(f) abuf->fields.sfmt_teq.f
12110   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12111   int UNUSED written = 0;
12112   IADDR UNUSED pc = abuf->addr;
12113   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12114
12115 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3)))) {
12116 {
12117 ; /*clobber*/
12118 ; /*clobber*/
12119 ; /*clobber*/
12120 ; /*clobber*/
12121 if (NEBI (CPU (h_psr_esr), 0)) {
12122 {
12123 ; /*clobber*/
12124 ; /*clobber*/
12125 ; /*clobber*/
12126 ; /*clobber*/
12127 }
12128 }
12129 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12130 }
12131 }
12132
12133   abuf->written = written;
12134   return vpc;
12135 #undef FLD
12136 }
12137
12138 /* tv: tv$pack $ICCi_2,$GRi,$GRj */
12139
12140 static SEM_PC
12141 SEM_FN_NAME (frvbf,tv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12142 {
12143 #define FLD(f) abuf->fields.sfmt_teq.f
12144   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12145   int UNUSED written = 0;
12146   IADDR UNUSED pc = abuf->addr;
12147   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12148
12149 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1))) {
12150 {
12151 ; /*clobber*/
12152 ; /*clobber*/
12153 ; /*clobber*/
12154 ; /*clobber*/
12155 if (NEBI (CPU (h_psr_esr), 0)) {
12156 {
12157 ; /*clobber*/
12158 ; /*clobber*/
12159 ; /*clobber*/
12160 ; /*clobber*/
12161 }
12162 }
12163 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12164 }
12165 }
12166
12167   abuf->written = written;
12168   return vpc;
12169 #undef FLD
12170 }
12171
12172 /* tnv: tnv$pack $ICCi_2,$GRi,$GRj */
12173
12174 static SEM_PC
12175 SEM_FN_NAME (frvbf,tnv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12176 {
12177 #define FLD(f) abuf->fields.sfmt_teq.f
12178   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12179   int UNUSED written = 0;
12180   IADDR UNUSED pc = abuf->addr;
12181   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12182
12183 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1)))) {
12184 {
12185 ; /*clobber*/
12186 ; /*clobber*/
12187 ; /*clobber*/
12188 ; /*clobber*/
12189 if (NEBI (CPU (h_psr_esr), 0)) {
12190 {
12191 ; /*clobber*/
12192 ; /*clobber*/
12193 ; /*clobber*/
12194 ; /*clobber*/
12195 }
12196 }
12197 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12198 }
12199 }
12200
12201   abuf->written = written;
12202   return vpc;
12203 #undef FLD
12204 }
12205
12206 /* ftra: ftra$pack $GRi,$GRj */
12207
12208 static SEM_PC
12209 SEM_FN_NAME (frvbf,ftra) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12210 {
12211 #define FLD(f) abuf->fields.sfmt_ftne.f
12212   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12213   int UNUSED written = 0;
12214   IADDR UNUSED pc = abuf->addr;
12215   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12216
12217 {
12218 ; /*clobber*/
12219 ; /*clobber*/
12220 ; /*clobber*/
12221 ; /*clobber*/
12222 if (NEBI (CPU (h_psr_esr), 0)) {
12223 {
12224 ; /*clobber*/
12225 ; /*clobber*/
12226 ; /*clobber*/
12227 ; /*clobber*/
12228 }
12229 }
12230 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12231 }
12232
12233   abuf->written = written;
12234   return vpc;
12235 #undef FLD
12236 }
12237
12238 /* ftno: ftno$pack */
12239
12240 static SEM_PC
12241 SEM_FN_NAME (frvbf,ftno) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12242 {
12243 #define FLD(f) abuf->fields.fmt_empty.f
12244   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12245   int UNUSED written = 0;
12246   IADDR UNUSED pc = abuf->addr;
12247   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12248
12249 ((void) 0); /*nop*/
12250
12251   return vpc;
12252 #undef FLD
12253 }
12254
12255 /* ftne: ftne$pack $FCCi_2,$GRi,$GRj */
12256
12257 static SEM_PC
12258 SEM_FN_NAME (frvbf,ftne) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12259 {
12260 #define FLD(f) abuf->fields.sfmt_ftne.f
12261   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12262   int UNUSED written = 0;
12263   IADDR UNUSED pc = abuf->addr;
12264   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12265
12266 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))))) {
12267 {
12268 ; /*clobber*/
12269 ; /*clobber*/
12270 ; /*clobber*/
12271 ; /*clobber*/
12272 if (NEBI (CPU (h_psr_esr), 0)) {
12273 {
12274 ; /*clobber*/
12275 ; /*clobber*/
12276 ; /*clobber*/
12277 ; /*clobber*/
12278 }
12279 }
12280 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12281 }
12282 }
12283
12284   abuf->written = written;
12285   return vpc;
12286 #undef FLD
12287 }
12288
12289 /* fteq: fteq$pack $FCCi_2,$GRi,$GRj */
12290
12291 static SEM_PC
12292 SEM_FN_NAME (frvbf,fteq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12293 {
12294 #define FLD(f) abuf->fields.sfmt_ftne.f
12295   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12296   int UNUSED written = 0;
12297   IADDR UNUSED pc = abuf->addr;
12298   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12299
12300 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3))) {
12301 {
12302 ; /*clobber*/
12303 ; /*clobber*/
12304 ; /*clobber*/
12305 ; /*clobber*/
12306 if (NEBI (CPU (h_psr_esr), 0)) {
12307 {
12308 ; /*clobber*/
12309 ; /*clobber*/
12310 ; /*clobber*/
12311 ; /*clobber*/
12312 }
12313 }
12314 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12315 }
12316 }
12317
12318   abuf->written = written;
12319   return vpc;
12320 #undef FLD
12321 }
12322
12323 /* ftlg: ftlg$pack $FCCi_2,$GRi,$GRj */
12324
12325 static SEM_PC
12326 SEM_FN_NAME (frvbf,ftlg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12327 {
12328 #define FLD(f) abuf->fields.sfmt_ftne.f
12329   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12330   int UNUSED written = 0;
12331   IADDR UNUSED pc = abuf->addr;
12332   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12333
12334 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)))) {
12335 {
12336 ; /*clobber*/
12337 ; /*clobber*/
12338 ; /*clobber*/
12339 ; /*clobber*/
12340 if (NEBI (CPU (h_psr_esr), 0)) {
12341 {
12342 ; /*clobber*/
12343 ; /*clobber*/
12344 ; /*clobber*/
12345 ; /*clobber*/
12346 }
12347 }
12348 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12349 }
12350 }
12351
12352   abuf->written = written;
12353   return vpc;
12354 #undef FLD
12355 }
12356
12357 /* ftue: ftue$pack $FCCi_2,$GRi,$GRj */
12358
12359 static SEM_PC
12360 SEM_FN_NAME (frvbf,ftue) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12361 {
12362 #define FLD(f) abuf->fields.sfmt_ftne.f
12363   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12364   int UNUSED written = 0;
12365   IADDR UNUSED pc = abuf->addr;
12366   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12367
12368 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
12369 {
12370 ; /*clobber*/
12371 ; /*clobber*/
12372 ; /*clobber*/
12373 ; /*clobber*/
12374 if (NEBI (CPU (h_psr_esr), 0)) {
12375 {
12376 ; /*clobber*/
12377 ; /*clobber*/
12378 ; /*clobber*/
12379 ; /*clobber*/
12380 }
12381 }
12382 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12383 }
12384 }
12385
12386   abuf->written = written;
12387   return vpc;
12388 #undef FLD
12389 }
12390
12391 /* ftul: ftul$pack $FCCi_2,$GRi,$GRj */
12392
12393 static SEM_PC
12394 SEM_FN_NAME (frvbf,ftul) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12395 {
12396 #define FLD(f) abuf->fields.sfmt_ftne.f
12397   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12398   int UNUSED written = 0;
12399   IADDR UNUSED pc = abuf->addr;
12400   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12401
12402 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
12403 {
12404 ; /*clobber*/
12405 ; /*clobber*/
12406 ; /*clobber*/
12407 ; /*clobber*/
12408 if (NEBI (CPU (h_psr_esr), 0)) {
12409 {
12410 ; /*clobber*/
12411 ; /*clobber*/
12412 ; /*clobber*/
12413 ; /*clobber*/
12414 }
12415 }
12416 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12417 }
12418 }
12419
12420   abuf->written = written;
12421   return vpc;
12422 #undef FLD
12423 }
12424
12425 /* ftge: ftge$pack $FCCi_2,$GRi,$GRj */
12426
12427 static SEM_PC
12428 SEM_FN_NAME (frvbf,ftge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12429 {
12430 #define FLD(f) abuf->fields.sfmt_ftne.f
12431   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12432   int UNUSED written = 0;
12433   IADDR UNUSED pc = abuf->addr;
12434   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12435
12436 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)))) {
12437 {
12438 ; /*clobber*/
12439 ; /*clobber*/
12440 ; /*clobber*/
12441 ; /*clobber*/
12442 if (NEBI (CPU (h_psr_esr), 0)) {
12443 {
12444 ; /*clobber*/
12445 ; /*clobber*/
12446 ; /*clobber*/
12447 ; /*clobber*/
12448 }
12449 }
12450 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12451 }
12452 }
12453
12454   abuf->written = written;
12455   return vpc;
12456 #undef FLD
12457 }
12458
12459 /* ftlt: ftlt$pack $FCCi_2,$GRi,$GRj */
12460
12461 static SEM_PC
12462 SEM_FN_NAME (frvbf,ftlt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12463 {
12464 #define FLD(f) abuf->fields.sfmt_ftne.f
12465   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12466   int UNUSED written = 0;
12467   IADDR UNUSED pc = abuf->addr;
12468   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12469
12470 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2))) {
12471 {
12472 ; /*clobber*/
12473 ; /*clobber*/
12474 ; /*clobber*/
12475 ; /*clobber*/
12476 if (NEBI (CPU (h_psr_esr), 0)) {
12477 {
12478 ; /*clobber*/
12479 ; /*clobber*/
12480 ; /*clobber*/
12481 ; /*clobber*/
12482 }
12483 }
12484 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12485 }
12486 }
12487
12488   abuf->written = written;
12489   return vpc;
12490 #undef FLD
12491 }
12492
12493 /* ftuge: ftuge$pack $FCCi_2,$GRi,$GRj */
12494
12495 static SEM_PC
12496 SEM_FN_NAME (frvbf,ftuge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12497 {
12498 #define FLD(f) abuf->fields.sfmt_ftne.f
12499   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12500   int UNUSED written = 0;
12501   IADDR UNUSED pc = abuf->addr;
12502   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12503
12504 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))))) {
12505 {
12506 ; /*clobber*/
12507 ; /*clobber*/
12508 ; /*clobber*/
12509 ; /*clobber*/
12510 if (NEBI (CPU (h_psr_esr), 0)) {
12511 {
12512 ; /*clobber*/
12513 ; /*clobber*/
12514 ; /*clobber*/
12515 ; /*clobber*/
12516 }
12517 }
12518 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12519 }
12520 }
12521
12522   abuf->written = written;
12523   return vpc;
12524 #undef FLD
12525 }
12526
12527 /* ftug: ftug$pack $FCCi_2,$GRi,$GRj */
12528
12529 static SEM_PC
12530 SEM_FN_NAME (frvbf,ftug) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12531 {
12532 #define FLD(f) abuf->fields.sfmt_ftne.f
12533   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12534   int UNUSED written = 0;
12535   IADDR UNUSED pc = abuf->addr;
12536   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12537
12538 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
12539 {
12540 ; /*clobber*/
12541 ; /*clobber*/
12542 ; /*clobber*/
12543 ; /*clobber*/
12544 if (NEBI (CPU (h_psr_esr), 0)) {
12545 {
12546 ; /*clobber*/
12547 ; /*clobber*/
12548 ; /*clobber*/
12549 ; /*clobber*/
12550 }
12551 }
12552 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12553 }
12554 }
12555
12556   abuf->written = written;
12557   return vpc;
12558 #undef FLD
12559 }
12560
12561 /* ftle: ftle$pack $FCCi_2,$GRi,$GRj */
12562
12563 static SEM_PC
12564 SEM_FN_NAME (frvbf,ftle) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12565 {
12566 #define FLD(f) abuf->fields.sfmt_ftne.f
12567   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12568   int UNUSED written = 0;
12569   IADDR UNUSED pc = abuf->addr;
12570   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12571
12572 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)))) {
12573 {
12574 ; /*clobber*/
12575 ; /*clobber*/
12576 ; /*clobber*/
12577 ; /*clobber*/
12578 if (NEBI (CPU (h_psr_esr), 0)) {
12579 {
12580 ; /*clobber*/
12581 ; /*clobber*/
12582 ; /*clobber*/
12583 ; /*clobber*/
12584 }
12585 }
12586 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12587 }
12588 }
12589
12590   abuf->written = written;
12591   return vpc;
12592 #undef FLD
12593 }
12594
12595 /* ftgt: ftgt$pack $FCCi_2,$GRi,$GRj */
12596
12597 static SEM_PC
12598 SEM_FN_NAME (frvbf,ftgt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12599 {
12600 #define FLD(f) abuf->fields.sfmt_ftne.f
12601   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12602   int UNUSED written = 0;
12603   IADDR UNUSED pc = abuf->addr;
12604   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12605
12606 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1))) {
12607 {
12608 ; /*clobber*/
12609 ; /*clobber*/
12610 ; /*clobber*/
12611 ; /*clobber*/
12612 if (NEBI (CPU (h_psr_esr), 0)) {
12613 {
12614 ; /*clobber*/
12615 ; /*clobber*/
12616 ; /*clobber*/
12617 ; /*clobber*/
12618 }
12619 }
12620 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12621 }
12622 }
12623
12624   abuf->written = written;
12625   return vpc;
12626 #undef FLD
12627 }
12628
12629 /* ftule: ftule$pack $FCCi_2,$GRi,$GRj */
12630
12631 static SEM_PC
12632 SEM_FN_NAME (frvbf,ftule) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12633 {
12634 #define FLD(f) abuf->fields.sfmt_ftne.f
12635   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12636   int UNUSED written = 0;
12637   IADDR UNUSED pc = abuf->addr;
12638   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12639
12640 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))))) {
12641 {
12642 ; /*clobber*/
12643 ; /*clobber*/
12644 ; /*clobber*/
12645 ; /*clobber*/
12646 if (NEBI (CPU (h_psr_esr), 0)) {
12647 {
12648 ; /*clobber*/
12649 ; /*clobber*/
12650 ; /*clobber*/
12651 ; /*clobber*/
12652 }
12653 }
12654 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12655 }
12656 }
12657
12658   abuf->written = written;
12659   return vpc;
12660 #undef FLD
12661 }
12662
12663 /* ftu: ftu$pack $FCCi_2,$GRi,$GRj */
12664
12665 static SEM_PC
12666 SEM_FN_NAME (frvbf,ftu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12667 {
12668 #define FLD(f) abuf->fields.sfmt_ftne.f
12669   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12670   int UNUSED written = 0;
12671   IADDR UNUSED pc = abuf->addr;
12672   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12673
12674 if (TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1))) {
12675 {
12676 ; /*clobber*/
12677 ; /*clobber*/
12678 ; /*clobber*/
12679 ; /*clobber*/
12680 if (NEBI (CPU (h_psr_esr), 0)) {
12681 {
12682 ; /*clobber*/
12683 ; /*clobber*/
12684 ; /*clobber*/
12685 ; /*clobber*/
12686 }
12687 }
12688 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12689 }
12690 }
12691
12692   abuf->written = written;
12693   return vpc;
12694 #undef FLD
12695 }
12696
12697 /* fto: fto$pack $FCCi_2,$GRi,$GRj */
12698
12699 static SEM_PC
12700 SEM_FN_NAME (frvbf,fto) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12701 {
12702 #define FLD(f) abuf->fields.sfmt_ftne.f
12703   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12704   int UNUSED written = 0;
12705   IADDR UNUSED pc = abuf->addr;
12706   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12707
12708 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))))) {
12709 {
12710 ; /*clobber*/
12711 ; /*clobber*/
12712 ; /*clobber*/
12713 ; /*clobber*/
12714 if (NEBI (CPU (h_psr_esr), 0)) {
12715 {
12716 ; /*clobber*/
12717 ; /*clobber*/
12718 ; /*clobber*/
12719 ; /*clobber*/
12720 }
12721 }
12722 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12723 }
12724 }
12725
12726   abuf->written = written;
12727   return vpc;
12728 #undef FLD
12729 }
12730
12731 /* tira: tira$pack $GRi,$s12 */
12732
12733 static SEM_PC
12734 SEM_FN_NAME (frvbf,tira) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12735 {
12736 #define FLD(f) abuf->fields.sfmt_ftine.f
12737   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12738   int UNUSED written = 0;
12739   IADDR UNUSED pc = abuf->addr;
12740   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12741
12742 {
12743 ; /*clobber*/
12744 ; /*clobber*/
12745 ; /*clobber*/
12746 ; /*clobber*/
12747 if (NEBI (CPU (h_psr_esr), 0)) {
12748 {
12749 ; /*clobber*/
12750 ; /*clobber*/
12751 ; /*clobber*/
12752 ; /*clobber*/
12753 }
12754 }
12755 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12756 }
12757
12758   abuf->written = written;
12759   return vpc;
12760 #undef FLD
12761 }
12762
12763 /* tino: tino$pack */
12764
12765 static SEM_PC
12766 SEM_FN_NAME (frvbf,tino) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12767 {
12768 #define FLD(f) abuf->fields.fmt_empty.f
12769   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12770   int UNUSED written = 0;
12771   IADDR UNUSED pc = abuf->addr;
12772   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12773
12774 ((void) 0); /*nop*/
12775
12776   return vpc;
12777 #undef FLD
12778 }
12779
12780 /* tieq: tieq$pack $ICCi_2,$GRi,$s12 */
12781
12782 static SEM_PC
12783 SEM_FN_NAME (frvbf,tieq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12784 {
12785 #define FLD(f) abuf->fields.sfmt_tieq.f
12786   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12787   int UNUSED written = 0;
12788   IADDR UNUSED pc = abuf->addr;
12789   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12790
12791 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2))) {
12792 {
12793 ; /*clobber*/
12794 ; /*clobber*/
12795 ; /*clobber*/
12796 ; /*clobber*/
12797 if (NEBI (CPU (h_psr_esr), 0)) {
12798 {
12799 ; /*clobber*/
12800 ; /*clobber*/
12801 ; /*clobber*/
12802 ; /*clobber*/
12803 }
12804 }
12805 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12806 }
12807 }
12808
12809   abuf->written = written;
12810   return vpc;
12811 #undef FLD
12812 }
12813
12814 /* tine: tine$pack $ICCi_2,$GRi,$s12 */
12815
12816 static SEM_PC
12817 SEM_FN_NAME (frvbf,tine) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12818 {
12819 #define FLD(f) abuf->fields.sfmt_tieq.f
12820   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12821   int UNUSED written = 0;
12822   IADDR UNUSED pc = abuf->addr;
12823   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12824
12825 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)))) {
12826 {
12827 ; /*clobber*/
12828 ; /*clobber*/
12829 ; /*clobber*/
12830 ; /*clobber*/
12831 if (NEBI (CPU (h_psr_esr), 0)) {
12832 {
12833 ; /*clobber*/
12834 ; /*clobber*/
12835 ; /*clobber*/
12836 ; /*clobber*/
12837 }
12838 }
12839 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12840 }
12841 }
12842
12843   abuf->written = written;
12844   return vpc;
12845 #undef FLD
12846 }
12847
12848 /* tile: tile$pack $ICCi_2,$GRi,$s12 */
12849
12850 static SEM_PC
12851 SEM_FN_NAME (frvbf,tile) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12852 {
12853 #define FLD(f) abuf->fields.sfmt_tieq.f
12854   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12855   int UNUSED written = 0;
12856   IADDR UNUSED pc = abuf->addr;
12857   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12858
12859 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))))) {
12860 {
12861 ; /*clobber*/
12862 ; /*clobber*/
12863 ; /*clobber*/
12864 ; /*clobber*/
12865 if (NEBI (CPU (h_psr_esr), 0)) {
12866 {
12867 ; /*clobber*/
12868 ; /*clobber*/
12869 ; /*clobber*/
12870 ; /*clobber*/
12871 }
12872 }
12873 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12874 }
12875 }
12876
12877   abuf->written = written;
12878   return vpc;
12879 #undef FLD
12880 }
12881
12882 /* tigt: tigt$pack $ICCi_2,$GRi,$s12 */
12883
12884 static SEM_PC
12885 SEM_FN_NAME (frvbf,tigt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12886 {
12887 #define FLD(f) abuf->fields.sfmt_tieq.f
12888   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12889   int UNUSED written = 0;
12890   IADDR UNUSED pc = abuf->addr;
12891   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12892
12893 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)))))) {
12894 {
12895 ; /*clobber*/
12896 ; /*clobber*/
12897 ; /*clobber*/
12898 ; /*clobber*/
12899 if (NEBI (CPU (h_psr_esr), 0)) {
12900 {
12901 ; /*clobber*/
12902 ; /*clobber*/
12903 ; /*clobber*/
12904 ; /*clobber*/
12905 }
12906 }
12907 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12908 }
12909 }
12910
12911   abuf->written = written;
12912   return vpc;
12913 #undef FLD
12914 }
12915
12916 /* tilt: tilt$pack $ICCi_2,$GRi,$s12 */
12917
12918 static SEM_PC
12919 SEM_FN_NAME (frvbf,tilt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12920 {
12921 #define FLD(f) abuf->fields.sfmt_tieq.f
12922   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12923   int UNUSED written = 0;
12924   IADDR UNUSED pc = abuf->addr;
12925   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12926
12927 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)))) {
12928 {
12929 ; /*clobber*/
12930 ; /*clobber*/
12931 ; /*clobber*/
12932 ; /*clobber*/
12933 if (NEBI (CPU (h_psr_esr), 0)) {
12934 {
12935 ; /*clobber*/
12936 ; /*clobber*/
12937 ; /*clobber*/
12938 ; /*clobber*/
12939 }
12940 }
12941 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12942 }
12943 }
12944
12945   abuf->written = written;
12946   return vpc;
12947 #undef FLD
12948 }
12949
12950 /* tige: tige$pack $ICCi_2,$GRi,$s12 */
12951
12952 static SEM_PC
12953 SEM_FN_NAME (frvbf,tige) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12954 {
12955 #define FLD(f) abuf->fields.sfmt_tieq.f
12956   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12957   int UNUSED written = 0;
12958   IADDR UNUSED pc = abuf->addr;
12959   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12960
12961 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))))) {
12962 {
12963 ; /*clobber*/
12964 ; /*clobber*/
12965 ; /*clobber*/
12966 ; /*clobber*/
12967 if (NEBI (CPU (h_psr_esr), 0)) {
12968 {
12969 ; /*clobber*/
12970 ; /*clobber*/
12971 ; /*clobber*/
12972 ; /*clobber*/
12973 }
12974 }
12975 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12976 }
12977 }
12978
12979   abuf->written = written;
12980   return vpc;
12981 #undef FLD
12982 }
12983
12984 /* tils: tils$pack $ICCi_2,$GRi,$s12 */
12985
12986 static SEM_PC
12987 SEM_FN_NAME (frvbf,tils) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12988 {
12989 #define FLD(f) abuf->fields.sfmt_tieq.f
12990   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12991   int UNUSED written = 0;
12992   IADDR UNUSED pc = abuf->addr;
12993   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12994
12995 if (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)))) {
12996 {
12997 ; /*clobber*/
12998 ; /*clobber*/
12999 ; /*clobber*/
13000 ; /*clobber*/
13001 if (NEBI (CPU (h_psr_esr), 0)) {
13002 {
13003 ; /*clobber*/
13004 ; /*clobber*/
13005 ; /*clobber*/
13006 ; /*clobber*/
13007 }
13008 }
13009 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13010 }
13011 }
13012
13013   abuf->written = written;
13014   return vpc;
13015 #undef FLD
13016 }
13017
13018 /* tihi: tihi$pack $ICCi_2,$GRi,$s12 */
13019
13020 static SEM_PC
13021 SEM_FN_NAME (frvbf,tihi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13022 {
13023 #define FLD(f) abuf->fields.sfmt_tieq.f
13024   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13025   int UNUSED written = 0;
13026   IADDR UNUSED pc = abuf->addr;
13027   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13028
13029 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))))) {
13030 {
13031 ; /*clobber*/
13032 ; /*clobber*/
13033 ; /*clobber*/
13034 ; /*clobber*/
13035 if (NEBI (CPU (h_psr_esr), 0)) {
13036 {
13037 ; /*clobber*/
13038 ; /*clobber*/
13039 ; /*clobber*/
13040 ; /*clobber*/
13041 }
13042 }
13043 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13044 }
13045 }
13046
13047   abuf->written = written;
13048   return vpc;
13049 #undef FLD
13050 }
13051
13052 /* tic: tic$pack $ICCi_2,$GRi,$s12 */
13053
13054 static SEM_PC
13055 SEM_FN_NAME (frvbf,tic) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13056 {
13057 #define FLD(f) abuf->fields.sfmt_tieq.f
13058   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13059   int UNUSED written = 0;
13060   IADDR UNUSED pc = abuf->addr;
13061   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13062
13063 if (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1))) {
13064 {
13065 ; /*clobber*/
13066 ; /*clobber*/
13067 ; /*clobber*/
13068 ; /*clobber*/
13069 if (NEBI (CPU (h_psr_esr), 0)) {
13070 {
13071 ; /*clobber*/
13072 ; /*clobber*/
13073 ; /*clobber*/
13074 ; /*clobber*/
13075 }
13076 }
13077 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13078 }
13079 }
13080
13081   abuf->written = written;
13082   return vpc;
13083 #undef FLD
13084 }
13085
13086 /* tinc: tinc$pack $ICCi_2,$GRi,$s12 */
13087
13088 static SEM_PC
13089 SEM_FN_NAME (frvbf,tinc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13090 {
13091 #define FLD(f) abuf->fields.sfmt_tieq.f
13092   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13093   int UNUSED written = 0;
13094   IADDR UNUSED pc = abuf->addr;
13095   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13096
13097 if (NOTBI (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)))) {
13098 {
13099 ; /*clobber*/
13100 ; /*clobber*/
13101 ; /*clobber*/
13102 ; /*clobber*/
13103 if (NEBI (CPU (h_psr_esr), 0)) {
13104 {
13105 ; /*clobber*/
13106 ; /*clobber*/
13107 ; /*clobber*/
13108 ; /*clobber*/
13109 }
13110 }
13111 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13112 }
13113 }
13114
13115   abuf->written = written;
13116   return vpc;
13117 #undef FLD
13118 }
13119
13120 /* tin: tin$pack $ICCi_2,$GRi,$s12 */
13121
13122 static SEM_PC
13123 SEM_FN_NAME (frvbf,tin) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13124 {
13125 #define FLD(f) abuf->fields.sfmt_tieq.f
13126   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13127   int UNUSED written = 0;
13128   IADDR UNUSED pc = abuf->addr;
13129   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13130
13131 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3))) {
13132 {
13133 ; /*clobber*/
13134 ; /*clobber*/
13135 ; /*clobber*/
13136 ; /*clobber*/
13137 if (NEBI (CPU (h_psr_esr), 0)) {
13138 {
13139 ; /*clobber*/
13140 ; /*clobber*/
13141 ; /*clobber*/
13142 ; /*clobber*/
13143 }
13144 }
13145 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13146 }
13147 }
13148
13149   abuf->written = written;
13150   return vpc;
13151 #undef FLD
13152 }
13153
13154 /* tip: tip$pack $ICCi_2,$GRi,$s12 */
13155
13156 static SEM_PC
13157 SEM_FN_NAME (frvbf,tip) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13158 {
13159 #define FLD(f) abuf->fields.sfmt_tieq.f
13160   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13161   int UNUSED written = 0;
13162   IADDR UNUSED pc = abuf->addr;
13163   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13164
13165 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3)))) {
13166 {
13167 ; /*clobber*/
13168 ; /*clobber*/
13169 ; /*clobber*/
13170 ; /*clobber*/
13171 if (NEBI (CPU (h_psr_esr), 0)) {
13172 {
13173 ; /*clobber*/
13174 ; /*clobber*/
13175 ; /*clobber*/
13176 ; /*clobber*/
13177 }
13178 }
13179 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13180 }
13181 }
13182
13183   abuf->written = written;
13184   return vpc;
13185 #undef FLD
13186 }
13187
13188 /* tiv: tiv$pack $ICCi_2,$GRi,$s12 */
13189
13190 static SEM_PC
13191 SEM_FN_NAME (frvbf,tiv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13192 {
13193 #define FLD(f) abuf->fields.sfmt_tieq.f
13194   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13195   int UNUSED written = 0;
13196   IADDR UNUSED pc = abuf->addr;
13197   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13198
13199 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1))) {
13200 {
13201 ; /*clobber*/
13202 ; /*clobber*/
13203 ; /*clobber*/
13204 ; /*clobber*/
13205 if (NEBI (CPU (h_psr_esr), 0)) {
13206 {
13207 ; /*clobber*/
13208 ; /*clobber*/
13209 ; /*clobber*/
13210 ; /*clobber*/
13211 }
13212 }
13213 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13214 }
13215 }
13216
13217   abuf->written = written;
13218   return vpc;
13219 #undef FLD
13220 }
13221
13222 /* tinv: tinv$pack $ICCi_2,$GRi,$s12 */
13223
13224 static SEM_PC
13225 SEM_FN_NAME (frvbf,tinv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13226 {
13227 #define FLD(f) abuf->fields.sfmt_tieq.f
13228   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13229   int UNUSED written = 0;
13230   IADDR UNUSED pc = abuf->addr;
13231   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13232
13233 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1)))) {
13234 {
13235 ; /*clobber*/
13236 ; /*clobber*/
13237 ; /*clobber*/
13238 ; /*clobber*/
13239 if (NEBI (CPU (h_psr_esr), 0)) {
13240 {
13241 ; /*clobber*/
13242 ; /*clobber*/
13243 ; /*clobber*/
13244 ; /*clobber*/
13245 }
13246 }
13247 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13248 }
13249 }
13250
13251   abuf->written = written;
13252   return vpc;
13253 #undef FLD
13254 }
13255
13256 /* ftira: ftira$pack $GRi,$s12 */
13257
13258 static SEM_PC
13259 SEM_FN_NAME (frvbf,ftira) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13260 {
13261 #define FLD(f) abuf->fields.sfmt_ftine.f
13262   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13263   int UNUSED written = 0;
13264   IADDR UNUSED pc = abuf->addr;
13265   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13266
13267 {
13268 ; /*clobber*/
13269 ; /*clobber*/
13270 ; /*clobber*/
13271 ; /*clobber*/
13272 if (NEBI (CPU (h_psr_esr), 0)) {
13273 {
13274 ; /*clobber*/
13275 ; /*clobber*/
13276 ; /*clobber*/
13277 ; /*clobber*/
13278 }
13279 }
13280 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13281 }
13282
13283   abuf->written = written;
13284   return vpc;
13285 #undef FLD
13286 }
13287
13288 /* ftino: ftino$pack */
13289
13290 static SEM_PC
13291 SEM_FN_NAME (frvbf,ftino) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13292 {
13293 #define FLD(f) abuf->fields.fmt_empty.f
13294   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13295   int UNUSED written = 0;
13296   IADDR UNUSED pc = abuf->addr;
13297   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13298
13299 ((void) 0); /*nop*/
13300
13301   return vpc;
13302 #undef FLD
13303 }
13304
13305 /* ftine: ftine$pack $FCCi_2,$GRi,$s12 */
13306
13307 static SEM_PC
13308 SEM_FN_NAME (frvbf,ftine) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13309 {
13310 #define FLD(f) abuf->fields.sfmt_ftine.f
13311   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13312   int UNUSED written = 0;
13313   IADDR UNUSED pc = abuf->addr;
13314   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13315
13316 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))))) {
13317 {
13318 ; /*clobber*/
13319 ; /*clobber*/
13320 ; /*clobber*/
13321 ; /*clobber*/
13322 if (NEBI (CPU (h_psr_esr), 0)) {
13323 {
13324 ; /*clobber*/
13325 ; /*clobber*/
13326 ; /*clobber*/
13327 ; /*clobber*/
13328 }
13329 }
13330 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13331 }
13332 }
13333
13334   abuf->written = written;
13335   return vpc;
13336 #undef FLD
13337 }
13338
13339 /* ftieq: ftieq$pack $FCCi_2,$GRi,$s12 */
13340
13341 static SEM_PC
13342 SEM_FN_NAME (frvbf,ftieq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13343 {
13344 #define FLD(f) abuf->fields.sfmt_ftine.f
13345   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13346   int UNUSED written = 0;
13347   IADDR UNUSED pc = abuf->addr;
13348   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13349
13350 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3))) {
13351 {
13352 ; /*clobber*/
13353 ; /*clobber*/
13354 ; /*clobber*/
13355 ; /*clobber*/
13356 if (NEBI (CPU (h_psr_esr), 0)) {
13357 {
13358 ; /*clobber*/
13359 ; /*clobber*/
13360 ; /*clobber*/
13361 ; /*clobber*/
13362 }
13363 }
13364 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13365 }
13366 }
13367
13368   abuf->written = written;
13369   return vpc;
13370 #undef FLD
13371 }
13372
13373 /* ftilg: ftilg$pack $FCCi_2,$GRi,$s12 */
13374
13375 static SEM_PC
13376 SEM_FN_NAME (frvbf,ftilg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13377 {
13378 #define FLD(f) abuf->fields.sfmt_ftine.f
13379   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13380   int UNUSED written = 0;
13381   IADDR UNUSED pc = abuf->addr;
13382   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13383
13384 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)))) {
13385 {
13386 ; /*clobber*/
13387 ; /*clobber*/
13388 ; /*clobber*/
13389 ; /*clobber*/
13390 if (NEBI (CPU (h_psr_esr), 0)) {
13391 {
13392 ; /*clobber*/
13393 ; /*clobber*/
13394 ; /*clobber*/
13395 ; /*clobber*/
13396 }
13397 }
13398 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13399 }
13400 }
13401
13402   abuf->written = written;
13403   return vpc;
13404 #undef FLD
13405 }
13406
13407 /* ftiue: ftiue$pack $FCCi_2,$GRi,$s12 */
13408
13409 static SEM_PC
13410 SEM_FN_NAME (frvbf,ftiue) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13411 {
13412 #define FLD(f) abuf->fields.sfmt_ftine.f
13413   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13414   int UNUSED written = 0;
13415   IADDR UNUSED pc = abuf->addr;
13416   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13417
13418 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
13419 {
13420 ; /*clobber*/
13421 ; /*clobber*/
13422 ; /*clobber*/
13423 ; /*clobber*/
13424 if (NEBI (CPU (h_psr_esr), 0)) {
13425 {
13426 ; /*clobber*/
13427 ; /*clobber*/
13428 ; /*clobber*/
13429 ; /*clobber*/
13430 }
13431 }
13432 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13433 }
13434 }
13435
13436   abuf->written = written;
13437   return vpc;
13438 #undef FLD
13439 }
13440
13441 /* ftiul: ftiul$pack $FCCi_2,$GRi,$s12 */
13442
13443 static SEM_PC
13444 SEM_FN_NAME (frvbf,ftiul) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13445 {
13446 #define FLD(f) abuf->fields.sfmt_ftine.f
13447   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13448   int UNUSED written = 0;
13449   IADDR UNUSED pc = abuf->addr;
13450   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13451
13452 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
13453 {
13454 ; /*clobber*/
13455 ; /*clobber*/
13456 ; /*clobber*/
13457 ; /*clobber*/
13458 if (NEBI (CPU (h_psr_esr), 0)) {
13459 {
13460 ; /*clobber*/
13461 ; /*clobber*/
13462 ; /*clobber*/
13463 ; /*clobber*/
13464 }
13465 }
13466 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13467 }
13468 }
13469
13470   abuf->written = written;
13471   return vpc;
13472 #undef FLD
13473 }
13474
13475 /* ftige: ftige$pack $FCCi_2,$GRi,$s12 */
13476
13477 static SEM_PC
13478 SEM_FN_NAME (frvbf,ftige) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13479 {
13480 #define FLD(f) abuf->fields.sfmt_ftine.f
13481   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13482   int UNUSED written = 0;
13483   IADDR UNUSED pc = abuf->addr;
13484   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13485
13486 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)))) {
13487 {
13488 ; /*clobber*/
13489 ; /*clobber*/
13490 ; /*clobber*/
13491 ; /*clobber*/
13492 if (NEBI (CPU (h_psr_esr), 0)) {
13493 {
13494 ; /*clobber*/
13495 ; /*clobber*/
13496 ; /*clobber*/
13497 ; /*clobber*/
13498 }
13499 }
13500 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13501 }
13502 }
13503
13504   abuf->written = written;
13505   return vpc;
13506 #undef FLD
13507 }
13508
13509 /* ftilt: ftilt$pack $FCCi_2,$GRi,$s12 */
13510
13511 static SEM_PC
13512 SEM_FN_NAME (frvbf,ftilt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13513 {
13514 #define FLD(f) abuf->fields.sfmt_ftine.f
13515   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13516   int UNUSED written = 0;
13517   IADDR UNUSED pc = abuf->addr;
13518   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13519
13520 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2))) {
13521 {
13522 ; /*clobber*/
13523 ; /*clobber*/
13524 ; /*clobber*/
13525 ; /*clobber*/
13526 if (NEBI (CPU (h_psr_esr), 0)) {
13527 {
13528 ; /*clobber*/
13529 ; /*clobber*/
13530 ; /*clobber*/
13531 ; /*clobber*/
13532 }
13533 }
13534 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13535 }
13536 }
13537
13538   abuf->written = written;
13539   return vpc;
13540 #undef FLD
13541 }
13542
13543 /* ftiuge: ftiuge$pack $FCCi_2,$GRi,$s12 */
13544
13545 static SEM_PC
13546 SEM_FN_NAME (frvbf,ftiuge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13547 {
13548 #define FLD(f) abuf->fields.sfmt_ftine.f
13549   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13550   int UNUSED written = 0;
13551   IADDR UNUSED pc = abuf->addr;
13552   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13553
13554 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))))) {
13555 {
13556 ; /*clobber*/
13557 ; /*clobber*/
13558 ; /*clobber*/
13559 ; /*clobber*/
13560 if (NEBI (CPU (h_psr_esr), 0)) {
13561 {
13562 ; /*clobber*/
13563 ; /*clobber*/
13564 ; /*clobber*/
13565 ; /*clobber*/
13566 }
13567 }
13568 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13569 }
13570 }
13571
13572   abuf->written = written;
13573   return vpc;
13574 #undef FLD
13575 }
13576
13577 /* ftiug: ftiug$pack $FCCi_2,$GRi,$s12 */
13578
13579 static SEM_PC
13580 SEM_FN_NAME (frvbf,ftiug) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13581 {
13582 #define FLD(f) abuf->fields.sfmt_ftine.f
13583   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13584   int UNUSED written = 0;
13585   IADDR UNUSED pc = abuf->addr;
13586   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13587
13588 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
13589 {
13590 ; /*clobber*/
13591 ; /*clobber*/
13592 ; /*clobber*/
13593 ; /*clobber*/
13594 if (NEBI (CPU (h_psr_esr), 0)) {
13595 {
13596 ; /*clobber*/
13597 ; /*clobber*/
13598 ; /*clobber*/
13599 ; /*clobber*/
13600 }
13601 }
13602 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13603 }
13604 }
13605
13606   abuf->written = written;
13607   return vpc;
13608 #undef FLD
13609 }
13610
13611 /* ftile: ftile$pack $FCCi_2,$GRi,$s12 */
13612
13613 static SEM_PC
13614 SEM_FN_NAME (frvbf,ftile) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13615 {
13616 #define FLD(f) abuf->fields.sfmt_ftine.f
13617   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13618   int UNUSED written = 0;
13619   IADDR UNUSED pc = abuf->addr;
13620   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13621
13622 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)))) {
13623 {
13624 ; /*clobber*/
13625 ; /*clobber*/
13626 ; /*clobber*/
13627 ; /*clobber*/
13628 if (NEBI (CPU (h_psr_esr), 0)) {
13629 {
13630 ; /*clobber*/
13631 ; /*clobber*/
13632 ; /*clobber*/
13633 ; /*clobber*/
13634 }
13635 }
13636 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13637 }
13638 }
13639
13640   abuf->written = written;
13641   return vpc;
13642 #undef FLD
13643 }
13644
13645 /* ftigt: ftigt$pack $FCCi_2,$GRi,$s12 */
13646
13647 static SEM_PC
13648 SEM_FN_NAME (frvbf,ftigt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13649 {
13650 #define FLD(f) abuf->fields.sfmt_ftine.f
13651   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13652   int UNUSED written = 0;
13653   IADDR UNUSED pc = abuf->addr;
13654   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13655
13656 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1))) {
13657 {
13658 ; /*clobber*/
13659 ; /*clobber*/
13660 ; /*clobber*/
13661 ; /*clobber*/
13662 if (NEBI (CPU (h_psr_esr), 0)) {
13663 {
13664 ; /*clobber*/
13665 ; /*clobber*/
13666 ; /*clobber*/
13667 ; /*clobber*/
13668 }
13669 }
13670 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13671 }
13672 }
13673
13674   abuf->written = written;
13675   return vpc;
13676 #undef FLD
13677 }
13678
13679 /* ftiule: ftiule$pack $FCCi_2,$GRi,$s12 */
13680
13681 static SEM_PC
13682 SEM_FN_NAME (frvbf,ftiule) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13683 {
13684 #define FLD(f) abuf->fields.sfmt_ftine.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 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))))) {
13691 {
13692 ; /*clobber*/
13693 ; /*clobber*/
13694 ; /*clobber*/
13695 ; /*clobber*/
13696 if (NEBI (CPU (h_psr_esr), 0)) {
13697 {
13698 ; /*clobber*/
13699 ; /*clobber*/
13700 ; /*clobber*/
13701 ; /*clobber*/
13702 }
13703 }
13704 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13705 }
13706 }
13707
13708   abuf->written = written;
13709   return vpc;
13710 #undef FLD
13711 }
13712
13713 /* ftiu: ftiu$pack $FCCi_2,$GRi,$s12 */
13714
13715 static SEM_PC
13716 SEM_FN_NAME (frvbf,ftiu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13717 {
13718 #define FLD(f) abuf->fields.sfmt_ftine.f
13719   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13720   int UNUSED written = 0;
13721   IADDR UNUSED pc = abuf->addr;
13722   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13723
13724 if (TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1))) {
13725 {
13726 ; /*clobber*/
13727 ; /*clobber*/
13728 ; /*clobber*/
13729 ; /*clobber*/
13730 if (NEBI (CPU (h_psr_esr), 0)) {
13731 {
13732 ; /*clobber*/
13733 ; /*clobber*/
13734 ; /*clobber*/
13735 ; /*clobber*/
13736 }
13737 }
13738 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13739 }
13740 }
13741
13742   abuf->written = written;
13743   return vpc;
13744 #undef FLD
13745 }
13746
13747 /* ftio: ftio$pack $FCCi_2,$GRi,$s12 */
13748
13749 static SEM_PC
13750 SEM_FN_NAME (frvbf,ftio) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13751 {
13752 #define FLD(f) abuf->fields.sfmt_ftine.f
13753   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13754   int UNUSED written = 0;
13755   IADDR UNUSED pc = abuf->addr;
13756   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13757
13758 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))))) {
13759 {
13760 ; /*clobber*/
13761 ; /*clobber*/
13762 ; /*clobber*/
13763 ; /*clobber*/
13764 if (NEBI (CPU (h_psr_esr), 0)) {
13765 {
13766 ; /*clobber*/
13767 ; /*clobber*/
13768 ; /*clobber*/
13769 ; /*clobber*/
13770 }
13771 }
13772 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13773 }
13774 }
13775
13776   abuf->written = written;
13777   return vpc;
13778 #undef FLD
13779 }
13780
13781 /* break: break$pack */
13782
13783 static SEM_PC
13784 SEM_FN_NAME (frvbf,break) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13785 {
13786 #define FLD(f) abuf->fields.sfmt_break.f
13787   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13788   int UNUSED written = 0;
13789   IADDR UNUSED pc = abuf->addr;
13790   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13791
13792 {
13793 ; /*clobber*/
13794 ; /*clobber*/
13795 ; /*clobber*/
13796 ; /*clobber*/
13797 ; /*clobber*/
13798 ; /*clobber*/
13799 frv_break (current_cpu);
13800 }
13801
13802   return vpc;
13803 #undef FLD
13804 }
13805
13806 /* mtrap: mtrap$pack */
13807
13808 static SEM_PC
13809 SEM_FN_NAME (frvbf,mtrap) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13810 {
13811 #define FLD(f) abuf->fields.fmt_empty.f
13812   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13813   int UNUSED written = 0;
13814   IADDR UNUSED pc = abuf->addr;
13815   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13816
13817 frv_mtrap (current_cpu);
13818
13819   return vpc;
13820 #undef FLD
13821 }
13822
13823 /* andcr: andcr$pack $CRi,$CRj,$CRk */
13824
13825 static SEM_PC
13826 SEM_FN_NAME (frvbf,andcr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13827 {
13828 #define FLD(f) abuf->fields.sfmt_andcr.f
13829   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13830   int UNUSED written = 0;
13831   IADDR UNUSED pc = abuf->addr;
13832   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13833
13834   {
13835     UQI opval = frvbf_cr_logic (current_cpu, 0, CPU (h_cccr[FLD (f_CRi)]), CPU (h_cccr[FLD (f_CRj)]));
13836     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRk)]), opval);
13837     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13838   }
13839
13840   return vpc;
13841 #undef FLD
13842 }
13843
13844 /* orcr: orcr$pack $CRi,$CRj,$CRk */
13845
13846 static SEM_PC
13847 SEM_FN_NAME (frvbf,orcr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13848 {
13849 #define FLD(f) abuf->fields.sfmt_andcr.f
13850   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13851   int UNUSED written = 0;
13852   IADDR UNUSED pc = abuf->addr;
13853   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13854
13855   {
13856     UQI opval = frvbf_cr_logic (current_cpu, 1, CPU (h_cccr[FLD (f_CRi)]), CPU (h_cccr[FLD (f_CRj)]));
13857     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRk)]), opval);
13858     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13859   }
13860
13861   return vpc;
13862 #undef FLD
13863 }
13864
13865 /* xorcr: xorcr$pack $CRi,$CRj,$CRk */
13866
13867 static SEM_PC
13868 SEM_FN_NAME (frvbf,xorcr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13869 {
13870 #define FLD(f) abuf->fields.sfmt_andcr.f
13871   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13872   int UNUSED written = 0;
13873   IADDR UNUSED pc = abuf->addr;
13874   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13875
13876   {
13877     UQI opval = frvbf_cr_logic (current_cpu, 2, CPU (h_cccr[FLD (f_CRi)]), CPU (h_cccr[FLD (f_CRj)]));
13878     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRk)]), opval);
13879     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13880   }
13881
13882   return vpc;
13883 #undef FLD
13884 }
13885
13886 /* nandcr: nandcr$pack $CRi,$CRj,$CRk */
13887
13888 static SEM_PC
13889 SEM_FN_NAME (frvbf,nandcr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13890 {
13891 #define FLD(f) abuf->fields.sfmt_andcr.f
13892   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13893   int UNUSED written = 0;
13894   IADDR UNUSED pc = abuf->addr;
13895   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13896
13897   {
13898     UQI opval = frvbf_cr_logic (current_cpu, 3, CPU (h_cccr[FLD (f_CRi)]), CPU (h_cccr[FLD (f_CRj)]));
13899     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRk)]), opval);
13900     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13901   }
13902
13903   return vpc;
13904 #undef FLD
13905 }
13906
13907 /* norcr: norcr$pack $CRi,$CRj,$CRk */
13908
13909 static SEM_PC
13910 SEM_FN_NAME (frvbf,norcr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13911 {
13912 #define FLD(f) abuf->fields.sfmt_andcr.f
13913   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13914   int UNUSED written = 0;
13915   IADDR UNUSED pc = abuf->addr;
13916   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13917
13918   {
13919     UQI opval = frvbf_cr_logic (current_cpu, 4, CPU (h_cccr[FLD (f_CRi)]), CPU (h_cccr[FLD (f_CRj)]));
13920     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRk)]), opval);
13921     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13922   }
13923
13924   return vpc;
13925 #undef FLD
13926 }
13927
13928 /* andncr: andncr$pack $CRi,$CRj,$CRk */
13929
13930 static SEM_PC
13931 SEM_FN_NAME (frvbf,andncr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13932 {
13933 #define FLD(f) abuf->fields.sfmt_andcr.f
13934   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13935   int UNUSED written = 0;
13936   IADDR UNUSED pc = abuf->addr;
13937   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13938
13939   {
13940     UQI opval = frvbf_cr_logic (current_cpu, 5, CPU (h_cccr[FLD (f_CRi)]), CPU (h_cccr[FLD (f_CRj)]));
13941     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRk)]), opval);
13942     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13943   }
13944
13945   return vpc;
13946 #undef FLD
13947 }
13948
13949 /* orncr: orncr$pack $CRi,$CRj,$CRk */
13950
13951 static SEM_PC
13952 SEM_FN_NAME (frvbf,orncr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13953 {
13954 #define FLD(f) abuf->fields.sfmt_andcr.f
13955   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13956   int UNUSED written = 0;
13957   IADDR UNUSED pc = abuf->addr;
13958   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13959
13960   {
13961     UQI opval = frvbf_cr_logic (current_cpu, 6, CPU (h_cccr[FLD (f_CRi)]), CPU (h_cccr[FLD (f_CRj)]));
13962     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRk)]), opval);
13963     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13964   }
13965
13966   return vpc;
13967 #undef FLD
13968 }
13969
13970 /* nandncr: nandncr$pack $CRi,$CRj,$CRk */
13971
13972 static SEM_PC
13973 SEM_FN_NAME (frvbf,nandncr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13974 {
13975 #define FLD(f) abuf->fields.sfmt_andcr.f
13976   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13977   int UNUSED written = 0;
13978   IADDR UNUSED pc = abuf->addr;
13979   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13980
13981   {
13982     UQI opval = frvbf_cr_logic (current_cpu, 7, CPU (h_cccr[FLD (f_CRi)]), CPU (h_cccr[FLD (f_CRj)]));
13983     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRk)]), opval);
13984     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13985   }
13986
13987   return vpc;
13988 #undef FLD
13989 }
13990
13991 /* norncr: norncr$pack $CRi,$CRj,$CRk */
13992
13993 static SEM_PC
13994 SEM_FN_NAME (frvbf,norncr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13995 {
13996 #define FLD(f) abuf->fields.sfmt_andcr.f
13997   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13998   int UNUSED written = 0;
13999   IADDR UNUSED pc = abuf->addr;
14000   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14001
14002   {
14003     UQI opval = frvbf_cr_logic (current_cpu, 8, CPU (h_cccr[FLD (f_CRi)]), CPU (h_cccr[FLD (f_CRj)]));
14004     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRk)]), opval);
14005     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14006   }
14007
14008   return vpc;
14009 #undef FLD
14010 }
14011
14012 /* notcr: notcr$pack $CRj,$CRk */
14013
14014 static SEM_PC
14015 SEM_FN_NAME (frvbf,notcr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14016 {
14017 #define FLD(f) abuf->fields.sfmt_andcr.f
14018   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14019   int UNUSED written = 0;
14020   IADDR UNUSED pc = abuf->addr;
14021   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14022
14023   {
14024     UQI opval = XORQI (CPU (h_cccr[FLD (f_CRj)]), 1);
14025     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRk)]), opval);
14026     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14027   }
14028
14029   return vpc;
14030 #undef FLD
14031 }
14032
14033 /* ckra: ckra$pack $CRj_int */
14034
14035 static SEM_PC
14036 SEM_FN_NAME (frvbf,ckra) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14037 {
14038 #define FLD(f) abuf->fields.sfmt_cckeq.f
14039   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14040   int UNUSED written = 0;
14041   IADDR UNUSED pc = abuf->addr;
14042   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14043
14044   {
14045     UQI opval = 3;
14046     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14047     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14048   }
14049
14050   return vpc;
14051 #undef FLD
14052 }
14053
14054 /* ckno: ckno$pack $CRj_int */
14055
14056 static SEM_PC
14057 SEM_FN_NAME (frvbf,ckno) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14058 {
14059 #define FLD(f) abuf->fields.sfmt_cckeq.f
14060   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14061   int UNUSED written = 0;
14062   IADDR UNUSED pc = abuf->addr;
14063   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14064
14065   {
14066     UQI opval = 2;
14067     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14068     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14069   }
14070
14071   return vpc;
14072 #undef FLD
14073 }
14074
14075 /* ckeq: ckeq$pack $ICCi_3,$CRj_int */
14076
14077 static SEM_PC
14078 SEM_FN_NAME (frvbf,ckeq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14079 {
14080 #define FLD(f) abuf->fields.sfmt_cckeq.f
14081   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14082   int UNUSED written = 0;
14083   IADDR UNUSED pc = abuf->addr;
14084   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14085
14086 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 4), 2))) {
14087   {
14088     UQI opval = 3;
14089     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14090     written |= (1 << 1);
14091     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14092   }
14093 } else {
14094   {
14095     UQI opval = 2;
14096     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14097     written |= (1 << 1);
14098     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14099   }
14100 }
14101
14102   abuf->written = written;
14103   return vpc;
14104 #undef FLD
14105 }
14106
14107 /* ckne: ckne$pack $ICCi_3,$CRj_int */
14108
14109 static SEM_PC
14110 SEM_FN_NAME (frvbf,ckne) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14111 {
14112 #define FLD(f) abuf->fields.sfmt_cckeq.f
14113   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14114   int UNUSED written = 0;
14115   IADDR UNUSED pc = abuf->addr;
14116   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14117
14118 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 4), 2)))) {
14119   {
14120     UQI opval = 3;
14121     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14122     written |= (1 << 1);
14123     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14124   }
14125 } else {
14126   {
14127     UQI opval = 2;
14128     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14129     written |= (1 << 1);
14130     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14131   }
14132 }
14133
14134   abuf->written = written;
14135   return vpc;
14136 #undef FLD
14137 }
14138
14139 /* ckle: ckle$pack $ICCi_3,$CRj_int */
14140
14141 static SEM_PC
14142 SEM_FN_NAME (frvbf,ckle) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14143 {
14144 #define FLD(f) abuf->fields.sfmt_cckeq.f
14145   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14146   int UNUSED written = 0;
14147   IADDR UNUSED pc = abuf->addr;
14148   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14149
14150 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))))) {
14151   {
14152     UQI opval = 3;
14153     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14154     written |= (1 << 1);
14155     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14156   }
14157 } else {
14158   {
14159     UQI opval = 2;
14160     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14161     written |= (1 << 1);
14162     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14163   }
14164 }
14165
14166   abuf->written = written;
14167   return vpc;
14168 #undef FLD
14169 }
14170
14171 /* ckgt: ckgt$pack $ICCi_3,$CRj_int */
14172
14173 static SEM_PC
14174 SEM_FN_NAME (frvbf,ckgt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14175 {
14176 #define FLD(f) abuf->fields.sfmt_cckeq.f
14177   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14178   int UNUSED written = 0;
14179   IADDR UNUSED pc = abuf->addr;
14180   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14181
14182 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)))))) {
14183   {
14184     UQI opval = 3;
14185     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14186     written |= (1 << 1);
14187     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14188   }
14189 } else {
14190   {
14191     UQI opval = 2;
14192     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14193     written |= (1 << 1);
14194     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14195   }
14196 }
14197
14198   abuf->written = written;
14199   return vpc;
14200 #undef FLD
14201 }
14202
14203 /* cklt: cklt$pack $ICCi_3,$CRj_int */
14204
14205 static SEM_PC
14206 SEM_FN_NAME (frvbf,cklt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14207 {
14208 #define FLD(f) abuf->fields.sfmt_cckeq.f
14209   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14210   int UNUSED written = 0;
14211   IADDR UNUSED pc = abuf->addr;
14212   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14213
14214 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)))) {
14215   {
14216     UQI opval = 3;
14217     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14218     written |= (1 << 1);
14219     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14220   }
14221 } else {
14222   {
14223     UQI opval = 2;
14224     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14225     written |= (1 << 1);
14226     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14227   }
14228 }
14229
14230   abuf->written = written;
14231   return vpc;
14232 #undef FLD
14233 }
14234
14235 /* ckge: ckge$pack $ICCi_3,$CRj_int */
14236
14237 static SEM_PC
14238 SEM_FN_NAME (frvbf,ckge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14239 {
14240 #define FLD(f) abuf->fields.sfmt_cckeq.f
14241   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14242   int UNUSED written = 0;
14243   IADDR UNUSED pc = abuf->addr;
14244   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14245
14246 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))))) {
14247   {
14248     UQI opval = 3;
14249     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14250     written |= (1 << 1);
14251     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14252   }
14253 } else {
14254   {
14255     UQI opval = 2;
14256     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14257     written |= (1 << 1);
14258     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14259   }
14260 }
14261
14262   abuf->written = written;
14263   return vpc;
14264 #undef FLD
14265 }
14266
14267 /* ckls: ckls$pack $ICCi_3,$CRj_int */
14268
14269 static SEM_PC
14270 SEM_FN_NAME (frvbf,ckls) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14271 {
14272 #define FLD(f) abuf->fields.sfmt_cckeq.f
14273   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14274   int UNUSED written = 0;
14275   IADDR UNUSED pc = abuf->addr;
14276   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14277
14278 if (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 4), 2)))) {
14279   {
14280     UQI opval = 3;
14281     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14282     written |= (1 << 1);
14283     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14284   }
14285 } else {
14286   {
14287     UQI opval = 2;
14288     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14289     written |= (1 << 1);
14290     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14291   }
14292 }
14293
14294   abuf->written = written;
14295   return vpc;
14296 #undef FLD
14297 }
14298
14299 /* ckhi: ckhi$pack $ICCi_3,$CRj_int */
14300
14301 static SEM_PC
14302 SEM_FN_NAME (frvbf,ckhi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14303 {
14304 #define FLD(f) abuf->fields.sfmt_cckeq.f
14305   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14306   int UNUSED written = 0;
14307   IADDR UNUSED pc = abuf->addr;
14308   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14309
14310 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))))) {
14311   {
14312     UQI opval = 3;
14313     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14314     written |= (1 << 1);
14315     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14316   }
14317 } else {
14318   {
14319     UQI opval = 2;
14320     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14321     written |= (1 << 1);
14322     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14323   }
14324 }
14325
14326   abuf->written = written;
14327   return vpc;
14328 #undef FLD
14329 }
14330
14331 /* ckc: ckc$pack $ICCi_3,$CRj_int */
14332
14333 static SEM_PC
14334 SEM_FN_NAME (frvbf,ckc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14335 {
14336 #define FLD(f) abuf->fields.sfmt_cckeq.f
14337   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14338   int UNUSED written = 0;
14339   IADDR UNUSED pc = abuf->addr;
14340   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14341
14342 if (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 1))) {
14343   {
14344     UQI opval = 3;
14345     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14346     written |= (1 << 1);
14347     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14348   }
14349 } else {
14350   {
14351     UQI opval = 2;
14352     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14353     written |= (1 << 1);
14354     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14355   }
14356 }
14357
14358   abuf->written = written;
14359   return vpc;
14360 #undef FLD
14361 }
14362
14363 /* cknc: cknc$pack $ICCi_3,$CRj_int */
14364
14365 static SEM_PC
14366 SEM_FN_NAME (frvbf,cknc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14367 {
14368 #define FLD(f) abuf->fields.sfmt_cckeq.f
14369   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14370   int UNUSED written = 0;
14371   IADDR UNUSED pc = abuf->addr;
14372   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14373
14374 if (NOTBI (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 1)))) {
14375   {
14376     UQI opval = 3;
14377     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14378     written |= (1 << 1);
14379     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14380   }
14381 } else {
14382   {
14383     UQI opval = 2;
14384     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14385     written |= (1 << 1);
14386     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14387   }
14388 }
14389
14390   abuf->written = written;
14391   return vpc;
14392 #undef FLD
14393 }
14394
14395 /* ckn: ckn$pack $ICCi_3,$CRj_int */
14396
14397 static SEM_PC
14398 SEM_FN_NAME (frvbf,ckn) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14399 {
14400 #define FLD(f) abuf->fields.sfmt_cckeq.f
14401   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14402   int UNUSED written = 0;
14403   IADDR UNUSED pc = abuf->addr;
14404   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14405
14406 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 8), 3))) {
14407   {
14408     UQI opval = 3;
14409     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14410     written |= (1 << 1);
14411     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14412   }
14413 } else {
14414   {
14415     UQI opval = 2;
14416     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14417     written |= (1 << 1);
14418     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14419   }
14420 }
14421
14422   abuf->written = written;
14423   return vpc;
14424 #undef FLD
14425 }
14426
14427 /* ckp: ckp$pack $ICCi_3,$CRj_int */
14428
14429 static SEM_PC
14430 SEM_FN_NAME (frvbf,ckp) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14431 {
14432 #define FLD(f) abuf->fields.sfmt_cckeq.f
14433   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14434   int UNUSED written = 0;
14435   IADDR UNUSED pc = abuf->addr;
14436   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14437
14438 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 8), 3)))) {
14439   {
14440     UQI opval = 3;
14441     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14442     written |= (1 << 1);
14443     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14444   }
14445 } else {
14446   {
14447     UQI opval = 2;
14448     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14449     written |= (1 << 1);
14450     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14451   }
14452 }
14453
14454   abuf->written = written;
14455   return vpc;
14456 #undef FLD
14457 }
14458
14459 /* ckv: ckv$pack $ICCi_3,$CRj_int */
14460
14461 static SEM_PC
14462 SEM_FN_NAME (frvbf,ckv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14463 {
14464 #define FLD(f) abuf->fields.sfmt_cckeq.f
14465   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14466   int UNUSED written = 0;
14467   IADDR UNUSED pc = abuf->addr;
14468   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14469
14470 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 2), 1))) {
14471   {
14472     UQI opval = 3;
14473     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14474     written |= (1 << 1);
14475     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14476   }
14477 } else {
14478   {
14479     UQI opval = 2;
14480     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14481     written |= (1 << 1);
14482     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14483   }
14484 }
14485
14486   abuf->written = written;
14487   return vpc;
14488 #undef FLD
14489 }
14490
14491 /* cknv: cknv$pack $ICCi_3,$CRj_int */
14492
14493 static SEM_PC
14494 SEM_FN_NAME (frvbf,cknv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14495 {
14496 #define FLD(f) abuf->fields.sfmt_cckeq.f
14497   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14498   int UNUSED written = 0;
14499   IADDR UNUSED pc = abuf->addr;
14500   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14501
14502 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 2), 1)))) {
14503   {
14504     UQI opval = 3;
14505     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14506     written |= (1 << 1);
14507     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14508   }
14509 } else {
14510   {
14511     UQI opval = 2;
14512     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14513     written |= (1 << 1);
14514     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14515   }
14516 }
14517
14518   abuf->written = written;
14519   return vpc;
14520 #undef FLD
14521 }
14522
14523 /* fckra: fckra$pack $CRj_float */
14524
14525 static SEM_PC
14526 SEM_FN_NAME (frvbf,fckra) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14527 {
14528 #define FLD(f) abuf->fields.sfmt_cfckne.f
14529   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14530   int UNUSED written = 0;
14531   IADDR UNUSED pc = abuf->addr;
14532   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14533
14534   {
14535     UQI opval = 3;
14536     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14537     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14538   }
14539
14540   return vpc;
14541 #undef FLD
14542 }
14543
14544 /* fckno: fckno$pack $CRj_float */
14545
14546 static SEM_PC
14547 SEM_FN_NAME (frvbf,fckno) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14548 {
14549 #define FLD(f) abuf->fields.sfmt_cfckne.f
14550   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14551   int UNUSED written = 0;
14552   IADDR UNUSED pc = abuf->addr;
14553   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14554
14555   {
14556     UQI opval = 2;
14557     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14558     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14559   }
14560
14561   return vpc;
14562 #undef FLD
14563 }
14564
14565 /* fckne: fckne$pack $FCCi_3,$CRj_float */
14566
14567 static SEM_PC
14568 SEM_FN_NAME (frvbf,fckne) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14569 {
14570 #define FLD(f) abuf->fields.sfmt_cfckne.f
14571   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14572   int UNUSED written = 0;
14573   IADDR UNUSED pc = abuf->addr;
14574   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14575
14576 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))))) {
14577   {
14578     UQI opval = 3;
14579     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14580     written |= (1 << 1);
14581     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14582   }
14583 } else {
14584   {
14585     UQI opval = 2;
14586     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14587     written |= (1 << 1);
14588     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14589   }
14590 }
14591
14592   abuf->written = written;
14593   return vpc;
14594 #undef FLD
14595 }
14596
14597 /* fckeq: fckeq$pack $FCCi_3,$CRj_float */
14598
14599 static SEM_PC
14600 SEM_FN_NAME (frvbf,fckeq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14601 {
14602 #define FLD(f) abuf->fields.sfmt_cfckne.f
14603   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14604   int UNUSED written = 0;
14605   IADDR UNUSED pc = abuf->addr;
14606   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14607
14608 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 8), 3))) {
14609   {
14610     UQI opval = 3;
14611     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14612     written |= (1 << 1);
14613     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14614   }
14615 } else {
14616   {
14617     UQI opval = 2;
14618     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14619     written |= (1 << 1);
14620     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14621   }
14622 }
14623
14624   abuf->written = written;
14625   return vpc;
14626 #undef FLD
14627 }
14628
14629 /* fcklg: fcklg$pack $FCCi_3,$CRj_float */
14630
14631 static SEM_PC
14632 SEM_FN_NAME (frvbf,fcklg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14633 {
14634 #define FLD(f) abuf->fields.sfmt_cfckne.f
14635   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14636   int UNUSED written = 0;
14637   IADDR UNUSED pc = abuf->addr;
14638   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14639
14640 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)))) {
14641   {
14642     UQI opval = 3;
14643     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14644     written |= (1 << 1);
14645     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14646   }
14647 } else {
14648   {
14649     UQI opval = 2;
14650     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14651     written |= (1 << 1);
14652     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14653   }
14654 }
14655
14656   abuf->written = written;
14657   return vpc;
14658 #undef FLD
14659 }
14660
14661 /* fckue: fckue$pack $FCCi_3,$CRj_float */
14662
14663 static SEM_PC
14664 SEM_FN_NAME (frvbf,fckue) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14665 {
14666 #define FLD(f) abuf->fields.sfmt_cfckne.f
14667   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14668   int UNUSED written = 0;
14669   IADDR UNUSED pc = abuf->addr;
14670   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14671
14672 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 8), 3)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 1)))) {
14673   {
14674     UQI opval = 3;
14675     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14676     written |= (1 << 1);
14677     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14678   }
14679 } else {
14680   {
14681     UQI opval = 2;
14682     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14683     written |= (1 << 1);
14684     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14685   }
14686 }
14687
14688   abuf->written = written;
14689   return vpc;
14690 #undef FLD
14691 }
14692
14693 /* fckul: fckul$pack $FCCi_3,$CRj_float */
14694
14695 static SEM_PC
14696 SEM_FN_NAME (frvbf,fckul) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14697 {
14698 #define FLD(f) abuf->fields.sfmt_cfckne.f
14699   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14700   int UNUSED written = 0;
14701   IADDR UNUSED pc = abuf->addr;
14702   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14703
14704 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 4), 2)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 1)))) {
14705   {
14706     UQI opval = 3;
14707     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14708     written |= (1 << 1);
14709     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14710   }
14711 } else {
14712   {
14713     UQI opval = 2;
14714     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14715     written |= (1 << 1);
14716     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14717   }
14718 }
14719
14720   abuf->written = written;
14721   return vpc;
14722 #undef FLD
14723 }
14724
14725 /* fckge: fckge$pack $FCCi_3,$CRj_float */
14726
14727 static SEM_PC
14728 SEM_FN_NAME (frvbf,fckge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14729 {
14730 #define FLD(f) abuf->fields.sfmt_cfckne.f
14731   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14732   int UNUSED written = 0;
14733   IADDR UNUSED pc = abuf->addr;
14734   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14735
14736 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)))) {
14737   {
14738     UQI opval = 3;
14739     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14740     written |= (1 << 1);
14741     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14742   }
14743 } else {
14744   {
14745     UQI opval = 2;
14746     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14747     written |= (1 << 1);
14748     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14749   }
14750 }
14751
14752   abuf->written = written;
14753   return vpc;
14754 #undef FLD
14755 }
14756
14757 /* fcklt: fcklt$pack $FCCi_3,$CRj_float */
14758
14759 static SEM_PC
14760 SEM_FN_NAME (frvbf,fcklt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14761 {
14762 #define FLD(f) abuf->fields.sfmt_cfckne.f
14763   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14764   int UNUSED written = 0;
14765   IADDR UNUSED pc = abuf->addr;
14766   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14767
14768 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 4), 2))) {
14769   {
14770     UQI opval = 3;
14771     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14772     written |= (1 << 1);
14773     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14774   }
14775 } else {
14776   {
14777     UQI opval = 2;
14778     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14779     written |= (1 << 1);
14780     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14781   }
14782 }
14783
14784   abuf->written = written;
14785   return vpc;
14786 #undef FLD
14787 }
14788
14789 /* fckuge: fckuge$pack $FCCi_3,$CRj_float */
14790
14791 static SEM_PC
14792 SEM_FN_NAME (frvbf,fckuge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14793 {
14794 #define FLD(f) abuf->fields.sfmt_cfckne.f
14795   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14796   int UNUSED written = 0;
14797   IADDR UNUSED pc = abuf->addr;
14798   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14799
14800 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))))) {
14801   {
14802     UQI opval = 3;
14803     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14804     written |= (1 << 1);
14805     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14806   }
14807 } else {
14808   {
14809     UQI opval = 2;
14810     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14811     written |= (1 << 1);
14812     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14813   }
14814 }
14815
14816   abuf->written = written;
14817   return vpc;
14818 #undef FLD
14819 }
14820
14821 /* fckug: fckug$pack $FCCi_3,$CRj_float */
14822
14823 static SEM_PC
14824 SEM_FN_NAME (frvbf,fckug) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14825 {
14826 #define FLD(f) abuf->fields.sfmt_cfckne.f
14827   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14828   int UNUSED written = 0;
14829   IADDR UNUSED pc = abuf->addr;
14830   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14831
14832 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 1)))) {
14833   {
14834     UQI opval = 3;
14835     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14836     written |= (1 << 1);
14837     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14838   }
14839 } else {
14840   {
14841     UQI opval = 2;
14842     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14843     written |= (1 << 1);
14844     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14845   }
14846 }
14847
14848   abuf->written = written;
14849   return vpc;
14850 #undef FLD
14851 }
14852
14853 /* fckle: fckle$pack $FCCi_3,$CRj_float */
14854
14855 static SEM_PC
14856 SEM_FN_NAME (frvbf,fckle) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14857 {
14858 #define FLD(f) abuf->fields.sfmt_cfckne.f
14859   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14860   int UNUSED written = 0;
14861   IADDR UNUSED pc = abuf->addr;
14862   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14863
14864 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)))) {
14865   {
14866     UQI opval = 3;
14867     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14868     written |= (1 << 1);
14869     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14870   }
14871 } else {
14872   {
14873     UQI opval = 2;
14874     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14875     written |= (1 << 1);
14876     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14877   }
14878 }
14879
14880   abuf->written = written;
14881   return vpc;
14882 #undef FLD
14883 }
14884
14885 /* fckgt: fckgt$pack $FCCi_3,$CRj_float */
14886
14887 static SEM_PC
14888 SEM_FN_NAME (frvbf,fckgt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14889 {
14890 #define FLD(f) abuf->fields.sfmt_cfckne.f
14891   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14892   int UNUSED written = 0;
14893   IADDR UNUSED pc = abuf->addr;
14894   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14895
14896 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 2), 1))) {
14897   {
14898     UQI opval = 3;
14899     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14900     written |= (1 << 1);
14901     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14902   }
14903 } else {
14904   {
14905     UQI opval = 2;
14906     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14907     written |= (1 << 1);
14908     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14909   }
14910 }
14911
14912   abuf->written = written;
14913   return vpc;
14914 #undef FLD
14915 }
14916
14917 /* fckule: fckule$pack $FCCi_3,$CRj_float */
14918
14919 static SEM_PC
14920 SEM_FN_NAME (frvbf,fckule) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14921 {
14922 #define FLD(f) abuf->fields.sfmt_cfckne.f
14923   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14924   int UNUSED written = 0;
14925   IADDR UNUSED pc = abuf->addr;
14926   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14927
14928 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))))) {
14929   {
14930     UQI opval = 3;
14931     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14932     written |= (1 << 1);
14933     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14934   }
14935 } else {
14936   {
14937     UQI opval = 2;
14938     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14939     written |= (1 << 1);
14940     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14941   }
14942 }
14943
14944   abuf->written = written;
14945   return vpc;
14946 #undef FLD
14947 }
14948
14949 /* fcku: fcku$pack $FCCi_3,$CRj_float */
14950
14951 static SEM_PC
14952 SEM_FN_NAME (frvbf,fcku) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14953 {
14954 #define FLD(f) abuf->fields.sfmt_cfckne.f
14955   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14956   int UNUSED written = 0;
14957   IADDR UNUSED pc = abuf->addr;
14958   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14959
14960 if (TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 1))) {
14961   {
14962     UQI opval = 3;
14963     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14964     written |= (1 << 1);
14965     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14966   }
14967 } else {
14968   {
14969     UQI opval = 2;
14970     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14971     written |= (1 << 1);
14972     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14973   }
14974 }
14975
14976   abuf->written = written;
14977   return vpc;
14978 #undef FLD
14979 }
14980
14981 /* fcko: fcko$pack $FCCi_3,$CRj_float */
14982
14983 static SEM_PC
14984 SEM_FN_NAME (frvbf,fcko) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14985 {
14986 #define FLD(f) abuf->fields.sfmt_cfckne.f
14987   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14988   int UNUSED written = 0;
14989   IADDR UNUSED pc = abuf->addr;
14990   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14991
14992 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))))) {
14993   {
14994     UQI opval = 3;
14995     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14996     written |= (1 << 1);
14997     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14998   }
14999 } else {
15000   {
15001     UQI opval = 2;
15002     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15003     written |= (1 << 1);
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 /* cckra: cckra$pack $CRj_int,$CCi,$cond */
15014
15015 static SEM_PC
15016 SEM_FN_NAME (frvbf,cckra) (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   {
15026     UQI opval = 3;
15027     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15028     written |= (1 << 2);
15029     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15030   }
15031 } else {
15032   {
15033     UQI opval = 0;
15034     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15035     written |= (1 << 2);
15036     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15037   }
15038 }
15039
15040   abuf->written = written;
15041   return vpc;
15042 #undef FLD
15043 }
15044
15045 /* cckno: cckno$pack $CRj_int,$CCi,$cond */
15046
15047 static SEM_PC
15048 SEM_FN_NAME (frvbf,cckno) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15049 {
15050 #define FLD(f) abuf->fields.sfmt_cckeq.f
15051   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15052   int UNUSED written = 0;
15053   IADDR UNUSED pc = abuf->addr;
15054   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15055
15056 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15057   {
15058     UQI opval = 2;
15059     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15060     written |= (1 << 2);
15061     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15062   }
15063 } else {
15064   {
15065     UQI opval = 0;
15066     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15067     written |= (1 << 2);
15068     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15069   }
15070 }
15071
15072   abuf->written = written;
15073   return vpc;
15074 #undef FLD
15075 }
15076
15077 /* cckeq: cckeq$pack $ICCi_3,$CRj_int,$CCi,$cond */
15078
15079 static SEM_PC
15080 SEM_FN_NAME (frvbf,cckeq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15081 {
15082 #define FLD(f) abuf->fields.sfmt_cckeq.f
15083   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15084   int UNUSED written = 0;
15085   IADDR UNUSED pc = abuf->addr;
15086   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15087
15088 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15089 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 4), 2))) {
15090   {
15091     UQI opval = 3;
15092     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15093     written |= (1 << 3);
15094     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15095   }
15096 } else {
15097   {
15098     UQI opval = 2;
15099     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15100     written |= (1 << 3);
15101     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15102   }
15103 }
15104 } else {
15105   {
15106     UQI opval = 0;
15107     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15108     written |= (1 << 3);
15109     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15110   }
15111 }
15112
15113   abuf->written = written;
15114   return vpc;
15115 #undef FLD
15116 }
15117
15118 /* cckne: cckne$pack $ICCi_3,$CRj_int,$CCi,$cond */
15119
15120 static SEM_PC
15121 SEM_FN_NAME (frvbf,cckne) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15122 {
15123 #define FLD(f) abuf->fields.sfmt_cckeq.f
15124   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15125   int UNUSED written = 0;
15126   IADDR UNUSED pc = abuf->addr;
15127   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15128
15129 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15130 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 4), 2)))) {
15131   {
15132     UQI opval = 3;
15133     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15134     written |= (1 << 3);
15135     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15136   }
15137 } else {
15138   {
15139     UQI opval = 2;
15140     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15141     written |= (1 << 3);
15142     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15143   }
15144 }
15145 } else {
15146   {
15147     UQI opval = 0;
15148     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15149     written |= (1 << 3);
15150     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15151   }
15152 }
15153
15154   abuf->written = written;
15155   return vpc;
15156 #undef FLD
15157 }
15158
15159 /* cckle: cckle$pack $ICCi_3,$CRj_int,$CCi,$cond */
15160
15161 static SEM_PC
15162 SEM_FN_NAME (frvbf,cckle) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15163 {
15164 #define FLD(f) abuf->fields.sfmt_cckeq.f
15165   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15166   int UNUSED written = 0;
15167   IADDR UNUSED pc = abuf->addr;
15168   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15169
15170 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15171 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))))) {
15172   {
15173     UQI opval = 3;
15174     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15175     written |= (1 << 3);
15176     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15177   }
15178 } else {
15179   {
15180     UQI opval = 2;
15181     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15182     written |= (1 << 3);
15183     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15184   }
15185 }
15186 } else {
15187   {
15188     UQI opval = 0;
15189     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15190     written |= (1 << 3);
15191     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15192   }
15193 }
15194
15195   abuf->written = written;
15196   return vpc;
15197 #undef FLD
15198 }
15199
15200 /* cckgt: cckgt$pack $ICCi_3,$CRj_int,$CCi,$cond */
15201
15202 static SEM_PC
15203 SEM_FN_NAME (frvbf,cckgt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15204 {
15205 #define FLD(f) abuf->fields.sfmt_cckeq.f
15206   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15207   int UNUSED written = 0;
15208   IADDR UNUSED pc = abuf->addr;
15209   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15210
15211 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15212 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)))))) {
15213   {
15214     UQI opval = 3;
15215     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15216     written |= (1 << 3);
15217     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15218   }
15219 } else {
15220   {
15221     UQI opval = 2;
15222     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15223     written |= (1 << 3);
15224     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15225   }
15226 }
15227 } else {
15228   {
15229     UQI opval = 0;
15230     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15231     written |= (1 << 3);
15232     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15233   }
15234 }
15235
15236   abuf->written = written;
15237   return vpc;
15238 #undef FLD
15239 }
15240
15241 /* ccklt: ccklt$pack $ICCi_3,$CRj_int,$CCi,$cond */
15242
15243 static SEM_PC
15244 SEM_FN_NAME (frvbf,ccklt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15245 {
15246 #define FLD(f) abuf->fields.sfmt_cckeq.f
15247   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15248   int UNUSED written = 0;
15249   IADDR UNUSED pc = abuf->addr;
15250   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15251
15252 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15253 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)))) {
15254   {
15255     UQI opval = 3;
15256     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15257     written |= (1 << 3);
15258     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15259   }
15260 } else {
15261   {
15262     UQI opval = 2;
15263     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15264     written |= (1 << 3);
15265     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15266   }
15267 }
15268 } else {
15269   {
15270     UQI opval = 0;
15271     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15272     written |= (1 << 3);
15273     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15274   }
15275 }
15276
15277   abuf->written = written;
15278   return vpc;
15279 #undef FLD
15280 }
15281
15282 /* cckge: cckge$pack $ICCi_3,$CRj_int,$CCi,$cond */
15283
15284 static SEM_PC
15285 SEM_FN_NAME (frvbf,cckge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15286 {
15287 #define FLD(f) abuf->fields.sfmt_cckeq.f
15288   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15289   int UNUSED written = 0;
15290   IADDR UNUSED pc = abuf->addr;
15291   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15292
15293 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15294 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))))) {
15295   {
15296     UQI opval = 3;
15297     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15298     written |= (1 << 3);
15299     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15300   }
15301 } else {
15302   {
15303     UQI opval = 2;
15304     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15305     written |= (1 << 3);
15306     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15307   }
15308 }
15309 } else {
15310   {
15311     UQI opval = 0;
15312     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15313     written |= (1 << 3);
15314     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15315   }
15316 }
15317
15318   abuf->written = written;
15319   return vpc;
15320 #undef FLD
15321 }
15322
15323 /* cckls: cckls$pack $ICCi_3,$CRj_int,$CCi,$cond */
15324
15325 static SEM_PC
15326 SEM_FN_NAME (frvbf,cckls) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15327 {
15328 #define FLD(f) abuf->fields.sfmt_cckeq.f
15329   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15330   int UNUSED written = 0;
15331   IADDR UNUSED pc = abuf->addr;
15332   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15333
15334 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15335 if (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 4), 2)))) {
15336   {
15337     UQI opval = 3;
15338     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15339     written |= (1 << 3);
15340     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15341   }
15342 } else {
15343   {
15344     UQI opval = 2;
15345     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15346     written |= (1 << 3);
15347     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15348   }
15349 }
15350 } else {
15351   {
15352     UQI opval = 0;
15353     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15354     written |= (1 << 3);
15355     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15356   }
15357 }
15358
15359   abuf->written = written;
15360   return vpc;
15361 #undef FLD
15362 }
15363
15364 /* cckhi: cckhi$pack $ICCi_3,$CRj_int,$CCi,$cond */
15365
15366 static SEM_PC
15367 SEM_FN_NAME (frvbf,cckhi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15368 {
15369 #define FLD(f) abuf->fields.sfmt_cckeq.f
15370   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15371   int UNUSED written = 0;
15372   IADDR UNUSED pc = abuf->addr;
15373   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15374
15375 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15376 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))))) {
15377   {
15378     UQI opval = 3;
15379     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15380     written |= (1 << 3);
15381     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15382   }
15383 } else {
15384   {
15385     UQI opval = 2;
15386     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15387     written |= (1 << 3);
15388     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15389   }
15390 }
15391 } else {
15392   {
15393     UQI opval = 0;
15394     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15395     written |= (1 << 3);
15396     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15397   }
15398 }
15399
15400   abuf->written = written;
15401   return vpc;
15402 #undef FLD
15403 }
15404
15405 /* cckc: cckc$pack $ICCi_3,$CRj_int,$CCi,$cond */
15406
15407 static SEM_PC
15408 SEM_FN_NAME (frvbf,cckc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15409 {
15410 #define FLD(f) abuf->fields.sfmt_cckeq.f
15411   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15412   int UNUSED written = 0;
15413   IADDR UNUSED pc = abuf->addr;
15414   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15415
15416 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15417 if (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 1))) {
15418   {
15419     UQI opval = 3;
15420     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15421     written |= (1 << 3);
15422     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15423   }
15424 } else {
15425   {
15426     UQI opval = 2;
15427     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15428     written |= (1 << 3);
15429     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15430   }
15431 }
15432 } else {
15433   {
15434     UQI opval = 0;
15435     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15436     written |= (1 << 3);
15437     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15438   }
15439 }
15440
15441   abuf->written = written;
15442   return vpc;
15443 #undef FLD
15444 }
15445
15446 /* ccknc: ccknc$pack $ICCi_3,$CRj_int,$CCi,$cond */
15447
15448 static SEM_PC
15449 SEM_FN_NAME (frvbf,ccknc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15450 {
15451 #define FLD(f) abuf->fields.sfmt_cckeq.f
15452   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15453   int UNUSED written = 0;
15454   IADDR UNUSED pc = abuf->addr;
15455   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15456
15457 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15458 if (NOTBI (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 1)))) {
15459   {
15460     UQI opval = 3;
15461     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15462     written |= (1 << 3);
15463     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15464   }
15465 } else {
15466   {
15467     UQI opval = 2;
15468     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15469     written |= (1 << 3);
15470     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15471   }
15472 }
15473 } else {
15474   {
15475     UQI opval = 0;
15476     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15477     written |= (1 << 3);
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 /* cckn: cckn$pack $ICCi_3,$CRj_int,$CCi,$cond */
15488
15489 static SEM_PC
15490 SEM_FN_NAME (frvbf,cckn) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15491 {
15492 #define FLD(f) abuf->fields.sfmt_cckeq.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 (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 8), 3))) {
15500   {
15501     UQI opval = 3;
15502     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), 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_int)]), 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_int)]), 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 /* cckp: cckp$pack $ICCi_3,$CRj_int,$CCi,$cond */
15529
15530 static SEM_PC
15531 SEM_FN_NAME (frvbf,cckp) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15532 {
15533 #define FLD(f) abuf->fields.sfmt_cckeq.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 (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 8), 3)))) {
15541   {
15542     UQI opval = 3;
15543     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), 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_int)]), 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_int)]), 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 /* cckv: cckv$pack $ICCi_3,$CRj_int,$CCi,$cond */
15570
15571 static SEM_PC
15572 SEM_FN_NAME (frvbf,cckv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15573 {
15574 #define FLD(f) abuf->fields.sfmt_cckeq.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 (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 2), 1))) {
15582   {
15583     UQI opval = 3;
15584     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), 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_int)]), 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_int)]), 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 /* ccknv: ccknv$pack $ICCi_3,$CRj_int,$CCi,$cond */
15611
15612 static SEM_PC
15613 SEM_FN_NAME (frvbf,ccknv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15614 {
15615 #define FLD(f) abuf->fields.sfmt_cckeq.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 (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 2), 1)))) {
15623   {
15624     UQI opval = 3;
15625     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), 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_int)]), 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_int)]), 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 /* cfckra: cfckra$pack $CRj_float,$CCi,$cond */
15652
15653 static SEM_PC
15654 SEM_FN_NAME (frvbf,cfckra) (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   {
15664     UQI opval = 3;
15665     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15666     written |= (1 << 2);
15667     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15668   }
15669 } else {
15670   {
15671     UQI opval = 0;
15672     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15673     written |= (1 << 2);
15674     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15675   }
15676 }
15677
15678   abuf->written = written;
15679   return vpc;
15680 #undef FLD
15681 }
15682
15683 /* cfckno: cfckno$pack $CRj_float,$CCi,$cond */
15684
15685 static SEM_PC
15686 SEM_FN_NAME (frvbf,cfckno) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15687 {
15688 #define FLD(f) abuf->fields.sfmt_cfckne.f
15689   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15690   int UNUSED written = 0;
15691   IADDR UNUSED pc = abuf->addr;
15692   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15693
15694 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15695   {
15696     UQI opval = 2;
15697     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15698     written |= (1 << 2);
15699     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15700   }
15701 } else {
15702   {
15703     UQI opval = 0;
15704     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15705     written |= (1 << 2);
15706     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15707   }
15708 }
15709
15710   abuf->written = written;
15711   return vpc;
15712 #undef FLD
15713 }
15714
15715 /* cfckne: cfckne$pack $FCCi_3,$CRj_float,$CCi,$cond */
15716
15717 static SEM_PC
15718 SEM_FN_NAME (frvbf,cfckne) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15719 {
15720 #define FLD(f) abuf->fields.sfmt_cfckne.f
15721   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15722   int UNUSED written = 0;
15723   IADDR UNUSED pc = abuf->addr;
15724   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15725
15726 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15727 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))))) {
15728   {
15729     UQI opval = 3;
15730     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15731     written |= (1 << 3);
15732     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15733   }
15734 } else {
15735   {
15736     UQI opval = 2;
15737     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15738     written |= (1 << 3);
15739     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15740   }
15741 }
15742 } else {
15743   {
15744     UQI opval = 0;
15745     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15746     written |= (1 << 3);
15747     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15748   }
15749 }
15750
15751   abuf->written = written;
15752   return vpc;
15753 #undef FLD
15754 }
15755
15756 /* cfckeq: cfckeq$pack $FCCi_3,$CRj_float,$CCi,$cond */
15757
15758 static SEM_PC
15759 SEM_FN_NAME (frvbf,cfckeq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15760 {
15761 #define FLD(f) abuf->fields.sfmt_cfckne.f
15762   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15763   int UNUSED written = 0;
15764   IADDR UNUSED pc = abuf->addr;
15765   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15766
15767 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15768 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 8), 3))) {
15769   {
15770     UQI opval = 3;
15771     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15772     written |= (1 << 3);
15773     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15774   }
15775 } else {
15776   {
15777     UQI opval = 2;
15778     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15779     written |= (1 << 3);
15780     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15781   }
15782 }
15783 } else {
15784   {
15785     UQI opval = 0;
15786     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15787     written |= (1 << 3);
15788     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15789   }
15790 }
15791
15792   abuf->written = written;
15793   return vpc;
15794 #undef FLD
15795 }
15796
15797 /* cfcklg: cfcklg$pack $FCCi_3,$CRj_float,$CCi,$cond */
15798
15799 static SEM_PC
15800 SEM_FN_NAME (frvbf,cfcklg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15801 {
15802 #define FLD(f) abuf->fields.sfmt_cfckne.f
15803   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15804   int UNUSED written = 0;
15805   IADDR UNUSED pc = abuf->addr;
15806   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15807
15808 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15809 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)))) {
15810   {
15811     UQI opval = 3;
15812     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15813     written |= (1 << 3);
15814     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15815   }
15816 } else {
15817   {
15818     UQI opval = 2;
15819     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15820     written |= (1 << 3);
15821     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15822   }
15823 }
15824 } else {
15825   {
15826     UQI opval = 0;
15827     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15828     written |= (1 << 3);
15829     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15830   }
15831 }
15832
15833   abuf->written = written;
15834   return vpc;
15835 #undef FLD
15836 }
15837
15838 /* cfckue: cfckue$pack $FCCi_3,$CRj_float,$CCi,$cond */
15839
15840 static SEM_PC
15841 SEM_FN_NAME (frvbf,cfckue) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15842 {
15843 #define FLD(f) abuf->fields.sfmt_cfckne.f
15844   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15845   int UNUSED written = 0;
15846   IADDR UNUSED pc = abuf->addr;
15847   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15848
15849 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15850 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 8), 3)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 1)))) {
15851   {
15852     UQI opval = 3;
15853     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15854     written |= (1 << 3);
15855     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15856   }
15857 } else {
15858   {
15859     UQI opval = 2;
15860     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15861     written |= (1 << 3);
15862     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15863   }
15864 }
15865 } else {
15866   {
15867     UQI opval = 0;
15868     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15869     written |= (1 << 3);
15870     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15871   }
15872 }
15873
15874   abuf->written = written;
15875   return vpc;
15876 #undef FLD
15877 }
15878
15879 /* cfckul: cfckul$pack $FCCi_3,$CRj_float,$CCi,$cond */
15880
15881 static SEM_PC
15882 SEM_FN_NAME (frvbf,cfckul) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15883 {
15884 #define FLD(f) abuf->fields.sfmt_cfckne.f
15885   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15886   int UNUSED written = 0;
15887   IADDR UNUSED pc = abuf->addr;
15888   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15889
15890 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15891 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 4), 2)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 1)))) {
15892   {
15893     UQI opval = 3;
15894     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15895     written |= (1 << 3);
15896     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15897   }
15898 } else {
15899   {
15900     UQI opval = 2;
15901     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15902     written |= (1 << 3);
15903     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15904   }
15905 }
15906 } else {
15907   {
15908     UQI opval = 0;
15909     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15910     written |= (1 << 3);
15911     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15912   }
15913 }
15914
15915   abuf->written = written;
15916   return vpc;
15917 #undef FLD
15918 }
15919
15920 /* cfckge: cfckge$pack $FCCi_3,$CRj_float,$CCi,$cond */
15921
15922 static SEM_PC
15923 SEM_FN_NAME (frvbf,cfckge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15924 {
15925 #define FLD(f) abuf->fields.sfmt_cfckne.f
15926   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15927   int UNUSED written = 0;
15928   IADDR UNUSED pc = abuf->addr;
15929   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15930
15931 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15932 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)))) {
15933   {
15934     UQI opval = 3;
15935     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15936     written |= (1 << 3);
15937     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15938   }
15939 } else {
15940   {
15941     UQI opval = 2;
15942     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15943     written |= (1 << 3);
15944     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15945   }
15946 }
15947 } else {
15948   {
15949     UQI opval = 0;
15950     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15951     written |= (1 << 3);
15952     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15953   }
15954 }
15955
15956   abuf->written = written;
15957   return vpc;
15958 #undef FLD
15959 }
15960
15961 /* cfcklt: cfcklt$pack $FCCi_3,$CRj_float,$CCi,$cond */
15962
15963 static SEM_PC
15964 SEM_FN_NAME (frvbf,cfcklt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15965 {
15966 #define FLD(f) abuf->fields.sfmt_cfckne.f
15967   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15968   int UNUSED written = 0;
15969   IADDR UNUSED pc = abuf->addr;
15970   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15971
15972 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15973 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 4), 2))) {
15974   {
15975     UQI opval = 3;
15976     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15977     written |= (1 << 3);
15978     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15979   }
15980 } else {
15981   {
15982     UQI opval = 2;
15983     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15984     written |= (1 << 3);
15985     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15986   }
15987 }
15988 } else {
15989   {
15990     UQI opval = 0;
15991     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15992     written |= (1 << 3);
15993     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15994   }
15995 }
15996
15997   abuf->written = written;
15998   return vpc;
15999 #undef FLD
16000 }
16001
16002 /* cfckuge: cfckuge$pack $FCCi_3,$CRj_float,$CCi,$cond */
16003
16004 static SEM_PC
16005 SEM_FN_NAME (frvbf,cfckuge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16006 {
16007 #define FLD(f) abuf->fields.sfmt_cfckne.f
16008   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16009   int UNUSED written = 0;
16010   IADDR UNUSED pc = abuf->addr;
16011   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16012
16013 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
16014 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))))) {
16015   {
16016     UQI opval = 3;
16017     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
16018     written |= (1 << 3);
16019     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
16020   }
16021 } else {
16022   {
16023     UQI opval = 2;
16024     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
16025     written |= (1 << 3);
16026     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
16027   }
16028 }
16029 } else {
16030   {
16031     UQI opval = 0;
16032     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
16033     written |= (1 << 3);
16034     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
16035   }
16036 }
16037
16038   abuf->written = written;
16039   return vpc;
16040 #undef FLD
16041 }
16042
16043 /* cfckug: cfckug$pack $FCCi_3,$CRj_float,$CCi,$cond */
16044
16045 static SEM_PC
16046 SEM_FN_NAME (frvbf,cfckug) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16047 {
16048 #define FLD(f) abuf->fields.sfmt_cfckne.f
16049   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16050   int UNUSED written = 0;
16051   IADDR UNUSED pc = abuf->addr;
16052   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16053
16054 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
16055 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 1)))) {
16056   {
16057     UQI opval = 3;
16058     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
16059     written |= (1 << 3);
16060     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
16061   }
16062 } else {
16063   {
16064     UQI opval = 2;
16065     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
16066     written |= (1 << 3);
16067     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
16068   }
16069 }
16070 } else {
16071   {
16072     UQI opval = 0;
16073     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
16074     written |= (1 << 3);
16075     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
16076   }
16077 }
16078
16079   abuf->written = written;
16080   return vpc;
16081 #undef FLD
16082 }
16083
16084 /* cfckle: cfckle$pack $FCCi_3,$CRj_float,$CCi,$cond */
16085
16086 static SEM_PC
16087 SEM_FN_NAME (frvbf,cfckle) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16088 {
16089 #define FLD(f) abuf->fields.sfmt_cfckne.f
16090   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16091   int UNUSED written = 0;
16092   IADDR UNUSED pc = abuf->addr;
16093   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16094
16095 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
16096 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)))) {
16097   {
16098     UQI opval = 3;
16099     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
16100     written |= (1 << 3);
16101     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
16102   }
16103 } else {
16104   {
16105     UQI opval = 2;
16106     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
16107     written |= (1 << 3);
16108     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
16109   }
16110 }
16111 } else {
16112   {
16113     UQI opval = 0;
16114     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
16115     written |= (1 << 3);
16116     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
16117   }
16118 }
16119
16120   abuf->written = written;
16121   return vpc;
16122 #undef FLD
16123 }
16124
16125 /* cfckgt: cfckgt$pack $FCCi_3,$CRj_float,$CCi,$cond */
16126
16127 static SEM_PC
16128 SEM_FN_NAME (frvbf,cfckgt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16129 {
16130 #define FLD(f) abuf->fields.sfmt_cfckne.f
16131   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16132   int UNUSED written = 0;
16133   IADDR UNUSED pc = abuf->addr;
16134   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16135
16136 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
16137 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 2), 1))) {
16138   {
16139     UQI opval = 3;
16140     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
16141     written |= (1 << 3);
16142     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
16143   }
16144 } else {
16145   {
16146     UQI opval = 2;
16147     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
16148     written |= (1 << 3);
16149     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
16150   }
16151 }
16152 } else {
16153   {
16154     UQI opval = 0;
16155     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
16156     written |= (1 << 3);
16157     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
16158   }
16159 }
16160
16161   abuf->written = written;
16162   return vpc;
16163 #undef FLD
16164 }
16165
16166 /* cfckule: cfckule$pack $FCCi_3,$CRj_float,$CCi,$cond */
16167
16168 static SEM_PC
16169 SEM_FN_NAME (frvbf,cfckule) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16170 {
16171 #define FLD(f) abuf->fields.sfmt_cfckne.f
16172   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16173   int UNUSED written = 0;
16174   IADDR UNUSED pc = abuf->addr;
16175   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16176
16177 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
16178 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))))) {
16179   {
16180     UQI opval = 3;
16181     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
16182     written |= (1 << 3);
16183     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
16184   }
16185 } else {
16186   {
16187     UQI opval = 2;
16188     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
16189     written |= (1 << 3);
16190     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
16191   }
16192 }
16193 } else {
16194   {
16195     UQI opval = 0;
16196     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
16197     written |= (1 << 3);
16198     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
16199   }
16200 }
16201
16202   abuf->written = written;
16203   return vpc;
16204 #undef FLD
16205 }
16206
16207 /* cfcku: cfcku$pack $FCCi_3,$CRj_float,$CCi,$cond */
16208
16209 static SEM_PC
16210 SEM_FN_NAME (frvbf,cfcku) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16211 {
16212 #define FLD(f) abuf->fields.sfmt_cfckne.f
16213   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16214   int UNUSED written = 0;
16215   IADDR UNUSED pc = abuf->addr;
16216   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16217
16218 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
16219 if (TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 1))) {
16220   {
16221     UQI opval = 3;
16222     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
16223     written |= (1 << 3);
16224     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
16225   }
16226 } else {
16227   {
16228     UQI opval = 2;
16229     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
16230     written |= (1 << 3);
16231     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
16232   }
16233 }
16234 } else {
16235   {
16236     UQI opval = 0;
16237     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
16238     written |= (1 << 3);
16239     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
16240   }
16241 }
16242
16243   abuf->written = written;
16244   return vpc;
16245 #undef FLD
16246 }
16247
16248 /* cfcko: cfcko$pack $FCCi_3,$CRj_float,$CCi,$cond */
16249
16250 static SEM_PC
16251 SEM_FN_NAME (frvbf,cfcko) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16252 {
16253 #define FLD(f) abuf->fields.sfmt_cfckne.f
16254   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16255   int UNUSED written = 0;
16256   IADDR UNUSED pc = abuf->addr;
16257   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16258
16259 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
16260 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))))) {
16261   {
16262     UQI opval = 3;
16263     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
16264     written |= (1 << 3);
16265     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
16266   }
16267 } else {
16268   {
16269     UQI opval = 2;
16270     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
16271     written |= (1 << 3);
16272     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
16273   }
16274 }
16275 } else {
16276   {
16277     UQI opval = 0;
16278     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
16279     written |= (1 << 3);
16280     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
16281   }
16282 }
16283
16284   abuf->written = written;
16285   return vpc;
16286 #undef FLD
16287 }
16288
16289 /* cjmpl: cjmpl$pack @($GRi,$GRj),$CCi,$cond */
16290
16291 static SEM_PC
16292 SEM_FN_NAME (frvbf,cjmpl) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16293 {
16294 #define FLD(f) abuf->fields.sfmt_cjmpl.f
16295   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16296   int UNUSED written = 0;
16297   IADDR UNUSED pc = abuf->addr;
16298   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16299
16300 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
16301 {
16302 if (EQSI (FLD (f_LI), 1)) {
16303 frvbf_set_write_next_vliw_addr_to_LR (current_cpu, 1);
16304 }
16305   {
16306     USI opval = ANDSI (ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), 0xfffffffc);
16307     sim_queue_pc_write (current_cpu, opval);
16308     written |= (1 << 6);
16309     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
16310   }
16311 frvbf_model_branch (current_cpu, pc, 2);
16312 }
16313 }
16314
16315   abuf->written = written;
16316   return vpc;
16317 #undef FLD
16318 }
16319
16320 /* ccalll: ccalll$pack @($GRi,$GRj),$CCi,$cond */
16321
16322 static SEM_PC
16323 SEM_FN_NAME (frvbf,ccalll) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16324 {
16325 #define FLD(f) abuf->fields.sfmt_cjmpl.f
16326   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16327   int UNUSED written = 0;
16328   IADDR UNUSED pc = abuf->addr;
16329   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16330
16331 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
16332 {
16333 if (EQSI (FLD (f_LI), 1)) {
16334 frvbf_set_write_next_vliw_addr_to_LR (current_cpu, 1);
16335 }
16336   {
16337     USI opval = ANDSI (ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), 0xfffffffc);
16338     sim_queue_pc_write (current_cpu, opval);
16339     written |= (1 << 6);
16340     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
16341   }
16342 frvbf_model_branch (current_cpu, pc, 2);
16343 }
16344 }
16345
16346   abuf->written = written;
16347   return vpc;
16348 #undef FLD
16349 }
16350
16351 /* ici: ici$pack @($GRi,$GRj) */
16352
16353 static SEM_PC
16354 SEM_FN_NAME (frvbf,ici) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16355 {
16356 #define FLD(f) abuf->fields.sfmt_icpl.f
16357   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16358   int UNUSED written = 0;
16359   IADDR UNUSED pc = abuf->addr;
16360   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16361
16362 frvbf_insn_cache_invalidate (current_cpu, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), 0);
16363
16364   return vpc;
16365 #undef FLD
16366 }
16367
16368 /* dci: dci$pack @($GRi,$GRj) */
16369
16370 static SEM_PC
16371 SEM_FN_NAME (frvbf,dci) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16372 {
16373 #define FLD(f) abuf->fields.sfmt_icpl.f
16374   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16375   int UNUSED written = 0;
16376   IADDR UNUSED pc = abuf->addr;
16377   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16378
16379 frvbf_data_cache_invalidate (current_cpu, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), 0);
16380
16381   return vpc;
16382 #undef FLD
16383 }
16384
16385 /* icei: icei$pack @($GRi,$GRj),$ae */
16386
16387 static SEM_PC
16388 SEM_FN_NAME (frvbf,icei) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16389 {
16390 #define FLD(f) abuf->fields.sfmt_icei.f
16391   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16392   int UNUSED written = 0;
16393   IADDR UNUSED pc = abuf->addr;
16394   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16395
16396 if (EQSI (FLD (f_ae), 0)) {
16397 frvbf_insn_cache_invalidate (current_cpu, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), -1);
16398 } else {
16399 frvbf_insn_cache_invalidate (current_cpu, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), FLD (f_ae));
16400 }
16401
16402   return vpc;
16403 #undef FLD
16404 }
16405
16406 /* dcei: dcei$pack @($GRi,$GRj),$ae */
16407
16408 static SEM_PC
16409 SEM_FN_NAME (frvbf,dcei) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16410 {
16411 #define FLD(f) abuf->fields.sfmt_icei.f
16412   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16413   int UNUSED written = 0;
16414   IADDR UNUSED pc = abuf->addr;
16415   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16416
16417 if (EQSI (FLD (f_ae), 0)) {
16418 frvbf_data_cache_invalidate (current_cpu, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), -1);
16419 } else {
16420 frvbf_data_cache_invalidate (current_cpu, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), FLD (f_ae));
16421 }
16422
16423   return vpc;
16424 #undef FLD
16425 }
16426
16427 /* dcf: dcf$pack @($GRi,$GRj) */
16428
16429 static SEM_PC
16430 SEM_FN_NAME (frvbf,dcf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16431 {
16432 #define FLD(f) abuf->fields.sfmt_icpl.f
16433   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16434   int UNUSED written = 0;
16435   IADDR UNUSED pc = abuf->addr;
16436   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16437
16438 frvbf_data_cache_flush (current_cpu, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), 0);
16439
16440   return vpc;
16441 #undef FLD
16442 }
16443
16444 /* dcef: dcef$pack @($GRi,$GRj),$ae */
16445
16446 static SEM_PC
16447 SEM_FN_NAME (frvbf,dcef) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16448 {
16449 #define FLD(f) abuf->fields.sfmt_icei.f
16450   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16451   int UNUSED written = 0;
16452   IADDR UNUSED pc = abuf->addr;
16453   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16454
16455 if (EQSI (FLD (f_ae), 0)) {
16456 frvbf_data_cache_flush (current_cpu, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), -1);
16457 } else {
16458 frvbf_data_cache_flush (current_cpu, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), FLD (f_ae));
16459 }
16460
16461   return vpc;
16462 #undef FLD
16463 }
16464
16465 /* witlb: witlb$pack $GRk,@($GRi,$GRj) */
16466
16467 static SEM_PC
16468 SEM_FN_NAME (frvbf,witlb) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16469 {
16470 #define FLD(f) abuf->fields.fmt_empty.f
16471   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16472   int UNUSED written = 0;
16473   IADDR UNUSED pc = abuf->addr;
16474   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16475
16476 ((void) 0); /*nop*/
16477
16478   return vpc;
16479 #undef FLD
16480 }
16481
16482 /* wdtlb: wdtlb$pack $GRk,@($GRi,$GRj) */
16483
16484 static SEM_PC
16485 SEM_FN_NAME (frvbf,wdtlb) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16486 {
16487 #define FLD(f) abuf->fields.fmt_empty.f
16488   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16489   int UNUSED written = 0;
16490   IADDR UNUSED pc = abuf->addr;
16491   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16492
16493 ((void) 0); /*nop*/
16494
16495   return vpc;
16496 #undef FLD
16497 }
16498
16499 /* itlbi: itlbi$pack @($GRi,$GRj) */
16500
16501 static SEM_PC
16502 SEM_FN_NAME (frvbf,itlbi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16503 {
16504 #define FLD(f) abuf->fields.fmt_empty.f
16505   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16506   int UNUSED written = 0;
16507   IADDR UNUSED pc = abuf->addr;
16508   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16509
16510 ((void) 0); /*nop*/
16511
16512   return vpc;
16513 #undef FLD
16514 }
16515
16516 /* dtlbi: dtlbi$pack @($GRi,$GRj) */
16517
16518 static SEM_PC
16519 SEM_FN_NAME (frvbf,dtlbi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16520 {
16521 #define FLD(f) abuf->fields.fmt_empty.f
16522   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16523   int UNUSED written = 0;
16524   IADDR UNUSED pc = abuf->addr;
16525   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16526
16527 ((void) 0); /*nop*/
16528
16529   return vpc;
16530 #undef FLD
16531 }
16532
16533 /* icpl: icpl$pack $GRi,$GRj,$lock */
16534
16535 static SEM_PC
16536 SEM_FN_NAME (frvbf,icpl) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16537 {
16538 #define FLD(f) abuf->fields.sfmt_icpl.f
16539   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16540   int UNUSED written = 0;
16541   IADDR UNUSED pc = abuf->addr;
16542   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16543
16544 frvbf_insn_cache_preload (current_cpu, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), FLD (f_lock));
16545
16546   return vpc;
16547 #undef FLD
16548 }
16549
16550 /* dcpl: dcpl$pack $GRi,$GRj,$lock */
16551
16552 static SEM_PC
16553 SEM_FN_NAME (frvbf,dcpl) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16554 {
16555 #define FLD(f) abuf->fields.sfmt_icpl.f
16556   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16557   int UNUSED written = 0;
16558   IADDR UNUSED pc = abuf->addr;
16559   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16560
16561 frvbf_data_cache_preload (current_cpu, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), FLD (f_lock));
16562
16563   return vpc;
16564 #undef FLD
16565 }
16566
16567 /* icul: icul$pack $GRi */
16568
16569 static SEM_PC
16570 SEM_FN_NAME (frvbf,icul) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16571 {
16572 #define FLD(f) abuf->fields.sfmt_jmpil.f
16573   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16574   int UNUSED written = 0;
16575   IADDR UNUSED pc = abuf->addr;
16576   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16577
16578 frvbf_insn_cache_unlock (current_cpu, GET_H_GR (FLD (f_GRi)));
16579
16580   return vpc;
16581 #undef FLD
16582 }
16583
16584 /* dcul: dcul$pack $GRi */
16585
16586 static SEM_PC
16587 SEM_FN_NAME (frvbf,dcul) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16588 {
16589 #define FLD(f) abuf->fields.sfmt_jmpil.f
16590   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16591   int UNUSED written = 0;
16592   IADDR UNUSED pc = abuf->addr;
16593   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16594
16595 frvbf_data_cache_unlock (current_cpu, GET_H_GR (FLD (f_GRi)));
16596
16597   return vpc;
16598 #undef FLD
16599 }
16600
16601 /* bar: bar$pack */
16602
16603 static SEM_PC
16604 SEM_FN_NAME (frvbf,bar) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16605 {
16606 #define FLD(f) abuf->fields.fmt_empty.f
16607   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16608   int UNUSED written = 0;
16609   IADDR UNUSED pc = abuf->addr;
16610   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16611
16612 ((void) 0); /*nop*/
16613
16614   return vpc;
16615 #undef FLD
16616 }
16617
16618 /* membar: membar$pack */
16619
16620 static SEM_PC
16621 SEM_FN_NAME (frvbf,membar) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16622 {
16623 #define FLD(f) abuf->fields.fmt_empty.f
16624   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16625   int UNUSED written = 0;
16626   IADDR UNUSED pc = abuf->addr;
16627   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16628
16629 ((void) 0); /*nop*/
16630
16631   return vpc;
16632 #undef FLD
16633 }
16634
16635 /* cop1: cop1$pack $s6_1,$CPRi,$CPRj,$CPRk */
16636
16637 static SEM_PC
16638 SEM_FN_NAME (frvbf,cop1) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16639 {
16640 #define FLD(f) abuf->fields.fmt_empty.f
16641   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16642   int UNUSED written = 0;
16643   IADDR UNUSED pc = abuf->addr;
16644   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16645
16646 ((void) 0); /*nop*/
16647
16648   return vpc;
16649 #undef FLD
16650 }
16651
16652 /* cop2: cop2$pack $s6_1,$CPRi,$CPRj,$CPRk */
16653
16654 static SEM_PC
16655 SEM_FN_NAME (frvbf,cop2) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16656 {
16657 #define FLD(f) abuf->fields.fmt_empty.f
16658   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16659   int UNUSED written = 0;
16660   IADDR UNUSED pc = abuf->addr;
16661   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16662
16663 ((void) 0); /*nop*/
16664
16665   return vpc;
16666 #undef FLD
16667 }
16668
16669 /* clrgr: clrgr$pack $GRk */
16670
16671 static SEM_PC
16672 SEM_FN_NAME (frvbf,clrgr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16673 {
16674 #define FLD(f) abuf->fields.sfmt_swapi.f
16675   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16676   int UNUSED written = 0;
16677   IADDR UNUSED pc = abuf->addr;
16678   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16679
16680 {
16681 frv_ref_SI (GET_H_GR (FLD (f_GRk)));
16682 frvbf_clear_ne_flags (current_cpu, FLD (f_GRk), 0);
16683 }
16684
16685   return vpc;
16686 #undef FLD
16687 }
16688
16689 /* clrfr: clrfr$pack $FRk */
16690
16691 static SEM_PC
16692 SEM_FN_NAME (frvbf,clrfr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16693 {
16694 #define FLD(f) abuf->fields.sfmt_cfmadds.f
16695   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16696   int UNUSED written = 0;
16697   IADDR UNUSED pc = abuf->addr;
16698   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16699
16700 {
16701 frv_ref_SI (GET_H_FR (FLD (f_FRk)));
16702 frvbf_clear_ne_flags (current_cpu, FLD (f_FRk), 1);
16703 }
16704
16705   return vpc;
16706 #undef FLD
16707 }
16708
16709 /* clrga: clrga$pack */
16710
16711 static SEM_PC
16712 SEM_FN_NAME (frvbf,clrga) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16713 {
16714 #define FLD(f) abuf->fields.fmt_empty.f
16715   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16716   int UNUSED written = 0;
16717   IADDR UNUSED pc = abuf->addr;
16718   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16719
16720 frvbf_clear_ne_flags (current_cpu, -1, 0);
16721
16722   return vpc;
16723 #undef FLD
16724 }
16725
16726 /* clrfa: clrfa$pack */
16727
16728 static SEM_PC
16729 SEM_FN_NAME (frvbf,clrfa) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16730 {
16731 #define FLD(f) abuf->fields.fmt_empty.f
16732   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16733   int UNUSED written = 0;
16734   IADDR UNUSED pc = abuf->addr;
16735   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16736
16737 frvbf_clear_ne_flags (current_cpu, -1, 1);
16738
16739   return vpc;
16740 #undef FLD
16741 }
16742
16743 /* commitgr: commitgr$pack $GRk */
16744
16745 static SEM_PC
16746 SEM_FN_NAME (frvbf,commitgr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16747 {
16748 #define FLD(f) abuf->fields.sfmt_setlos.f
16749   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16750   int UNUSED written = 0;
16751   IADDR UNUSED pc = abuf->addr;
16752   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16753
16754 frvbf_commit (current_cpu, FLD (f_GRk), 0);
16755
16756   return vpc;
16757 #undef FLD
16758 }
16759
16760 /* commitfr: commitfr$pack $FRk */
16761
16762 static SEM_PC
16763 SEM_FN_NAME (frvbf,commitfr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16764 {
16765 #define FLD(f) abuf->fields.sfmt_mhsethis.f
16766   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16767   int UNUSED written = 0;
16768   IADDR UNUSED pc = abuf->addr;
16769   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16770
16771 frvbf_commit (current_cpu, FLD (f_FRk), 1);
16772
16773   return vpc;
16774 #undef FLD
16775 }
16776
16777 /* commitga: commitga$pack */
16778
16779 static SEM_PC
16780 SEM_FN_NAME (frvbf,commitga) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16781 {
16782 #define FLD(f) abuf->fields.fmt_empty.f
16783   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16784   int UNUSED written = 0;
16785   IADDR UNUSED pc = abuf->addr;
16786   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16787
16788 frvbf_commit (current_cpu, -1, 0);
16789
16790   return vpc;
16791 #undef FLD
16792 }
16793
16794 /* commitfa: commitfa$pack */
16795
16796 static SEM_PC
16797 SEM_FN_NAME (frvbf,commitfa) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16798 {
16799 #define FLD(f) abuf->fields.fmt_empty.f
16800   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16801   int UNUSED written = 0;
16802   IADDR UNUSED pc = abuf->addr;
16803   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16804
16805 frvbf_commit (current_cpu, -1, 1);
16806
16807   return vpc;
16808 #undef FLD
16809 }
16810
16811 /* fitos: fitos$pack $FRintj,$FRk */
16812
16813 static SEM_PC
16814 SEM_FN_NAME (frvbf,fitos) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16815 {
16816 #define FLD(f) abuf->fields.sfmt_fditos.f
16817   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16818   int UNUSED written = 0;
16819   IADDR UNUSED pc = abuf->addr;
16820   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16821
16822   {
16823     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->floatsisf) (CGEN_CPU_FPU (current_cpu), GET_H_FR_INT (FLD (f_FRj)));
16824     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
16825     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
16826   }
16827
16828   return vpc;
16829 #undef FLD
16830 }
16831
16832 /* fstoi: fstoi$pack $FRj,$FRintk */
16833
16834 static SEM_PC
16835 SEM_FN_NAME (frvbf,fstoi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16836 {
16837 #define FLD(f) abuf->fields.sfmt_fdstoi.f
16838   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16839   int UNUSED written = 0;
16840   IADDR UNUSED pc = abuf->addr;
16841   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16842
16843   {
16844     SI opval = (* CGEN_CPU_FPU (current_cpu)->ops->fixsfsi) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
16845     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
16846     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
16847   }
16848
16849   return vpc;
16850 #undef FLD
16851 }
16852
16853 /* fitod: fitod$pack $FRintj,$FRdoublek */
16854
16855 static SEM_PC
16856 SEM_FN_NAME (frvbf,fitod) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16857 {
16858 #define FLD(f) abuf->fields.sfmt_fitod.f
16859   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16860   int UNUSED written = 0;
16861   IADDR UNUSED pc = abuf->addr;
16862   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16863
16864   {
16865     DF opval = (* CGEN_CPU_FPU (current_cpu)->ops->floatsidf) (CGEN_CPU_FPU (current_cpu), GET_H_FR_INT (FLD (f_FRj)));
16866     sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
16867     TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
16868   }
16869
16870   return vpc;
16871 #undef FLD
16872 }
16873
16874 /* fdtoi: fdtoi$pack $FRdoublej,$FRintk */
16875
16876 static SEM_PC
16877 SEM_FN_NAME (frvbf,fdtoi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16878 {
16879 #define FLD(f) abuf->fields.sfmt_fdtoi.f
16880   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16881   int UNUSED written = 0;
16882   IADDR UNUSED pc = abuf->addr;
16883   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16884
16885   {
16886     SI opval = (* CGEN_CPU_FPU (current_cpu)->ops->fixdfsi) (CGEN_CPU_FPU (current_cpu), GET_H_FR_DOUBLE (FLD (f_FRj)));
16887     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
16888     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
16889   }
16890
16891   return vpc;
16892 #undef FLD
16893 }
16894
16895 /* fditos: fditos$pack $FRintj,$FRk */
16896
16897 static SEM_PC
16898 SEM_FN_NAME (frvbf,fditos) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16899 {
16900 #define FLD(f) abuf->fields.sfmt_fditos.f
16901   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16902   int UNUSED written = 0;
16903   IADDR UNUSED pc = abuf->addr;
16904   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16905
16906 {
16907   {
16908     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->floatsisf) (CGEN_CPU_FPU (current_cpu), GET_H_FR_INT (FLD (f_FRj)));
16909     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
16910     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
16911   }
16912   {
16913     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->floatsisf) (CGEN_CPU_FPU (current_cpu), GET_H_FR_INT (((FLD (f_FRj)) + (1))));
16914     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
16915     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
16916   }
16917 }
16918
16919   return vpc;
16920 #undef FLD
16921 }
16922
16923 /* fdstoi: fdstoi$pack $FRj,$FRintk */
16924
16925 static SEM_PC
16926 SEM_FN_NAME (frvbf,fdstoi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16927 {
16928 #define FLD(f) abuf->fields.sfmt_fdstoi.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     SI opval = (* CGEN_CPU_FPU (current_cpu)->ops->fixsfsi) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
16937     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
16938     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
16939   }
16940   {
16941     USI opval = (* CGEN_CPU_FPU (current_cpu)->ops->fixsfsi) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRj)) + (1))));
16942     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (1)), opval);
16943     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
16944   }
16945 }
16946
16947   return vpc;
16948 #undef FLD
16949 }
16950
16951 /* nfditos: nfditos$pack $FRintj,$FRk */
16952
16953 static SEM_PC
16954 SEM_FN_NAME (frvbf,nfditos) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16955 {
16956 #define FLD(f) abuf->fields.sfmt_fditos.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 {
16963 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
16964   {
16965     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->floatsisf) (CGEN_CPU_FPU (current_cpu), GET_H_FR_INT (FLD (f_FRj)));
16966     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
16967     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
16968   }
16969 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
16970   {
16971     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->floatsisf) (CGEN_CPU_FPU (current_cpu), GET_H_FR_INT (((FLD (f_FRj)) + (1))));
16972     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
16973     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
16974   }
16975 }
16976
16977   return vpc;
16978 #undef FLD
16979 }
16980
16981 /* nfdstoi: nfdstoi$pack $FRj,$FRintk */
16982
16983 static SEM_PC
16984 SEM_FN_NAME (frvbf,nfdstoi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16985 {
16986 #define FLD(f) abuf->fields.sfmt_fdstoi.f
16987   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16988   int UNUSED written = 0;
16989   IADDR UNUSED pc = abuf->addr;
16990   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16991
16992 {
16993 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
16994   {
16995     SI opval = (* CGEN_CPU_FPU (current_cpu)->ops->fixsfsi) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
16996     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
16997     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
16998   }
16999 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
17000   {
17001     USI opval = (* CGEN_CPU_FPU (current_cpu)->ops->fixsfsi) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRj)) + (1))));
17002     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (1)), opval);
17003     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
17004   }
17005 }
17006
17007   return vpc;
17008 #undef FLD
17009 }
17010
17011 /* cfitos: cfitos$pack $FRintj,$FRk,$CCi,$cond */
17012
17013 static SEM_PC
17014 SEM_FN_NAME (frvbf,cfitos) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17015 {
17016 #define FLD(f) abuf->fields.sfmt_cfitos.f
17017   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17018   int UNUSED written = 0;
17019   IADDR UNUSED pc = abuf->addr;
17020   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17021
17022 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
17023   {
17024     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->floatsisf) (CGEN_CPU_FPU (current_cpu), GET_H_FR_INT (FLD (f_FRj)));
17025     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17026     written |= (1 << 3);
17027     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17028   }
17029 }
17030
17031   abuf->written = written;
17032   return vpc;
17033 #undef FLD
17034 }
17035
17036 /* cfstoi: cfstoi$pack $FRj,$FRintk,$CCi,$cond */
17037
17038 static SEM_PC
17039 SEM_FN_NAME (frvbf,cfstoi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17040 {
17041 #define FLD(f) abuf->fields.sfmt_cfstoi.f
17042   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17043   int UNUSED written = 0;
17044   IADDR UNUSED pc = abuf->addr;
17045   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17046
17047 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
17048   {
17049     SI opval = (* CGEN_CPU_FPU (current_cpu)->ops->fixsfsi) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17050     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
17051     written |= (1 << 3);
17052     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
17053   }
17054 }
17055
17056   abuf->written = written;
17057   return vpc;
17058 #undef FLD
17059 }
17060
17061 /* nfitos: nfitos$pack $FRintj,$FRk */
17062
17063 static SEM_PC
17064 SEM_FN_NAME (frvbf,nfitos) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17065 {
17066 #define FLD(f) abuf->fields.sfmt_fditos.f
17067   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17068   int UNUSED written = 0;
17069   IADDR UNUSED pc = abuf->addr;
17070   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17071
17072 {
17073 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
17074   {
17075     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->floatsisf) (CGEN_CPU_FPU (current_cpu), GET_H_FR_INT (FLD (f_FRj)));
17076     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17077     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17078   }
17079 }
17080
17081   return vpc;
17082 #undef FLD
17083 }
17084
17085 /* nfstoi: nfstoi$pack $FRj,$FRintk */
17086
17087 static SEM_PC
17088 SEM_FN_NAME (frvbf,nfstoi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17089 {
17090 #define FLD(f) abuf->fields.sfmt_fdstoi.f
17091   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17092   int UNUSED written = 0;
17093   IADDR UNUSED pc = abuf->addr;
17094   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17095
17096 {
17097 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
17098   {
17099     SI opval = (* CGEN_CPU_FPU (current_cpu)->ops->fixsfsi) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17100     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
17101     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
17102   }
17103 }
17104
17105   return vpc;
17106 #undef FLD
17107 }
17108
17109 /* fmovs: fmovs$pack $FRj,$FRk */
17110
17111 static SEM_PC
17112 SEM_FN_NAME (frvbf,fmovs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17113 {
17114 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17115   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17116   int UNUSED written = 0;
17117   IADDR UNUSED pc = abuf->addr;
17118   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17119
17120   {
17121     SF opval = GET_H_FR (FLD (f_FRj));
17122     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17123     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17124   }
17125
17126   return vpc;
17127 #undef FLD
17128 }
17129
17130 /* fmovd: fmovd$pack $FRdoublej,$FRdoublek */
17131
17132 static SEM_PC
17133 SEM_FN_NAME (frvbf,fmovd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17134 {
17135 #define FLD(f) abuf->fields.sfmt_fmaddd.f
17136   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17137   int UNUSED written = 0;
17138   IADDR UNUSED pc = abuf->addr;
17139   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17140
17141   {
17142     DF opval = GET_H_FR_DOUBLE (FLD (f_FRj));
17143     sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
17144     TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
17145   }
17146
17147   return vpc;
17148 #undef FLD
17149 }
17150
17151 /* fdmovs: fdmovs$pack $FRj,$FRk */
17152
17153 static SEM_PC
17154 SEM_FN_NAME (frvbf,fdmovs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17155 {
17156 #define FLD(f) abuf->fields.sfmt_fdmadds.f
17157   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17158   int UNUSED written = 0;
17159   IADDR UNUSED pc = abuf->addr;
17160   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17161
17162 {
17163   {
17164     SF opval = GET_H_FR (FLD (f_FRj));
17165     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17166     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17167   }
17168   {
17169     SF opval = GET_H_FR (((FLD (f_FRj)) + (1)));
17170     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
17171     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17172   }
17173 }
17174
17175   return vpc;
17176 #undef FLD
17177 }
17178
17179 /* cfmovs: cfmovs$pack $FRj,$FRk,$CCi,$cond */
17180
17181 static SEM_PC
17182 SEM_FN_NAME (frvbf,cfmovs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17183 {
17184 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17185   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17186   int UNUSED written = 0;
17187   IADDR UNUSED pc = abuf->addr;
17188   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17189
17190 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
17191   {
17192     SF opval = GET_H_FR (FLD (f_FRj));
17193     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17194     written |= (1 << 3);
17195     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17196   }
17197 }
17198
17199   abuf->written = written;
17200   return vpc;
17201 #undef FLD
17202 }
17203
17204 /* fnegs: fnegs$pack $FRj,$FRk */
17205
17206 static SEM_PC
17207 SEM_FN_NAME (frvbf,fnegs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17208 {
17209 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17210   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17211   int UNUSED written = 0;
17212   IADDR UNUSED pc = abuf->addr;
17213   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17214
17215   {
17216     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->negsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17217     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17218     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17219   }
17220
17221   return vpc;
17222 #undef FLD
17223 }
17224
17225 /* fnegd: fnegd$pack $FRdoublej,$FRdoublek */
17226
17227 static SEM_PC
17228 SEM_FN_NAME (frvbf,fnegd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17229 {
17230 #define FLD(f) abuf->fields.sfmt_fmaddd.f
17231   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17232   int UNUSED written = 0;
17233   IADDR UNUSED pc = abuf->addr;
17234   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17235
17236   {
17237     DF opval = (* CGEN_CPU_FPU (current_cpu)->ops->negdf) (CGEN_CPU_FPU (current_cpu), GET_H_FR_DOUBLE (FLD (f_FRj)));
17238     sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
17239     TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
17240   }
17241
17242   return vpc;
17243 #undef FLD
17244 }
17245
17246 /* fdnegs: fdnegs$pack $FRj,$FRk */
17247
17248 static SEM_PC
17249 SEM_FN_NAME (frvbf,fdnegs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17250 {
17251 #define FLD(f) abuf->fields.sfmt_fdmadds.f
17252   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17253   int UNUSED written = 0;
17254   IADDR UNUSED pc = abuf->addr;
17255   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17256
17257 {
17258   {
17259     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->negsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17260     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17261     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17262   }
17263   {
17264     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->negsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRj)) + (1))));
17265     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
17266     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17267   }
17268 }
17269
17270   return vpc;
17271 #undef FLD
17272 }
17273
17274 /* cfnegs: cfnegs$pack $FRj,$FRk,$CCi,$cond */
17275
17276 static SEM_PC
17277 SEM_FN_NAME (frvbf,cfnegs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17278 {
17279 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17280   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17281   int UNUSED written = 0;
17282   IADDR UNUSED pc = abuf->addr;
17283   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17284
17285 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
17286   {
17287     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->negsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17288     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17289     written |= (1 << 3);
17290     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17291   }
17292 }
17293
17294   abuf->written = written;
17295   return vpc;
17296 #undef FLD
17297 }
17298
17299 /* fabss: fabss$pack $FRj,$FRk */
17300
17301 static SEM_PC
17302 SEM_FN_NAME (frvbf,fabss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17303 {
17304 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17305   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17306   int UNUSED written = 0;
17307   IADDR UNUSED pc = abuf->addr;
17308   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17309
17310   {
17311     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->abssf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17312     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17313     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17314   }
17315
17316   return vpc;
17317 #undef FLD
17318 }
17319
17320 /* fabsd: fabsd$pack $FRdoublej,$FRdoublek */
17321
17322 static SEM_PC
17323 SEM_FN_NAME (frvbf,fabsd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17324 {
17325 #define FLD(f) abuf->fields.sfmt_fmaddd.f
17326   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17327   int UNUSED written = 0;
17328   IADDR UNUSED pc = abuf->addr;
17329   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17330
17331   {
17332     DF opval = (* CGEN_CPU_FPU (current_cpu)->ops->absdf) (CGEN_CPU_FPU (current_cpu), GET_H_FR_DOUBLE (FLD (f_FRj)));
17333     sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
17334     TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
17335   }
17336
17337   return vpc;
17338 #undef FLD
17339 }
17340
17341 /* fdabss: fdabss$pack $FRj,$FRk */
17342
17343 static SEM_PC
17344 SEM_FN_NAME (frvbf,fdabss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17345 {
17346 #define FLD(f) abuf->fields.sfmt_fdmadds.f
17347   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17348   int UNUSED written = 0;
17349   IADDR UNUSED pc = abuf->addr;
17350   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17351
17352 {
17353   {
17354     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->abssf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17355     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17356     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17357   }
17358   {
17359     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->abssf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRj)) + (1))));
17360     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
17361     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17362   }
17363 }
17364
17365   return vpc;
17366 #undef FLD
17367 }
17368
17369 /* cfabss: cfabss$pack $FRj,$FRk,$CCi,$cond */
17370
17371 static SEM_PC
17372 SEM_FN_NAME (frvbf,cfabss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17373 {
17374 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17375   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17376   int UNUSED written = 0;
17377   IADDR UNUSED pc = abuf->addr;
17378   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17379
17380 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
17381   {
17382     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->abssf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17383     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17384     written |= (1 << 3);
17385     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17386   }
17387 }
17388
17389   abuf->written = written;
17390   return vpc;
17391 #undef FLD
17392 }
17393
17394 /* fsqrts: fsqrts$pack $FRj,$FRk */
17395
17396 static SEM_PC
17397 SEM_FN_NAME (frvbf,fsqrts) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17398 {
17399 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17400   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17401   int UNUSED written = 0;
17402   IADDR UNUSED pc = abuf->addr;
17403   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17404
17405   {
17406     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->sqrtsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17407     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17408     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17409   }
17410
17411   return vpc;
17412 #undef FLD
17413 }
17414
17415 /* fdsqrts: fdsqrts$pack $FRj,$FRk */
17416
17417 static SEM_PC
17418 SEM_FN_NAME (frvbf,fdsqrts) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17419 {
17420 #define FLD(f) abuf->fields.sfmt_fdmadds.f
17421   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17422   int UNUSED written = 0;
17423   IADDR UNUSED pc = abuf->addr;
17424   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17425
17426 {
17427   {
17428     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->sqrtsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17429     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17430     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17431   }
17432   {
17433     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->sqrtsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRj)) + (1))));
17434     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
17435     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17436   }
17437 }
17438
17439   return vpc;
17440 #undef FLD
17441 }
17442
17443 /* nfdsqrts: nfdsqrts$pack $FRj,$FRk */
17444
17445 static SEM_PC
17446 SEM_FN_NAME (frvbf,nfdsqrts) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17447 {
17448 #define FLD(f) abuf->fields.sfmt_fdmadds.f
17449   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17450   int UNUSED written = 0;
17451   IADDR UNUSED pc = abuf->addr;
17452   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17453
17454 {
17455 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
17456   {
17457     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->sqrtsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17458     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17459     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17460   }
17461 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
17462   {
17463     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->sqrtsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRj)) + (1))));
17464     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
17465     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17466   }
17467 }
17468
17469   return vpc;
17470 #undef FLD
17471 }
17472
17473 /* fsqrtd: fsqrtd$pack $FRdoublej,$FRdoublek */
17474
17475 static SEM_PC
17476 SEM_FN_NAME (frvbf,fsqrtd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17477 {
17478 #define FLD(f) abuf->fields.sfmt_fmaddd.f
17479   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17480   int UNUSED written = 0;
17481   IADDR UNUSED pc = abuf->addr;
17482   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17483
17484   {
17485     DF opval = (* CGEN_CPU_FPU (current_cpu)->ops->sqrtdf) (CGEN_CPU_FPU (current_cpu), GET_H_FR_DOUBLE (FLD (f_FRj)));
17486     sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
17487     TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
17488   }
17489
17490   return vpc;
17491 #undef FLD
17492 }
17493
17494 /* cfsqrts: cfsqrts$pack $FRj,$FRk,$CCi,$cond */
17495
17496 static SEM_PC
17497 SEM_FN_NAME (frvbf,cfsqrts) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17498 {
17499 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17500   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17501   int UNUSED written = 0;
17502   IADDR UNUSED pc = abuf->addr;
17503   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17504
17505 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
17506   {
17507     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->sqrtsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17508     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17509     written |= (1 << 3);
17510     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17511   }
17512 }
17513
17514   abuf->written = written;
17515   return vpc;
17516 #undef FLD
17517 }
17518
17519 /* nfsqrts: nfsqrts$pack $FRj,$FRk */
17520
17521 static SEM_PC
17522 SEM_FN_NAME (frvbf,nfsqrts) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17523 {
17524 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17525   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17526   int UNUSED written = 0;
17527   IADDR UNUSED pc = abuf->addr;
17528   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17529
17530 {
17531 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
17532   {
17533     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->sqrtsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17534     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17535     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17536   }
17537 }
17538
17539   return vpc;
17540 #undef FLD
17541 }
17542
17543 /* fadds: fadds$pack $FRi,$FRj,$FRk */
17544
17545 static SEM_PC
17546 SEM_FN_NAME (frvbf,fadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17547 {
17548 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17549   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17550   int UNUSED written = 0;
17551   IADDR UNUSED pc = abuf->addr;
17552   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17553
17554   {
17555     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)));
17556     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17557     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17558   }
17559
17560   return vpc;
17561 #undef FLD
17562 }
17563
17564 /* fsubs: fsubs$pack $FRi,$FRj,$FRk */
17565
17566 static SEM_PC
17567 SEM_FN_NAME (frvbf,fsubs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17568 {
17569 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17570   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17571   int UNUSED written = 0;
17572   IADDR UNUSED pc = abuf->addr;
17573   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17574
17575   {
17576     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)));
17577     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17578     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17579   }
17580
17581   return vpc;
17582 #undef FLD
17583 }
17584
17585 /* fmuls: fmuls$pack $FRi,$FRj,$FRk */
17586
17587 static SEM_PC
17588 SEM_FN_NAME (frvbf,fmuls) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17589 {
17590 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17591   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17592   int UNUSED written = 0;
17593   IADDR UNUSED pc = abuf->addr;
17594   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17595
17596   {
17597     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)));
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   return vpc;
17603 #undef FLD
17604 }
17605
17606 /* fdivs: fdivs$pack $FRi,$FRj,$FRk */
17607
17608 static SEM_PC
17609 SEM_FN_NAME (frvbf,fdivs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17610 {
17611 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17612   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17613   int UNUSED written = 0;
17614   IADDR UNUSED pc = abuf->addr;
17615   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17616
17617   {
17618     SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->divsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)));
17619     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17620     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17621   }
17622
17623   return vpc;
17624 #undef FLD
17625 }
17626
17627 /* faddd: faddd$pack $FRdoublei,$FRdoublej,$FRdoublek */
17628
17629 static SEM_PC
17630 SEM_FN_NAME (frvbf,faddd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17631 {
17632 #define FLD(f) abuf->fields.sfmt_fmaddd.f
17633   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17634   int UNUSED written = 0;
17635   IADDR UNUSED pc = abuf->addr;
17636   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17637
17638   {
17639     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)));
17640     sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
17641     TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
17642   }
17643
17644   return vpc;
17645 #undef FLD
17646 }
17647
17648 /* fsubd: fsubd$pack $FRdoublei,$FRdoublej,$FRdoublek */
17649
17650 static SEM_PC
17651 SEM_FN_NAME (frvbf,fsubd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17652 {
17653 #define FLD(f) abuf->fields.sfmt_fmaddd.f
17654   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17655   int UNUSED written = 0;
17656   IADDR UNUSED pc = abuf->addr;
17657   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17658
17659   {
17660     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)));
17661     sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
17662     TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
17663   }
17664
17665   return vpc;
17666 #undef FLD
17667 }
17668
17669 /* fmuld: fmuld$pack $FRdoublei,$FRdoublej,$FRdoublek */
17670
17671 static SEM_PC
17672 SEM_FN_NAME (frvbf,fmuld) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17673 {
17674 #define FLD(f) abuf->fields.sfmt_fmaddd.f
17675   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17676   int UNUSED written = 0;
17677   IADDR UNUSED pc = abuf->addr;
17678   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17679
17680   {
17681     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)));
17682     sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
17683     TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
17684   }
17685
17686   return vpc;
17687 #undef FLD
17688 }
17689
17690 /* fdivd: fdivd$pack $FRdoublei,$FRdoublej,$FRdoublek */
17691
17692 static SEM_PC
17693 SEM_FN_NAME (frvbf,fdivd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17694 {
17695 #define FLD(f) abuf->fields.sfmt_fmaddd.f
17696   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17697   int UNUSED written = 0;
17698   IADDR UNUSED pc = abuf->addr;
17699   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17700
17701   {
17702     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)));
17703     sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
17704     TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
17705   }
17706
17707   return vpc;
17708 #undef FLD
17709 }
17710
17711 /* cfadds: cfadds$pack $FRi,$FRj,$FRk,$CCi,$cond */
17712
17713 static SEM_PC
17714 SEM_FN_NAME (frvbf,cfadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17715 {
17716 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17717   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17718   int UNUSED written = 0;
17719   IADDR UNUSED pc = abuf->addr;
17720   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17721
17722 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
17723   {
17724     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)));
17725     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17726     written |= (1 << 4);
17727     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17728   }
17729 }
17730
17731   abuf->written = written;
17732   return vpc;
17733 #undef FLD
17734 }
17735
17736 /* cfsubs: cfsubs$pack $FRi,$FRj,$FRk,$CCi,$cond */
17737
17738 static SEM_PC
17739 SEM_FN_NAME (frvbf,cfsubs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17740 {
17741 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17742   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17743   int UNUSED written = 0;
17744   IADDR UNUSED pc = abuf->addr;
17745   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17746
17747 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
17748   {
17749     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)));
17750     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17751     written |= (1 << 4);
17752     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17753   }
17754 }
17755
17756   abuf->written = written;
17757   return vpc;
17758 #undef FLD
17759 }
17760
17761 /* cfmuls: cfmuls$pack $FRi,$FRj,$FRk,$CCi,$cond */
17762
17763 static SEM_PC
17764 SEM_FN_NAME (frvbf,cfmuls) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17765 {
17766 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17767   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17768   int UNUSED written = 0;
17769   IADDR UNUSED pc = abuf->addr;
17770   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17771
17772 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
17773   {
17774     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)));
17775     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17776     written |= (1 << 4);
17777     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17778   }
17779 }
17780
17781   abuf->written = written;
17782   return vpc;
17783 #undef FLD
17784 }
17785
17786 /* cfdivs: cfdivs$pack $FRi,$FRj,$FRk,$CCi,$cond */
17787
17788 static SEM_PC
17789 SEM_FN_NAME (frvbf,cfdivs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17790 {
17791 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17792   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17793   int UNUSED written = 0;
17794   IADDR UNUSED pc = abuf->addr;
17795   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17796
17797 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
17798   {
17799     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)));
17800     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17801     written |= (1 << 4);
17802     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17803   }
17804 }
17805
17806   abuf->written = written;
17807   return vpc;
17808 #undef FLD
17809 }
17810
17811 /* nfadds: nfadds$pack $FRi,$FRj,$FRk */
17812
17813 static SEM_PC
17814 SEM_FN_NAME (frvbf,nfadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17815 {
17816 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17817   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17818   int UNUSED written = 0;
17819   IADDR UNUSED pc = abuf->addr;
17820   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17821
17822 {
17823 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
17824   {
17825     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)));
17826     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17827     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17828   }
17829 }
17830
17831   return vpc;
17832 #undef FLD
17833 }
17834
17835 /* nfsubs: nfsubs$pack $FRi,$FRj,$FRk */
17836
17837 static SEM_PC
17838 SEM_FN_NAME (frvbf,nfsubs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17839 {
17840 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17841   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17842   int UNUSED written = 0;
17843   IADDR UNUSED pc = abuf->addr;
17844   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17845
17846 {
17847 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
17848   {
17849     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)));
17850     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17851     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17852   }
17853 }
17854
17855   return vpc;
17856 #undef FLD
17857 }
17858
17859 /* nfmuls: nfmuls$pack $FRi,$FRj,$FRk */
17860
17861 static SEM_PC
17862 SEM_FN_NAME (frvbf,nfmuls) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17863 {
17864 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17865   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17866   int UNUSED written = 0;
17867   IADDR UNUSED pc = abuf->addr;
17868   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17869
17870 {
17871 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
17872   {
17873     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)));
17874     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17875     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17876   }
17877 }
17878
17879   return vpc;
17880 #undef FLD
17881 }
17882
17883 /* nfdivs: nfdivs$pack $FRi,$FRj,$FRk */
17884
17885 static SEM_PC
17886 SEM_FN_NAME (frvbf,nfdivs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17887 {
17888 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17889   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17890   int UNUSED written = 0;
17891   IADDR UNUSED pc = abuf->addr;
17892   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17893
17894 {
17895 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
17896   {
17897     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)));
17898     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17899     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17900   }
17901 }
17902
17903   return vpc;
17904 #undef FLD
17905 }
17906
17907 /* fcmps: fcmps$pack $FRi,$FRj,$FCCi_2 */
17908
17909 static SEM_PC
17910 SEM_FN_NAME (frvbf,fcmps) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17911 {
17912 #define FLD(f) abuf->fields.sfmt_cfcmps.f
17913   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17914   int UNUSED written = 0;
17915   IADDR UNUSED pc = abuf->addr;
17916   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17917
17918 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)))) {
17919   {
17920     UQI opval = 2;
17921     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17922     written |= (1 << 2);
17923     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17924   }
17925 } else {
17926 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)))) {
17927   {
17928     UQI opval = 8;
17929     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17930     written |= (1 << 2);
17931     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17932   }
17933 } else {
17934 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)))) {
17935   {
17936     UQI opval = 4;
17937     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17938     written |= (1 << 2);
17939     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17940   }
17941 } else {
17942   {
17943     UQI opval = 1;
17944     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17945     written |= (1 << 2);
17946     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17947   }
17948 }
17949 }
17950 }
17951
17952   abuf->written = written;
17953   return vpc;
17954 #undef FLD
17955 }
17956
17957 /* fcmpd: fcmpd$pack $FRdoublei,$FRdoublej,$FCCi_2 */
17958
17959 static SEM_PC
17960 SEM_FN_NAME (frvbf,fcmpd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17961 {
17962 #define FLD(f) abuf->fields.sfmt_fcmpd.f
17963   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17964   int UNUSED written = 0;
17965   IADDR UNUSED pc = abuf->addr;
17966   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17967
17968 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)))) {
17969   {
17970     UQI opval = 2;
17971     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17972     written |= (1 << 2);
17973     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17974   }
17975 } else {
17976 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)))) {
17977   {
17978     UQI opval = 8;
17979     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17980     written |= (1 << 2);
17981     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17982   }
17983 } else {
17984 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)))) {
17985   {
17986     UQI opval = 4;
17987     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17988     written |= (1 << 2);
17989     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17990   }
17991 } else {
17992   {
17993     UQI opval = 1;
17994     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17995     written |= (1 << 2);
17996     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17997   }
17998 }
17999 }
18000 }
18001
18002   abuf->written = written;
18003   return vpc;
18004 #undef FLD
18005 }
18006
18007 /* cfcmps: cfcmps$pack $FRi,$FRj,$FCCi_2,$CCi,$cond */
18008
18009 static SEM_PC
18010 SEM_FN_NAME (frvbf,cfcmps) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18011 {
18012 #define FLD(f) abuf->fields.sfmt_cfcmps.f
18013   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18014   int UNUSED written = 0;
18015   IADDR UNUSED pc = abuf->addr;
18016   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18017
18018 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
18019 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)))) {
18020   {
18021     UQI opval = 2;
18022     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
18023     written |= (1 << 4);
18024     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
18025   }
18026 } else {
18027 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)))) {
18028   {
18029     UQI opval = 8;
18030     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
18031     written |= (1 << 4);
18032     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
18033   }
18034 } else {
18035 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)))) {
18036   {
18037     UQI opval = 4;
18038     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
18039     written |= (1 << 4);
18040     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
18041   }
18042 } else {
18043   {
18044     UQI opval = 1;
18045     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
18046     written |= (1 << 4);
18047     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
18048   }
18049 }
18050 }
18051 }
18052 }
18053
18054   abuf->written = written;
18055   return vpc;
18056 #undef FLD
18057 }
18058
18059 /* fdcmps: fdcmps$pack $FRi,$FRj,$FCCi_2 */
18060
18061 static SEM_PC
18062 SEM_FN_NAME (frvbf,fdcmps) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18063 {
18064 #define FLD(f) abuf->fields.sfmt_nfdcmps.f
18065   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18066   int UNUSED written = 0;
18067   IADDR UNUSED pc = abuf->addr;
18068   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18069
18070 {
18071 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)))) {
18072   {
18073     UQI opval = 2;
18074     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
18075     written |= (1 << 7);
18076     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
18077   }
18078 } else {
18079 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)))) {
18080   {
18081     UQI opval = 8;
18082     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
18083     written |= (1 << 7);
18084     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
18085   }
18086 } else {
18087 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)))) {
18088   {
18089     UQI opval = 4;
18090     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
18091     written |= (1 << 7);
18092     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
18093   }
18094 } else {
18095   {
18096     UQI opval = 1;
18097     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
18098     written |= (1 << 7);
18099     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
18100   }
18101 }
18102 }
18103 }
18104 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))))) {
18105   {
18106     UQI opval = 2;
18107     sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCi_2)) + (1))]), opval);
18108     written |= (1 << 8);
18109     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
18110   }
18111 } else {
18112 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))))) {
18113   {
18114     UQI opval = 8;
18115     sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCi_2)) + (1))]), opval);
18116     written |= (1 << 8);
18117     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
18118   }
18119 } else {
18120 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))))) {
18121   {
18122     UQI opval = 4;
18123     sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCi_2)) + (1))]), opval);
18124     written |= (1 << 8);
18125     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
18126   }
18127 } else {
18128   {
18129     UQI opval = 1;
18130     sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCi_2)) + (1))]), opval);
18131     written |= (1 << 8);
18132     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
18133   }
18134 }
18135 }
18136 }
18137 }
18138
18139   abuf->written = written;
18140   return vpc;
18141 #undef FLD
18142 }
18143
18144 /* fmadds: fmadds$pack $FRi,$FRj,$FRk */
18145
18146 static SEM_PC
18147 SEM_FN_NAME (frvbf,fmadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18148 {
18149 #define FLD(f) abuf->fields.sfmt_cfmadds.f
18150   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18151   int UNUSED written = 0;
18152   IADDR UNUSED pc = abuf->addr;
18153   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18154
18155   {
18156     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)));
18157     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18158     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18159   }
18160
18161   return vpc;
18162 #undef FLD
18163 }
18164
18165 /* fmsubs: fmsubs$pack $FRi,$FRj,$FRk */
18166
18167 static SEM_PC
18168 SEM_FN_NAME (frvbf,fmsubs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18169 {
18170 #define FLD(f) abuf->fields.sfmt_cfmadds.f
18171   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18172   int UNUSED written = 0;
18173   IADDR UNUSED pc = abuf->addr;
18174   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18175
18176   {
18177     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)));
18178     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18179     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18180   }
18181
18182   return vpc;
18183 #undef FLD
18184 }
18185
18186 /* fmaddd: fmaddd$pack $FRdoublei,$FRdoublej,$FRdoublek */
18187
18188 static SEM_PC
18189 SEM_FN_NAME (frvbf,fmaddd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18190 {
18191 #define FLD(f) abuf->fields.sfmt_fmaddd.f
18192   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18193   int UNUSED written = 0;
18194   IADDR UNUSED pc = abuf->addr;
18195   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18196
18197   {
18198     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)));
18199     sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
18200     TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
18201   }
18202
18203   return vpc;
18204 #undef FLD
18205 }
18206
18207 /* fmsubd: fmsubd$pack $FRdoublei,$FRdoublej,$FRdoublek */
18208
18209 static SEM_PC
18210 SEM_FN_NAME (frvbf,fmsubd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18211 {
18212 #define FLD(f) abuf->fields.sfmt_fmaddd.f
18213   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18214   int UNUSED written = 0;
18215   IADDR UNUSED pc = abuf->addr;
18216   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18217
18218   {
18219     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)));
18220     sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
18221     TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
18222   }
18223
18224   return vpc;
18225 #undef FLD
18226 }
18227
18228 /* fdmadds: fdmadds$pack $FRi,$FRj,$FRk */
18229
18230 static SEM_PC
18231 SEM_FN_NAME (frvbf,fdmadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18232 {
18233 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18234   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18235   int UNUSED written = 0;
18236   IADDR UNUSED pc = abuf->addr;
18237   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18238
18239 {
18240   {
18241     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)));
18242     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18243     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18244   }
18245   {
18246     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))));
18247     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18248     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18249   }
18250 }
18251
18252   return vpc;
18253 #undef FLD
18254 }
18255
18256 /* nfdmadds: nfdmadds$pack $FRi,$FRj,$FRk */
18257
18258 static SEM_PC
18259 SEM_FN_NAME (frvbf,nfdmadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18260 {
18261 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18262   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18263   int UNUSED written = 0;
18264   IADDR UNUSED pc = abuf->addr;
18265   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18266
18267 {
18268 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18269   {
18270     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)));
18271     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18272     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18273   }
18274 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18275   {
18276     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))));
18277     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18278     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18279   }
18280 }
18281
18282   return vpc;
18283 #undef FLD
18284 }
18285
18286 /* cfmadds: cfmadds$pack $FRi,$FRj,$FRk,$CCi,$cond */
18287
18288 static SEM_PC
18289 SEM_FN_NAME (frvbf,cfmadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18290 {
18291 #define FLD(f) abuf->fields.sfmt_cfmadds.f
18292   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18293   int UNUSED written = 0;
18294   IADDR UNUSED pc = abuf->addr;
18295   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18296
18297 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
18298   {
18299     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)));
18300     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18301     written |= (1 << 5);
18302     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18303   }
18304 }
18305
18306   abuf->written = written;
18307   return vpc;
18308 #undef FLD
18309 }
18310
18311 /* cfmsubs: cfmsubs$pack $FRi,$FRj,$FRk,$CCi,$cond */
18312
18313 static SEM_PC
18314 SEM_FN_NAME (frvbf,cfmsubs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18315 {
18316 #define FLD(f) abuf->fields.sfmt_cfmadds.f
18317   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18318   int UNUSED written = 0;
18319   IADDR UNUSED pc = abuf->addr;
18320   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18321
18322 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
18323   {
18324     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)));
18325     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18326     written |= (1 << 5);
18327     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18328   }
18329 }
18330
18331   abuf->written = written;
18332   return vpc;
18333 #undef FLD
18334 }
18335
18336 /* nfmadds: nfmadds$pack $FRi,$FRj,$FRk */
18337
18338 static SEM_PC
18339 SEM_FN_NAME (frvbf,nfmadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18340 {
18341 #define FLD(f) abuf->fields.sfmt_cfmadds.f
18342   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18343   int UNUSED written = 0;
18344   IADDR UNUSED pc = abuf->addr;
18345   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18346
18347 {
18348 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18349   {
18350     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)));
18351     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18352     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18353   }
18354 }
18355
18356   return vpc;
18357 #undef FLD
18358 }
18359
18360 /* nfmsubs: nfmsubs$pack $FRi,$FRj,$FRk */
18361
18362 static SEM_PC
18363 SEM_FN_NAME (frvbf,nfmsubs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18364 {
18365 #define FLD(f) abuf->fields.sfmt_cfmadds.f
18366   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18367   int UNUSED written = 0;
18368   IADDR UNUSED pc = abuf->addr;
18369   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18370
18371 {
18372 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18373   {
18374     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)));
18375     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18376     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18377   }
18378 }
18379
18380   return vpc;
18381 #undef FLD
18382 }
18383
18384 /* fmas: fmas$pack $FRi,$FRj,$FRk */
18385
18386 static SEM_PC
18387 SEM_FN_NAME (frvbf,fmas) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18388 {
18389 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18390   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18391   int UNUSED written = 0;
18392   IADDR UNUSED pc = abuf->addr;
18393   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18394
18395 {
18396   {
18397     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)));
18398     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18399     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18400   }
18401   {
18402     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))));
18403     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18404     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18405   }
18406 }
18407
18408   return vpc;
18409 #undef FLD
18410 }
18411
18412 /* fmss: fmss$pack $FRi,$FRj,$FRk */
18413
18414 static SEM_PC
18415 SEM_FN_NAME (frvbf,fmss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18416 {
18417 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18418   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18419   int UNUSED written = 0;
18420   IADDR UNUSED pc = abuf->addr;
18421   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18422
18423 {
18424   {
18425     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)));
18426     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18427     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18428   }
18429   {
18430     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))));
18431     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18432     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18433   }
18434 }
18435
18436   return vpc;
18437 #undef FLD
18438 }
18439
18440 /* fdmas: fdmas$pack $FRi,$FRj,$FRk */
18441
18442 static SEM_PC
18443 SEM_FN_NAME (frvbf,fdmas) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18444 {
18445 #define FLD(f) abuf->fields.sfmt_fdmas.f
18446   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18447   int UNUSED written = 0;
18448   IADDR UNUSED pc = abuf->addr;
18449   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18450
18451 {
18452   {
18453     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)));
18454     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18455     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18456   }
18457   {
18458     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))));
18459     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18460     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18461   }
18462   {
18463     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))));
18464     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (2)), opval);
18465     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18466   }
18467   {
18468     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))));
18469     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (3)), opval);
18470     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18471   }
18472 }
18473
18474   return vpc;
18475 #undef FLD
18476 }
18477
18478 /* fdmss: fdmss$pack $FRi,$FRj,$FRk */
18479
18480 static SEM_PC
18481 SEM_FN_NAME (frvbf,fdmss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18482 {
18483 #define FLD(f) abuf->fields.sfmt_fdmas.f
18484   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18485   int UNUSED written = 0;
18486   IADDR UNUSED pc = abuf->addr;
18487   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18488
18489 {
18490   {
18491     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)));
18492     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18493     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18494   }
18495   {
18496     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))));
18497     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18498     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18499   }
18500   {
18501     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))));
18502     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (2)), opval);
18503     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18504   }
18505   {
18506     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))));
18507     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (3)), opval);
18508     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18509   }
18510 }
18511
18512   return vpc;
18513 #undef FLD
18514 }
18515
18516 /* nfdmas: nfdmas$pack $FRi,$FRj,$FRk */
18517
18518 static SEM_PC
18519 SEM_FN_NAME (frvbf,nfdmas) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18520 {
18521 #define FLD(f) abuf->fields.sfmt_fdmas.f
18522   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18523   int UNUSED written = 0;
18524   IADDR UNUSED pc = abuf->addr;
18525   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18526
18527 {
18528 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18529 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18530 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 2));
18531 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 3));
18532   {
18533     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)));
18534     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18535     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18536   }
18537   {
18538     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))));
18539     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18540     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18541   }
18542   {
18543     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))));
18544     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (2)), opval);
18545     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18546   }
18547   {
18548     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))));
18549     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (3)), opval);
18550     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18551   }
18552 }
18553
18554   return vpc;
18555 #undef FLD
18556 }
18557
18558 /* nfdmss: nfdmss$pack $FRi,$FRj,$FRk */
18559
18560 static SEM_PC
18561 SEM_FN_NAME (frvbf,nfdmss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18562 {
18563 #define FLD(f) abuf->fields.sfmt_fdmas.f
18564   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18565   int UNUSED written = 0;
18566   IADDR UNUSED pc = abuf->addr;
18567   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18568
18569 {
18570 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18571 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18572 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 2));
18573 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 3));
18574   {
18575     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)));
18576     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18577     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18578   }
18579   {
18580     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))));
18581     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18582     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18583   }
18584   {
18585     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))));
18586     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (2)), opval);
18587     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18588   }
18589   {
18590     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))));
18591     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (3)), opval);
18592     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18593   }
18594 }
18595
18596   return vpc;
18597 #undef FLD
18598 }
18599
18600 /* cfmas: cfmas$pack $FRi,$FRj,$FRk,$CCi,$cond */
18601
18602 static SEM_PC
18603 SEM_FN_NAME (frvbf,cfmas) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18604 {
18605 #define FLD(f) abuf->fields.sfmt_cfmas.f
18606   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18607   int UNUSED written = 0;
18608   IADDR UNUSED pc = abuf->addr;
18609   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18610
18611 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
18612 {
18613   {
18614     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)));
18615     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18616     written |= (1 << 9);
18617     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18618   }
18619   {
18620     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))));
18621     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18622     written |= (1 << 10);
18623     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18624   }
18625 }
18626 }
18627
18628   abuf->written = written;
18629   return vpc;
18630 #undef FLD
18631 }
18632
18633 /* cfmss: cfmss$pack $FRi,$FRj,$FRk,$CCi,$cond */
18634
18635 static SEM_PC
18636 SEM_FN_NAME (frvbf,cfmss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18637 {
18638 #define FLD(f) abuf->fields.sfmt_cfmas.f
18639   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18640   int UNUSED written = 0;
18641   IADDR UNUSED pc = abuf->addr;
18642   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18643
18644 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
18645 {
18646   {
18647     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)));
18648     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18649     written |= (1 << 9);
18650     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18651   }
18652   {
18653     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))));
18654     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18655     written |= (1 << 10);
18656     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18657   }
18658 }
18659 }
18660
18661   abuf->written = written;
18662   return vpc;
18663 #undef FLD
18664 }
18665
18666 /* fmad: fmad$pack $FRi,$FRj,$FRk */
18667
18668 static SEM_PC
18669 SEM_FN_NAME (frvbf,fmad) (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->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)))));
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->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))))));
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 /* fmsd: fmsd$pack $FRi,$FRj,$FRk */
18695
18696 static SEM_PC
18697 SEM_FN_NAME (frvbf,fmsd) (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->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)))));
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->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))))));
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 /* nfmas: nfmas$pack $FRi,$FRj,$FRk */
18723
18724 static SEM_PC
18725 SEM_FN_NAME (frvbf,nfmas) (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)));
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->addsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (1))), GET_H_FR (((FLD (f_FRj)) + (1))));
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 /* nfmss: nfmss$pack $FRi,$FRj,$FRk */
18753
18754 static SEM_PC
18755 SEM_FN_NAME (frvbf,nfmss) (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->mulsf) (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->subsf) (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 /* fdadds: fdadds$pack $FRi,$FRj,$FRk */
18783
18784 static SEM_PC
18785 SEM_FN_NAME (frvbf,fdadds) (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   {
18795     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)));
18796     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18797     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18798   }
18799   {
18800     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))));
18801     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18802     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18803   }
18804 }
18805
18806   return vpc;
18807 #undef FLD
18808 }
18809
18810 /* fdsubs: fdsubs$pack $FRi,$FRj,$FRk */
18811
18812 static SEM_PC
18813 SEM_FN_NAME (frvbf,fdsubs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18814 {
18815 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18816   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18817   int UNUSED written = 0;
18818   IADDR UNUSED pc = abuf->addr;
18819   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18820
18821 {
18822   {
18823     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)));
18824     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18825     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18826   }
18827   {
18828     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))));
18829     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18830     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18831   }
18832 }
18833
18834   return vpc;
18835 #undef FLD
18836 }
18837
18838 /* fdmuls: fdmuls$pack $FRi,$FRj,$FRk */
18839
18840 static SEM_PC
18841 SEM_FN_NAME (frvbf,fdmuls) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18842 {
18843 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18844   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18845   int UNUSED written = 0;
18846   IADDR UNUSED pc = abuf->addr;
18847   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18848
18849 {
18850   {
18851     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)));
18852     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18853     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18854   }
18855   {
18856     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))));
18857     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18858     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18859   }
18860 }
18861
18862   return vpc;
18863 #undef FLD
18864 }
18865
18866 /* fddivs: fddivs$pack $FRi,$FRj,$FRk */
18867
18868 static SEM_PC
18869 SEM_FN_NAME (frvbf,fddivs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18870 {
18871 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18872   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18873   int UNUSED written = 0;
18874   IADDR UNUSED pc = abuf->addr;
18875   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18876
18877 {
18878   {
18879     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)));
18880     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18881     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18882   }
18883   {
18884     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))));
18885     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18886     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18887   }
18888 }
18889
18890   return vpc;
18891 #undef FLD
18892 }
18893
18894 /* fdsads: fdsads$pack $FRi,$FRj,$FRk */
18895
18896 static SEM_PC
18897 SEM_FN_NAME (frvbf,fdsads) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18898 {
18899 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18900   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18901   int UNUSED written = 0;
18902   IADDR UNUSED pc = abuf->addr;
18903   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18904
18905 {
18906   {
18907     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)));
18908     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18909     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18910   }
18911   {
18912     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))));
18913     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18914     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18915   }
18916 }
18917
18918   return vpc;
18919 #undef FLD
18920 }
18921
18922 /* fdmulcs: fdmulcs$pack $FRi,$FRj,$FRk */
18923
18924 static SEM_PC
18925 SEM_FN_NAME (frvbf,fdmulcs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18926 {
18927 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18928   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18929   int UNUSED written = 0;
18930   IADDR UNUSED pc = abuf->addr;
18931   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18932
18933 {
18934   {
18935     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))));
18936     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18937     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18938   }
18939   {
18940     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)));
18941     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18942     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18943   }
18944 }
18945
18946   return vpc;
18947 #undef FLD
18948 }
18949
18950 /* nfdmulcs: nfdmulcs$pack $FRi,$FRj,$FRk */
18951
18952 static SEM_PC
18953 SEM_FN_NAME (frvbf,nfdmulcs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18954 {
18955 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18956   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18957   int UNUSED written = 0;
18958   IADDR UNUSED pc = abuf->addr;
18959   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18960
18961 {
18962 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18963   {
18964     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))));
18965     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18966     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18967   }
18968 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18969   {
18970     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)));
18971     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18972     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18973   }
18974 }
18975
18976   return vpc;
18977 #undef FLD
18978 }
18979
18980 /* nfdadds: nfdadds$pack $FRi,$FRj,$FRk */
18981
18982 static SEM_PC
18983 SEM_FN_NAME (frvbf,nfdadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18984 {
18985 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18986   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18987   int UNUSED written = 0;
18988   IADDR UNUSED pc = abuf->addr;
18989   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18990
18991 {
18992 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18993   {
18994     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)));
18995     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18996     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18997   }
18998 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18999   {
19000     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))));
19001     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
19002     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
19003   }
19004 }
19005
19006   return vpc;
19007 #undef FLD
19008 }
19009
19010 /* nfdsubs: nfdsubs$pack $FRi,$FRj,$FRk */
19011
19012 static SEM_PC
19013 SEM_FN_NAME (frvbf,nfdsubs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19014 {
19015 #define FLD(f) abuf->fields.sfmt_fdmadds.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 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
19023   {
19024     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)));
19025     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
19026     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
19027   }
19028 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
19029   {
19030     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))));
19031     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
19032     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
19033   }
19034 }
19035
19036   return vpc;
19037 #undef FLD
19038 }
19039
19040 /* nfdmuls: nfdmuls$pack $FRi,$FRj,$FRk */
19041
19042 static SEM_PC
19043 SEM_FN_NAME (frvbf,nfdmuls) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19044 {
19045 #define FLD(f) abuf->fields.sfmt_fdmadds.f
19046   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19047   int UNUSED written = 0;
19048   IADDR UNUSED pc = abuf->addr;
19049   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19050
19051 {
19052 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
19053   {
19054     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)));
19055     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
19056     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
19057   }
19058 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
19059   {
19060     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))));
19061     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
19062     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
19063   }
19064 }
19065
19066   return vpc;
19067 #undef FLD
19068 }
19069
19070 /* nfddivs: nfddivs$pack $FRi,$FRj,$FRk */
19071
19072 static SEM_PC
19073 SEM_FN_NAME (frvbf,nfddivs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19074 {
19075 #define FLD(f) abuf->fields.sfmt_fdmadds.f
19076   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19077   int UNUSED written = 0;
19078   IADDR UNUSED pc = abuf->addr;
19079   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19080
19081 {
19082 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
19083   {
19084     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)));
19085     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
19086     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
19087   }
19088 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
19089   {
19090     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))));
19091     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
19092     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
19093   }
19094 }
19095
19096   return vpc;
19097 #undef FLD
19098 }
19099
19100 /* nfdsads: nfdsads$pack $FRi,$FRj,$FRk */
19101
19102 static SEM_PC
19103 SEM_FN_NAME (frvbf,nfdsads) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19104 {
19105 #define FLD(f) abuf->fields.sfmt_fdmadds.f
19106   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19107   int UNUSED written = 0;
19108   IADDR UNUSED pc = abuf->addr;
19109   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19110
19111 {
19112 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
19113   {
19114     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)));
19115     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
19116     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
19117   }
19118 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
19119   {
19120     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))));
19121     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
19122     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
19123   }
19124 }
19125
19126   return vpc;
19127 #undef FLD
19128 }
19129
19130 /* nfdcmps: nfdcmps$pack $FRi,$FRj,$FCCi_2 */
19131
19132 static SEM_PC
19133 SEM_FN_NAME (frvbf,nfdcmps) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19134 {
19135 #define FLD(f) abuf->fields.sfmt_nfdcmps.f
19136   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19137   int UNUSED written = 0;
19138   IADDR UNUSED pc = abuf->addr;
19139   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19140
19141 {
19142 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
19143 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)))) {
19144   {
19145     UQI opval = 2;
19146     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
19147     written |= (1 << 8);
19148     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
19149   }
19150 } else {
19151 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)))) {
19152   {
19153     UQI opval = 8;
19154     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
19155     written |= (1 << 8);
19156     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
19157   }
19158 } else {
19159 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)))) {
19160   {
19161     UQI opval = 4;
19162     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
19163     written |= (1 << 8);
19164     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
19165   }
19166 } else {
19167   {
19168     UQI opval = 1;
19169     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
19170     written |= (1 << 8);
19171     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
19172   }
19173 }
19174 }
19175 }
19176 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
19177 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))))) {
19178   {
19179     UQI opval = 2;
19180     sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCi_2)) + (1))]), opval);
19181     written |= (1 << 9);
19182     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
19183   }
19184 } else {
19185 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))))) {
19186   {
19187     UQI opval = 8;
19188     sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCi_2)) + (1))]), opval);
19189     written |= (1 << 9);
19190     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
19191   }
19192 } else {
19193 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))))) {
19194   {
19195     UQI opval = 4;
19196     sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCi_2)) + (1))]), opval);
19197     written |= (1 << 9);
19198     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
19199   }
19200 } else {
19201   {
19202     UQI opval = 1;
19203     sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCi_2)) + (1))]), opval);
19204     written |= (1 << 9);
19205     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
19206   }
19207 }
19208 }
19209 }
19210 }
19211
19212   abuf->written = written;
19213   return vpc;
19214 #undef FLD
19215 }
19216
19217 /* mhsetlos: mhsetlos$pack $u12,$FRklo */
19218
19219 static SEM_PC
19220 SEM_FN_NAME (frvbf,mhsetlos) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19221 {
19222 #define FLD(f) abuf->fields.sfmt_mhsetlos.f
19223   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19224   int UNUSED written = 0;
19225   IADDR UNUSED pc = abuf->addr;
19226   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19227
19228   {
19229     UHI opval = FLD (f_u12);
19230     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, FLD (f_FRk), opval);
19231     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19232   }
19233
19234   return vpc;
19235 #undef FLD
19236 }
19237
19238 /* mhsethis: mhsethis$pack $u12,$FRkhi */
19239
19240 static SEM_PC
19241 SEM_FN_NAME (frvbf,mhsethis) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19242 {
19243 #define FLD(f) abuf->fields.sfmt_mhsethis.f
19244   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19245   int UNUSED written = 0;
19246   IADDR UNUSED pc = abuf->addr;
19247   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19248
19249   {
19250     UHI opval = FLD (f_u12);
19251     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, FLD (f_FRk), opval);
19252     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19253   }
19254
19255   return vpc;
19256 #undef FLD
19257 }
19258
19259 /* mhdsets: mhdsets$pack $u12,$FRintk */
19260
19261 static SEM_PC
19262 SEM_FN_NAME (frvbf,mhdsets) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19263 {
19264 #define FLD(f) abuf->fields.sfmt_mhdsets.f
19265   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19266   int UNUSED written = 0;
19267   IADDR UNUSED pc = abuf->addr;
19268   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19269
19270 {
19271   {
19272     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
19273     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19274     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19275   }
19276   {
19277     UHI opval = FLD (f_u12);
19278     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
19279     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19280   }
19281   {
19282     UHI opval = FLD (f_u12);
19283     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
19284     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19285   }
19286 }
19287
19288   return vpc;
19289 #undef FLD
19290 }
19291
19292 /* mhsetloh: mhsetloh$pack $s5,$FRklo */
19293
19294 static SEM_PC
19295 SEM_FN_NAME (frvbf,mhsetloh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19296 {
19297 #define FLD(f) abuf->fields.sfmt_mhsetloh.f
19298   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19299   int UNUSED written = 0;
19300   IADDR UNUSED pc = abuf->addr;
19301   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19302
19303 {
19304   HI tmp_tmp;
19305   tmp_tmp = GET_H_FR_LO (FLD (f_FRk));
19306   tmp_tmp = ANDHI (tmp_tmp, 2047);
19307   tmp_tmp = ORHI (tmp_tmp, SLLSI (ANDSI (FLD (f_s5), 31), 11));
19308   {
19309     UHI opval = tmp_tmp;
19310     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, FLD (f_FRk), opval);
19311     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19312   }
19313 }
19314
19315   return vpc;
19316 #undef FLD
19317 }
19318
19319 /* mhsethih: mhsethih$pack $s5,$FRkhi */
19320
19321 static SEM_PC
19322 SEM_FN_NAME (frvbf,mhsethih) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19323 {
19324 #define FLD(f) abuf->fields.sfmt_mhsethih.f
19325   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19326   int UNUSED written = 0;
19327   IADDR UNUSED pc = abuf->addr;
19328   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19329
19330 {
19331   HI tmp_tmp;
19332   tmp_tmp = GET_H_FR_HI (FLD (f_FRk));
19333   tmp_tmp = ANDHI (tmp_tmp, 2047);
19334   tmp_tmp = ORHI (tmp_tmp, SLLSI (ANDSI (FLD (f_s5), 31), 11));
19335   {
19336     UHI opval = tmp_tmp;
19337     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, FLD (f_FRk), opval);
19338     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19339   }
19340 }
19341
19342   return vpc;
19343 #undef FLD
19344 }
19345
19346 /* mhdseth: mhdseth$pack $s5,$FRintk */
19347
19348 static SEM_PC
19349 SEM_FN_NAME (frvbf,mhdseth) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19350 {
19351 #define FLD(f) abuf->fields.sfmt_mhdseth.f
19352   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19353   int UNUSED written = 0;
19354   IADDR UNUSED pc = abuf->addr;
19355   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19356
19357 {
19358   {
19359     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
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   HI tmp_tmp;
19365   tmp_tmp = GET_H_FR_HI (((FLD (f_FRk)) + (0)));
19366   tmp_tmp = ANDHI (tmp_tmp, 2047);
19367   tmp_tmp = ORHI (tmp_tmp, SLLSI (ANDSI (FLD (f_s5), 31), 11));
19368   {
19369     UHI opval = tmp_tmp;
19370     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
19371     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19372   }
19373 }
19374 {
19375   HI tmp_tmp;
19376   tmp_tmp = GET_H_FR_LO (((FLD (f_FRk)) + (0)));
19377   tmp_tmp = ANDHI (tmp_tmp, 2047);
19378   tmp_tmp = ORHI (tmp_tmp, SLLSI (ANDSI (FLD (f_s5), 31), 11));
19379   {
19380     UHI opval = tmp_tmp;
19381     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
19382     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19383   }
19384 }
19385 }
19386
19387   return vpc;
19388 #undef FLD
19389 }
19390
19391 /* mand: mand$pack $FRinti,$FRintj,$FRintk */
19392
19393 static SEM_PC
19394 SEM_FN_NAME (frvbf,mand) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19395 {
19396 #define FLD(f) abuf->fields.sfmt_mwcut.f
19397   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19398   int UNUSED written = 0;
19399   IADDR UNUSED pc = abuf->addr;
19400   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19401
19402   {
19403     SI opval = ANDSI (GET_H_FR_INT (FLD (f_FRi)), GET_H_FR_INT (FLD (f_FRj)));
19404     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19405     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19406   }
19407
19408   return vpc;
19409 #undef FLD
19410 }
19411
19412 /* mor: mor$pack $FRinti,$FRintj,$FRintk */
19413
19414 static SEM_PC
19415 SEM_FN_NAME (frvbf,mor) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19416 {
19417 #define FLD(f) abuf->fields.sfmt_mwcut.f
19418   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19419   int UNUSED written = 0;
19420   IADDR UNUSED pc = abuf->addr;
19421   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19422
19423   {
19424     SI opval = ORSI (GET_H_FR_INT (FLD (f_FRi)), GET_H_FR_INT (FLD (f_FRj)));
19425     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19426     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19427   }
19428
19429   return vpc;
19430 #undef FLD
19431 }
19432
19433 /* mxor: mxor$pack $FRinti,$FRintj,$FRintk */
19434
19435 static SEM_PC
19436 SEM_FN_NAME (frvbf,mxor) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19437 {
19438 #define FLD(f) abuf->fields.sfmt_mwcut.f
19439   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19440   int UNUSED written = 0;
19441   IADDR UNUSED pc = abuf->addr;
19442   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19443
19444   {
19445     SI opval = XORSI (GET_H_FR_INT (FLD (f_FRi)), GET_H_FR_INT (FLD (f_FRj)));
19446     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19447     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19448   }
19449
19450   return vpc;
19451 #undef FLD
19452 }
19453
19454 /* cmand: cmand$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
19455
19456 static SEM_PC
19457 SEM_FN_NAME (frvbf,cmand) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19458 {
19459 #define FLD(f) abuf->fields.sfmt_cmand.f
19460   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19461   int UNUSED written = 0;
19462   IADDR UNUSED pc = abuf->addr;
19463   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19464
19465 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
19466   {
19467     SI opval = ANDSI (GET_H_FR_INT (FLD (f_FRi)), GET_H_FR_INT (FLD (f_FRj)));
19468     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19469     written |= (1 << 4);
19470     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19471   }
19472 }
19473
19474   abuf->written = written;
19475   return vpc;
19476 #undef FLD
19477 }
19478
19479 /* cmor: cmor$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
19480
19481 static SEM_PC
19482 SEM_FN_NAME (frvbf,cmor) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19483 {
19484 #define FLD(f) abuf->fields.sfmt_cmand.f
19485   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19486   int UNUSED written = 0;
19487   IADDR UNUSED pc = abuf->addr;
19488   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19489
19490 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
19491   {
19492     SI opval = ORSI (GET_H_FR_INT (FLD (f_FRi)), GET_H_FR_INT (FLD (f_FRj)));
19493     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19494     written |= (1 << 4);
19495     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19496   }
19497 }
19498
19499   abuf->written = written;
19500   return vpc;
19501 #undef FLD
19502 }
19503
19504 /* cmxor: cmxor$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
19505
19506 static SEM_PC
19507 SEM_FN_NAME (frvbf,cmxor) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19508 {
19509 #define FLD(f) abuf->fields.sfmt_cmand.f
19510   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19511   int UNUSED written = 0;
19512   IADDR UNUSED pc = abuf->addr;
19513   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19514
19515 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
19516   {
19517     SI opval = XORSI (GET_H_FR_INT (FLD (f_FRi)), GET_H_FR_INT (FLD (f_FRj)));
19518     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19519     written |= (1 << 4);
19520     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19521   }
19522 }
19523
19524   abuf->written = written;
19525   return vpc;
19526 #undef FLD
19527 }
19528
19529 /* mnot: mnot$pack $FRintj,$FRintk */
19530
19531 static SEM_PC
19532 SEM_FN_NAME (frvbf,mnot) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19533 {
19534 #define FLD(f) abuf->fields.sfmt_mcut.f
19535   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19536   int UNUSED written = 0;
19537   IADDR UNUSED pc = abuf->addr;
19538   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19539
19540   {
19541     SI opval = INVSI (GET_H_FR_INT (FLD (f_FRj)));
19542     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19543     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19544   }
19545
19546   return vpc;
19547 #undef FLD
19548 }
19549
19550 /* cmnot: cmnot$pack $FRintj,$FRintk,$CCi,$cond */
19551
19552 static SEM_PC
19553 SEM_FN_NAME (frvbf,cmnot) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19554 {
19555 #define FLD(f) abuf->fields.sfmt_cmand.f
19556   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19557   int UNUSED written = 0;
19558   IADDR UNUSED pc = abuf->addr;
19559   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19560
19561 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
19562   {
19563     SI opval = INVSI (GET_H_FR_INT (FLD (f_FRj)));
19564     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19565     written |= (1 << 3);
19566     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19567   }
19568 }
19569
19570   abuf->written = written;
19571   return vpc;
19572 #undef FLD
19573 }
19574
19575 /* mrotli: mrotli$pack $FRinti,$u6,$FRintk */
19576
19577 static SEM_PC
19578 SEM_FN_NAME (frvbf,mrotli) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19579 {
19580 #define FLD(f) abuf->fields.sfmt_mwcuti.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     SI opval = ROLSI (GET_H_FR_INT (FLD (f_FRi)), ANDSI (FLD (f_u6), 31));
19588     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19589     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19590   }
19591
19592   return vpc;
19593 #undef FLD
19594 }
19595
19596 /* mrotri: mrotri$pack $FRinti,$u6,$FRintk */
19597
19598 static SEM_PC
19599 SEM_FN_NAME (frvbf,mrotri) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19600 {
19601 #define FLD(f) abuf->fields.sfmt_mwcuti.f
19602   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19603   int UNUSED written = 0;
19604   IADDR UNUSED pc = abuf->addr;
19605   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19606
19607   {
19608     SI opval = RORSI (GET_H_FR_INT (FLD (f_FRi)), ANDSI (FLD (f_u6), 31));
19609     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19610     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19611   }
19612
19613   return vpc;
19614 #undef FLD
19615 }
19616
19617 /* mwcut: mwcut$pack $FRinti,$FRintj,$FRintk */
19618
19619 static SEM_PC
19620 SEM_FN_NAME (frvbf,mwcut) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19621 {
19622 #define FLD(f) abuf->fields.sfmt_mwcut.f
19623   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19624   int UNUSED written = 0;
19625   IADDR UNUSED pc = abuf->addr;
19626   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19627
19628   {
19629     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)));
19630     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19631     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19632   }
19633
19634   return vpc;
19635 #undef FLD
19636 }
19637
19638 /* mwcuti: mwcuti$pack $FRinti,$u6,$FRintk */
19639
19640 static SEM_PC
19641 SEM_FN_NAME (frvbf,mwcuti) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19642 {
19643 #define FLD(f) abuf->fields.sfmt_mwcuti.f
19644   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19645   int UNUSED written = 0;
19646   IADDR UNUSED pc = abuf->addr;
19647   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19648
19649   {
19650     SI opval = frvbf_cut (current_cpu, GET_H_FR_INT (FLD (f_FRi)), GET_H_FR_INT (((FLD (f_FRi)) + (1))), FLD (f_u6));
19651     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19652     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19653   }
19654
19655   return vpc;
19656 #undef FLD
19657 }
19658
19659 /* mcut: mcut$pack $ACC40Si,$FRintj,$FRintk */
19660
19661 static SEM_PC
19662 SEM_FN_NAME (frvbf,mcut) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19663 {
19664 #define FLD(f) abuf->fields.sfmt_mcut.f
19665   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19666   int UNUSED written = 0;
19667   IADDR UNUSED pc = abuf->addr;
19668   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19669
19670   {
19671     SI opval = frvbf_media_cut (current_cpu, GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_FR_INT (FLD (f_FRj)));
19672     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19673     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19674   }
19675
19676   return vpc;
19677 #undef FLD
19678 }
19679
19680 /* mcuti: mcuti$pack $ACC40Si,$s6,$FRintk */
19681
19682 static SEM_PC
19683 SEM_FN_NAME (frvbf,mcuti) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19684 {
19685 #define FLD(f) abuf->fields.sfmt_mcuti.f
19686   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19687   int UNUSED written = 0;
19688   IADDR UNUSED pc = abuf->addr;
19689   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19690
19691   {
19692     SI opval = frvbf_media_cut (current_cpu, GET_H_ACC40S (FLD (f_ACC40Si)), FLD (f_s6));
19693     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19694     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19695   }
19696
19697   return vpc;
19698 #undef FLD
19699 }
19700
19701 /* mcutss: mcutss$pack $ACC40Si,$FRintj,$FRintk */
19702
19703 static SEM_PC
19704 SEM_FN_NAME (frvbf,mcutss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19705 {
19706 #define FLD(f) abuf->fields.sfmt_mcut.f
19707   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19708   int UNUSED written = 0;
19709   IADDR UNUSED pc = abuf->addr;
19710   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19711
19712   {
19713     SI opval = frvbf_media_cut_ss (current_cpu, GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_FR_INT (FLD (f_FRj)));
19714     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19715     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19716   }
19717
19718   return vpc;
19719 #undef FLD
19720 }
19721
19722 /* mcutssi: mcutssi$pack $ACC40Si,$s6,$FRintk */
19723
19724 static SEM_PC
19725 SEM_FN_NAME (frvbf,mcutssi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19726 {
19727 #define FLD(f) abuf->fields.sfmt_mcuti.f
19728   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19729   int UNUSED written = 0;
19730   IADDR UNUSED pc = abuf->addr;
19731   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19732
19733   {
19734     SI opval = frvbf_media_cut_ss (current_cpu, GET_H_ACC40S (FLD (f_ACC40Si)), FLD (f_s6));
19735     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19736     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19737   }
19738
19739   return vpc;
19740 #undef FLD
19741 }
19742
19743 /* mdcutssi: mdcutssi$pack $ACC40Si,$s6,$FRintkeven */
19744
19745 static SEM_PC
19746 SEM_FN_NAME (frvbf,mdcutssi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19747 {
19748 #define FLD(f) abuf->fields.sfmt_mdcutssi.f
19749   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19750   int UNUSED written = 0;
19751   IADDR UNUSED pc = abuf->addr;
19752   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19753
19754 if (ANDSI (FLD (f_ACC40Si), SUBSI (2, 1))) {
19755 frvbf_media_acc_not_aligned (current_cpu);
19756 } else {
19757 if (ANDSI (FLD (f_FRk), SUBSI (2, 1))) {
19758 frvbf_media_register_not_aligned (current_cpu);
19759 } else {
19760 {
19761   {
19762     SI opval = frvbf_media_cut_ss (current_cpu, GET_H_ACC40S (FLD (f_ACC40Si)), FLD (f_s6));
19763     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19764     written |= (1 << 5);
19765     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19766   }
19767   {
19768     USI opval = frvbf_media_cut_ss (current_cpu, GET_H_ACC40S (((FLD (f_ACC40Si)) + (1))), FLD (f_s6));
19769     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (1)), opval);
19770     written |= (1 << 6);
19771     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19772   }
19773 }
19774 }
19775 }
19776
19777   abuf->written = written;
19778   return vpc;
19779 #undef FLD
19780 }
19781
19782 /* maveh: maveh$pack $FRinti,$FRintj,$FRintk */
19783
19784 static SEM_PC
19785 SEM_FN_NAME (frvbf,maveh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19786 {
19787 #define FLD(f) abuf->fields.sfmt_mwcut.f
19788   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19789   int UNUSED written = 0;
19790   IADDR UNUSED pc = abuf->addr;
19791   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19792
19793   {
19794     SI opval = frvbf_media_average (current_cpu, GET_H_FR_INT (FLD (f_FRi)), GET_H_FR_INT (FLD (f_FRj)));
19795     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19796     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19797   }
19798
19799   return vpc;
19800 #undef FLD
19801 }
19802
19803 /* msllhi: msllhi$pack $FRinti,$u6,$FRintk */
19804
19805 static SEM_PC
19806 SEM_FN_NAME (frvbf,msllhi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19807 {
19808 #define FLD(f) abuf->fields.sfmt_msllhi.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   {
19816     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRi)));
19817     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRi), opval);
19818     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19819   }
19820   {
19821     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
19822     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19823     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19824   }
19825   {
19826     UHI opval = SLLHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), ANDSI (FLD (f_u6), 15));
19827     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
19828     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19829   }
19830   {
19831     UHI opval = SLLHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), ANDSI (FLD (f_u6), 15));
19832     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
19833     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19834   }
19835 }
19836
19837   return vpc;
19838 #undef FLD
19839 }
19840
19841 /* msrlhi: msrlhi$pack $FRinti,$u6,$FRintk */
19842
19843 static SEM_PC
19844 SEM_FN_NAME (frvbf,msrlhi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19845 {
19846 #define FLD(f) abuf->fields.sfmt_msllhi.f
19847   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19848   int UNUSED written = 0;
19849   IADDR UNUSED pc = abuf->addr;
19850   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19851
19852 {
19853   {
19854     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRi)));
19855     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRi), opval);
19856     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19857   }
19858   {
19859     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
19860     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19861     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19862   }
19863   {
19864     UHI opval = SRLHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), ANDSI (FLD (f_u6), 15));
19865     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
19866     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19867   }
19868   {
19869     UHI opval = SRLHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), ANDSI (FLD (f_u6), 15));
19870     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
19871     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19872   }
19873 }
19874
19875   return vpc;
19876 #undef FLD
19877 }
19878
19879 /* msrahi: msrahi$pack $FRinti,$u6,$FRintk */
19880
19881 static SEM_PC
19882 SEM_FN_NAME (frvbf,msrahi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19883 {
19884 #define FLD(f) abuf->fields.sfmt_msllhi.f
19885   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19886   int UNUSED written = 0;
19887   IADDR UNUSED pc = abuf->addr;
19888   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19889
19890 {
19891   {
19892     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRi)));
19893     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRi), opval);
19894     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19895   }
19896   {
19897     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
19898     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19899     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19900   }
19901   {
19902     UHI opval = SRAHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), ANDSI (FLD (f_u6), 15));
19903     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
19904     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19905   }
19906   {
19907     UHI opval = SRAHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), ANDSI (FLD (f_u6), 15));
19908     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
19909     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19910   }
19911 }
19912
19913   return vpc;
19914 #undef FLD
19915 }
19916
19917 /* mdrotli: mdrotli$pack $FRintieven,$s6,$FRintkeven */
19918
19919 static SEM_PC
19920 SEM_FN_NAME (frvbf,mdrotli) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19921 {
19922 #define FLD(f) abuf->fields.sfmt_mdrotli.f
19923   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19924   int UNUSED written = 0;
19925   IADDR UNUSED pc = abuf->addr;
19926   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19927
19928 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1)))) {
19929 frvbf_media_register_not_aligned (current_cpu);
19930 } else {
19931 {
19932   {
19933     SI opval = ROLSI (GET_H_FR_INT (FLD (f_FRi)), ANDSI (FLD (f_s6), 31));
19934     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19935     written |= (1 << 5);
19936     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19937   }
19938   {
19939     USI opval = ROLSI (GET_H_FR_INT (((FLD (f_FRi)) + (1))), ANDSI (FLD (f_s6), 31));
19940     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (1)), opval);
19941     written |= (1 << 6);
19942     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19943   }
19944 }
19945 }
19946
19947   abuf->written = written;
19948   return vpc;
19949 #undef FLD
19950 }
19951
19952 /* mcplhi: mcplhi$pack $FRinti,$u6,$FRintk */
19953
19954 static SEM_PC
19955 SEM_FN_NAME (frvbf,mcplhi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19956 {
19957 #define FLD(f) abuf->fields.sfmt_mcplhi.f
19958   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19959   int UNUSED written = 0;
19960   IADDR UNUSED pc = abuf->addr;
19961   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19962
19963 {
19964   HI tmp_arg1;
19965   HI tmp_arg2;
19966   HI tmp_shift;
19967   {
19968     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRi)));
19969     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRi), opval);
19970     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19971   }
19972   {
19973     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
19974     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19975     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19976   }
19977   tmp_shift = ANDSI (FLD (f_u6), 15);
19978   tmp_arg1 = SLLHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), tmp_shift);
19979 if (NEHI (tmp_shift, 0)) {
19980 {
19981   tmp_arg2 = GET_H_FR_HI (((FLD (f_FRi)) + (1)));
19982   tmp_arg2 = SRLHI (SLLHI (tmp_arg2, SUBSI (15, tmp_shift)), SUBSI (15, tmp_shift));
19983   tmp_arg1 = ORHI (tmp_arg1, tmp_arg2);
19984 }
19985 }
19986   {
19987     UHI opval = tmp_arg1;
19988     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
19989     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19990   }
19991 }
19992
19993   return vpc;
19994 #undef FLD
19995 }
19996
19997 /* mcpli: mcpli$pack $FRinti,$u6,$FRintk */
19998
19999 static SEM_PC
20000 SEM_FN_NAME (frvbf,mcpli) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20001 {
20002 #define FLD(f) abuf->fields.sfmt_mwcuti.f
20003   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20004   int UNUSED written = 0;
20005   IADDR UNUSED pc = abuf->addr;
20006   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20007
20008 {
20009   SI tmp_tmp;
20010   SI tmp_shift;
20011   tmp_shift = ANDSI (FLD (f_u6), 31);
20012   tmp_tmp = SLLSI (GET_H_FR_INT (FLD (f_FRi)), tmp_shift);
20013 if (NESI (tmp_shift, 0)) {
20014 {
20015   SI tmp_tmp1;
20016   tmp_tmp1 = SRLSI (SLLSI (GET_H_FR_INT (((FLD (f_FRi)) + (1))), SUBSI (31, tmp_shift)), SUBSI (31, tmp_shift));
20017   tmp_tmp = ORSI (tmp_tmp, tmp_tmp1);
20018 }
20019 }
20020   {
20021     SI opval = tmp_tmp;
20022     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
20023     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
20024   }
20025 }
20026
20027   return vpc;
20028 #undef FLD
20029 }
20030
20031 /* msaths: msaths$pack $FRinti,$FRintj,$FRintk */
20032
20033 static SEM_PC
20034 SEM_FN_NAME (frvbf,msaths) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20035 {
20036 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
20037   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20038   int UNUSED written = 0;
20039   IADDR UNUSED pc = abuf->addr;
20040   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20041
20042 {
20043   HI tmp_argihi;
20044   HI tmp_argilo;
20045   HI tmp_argjhi;
20046   HI tmp_argjlo;
20047 {
20048   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20049   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20050   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20051   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20052 }
20053 if (GTHI (tmp_argihi, tmp_argjhi)) {
20054   {
20055     UHI opval = tmp_argjhi;
20056     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20057     written |= (1 << 9);
20058     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20059   }
20060 } else {
20061 if (LTHI (tmp_argihi, INVHI (tmp_argjhi))) {
20062   {
20063     UHI opval = INVHI (tmp_argjhi);
20064     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20065     written |= (1 << 9);
20066     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20067   }
20068 } else {
20069   {
20070     UHI opval = tmp_argihi;
20071     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20072     written |= (1 << 9);
20073     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20074   }
20075 }
20076 }
20077 if (GTHI (tmp_argilo, tmp_argjlo)) {
20078   {
20079     UHI opval = tmp_argjlo;
20080     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20081     written |= (1 << 10);
20082     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20083   }
20084 } else {
20085 if (LTHI (tmp_argilo, INVHI (tmp_argjlo))) {
20086   {
20087     UHI opval = INVHI (tmp_argjlo);
20088     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20089     written |= (1 << 10);
20090     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20091   }
20092 } else {
20093   {
20094     UHI opval = tmp_argilo;
20095     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20096     written |= (1 << 10);
20097     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20098   }
20099 }
20100 }
20101 }
20102
20103   abuf->written = written;
20104   return vpc;
20105 #undef FLD
20106 }
20107
20108 /* mqsaths: mqsaths$pack $FRintieven,$FRintjeven,$FRintkeven */
20109
20110 static SEM_PC
20111 SEM_FN_NAME (frvbf,mqsaths) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20112 {
20113 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
20114   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20115   int UNUSED written = 0;
20116   IADDR UNUSED pc = abuf->addr;
20117   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20118
20119 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
20120 frvbf_media_register_not_aligned (current_cpu);
20121 } else {
20122 {
20123   HI tmp_argihi;
20124   HI tmp_argilo;
20125   HI tmp_argjhi;
20126   HI tmp_argjlo;
20127   {
20128     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
20129     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
20130     written |= (1 << 14);
20131     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
20132   }
20133 {
20134   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20135   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20136   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20137   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20138 }
20139 if (GTHI (tmp_argihi, tmp_argjhi)) {
20140   {
20141     UHI opval = tmp_argjhi;
20142     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20143     written |= (1 << 15);
20144     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20145   }
20146 } else {
20147 if (LTHI (tmp_argihi, INVHI (tmp_argjhi))) {
20148   {
20149     UHI opval = INVHI (tmp_argjhi);
20150     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20151     written |= (1 << 15);
20152     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20153   }
20154 } else {
20155   {
20156     UHI opval = tmp_argihi;
20157     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20158     written |= (1 << 15);
20159     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20160   }
20161 }
20162 }
20163 if (GTHI (tmp_argilo, tmp_argjlo)) {
20164   {
20165     UHI opval = tmp_argjlo;
20166     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20167     written |= (1 << 17);
20168     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20169   }
20170 } else {
20171 if (LTHI (tmp_argilo, INVHI (tmp_argjlo))) {
20172   {
20173     UHI opval = INVHI (tmp_argjlo);
20174     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20175     written |= (1 << 17);
20176     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20177   }
20178 } else {
20179   {
20180     UHI opval = tmp_argilo;
20181     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20182     written |= (1 << 17);
20183     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20184   }
20185 }
20186 }
20187 {
20188   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20189   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20190   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20191   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20192 }
20193 if (GTHI (tmp_argihi, tmp_argjhi)) {
20194   {
20195     UHI opval = tmp_argjhi;
20196     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
20197     written |= (1 << 16);
20198     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20199   }
20200 } else {
20201 if (LTHI (tmp_argihi, INVHI (tmp_argjhi))) {
20202   {
20203     UHI opval = INVHI (tmp_argjhi);
20204     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
20205     written |= (1 << 16);
20206     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20207   }
20208 } else {
20209   {
20210     UHI opval = tmp_argihi;
20211     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
20212     written |= (1 << 16);
20213     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20214   }
20215 }
20216 }
20217 if (GTHI (tmp_argilo, tmp_argjlo)) {
20218   {
20219     UHI opval = tmp_argjlo;
20220     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
20221     written |= (1 << 18);
20222     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20223   }
20224 } else {
20225 if (LTHI (tmp_argilo, INVHI (tmp_argjlo))) {
20226   {
20227     UHI opval = INVHI (tmp_argjlo);
20228     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
20229     written |= (1 << 18);
20230     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20231   }
20232 } else {
20233   {
20234     UHI opval = tmp_argilo;
20235     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
20236     written |= (1 << 18);
20237     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20238   }
20239 }
20240 }
20241 }
20242 }
20243
20244   abuf->written = written;
20245   return vpc;
20246 #undef FLD
20247 }
20248
20249 /* msathu: msathu$pack $FRinti,$FRintj,$FRintk */
20250
20251 static SEM_PC
20252 SEM_FN_NAME (frvbf,msathu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20253 {
20254 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
20255   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20256   int UNUSED written = 0;
20257   IADDR UNUSED pc = abuf->addr;
20258   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20259
20260 {
20261   UHI tmp_argihi;
20262   UHI tmp_argilo;
20263   UHI tmp_argjhi;
20264   UHI tmp_argjlo;
20265 {
20266   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20267   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20268   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20269   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20270 }
20271 if (GTUHI (tmp_argihi, tmp_argjhi)) {
20272   {
20273     UHI opval = tmp_argjhi;
20274     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20275     written |= (1 << 9);
20276     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20277   }
20278 } else {
20279   {
20280     UHI opval = tmp_argihi;
20281     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20282     written |= (1 << 9);
20283     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20284   }
20285 }
20286 if (GTUHI (tmp_argilo, tmp_argjlo)) {
20287   {
20288     UHI opval = tmp_argjlo;
20289     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20290     written |= (1 << 10);
20291     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20292   }
20293 } else {
20294   {
20295     UHI opval = tmp_argilo;
20296     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20297     written |= (1 << 10);
20298     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20299   }
20300 }
20301 }
20302
20303   abuf->written = written;
20304   return vpc;
20305 #undef FLD
20306 }
20307
20308 /* mcmpsh: mcmpsh$pack $FRinti,$FRintj,$FCCk */
20309
20310 static SEM_PC
20311 SEM_FN_NAME (frvbf,mcmpsh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20312 {
20313 #define FLD(f) abuf->fields.sfmt_mcmpsh.f
20314   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20315   int UNUSED written = 0;
20316   IADDR UNUSED pc = abuf->addr;
20317   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20318
20319 if (ANDSI (FLD (f_FCCk), SUBSI (2, 1))) {
20320 frvbf_media_cr_not_aligned (current_cpu);
20321 } else {
20322 {
20323   HI tmp_argihi;
20324   HI tmp_argilo;
20325   HI tmp_argjhi;
20326   HI tmp_argjlo;
20327 {
20328   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20329   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20330   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20331   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20332 }
20333 if (GTHI (tmp_argihi, tmp_argjhi)) {
20334   {
20335     UQI opval = 2;
20336     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCk)]), opval);
20337     written |= (1 << 9);
20338     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20339   }
20340 } else {
20341 if (EQHI (tmp_argihi, tmp_argjhi)) {
20342   {
20343     UQI opval = 8;
20344     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCk)]), opval);
20345     written |= (1 << 9);
20346     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20347   }
20348 } else {
20349 if (LTHI (tmp_argihi, tmp_argjhi)) {
20350   {
20351     UQI opval = 4;
20352     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCk)]), opval);
20353     written |= (1 << 9);
20354     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20355   }
20356 } else {
20357   {
20358     UQI opval = 1;
20359     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCk)]), opval);
20360     written |= (1 << 9);
20361     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20362   }
20363 }
20364 }
20365 }
20366 if (GTHI (tmp_argilo, tmp_argjlo)) {
20367   {
20368     UQI opval = 2;
20369     sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCk)) + (1))]), opval);
20370     written |= (1 << 10);
20371     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20372   }
20373 } else {
20374 if (EQHI (tmp_argilo, tmp_argjlo)) {
20375   {
20376     UQI opval = 8;
20377     sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCk)) + (1))]), opval);
20378     written |= (1 << 10);
20379     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20380   }
20381 } else {
20382 if (LTHI (tmp_argilo, tmp_argjlo)) {
20383   {
20384     UQI opval = 4;
20385     sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCk)) + (1))]), opval);
20386     written |= (1 << 10);
20387     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20388   }
20389 } else {
20390   {
20391     UQI opval = 1;
20392     sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCk)) + (1))]), opval);
20393     written |= (1 << 10);
20394     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20395   }
20396 }
20397 }
20398 }
20399 }
20400 }
20401
20402   abuf->written = written;
20403   return vpc;
20404 #undef FLD
20405 }
20406
20407 /* mcmpuh: mcmpuh$pack $FRinti,$FRintj,$FCCk */
20408
20409 static SEM_PC
20410 SEM_FN_NAME (frvbf,mcmpuh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20411 {
20412 #define FLD(f) abuf->fields.sfmt_mcmpsh.f
20413   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20414   int UNUSED written = 0;
20415   IADDR UNUSED pc = abuf->addr;
20416   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20417
20418 if (ANDSI (FLD (f_FCCk), SUBSI (2, 1))) {
20419 frvbf_media_cr_not_aligned (current_cpu);
20420 } else {
20421 {
20422   UHI tmp_argihi;
20423   UHI tmp_argilo;
20424   UHI tmp_argjhi;
20425   UHI tmp_argjlo;
20426 {
20427   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20428   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20429   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20430   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20431 }
20432 if (GTUHI (tmp_argihi, tmp_argjhi)) {
20433   {
20434     UQI opval = 2;
20435     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCk)]), opval);
20436     written |= (1 << 9);
20437     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20438   }
20439 } else {
20440 if (EQHI (tmp_argihi, tmp_argjhi)) {
20441   {
20442     UQI opval = 8;
20443     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCk)]), opval);
20444     written |= (1 << 9);
20445     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20446   }
20447 } else {
20448 if (LTUHI (tmp_argihi, tmp_argjhi)) {
20449   {
20450     UQI opval = 4;
20451     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCk)]), opval);
20452     written |= (1 << 9);
20453     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20454   }
20455 } else {
20456   {
20457     UQI opval = 1;
20458     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCk)]), opval);
20459     written |= (1 << 9);
20460     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20461   }
20462 }
20463 }
20464 }
20465 if (GTUHI (tmp_argilo, tmp_argjlo)) {
20466   {
20467     UQI opval = 2;
20468     sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCk)) + (1))]), opval);
20469     written |= (1 << 10);
20470     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20471   }
20472 } else {
20473 if (EQHI (tmp_argilo, tmp_argjlo)) {
20474   {
20475     UQI opval = 8;
20476     sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCk)) + (1))]), opval);
20477     written |= (1 << 10);
20478     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20479   }
20480 } else {
20481 if (LTUHI (tmp_argilo, tmp_argjlo)) {
20482   {
20483     UQI opval = 4;
20484     sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCk)) + (1))]), opval);
20485     written |= (1 << 10);
20486     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20487   }
20488 } else {
20489   {
20490     UQI opval = 1;
20491     sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCk)) + (1))]), opval);
20492     written |= (1 << 10);
20493     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20494   }
20495 }
20496 }
20497 }
20498 }
20499 }
20500
20501   abuf->written = written;
20502   return vpc;
20503 #undef FLD
20504 }
20505
20506 /* mabshs: mabshs$pack $FRintj,$FRintk */
20507
20508 static SEM_PC
20509 SEM_FN_NAME (frvbf,mabshs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20510 {
20511 #define FLD(f) abuf->fields.sfmt_mabshs.f
20512   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20513   int UNUSED written = 0;
20514   IADDR UNUSED pc = abuf->addr;
20515   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20516
20517 {
20518   HI tmp_arghi;
20519   HI tmp_arglo;
20520   {
20521     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRj)));
20522     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRj), opval);
20523     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
20524   }
20525   {
20526     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
20527     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
20528     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
20529   }
20530   tmp_arghi = GET_H_FR_HI (((FLD (f_FRj)) + (0)));
20531   tmp_arglo = GET_H_FR_LO (((FLD (f_FRj)) + (0)));
20532 if (GTDI (ABSHI (tmp_arghi), 32767)) {
20533 {
20534   {
20535     UHI opval = 32767;
20536     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20537     written |= (1 << 8);
20538     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20539   }
20540 frvbf_media_overflow (current_cpu, 8);
20541 }
20542 } else {
20543 if (LTDI (ABSHI (tmp_arghi), -32768)) {
20544 {
20545   {
20546     UHI opval = -32768;
20547     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20548     written |= (1 << 8);
20549     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20550   }
20551 frvbf_media_overflow (current_cpu, 8);
20552 }
20553 } else {
20554   {
20555     UHI opval = ABSHI (tmp_arghi);
20556     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20557     written |= (1 << 8);
20558     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20559   }
20560 }
20561 }
20562 if (GTDI (ABSHI (tmp_arglo), 32767)) {
20563 {
20564   {
20565     UHI opval = 32767;
20566     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20567     written |= (1 << 9);
20568     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20569   }
20570 frvbf_media_overflow (current_cpu, 4);
20571 }
20572 } else {
20573 if (LTDI (ABSHI (tmp_arglo), -32768)) {
20574 {
20575   {
20576     UHI opval = -32768;
20577     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20578     written |= (1 << 9);
20579     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20580   }
20581 frvbf_media_overflow (current_cpu, 4);
20582 }
20583 } else {
20584   {
20585     UHI opval = ABSHI (tmp_arglo);
20586     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20587     written |= (1 << 9);
20588     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20589   }
20590 }
20591 }
20592 }
20593
20594   abuf->written = written;
20595   return vpc;
20596 #undef FLD
20597 }
20598
20599 /* maddhss: maddhss$pack $FRinti,$FRintj,$FRintk */
20600
20601 static SEM_PC
20602 SEM_FN_NAME (frvbf,maddhss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20603 {
20604 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
20605   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20606   int UNUSED written = 0;
20607   IADDR UNUSED pc = abuf->addr;
20608   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20609
20610 {
20611   HI tmp_argihi;
20612   HI tmp_argilo;
20613   HI tmp_argjhi;
20614   HI tmp_argjlo;
20615 {
20616   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20617   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20618   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20619   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20620 }
20621 {
20622   DI tmp_tmp;
20623   tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
20624 if (GTDI (tmp_tmp, 32767)) {
20625 {
20626   {
20627     UHI opval = 32767;
20628     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20629     written |= (1 << 9);
20630     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20631   }
20632 frvbf_media_overflow (current_cpu, 8);
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_hi_set, ((FLD (f_FRk)) + (0)), opval);
20640     written |= (1 << 9);
20641     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20642   }
20643 frvbf_media_overflow (current_cpu, 8);
20644 }
20645 } else {
20646   {
20647     UHI opval = tmp_tmp;
20648     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20649     written |= (1 << 9);
20650     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20651   }
20652 }
20653 }
20654 }
20655 {
20656   DI tmp_tmp;
20657   tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
20658 if (GTDI (tmp_tmp, 32767)) {
20659 {
20660   {
20661     UHI opval = 32767;
20662     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20663     written |= (1 << 10);
20664     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20665   }
20666 frvbf_media_overflow (current_cpu, 4);
20667 }
20668 } else {
20669 if (LTDI (tmp_tmp, -32768)) {
20670 {
20671   {
20672     UHI opval = -32768;
20673     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20674     written |= (1 << 10);
20675     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20676   }
20677 frvbf_media_overflow (current_cpu, 4);
20678 }
20679 } else {
20680   {
20681     UHI opval = tmp_tmp;
20682     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20683     written |= (1 << 10);
20684     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20685   }
20686 }
20687 }
20688 }
20689 }
20690
20691   abuf->written = written;
20692   return vpc;
20693 #undef FLD
20694 }
20695
20696 /* maddhus: maddhus$pack $FRinti,$FRintj,$FRintk */
20697
20698 static SEM_PC
20699 SEM_FN_NAME (frvbf,maddhus) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20700 {
20701 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
20702   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20703   int UNUSED written = 0;
20704   IADDR UNUSED pc = abuf->addr;
20705   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20706
20707 {
20708   UHI tmp_argihi;
20709   UHI tmp_argilo;
20710   UHI tmp_argjhi;
20711   UHI tmp_argjlo;
20712 {
20713   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20714   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20715   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20716   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20717 }
20718 {
20719   DI tmp_tmp;
20720   tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
20721 if (GTDI (tmp_tmp, 65535)) {
20722 {
20723   {
20724     UHI opval = 65535;
20725     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20726     written |= (1 << 9);
20727     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20728   }
20729 frvbf_media_overflow (current_cpu, 8);
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_hi_set, ((FLD (f_FRk)) + (0)), opval);
20737     written |= (1 << 9);
20738     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20739   }
20740 frvbf_media_overflow (current_cpu, 8);
20741 }
20742 } else {
20743   {
20744     UHI opval = tmp_tmp;
20745     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20746     written |= (1 << 9);
20747     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20748   }
20749 }
20750 }
20751 }
20752 {
20753   DI tmp_tmp;
20754   tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
20755 if (GTDI (tmp_tmp, 65535)) {
20756 {
20757   {
20758     UHI opval = 65535;
20759     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20760     written |= (1 << 10);
20761     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20762   }
20763 frvbf_media_overflow (current_cpu, 4);
20764 }
20765 } else {
20766 if (LTDI (tmp_tmp, 0)) {
20767 {
20768   {
20769     UHI opval = 0;
20770     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20771     written |= (1 << 10);
20772     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20773   }
20774 frvbf_media_overflow (current_cpu, 4);
20775 }
20776 } else {
20777   {
20778     UHI opval = tmp_tmp;
20779     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20780     written |= (1 << 10);
20781     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20782   }
20783 }
20784 }
20785 }
20786 }
20787
20788   abuf->written = written;
20789   return vpc;
20790 #undef FLD
20791 }
20792
20793 /* msubhss: msubhss$pack $FRinti,$FRintj,$FRintk */
20794
20795 static SEM_PC
20796 SEM_FN_NAME (frvbf,msubhss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20797 {
20798 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
20799   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20800   int UNUSED written = 0;
20801   IADDR UNUSED pc = abuf->addr;
20802   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20803
20804 {
20805   HI tmp_argihi;
20806   HI tmp_argilo;
20807   HI tmp_argjhi;
20808   HI tmp_argjlo;
20809 {
20810   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20811   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20812   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20813   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20814 }
20815 {
20816   DI tmp_tmp;
20817   tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
20818 if (GTDI (tmp_tmp, 32767)) {
20819 {
20820   {
20821     UHI opval = 32767;
20822     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20823     written |= (1 << 9);
20824     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20825   }
20826 frvbf_media_overflow (current_cpu, 8);
20827 }
20828 } else {
20829 if (LTDI (tmp_tmp, -32768)) {
20830 {
20831   {
20832     UHI opval = -32768;
20833     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20834     written |= (1 << 9);
20835     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20836   }
20837 frvbf_media_overflow (current_cpu, 8);
20838 }
20839 } else {
20840   {
20841     UHI opval = tmp_tmp;
20842     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20843     written |= (1 << 9);
20844     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20845   }
20846 }
20847 }
20848 }
20849 {
20850   DI tmp_tmp;
20851   tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
20852 if (GTDI (tmp_tmp, 32767)) {
20853 {
20854   {
20855     UHI opval = 32767;
20856     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20857     written |= (1 << 10);
20858     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20859   }
20860 frvbf_media_overflow (current_cpu, 4);
20861 }
20862 } else {
20863 if (LTDI (tmp_tmp, -32768)) {
20864 {
20865   {
20866     UHI opval = -32768;
20867     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20868     written |= (1 << 10);
20869     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20870   }
20871 frvbf_media_overflow (current_cpu, 4);
20872 }
20873 } else {
20874   {
20875     UHI opval = tmp_tmp;
20876     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20877     written |= (1 << 10);
20878     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20879   }
20880 }
20881 }
20882 }
20883 }
20884
20885   abuf->written = written;
20886   return vpc;
20887 #undef FLD
20888 }
20889
20890 /* msubhus: msubhus$pack $FRinti,$FRintj,$FRintk */
20891
20892 static SEM_PC
20893 SEM_FN_NAME (frvbf,msubhus) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20894 {
20895 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
20896   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20897   int UNUSED written = 0;
20898   IADDR UNUSED pc = abuf->addr;
20899   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20900
20901 {
20902   UHI tmp_argihi;
20903   UHI tmp_argilo;
20904   UHI tmp_argjhi;
20905   UHI tmp_argjlo;
20906 {
20907   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20908   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20909   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20910   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20911 }
20912 {
20913   DI tmp_tmp;
20914   tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
20915 if (GTDI (tmp_tmp, 65535)) {
20916 {
20917   {
20918     UHI opval = 65535;
20919     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20920     written |= (1 << 9);
20921     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20922   }
20923 frvbf_media_overflow (current_cpu, 8);
20924 }
20925 } else {
20926 if (LTDI (tmp_tmp, 0)) {
20927 {
20928   {
20929     UHI opval = 0;
20930     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20931     written |= (1 << 9);
20932     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20933   }
20934 frvbf_media_overflow (current_cpu, 8);
20935 }
20936 } else {
20937   {
20938     UHI opval = tmp_tmp;
20939     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20940     written |= (1 << 9);
20941     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20942   }
20943 }
20944 }
20945 }
20946 {
20947   DI tmp_tmp;
20948   tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
20949 if (GTDI (tmp_tmp, 65535)) {
20950 {
20951   {
20952     UHI opval = 65535;
20953     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20954     written |= (1 << 10);
20955     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20956   }
20957 frvbf_media_overflow (current_cpu, 4);
20958 }
20959 } else {
20960 if (LTDI (tmp_tmp, 0)) {
20961 {
20962   {
20963     UHI opval = 0;
20964     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20965     written |= (1 << 10);
20966     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20967   }
20968 frvbf_media_overflow (current_cpu, 4);
20969 }
20970 } else {
20971   {
20972     UHI opval = tmp_tmp;
20973     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20974     written |= (1 << 10);
20975     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20976   }
20977 }
20978 }
20979 }
20980 }
20981
20982   abuf->written = written;
20983   return vpc;
20984 #undef FLD
20985 }
20986
20987 /* cmaddhss: cmaddhss$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
20988
20989 static SEM_PC
20990 SEM_FN_NAME (frvbf,cmaddhss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20991 {
20992 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
20993   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20994   int UNUSED written = 0;
20995   IADDR UNUSED pc = abuf->addr;
20996   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20997
20998 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
20999 {
21000   HI tmp_argihi;
21001   HI tmp_argilo;
21002   HI tmp_argjhi;
21003   HI tmp_argjlo;
21004 {
21005   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21006   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21007   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21008   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21009 }
21010 {
21011   DI tmp_tmp;
21012   tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
21013 if (GTDI (tmp_tmp, 32767)) {
21014 {
21015   {
21016     UHI opval = 32767;
21017     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21018     written |= (1 << 11);
21019     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21020   }
21021 frvbf_media_overflow (current_cpu, 8);
21022 }
21023 } else {
21024 if (LTDI (tmp_tmp, -32768)) {
21025 {
21026   {
21027     UHI opval = -32768;
21028     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21029     written |= (1 << 11);
21030     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21031   }
21032 frvbf_media_overflow (current_cpu, 8);
21033 }
21034 } else {
21035   {
21036     UHI opval = tmp_tmp;
21037     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21038     written |= (1 << 11);
21039     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21040   }
21041 }
21042 }
21043 }
21044 {
21045   DI tmp_tmp;
21046   tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
21047 if (GTDI (tmp_tmp, 32767)) {
21048 {
21049   {
21050     UHI opval = 32767;
21051     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21052     written |= (1 << 12);
21053     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21054   }
21055 frvbf_media_overflow (current_cpu, 4);
21056 }
21057 } else {
21058 if (LTDI (tmp_tmp, -32768)) {
21059 {
21060   {
21061     UHI opval = -32768;
21062     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21063     written |= (1 << 12);
21064     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21065   }
21066 frvbf_media_overflow (current_cpu, 4);
21067 }
21068 } else {
21069   {
21070     UHI opval = tmp_tmp;
21071     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21072     written |= (1 << 12);
21073     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21074   }
21075 }
21076 }
21077 }
21078 }
21079 }
21080
21081   abuf->written = written;
21082   return vpc;
21083 #undef FLD
21084 }
21085
21086 /* cmaddhus: cmaddhus$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
21087
21088 static SEM_PC
21089 SEM_FN_NAME (frvbf,cmaddhus) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
21090 {
21091 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
21092   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
21093   int UNUSED written = 0;
21094   IADDR UNUSED pc = abuf->addr;
21095   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
21096
21097 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
21098 {
21099   UHI tmp_argihi;
21100   UHI tmp_argilo;
21101   UHI tmp_argjhi;
21102   UHI tmp_argjlo;
21103 {
21104   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21105   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21106   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21107   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21108 }
21109 {
21110   DI tmp_tmp;
21111   tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
21112 if (GTDI (tmp_tmp, 65535)) {
21113 {
21114   {
21115     UHI opval = 65535;
21116     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21117     written |= (1 << 11);
21118     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21119   }
21120 frvbf_media_overflow (current_cpu, 8);
21121 }
21122 } else {
21123 if (LTDI (tmp_tmp, 0)) {
21124 {
21125   {
21126     UHI opval = 0;
21127     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21128     written |= (1 << 11);
21129     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21130   }
21131 frvbf_media_overflow (current_cpu, 8);
21132 }
21133 } else {
21134   {
21135     UHI opval = tmp_tmp;
21136     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21137     written |= (1 << 11);
21138     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21139   }
21140 }
21141 }
21142 }
21143 {
21144   DI tmp_tmp;
21145   tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
21146 if (GTDI (tmp_tmp, 65535)) {
21147 {
21148   {
21149     UHI opval = 65535;
21150     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21151     written |= (1 << 12);
21152     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21153   }
21154 frvbf_media_overflow (current_cpu, 4);
21155 }
21156 } else {
21157 if (LTDI (tmp_tmp, 0)) {
21158 {
21159   {
21160     UHI opval = 0;
21161     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21162     written |= (1 << 12);
21163     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21164   }
21165 frvbf_media_overflow (current_cpu, 4);
21166 }
21167 } else {
21168   {
21169     UHI opval = tmp_tmp;
21170     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21171     written |= (1 << 12);
21172     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21173   }
21174 }
21175 }
21176 }
21177 }
21178 }
21179
21180   abuf->written = written;
21181   return vpc;
21182 #undef FLD
21183 }
21184
21185 /* cmsubhss: cmsubhss$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
21186
21187 static SEM_PC
21188 SEM_FN_NAME (frvbf,cmsubhss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
21189 {
21190 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
21191   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
21192   int UNUSED written = 0;
21193   IADDR UNUSED pc = abuf->addr;
21194   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
21195
21196 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
21197 {
21198   HI tmp_argihi;
21199   HI tmp_argilo;
21200   HI tmp_argjhi;
21201   HI tmp_argjlo;
21202 {
21203   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21204   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21205   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21206   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21207 }
21208 {
21209   DI tmp_tmp;
21210   tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
21211 if (GTDI (tmp_tmp, 32767)) {
21212 {
21213   {
21214     UHI opval = 32767;
21215     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21216     written |= (1 << 11);
21217     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21218   }
21219 frvbf_media_overflow (current_cpu, 8);
21220 }
21221 } else {
21222 if (LTDI (tmp_tmp, -32768)) {
21223 {
21224   {
21225     UHI opval = -32768;
21226     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21227     written |= (1 << 11);
21228     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21229   }
21230 frvbf_media_overflow (current_cpu, 8);
21231 }
21232 } else {
21233   {
21234     UHI opval = tmp_tmp;
21235     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21236     written |= (1 << 11);
21237     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21238   }
21239 }
21240 }
21241 }
21242 {
21243   DI tmp_tmp;
21244   tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
21245 if (GTDI (tmp_tmp, 32767)) {
21246 {
21247   {
21248     UHI opval = 32767;
21249     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21250     written |= (1 << 12);
21251     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21252   }
21253 frvbf_media_overflow (current_cpu, 4);
21254 }
21255 } else {
21256 if (LTDI (tmp_tmp, -32768)) {
21257 {
21258   {
21259     UHI opval = -32768;
21260     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21261     written |= (1 << 12);
21262     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21263   }
21264 frvbf_media_overflow (current_cpu, 4);
21265 }
21266 } else {
21267   {
21268     UHI opval = tmp_tmp;
21269     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21270     written |= (1 << 12);
21271     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21272   }
21273 }
21274 }
21275 }
21276 }
21277 }
21278
21279   abuf->written = written;
21280   return vpc;
21281 #undef FLD
21282 }
21283
21284 /* cmsubhus: cmsubhus$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
21285
21286 static SEM_PC
21287 SEM_FN_NAME (frvbf,cmsubhus) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
21288 {
21289 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
21290   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
21291   int UNUSED written = 0;
21292   IADDR UNUSED pc = abuf->addr;
21293   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
21294
21295 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
21296 {
21297   UHI tmp_argihi;
21298   UHI tmp_argilo;
21299   UHI tmp_argjhi;
21300   UHI tmp_argjlo;
21301 {
21302   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21303   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21304   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21305   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21306 }
21307 {
21308   DI tmp_tmp;
21309   tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
21310 if (GTDI (tmp_tmp, 65535)) {
21311 {
21312   {
21313     UHI opval = 65535;
21314     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21315     written |= (1 << 11);
21316     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21317   }
21318 frvbf_media_overflow (current_cpu, 8);
21319 }
21320 } else {
21321 if (LTDI (tmp_tmp, 0)) {
21322 {
21323   {
21324     UHI opval = 0;
21325     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21326     written |= (1 << 11);
21327     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21328   }
21329 frvbf_media_overflow (current_cpu, 8);
21330 }
21331 } else {
21332   {
21333     UHI opval = tmp_tmp;
21334     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21335     written |= (1 << 11);
21336     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21337   }
21338 }
21339 }
21340 }
21341 {
21342   DI tmp_tmp;
21343   tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
21344 if (GTDI (tmp_tmp, 65535)) {
21345 {
21346   {
21347     UHI opval = 65535;
21348     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21349     written |= (1 << 12);
21350     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21351   }
21352 frvbf_media_overflow (current_cpu, 4);
21353 }
21354 } else {
21355 if (LTDI (tmp_tmp, 0)) {
21356 {
21357   {
21358     UHI opval = 0;
21359     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21360     written |= (1 << 12);
21361     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21362   }
21363 frvbf_media_overflow (current_cpu, 4);
21364 }
21365 } else {
21366   {
21367     UHI opval = tmp_tmp;
21368     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21369     written |= (1 << 12);
21370     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21371   }
21372 }
21373 }
21374 }
21375 }
21376 }
21377
21378   abuf->written = written;
21379   return vpc;
21380 #undef FLD
21381 }
21382
21383 /* mqaddhss: mqaddhss$pack $FRintieven,$FRintjeven,$FRintkeven */
21384
21385 static SEM_PC
21386 SEM_FN_NAME (frvbf,mqaddhss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
21387 {
21388 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
21389   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
21390   int UNUSED written = 0;
21391   IADDR UNUSED pc = abuf->addr;
21392   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
21393
21394 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
21395 frvbf_media_register_not_aligned (current_cpu);
21396 } else {
21397 {
21398   HI tmp_argihi;
21399   HI tmp_argilo;
21400   HI tmp_argjhi;
21401   HI tmp_argjlo;
21402   {
21403     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
21404     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
21405     written |= (1 << 14);
21406     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
21407   }
21408 {
21409   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21410   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21411   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21412   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21413 }
21414 {
21415   DI tmp_tmp;
21416   tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
21417 if (GTDI (tmp_tmp, 32767)) {
21418 {
21419   {
21420     UHI opval = 32767;
21421     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21422     written |= (1 << 15);
21423     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21424   }
21425 frvbf_media_overflow (current_cpu, 8);
21426 }
21427 } else {
21428 if (LTDI (tmp_tmp, -32768)) {
21429 {
21430   {
21431     UHI opval = -32768;
21432     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21433     written |= (1 << 15);
21434     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21435   }
21436 frvbf_media_overflow (current_cpu, 8);
21437 }
21438 } else {
21439   {
21440     UHI opval = tmp_tmp;
21441     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21442     written |= (1 << 15);
21443     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21444   }
21445 }
21446 }
21447 }
21448 {
21449   DI tmp_tmp;
21450   tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
21451 if (GTDI (tmp_tmp, 32767)) {
21452 {
21453   {
21454     UHI opval = 32767;
21455     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21456     written |= (1 << 17);
21457     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21458   }
21459 frvbf_media_overflow (current_cpu, 4);
21460 }
21461 } else {
21462 if (LTDI (tmp_tmp, -32768)) {
21463 {
21464   {
21465     UHI opval = -32768;
21466     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21467     written |= (1 << 17);
21468     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21469   }
21470 frvbf_media_overflow (current_cpu, 4);
21471 }
21472 } else {
21473   {
21474     UHI opval = tmp_tmp;
21475     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21476     written |= (1 << 17);
21477     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21478   }
21479 }
21480 }
21481 }
21482 {
21483   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21484   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21485   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21486   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21487 }
21488 {
21489   DI tmp_tmp;
21490   tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
21491 if (GTDI (tmp_tmp, 32767)) {
21492 {
21493   {
21494     UHI opval = 32767;
21495     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21496     written |= (1 << 16);
21497     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21498   }
21499 frvbf_media_overflow (current_cpu, 2);
21500 }
21501 } else {
21502 if (LTDI (tmp_tmp, -32768)) {
21503 {
21504   {
21505     UHI opval = -32768;
21506     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21507     written |= (1 << 16);
21508     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21509   }
21510 frvbf_media_overflow (current_cpu, 2);
21511 }
21512 } else {
21513   {
21514     UHI opval = tmp_tmp;
21515     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21516     written |= (1 << 16);
21517     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21518   }
21519 }
21520 }
21521 }
21522 {
21523   DI tmp_tmp;
21524   tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
21525 if (GTDI (tmp_tmp, 32767)) {
21526 {
21527   {
21528     UHI opval = 32767;
21529     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21530     written |= (1 << 18);
21531     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21532   }
21533 frvbf_media_overflow (current_cpu, 1);
21534 }
21535 } else {
21536 if (LTDI (tmp_tmp, -32768)) {
21537 {
21538   {
21539     UHI opval = -32768;
21540     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21541     written |= (1 << 18);
21542     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21543   }
21544 frvbf_media_overflow (current_cpu, 1);
21545 }
21546 } else {
21547   {
21548     UHI opval = tmp_tmp;
21549     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21550     written |= (1 << 18);
21551     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21552   }
21553 }
21554 }
21555 }
21556 }
21557 }
21558
21559   abuf->written = written;
21560   return vpc;
21561 #undef FLD
21562 }
21563
21564 /* mqaddhus: mqaddhus$pack $FRintieven,$FRintjeven,$FRintkeven */
21565
21566 static SEM_PC
21567 SEM_FN_NAME (frvbf,mqaddhus) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
21568 {
21569 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
21570   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
21571   int UNUSED written = 0;
21572   IADDR UNUSED pc = abuf->addr;
21573   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
21574
21575 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
21576 frvbf_media_register_not_aligned (current_cpu);
21577 } else {
21578 {
21579   UHI tmp_argihi;
21580   UHI tmp_argilo;
21581   UHI tmp_argjhi;
21582   UHI tmp_argjlo;
21583   {
21584     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
21585     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
21586     written |= (1 << 14);
21587     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
21588   }
21589 {
21590   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21591   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21592   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21593   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21594 }
21595 {
21596   DI tmp_tmp;
21597   tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
21598 if (GTDI (tmp_tmp, 65535)) {
21599 {
21600   {
21601     UHI opval = 65535;
21602     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21603     written |= (1 << 15);
21604     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21605   }
21606 frvbf_media_overflow (current_cpu, 8);
21607 }
21608 } else {
21609 if (LTDI (tmp_tmp, 0)) {
21610 {
21611   {
21612     UHI opval = 0;
21613     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21614     written |= (1 << 15);
21615     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21616   }
21617 frvbf_media_overflow (current_cpu, 8);
21618 }
21619 } else {
21620   {
21621     UHI opval = tmp_tmp;
21622     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21623     written |= (1 << 15);
21624     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21625   }
21626 }
21627 }
21628 }
21629 {
21630   DI tmp_tmp;
21631   tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
21632 if (GTDI (tmp_tmp, 65535)) {
21633 {
21634   {
21635     UHI opval = 65535;
21636     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21637     written |= (1 << 17);
21638     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21639   }
21640 frvbf_media_overflow (current_cpu, 4);
21641 }
21642 } else {
21643 if (LTDI (tmp_tmp, 0)) {
21644 {
21645   {
21646     UHI opval = 0;
21647     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21648     written |= (1 << 17);
21649     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21650   }
21651 frvbf_media_overflow (current_cpu, 4);
21652 }
21653 } else {
21654   {
21655     UHI opval = tmp_tmp;
21656     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21657     written |= (1 << 17);
21658     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21659   }
21660 }
21661 }
21662 }
21663 {
21664   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21665   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21666   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21667   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21668 }
21669 {
21670   DI tmp_tmp;
21671   tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
21672 if (GTDI (tmp_tmp, 65535)) {
21673 {
21674   {
21675     UHI opval = 65535;
21676     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21677     written |= (1 << 16);
21678     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21679   }
21680 frvbf_media_overflow (current_cpu, 2);
21681 }
21682 } else {
21683 if (LTDI (tmp_tmp, 0)) {
21684 {
21685   {
21686     UHI opval = 0;
21687     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21688     written |= (1 << 16);
21689     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21690   }
21691 frvbf_media_overflow (current_cpu, 2);
21692 }
21693 } else {
21694   {
21695     UHI opval = tmp_tmp;
21696     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21697     written |= (1 << 16);
21698     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21699   }
21700 }
21701 }
21702 }
21703 {
21704   DI tmp_tmp;
21705   tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
21706 if (GTDI (tmp_tmp, 65535)) {
21707 {
21708   {
21709     UHI opval = 65535;
21710     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21711     written |= (1 << 18);
21712     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21713   }
21714 frvbf_media_overflow (current_cpu, 1);
21715 }
21716 } else {
21717 if (LTDI (tmp_tmp, 0)) {
21718 {
21719   {
21720     UHI opval = 0;
21721     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21722     written |= (1 << 18);
21723     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21724   }
21725 frvbf_media_overflow (current_cpu, 1);
21726 }
21727 } else {
21728   {
21729     UHI opval = tmp_tmp;
21730     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21731     written |= (1 << 18);
21732     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21733   }
21734 }
21735 }
21736 }
21737 }
21738 }
21739
21740   abuf->written = written;
21741   return vpc;
21742 #undef FLD
21743 }
21744
21745 /* mqsubhss: mqsubhss$pack $FRintieven,$FRintjeven,$FRintkeven */
21746
21747 static SEM_PC
21748 SEM_FN_NAME (frvbf,mqsubhss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
21749 {
21750 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
21751   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
21752   int UNUSED written = 0;
21753   IADDR UNUSED pc = abuf->addr;
21754   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
21755
21756 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
21757 frvbf_media_register_not_aligned (current_cpu);
21758 } else {
21759 {
21760   HI tmp_argihi;
21761   HI tmp_argilo;
21762   HI tmp_argjhi;
21763   HI tmp_argjlo;
21764   {
21765     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
21766     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
21767     written |= (1 << 14);
21768     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
21769   }
21770 {
21771   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21772   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21773   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21774   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21775 }
21776 {
21777   DI tmp_tmp;
21778   tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
21779 if (GTDI (tmp_tmp, 32767)) {
21780 {
21781   {
21782     UHI opval = 32767;
21783     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21784     written |= (1 << 15);
21785     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21786   }
21787 frvbf_media_overflow (current_cpu, 8);
21788 }
21789 } else {
21790 if (LTDI (tmp_tmp, -32768)) {
21791 {
21792   {
21793     UHI opval = -32768;
21794     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21795     written |= (1 << 15);
21796     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21797   }
21798 frvbf_media_overflow (current_cpu, 8);
21799 }
21800 } else {
21801   {
21802     UHI opval = tmp_tmp;
21803     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21804     written |= (1 << 15);
21805     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21806   }
21807 }
21808 }
21809 }
21810 {
21811   DI tmp_tmp;
21812   tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
21813 if (GTDI (tmp_tmp, 32767)) {
21814 {
21815   {
21816     UHI opval = 32767;
21817     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21818     written |= (1 << 17);
21819     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21820   }
21821 frvbf_media_overflow (current_cpu, 4);
21822 }
21823 } else {
21824 if (LTDI (tmp_tmp, -32768)) {
21825 {
21826   {
21827     UHI opval = -32768;
21828     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21829     written |= (1 << 17);
21830     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21831   }
21832 frvbf_media_overflow (current_cpu, 4);
21833 }
21834 } else {
21835   {
21836     UHI opval = tmp_tmp;
21837     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21838     written |= (1 << 17);
21839     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21840   }
21841 }
21842 }
21843 }
21844 {
21845   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21846   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21847   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21848   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21849 }
21850 {
21851   DI tmp_tmp;
21852   tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
21853 if (GTDI (tmp_tmp, 32767)) {
21854 {
21855   {
21856     UHI opval = 32767;
21857     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21858     written |= (1 << 16);
21859     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21860   }
21861 frvbf_media_overflow (current_cpu, 2);
21862 }
21863 } else {
21864 if (LTDI (tmp_tmp, -32768)) {
21865 {
21866   {
21867     UHI opval = -32768;
21868     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21869     written |= (1 << 16);
21870     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21871   }
21872 frvbf_media_overflow (current_cpu, 2);
21873 }
21874 } else {
21875   {
21876     UHI opval = tmp_tmp;
21877     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21878     written |= (1 << 16);
21879     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21880   }
21881 }
21882 }
21883 }
21884 {
21885   DI tmp_tmp;
21886   tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
21887 if (GTDI (tmp_tmp, 32767)) {
21888 {
21889   {
21890     UHI opval = 32767;
21891     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21892     written |= (1 << 18);
21893     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21894   }
21895 frvbf_media_overflow (current_cpu, 1);
21896 }
21897 } else {
21898 if (LTDI (tmp_tmp, -32768)) {
21899 {
21900   {
21901     UHI opval = -32768;
21902     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21903     written |= (1 << 18);
21904     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21905   }
21906 frvbf_media_overflow (current_cpu, 1);
21907 }
21908 } else {
21909   {
21910     UHI opval = tmp_tmp;
21911     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21912     written |= (1 << 18);
21913     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21914   }
21915 }
21916 }
21917 }
21918 }
21919 }
21920
21921   abuf->written = written;
21922   return vpc;
21923 #undef FLD
21924 }
21925
21926 /* mqsubhus: mqsubhus$pack $FRintieven,$FRintjeven,$FRintkeven */
21927
21928 static SEM_PC
21929 SEM_FN_NAME (frvbf,mqsubhus) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
21930 {
21931 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
21932   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
21933   int UNUSED written = 0;
21934   IADDR UNUSED pc = abuf->addr;
21935   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
21936
21937 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
21938 frvbf_media_register_not_aligned (current_cpu);
21939 } else {
21940 {
21941   UHI tmp_argihi;
21942   UHI tmp_argilo;
21943   UHI tmp_argjhi;
21944   UHI tmp_argjlo;
21945   {
21946     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
21947     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
21948     written |= (1 << 14);
21949     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
21950   }
21951 {
21952   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21953   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21954   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21955   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21956 }
21957 {
21958   DI tmp_tmp;
21959   tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
21960 if (GTDI (tmp_tmp, 65535)) {
21961 {
21962   {
21963     UHI opval = 65535;
21964     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21965     written |= (1 << 15);
21966     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21967   }
21968 frvbf_media_overflow (current_cpu, 8);
21969 }
21970 } else {
21971 if (LTDI (tmp_tmp, 0)) {
21972 {
21973   {
21974     UHI opval = 0;
21975     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21976     written |= (1 << 15);
21977     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21978   }
21979 frvbf_media_overflow (current_cpu, 8);
21980 }
21981 } else {
21982   {
21983     UHI opval = tmp_tmp;
21984     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21985     written |= (1 << 15);
21986     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21987   }
21988 }
21989 }
21990 }
21991 {
21992   DI tmp_tmp;
21993   tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
21994 if (GTDI (tmp_tmp, 65535)) {
21995 {
21996   {
21997     UHI opval = 65535;
21998     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21999     written |= (1 << 17);
22000     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22001   }
22002 frvbf_media_overflow (current_cpu, 4);
22003 }
22004 } else {
22005 if (LTDI (tmp_tmp, 0)) {
22006 {
22007   {
22008     UHI opval = 0;
22009     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22010     written |= (1 << 17);
22011     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22012   }
22013 frvbf_media_overflow (current_cpu, 4);
22014 }
22015 } else {
22016   {
22017     UHI opval = tmp_tmp;
22018     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22019     written |= (1 << 17);
22020     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22021   }
22022 }
22023 }
22024 }
22025 {
22026   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22027   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22028   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22029   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22030 }
22031 {
22032   DI tmp_tmp;
22033   tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
22034 if (GTDI (tmp_tmp, 65535)) {
22035 {
22036   {
22037     UHI opval = 65535;
22038     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22039     written |= (1 << 16);
22040     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22041   }
22042 frvbf_media_overflow (current_cpu, 2);
22043 }
22044 } else {
22045 if (LTDI (tmp_tmp, 0)) {
22046 {
22047   {
22048     UHI opval = 0;
22049     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22050     written |= (1 << 16);
22051     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22052   }
22053 frvbf_media_overflow (current_cpu, 2);
22054 }
22055 } else {
22056   {
22057     UHI opval = tmp_tmp;
22058     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22059     written |= (1 << 16);
22060     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22061   }
22062 }
22063 }
22064 }
22065 {
22066   DI tmp_tmp;
22067   tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
22068 if (GTDI (tmp_tmp, 65535)) {
22069 {
22070   {
22071     UHI opval = 65535;
22072     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22073     written |= (1 << 18);
22074     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22075   }
22076 frvbf_media_overflow (current_cpu, 1);
22077 }
22078 } else {
22079 if (LTDI (tmp_tmp, 0)) {
22080 {
22081   {
22082     UHI opval = 0;
22083     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22084     written |= (1 << 18);
22085     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22086   }
22087 frvbf_media_overflow (current_cpu, 1);
22088 }
22089 } else {
22090   {
22091     UHI opval = tmp_tmp;
22092     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22093     written |= (1 << 18);
22094     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22095   }
22096 }
22097 }
22098 }
22099 }
22100 }
22101
22102   abuf->written = written;
22103   return vpc;
22104 #undef FLD
22105 }
22106
22107 /* cmqaddhss: cmqaddhss$pack $FRintieven,$FRintjeven,$FRintkeven,$CCi,$cond */
22108
22109 static SEM_PC
22110 SEM_FN_NAME (frvbf,cmqaddhss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
22111 {
22112 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
22113   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
22114   int UNUSED written = 0;
22115   IADDR UNUSED pc = abuf->addr;
22116   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
22117
22118 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
22119 frvbf_media_register_not_aligned (current_cpu);
22120 } else {
22121 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
22122 {
22123   HI tmp_argihi;
22124   HI tmp_argilo;
22125   HI tmp_argjhi;
22126   HI tmp_argjlo;
22127   {
22128     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
22129     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
22130     written |= (1 << 16);
22131     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
22132   }
22133 {
22134   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22135   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22136   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22137   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22138 }
22139 {
22140   DI tmp_tmp;
22141   tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
22142 if (GTDI (tmp_tmp, 32767)) {
22143 {
22144   {
22145     UHI opval = 32767;
22146     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22147     written |= (1 << 17);
22148     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22149   }
22150 frvbf_media_overflow (current_cpu, 8);
22151 }
22152 } else {
22153 if (LTDI (tmp_tmp, -32768)) {
22154 {
22155   {
22156     UHI opval = -32768;
22157     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22158     written |= (1 << 17);
22159     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22160   }
22161 frvbf_media_overflow (current_cpu, 8);
22162 }
22163 } else {
22164   {
22165     UHI opval = tmp_tmp;
22166     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22167     written |= (1 << 17);
22168     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22169   }
22170 }
22171 }
22172 }
22173 {
22174   DI tmp_tmp;
22175   tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
22176 if (GTDI (tmp_tmp, 32767)) {
22177 {
22178   {
22179     UHI opval = 32767;
22180     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22181     written |= (1 << 19);
22182     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22183   }
22184 frvbf_media_overflow (current_cpu, 4);
22185 }
22186 } else {
22187 if (LTDI (tmp_tmp, -32768)) {
22188 {
22189   {
22190     UHI opval = -32768;
22191     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22192     written |= (1 << 19);
22193     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22194   }
22195 frvbf_media_overflow (current_cpu, 4);
22196 }
22197 } else {
22198   {
22199     UHI opval = tmp_tmp;
22200     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22201     written |= (1 << 19);
22202     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22203   }
22204 }
22205 }
22206 }
22207 {
22208   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22209   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22210   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22211   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22212 }
22213 {
22214   DI tmp_tmp;
22215   tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
22216 if (GTDI (tmp_tmp, 32767)) {
22217 {
22218   {
22219     UHI opval = 32767;
22220     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22221     written |= (1 << 18);
22222     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22223   }
22224 frvbf_media_overflow (current_cpu, 2);
22225 }
22226 } else {
22227 if (LTDI (tmp_tmp, -32768)) {
22228 {
22229   {
22230     UHI opval = -32768;
22231     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22232     written |= (1 << 18);
22233     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22234   }
22235 frvbf_media_overflow (current_cpu, 2);
22236 }
22237 } else {
22238   {
22239     UHI opval = tmp_tmp;
22240     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22241     written |= (1 << 18);
22242     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22243   }
22244 }
22245 }
22246 }
22247 {
22248   DI tmp_tmp;
22249   tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
22250 if (GTDI (tmp_tmp, 32767)) {
22251 {
22252   {
22253     UHI opval = 32767;
22254     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22255     written |= (1 << 20);
22256     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22257   }
22258 frvbf_media_overflow (current_cpu, 1);
22259 }
22260 } else {
22261 if (LTDI (tmp_tmp, -32768)) {
22262 {
22263   {
22264     UHI opval = -32768;
22265     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22266     written |= (1 << 20);
22267     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22268   }
22269 frvbf_media_overflow (current_cpu, 1);
22270 }
22271 } else {
22272   {
22273     UHI opval = tmp_tmp;
22274     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22275     written |= (1 << 20);
22276     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22277   }
22278 }
22279 }
22280 }
22281 }
22282 }
22283 }
22284
22285   abuf->written = written;
22286   return vpc;
22287 #undef FLD
22288 }
22289
22290 /* cmqaddhus: cmqaddhus$pack $FRintieven,$FRintjeven,$FRintkeven,$CCi,$cond */
22291
22292 static SEM_PC
22293 SEM_FN_NAME (frvbf,cmqaddhus) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
22294 {
22295 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
22296   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
22297   int UNUSED written = 0;
22298   IADDR UNUSED pc = abuf->addr;
22299   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
22300
22301 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
22302 frvbf_media_register_not_aligned (current_cpu);
22303 } else {
22304 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
22305 {
22306   UHI tmp_argihi;
22307   UHI tmp_argilo;
22308   UHI tmp_argjhi;
22309   UHI tmp_argjlo;
22310   {
22311     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
22312     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
22313     written |= (1 << 16);
22314     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
22315   }
22316 {
22317   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22318   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22319   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22320   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22321 }
22322 {
22323   DI tmp_tmp;
22324   tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
22325 if (GTDI (tmp_tmp, 65535)) {
22326 {
22327   {
22328     UHI opval = 65535;
22329     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22330     written |= (1 << 17);
22331     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22332   }
22333 frvbf_media_overflow (current_cpu, 8);
22334 }
22335 } else {
22336 if (LTDI (tmp_tmp, 0)) {
22337 {
22338   {
22339     UHI opval = 0;
22340     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22341     written |= (1 << 17);
22342     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22343   }
22344 frvbf_media_overflow (current_cpu, 8);
22345 }
22346 } else {
22347   {
22348     UHI opval = tmp_tmp;
22349     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22350     written |= (1 << 17);
22351     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22352   }
22353 }
22354 }
22355 }
22356 {
22357   DI tmp_tmp;
22358   tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
22359 if (GTDI (tmp_tmp, 65535)) {
22360 {
22361   {
22362     UHI opval = 65535;
22363     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22364     written |= (1 << 19);
22365     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22366   }
22367 frvbf_media_overflow (current_cpu, 4);
22368 }
22369 } else {
22370 if (LTDI (tmp_tmp, 0)) {
22371 {
22372   {
22373     UHI opval = 0;
22374     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22375     written |= (1 << 19);
22376     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22377   }
22378 frvbf_media_overflow (current_cpu, 4);
22379 }
22380 } else {
22381   {
22382     UHI opval = tmp_tmp;
22383     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22384     written |= (1 << 19);
22385     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22386   }
22387 }
22388 }
22389 }
22390 {
22391   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22392   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22393   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22394   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22395 }
22396 {
22397   DI tmp_tmp;
22398   tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
22399 if (GTDI (tmp_tmp, 65535)) {
22400 {
22401   {
22402     UHI opval = 65535;
22403     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22404     written |= (1 << 18);
22405     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22406   }
22407 frvbf_media_overflow (current_cpu, 2);
22408 }
22409 } else {
22410 if (LTDI (tmp_tmp, 0)) {
22411 {
22412   {
22413     UHI opval = 0;
22414     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22415     written |= (1 << 18);
22416     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22417   }
22418 frvbf_media_overflow (current_cpu, 2);
22419 }
22420 } else {
22421   {
22422     UHI opval = tmp_tmp;
22423     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22424     written |= (1 << 18);
22425     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22426   }
22427 }
22428 }
22429 }
22430 {
22431   DI tmp_tmp;
22432   tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
22433 if (GTDI (tmp_tmp, 65535)) {
22434 {
22435   {
22436     UHI opval = 65535;
22437     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22438     written |= (1 << 20);
22439     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22440   }
22441 frvbf_media_overflow (current_cpu, 1);
22442 }
22443 } else {
22444 if (LTDI (tmp_tmp, 0)) {
22445 {
22446   {
22447     UHI opval = 0;
22448     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22449     written |= (1 << 20);
22450     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22451   }
22452 frvbf_media_overflow (current_cpu, 1);
22453 }
22454 } else {
22455   {
22456     UHI opval = tmp_tmp;
22457     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22458     written |= (1 << 20);
22459     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22460   }
22461 }
22462 }
22463 }
22464 }
22465 }
22466 }
22467
22468   abuf->written = written;
22469   return vpc;
22470 #undef FLD
22471 }
22472
22473 /* cmqsubhss: cmqsubhss$pack $FRintieven,$FRintjeven,$FRintkeven,$CCi,$cond */
22474
22475 static SEM_PC
22476 SEM_FN_NAME (frvbf,cmqsubhss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
22477 {
22478 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
22479   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
22480   int UNUSED written = 0;
22481   IADDR UNUSED pc = abuf->addr;
22482   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
22483
22484 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
22485 frvbf_media_register_not_aligned (current_cpu);
22486 } else {
22487 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
22488 {
22489   HI tmp_argihi;
22490   HI tmp_argilo;
22491   HI tmp_argjhi;
22492   HI tmp_argjlo;
22493   {
22494     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
22495     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
22496     written |= (1 << 16);
22497     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
22498   }
22499 {
22500   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22501   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22502   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22503   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22504 }
22505 {
22506   DI tmp_tmp;
22507   tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
22508 if (GTDI (tmp_tmp, 32767)) {
22509 {
22510   {
22511     UHI opval = 32767;
22512     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22513     written |= (1 << 17);
22514     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22515   }
22516 frvbf_media_overflow (current_cpu, 8);
22517 }
22518 } else {
22519 if (LTDI (tmp_tmp, -32768)) {
22520 {
22521   {
22522     UHI opval = -32768;
22523     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22524     written |= (1 << 17);
22525     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22526   }
22527 frvbf_media_overflow (current_cpu, 8);
22528 }
22529 } else {
22530   {
22531     UHI opval = tmp_tmp;
22532     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22533     written |= (1 << 17);
22534     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22535   }
22536 }
22537 }
22538 }
22539 {
22540   DI tmp_tmp;
22541   tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
22542 if (GTDI (tmp_tmp, 32767)) {
22543 {
22544   {
22545     UHI opval = 32767;
22546     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22547     written |= (1 << 19);
22548     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22549   }
22550 frvbf_media_overflow (current_cpu, 4);
22551 }
22552 } else {
22553 if (LTDI (tmp_tmp, -32768)) {
22554 {
22555   {
22556     UHI opval = -32768;
22557     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22558     written |= (1 << 19);
22559     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22560   }
22561 frvbf_media_overflow (current_cpu, 4);
22562 }
22563 } else {
22564   {
22565     UHI opval = tmp_tmp;
22566     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22567     written |= (1 << 19);
22568     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22569   }
22570 }
22571 }
22572 }
22573 {
22574   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22575   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22576   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22577   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22578 }
22579 {
22580   DI tmp_tmp;
22581   tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
22582 if (GTDI (tmp_tmp, 32767)) {
22583 {
22584   {
22585     UHI opval = 32767;
22586     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22587     written |= (1 << 18);
22588     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22589   }
22590 frvbf_media_overflow (current_cpu, 2);
22591 }
22592 } else {
22593 if (LTDI (tmp_tmp, -32768)) {
22594 {
22595   {
22596     UHI opval = -32768;
22597     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22598     written |= (1 << 18);
22599     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22600   }
22601 frvbf_media_overflow (current_cpu, 2);
22602 }
22603 } else {
22604   {
22605     UHI opval = tmp_tmp;
22606     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22607     written |= (1 << 18);
22608     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22609   }
22610 }
22611 }
22612 }
22613 {
22614   DI tmp_tmp;
22615   tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
22616 if (GTDI (tmp_tmp, 32767)) {
22617 {
22618   {
22619     UHI opval = 32767;
22620     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22621     written |= (1 << 20);
22622     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22623   }
22624 frvbf_media_overflow (current_cpu, 1);
22625 }
22626 } else {
22627 if (LTDI (tmp_tmp, -32768)) {
22628 {
22629   {
22630     UHI opval = -32768;
22631     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22632     written |= (1 << 20);
22633     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22634   }
22635 frvbf_media_overflow (current_cpu, 1);
22636 }
22637 } else {
22638   {
22639     UHI opval = tmp_tmp;
22640     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22641     written |= (1 << 20);
22642     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22643   }
22644 }
22645 }
22646 }
22647 }
22648 }
22649 }
22650
22651   abuf->written = written;
22652   return vpc;
22653 #undef FLD
22654 }
22655
22656 /* cmqsubhus: cmqsubhus$pack $FRintieven,$FRintjeven,$FRintkeven,$CCi,$cond */
22657
22658 static SEM_PC
22659 SEM_FN_NAME (frvbf,cmqsubhus) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
22660 {
22661 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
22662   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
22663   int UNUSED written = 0;
22664   IADDR UNUSED pc = abuf->addr;
22665   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
22666
22667 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
22668 frvbf_media_register_not_aligned (current_cpu);
22669 } else {
22670 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
22671 {
22672   UHI tmp_argihi;
22673   UHI tmp_argilo;
22674   UHI tmp_argjhi;
22675   UHI tmp_argjlo;
22676   {
22677     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
22678     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
22679     written |= (1 << 16);
22680     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
22681   }
22682 {
22683   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22684   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22685   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22686   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22687 }
22688 {
22689   DI tmp_tmp;
22690   tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
22691 if (GTDI (tmp_tmp, 65535)) {
22692 {
22693   {
22694     UHI opval = 65535;
22695     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22696     written |= (1 << 17);
22697     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22698   }
22699 frvbf_media_overflow (current_cpu, 8);
22700 }
22701 } else {
22702 if (LTDI (tmp_tmp, 0)) {
22703 {
22704   {
22705     UHI opval = 0;
22706     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22707     written |= (1 << 17);
22708     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22709   }
22710 frvbf_media_overflow (current_cpu, 8);
22711 }
22712 } else {
22713   {
22714     UHI opval = tmp_tmp;
22715     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22716     written |= (1 << 17);
22717     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22718   }
22719 }
22720 }
22721 }
22722 {
22723   DI tmp_tmp;
22724   tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
22725 if (GTDI (tmp_tmp, 65535)) {
22726 {
22727   {
22728     UHI opval = 65535;
22729     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22730     written |= (1 << 19);
22731     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22732   }
22733 frvbf_media_overflow (current_cpu, 4);
22734 }
22735 } else {
22736 if (LTDI (tmp_tmp, 0)) {
22737 {
22738   {
22739     UHI opval = 0;
22740     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22741     written |= (1 << 19);
22742     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22743   }
22744 frvbf_media_overflow (current_cpu, 4);
22745 }
22746 } else {
22747   {
22748     UHI opval = tmp_tmp;
22749     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22750     written |= (1 << 19);
22751     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22752   }
22753 }
22754 }
22755 }
22756 {
22757   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22758   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22759   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22760   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22761 }
22762 {
22763   DI tmp_tmp;
22764   tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
22765 if (GTDI (tmp_tmp, 65535)) {
22766 {
22767   {
22768     UHI opval = 65535;
22769     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22770     written |= (1 << 18);
22771     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22772   }
22773 frvbf_media_overflow (current_cpu, 2);
22774 }
22775 } else {
22776 if (LTDI (tmp_tmp, 0)) {
22777 {
22778   {
22779     UHI opval = 0;
22780     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22781     written |= (1 << 18);
22782     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22783   }
22784 frvbf_media_overflow (current_cpu, 2);
22785 }
22786 } else {
22787   {
22788     UHI opval = tmp_tmp;
22789     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22790     written |= (1 << 18);
22791     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22792   }
22793 }
22794 }
22795 }
22796 {
22797   DI tmp_tmp;
22798   tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
22799 if (GTDI (tmp_tmp, 65535)) {
22800 {
22801   {
22802     UHI opval = 65535;
22803     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22804     written |= (1 << 20);
22805     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22806   }
22807 frvbf_media_overflow (current_cpu, 1);
22808 }
22809 } else {
22810 if (LTDI (tmp_tmp, 0)) {
22811 {
22812   {
22813     UHI opval = 0;
22814     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22815     written |= (1 << 20);
22816     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22817   }
22818 frvbf_media_overflow (current_cpu, 1);
22819 }
22820 } else {
22821   {
22822     UHI opval = tmp_tmp;
22823     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22824     written |= (1 << 20);
22825     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22826   }
22827 }
22828 }
22829 }
22830 }
22831 }
22832 }
22833
22834   abuf->written = written;
22835   return vpc;
22836 #undef FLD
22837 }
22838
22839 /* maddaccs: maddaccs$pack $ACC40Si,$ACC40Sk */
22840
22841 static SEM_PC
22842 SEM_FN_NAME (frvbf,maddaccs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
22843 {
22844 #define FLD(f) abuf->fields.sfmt_mdasaccs.f
22845   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
22846   int UNUSED written = 0;
22847   IADDR UNUSED pc = abuf->addr;
22848   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
22849
22850 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Si))) {
22851 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
22852 if (ANDSI (FLD (f_ACC40Si), SUBSI (2, 1))) {
22853 frvbf_media_acc_not_aligned (current_cpu);
22854 } else {
22855 {
22856   DI tmp_tmp;
22857   tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_ACC40S (((FLD (f_ACC40Si)) + (1))));
22858 if (GTDI (tmp_tmp, 549755813887)) {
22859 {
22860   {
22861     DI opval = 549755813887;
22862     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
22863     written |= (1 << 4);
22864     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22865   }
22866 frvbf_media_overflow (current_cpu, 8);
22867 }
22868 } else {
22869 if (LTDI (tmp_tmp, INVDI (549755813887))) {
22870 {
22871   {
22872     DI opval = INVDI (549755813887);
22873     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
22874     written |= (1 << 4);
22875     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22876   }
22877 frvbf_media_overflow (current_cpu, 8);
22878 }
22879 } else {
22880   {
22881     DI opval = tmp_tmp;
22882     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
22883     written |= (1 << 4);
22884     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22885   }
22886 }
22887 }
22888 }
22889 }
22890 }
22891 }
22892
22893   abuf->written = written;
22894   return vpc;
22895 #undef FLD
22896 }
22897
22898 /* msubaccs: msubaccs$pack $ACC40Si,$ACC40Sk */
22899
22900 static SEM_PC
22901 SEM_FN_NAME (frvbf,msubaccs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
22902 {
22903 #define FLD(f) abuf->fields.sfmt_mdasaccs.f
22904   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
22905   int UNUSED written = 0;
22906   IADDR UNUSED pc = abuf->addr;
22907   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
22908
22909 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Si))) {
22910 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
22911 if (ANDSI (FLD (f_ACC40Si), SUBSI (2, 1))) {
22912 frvbf_media_acc_not_aligned (current_cpu);
22913 } else {
22914 {
22915   DI tmp_tmp;
22916   tmp_tmp = SUBDI (GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_ACC40S (((FLD (f_ACC40Si)) + (1))));
22917 if (GTDI (tmp_tmp, 549755813887)) {
22918 {
22919   {
22920     DI opval = 549755813887;
22921     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
22922     written |= (1 << 4);
22923     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22924   }
22925 frvbf_media_overflow (current_cpu, 8);
22926 }
22927 } else {
22928 if (LTDI (tmp_tmp, INVDI (549755813887))) {
22929 {
22930   {
22931     DI opval = INVDI (549755813887);
22932     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
22933     written |= (1 << 4);
22934     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22935   }
22936 frvbf_media_overflow (current_cpu, 8);
22937 }
22938 } else {
22939   {
22940     DI opval = tmp_tmp;
22941     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
22942     written |= (1 << 4);
22943     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22944   }
22945 }
22946 }
22947 }
22948 }
22949 }
22950 }
22951
22952   abuf->written = written;
22953   return vpc;
22954 #undef FLD
22955 }
22956
22957 /* mdaddaccs: mdaddaccs$pack $ACC40Si,$ACC40Sk */
22958
22959 static SEM_PC
22960 SEM_FN_NAME (frvbf,mdaddaccs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
22961 {
22962 #define FLD(f) abuf->fields.sfmt_mdasaccs.f
22963   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
22964   int UNUSED written = 0;
22965   IADDR UNUSED pc = abuf->addr;
22966   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
22967
22968 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Si))) {
22969 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
22970 if (ANDSI (FLD (f_ACC40Si), SUBSI (4, 1))) {
22971 frvbf_media_acc_not_aligned (current_cpu);
22972 } else {
22973 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
22974 frvbf_media_acc_not_aligned (current_cpu);
22975 } else {
22976 {
22977 {
22978   DI tmp_tmp;
22979   tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_ACC40S (((FLD (f_ACC40Si)) + (1))));
22980 if (GTDI (tmp_tmp, 549755813887)) {
22981 {
22982   {
22983     DI opval = 549755813887;
22984     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
22985     written |= (1 << 6);
22986     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22987   }
22988 frvbf_media_overflow (current_cpu, 8);
22989 }
22990 } else {
22991 if (LTDI (tmp_tmp, INVDI (549755813887))) {
22992 {
22993   {
22994     DI opval = INVDI (549755813887);
22995     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
22996     written |= (1 << 6);
22997     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22998   }
22999 frvbf_media_overflow (current_cpu, 8);
23000 }
23001 } else {
23002   {
23003     DI opval = tmp_tmp;
23004     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23005     written |= (1 << 6);
23006     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23007   }
23008 }
23009 }
23010 }
23011 {
23012   DI tmp_tmp;
23013   tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Si)) + (2))), GET_H_ACC40S (((FLD (f_ACC40Si)) + (3))));
23014 if (GTDI (tmp_tmp, 549755813887)) {
23015 {
23016   {
23017     DI opval = 549755813887;
23018     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23019     written |= (1 << 7);
23020     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23021   }
23022 frvbf_media_overflow (current_cpu, 4);
23023 }
23024 } else {
23025 if (LTDI (tmp_tmp, INVDI (549755813887))) {
23026 {
23027   {
23028     DI opval = INVDI (549755813887);
23029     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23030     written |= (1 << 7);
23031     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23032   }
23033 frvbf_media_overflow (current_cpu, 4);
23034 }
23035 } else {
23036   {
23037     DI opval = tmp_tmp;
23038     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23039     written |= (1 << 7);
23040     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23041   }
23042 }
23043 }
23044 }
23045 }
23046 }
23047 }
23048 }
23049 }
23050
23051   abuf->written = written;
23052   return vpc;
23053 #undef FLD
23054 }
23055
23056 /* mdsubaccs: mdsubaccs$pack $ACC40Si,$ACC40Sk */
23057
23058 static SEM_PC
23059 SEM_FN_NAME (frvbf,mdsubaccs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23060 {
23061 #define FLD(f) abuf->fields.sfmt_mdasaccs.f
23062   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23063   int UNUSED written = 0;
23064   IADDR UNUSED pc = abuf->addr;
23065   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23066
23067 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Si))) {
23068 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
23069 if (ANDSI (FLD (f_ACC40Si), SUBSI (4, 1))) {
23070 frvbf_media_acc_not_aligned (current_cpu);
23071 } else {
23072 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
23073 frvbf_media_acc_not_aligned (current_cpu);
23074 } else {
23075 {
23076 {
23077   DI tmp_tmp;
23078   tmp_tmp = SUBDI (GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_ACC40S (((FLD (f_ACC40Si)) + (1))));
23079 if (GTDI (tmp_tmp, 549755813887)) {
23080 {
23081   {
23082     DI opval = 549755813887;
23083     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23084     written |= (1 << 6);
23085     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23086   }
23087 frvbf_media_overflow (current_cpu, 8);
23088 }
23089 } else {
23090 if (LTDI (tmp_tmp, INVDI (549755813887))) {
23091 {
23092   {
23093     DI opval = INVDI (549755813887);
23094     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23095     written |= (1 << 6);
23096     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23097   }
23098 frvbf_media_overflow (current_cpu, 8);
23099 }
23100 } else {
23101   {
23102     DI opval = tmp_tmp;
23103     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23104     written |= (1 << 6);
23105     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23106   }
23107 }
23108 }
23109 }
23110 {
23111   DI tmp_tmp;
23112   tmp_tmp = SUBDI (GET_H_ACC40S (((FLD (f_ACC40Si)) + (2))), GET_H_ACC40S (((FLD (f_ACC40Si)) + (3))));
23113 if (GTDI (tmp_tmp, 549755813887)) {
23114 {
23115   {
23116     DI opval = 549755813887;
23117     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23118     written |= (1 << 7);
23119     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23120   }
23121 frvbf_media_overflow (current_cpu, 4);
23122 }
23123 } else {
23124 if (LTDI (tmp_tmp, INVDI (549755813887))) {
23125 {
23126   {
23127     DI opval = INVDI (549755813887);
23128     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23129     written |= (1 << 7);
23130     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23131   }
23132 frvbf_media_overflow (current_cpu, 4);
23133 }
23134 } else {
23135   {
23136     DI opval = tmp_tmp;
23137     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23138     written |= (1 << 7);
23139     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23140   }
23141 }
23142 }
23143 }
23144 }
23145 }
23146 }
23147 }
23148 }
23149
23150   abuf->written = written;
23151   return vpc;
23152 #undef FLD
23153 }
23154
23155 /* masaccs: masaccs$pack $ACC40Si,$ACC40Sk */
23156
23157 static SEM_PC
23158 SEM_FN_NAME (frvbf,masaccs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23159 {
23160 #define FLD(f) abuf->fields.sfmt_mdasaccs.f
23161   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23162   int UNUSED written = 0;
23163   IADDR UNUSED pc = abuf->addr;
23164   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23165
23166 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Si))) {
23167 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
23168 if (ANDSI (FLD (f_ACC40Si), SUBSI (2, 1))) {
23169 frvbf_media_acc_not_aligned (current_cpu);
23170 } else {
23171 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
23172 frvbf_media_acc_not_aligned (current_cpu);
23173 } else {
23174 {
23175 {
23176   DI tmp_tmp;
23177   tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_ACC40S (((FLD (f_ACC40Si)) + (1))));
23178 if (GTDI (tmp_tmp, 549755813887)) {
23179 {
23180   {
23181     DI opval = 549755813887;
23182     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23183     written |= (1 << 4);
23184     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23185   }
23186 frvbf_media_overflow (current_cpu, 8);
23187 }
23188 } else {
23189 if (LTDI (tmp_tmp, INVDI (549755813887))) {
23190 {
23191   {
23192     DI opval = INVDI (549755813887);
23193     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23194     written |= (1 << 4);
23195     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23196   }
23197 frvbf_media_overflow (current_cpu, 8);
23198 }
23199 } else {
23200   {
23201     DI opval = tmp_tmp;
23202     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23203     written |= (1 << 4);
23204     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23205   }
23206 }
23207 }
23208 }
23209 {
23210   DI tmp_tmp;
23211   tmp_tmp = SUBDI (GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_ACC40S (((FLD (f_ACC40Si)) + (1))));
23212 if (GTDI (tmp_tmp, 549755813887)) {
23213 {
23214   {
23215     DI opval = 549755813887;
23216     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23217     written |= (1 << 5);
23218     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23219   }
23220 frvbf_media_overflow (current_cpu, 4);
23221 }
23222 } else {
23223 if (LTDI (tmp_tmp, INVDI (549755813887))) {
23224 {
23225   {
23226     DI opval = INVDI (549755813887);
23227     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23228     written |= (1 << 5);
23229     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23230   }
23231 frvbf_media_overflow (current_cpu, 4);
23232 }
23233 } else {
23234   {
23235     DI opval = tmp_tmp;
23236     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23237     written |= (1 << 5);
23238     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23239   }
23240 }
23241 }
23242 }
23243 }
23244 }
23245 }
23246 }
23247 }
23248
23249   abuf->written = written;
23250   return vpc;
23251 #undef FLD
23252 }
23253
23254 /* mdasaccs: mdasaccs$pack $ACC40Si,$ACC40Sk */
23255
23256 static SEM_PC
23257 SEM_FN_NAME (frvbf,mdasaccs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23258 {
23259 #define FLD(f) abuf->fields.sfmt_mdasaccs.f
23260   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23261   int UNUSED written = 0;
23262   IADDR UNUSED pc = abuf->addr;
23263   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23264
23265 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Si))) {
23266 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
23267 if (ANDSI (FLD (f_ACC40Si), SUBSI (4, 1))) {
23268 frvbf_media_acc_not_aligned (current_cpu);
23269 } else {
23270 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
23271 frvbf_media_acc_not_aligned (current_cpu);
23272 } else {
23273 {
23274 {
23275   DI tmp_tmp;
23276   tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_ACC40S (((FLD (f_ACC40Si)) + (1))));
23277 if (GTDI (tmp_tmp, 549755813887)) {
23278 {
23279   {
23280     DI opval = 549755813887;
23281     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23282     written |= (1 << 6);
23283     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23284   }
23285 frvbf_media_overflow (current_cpu, 8);
23286 }
23287 } else {
23288 if (LTDI (tmp_tmp, INVDI (549755813887))) {
23289 {
23290   {
23291     DI opval = INVDI (549755813887);
23292     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23293     written |= (1 << 6);
23294     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23295   }
23296 frvbf_media_overflow (current_cpu, 8);
23297 }
23298 } else {
23299   {
23300     DI opval = tmp_tmp;
23301     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23302     written |= (1 << 6);
23303     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23304   }
23305 }
23306 }
23307 }
23308 {
23309   DI tmp_tmp;
23310   tmp_tmp = SUBDI (GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_ACC40S (((FLD (f_ACC40Si)) + (1))));
23311 if (GTDI (tmp_tmp, 549755813887)) {
23312 {
23313   {
23314     DI opval = 549755813887;
23315     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23316     written |= (1 << 7);
23317     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23318   }
23319 frvbf_media_overflow (current_cpu, 4);
23320 }
23321 } else {
23322 if (LTDI (tmp_tmp, INVDI (549755813887))) {
23323 {
23324   {
23325     DI opval = INVDI (549755813887);
23326     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23327     written |= (1 << 7);
23328     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23329   }
23330 frvbf_media_overflow (current_cpu, 4);
23331 }
23332 } else {
23333   {
23334     DI opval = tmp_tmp;
23335     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23336     written |= (1 << 7);
23337     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23338   }
23339 }
23340 }
23341 }
23342 {
23343   DI tmp_tmp;
23344   tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Si)) + (2))), GET_H_ACC40S (((FLD (f_ACC40Si)) + (3))));
23345 if (GTDI (tmp_tmp, 549755813887)) {
23346 {
23347   {
23348     DI opval = 549755813887;
23349     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
23350     written |= (1 << 8);
23351     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23352   }
23353 frvbf_media_overflow (current_cpu, 2);
23354 }
23355 } else {
23356 if (LTDI (tmp_tmp, INVDI (549755813887))) {
23357 {
23358   {
23359     DI opval = INVDI (549755813887);
23360     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
23361     written |= (1 << 8);
23362     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23363   }
23364 frvbf_media_overflow (current_cpu, 2);
23365 }
23366 } else {
23367   {
23368     DI opval = tmp_tmp;
23369     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
23370     written |= (1 << 8);
23371     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23372   }
23373 }
23374 }
23375 }
23376 {
23377   DI tmp_tmp;
23378   tmp_tmp = SUBDI (GET_H_ACC40S (((FLD (f_ACC40Si)) + (2))), GET_H_ACC40S (((FLD (f_ACC40Si)) + (3))));
23379 if (GTDI (tmp_tmp, 549755813887)) {
23380 {
23381   {
23382     DI opval = 549755813887;
23383     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
23384     written |= (1 << 9);
23385     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23386   }
23387 frvbf_media_overflow (current_cpu, 1);
23388 }
23389 } else {
23390 if (LTDI (tmp_tmp, INVDI (549755813887))) {
23391 {
23392   {
23393     DI opval = INVDI (549755813887);
23394     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
23395     written |= (1 << 9);
23396     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23397   }
23398 frvbf_media_overflow (current_cpu, 1);
23399 }
23400 } else {
23401   {
23402     DI opval = tmp_tmp;
23403     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
23404     written |= (1 << 9);
23405     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23406   }
23407 }
23408 }
23409 }
23410 }
23411 }
23412 }
23413 }
23414 }
23415
23416   abuf->written = written;
23417   return vpc;
23418 #undef FLD
23419 }
23420
23421 /* mmulhs: mmulhs$pack $FRinti,$FRintj,$ACC40Sk */
23422
23423 static SEM_PC
23424 SEM_FN_NAME (frvbf,mmulhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23425 {
23426 #define FLD(f) abuf->fields.sfmt_cmmachs.f
23427   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23428   int UNUSED written = 0;
23429   IADDR UNUSED pc = abuf->addr;
23430   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23431
23432 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
23433 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
23434 frvbf_media_acc_not_aligned (current_cpu);
23435 } else {
23436 {
23437   HI tmp_argihi;
23438   HI tmp_argilo;
23439   HI tmp_argjhi;
23440   HI tmp_argjlo;
23441 {
23442   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23443   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23444   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23445   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23446 }
23447   {
23448     DI opval = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
23449     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23450     written |= (1 << 9);
23451     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23452   }
23453   {
23454     DI opval = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
23455     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23456     written |= (1 << 10);
23457     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23458   }
23459 }
23460 }
23461 }
23462
23463   abuf->written = written;
23464   return vpc;
23465 #undef FLD
23466 }
23467
23468 /* mmulhu: mmulhu$pack $FRinti,$FRintj,$ACC40Sk */
23469
23470 static SEM_PC
23471 SEM_FN_NAME (frvbf,mmulhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23472 {
23473 #define FLD(f) abuf->fields.sfmt_cmmachs.f
23474   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23475   int UNUSED written = 0;
23476   IADDR UNUSED pc = abuf->addr;
23477   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23478
23479 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
23480 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
23481 frvbf_media_acc_not_aligned (current_cpu);
23482 } else {
23483 {
23484   UHI tmp_argihi;
23485   UHI tmp_argilo;
23486   UHI tmp_argjhi;
23487   UHI tmp_argjlo;
23488 {
23489   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23490   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23491   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23492   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23493 }
23494   {
23495     DI opval = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
23496     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23497     written |= (1 << 9);
23498     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23499   }
23500   {
23501     DI opval = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
23502     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23503     written |= (1 << 10);
23504     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23505   }
23506 }
23507 }
23508 }
23509
23510   abuf->written = written;
23511   return vpc;
23512 #undef FLD
23513 }
23514
23515 /* mmulxhs: mmulxhs$pack $FRinti,$FRintj,$ACC40Sk */
23516
23517 static SEM_PC
23518 SEM_FN_NAME (frvbf,mmulxhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23519 {
23520 #define FLD(f) abuf->fields.sfmt_cmmachs.f
23521   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23522   int UNUSED written = 0;
23523   IADDR UNUSED pc = abuf->addr;
23524   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23525
23526 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
23527 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
23528 frvbf_media_acc_not_aligned (current_cpu);
23529 } else {
23530 {
23531   HI tmp_argihi;
23532   HI tmp_argilo;
23533   HI tmp_argjhi;
23534   HI tmp_argjlo;
23535 {
23536   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23537   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23538   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23539   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23540 }
23541   {
23542     DI opval = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo));
23543     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23544     written |= (1 << 9);
23545     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23546   }
23547   {
23548     DI opval = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi));
23549     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23550     written |= (1 << 10);
23551     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23552   }
23553 }
23554 }
23555 }
23556
23557   abuf->written = written;
23558   return vpc;
23559 #undef FLD
23560 }
23561
23562 /* mmulxhu: mmulxhu$pack $FRinti,$FRintj,$ACC40Sk */
23563
23564 static SEM_PC
23565 SEM_FN_NAME (frvbf,mmulxhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23566 {
23567 #define FLD(f) abuf->fields.sfmt_cmmachs.f
23568   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23569   int UNUSED written = 0;
23570   IADDR UNUSED pc = abuf->addr;
23571   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23572
23573 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
23574 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
23575 frvbf_media_acc_not_aligned (current_cpu);
23576 } else {
23577 {
23578   UHI tmp_argihi;
23579   UHI tmp_argilo;
23580   UHI tmp_argjhi;
23581   UHI tmp_argjlo;
23582 {
23583   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23584   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23585   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23586   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23587 }
23588   {
23589     DI opval = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjlo));
23590     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23591     written |= (1 << 9);
23592     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23593   }
23594   {
23595     DI opval = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjhi));
23596     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23597     written |= (1 << 10);
23598     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23599   }
23600 }
23601 }
23602 }
23603
23604   abuf->written = written;
23605   return vpc;
23606 #undef FLD
23607 }
23608
23609 /* cmmulhs: cmmulhs$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
23610
23611 static SEM_PC
23612 SEM_FN_NAME (frvbf,cmmulhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23613 {
23614 #define FLD(f) abuf->fields.sfmt_cmmachs.f
23615   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23616   int UNUSED written = 0;
23617   IADDR UNUSED pc = abuf->addr;
23618   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23619
23620 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
23621 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
23622 frvbf_media_acc_not_aligned (current_cpu);
23623 } else {
23624 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
23625 {
23626   HI tmp_argihi;
23627   HI tmp_argilo;
23628   HI tmp_argjhi;
23629   HI tmp_argjlo;
23630 {
23631   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23632   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23633   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23634   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23635 }
23636   {
23637     DI opval = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
23638     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23639     written |= (1 << 11);
23640     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23641   }
23642   {
23643     DI opval = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
23644     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23645     written |= (1 << 12);
23646     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23647   }
23648 }
23649 }
23650 }
23651 }
23652
23653   abuf->written = written;
23654   return vpc;
23655 #undef FLD
23656 }
23657
23658 /* cmmulhu: cmmulhu$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
23659
23660 static SEM_PC
23661 SEM_FN_NAME (frvbf,cmmulhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23662 {
23663 #define FLD(f) abuf->fields.sfmt_cmmachs.f
23664   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23665   int UNUSED written = 0;
23666   IADDR UNUSED pc = abuf->addr;
23667   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23668
23669 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
23670 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
23671 frvbf_media_acc_not_aligned (current_cpu);
23672 } else {
23673 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
23674 {
23675   UHI tmp_argihi;
23676   UHI tmp_argilo;
23677   UHI tmp_argjhi;
23678   UHI tmp_argjlo;
23679 {
23680   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23681   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23682   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23683   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23684 }
23685   {
23686     DI opval = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
23687     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23688     written |= (1 << 11);
23689     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23690   }
23691   {
23692     DI opval = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
23693     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23694     written |= (1 << 12);
23695     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23696   }
23697 }
23698 }
23699 }
23700 }
23701
23702   abuf->written = written;
23703   return vpc;
23704 #undef FLD
23705 }
23706
23707 /* mqmulhs: mqmulhs$pack $FRintieven,$FRintjeven,$ACC40Sk */
23708
23709 static SEM_PC
23710 SEM_FN_NAME (frvbf,mqmulhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23711 {
23712 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
23713   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23714   int UNUSED written = 0;
23715   IADDR UNUSED pc = abuf->addr;
23716   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23717
23718 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
23719 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
23720 frvbf_media_acc_not_aligned (current_cpu);
23721 } else {
23722 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
23723 frvbf_media_register_not_aligned (current_cpu);
23724 } else {
23725 {
23726   HI tmp_argihi;
23727   HI tmp_argilo;
23728   HI tmp_argjhi;
23729   HI tmp_argjlo;
23730 {
23731   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23732   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23733   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23734   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23735 }
23736   {
23737     DI opval = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
23738     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23739     written |= (1 << 13);
23740     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23741   }
23742   {
23743     DI opval = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
23744     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23745     written |= (1 << 14);
23746     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23747   }
23748 {
23749   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23750   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23751   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23752   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23753 }
23754   {
23755     DI opval = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
23756     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
23757     written |= (1 << 15);
23758     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23759   }
23760   {
23761     DI opval = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
23762     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
23763     written |= (1 << 16);
23764     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23765   }
23766 }
23767 }
23768 }
23769 }
23770
23771   abuf->written = written;
23772   return vpc;
23773 #undef FLD
23774 }
23775
23776 /* mqmulhu: mqmulhu$pack $FRintieven,$FRintjeven,$ACC40Sk */
23777
23778 static SEM_PC
23779 SEM_FN_NAME (frvbf,mqmulhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23780 {
23781 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
23782   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23783   int UNUSED written = 0;
23784   IADDR UNUSED pc = abuf->addr;
23785   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23786
23787 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
23788 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
23789 frvbf_media_acc_not_aligned (current_cpu);
23790 } else {
23791 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
23792 frvbf_media_register_not_aligned (current_cpu);
23793 } else {
23794 {
23795   UHI tmp_argihi;
23796   UHI tmp_argilo;
23797   UHI tmp_argjhi;
23798   UHI tmp_argjlo;
23799 {
23800   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23801   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23802   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23803   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23804 }
23805   {
23806     DI opval = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
23807     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23808     written |= (1 << 13);
23809     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23810   }
23811   {
23812     DI opval = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
23813     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23814     written |= (1 << 14);
23815     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23816   }
23817 {
23818   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23819   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23820   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23821   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23822 }
23823   {
23824     DI opval = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
23825     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
23826     written |= (1 << 15);
23827     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23828   }
23829   {
23830     DI opval = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
23831     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
23832     written |= (1 << 16);
23833     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23834   }
23835 }
23836 }
23837 }
23838 }
23839
23840   abuf->written = written;
23841   return vpc;
23842 #undef FLD
23843 }
23844
23845 /* mqmulxhs: mqmulxhs$pack $FRintieven,$FRintjeven,$ACC40Sk */
23846
23847 static SEM_PC
23848 SEM_FN_NAME (frvbf,mqmulxhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23849 {
23850 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
23851   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23852   int UNUSED written = 0;
23853   IADDR UNUSED pc = abuf->addr;
23854   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23855
23856 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
23857 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
23858 frvbf_media_acc_not_aligned (current_cpu);
23859 } else {
23860 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
23861 frvbf_media_register_not_aligned (current_cpu);
23862 } else {
23863 {
23864   HI tmp_argihi;
23865   HI tmp_argilo;
23866   HI tmp_argjhi;
23867   HI tmp_argjlo;
23868 {
23869   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23870   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23871   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23872   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23873 }
23874   {
23875     DI opval = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo));
23876     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23877     written |= (1 << 13);
23878     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23879   }
23880   {
23881     DI opval = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi));
23882     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23883     written |= (1 << 14);
23884     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23885   }
23886 {
23887   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23888   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23889   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23890   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23891 }
23892   {
23893     DI opval = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo));
23894     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
23895     written |= (1 << 15);
23896     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23897   }
23898   {
23899     DI opval = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi));
23900     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
23901     written |= (1 << 16);
23902     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23903   }
23904 }
23905 }
23906 }
23907 }
23908
23909   abuf->written = written;
23910   return vpc;
23911 #undef FLD
23912 }
23913
23914 /* mqmulxhu: mqmulxhu$pack $FRintieven,$FRintjeven,$ACC40Sk */
23915
23916 static SEM_PC
23917 SEM_FN_NAME (frvbf,mqmulxhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23918 {
23919 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
23920   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23921   int UNUSED written = 0;
23922   IADDR UNUSED pc = abuf->addr;
23923   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23924
23925 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
23926 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
23927 frvbf_media_acc_not_aligned (current_cpu);
23928 } else {
23929 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
23930 frvbf_media_register_not_aligned (current_cpu);
23931 } else {
23932 {
23933   UHI tmp_argihi;
23934   UHI tmp_argilo;
23935   UHI tmp_argjhi;
23936   UHI tmp_argjlo;
23937 {
23938   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23939   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23940   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23941   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23942 }
23943   {
23944     DI opval = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjlo));
23945     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23946     written |= (1 << 13);
23947     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23948   }
23949   {
23950     DI opval = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjhi));
23951     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23952     written |= (1 << 14);
23953     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23954   }
23955 {
23956   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23957   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23958   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23959   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23960 }
23961   {
23962     DI opval = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjlo));
23963     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
23964     written |= (1 << 15);
23965     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23966   }
23967   {
23968     DI opval = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjhi));
23969     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
23970     written |= (1 << 16);
23971     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23972   }
23973 }
23974 }
23975 }
23976 }
23977
23978   abuf->written = written;
23979   return vpc;
23980 #undef FLD
23981 }
23982
23983 /* cmqmulhs: cmqmulhs$pack $FRintieven,$FRintjeven,$ACC40Sk,$CCi,$cond */
23984
23985 static SEM_PC
23986 SEM_FN_NAME (frvbf,cmqmulhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23987 {
23988 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
23989   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23990   int UNUSED written = 0;
23991   IADDR UNUSED pc = abuf->addr;
23992   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23993
23994 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
23995 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
23996 frvbf_media_acc_not_aligned (current_cpu);
23997 } else {
23998 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
23999 frvbf_media_register_not_aligned (current_cpu);
24000 } else {
24001 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
24002 {
24003   HI tmp_argihi;
24004   HI tmp_argilo;
24005   HI tmp_argjhi;
24006   HI tmp_argjlo;
24007 {
24008   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24009   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24010   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24011   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24012 }
24013   {
24014     DI opval = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
24015     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24016     written |= (1 << 15);
24017     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24018   }
24019   {
24020     DI opval = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
24021     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24022     written |= (1 << 16);
24023     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24024   }
24025 {
24026   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24027   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24028   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24029   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24030 }
24031   {
24032     DI opval = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
24033     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
24034     written |= (1 << 17);
24035     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24036   }
24037   {
24038     DI opval = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
24039     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
24040     written |= (1 << 18);
24041     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24042   }
24043 }
24044 }
24045 }
24046 }
24047 }
24048
24049   abuf->written = written;
24050   return vpc;
24051 #undef FLD
24052 }
24053
24054 /* cmqmulhu: cmqmulhu$pack $FRintieven,$FRintjeven,$ACC40Sk,$CCi,$cond */
24055
24056 static SEM_PC
24057 SEM_FN_NAME (frvbf,cmqmulhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
24058 {
24059 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
24060   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
24061   int UNUSED written = 0;
24062   IADDR UNUSED pc = abuf->addr;
24063   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
24064
24065 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
24066 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
24067 frvbf_media_acc_not_aligned (current_cpu);
24068 } else {
24069 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
24070 frvbf_media_register_not_aligned (current_cpu);
24071 } else {
24072 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
24073 {
24074   UHI tmp_argihi;
24075   UHI tmp_argilo;
24076   UHI tmp_argjhi;
24077   UHI tmp_argjlo;
24078 {
24079   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24080   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24081   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24082   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24083 }
24084   {
24085     DI opval = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
24086     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24087     written |= (1 << 15);
24088     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24089   }
24090   {
24091     DI opval = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
24092     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24093     written |= (1 << 16);
24094     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24095   }
24096 {
24097   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24098   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24099   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24100   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24101 }
24102   {
24103     DI opval = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
24104     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
24105     written |= (1 << 17);
24106     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24107   }
24108   {
24109     DI opval = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
24110     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
24111     written |= (1 << 18);
24112     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24113   }
24114 }
24115 }
24116 }
24117 }
24118 }
24119
24120   abuf->written = written;
24121   return vpc;
24122 #undef FLD
24123 }
24124
24125 /* mmachs: mmachs$pack $FRinti,$FRintj,$ACC40Sk */
24126
24127 static SEM_PC
24128 SEM_FN_NAME (frvbf,mmachs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
24129 {
24130 #define FLD(f) abuf->fields.sfmt_cmmachs.f
24131   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
24132   int UNUSED written = 0;
24133   IADDR UNUSED pc = abuf->addr;
24134   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
24135
24136 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
24137 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
24138 frvbf_media_acc_not_aligned (current_cpu);
24139 } else {
24140 {
24141   HI tmp_argihi;
24142   HI tmp_argilo;
24143   HI tmp_argjhi;
24144   HI tmp_argjlo;
24145 {
24146   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24147   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24148   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24149   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24150 }
24151 {
24152   DI tmp_tmp;
24153   tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Sk)), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi)));
24154 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24155 {
24156   {
24157     DI opval = MAKEDI (127, 0xffffffff);
24158     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24159     written |= (1 << 11);
24160     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24161   }
24162 frvbf_media_overflow (current_cpu, 8);
24163 }
24164 } else {
24165 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24166 {
24167   {
24168     DI opval = MAKEDI (0xffffff80, 0);
24169     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24170     written |= (1 << 11);
24171     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24172   }
24173 frvbf_media_overflow (current_cpu, 8);
24174 }
24175 } else {
24176   {
24177     DI opval = tmp_tmp;
24178     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24179     written |= (1 << 11);
24180     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24181   }
24182 }
24183 }
24184 }
24185 {
24186   DI tmp_tmp;
24187   tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (1))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo)));
24188 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24189 {
24190   {
24191     DI opval = MAKEDI (127, 0xffffffff);
24192     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24193     written |= (1 << 12);
24194     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24195   }
24196 frvbf_media_overflow (current_cpu, 4);
24197 }
24198 } else {
24199 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24200 {
24201   {
24202     DI opval = MAKEDI (0xffffff80, 0);
24203     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24204     written |= (1 << 12);
24205     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24206   }
24207 frvbf_media_overflow (current_cpu, 4);
24208 }
24209 } else {
24210   {
24211     DI opval = tmp_tmp;
24212     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24213     written |= (1 << 12);
24214     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24215   }
24216 }
24217 }
24218 }
24219 }
24220 }
24221 }
24222
24223   abuf->written = written;
24224   return vpc;
24225 #undef FLD
24226 }
24227
24228 /* mmachu: mmachu$pack $FRinti,$FRintj,$ACC40Uk */
24229
24230 static SEM_PC
24231 SEM_FN_NAME (frvbf,mmachu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
24232 {
24233 #define FLD(f) abuf->fields.sfmt_cmmachu.f
24234   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
24235   int UNUSED written = 0;
24236   IADDR UNUSED pc = abuf->addr;
24237   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
24238
24239 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Uk))) {
24240 if (ANDSI (FLD (f_ACC40Uk), SUBSI (2, 1))) {
24241 frvbf_media_acc_not_aligned (current_cpu);
24242 } else {
24243 {
24244   UHI tmp_argihi;
24245   UHI tmp_argilo;
24246   UHI tmp_argjhi;
24247   UHI tmp_argjlo;
24248 {
24249   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24250   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24251   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24252   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24253 }
24254 {
24255   DI tmp_tmp;
24256   tmp_tmp = ADDDI (GET_H_ACC40U (FLD (f_ACC40Uk)), MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi)));
24257 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
24258 {
24259   {
24260     UDI opval = MAKEDI (255, 0xffffffff);
24261     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24262     written |= (1 << 11);
24263     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24264   }
24265 frvbf_media_overflow (current_cpu, 8);
24266 }
24267 } else {
24268 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
24269 {
24270   {
24271     UDI opval = MAKEDI (0, 0);
24272     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24273     written |= (1 << 11);
24274     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24275   }
24276 frvbf_media_overflow (current_cpu, 8);
24277 }
24278 } else {
24279   {
24280     UDI opval = tmp_tmp;
24281     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24282     written |= (1 << 11);
24283     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24284   }
24285 }
24286 }
24287 }
24288 {
24289   DI tmp_tmp;
24290   tmp_tmp = ADDDI (GET_H_ACC40U (((FLD (f_ACC40Uk)) + (1))), MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo)));
24291 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
24292 {
24293   {
24294     UDI opval = MAKEDI (255, 0xffffffff);
24295     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
24296     written |= (1 << 12);
24297     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24298   }
24299 frvbf_media_overflow (current_cpu, 4);
24300 }
24301 } else {
24302 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
24303 {
24304   {
24305     UDI opval = MAKEDI (0, 0);
24306     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
24307     written |= (1 << 12);
24308     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24309   }
24310 frvbf_media_overflow (current_cpu, 4);
24311 }
24312 } else {
24313   {
24314     UDI opval = tmp_tmp;
24315     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
24316     written |= (1 << 12);
24317     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24318   }
24319 }
24320 }
24321 }
24322 }
24323 }
24324 }
24325
24326   abuf->written = written;
24327   return vpc;
24328 #undef FLD
24329 }
24330
24331 /* mmrdhs: mmrdhs$pack $FRinti,$FRintj,$ACC40Sk */
24332
24333 static SEM_PC
24334 SEM_FN_NAME (frvbf,mmrdhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
24335 {
24336 #define FLD(f) abuf->fields.sfmt_cmmachs.f
24337   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
24338   int UNUSED written = 0;
24339   IADDR UNUSED pc = abuf->addr;
24340   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
24341
24342 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
24343 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
24344 frvbf_media_acc_not_aligned (current_cpu);
24345 } else {
24346 {
24347   HI tmp_argihi;
24348   HI tmp_argilo;
24349   HI tmp_argjhi;
24350   HI tmp_argjlo;
24351 {
24352   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24353   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24354   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24355   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24356 }
24357 {
24358   DI tmp_tmp;
24359   tmp_tmp = SUBDI (GET_H_ACC40S (FLD (f_ACC40Sk)), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi)));
24360 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24361 {
24362   {
24363     DI opval = MAKEDI (127, 0xffffffff);
24364     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24365     written |= (1 << 11);
24366     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24367   }
24368 frvbf_media_overflow (current_cpu, 8);
24369 }
24370 } else {
24371 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24372 {
24373   {
24374     DI opval = MAKEDI (0xffffff80, 0);
24375     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24376     written |= (1 << 11);
24377     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24378   }
24379 frvbf_media_overflow (current_cpu, 8);
24380 }
24381 } else {
24382   {
24383     DI opval = tmp_tmp;
24384     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24385     written |= (1 << 11);
24386     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24387   }
24388 }
24389 }
24390 }
24391 {
24392   DI tmp_tmp;
24393   tmp_tmp = SUBDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (1))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo)));
24394 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24395 {
24396   {
24397     DI opval = MAKEDI (127, 0xffffffff);
24398     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24399     written |= (1 << 12);
24400     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24401   }
24402 frvbf_media_overflow (current_cpu, 4);
24403 }
24404 } else {
24405 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24406 {
24407   {
24408     DI opval = MAKEDI (0xffffff80, 0);
24409     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24410     written |= (1 << 12);
24411     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24412   }
24413 frvbf_media_overflow (current_cpu, 4);
24414 }
24415 } else {
24416   {
24417     DI opval = tmp_tmp;
24418     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24419     written |= (1 << 12);
24420     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24421   }
24422 }
24423 }
24424 }
24425 }
24426 }
24427 }
24428
24429   abuf->written = written;
24430   return vpc;
24431 #undef FLD
24432 }
24433
24434 /* mmrdhu: mmrdhu$pack $FRinti,$FRintj,$ACC40Uk */
24435
24436 static SEM_PC
24437 SEM_FN_NAME (frvbf,mmrdhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
24438 {
24439 #define FLD(f) abuf->fields.sfmt_cmmachu.f
24440   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
24441   int UNUSED written = 0;
24442   IADDR UNUSED pc = abuf->addr;
24443   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
24444
24445 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Uk))) {
24446 if (ANDSI (FLD (f_ACC40Uk), SUBSI (2, 1))) {
24447 frvbf_media_acc_not_aligned (current_cpu);
24448 } else {
24449 {
24450   UHI tmp_argihi;
24451   UHI tmp_argilo;
24452   UHI tmp_argjhi;
24453   UHI tmp_argjlo;
24454 {
24455   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24456   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24457   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24458   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24459 }
24460 {
24461   DI tmp_tmp;
24462   tmp_tmp = SUBDI (GET_H_ACC40U (FLD (f_ACC40Uk)), MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi)));
24463 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
24464 {
24465   {
24466     UDI opval = MAKEDI (255, 0xffffffff);
24467     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24468     written |= (1 << 11);
24469     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24470   }
24471 frvbf_media_overflow (current_cpu, 8);
24472 }
24473 } else {
24474 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
24475 {
24476   {
24477     UDI opval = MAKEDI (0, 0);
24478     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24479     written |= (1 << 11);
24480     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24481   }
24482 frvbf_media_overflow (current_cpu, 8);
24483 }
24484 } else {
24485   {
24486     UDI opval = tmp_tmp;
24487     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24488     written |= (1 << 11);
24489     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24490   }
24491 }
24492 }
24493 }
24494 {
24495   DI tmp_tmp;
24496   tmp_tmp = SUBDI (GET_H_ACC40U (((FLD (f_ACC40Uk)) + (1))), MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo)));
24497 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
24498 {
24499   {
24500     UDI opval = MAKEDI (255, 0xffffffff);
24501     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
24502     written |= (1 << 12);
24503     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24504   }
24505 frvbf_media_overflow (current_cpu, 4);
24506 }
24507 } else {
24508 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
24509 {
24510   {
24511     UDI opval = MAKEDI (0, 0);
24512     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
24513     written |= (1 << 12);
24514     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24515   }
24516 frvbf_media_overflow (current_cpu, 4);
24517 }
24518 } else {
24519   {
24520     UDI opval = tmp_tmp;
24521     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
24522     written |= (1 << 12);
24523     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24524   }
24525 }
24526 }
24527 }
24528 }
24529 }
24530 }
24531
24532   abuf->written = written;
24533   return vpc;
24534 #undef FLD
24535 }
24536
24537 /* cmmachs: cmmachs$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
24538
24539 static SEM_PC
24540 SEM_FN_NAME (frvbf,cmmachs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
24541 {
24542 #define FLD(f) abuf->fields.sfmt_cmmachs.f
24543   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
24544   int UNUSED written = 0;
24545   IADDR UNUSED pc = abuf->addr;
24546   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
24547
24548 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
24549 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
24550 frvbf_media_acc_not_aligned (current_cpu);
24551 } else {
24552 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
24553 {
24554   HI tmp_argihi;
24555   HI tmp_argilo;
24556   HI tmp_argjhi;
24557   HI tmp_argjlo;
24558 {
24559   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24560   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24561   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24562   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24563 }
24564 {
24565   DI tmp_tmp;
24566   tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Sk)), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi)));
24567 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24568 {
24569   {
24570     DI opval = MAKEDI (127, 0xffffffff);
24571     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24572     written |= (1 << 13);
24573     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24574   }
24575 frvbf_media_overflow (current_cpu, 8);
24576 }
24577 } else {
24578 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24579 {
24580   {
24581     DI opval = MAKEDI (0xffffff80, 0);
24582     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24583     written |= (1 << 13);
24584     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24585   }
24586 frvbf_media_overflow (current_cpu, 8);
24587 }
24588 } else {
24589   {
24590     DI opval = tmp_tmp;
24591     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24592     written |= (1 << 13);
24593     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24594   }
24595 }
24596 }
24597 }
24598 {
24599   DI tmp_tmp;
24600   tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (1))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo)));
24601 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24602 {
24603   {
24604     DI opval = MAKEDI (127, 0xffffffff);
24605     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24606     written |= (1 << 14);
24607     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24608   }
24609 frvbf_media_overflow (current_cpu, 4);
24610 }
24611 } else {
24612 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24613 {
24614   {
24615     DI opval = MAKEDI (0xffffff80, 0);
24616     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24617     written |= (1 << 14);
24618     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24619   }
24620 frvbf_media_overflow (current_cpu, 4);
24621 }
24622 } else {
24623   {
24624     DI opval = tmp_tmp;
24625     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24626     written |= (1 << 14);
24627     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24628   }
24629 }
24630 }
24631 }
24632 }
24633 }
24634 }
24635 }
24636
24637   abuf->written = written;
24638   return vpc;
24639 #undef FLD
24640 }
24641
24642 /* cmmachu: cmmachu$pack $FRinti,$FRintj,$ACC40Uk,$CCi,$cond */
24643
24644 static SEM_PC
24645 SEM_FN_NAME (frvbf,cmmachu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
24646 {
24647 #define FLD(f) abuf->fields.sfmt_cmmachu.f
24648   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
24649   int UNUSED written = 0;
24650   IADDR UNUSED pc = abuf->addr;
24651   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
24652
24653 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Uk))) {
24654 if (ANDSI (FLD (f_ACC40Uk), SUBSI (2, 1))) {
24655 frvbf_media_acc_not_aligned (current_cpu);
24656 } else {
24657 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
24658 {
24659   UHI tmp_argihi;
24660   UHI tmp_argilo;
24661   UHI tmp_argjhi;
24662   UHI tmp_argjlo;
24663 {
24664   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24665   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24666   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24667   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24668 }
24669 {
24670   DI tmp_tmp;
24671   tmp_tmp = ADDDI (GET_H_ACC40U (FLD (f_ACC40Uk)), MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi)));
24672 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
24673 {
24674   {
24675     UDI opval = MAKEDI (255, 0xffffffff);
24676     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24677     written |= (1 << 13);
24678     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24679   }
24680 frvbf_media_overflow (current_cpu, 8);
24681 }
24682 } else {
24683 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
24684 {
24685   {
24686     UDI opval = MAKEDI (0, 0);
24687     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24688     written |= (1 << 13);
24689     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24690   }
24691 frvbf_media_overflow (current_cpu, 8);
24692 }
24693 } else {
24694   {
24695     UDI opval = tmp_tmp;
24696     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24697     written |= (1 << 13);
24698     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24699   }
24700 }
24701 }
24702 }
24703 {
24704   DI tmp_tmp;
24705   tmp_tmp = ADDDI (GET_H_ACC40U (((FLD (f_ACC40Uk)) + (1))), MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo)));
24706 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
24707 {
24708   {
24709     UDI opval = MAKEDI (255, 0xffffffff);
24710     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
24711     written |= (1 << 14);
24712     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24713   }
24714 frvbf_media_overflow (current_cpu, 4);
24715 }
24716 } else {
24717 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
24718 {
24719   {
24720     UDI opval = MAKEDI (0, 0);
24721     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
24722     written |= (1 << 14);
24723     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24724   }
24725 frvbf_media_overflow (current_cpu, 4);
24726 }
24727 } else {
24728   {
24729     UDI opval = tmp_tmp;
24730     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
24731     written |= (1 << 14);
24732     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24733   }
24734 }
24735 }
24736 }
24737 }
24738 }
24739 }
24740 }
24741
24742   abuf->written = written;
24743   return vpc;
24744 #undef FLD
24745 }
24746
24747 /* mqmachs: mqmachs$pack $FRintieven,$FRintjeven,$ACC40Sk */
24748
24749 static SEM_PC
24750 SEM_FN_NAME (frvbf,mqmachs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
24751 {
24752 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
24753   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
24754   int UNUSED written = 0;
24755   IADDR UNUSED pc = abuf->addr;
24756   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
24757
24758 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
24759 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
24760 frvbf_media_acc_not_aligned (current_cpu);
24761 } else {
24762 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
24763 frvbf_media_register_not_aligned (current_cpu);
24764 } else {
24765 {
24766   HI tmp_argihi;
24767   HI tmp_argilo;
24768   HI tmp_argjhi;
24769   HI tmp_argjlo;
24770 {
24771   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24772   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24773   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24774   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24775 }
24776 {
24777   DI tmp_tmp;
24778   tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Sk)), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi)));
24779 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24780 {
24781   {
24782     DI opval = MAKEDI (127, 0xffffffff);
24783     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24784     written |= (1 << 17);
24785     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24786   }
24787 frvbf_media_overflow (current_cpu, 8);
24788 }
24789 } else {
24790 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24791 {
24792   {
24793     DI opval = MAKEDI (0xffffff80, 0);
24794     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24795     written |= (1 << 17);
24796     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24797   }
24798 frvbf_media_overflow (current_cpu, 8);
24799 }
24800 } else {
24801   {
24802     DI opval = tmp_tmp;
24803     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24804     written |= (1 << 17);
24805     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24806   }
24807 }
24808 }
24809 }
24810 {
24811   DI tmp_tmp;
24812   tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (1))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo)));
24813 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24814 {
24815   {
24816     DI opval = MAKEDI (127, 0xffffffff);
24817     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24818     written |= (1 << 18);
24819     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24820   }
24821 frvbf_media_overflow (current_cpu, 4);
24822 }
24823 } else {
24824 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24825 {
24826   {
24827     DI opval = MAKEDI (0xffffff80, 0);
24828     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24829     written |= (1 << 18);
24830     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24831   }
24832 frvbf_media_overflow (current_cpu, 4);
24833 }
24834 } else {
24835   {
24836     DI opval = tmp_tmp;
24837     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24838     written |= (1 << 18);
24839     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24840   }
24841 }
24842 }
24843 }
24844 {
24845   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24846   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24847   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24848   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24849 }
24850 {
24851   DI tmp_tmp;
24852   tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (2))), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi)));
24853 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24854 {
24855   {
24856     DI opval = MAKEDI (127, 0xffffffff);
24857     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
24858     written |= (1 << 19);
24859     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24860   }
24861 frvbf_media_overflow (current_cpu, 2);
24862 }
24863 } else {
24864 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24865 {
24866   {
24867     DI opval = MAKEDI (0xffffff80, 0);
24868     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
24869     written |= (1 << 19);
24870     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24871   }
24872 frvbf_media_overflow (current_cpu, 2);
24873 }
24874 } else {
24875   {
24876     DI opval = tmp_tmp;
24877     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
24878     written |= (1 << 19);
24879     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24880   }
24881 }
24882 }
24883 }
24884 {
24885   DI tmp_tmp;
24886   tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (3))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo)));
24887 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24888 {
24889   {
24890     DI opval = MAKEDI (127, 0xffffffff);
24891     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
24892     written |= (1 << 20);
24893     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24894   }
24895 frvbf_media_overflow (current_cpu, 1);
24896 }
24897 } else {
24898 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24899 {
24900   {
24901     DI opval = MAKEDI (0xffffff80, 0);
24902     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
24903     written |= (1 << 20);
24904     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24905   }
24906 frvbf_media_overflow (current_cpu, 1);
24907 }
24908 } else {
24909   {
24910     DI opval = tmp_tmp;
24911     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
24912     written |= (1 << 20);
24913     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24914   }
24915 }
24916 }
24917 }
24918 }
24919 }
24920 }
24921 }
24922
24923   abuf->written = written;
24924   return vpc;
24925 #undef FLD
24926 }
24927
24928 /* mqmachu: mqmachu$pack $FRintieven,$FRintjeven,$ACC40Uk */
24929
24930 static SEM_PC
24931 SEM_FN_NAME (frvbf,mqmachu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
24932 {
24933 #define FLD(f) abuf->fields.sfmt_cmqmachu.f
24934   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
24935   int UNUSED written = 0;
24936   IADDR UNUSED pc = abuf->addr;
24937   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
24938
24939 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Uk))) {
24940 if (ANDSI (FLD (f_ACC40Uk), SUBSI (4, 1))) {
24941 frvbf_media_acc_not_aligned (current_cpu);
24942 } else {
24943 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
24944 frvbf_media_register_not_aligned (current_cpu);
24945 } else {
24946 {
24947   UHI tmp_argihi;
24948   UHI tmp_argilo;
24949   UHI tmp_argjhi;
24950   UHI tmp_argjlo;
24951 {
24952   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24953   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24954   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24955   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24956 }
24957 {
24958   DI tmp_tmp;
24959   tmp_tmp = ADDDI (GET_H_ACC40U (FLD (f_ACC40Uk)), MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi)));
24960 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
24961 {
24962   {
24963     UDI opval = MAKEDI (255, 0xffffffff);
24964     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24965     written |= (1 << 17);
24966     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24967   }
24968 frvbf_media_overflow (current_cpu, 8);
24969 }
24970 } else {
24971 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
24972 {
24973   {
24974     UDI opval = MAKEDI (0, 0);
24975     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24976     written |= (1 << 17);
24977     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24978   }
24979 frvbf_media_overflow (current_cpu, 8);
24980 }
24981 } else {
24982   {
24983     UDI opval = tmp_tmp;
24984     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24985     written |= (1 << 17);
24986     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24987   }
24988 }
24989 }
24990 }
24991 {
24992   DI tmp_tmp;
24993   tmp_tmp = ADDDI (GET_H_ACC40U (((FLD (f_ACC40Uk)) + (1))), MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo)));
24994 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
24995 {
24996   {
24997     UDI opval = MAKEDI (255, 0xffffffff);
24998     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
24999     written |= (1 << 18);
25000     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25001   }
25002 frvbf_media_overflow (current_cpu, 4);
25003 }
25004 } else {
25005 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
25006 {
25007   {
25008     UDI opval = MAKEDI (0, 0);
25009     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
25010     written |= (1 << 18);
25011     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25012   }
25013 frvbf_media_overflow (current_cpu, 4);
25014 }
25015 } else {
25016   {
25017     UDI opval = tmp_tmp;
25018     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
25019     written |= (1 << 18);
25020     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25021   }
25022 }
25023 }
25024 }
25025 {
25026   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25027   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25028   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25029   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25030 }
25031 {
25032   DI tmp_tmp;
25033   tmp_tmp = ADDDI (GET_H_ACC40U (((FLD (f_ACC40Uk)) + (2))), MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi)));
25034 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
25035 {
25036   {
25037     UDI opval = MAKEDI (255, 0xffffffff);
25038     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (2)), opval);
25039     written |= (1 << 19);
25040     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25041   }
25042 frvbf_media_overflow (current_cpu, 2);
25043 }
25044 } else {
25045 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
25046 {
25047   {
25048     UDI opval = MAKEDI (0, 0);
25049     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (2)), opval);
25050     written |= (1 << 19);
25051     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25052   }
25053 frvbf_media_overflow (current_cpu, 2);
25054 }
25055 } else {
25056   {
25057     UDI opval = tmp_tmp;
25058     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (2)), opval);
25059     written |= (1 << 19);
25060     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25061   }
25062 }
25063 }
25064 }
25065 {
25066   DI tmp_tmp;
25067   tmp_tmp = ADDDI (GET_H_ACC40U (((FLD (f_ACC40Uk)) + (3))), MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo)));
25068 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
25069 {
25070   {
25071     UDI opval = MAKEDI (255, 0xffffffff);
25072     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (3)), opval);
25073     written |= (1 << 20);
25074     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25075   }
25076 frvbf_media_overflow (current_cpu, 1);
25077 }
25078 } else {
25079 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
25080 {
25081   {
25082     UDI opval = MAKEDI (0, 0);
25083     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (3)), opval);
25084     written |= (1 << 20);
25085     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25086   }
25087 frvbf_media_overflow (current_cpu, 1);
25088 }
25089 } else {
25090   {
25091     UDI opval = tmp_tmp;
25092     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (3)), opval);
25093     written |= (1 << 20);
25094     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25095   }
25096 }
25097 }
25098 }
25099 }
25100 }
25101 }
25102 }
25103
25104   abuf->written = written;
25105   return vpc;
25106 #undef FLD
25107 }
25108
25109 /* cmqmachs: cmqmachs$pack $FRintieven,$FRintjeven,$ACC40Sk,$CCi,$cond */
25110
25111 static SEM_PC
25112 SEM_FN_NAME (frvbf,cmqmachs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
25113 {
25114 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
25115   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
25116   int UNUSED written = 0;
25117   IADDR UNUSED pc = abuf->addr;
25118   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
25119
25120 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
25121 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
25122 frvbf_media_acc_not_aligned (current_cpu);
25123 } else {
25124 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
25125 frvbf_media_register_not_aligned (current_cpu);
25126 } else {
25127 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
25128 {
25129   HI tmp_argihi;
25130   HI tmp_argilo;
25131   HI tmp_argjhi;
25132   HI tmp_argjlo;
25133 {
25134   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25135   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25136   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25137   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25138 }
25139 {
25140   DI tmp_tmp;
25141   tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Sk)), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi)));
25142 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25143 {
25144   {
25145     DI opval = MAKEDI (127, 0xffffffff);
25146     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25147     written |= (1 << 19);
25148     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25149   }
25150 frvbf_media_overflow (current_cpu, 8);
25151 }
25152 } else {
25153 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25154 {
25155   {
25156     DI opval = MAKEDI (0xffffff80, 0);
25157     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25158     written |= (1 << 19);
25159     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25160   }
25161 frvbf_media_overflow (current_cpu, 8);
25162 }
25163 } else {
25164   {
25165     DI opval = tmp_tmp;
25166     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25167     written |= (1 << 19);
25168     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25169   }
25170 }
25171 }
25172 }
25173 {
25174   DI tmp_tmp;
25175   tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (1))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo)));
25176 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25177 {
25178   {
25179     DI opval = MAKEDI (127, 0xffffffff);
25180     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
25181     written |= (1 << 20);
25182     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25183   }
25184 frvbf_media_overflow (current_cpu, 4);
25185 }
25186 } else {
25187 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25188 {
25189   {
25190     DI opval = MAKEDI (0xffffff80, 0);
25191     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
25192     written |= (1 << 20);
25193     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25194   }
25195 frvbf_media_overflow (current_cpu, 4);
25196 }
25197 } else {
25198   {
25199     DI opval = tmp_tmp;
25200     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
25201     written |= (1 << 20);
25202     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25203   }
25204 }
25205 }
25206 }
25207 {
25208   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25209   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25210   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25211   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25212 }
25213 {
25214   DI tmp_tmp;
25215   tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (2))), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi)));
25216 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25217 {
25218   {
25219     DI opval = MAKEDI (127, 0xffffffff);
25220     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
25221     written |= (1 << 21);
25222     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25223   }
25224 frvbf_media_overflow (current_cpu, 2);
25225 }
25226 } else {
25227 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25228 {
25229   {
25230     DI opval = MAKEDI (0xffffff80, 0);
25231     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
25232     written |= (1 << 21);
25233     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25234   }
25235 frvbf_media_overflow (current_cpu, 2);
25236 }
25237 } else {
25238   {
25239     DI opval = tmp_tmp;
25240     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
25241     written |= (1 << 21);
25242     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25243   }
25244 }
25245 }
25246 }
25247 {
25248   DI tmp_tmp;
25249   tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (3))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo)));
25250 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25251 {
25252   {
25253     DI opval = MAKEDI (127, 0xffffffff);
25254     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
25255     written |= (1 << 22);
25256     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25257   }
25258 frvbf_media_overflow (current_cpu, 1);
25259 }
25260 } else {
25261 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25262 {
25263   {
25264     DI opval = MAKEDI (0xffffff80, 0);
25265     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
25266     written |= (1 << 22);
25267     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25268   }
25269 frvbf_media_overflow (current_cpu, 1);
25270 }
25271 } else {
25272   {
25273     DI opval = tmp_tmp;
25274     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
25275     written |= (1 << 22);
25276     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25277   }
25278 }
25279 }
25280 }
25281 }
25282 }
25283 }
25284 }
25285 }
25286
25287   abuf->written = written;
25288   return vpc;
25289 #undef FLD
25290 }
25291
25292 /* cmqmachu: cmqmachu$pack $FRintieven,$FRintjeven,$ACC40Uk,$CCi,$cond */
25293
25294 static SEM_PC
25295 SEM_FN_NAME (frvbf,cmqmachu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
25296 {
25297 #define FLD(f) abuf->fields.sfmt_cmqmachu.f
25298   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
25299   int UNUSED written = 0;
25300   IADDR UNUSED pc = abuf->addr;
25301   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
25302
25303 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Uk))) {
25304 if (ANDSI (FLD (f_ACC40Uk), SUBSI (4, 1))) {
25305 frvbf_media_acc_not_aligned (current_cpu);
25306 } else {
25307 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
25308 frvbf_media_register_not_aligned (current_cpu);
25309 } else {
25310 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
25311 {
25312   UHI tmp_argihi;
25313   UHI tmp_argilo;
25314   UHI tmp_argjhi;
25315   UHI tmp_argjlo;
25316 {
25317   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25318   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25319   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25320   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25321 }
25322 {
25323   DI tmp_tmp;
25324   tmp_tmp = ADDDI (GET_H_ACC40U (FLD (f_ACC40Uk)), MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi)));
25325 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
25326 {
25327   {
25328     UDI opval = MAKEDI (255, 0xffffffff);
25329     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
25330     written |= (1 << 19);
25331     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25332   }
25333 frvbf_media_overflow (current_cpu, 8);
25334 }
25335 } else {
25336 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
25337 {
25338   {
25339     UDI opval = MAKEDI (0, 0);
25340     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
25341     written |= (1 << 19);
25342     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25343   }
25344 frvbf_media_overflow (current_cpu, 8);
25345 }
25346 } else {
25347   {
25348     UDI opval = tmp_tmp;
25349     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
25350     written |= (1 << 19);
25351     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25352   }
25353 }
25354 }
25355 }
25356 {
25357   DI tmp_tmp;
25358   tmp_tmp = ADDDI (GET_H_ACC40U (((FLD (f_ACC40Uk)) + (1))), MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo)));
25359 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
25360 {
25361   {
25362     UDI opval = MAKEDI (255, 0xffffffff);
25363     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
25364     written |= (1 << 20);
25365     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25366   }
25367 frvbf_media_overflow (current_cpu, 4);
25368 }
25369 } else {
25370 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
25371 {
25372   {
25373     UDI opval = MAKEDI (0, 0);
25374     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
25375     written |= (1 << 20);
25376     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25377   }
25378 frvbf_media_overflow (current_cpu, 4);
25379 }
25380 } else {
25381   {
25382     UDI opval = tmp_tmp;
25383     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
25384     written |= (1 << 20);
25385     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25386   }
25387 }
25388 }
25389 }
25390 {
25391   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25392   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25393   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25394   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25395 }
25396 {
25397   DI tmp_tmp;
25398   tmp_tmp = ADDDI (GET_H_ACC40U (((FLD (f_ACC40Uk)) + (2))), MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi)));
25399 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
25400 {
25401   {
25402     UDI opval = MAKEDI (255, 0xffffffff);
25403     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (2)), opval);
25404     written |= (1 << 21);
25405     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25406   }
25407 frvbf_media_overflow (current_cpu, 2);
25408 }
25409 } else {
25410 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
25411 {
25412   {
25413     UDI opval = MAKEDI (0, 0);
25414     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (2)), opval);
25415     written |= (1 << 21);
25416     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25417   }
25418 frvbf_media_overflow (current_cpu, 2);
25419 }
25420 } else {
25421   {
25422     UDI opval = tmp_tmp;
25423     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (2)), opval);
25424     written |= (1 << 21);
25425     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25426   }
25427 }
25428 }
25429 }
25430 {
25431   DI tmp_tmp;
25432   tmp_tmp = ADDDI (GET_H_ACC40U (((FLD (f_ACC40Uk)) + (3))), MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo)));
25433 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
25434 {
25435   {
25436     UDI opval = MAKEDI (255, 0xffffffff);
25437     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (3)), opval);
25438     written |= (1 << 22);
25439     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25440   }
25441 frvbf_media_overflow (current_cpu, 1);
25442 }
25443 } else {
25444 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
25445 {
25446   {
25447     UDI opval = MAKEDI (0, 0);
25448     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (3)), opval);
25449     written |= (1 << 22);
25450     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25451   }
25452 frvbf_media_overflow (current_cpu, 1);
25453 }
25454 } else {
25455   {
25456     UDI opval = tmp_tmp;
25457     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (3)), opval);
25458     written |= (1 << 22);
25459     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25460   }
25461 }
25462 }
25463 }
25464 }
25465 }
25466 }
25467 }
25468 }
25469
25470   abuf->written = written;
25471   return vpc;
25472 #undef FLD
25473 }
25474
25475 /* mqxmachs: mqxmachs$pack $FRintieven,$FRintjeven,$ACC40Sk */
25476
25477 static SEM_PC
25478 SEM_FN_NAME (frvbf,mqxmachs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
25479 {
25480 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
25481   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
25482   int UNUSED written = 0;
25483   IADDR UNUSED pc = abuf->addr;
25484   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
25485
25486 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
25487 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
25488 frvbf_media_acc_not_aligned (current_cpu);
25489 } else {
25490 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
25491 frvbf_media_register_not_aligned (current_cpu);
25492 } else {
25493 {
25494   HI tmp_argihi;
25495   HI tmp_argilo;
25496   HI tmp_argjhi;
25497   HI tmp_argjlo;
25498 {
25499   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25500   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25501   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25502   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25503 }
25504 {
25505   DI tmp_tmp;
25506   tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (2))), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi)));
25507 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25508 {
25509   {
25510     DI opval = MAKEDI (127, 0xffffffff);
25511     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
25512     written |= (1 << 19);
25513     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25514   }
25515 frvbf_media_overflow (current_cpu, 2);
25516 }
25517 } else {
25518 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25519 {
25520   {
25521     DI opval = MAKEDI (0xffffff80, 0);
25522     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
25523     written |= (1 << 19);
25524     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25525   }
25526 frvbf_media_overflow (current_cpu, 2);
25527 }
25528 } else {
25529   {
25530     DI opval = tmp_tmp;
25531     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
25532     written |= (1 << 19);
25533     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25534   }
25535 }
25536 }
25537 }
25538 {
25539   DI tmp_tmp;
25540   tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (3))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo)));
25541 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25542 {
25543   {
25544     DI opval = MAKEDI (127, 0xffffffff);
25545     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
25546     written |= (1 << 20);
25547     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25548   }
25549 frvbf_media_overflow (current_cpu, 1);
25550 }
25551 } else {
25552 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25553 {
25554   {
25555     DI opval = MAKEDI (0xffffff80, 0);
25556     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
25557     written |= (1 << 20);
25558     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25559   }
25560 frvbf_media_overflow (current_cpu, 1);
25561 }
25562 } else {
25563   {
25564     DI opval = tmp_tmp;
25565     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
25566     written |= (1 << 20);
25567     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25568   }
25569 }
25570 }
25571 }
25572 {
25573   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25574   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25575   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25576   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25577 }
25578 {
25579   DI tmp_tmp;
25580   tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Sk)), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi)));
25581 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25582 {
25583   {
25584     DI opval = MAKEDI (127, 0xffffffff);
25585     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25586     written |= (1 << 17);
25587     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25588   }
25589 frvbf_media_overflow (current_cpu, 8);
25590 }
25591 } else {
25592 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25593 {
25594   {
25595     DI opval = MAKEDI (0xffffff80, 0);
25596     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25597     written |= (1 << 17);
25598     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25599   }
25600 frvbf_media_overflow (current_cpu, 8);
25601 }
25602 } else {
25603   {
25604     DI opval = tmp_tmp;
25605     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25606     written |= (1 << 17);
25607     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25608   }
25609 }
25610 }
25611 }
25612 {
25613   DI tmp_tmp;
25614   tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (1))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo)));
25615 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25616 {
25617   {
25618     DI opval = MAKEDI (127, 0xffffffff);
25619     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
25620     written |= (1 << 18);
25621     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25622   }
25623 frvbf_media_overflow (current_cpu, 4);
25624 }
25625 } else {
25626 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25627 {
25628   {
25629     DI opval = MAKEDI (0xffffff80, 0);
25630     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
25631     written |= (1 << 18);
25632     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25633   }
25634 frvbf_media_overflow (current_cpu, 4);
25635 }
25636 } else {
25637   {
25638     DI opval = tmp_tmp;
25639     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
25640     written |= (1 << 18);
25641     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25642   }
25643 }
25644 }
25645 }
25646 }
25647 }
25648 }
25649 }
25650
25651   abuf->written = written;
25652   return vpc;
25653 #undef FLD
25654 }
25655
25656 /* mqxmacxhs: mqxmacxhs$pack $FRintieven,$FRintjeven,$ACC40Sk */
25657
25658 static SEM_PC
25659 SEM_FN_NAME (frvbf,mqxmacxhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
25660 {
25661 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
25662   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
25663   int UNUSED written = 0;
25664   IADDR UNUSED pc = abuf->addr;
25665   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
25666
25667 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
25668 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
25669 frvbf_media_acc_not_aligned (current_cpu);
25670 } else {
25671 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
25672 frvbf_media_register_not_aligned (current_cpu);
25673 } else {
25674 {
25675   HI tmp_argihi;
25676   HI tmp_argilo;
25677   HI tmp_argjhi;
25678   HI tmp_argjlo;
25679 {
25680   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25681   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25682   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25683   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25684 }
25685 {
25686   DI tmp_tmp;
25687   tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (2))), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo)));
25688 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25689 {
25690   {
25691     DI opval = MAKEDI (127, 0xffffffff);
25692     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
25693     written |= (1 << 19);
25694     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25695   }
25696 frvbf_media_overflow (current_cpu, 2);
25697 }
25698 } else {
25699 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25700 {
25701   {
25702     DI opval = MAKEDI (0xffffff80, 0);
25703     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
25704     written |= (1 << 19);
25705     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25706   }
25707 frvbf_media_overflow (current_cpu, 2);
25708 }
25709 } else {
25710   {
25711     DI opval = tmp_tmp;
25712     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
25713     written |= (1 << 19);
25714     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25715   }
25716 }
25717 }
25718 }
25719 {
25720   DI tmp_tmp;
25721   tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (3))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi)));
25722 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25723 {
25724   {
25725     DI opval = MAKEDI (127, 0xffffffff);
25726     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
25727     written |= (1 << 20);
25728     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25729   }
25730 frvbf_media_overflow (current_cpu, 1);
25731 }
25732 } else {
25733 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25734 {
25735   {
25736     DI opval = MAKEDI (0xffffff80, 0);
25737     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
25738     written |= (1 << 20);
25739     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25740   }
25741 frvbf_media_overflow (current_cpu, 1);
25742 }
25743 } else {
25744   {
25745     DI opval = tmp_tmp;
25746     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
25747     written |= (1 << 20);
25748     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25749   }
25750 }
25751 }
25752 }
25753 {
25754   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25755   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25756   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25757   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25758 }
25759 {
25760   DI tmp_tmp;
25761   tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Sk)), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo)));
25762 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25763 {
25764   {
25765     DI opval = MAKEDI (127, 0xffffffff);
25766     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25767     written |= (1 << 17);
25768     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25769   }
25770 frvbf_media_overflow (current_cpu, 8);
25771 }
25772 } else {
25773 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25774 {
25775   {
25776     DI opval = MAKEDI (0xffffff80, 0);
25777     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25778     written |= (1 << 17);
25779     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25780   }
25781 frvbf_media_overflow (current_cpu, 8);
25782 }
25783 } else {
25784   {
25785     DI opval = tmp_tmp;
25786     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25787     written |= (1 << 17);
25788     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25789   }
25790 }
25791 }
25792 }
25793 {
25794   DI tmp_tmp;
25795   tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (1))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi)));
25796 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25797 {
25798   {
25799     DI opval = MAKEDI (127, 0xffffffff);
25800     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
25801     written |= (1 << 18);
25802     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25803   }
25804 frvbf_media_overflow (current_cpu, 4);
25805 }
25806 } else {
25807 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25808 {
25809   {
25810     DI opval = MAKEDI (0xffffff80, 0);
25811     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
25812     written |= (1 << 18);
25813     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25814   }
25815 frvbf_media_overflow (current_cpu, 4);
25816 }
25817 } else {
25818   {
25819     DI opval = tmp_tmp;
25820     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
25821     written |= (1 << 18);
25822     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25823   }
25824 }
25825 }
25826 }
25827 }
25828 }
25829 }
25830 }
25831
25832   abuf->written = written;
25833   return vpc;
25834 #undef FLD
25835 }
25836
25837 /* mqmacxhs: mqmacxhs$pack $FRintieven,$FRintjeven,$ACC40Sk */
25838
25839 static SEM_PC
25840 SEM_FN_NAME (frvbf,mqmacxhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
25841 {
25842 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
25843   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
25844   int UNUSED written = 0;
25845   IADDR UNUSED pc = abuf->addr;
25846   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
25847
25848 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
25849 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
25850 frvbf_media_acc_not_aligned (current_cpu);
25851 } else {
25852 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
25853 frvbf_media_register_not_aligned (current_cpu);
25854 } else {
25855 {
25856   HI tmp_argihi;
25857   HI tmp_argilo;
25858   HI tmp_argjhi;
25859   HI tmp_argjlo;
25860 {
25861   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25862   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25863   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25864   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25865 }
25866 {
25867   DI tmp_tmp;
25868   tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Sk)), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo)));
25869 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25870 {
25871   {
25872     DI opval = MAKEDI (127, 0xffffffff);
25873     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25874     written |= (1 << 17);
25875     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25876   }
25877 frvbf_media_overflow (current_cpu, 8);
25878 }
25879 } else {
25880 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25881 {
25882   {
25883     DI opval = MAKEDI (0xffffff80, 0);
25884     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25885     written |= (1 << 17);
25886     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25887   }
25888 frvbf_media_overflow (current_cpu, 8);
25889 }
25890 } else {
25891   {
25892     DI opval = tmp_tmp;
25893     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25894     written |= (1 << 17);
25895     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25896   }
25897 }
25898 }
25899 }
25900 {
25901   DI tmp_tmp;
25902   tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (1))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi)));
25903 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25904 {
25905   {
25906     DI opval = MAKEDI (127, 0xffffffff);
25907     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
25908     written |= (1 << 18);
25909     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25910   }
25911 frvbf_media_overflow (current_cpu, 4);
25912 }
25913 } else {
25914 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25915 {
25916   {
25917     DI opval = MAKEDI (0xffffff80, 0);
25918     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
25919     written |= (1 << 18);
25920     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25921   }
25922 frvbf_media_overflow (current_cpu, 4);
25923 }
25924 } else {
25925   {
25926     DI opval = tmp_tmp;
25927     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
25928     written |= (1 << 18);
25929     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25930   }
25931 }
25932 }
25933 }
25934 {
25935   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25936   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25937   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25938   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25939 }
25940 {
25941   DI tmp_tmp;
25942   tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (2))), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo)));
25943 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25944 {
25945   {
25946     DI opval = MAKEDI (127, 0xffffffff);
25947     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
25948     written |= (1 << 19);
25949     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25950   }
25951 frvbf_media_overflow (current_cpu, 2);
25952 }
25953 } else {
25954 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25955 {
25956   {
25957     DI opval = MAKEDI (0xffffff80, 0);
25958     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
25959     written |= (1 << 19);
25960     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25961   }
25962 frvbf_media_overflow (current_cpu, 2);
25963 }
25964 } else {
25965   {
25966     DI opval = tmp_tmp;
25967     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
25968     written |= (1 << 19);
25969     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25970   }
25971 }
25972 }
25973 }
25974 {
25975   DI tmp_tmp;
25976   tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (3))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi)));
25977 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25978 {
25979   {
25980     DI opval = MAKEDI (127, 0xffffffff);
25981     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
25982     written |= (1 << 20);
25983     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25984   }
25985 frvbf_media_overflow (current_cpu, 1);
25986 }
25987 } else {
25988 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25989 {
25990   {
25991     DI opval = MAKEDI (0xffffff80, 0);
25992     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
25993     written |= (1 << 20);
25994     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25995   }
25996 frvbf_media_overflow (current_cpu, 1);
25997 }
25998 } else {
25999   {
26000     DI opval = tmp_tmp;
26001     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
26002     written |= (1 << 20);
26003     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26004   }
26005 }
26006 }
26007 }
26008 }
26009 }
26010 }
26011 }
26012
26013   abuf->written = written;
26014   return vpc;
26015 #undef FLD
26016 }
26017
26018 /* mcpxrs: mcpxrs$pack $FRinti,$FRintj,$ACC40Sk */
26019
26020 static SEM_PC
26021 SEM_FN_NAME (frvbf,mcpxrs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26022 {
26023 #define FLD(f) abuf->fields.sfmt_cmmachs.f
26024   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26025   int UNUSED written = 0;
26026   IADDR UNUSED pc = abuf->addr;
26027   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26028
26029 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
26030 {
26031   HI tmp_argihi;
26032   HI tmp_argilo;
26033   HI tmp_argjhi;
26034   HI tmp_argjlo;
26035 {
26036   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26037   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26038   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26039   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26040 }
26041 {
26042   DI tmp_tmp1;
26043   DI tmp_tmp2;
26044   tmp_tmp1 = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
26045   tmp_tmp2 = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
26046   tmp_tmp1 = SUBDI (tmp_tmp1, tmp_tmp2);
26047 if (GTDI (tmp_tmp1, MAKEDI (127, 0xffffffff))) {
26048 {
26049   {
26050     DI opval = MAKEDI (127, 0xffffffff);
26051     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26052     written |= (1 << 9);
26053     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26054   }
26055 frvbf_media_overflow (current_cpu, 8);
26056 }
26057 } else {
26058 if (LTDI (tmp_tmp1, MAKEDI (0xffffff80, 0))) {
26059 {
26060   {
26061     DI opval = MAKEDI (0xffffff80, 0);
26062     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26063     written |= (1 << 9);
26064     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26065   }
26066 frvbf_media_overflow (current_cpu, 8);
26067 }
26068 } else {
26069   {
26070     DI opval = tmp_tmp1;
26071     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26072     written |= (1 << 9);
26073     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26074   }
26075 }
26076 }
26077 }
26078 }
26079 }
26080
26081   abuf->written = written;
26082   return vpc;
26083 #undef FLD
26084 }
26085
26086 /* mcpxru: mcpxru$pack $FRinti,$FRintj,$ACC40Sk */
26087
26088 static SEM_PC
26089 SEM_FN_NAME (frvbf,mcpxru) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26090 {
26091 #define FLD(f) abuf->fields.sfmt_cmmachs.f
26092   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26093   int UNUSED written = 0;
26094   IADDR UNUSED pc = abuf->addr;
26095   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26096
26097 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
26098 {
26099   UHI tmp_argihi;
26100   UHI tmp_argilo;
26101   UHI tmp_argjhi;
26102   UHI tmp_argjlo;
26103 {
26104   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26105   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26106   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26107   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26108 }
26109 {
26110   DI tmp_tmp1;
26111   DI tmp_tmp2;
26112   tmp_tmp1 = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
26113   tmp_tmp2 = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
26114   tmp_tmp1 = SUBDI (tmp_tmp1, tmp_tmp2);
26115 if (GTDI (tmp_tmp1, MAKEDI (255, 0xffffffff))) {
26116 {
26117   {
26118     DI opval = MAKEDI (255, 0xffffffff);
26119     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26120     written |= (1 << 9);
26121     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26122   }
26123 frvbf_media_overflow (current_cpu, 8);
26124 }
26125 } else {
26126 if (LTDI (tmp_tmp1, MAKEDI (0, 0))) {
26127 {
26128   {
26129     DI opval = MAKEDI (0, 0);
26130     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26131     written |= (1 << 9);
26132     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26133   }
26134 frvbf_media_overflow (current_cpu, 8);
26135 }
26136 } else {
26137   {
26138     DI opval = tmp_tmp1;
26139     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26140     written |= (1 << 9);
26141     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26142   }
26143 }
26144 }
26145 }
26146 }
26147 }
26148
26149   abuf->written = written;
26150   return vpc;
26151 #undef FLD
26152 }
26153
26154 /* mcpxis: mcpxis$pack $FRinti,$FRintj,$ACC40Sk */
26155
26156 static SEM_PC
26157 SEM_FN_NAME (frvbf,mcpxis) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26158 {
26159 #define FLD(f) abuf->fields.sfmt_cmmachs.f
26160   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26161   int UNUSED written = 0;
26162   IADDR UNUSED pc = abuf->addr;
26163   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26164
26165 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
26166 {
26167   HI tmp_argihi;
26168   HI tmp_argilo;
26169   HI tmp_argjhi;
26170   HI tmp_argjlo;
26171 {
26172   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26173   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26174   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26175   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26176 }
26177 {
26178   DI tmp_tmp1;
26179   DI tmp_tmp2;
26180   tmp_tmp1 = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo));
26181   tmp_tmp2 = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi));
26182   tmp_tmp1 = ADDDI (tmp_tmp1, tmp_tmp2);
26183 if (GTDI (tmp_tmp1, MAKEDI (127, 0xffffffff))) {
26184 {
26185   {
26186     DI opval = MAKEDI (127, 0xffffffff);
26187     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26188     written |= (1 << 9);
26189     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26190   }
26191 frvbf_media_overflow (current_cpu, 8);
26192 }
26193 } else {
26194 if (LTDI (tmp_tmp1, MAKEDI (0xffffff80, 0))) {
26195 {
26196   {
26197     DI opval = MAKEDI (0xffffff80, 0);
26198     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26199     written |= (1 << 9);
26200     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26201   }
26202 frvbf_media_overflow (current_cpu, 8);
26203 }
26204 } else {
26205   {
26206     DI opval = tmp_tmp1;
26207     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26208     written |= (1 << 9);
26209     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26210   }
26211 }
26212 }
26213 }
26214 }
26215 }
26216
26217   abuf->written = written;
26218   return vpc;
26219 #undef FLD
26220 }
26221
26222 /* mcpxiu: mcpxiu$pack $FRinti,$FRintj,$ACC40Sk */
26223
26224 static SEM_PC
26225 SEM_FN_NAME (frvbf,mcpxiu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26226 {
26227 #define FLD(f) abuf->fields.sfmt_cmmachs.f
26228   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26229   int UNUSED written = 0;
26230   IADDR UNUSED pc = abuf->addr;
26231   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26232
26233 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
26234 {
26235   UHI tmp_argihi;
26236   UHI tmp_argilo;
26237   UHI tmp_argjhi;
26238   UHI tmp_argjlo;
26239 {
26240   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26241   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26242   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26243   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26244 }
26245 {
26246   DI tmp_tmp1;
26247   DI tmp_tmp2;
26248   tmp_tmp1 = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjlo));
26249   tmp_tmp2 = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjhi));
26250   tmp_tmp1 = ADDDI (tmp_tmp1, tmp_tmp2);
26251 if (GTDI (tmp_tmp1, MAKEDI (255, 0xffffffff))) {
26252 {
26253   {
26254     DI opval = MAKEDI (255, 0xffffffff);
26255     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26256     written |= (1 << 9);
26257     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26258   }
26259 frvbf_media_overflow (current_cpu, 8);
26260 }
26261 } else {
26262 if (LTDI (tmp_tmp1, MAKEDI (0, 0))) {
26263 {
26264   {
26265     DI opval = MAKEDI (0, 0);
26266     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26267     written |= (1 << 9);
26268     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26269   }
26270 frvbf_media_overflow (current_cpu, 8);
26271 }
26272 } else {
26273   {
26274     DI opval = tmp_tmp1;
26275     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26276     written |= (1 << 9);
26277     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26278   }
26279 }
26280 }
26281 }
26282 }
26283 }
26284
26285   abuf->written = written;
26286   return vpc;
26287 #undef FLD
26288 }
26289
26290 /* cmcpxrs: cmcpxrs$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
26291
26292 static SEM_PC
26293 SEM_FN_NAME (frvbf,cmcpxrs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26294 {
26295 #define FLD(f) abuf->fields.sfmt_cmmachs.f
26296   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26297   int UNUSED written = 0;
26298   IADDR UNUSED pc = abuf->addr;
26299   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26300
26301 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
26302 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
26303 {
26304   HI tmp_argihi;
26305   HI tmp_argilo;
26306   HI tmp_argjhi;
26307   HI tmp_argjlo;
26308 {
26309   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26310   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26311   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26312   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26313 }
26314 {
26315   DI tmp_tmp1;
26316   DI tmp_tmp2;
26317   tmp_tmp1 = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
26318   tmp_tmp2 = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
26319   tmp_tmp1 = SUBDI (tmp_tmp1, tmp_tmp2);
26320 if (GTDI (tmp_tmp1, MAKEDI (127, 0xffffffff))) {
26321 {
26322   {
26323     DI opval = MAKEDI (127, 0xffffffff);
26324     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26325     written |= (1 << 11);
26326     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26327   }
26328 frvbf_media_overflow (current_cpu, 8);
26329 }
26330 } else {
26331 if (LTDI (tmp_tmp1, MAKEDI (0xffffff80, 0))) {
26332 {
26333   {
26334     DI opval = MAKEDI (0xffffff80, 0);
26335     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26336     written |= (1 << 11);
26337     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26338   }
26339 frvbf_media_overflow (current_cpu, 8);
26340 }
26341 } else {
26342   {
26343     DI opval = tmp_tmp1;
26344     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26345     written |= (1 << 11);
26346     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26347   }
26348 }
26349 }
26350 }
26351 }
26352 }
26353 }
26354
26355   abuf->written = written;
26356   return vpc;
26357 #undef FLD
26358 }
26359
26360 /* cmcpxru: cmcpxru$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
26361
26362 static SEM_PC
26363 SEM_FN_NAME (frvbf,cmcpxru) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26364 {
26365 #define FLD(f) abuf->fields.sfmt_cmmachs.f
26366   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26367   int UNUSED written = 0;
26368   IADDR UNUSED pc = abuf->addr;
26369   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26370
26371 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
26372 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
26373 {
26374   UHI tmp_argihi;
26375   UHI tmp_argilo;
26376   UHI tmp_argjhi;
26377   UHI tmp_argjlo;
26378 {
26379   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26380   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26381   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26382   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26383 }
26384 {
26385   DI tmp_tmp1;
26386   DI tmp_tmp2;
26387   tmp_tmp1 = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
26388   tmp_tmp2 = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
26389   tmp_tmp1 = SUBDI (tmp_tmp1, tmp_tmp2);
26390 if (GTDI (tmp_tmp1, MAKEDI (255, 0xffffffff))) {
26391 {
26392   {
26393     DI opval = MAKEDI (255, 0xffffffff);
26394     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26395     written |= (1 << 11);
26396     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26397   }
26398 frvbf_media_overflow (current_cpu, 8);
26399 }
26400 } else {
26401 if (LTDI (tmp_tmp1, MAKEDI (0, 0))) {
26402 {
26403   {
26404     DI opval = MAKEDI (0, 0);
26405     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26406     written |= (1 << 11);
26407     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26408   }
26409 frvbf_media_overflow (current_cpu, 8);
26410 }
26411 } else {
26412   {
26413     DI opval = tmp_tmp1;
26414     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26415     written |= (1 << 11);
26416     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26417   }
26418 }
26419 }
26420 }
26421 }
26422 }
26423 }
26424
26425   abuf->written = written;
26426   return vpc;
26427 #undef FLD
26428 }
26429
26430 /* cmcpxis: cmcpxis$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
26431
26432 static SEM_PC
26433 SEM_FN_NAME (frvbf,cmcpxis) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26434 {
26435 #define FLD(f) abuf->fields.sfmt_cmmachs.f
26436   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26437   int UNUSED written = 0;
26438   IADDR UNUSED pc = abuf->addr;
26439   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26440
26441 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
26442 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
26443 {
26444   HI tmp_argihi;
26445   HI tmp_argilo;
26446   HI tmp_argjhi;
26447   HI tmp_argjlo;
26448 {
26449   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26450   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26451   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26452   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26453 }
26454 {
26455   DI tmp_tmp1;
26456   DI tmp_tmp2;
26457   tmp_tmp1 = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo));
26458   tmp_tmp2 = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi));
26459   tmp_tmp1 = ADDDI (tmp_tmp1, tmp_tmp2);
26460 if (GTDI (tmp_tmp1, MAKEDI (127, 0xffffffff))) {
26461 {
26462   {
26463     DI opval = MAKEDI (127, 0xffffffff);
26464     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26465     written |= (1 << 11);
26466     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26467   }
26468 frvbf_media_overflow (current_cpu, 8);
26469 }
26470 } else {
26471 if (LTDI (tmp_tmp1, MAKEDI (0xffffff80, 0))) {
26472 {
26473   {
26474     DI opval = MAKEDI (0xffffff80, 0);
26475     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26476     written |= (1 << 11);
26477     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26478   }
26479 frvbf_media_overflow (current_cpu, 8);
26480 }
26481 } else {
26482   {
26483     DI opval = tmp_tmp1;
26484     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26485     written |= (1 << 11);
26486     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26487   }
26488 }
26489 }
26490 }
26491 }
26492 }
26493 }
26494
26495   abuf->written = written;
26496   return vpc;
26497 #undef FLD
26498 }
26499
26500 /* cmcpxiu: cmcpxiu$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
26501
26502 static SEM_PC
26503 SEM_FN_NAME (frvbf,cmcpxiu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26504 {
26505 #define FLD(f) abuf->fields.sfmt_cmmachs.f
26506   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26507   int UNUSED written = 0;
26508   IADDR UNUSED pc = abuf->addr;
26509   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26510
26511 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
26512 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
26513 {
26514   UHI tmp_argihi;
26515   UHI tmp_argilo;
26516   UHI tmp_argjhi;
26517   UHI tmp_argjlo;
26518 {
26519   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26520   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26521   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26522   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26523 }
26524 {
26525   DI tmp_tmp1;
26526   DI tmp_tmp2;
26527   tmp_tmp1 = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjlo));
26528   tmp_tmp2 = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjhi));
26529   tmp_tmp1 = ADDDI (tmp_tmp1, tmp_tmp2);
26530 if (GTDI (tmp_tmp1, MAKEDI (255, 0xffffffff))) {
26531 {
26532   {
26533     DI opval = MAKEDI (255, 0xffffffff);
26534     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26535     written |= (1 << 11);
26536     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26537   }
26538 frvbf_media_overflow (current_cpu, 8);
26539 }
26540 } else {
26541 if (LTDI (tmp_tmp1, MAKEDI (0, 0))) {
26542 {
26543   {
26544     DI opval = MAKEDI (0, 0);
26545     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26546     written |= (1 << 11);
26547     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26548   }
26549 frvbf_media_overflow (current_cpu, 8);
26550 }
26551 } else {
26552   {
26553     DI opval = tmp_tmp1;
26554     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26555     written |= (1 << 11);
26556     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26557   }
26558 }
26559 }
26560 }
26561 }
26562 }
26563 }
26564
26565   abuf->written = written;
26566   return vpc;
26567 #undef FLD
26568 }
26569
26570 /* mqcpxrs: mqcpxrs$pack $FRintieven,$FRintjeven,$ACC40Sk */
26571
26572 static SEM_PC
26573 SEM_FN_NAME (frvbf,mqcpxrs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26574 {
26575 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
26576   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26577   int UNUSED written = 0;
26578   IADDR UNUSED pc = abuf->addr;
26579   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26580
26581 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
26582 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
26583 frvbf_media_acc_not_aligned (current_cpu);
26584 } else {
26585 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
26586 frvbf_media_register_not_aligned (current_cpu);
26587 } else {
26588 {
26589   HI tmp_argihi;
26590   HI tmp_argilo;
26591   HI tmp_argjhi;
26592   HI tmp_argjlo;
26593 {
26594   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26595   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26596   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26597   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26598 }
26599 {
26600   DI tmp_tmp1;
26601   DI tmp_tmp2;
26602   tmp_tmp1 = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
26603   tmp_tmp2 = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
26604   tmp_tmp1 = SUBDI (tmp_tmp1, tmp_tmp2);
26605 if (GTDI (tmp_tmp1, MAKEDI (127, 0xffffffff))) {
26606 {
26607   {
26608     DI opval = MAKEDI (127, 0xffffffff);
26609     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26610     written |= (1 << 13);
26611     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26612   }
26613 frvbf_media_overflow (current_cpu, 8);
26614 }
26615 } else {
26616 if (LTDI (tmp_tmp1, MAKEDI (0xffffff80, 0))) {
26617 {
26618   {
26619     DI opval = MAKEDI (0xffffff80, 0);
26620     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26621     written |= (1 << 13);
26622     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26623   }
26624 frvbf_media_overflow (current_cpu, 8);
26625 }
26626 } else {
26627   {
26628     DI opval = tmp_tmp1;
26629     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26630     written |= (1 << 13);
26631     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26632   }
26633 }
26634 }
26635 }
26636 {
26637   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26638   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26639   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26640   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26641 }
26642 {
26643   DI tmp_tmp1;
26644   DI tmp_tmp2;
26645   tmp_tmp1 = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
26646   tmp_tmp2 = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
26647   tmp_tmp1 = SUBDI (tmp_tmp1, tmp_tmp2);
26648 if (GTDI (tmp_tmp1, MAKEDI (127, 0xffffffff))) {
26649 {
26650   {
26651     DI opval = MAKEDI (127, 0xffffffff);
26652     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
26653     written |= (1 << 14);
26654     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26655   }
26656 frvbf_media_overflow (current_cpu, 4);
26657 }
26658 } else {
26659 if (LTDI (tmp_tmp1, MAKEDI (0xffffff80, 0))) {
26660 {
26661   {
26662     DI opval = MAKEDI (0xffffff80, 0);
26663     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
26664     written |= (1 << 14);
26665     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26666   }
26667 frvbf_media_overflow (current_cpu, 4);
26668 }
26669 } else {
26670   {
26671     DI opval = tmp_tmp1;
26672     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
26673     written |= (1 << 14);
26674     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26675   }
26676 }
26677 }
26678 }
26679 }
26680 }
26681 }
26682 }
26683
26684   abuf->written = written;
26685   return vpc;
26686 #undef FLD
26687 }
26688
26689 /* mqcpxru: mqcpxru$pack $FRintieven,$FRintjeven,$ACC40Sk */
26690
26691 static SEM_PC
26692 SEM_FN_NAME (frvbf,mqcpxru) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26693 {
26694 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
26695   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26696   int UNUSED written = 0;
26697   IADDR UNUSED pc = abuf->addr;
26698   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26699
26700 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
26701 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
26702 frvbf_media_acc_not_aligned (current_cpu);
26703 } else {
26704 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
26705 frvbf_media_register_not_aligned (current_cpu);
26706 } else {
26707 {
26708   UHI tmp_argihi;
26709   UHI tmp_argilo;
26710   UHI tmp_argjhi;
26711   UHI tmp_argjlo;
26712 {
26713   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26714   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26715   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26716   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26717 }
26718 {
26719   DI tmp_tmp1;
26720   DI tmp_tmp2;
26721   tmp_tmp1 = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
26722   tmp_tmp2 = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
26723   tmp_tmp1 = SUBDI (tmp_tmp1, tmp_tmp2);
26724 if (GTDI (tmp_tmp1, MAKEDI (255, 0xffffffff))) {
26725 {
26726   {
26727     DI opval = MAKEDI (255, 0xffffffff);
26728     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26729     written |= (1 << 13);
26730     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26731   }
26732 frvbf_media_overflow (current_cpu, 8);
26733 }
26734 } else {
26735 if (LTDI (tmp_tmp1, MAKEDI (0, 0))) {
26736 {
26737   {
26738     DI opval = MAKEDI (0, 0);
26739     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26740     written |= (1 << 13);
26741     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26742   }
26743 frvbf_media_overflow (current_cpu, 8);
26744 }
26745 } else {
26746   {
26747     DI opval = tmp_tmp1;
26748     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26749     written |= (1 << 13);
26750     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26751   }
26752 }
26753 }
26754 }
26755 {
26756   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26757   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26758   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26759   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26760 }
26761 {
26762   DI tmp_tmp1;
26763   DI tmp_tmp2;
26764   tmp_tmp1 = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
26765   tmp_tmp2 = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
26766   tmp_tmp1 = SUBDI (tmp_tmp1, tmp_tmp2);
26767 if (GTDI (tmp_tmp1, MAKEDI (255, 0xffffffff))) {
26768 {
26769   {
26770     DI opval = MAKEDI (255, 0xffffffff);
26771     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
26772     written |= (1 << 14);
26773     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26774   }
26775 frvbf_media_overflow (current_cpu, 4);
26776 }
26777 } else {
26778 if (LTDI (tmp_tmp1, MAKEDI (0, 0))) {
26779 {
26780   {
26781     DI opval = MAKEDI (0, 0);
26782     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
26783     written |= (1 << 14);
26784     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26785   }
26786 frvbf_media_overflow (current_cpu, 4);
26787 }
26788 } else {
26789   {
26790     DI opval = tmp_tmp1;
26791     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
26792     written |= (1 << 14);
26793     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26794   }
26795 }
26796 }
26797 }
26798 }
26799 }
26800 }
26801 }
26802
26803   abuf->written = written;
26804   return vpc;
26805 #undef FLD
26806 }
26807
26808 /* mqcpxis: mqcpxis$pack $FRintieven,$FRintjeven,$ACC40Sk */
26809
26810 static SEM_PC
26811 SEM_FN_NAME (frvbf,mqcpxis) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26812 {
26813 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
26814   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26815   int UNUSED written = 0;
26816   IADDR UNUSED pc = abuf->addr;
26817   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26818
26819 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
26820 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
26821 frvbf_media_acc_not_aligned (current_cpu);
26822 } else {
26823 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
26824 frvbf_media_register_not_aligned (current_cpu);
26825 } else {
26826 {
26827   HI tmp_argihi;
26828   HI tmp_argilo;
26829   HI tmp_argjhi;
26830   HI tmp_argjlo;
26831 {
26832   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26833   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26834   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26835   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26836 }
26837 {
26838   DI tmp_tmp1;
26839   DI tmp_tmp2;
26840   tmp_tmp1 = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo));
26841   tmp_tmp2 = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi));
26842   tmp_tmp1 = ADDDI (tmp_tmp1, tmp_tmp2);
26843 if (GTDI (tmp_tmp1, MAKEDI (127, 0xffffffff))) {
26844 {
26845   {
26846     DI opval = MAKEDI (127, 0xffffffff);
26847     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26848     written |= (1 << 13);
26849     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26850   }
26851 frvbf_media_overflow (current_cpu, 8);
26852 }
26853 } else {
26854 if (LTDI (tmp_tmp1, MAKEDI (0xffffff80, 0))) {
26855 {
26856   {
26857     DI opval = MAKEDI (0xffffff80, 0);
26858     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26859     written |= (1 << 13);
26860     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26861   }
26862 frvbf_media_overflow (current_cpu, 8);
26863 }
26864 } else {
26865   {
26866     DI opval = tmp_tmp1;
26867     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26868     written |= (1 << 13);
26869     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26870   }
26871 }
26872 }
26873 }
26874 {
26875   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26876   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26877   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26878   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26879 }
26880 {
26881   DI tmp_tmp1;
26882   DI tmp_tmp2;
26883   tmp_tmp1 = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo));
26884   tmp_tmp2 = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi));
26885   tmp_tmp1 = ADDDI (tmp_tmp1, tmp_tmp2);
26886 if (GTDI (tmp_tmp1, MAKEDI (127, 0xffffffff))) {
26887 {
26888   {
26889     DI opval = MAKEDI (127, 0xffffffff);
26890     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
26891     written |= (1 << 14);
26892     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26893   }
26894 frvbf_media_overflow (current_cpu, 4);
26895 }
26896 } else {
26897 if (LTDI (tmp_tmp1, MAKEDI (0xffffff80, 0))) {
26898 {
26899   {
26900     DI opval = MAKEDI (0xffffff80, 0);
26901     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
26902     written |= (1 << 14);
26903     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26904   }
26905 frvbf_media_overflow (current_cpu, 4);
26906 }
26907 } else {
26908   {
26909     DI opval = tmp_tmp1;
26910     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
26911     written |= (1 << 14);
26912     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26913   }
26914 }
26915 }
26916 }
26917 }
26918 }
26919 }
26920 }
26921
26922   abuf->written = written;
26923   return vpc;
26924 #undef FLD
26925 }
26926
26927 /* mqcpxiu: mqcpxiu$pack $FRintieven,$FRintjeven,$ACC40Sk */
26928
26929 static SEM_PC
26930 SEM_FN_NAME (frvbf,mqcpxiu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26931 {
26932 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
26933   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26934   int UNUSED written = 0;
26935   IADDR UNUSED pc = abuf->addr;
26936   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26937
26938 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
26939 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
26940 frvbf_media_acc_not_aligned (current_cpu);
26941 } else {
26942 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
26943 frvbf_media_register_not_aligned (current_cpu);
26944 } else {
26945 {
26946   UHI tmp_argihi;
26947   UHI tmp_argilo;
26948   UHI tmp_argjhi;
26949   UHI tmp_argjlo;
26950 {
26951   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26952   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26953   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26954   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26955 }
26956 {
26957   DI tmp_tmp1;
26958   DI tmp_tmp2;
26959   tmp_tmp1 = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjlo));
26960   tmp_tmp2 = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjhi));
26961   tmp_tmp1 = ADDDI (tmp_tmp1, tmp_tmp2);
26962 if (GTDI (tmp_tmp1, MAKEDI (255, 0xffffffff))) {
26963 {
26964   {
26965     DI opval = MAKEDI (255, 0xffffffff);
26966     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26967     written |= (1 << 13);
26968     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26969   }
26970 frvbf_media_overflow (current_cpu, 8);
26971 }
26972 } else {
26973 if (LTDI (tmp_tmp1, MAKEDI (0, 0))) {
26974 {
26975   {
26976     DI opval = MAKEDI (0, 0);
26977     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26978     written |= (1 << 13);
26979     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26980   }
26981 frvbf_media_overflow (current_cpu, 8);
26982 }
26983 } else {
26984   {
26985     DI opval = tmp_tmp1;
26986     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26987     written |= (1 << 13);
26988     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26989   }
26990 }
26991 }
26992 }
26993 {
26994   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26995   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26996   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26997   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26998 }
26999 {
27000   DI tmp_tmp1;
27001   DI tmp_tmp2;
27002   tmp_tmp1 = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjlo));
27003   tmp_tmp2 = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjhi));
27004   tmp_tmp1 = ADDDI (tmp_tmp1, tmp_tmp2);
27005 if (GTDI (tmp_tmp1, MAKEDI (255, 0xffffffff))) {
27006 {
27007   {
27008     DI opval = MAKEDI (255, 0xffffffff);
27009     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
27010     written |= (1 << 14);
27011     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
27012   }
27013 frvbf_media_overflow (current_cpu, 4);
27014 }
27015 } else {
27016 if (LTDI (tmp_tmp1, MAKEDI (0, 0))) {
27017 {
27018   {
27019     DI opval = MAKEDI (0, 0);
27020     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
27021     written |= (1 << 14);
27022     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
27023   }
27024 frvbf_media_overflow (current_cpu, 4);
27025 }
27026 } else {
27027   {
27028     DI opval = tmp_tmp1;
27029     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
27030     written |= (1 << 14);
27031     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
27032   }
27033 }
27034 }
27035 }
27036 }
27037 }
27038 }
27039 }
27040
27041   abuf->written = written;
27042   return vpc;
27043 #undef FLD
27044 }
27045
27046 /* mexpdhw: mexpdhw$pack $FRinti,$u6,$FRintk */
27047
27048 static SEM_PC
27049 SEM_FN_NAME (frvbf,mexpdhw) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27050 {
27051 #define FLD(f) abuf->fields.sfmt_cmexpdhw.f
27052   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27053   int UNUSED written = 0;
27054   IADDR UNUSED pc = abuf->addr;
27055   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27056
27057 {
27058   UHI tmp_tmp;
27059 if (ANDSI (FLD (f_u6), 1)) {
27060   tmp_tmp = GET_H_FR_LO (((FLD (f_FRi)) + (0)));
27061 } else {
27062   tmp_tmp = GET_H_FR_HI (((FLD (f_FRi)) + (0)));
27063 }
27064   {
27065     UHI opval = tmp_tmp;
27066     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
27067     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27068   }
27069   {
27070     UHI opval = tmp_tmp;
27071     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
27072     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27073   }
27074 }
27075
27076   return vpc;
27077 #undef FLD
27078 }
27079
27080 /* cmexpdhw: cmexpdhw$pack $FRinti,$u6,$FRintk,$CCi,$cond */
27081
27082 static SEM_PC
27083 SEM_FN_NAME (frvbf,cmexpdhw) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27084 {
27085 #define FLD(f) abuf->fields.sfmt_cmexpdhw.f
27086   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27087   int UNUSED written = 0;
27088   IADDR UNUSED pc = abuf->addr;
27089   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27090
27091 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
27092 {
27093   UHI tmp_tmp;
27094 if (ANDSI (FLD (f_u6), 1)) {
27095   tmp_tmp = GET_H_FR_LO (((FLD (f_FRi)) + (0)));
27096 } else {
27097   tmp_tmp = GET_H_FR_HI (((FLD (f_FRi)) + (0)));
27098 }
27099   {
27100     UHI opval = tmp_tmp;
27101     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
27102     written |= (1 << 7);
27103     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27104   }
27105   {
27106     UHI opval = tmp_tmp;
27107     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
27108     written |= (1 << 8);
27109     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27110   }
27111 }
27112 }
27113
27114   abuf->written = written;
27115   return vpc;
27116 #undef FLD
27117 }
27118
27119 /* mexpdhd: mexpdhd$pack $FRinti,$u6,$FRintkeven */
27120
27121 static SEM_PC
27122 SEM_FN_NAME (frvbf,mexpdhd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27123 {
27124 #define FLD(f) abuf->fields.sfmt_cmexpdhd.f
27125   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27126   int UNUSED written = 0;
27127   IADDR UNUSED pc = abuf->addr;
27128   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27129
27130 if (ANDSI (FLD (f_FRk), SUBSI (2, 1))) {
27131 frvbf_media_register_not_aligned (current_cpu);
27132 } else {
27133 {
27134   UHI tmp_tmp;
27135   {
27136     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27137     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27138     written |= (1 << 6);
27139     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27140   }
27141 if (ANDSI (FLD (f_u6), 1)) {
27142   tmp_tmp = GET_H_FR_LO (((FLD (f_FRi)) + (0)));
27143 } else {
27144   tmp_tmp = GET_H_FR_HI (((FLD (f_FRi)) + (0)));
27145 }
27146   {
27147     UHI opval = tmp_tmp;
27148     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
27149     written |= (1 << 7);
27150     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27151   }
27152   {
27153     UHI opval = tmp_tmp;
27154     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
27155     written |= (1 << 9);
27156     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27157   }
27158   {
27159     UHI opval = tmp_tmp;
27160     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
27161     written |= (1 << 8);
27162     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27163   }
27164   {
27165     UHI opval = tmp_tmp;
27166     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
27167     written |= (1 << 10);
27168     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27169   }
27170 }
27171 }
27172
27173   abuf->written = written;
27174   return vpc;
27175 #undef FLD
27176 }
27177
27178 /* cmexpdhd: cmexpdhd$pack $FRinti,$u6,$FRintkeven,$CCi,$cond */
27179
27180 static SEM_PC
27181 SEM_FN_NAME (frvbf,cmexpdhd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27182 {
27183 #define FLD(f) abuf->fields.sfmt_cmexpdhd.f
27184   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27185   int UNUSED written = 0;
27186   IADDR UNUSED pc = abuf->addr;
27187   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27188
27189 if (ANDSI (FLD (f_FRk), SUBSI (2, 1))) {
27190 frvbf_media_register_not_aligned (current_cpu);
27191 } else {
27192 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
27193 {
27194   UHI tmp_tmp;
27195   {
27196     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27197     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27198     written |= (1 << 8);
27199     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27200   }
27201 if (ANDSI (FLD (f_u6), 1)) {
27202   tmp_tmp = GET_H_FR_LO (((FLD (f_FRi)) + (0)));
27203 } else {
27204   tmp_tmp = GET_H_FR_HI (((FLD (f_FRi)) + (0)));
27205 }
27206   {
27207     UHI opval = tmp_tmp;
27208     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
27209     written |= (1 << 9);
27210     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27211   }
27212   {
27213     UHI opval = tmp_tmp;
27214     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
27215     written |= (1 << 11);
27216     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27217   }
27218   {
27219     UHI opval = tmp_tmp;
27220     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
27221     written |= (1 << 10);
27222     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27223   }
27224   {
27225     UHI opval = tmp_tmp;
27226     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
27227     written |= (1 << 12);
27228     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27229   }
27230 }
27231 }
27232 }
27233
27234   abuf->written = written;
27235   return vpc;
27236 #undef FLD
27237 }
27238
27239 /* mpackh: mpackh$pack $FRinti,$FRintj,$FRintk */
27240
27241 static SEM_PC
27242 SEM_FN_NAME (frvbf,mpackh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27243 {
27244 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
27245   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27246   int UNUSED written = 0;
27247   IADDR UNUSED pc = abuf->addr;
27248   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27249
27250 {
27251   {
27252     UHI opval = GET_H_FR_LO (((FLD (f_FRi)) + (0)));
27253     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
27254     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27255   }
27256   {
27257     UHI opval = GET_H_FR_LO (((FLD (f_FRj)) + (0)));
27258     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
27259     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27260   }
27261 }
27262
27263   return vpc;
27264 #undef FLD
27265 }
27266
27267 /* mdpackh: mdpackh$pack $FRintieven,$FRintjeven,$FRintkeven */
27268
27269 static SEM_PC
27270 SEM_FN_NAME (frvbf,mdpackh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27271 {
27272 #define FLD(f) abuf->fields.sfmt_mdpackh.f
27273   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27274   int UNUSED written = 0;
27275   IADDR UNUSED pc = abuf->addr;
27276   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27277
27278 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
27279 frvbf_media_register_not_aligned (current_cpu);
27280 } else {
27281 {
27282   {
27283     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRi)));
27284     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRi), opval);
27285     written |= (1 << 10);
27286     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27287   }
27288   {
27289     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRj)));
27290     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRj), opval);
27291     written |= (1 << 11);
27292     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27293   }
27294   {
27295     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27296     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27297     written |= (1 << 12);
27298     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27299   }
27300 {
27301   {
27302     UHI opval = GET_H_FR_LO (((FLD (f_FRi)) + (0)));
27303     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
27304     written |= (1 << 13);
27305     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27306   }
27307   {
27308     UHI opval = GET_H_FR_LO (((FLD (f_FRj)) + (0)));
27309     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
27310     written |= (1 << 15);
27311     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27312   }
27313 }
27314 {
27315   {
27316     UHI opval = GET_H_FR_LO (((FLD (f_FRi)) + (1)));
27317     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
27318     written |= (1 << 14);
27319     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27320   }
27321   {
27322     UHI opval = GET_H_FR_LO (((FLD (f_FRj)) + (1)));
27323     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
27324     written |= (1 << 16);
27325     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27326   }
27327 }
27328 }
27329 }
27330
27331   abuf->written = written;
27332   return vpc;
27333 #undef FLD
27334 }
27335
27336 /* munpackh: munpackh$pack $FRinti,$FRintkeven */
27337
27338 static SEM_PC
27339 SEM_FN_NAME (frvbf,munpackh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27340 {
27341 #define FLD(f) abuf->fields.sfmt_munpackh.f
27342   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27343   int UNUSED written = 0;
27344   IADDR UNUSED pc = abuf->addr;
27345   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27346
27347 if (ANDSI (FLD (f_FRk), SUBSI (2, 1))) {
27348 frvbf_media_register_not_aligned (current_cpu);
27349 } else {
27350 {
27351   {
27352     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRi)));
27353     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRi), opval);
27354     written |= (1 << 6);
27355     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27356   }
27357   {
27358     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27359     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27360     written |= (1 << 7);
27361     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27362   }
27363 {
27364   {
27365     UHI opval = GET_H_FR_HI (((FLD (f_FRi)) + (0)));
27366     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
27367     written |= (1 << 8);
27368     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27369   }
27370   {
27371     UHI opval = GET_H_FR_HI (((FLD (f_FRi)) + (0)));
27372     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
27373     written |= (1 << 10);
27374     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27375   }
27376   {
27377     UHI opval = GET_H_FR_LO (((FLD (f_FRi)) + (0)));
27378     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (ADDSI (0, 1))), opval);
27379     written |= (1 << 9);
27380     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27381   }
27382   {
27383     UHI opval = GET_H_FR_LO (((FLD (f_FRi)) + (0)));
27384     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (ADDSI (0, 1))), opval);
27385     written |= (1 << 11);
27386     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27387   }
27388 }
27389 }
27390 }
27391
27392   abuf->written = written;
27393   return vpc;
27394 #undef FLD
27395 }
27396
27397 /* mdunpackh: mdunpackh$pack $FRintieven,$FRintk */
27398
27399 static SEM_PC
27400 SEM_FN_NAME (frvbf,mdunpackh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27401 {
27402 #define FLD(f) abuf->fields.sfmt_mdunpackh.f
27403   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27404   int UNUSED written = 0;
27405   IADDR UNUSED pc = abuf->addr;
27406   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27407
27408 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (4, 1)))) {
27409 frvbf_media_register_not_aligned (current_cpu);
27410 } else {
27411 {
27412   {
27413     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRi)));
27414     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRi), opval);
27415     written |= (1 << 8);
27416     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27417   }
27418   {
27419     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27420     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27421     written |= (1 << 9);
27422     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27423   }
27424 {
27425   {
27426     UHI opval = GET_H_FR_HI (((FLD (f_FRi)) + (0)));
27427     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
27428     written |= (1 << 10);
27429     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27430   }
27431   {
27432     UHI opval = GET_H_FR_HI (((FLD (f_FRi)) + (0)));
27433     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
27434     written |= (1 << 14);
27435     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27436   }
27437   {
27438     UHI opval = GET_H_FR_LO (((FLD (f_FRi)) + (0)));
27439     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (ADDSI (0, 1))), opval);
27440     written |= (1 << 12);
27441     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27442   }
27443   {
27444     UHI opval = GET_H_FR_LO (((FLD (f_FRi)) + (0)));
27445     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (ADDSI (0, 1))), opval);
27446     written |= (1 << 16);
27447     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27448   }
27449 }
27450 {
27451   {
27452     UHI opval = GET_H_FR_HI (((FLD (f_FRi)) + (1)));
27453     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (2)), opval);
27454     written |= (1 << 11);
27455     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27456   }
27457   {
27458     UHI opval = GET_H_FR_HI (((FLD (f_FRi)) + (1)));
27459     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (2)), opval);
27460     written |= (1 << 15);
27461     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27462   }
27463   {
27464     UHI opval = GET_H_FR_LO (((FLD (f_FRi)) + (1)));
27465     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (ADDSI (2, 1))), opval);
27466     written |= (1 << 13);
27467     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27468   }
27469   {
27470     UHI opval = GET_H_FR_LO (((FLD (f_FRi)) + (1)));
27471     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (ADDSI (2, 1))), opval);
27472     written |= (1 << 17);
27473     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27474   }
27475 }
27476 }
27477 }
27478
27479   abuf->written = written;
27480   return vpc;
27481 #undef FLD
27482 }
27483
27484 /* mbtoh: mbtoh$pack $FRintj,$FRintkeven */
27485
27486 static SEM_PC
27487 SEM_FN_NAME (frvbf,mbtoh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27488 {
27489 #define FLD(f) abuf->fields.sfmt_cmbtoh.f
27490   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27491   int UNUSED written = 0;
27492   IADDR UNUSED pc = abuf->addr;
27493   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27494
27495 {
27496   {
27497     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRj)));
27498     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRj), opval);
27499     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27500   }
27501   {
27502     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27503     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27504     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27505   }
27506 if (ANDSI (FLD (f_FRk), SUBSI (2, 1))) {
27507 frvbf_media_register_not_aligned (current_cpu);
27508 } else {
27509 {
27510   {
27511     UHI opval = GET_H_FR_3 (((FLD (f_FRj)) + (0)));
27512     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
27513     written |= (1 << 10);
27514     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27515   }
27516   {
27517     UHI opval = GET_H_FR_2 (((FLD (f_FRj)) + (0)));
27518     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
27519     written |= (1 << 12);
27520     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27521   }
27522   {
27523     UHI opval = GET_H_FR_1 (((FLD (f_FRj)) + (0)));
27524     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
27525     written |= (1 << 11);
27526     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27527   }
27528   {
27529     UHI opval = GET_H_FR_0 (((FLD (f_FRj)) + (0)));
27530     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
27531     written |= (1 << 13);
27532     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27533   }
27534 }
27535 }
27536 }
27537
27538   abuf->written = written;
27539   return vpc;
27540 #undef FLD
27541 }
27542
27543 /* cmbtoh: cmbtoh$pack $FRintj,$FRintkeven,$CCi,$cond */
27544
27545 static SEM_PC
27546 SEM_FN_NAME (frvbf,cmbtoh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27547 {
27548 #define FLD(f) abuf->fields.sfmt_cmbtoh.f
27549   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27550   int UNUSED written = 0;
27551   IADDR UNUSED pc = abuf->addr;
27552   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27553
27554 {
27555   {
27556     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRj)));
27557     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRj), opval);
27558     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27559   }
27560   {
27561     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27562     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27563     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27564   }
27565 if (ANDSI (FLD (f_FRk), SUBSI (2, 1))) {
27566 frvbf_media_register_not_aligned (current_cpu);
27567 } else {
27568 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
27569 {
27570   {
27571     UHI opval = GET_H_FR_3 (((FLD (f_FRj)) + (0)));
27572     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
27573     written |= (1 << 12);
27574     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27575   }
27576   {
27577     UHI opval = GET_H_FR_2 (((FLD (f_FRj)) + (0)));
27578     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
27579     written |= (1 << 14);
27580     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27581   }
27582   {
27583     UHI opval = GET_H_FR_1 (((FLD (f_FRj)) + (0)));
27584     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
27585     written |= (1 << 13);
27586     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27587   }
27588   {
27589     UHI opval = GET_H_FR_0 (((FLD (f_FRj)) + (0)));
27590     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
27591     written |= (1 << 15);
27592     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27593   }
27594 }
27595 }
27596 }
27597 }
27598
27599   abuf->written = written;
27600   return vpc;
27601 #undef FLD
27602 }
27603
27604 /* mhtob: mhtob$pack $FRintjeven,$FRintk */
27605
27606 static SEM_PC
27607 SEM_FN_NAME (frvbf,mhtob) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27608 {
27609 #define FLD(f) abuf->fields.sfmt_cmhtob.f
27610   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27611   int UNUSED written = 0;
27612   IADDR UNUSED pc = abuf->addr;
27613   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27614
27615 {
27616   {
27617     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRj)));
27618     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRj), opval);
27619     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27620   }
27621   {
27622     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27623     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27624     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27625   }
27626 if (ANDSI (FLD (f_FRj), SUBSI (2, 1))) {
27627 frvbf_media_register_not_aligned (current_cpu);
27628 } else {
27629 {
27630   {
27631     UHI opval = GET_H_FR_HI (((FLD (f_FRj)) + (0)));
27632     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_3_set, ((FLD (f_FRk)) + (0)), opval);
27633     written |= (1 << 13);
27634     TRACE_RESULT (current_cpu, abuf, "fr_3", 'x', opval);
27635   }
27636   {
27637     UHI opval = GET_H_FR_LO (((FLD (f_FRj)) + (0)));
27638     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_2_set, ((FLD (f_FRk)) + (0)), opval);
27639     written |= (1 << 12);
27640     TRACE_RESULT (current_cpu, abuf, "fr_2", 'x', opval);
27641   }
27642   {
27643     UHI opval = GET_H_FR_HI (((FLD (f_FRj)) + (1)));
27644     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_1_set, ((FLD (f_FRk)) + (0)), opval);
27645     written |= (1 << 11);
27646     TRACE_RESULT (current_cpu, abuf, "fr_1", 'x', opval);
27647   }
27648   {
27649     UHI opval = GET_H_FR_LO (((FLD (f_FRj)) + (1)));
27650     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_0_set, ((FLD (f_FRk)) + (0)), opval);
27651     written |= (1 << 10);
27652     TRACE_RESULT (current_cpu, abuf, "fr_0", 'x', opval);
27653   }
27654 }
27655 }
27656 }
27657
27658   abuf->written = written;
27659   return vpc;
27660 #undef FLD
27661 }
27662
27663 /* cmhtob: cmhtob$pack $FRintjeven,$FRintk,$CCi,$cond */
27664
27665 static SEM_PC
27666 SEM_FN_NAME (frvbf,cmhtob) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27667 {
27668 #define FLD(f) abuf->fields.sfmt_cmhtob.f
27669   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27670   int UNUSED written = 0;
27671   IADDR UNUSED pc = abuf->addr;
27672   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27673
27674 {
27675   {
27676     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRj)));
27677     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRj), opval);
27678     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27679   }
27680   {
27681     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27682     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27683     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27684   }
27685 if (ANDSI (FLD (f_FRj), SUBSI (2, 1))) {
27686 frvbf_media_register_not_aligned (current_cpu);
27687 } else {
27688 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
27689 {
27690   {
27691     UHI opval = GET_H_FR_HI (((FLD (f_FRj)) + (0)));
27692     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_3_set, ((FLD (f_FRk)) + (0)), opval);
27693     written |= (1 << 15);
27694     TRACE_RESULT (current_cpu, abuf, "fr_3", 'x', opval);
27695   }
27696   {
27697     UHI opval = GET_H_FR_LO (((FLD (f_FRj)) + (0)));
27698     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_2_set, ((FLD (f_FRk)) + (0)), opval);
27699     written |= (1 << 14);
27700     TRACE_RESULT (current_cpu, abuf, "fr_2", 'x', opval);
27701   }
27702   {
27703     UHI opval = GET_H_FR_HI (((FLD (f_FRj)) + (1)));
27704     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_1_set, ((FLD (f_FRk)) + (0)), opval);
27705     written |= (1 << 13);
27706     TRACE_RESULT (current_cpu, abuf, "fr_1", 'x', opval);
27707   }
27708   {
27709     UHI opval = GET_H_FR_LO (((FLD (f_FRj)) + (1)));
27710     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_0_set, ((FLD (f_FRk)) + (0)), opval);
27711     written |= (1 << 12);
27712     TRACE_RESULT (current_cpu, abuf, "fr_0", 'x', opval);
27713   }
27714 }
27715 }
27716 }
27717 }
27718
27719   abuf->written = written;
27720   return vpc;
27721 #undef FLD
27722 }
27723
27724 /* mbtohe: mbtohe$pack $FRintj,$FRintk */
27725
27726 static SEM_PC
27727 SEM_FN_NAME (frvbf,mbtohe) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27728 {
27729 #define FLD(f) abuf->fields.sfmt_cmbtohe.f
27730   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27731   int UNUSED written = 0;
27732   IADDR UNUSED pc = abuf->addr;
27733   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27734
27735 {
27736   {
27737     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRj)));
27738     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRj), opval);
27739     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27740   }
27741   {
27742     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27743     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27744     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27745   }
27746 if (ANDSI (FLD (f_FRk), SUBSI (4, 1))) {
27747 frvbf_media_register_not_aligned (current_cpu);
27748 } else {
27749 {
27750   {
27751     UHI opval = GET_H_FR_3 (((FLD (f_FRj)) + (0)));
27752     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
27753     written |= (1 << 10);
27754     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27755   }
27756   {
27757     UHI opval = GET_H_FR_3 (((FLD (f_FRj)) + (0)));
27758     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
27759     written |= (1 << 14);
27760     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27761   }
27762   {
27763     UHI opval = GET_H_FR_2 (((FLD (f_FRj)) + (0)));
27764     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
27765     written |= (1 << 11);
27766     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27767   }
27768   {
27769     UHI opval = GET_H_FR_2 (((FLD (f_FRj)) + (0)));
27770     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
27771     written |= (1 << 15);
27772     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27773   }
27774   {
27775     UHI opval = GET_H_FR_1 (((FLD (f_FRj)) + (0)));
27776     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (2)), opval);
27777     written |= (1 << 12);
27778     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27779   }
27780   {
27781     UHI opval = GET_H_FR_1 (((FLD (f_FRj)) + (0)));
27782     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (2)), opval);
27783     written |= (1 << 16);
27784     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27785   }
27786   {
27787     UHI opval = GET_H_FR_0 (((FLD (f_FRj)) + (0)));
27788     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (3)), opval);
27789     written |= (1 << 13);
27790     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27791   }
27792   {
27793     UHI opval = GET_H_FR_0 (((FLD (f_FRj)) + (0)));
27794     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (3)), opval);
27795     written |= (1 << 17);
27796     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27797   }
27798 }
27799 }
27800 }
27801
27802   abuf->written = written;
27803   return vpc;
27804 #undef FLD
27805 }
27806
27807 /* cmbtohe: cmbtohe$pack $FRintj,$FRintk,$CCi,$cond */
27808
27809 static SEM_PC
27810 SEM_FN_NAME (frvbf,cmbtohe) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27811 {
27812 #define FLD(f) abuf->fields.sfmt_cmbtohe.f
27813   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27814   int UNUSED written = 0;
27815   IADDR UNUSED pc = abuf->addr;
27816   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27817
27818 {
27819   {
27820     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRj)));
27821     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRj), opval);
27822     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27823   }
27824   {
27825     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27826     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27827     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27828   }
27829 if (ANDSI (FLD (f_FRk), SUBSI (4, 1))) {
27830 frvbf_media_register_not_aligned (current_cpu);
27831 } else {
27832 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
27833 {
27834   {
27835     UHI opval = GET_H_FR_3 (((FLD (f_FRj)) + (0)));
27836     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
27837     written |= (1 << 12);
27838     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27839   }
27840   {
27841     UHI opval = GET_H_FR_3 (((FLD (f_FRj)) + (0)));
27842     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
27843     written |= (1 << 16);
27844     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27845   }
27846   {
27847     UHI opval = GET_H_FR_2 (((FLD (f_FRj)) + (0)));
27848     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
27849     written |= (1 << 13);
27850     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27851   }
27852   {
27853     UHI opval = GET_H_FR_2 (((FLD (f_FRj)) + (0)));
27854     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
27855     written |= (1 << 17);
27856     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27857   }
27858   {
27859     UHI opval = GET_H_FR_1 (((FLD (f_FRj)) + (0)));
27860     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (2)), opval);
27861     written |= (1 << 14);
27862     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27863   }
27864   {
27865     UHI opval = GET_H_FR_1 (((FLD (f_FRj)) + (0)));
27866     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (2)), opval);
27867     written |= (1 << 18);
27868     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27869   }
27870   {
27871     UHI opval = GET_H_FR_0 (((FLD (f_FRj)) + (0)));
27872     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (3)), opval);
27873     written |= (1 << 15);
27874     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27875   }
27876   {
27877     UHI opval = GET_H_FR_0 (((FLD (f_FRj)) + (0)));
27878     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (3)), opval);
27879     written |= (1 << 19);
27880     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27881   }
27882 }
27883 }
27884 }
27885 }
27886
27887   abuf->written = written;
27888   return vpc;
27889 #undef FLD
27890 }
27891
27892 /* mnop: mnop$pack */
27893
27894 static SEM_PC
27895 SEM_FN_NAME (frvbf,mnop) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27896 {
27897 #define FLD(f) abuf->fields.fmt_empty.f
27898   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27899   int UNUSED written = 0;
27900   IADDR UNUSED pc = abuf->addr;
27901   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27902
27903 ((void) 0); /*nop*/
27904
27905   return vpc;
27906 #undef FLD
27907 }
27908
27909 /* mclracc-0: mclracc$pack $ACC40Sk,$A0 */
27910
27911 static SEM_PC
27912 SEM_FN_NAME (frvbf,mclracc_0) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27913 {
27914 #define FLD(f) abuf->fields.sfmt_mdasaccs.f
27915   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27916   int UNUSED written = 0;
27917   IADDR UNUSED pc = abuf->addr;
27918   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27919
27920 frvbf_clear_accumulators (current_cpu, FLD (f_ACC40Sk), 0);
27921
27922   return vpc;
27923 #undef FLD
27924 }
27925
27926 /* mclracc-1: mclracc$pack $ACC40Sk,$A1 */
27927
27928 static SEM_PC
27929 SEM_FN_NAME (frvbf,mclracc_1) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27930 {
27931 #define FLD(f) abuf->fields.sfmt_mdasaccs.f
27932   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27933   int UNUSED written = 0;
27934   IADDR UNUSED pc = abuf->addr;
27935   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27936
27937 frvbf_clear_accumulators (current_cpu, FLD (f_ACC40Sk), 1);
27938
27939   return vpc;
27940 #undef FLD
27941 }
27942
27943 /* mrdacc: mrdacc$pack $ACC40Si,$FRintk */
27944
27945 static SEM_PC
27946 SEM_FN_NAME (frvbf,mrdacc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27947 {
27948 #define FLD(f) abuf->fields.sfmt_mcuti.f
27949   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27950   int UNUSED written = 0;
27951   IADDR UNUSED pc = abuf->addr;
27952   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27953
27954   {
27955     SI opval = GET_H_ACC40S (FLD (f_ACC40Si));
27956     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27957     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27958   }
27959
27960   return vpc;
27961 #undef FLD
27962 }
27963
27964 /* mrdaccg: mrdaccg$pack $ACCGi,$FRintk */
27965
27966 static SEM_PC
27967 SEM_FN_NAME (frvbf,mrdaccg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27968 {
27969 #define FLD(f) abuf->fields.sfmt_mrdaccg.f
27970   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27971   int UNUSED written = 0;
27972   IADDR UNUSED pc = abuf->addr;
27973   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27974
27975   {
27976     SI opval = GET_H_ACCG (FLD (f_ACCGi));
27977     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27978     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27979   }
27980
27981   return vpc;
27982 #undef FLD
27983 }
27984
27985 /* mwtacc: mwtacc$pack $FRinti,$ACC40Sk */
27986
27987 static SEM_PC
27988 SEM_FN_NAME (frvbf,mwtacc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27989 {
27990 #define FLD(f) abuf->fields.sfmt_cmmachs.f
27991   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27992   int UNUSED written = 0;
27993   IADDR UNUSED pc = abuf->addr;
27994   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27995
27996   {
27997     DI opval = ORDI (ANDDI (GET_H_ACC40S (FLD (f_ACC40Sk)), MAKEDI (0xffffffff, 0)), GET_H_FR_INT (FLD (f_FRi)));
27998     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
27999     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
28000   }
28001
28002   return vpc;
28003 #undef FLD
28004 }
28005
28006 /* mwtaccg: mwtaccg$pack $FRinti,$ACCGk */
28007
28008 static SEM_PC
28009 SEM_FN_NAME (frvbf,mwtaccg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
28010 {
28011 #define FLD(f) abuf->fields.sfmt_mwtaccg.f
28012   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
28013   int UNUSED written = 0;
28014   IADDR UNUSED pc = abuf->addr;
28015   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
28016
28017 {
28018 frv_ref_SI (GET_H_ACCG (FLD (f_ACCGk)));
28019   {
28020     USI opval = GET_H_FR_INT (FLD (f_FRi));
28021     sim_queue_fn_si_write (current_cpu, frvbf_h_accg_set, FLD (f_ACCGk), opval);
28022     TRACE_RESULT (current_cpu, abuf, "accg", 'x', opval);
28023   }
28024 }
28025
28026   return vpc;
28027 #undef FLD
28028 }
28029
28030 /* mcop1: mcop1$pack $FRi,$FRj,$FRk */
28031
28032 static SEM_PC
28033 SEM_FN_NAME (frvbf,mcop1) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
28034 {
28035 #define FLD(f) abuf->fields.fmt_empty.f
28036   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
28037   int UNUSED written = 0;
28038   IADDR UNUSED pc = abuf->addr;
28039   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
28040
28041 frvbf_media_cop (current_cpu, 1);
28042
28043   return vpc;
28044 #undef FLD
28045 }
28046
28047 /* mcop2: mcop2$pack $FRi,$FRj,$FRk */
28048
28049 static SEM_PC
28050 SEM_FN_NAME (frvbf,mcop2) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
28051 {
28052 #define FLD(f) abuf->fields.fmt_empty.f
28053   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
28054   int UNUSED written = 0;
28055   IADDR UNUSED pc = abuf->addr;
28056   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
28057
28058 frvbf_media_cop (current_cpu, 2);
28059
28060   return vpc;
28061 #undef FLD
28062 }
28063
28064 /* fnop: fnop$pack */
28065
28066 static SEM_PC
28067 SEM_FN_NAME (frvbf,fnop) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
28068 {
28069 #define FLD(f) abuf->fields.fmt_empty.f
28070   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
28071   int UNUSED written = 0;
28072   IADDR UNUSED pc = abuf->addr;
28073   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
28074
28075 ((void) 0); /*nop*/
28076
28077   return vpc;
28078 #undef FLD
28079 }
28080
28081 /* Table of all semantic fns.  */
28082
28083 static const struct sem_fn_desc sem_fns[] = {
28084   { FRVBF_INSN_X_INVALID, SEM_FN_NAME (frvbf,x_invalid) },
28085   { FRVBF_INSN_X_AFTER, SEM_FN_NAME (frvbf,x_after) },
28086   { FRVBF_INSN_X_BEFORE, SEM_FN_NAME (frvbf,x_before) },
28087   { FRVBF_INSN_X_CTI_CHAIN, SEM_FN_NAME (frvbf,x_cti_chain) },
28088   { FRVBF_INSN_X_CHAIN, SEM_FN_NAME (frvbf,x_chain) },
28089   { FRVBF_INSN_X_BEGIN, SEM_FN_NAME (frvbf,x_begin) },
28090   { FRVBF_INSN_ADD, SEM_FN_NAME (frvbf,add) },
28091   { FRVBF_INSN_SUB, SEM_FN_NAME (frvbf,sub) },
28092   { FRVBF_INSN_AND, SEM_FN_NAME (frvbf,and) },
28093   { FRVBF_INSN_OR, SEM_FN_NAME (frvbf,or) },
28094   { FRVBF_INSN_XOR, SEM_FN_NAME (frvbf,xor) },
28095   { FRVBF_INSN_NOT, SEM_FN_NAME (frvbf,not) },
28096   { FRVBF_INSN_SDIV, SEM_FN_NAME (frvbf,sdiv) },
28097   { FRVBF_INSN_NSDIV, SEM_FN_NAME (frvbf,nsdiv) },
28098   { FRVBF_INSN_UDIV, SEM_FN_NAME (frvbf,udiv) },
28099   { FRVBF_INSN_NUDIV, SEM_FN_NAME (frvbf,nudiv) },
28100   { FRVBF_INSN_SMUL, SEM_FN_NAME (frvbf,smul) },
28101   { FRVBF_INSN_UMUL, SEM_FN_NAME (frvbf,umul) },
28102   { FRVBF_INSN_SMU, SEM_FN_NAME (frvbf,smu) },
28103   { FRVBF_INSN_SMASS, SEM_FN_NAME (frvbf,smass) },
28104   { FRVBF_INSN_SMSSS, SEM_FN_NAME (frvbf,smsss) },
28105   { FRVBF_INSN_SLL, SEM_FN_NAME (frvbf,sll) },
28106   { FRVBF_INSN_SRL, SEM_FN_NAME (frvbf,srl) },
28107   { FRVBF_INSN_SRA, SEM_FN_NAME (frvbf,sra) },
28108   { FRVBF_INSN_SLASS, SEM_FN_NAME (frvbf,slass) },
28109   { FRVBF_INSN_SCUTSS, SEM_FN_NAME (frvbf,scutss) },
28110   { FRVBF_INSN_SCAN, SEM_FN_NAME (frvbf,scan) },
28111   { FRVBF_INSN_CADD, SEM_FN_NAME (frvbf,cadd) },
28112   { FRVBF_INSN_CSUB, SEM_FN_NAME (frvbf,csub) },
28113   { FRVBF_INSN_CAND, SEM_FN_NAME (frvbf,cand) },
28114   { FRVBF_INSN_COR, SEM_FN_NAME (frvbf,cor) },
28115   { FRVBF_INSN_CXOR, SEM_FN_NAME (frvbf,cxor) },
28116   { FRVBF_INSN_CNOT, SEM_FN_NAME (frvbf,cnot) },
28117   { FRVBF_INSN_CSMUL, SEM_FN_NAME (frvbf,csmul) },
28118   { FRVBF_INSN_CSDIV, SEM_FN_NAME (frvbf,csdiv) },
28119   { FRVBF_INSN_CUDIV, SEM_FN_NAME (frvbf,cudiv) },
28120   { FRVBF_INSN_CSLL, SEM_FN_NAME (frvbf,csll) },
28121   { FRVBF_INSN_CSRL, SEM_FN_NAME (frvbf,csrl) },
28122   { FRVBF_INSN_CSRA, SEM_FN_NAME (frvbf,csra) },
28123   { FRVBF_INSN_CSCAN, SEM_FN_NAME (frvbf,cscan) },
28124   { FRVBF_INSN_ADDCC, SEM_FN_NAME (frvbf,addcc) },
28125   { FRVBF_INSN_SUBCC, SEM_FN_NAME (frvbf,subcc) },
28126   { FRVBF_INSN_ANDCC, SEM_FN_NAME (frvbf,andcc) },
28127   { FRVBF_INSN_ORCC, SEM_FN_NAME (frvbf,orcc) },
28128   { FRVBF_INSN_XORCC, SEM_FN_NAME (frvbf,xorcc) },
28129   { FRVBF_INSN_SLLCC, SEM_FN_NAME (frvbf,sllcc) },
28130   { FRVBF_INSN_SRLCC, SEM_FN_NAME (frvbf,srlcc) },
28131   { FRVBF_INSN_SRACC, SEM_FN_NAME (frvbf,sracc) },
28132   { FRVBF_INSN_SMULCC, SEM_FN_NAME (frvbf,smulcc) },
28133   { FRVBF_INSN_UMULCC, SEM_FN_NAME (frvbf,umulcc) },
28134   { FRVBF_INSN_CADDCC, SEM_FN_NAME (frvbf,caddcc) },
28135   { FRVBF_INSN_CSUBCC, SEM_FN_NAME (frvbf,csubcc) },
28136   { FRVBF_INSN_CSMULCC, SEM_FN_NAME (frvbf,csmulcc) },
28137   { FRVBF_INSN_CANDCC, SEM_FN_NAME (frvbf,candcc) },
28138   { FRVBF_INSN_CORCC, SEM_FN_NAME (frvbf,corcc) },
28139   { FRVBF_INSN_CXORCC, SEM_FN_NAME (frvbf,cxorcc) },
28140   { FRVBF_INSN_CSLLCC, SEM_FN_NAME (frvbf,csllcc) },
28141   { FRVBF_INSN_CSRLCC, SEM_FN_NAME (frvbf,csrlcc) },
28142   { FRVBF_INSN_CSRACC, SEM_FN_NAME (frvbf,csracc) },
28143   { FRVBF_INSN_ADDX, SEM_FN_NAME (frvbf,addx) },
28144   { FRVBF_INSN_SUBX, SEM_FN_NAME (frvbf,subx) },
28145   { FRVBF_INSN_ADDXCC, SEM_FN_NAME (frvbf,addxcc) },
28146   { FRVBF_INSN_SUBXCC, SEM_FN_NAME (frvbf,subxcc) },
28147   { FRVBF_INSN_ADDSS, SEM_FN_NAME (frvbf,addss) },
28148   { FRVBF_INSN_SUBSS, SEM_FN_NAME (frvbf,subss) },
28149   { FRVBF_INSN_ADDI, SEM_FN_NAME (frvbf,addi) },
28150   { FRVBF_INSN_SUBI, SEM_FN_NAME (frvbf,subi) },
28151   { FRVBF_INSN_ANDI, SEM_FN_NAME (frvbf,andi) },
28152   { FRVBF_INSN_ORI, SEM_FN_NAME (frvbf,ori) },
28153   { FRVBF_INSN_XORI, SEM_FN_NAME (frvbf,xori) },
28154   { FRVBF_INSN_SDIVI, SEM_FN_NAME (frvbf,sdivi) },
28155   { FRVBF_INSN_NSDIVI, SEM_FN_NAME (frvbf,nsdivi) },
28156   { FRVBF_INSN_UDIVI, SEM_FN_NAME (frvbf,udivi) },
28157   { FRVBF_INSN_NUDIVI, SEM_FN_NAME (frvbf,nudivi) },
28158   { FRVBF_INSN_SMULI, SEM_FN_NAME (frvbf,smuli) },
28159   { FRVBF_INSN_UMULI, SEM_FN_NAME (frvbf,umuli) },
28160   { FRVBF_INSN_SLLI, SEM_FN_NAME (frvbf,slli) },
28161   { FRVBF_INSN_SRLI, SEM_FN_NAME (frvbf,srli) },
28162   { FRVBF_INSN_SRAI, SEM_FN_NAME (frvbf,srai) },
28163   { FRVBF_INSN_SCANI, SEM_FN_NAME (frvbf,scani) },
28164   { FRVBF_INSN_ADDICC, SEM_FN_NAME (frvbf,addicc) },
28165   { FRVBF_INSN_SUBICC, SEM_FN_NAME (frvbf,subicc) },
28166   { FRVBF_INSN_ANDICC, SEM_FN_NAME (frvbf,andicc) },
28167   { FRVBF_INSN_ORICC, SEM_FN_NAME (frvbf,oricc) },
28168   { FRVBF_INSN_XORICC, SEM_FN_NAME (frvbf,xoricc) },
28169   { FRVBF_INSN_SMULICC, SEM_FN_NAME (frvbf,smulicc) },
28170   { FRVBF_INSN_UMULICC, SEM_FN_NAME (frvbf,umulicc) },
28171   { FRVBF_INSN_SLLICC, SEM_FN_NAME (frvbf,sllicc) },
28172   { FRVBF_INSN_SRLICC, SEM_FN_NAME (frvbf,srlicc) },
28173   { FRVBF_INSN_SRAICC, SEM_FN_NAME (frvbf,sraicc) },
28174   { FRVBF_INSN_ADDXI, SEM_FN_NAME (frvbf,addxi) },
28175   { FRVBF_INSN_SUBXI, SEM_FN_NAME (frvbf,subxi) },
28176   { FRVBF_INSN_ADDXICC, SEM_FN_NAME (frvbf,addxicc) },
28177   { FRVBF_INSN_SUBXICC, SEM_FN_NAME (frvbf,subxicc) },
28178   { FRVBF_INSN_CMPB, SEM_FN_NAME (frvbf,cmpb) },
28179   { FRVBF_INSN_CMPBA, SEM_FN_NAME (frvbf,cmpba) },
28180   { FRVBF_INSN_SETLO, SEM_FN_NAME (frvbf,setlo) },
28181   { FRVBF_INSN_SETHI, SEM_FN_NAME (frvbf,sethi) },
28182   { FRVBF_INSN_SETLOS, SEM_FN_NAME (frvbf,setlos) },
28183   { FRVBF_INSN_LDSB, SEM_FN_NAME (frvbf,ldsb) },
28184   { FRVBF_INSN_LDUB, SEM_FN_NAME (frvbf,ldub) },
28185   { FRVBF_INSN_LDSH, SEM_FN_NAME (frvbf,ldsh) },
28186   { FRVBF_INSN_LDUH, SEM_FN_NAME (frvbf,lduh) },
28187   { FRVBF_INSN_LD, SEM_FN_NAME (frvbf,ld) },
28188   { FRVBF_INSN_LDBF, SEM_FN_NAME (frvbf,ldbf) },
28189   { FRVBF_INSN_LDHF, SEM_FN_NAME (frvbf,ldhf) },
28190   { FRVBF_INSN_LDF, SEM_FN_NAME (frvbf,ldf) },
28191   { FRVBF_INSN_LDC, SEM_FN_NAME (frvbf,ldc) },
28192   { FRVBF_INSN_NLDSB, SEM_FN_NAME (frvbf,nldsb) },
28193   { FRVBF_INSN_NLDUB, SEM_FN_NAME (frvbf,nldub) },
28194   { FRVBF_INSN_NLDSH, SEM_FN_NAME (frvbf,nldsh) },
28195   { FRVBF_INSN_NLDUH, SEM_FN_NAME (frvbf,nlduh) },
28196   { FRVBF_INSN_NLD, SEM_FN_NAME (frvbf,nld) },
28197   { FRVBF_INSN_NLDBF, SEM_FN_NAME (frvbf,nldbf) },
28198   { FRVBF_INSN_NLDHF, SEM_FN_NAME (frvbf,nldhf) },
28199   { FRVBF_INSN_NLDF, SEM_FN_NAME (frvbf,nldf) },
28200   { FRVBF_INSN_LDD, SEM_FN_NAME (frvbf,ldd) },
28201   { FRVBF_INSN_LDDF, SEM_FN_NAME (frvbf,lddf) },
28202   { FRVBF_INSN_LDDC, SEM_FN_NAME (frvbf,lddc) },
28203   { FRVBF_INSN_NLDD, SEM_FN_NAME (frvbf,nldd) },
28204   { FRVBF_INSN_NLDDF, SEM_FN_NAME (frvbf,nlddf) },
28205   { FRVBF_INSN_LDQ, SEM_FN_NAME (frvbf,ldq) },
28206   { FRVBF_INSN_LDQF, SEM_FN_NAME (frvbf,ldqf) },
28207   { FRVBF_INSN_LDQC, SEM_FN_NAME (frvbf,ldqc) },
28208   { FRVBF_INSN_NLDQ, SEM_FN_NAME (frvbf,nldq) },
28209   { FRVBF_INSN_NLDQF, SEM_FN_NAME (frvbf,nldqf) },
28210   { FRVBF_INSN_LDSBU, SEM_FN_NAME (frvbf,ldsbu) },
28211   { FRVBF_INSN_LDUBU, SEM_FN_NAME (frvbf,ldubu) },
28212   { FRVBF_INSN_LDSHU, SEM_FN_NAME (frvbf,ldshu) },
28213   { FRVBF_INSN_LDUHU, SEM_FN_NAME (frvbf,lduhu) },
28214   { FRVBF_INSN_LDU, SEM_FN_NAME (frvbf,ldu) },
28215   { FRVBF_INSN_NLDSBU, SEM_FN_NAME (frvbf,nldsbu) },
28216   { FRVBF_INSN_NLDUBU, SEM_FN_NAME (frvbf,nldubu) },
28217   { FRVBF_INSN_NLDSHU, SEM_FN_NAME (frvbf,nldshu) },
28218   { FRVBF_INSN_NLDUHU, SEM_FN_NAME (frvbf,nlduhu) },
28219   { FRVBF_INSN_NLDU, SEM_FN_NAME (frvbf,nldu) },
28220   { FRVBF_INSN_LDBFU, SEM_FN_NAME (frvbf,ldbfu) },
28221   { FRVBF_INSN_LDHFU, SEM_FN_NAME (frvbf,ldhfu) },
28222   { FRVBF_INSN_LDFU, SEM_FN_NAME (frvbf,ldfu) },
28223   { FRVBF_INSN_LDCU, SEM_FN_NAME (frvbf,ldcu) },
28224   { FRVBF_INSN_NLDBFU, SEM_FN_NAME (frvbf,nldbfu) },
28225   { FRVBF_INSN_NLDHFU, SEM_FN_NAME (frvbf,nldhfu) },
28226   { FRVBF_INSN_NLDFU, SEM_FN_NAME (frvbf,nldfu) },
28227   { FRVBF_INSN_LDDU, SEM_FN_NAME (frvbf,lddu) },
28228   { FRVBF_INSN_NLDDU, SEM_FN_NAME (frvbf,nlddu) },
28229   { FRVBF_INSN_LDDFU, SEM_FN_NAME (frvbf,lddfu) },
28230   { FRVBF_INSN_LDDCU, SEM_FN_NAME (frvbf,lddcu) },
28231   { FRVBF_INSN_NLDDFU, SEM_FN_NAME (frvbf,nlddfu) },
28232   { FRVBF_INSN_LDQU, SEM_FN_NAME (frvbf,ldqu) },
28233   { FRVBF_INSN_NLDQU, SEM_FN_NAME (frvbf,nldqu) },
28234   { FRVBF_INSN_LDQFU, SEM_FN_NAME (frvbf,ldqfu) },
28235   { FRVBF_INSN_LDQCU, SEM_FN_NAME (frvbf,ldqcu) },
28236   { FRVBF_INSN_NLDQFU, SEM_FN_NAME (frvbf,nldqfu) },
28237   { FRVBF_INSN_LDSBI, SEM_FN_NAME (frvbf,ldsbi) },
28238   { FRVBF_INSN_LDSHI, SEM_FN_NAME (frvbf,ldshi) },
28239   { FRVBF_INSN_LDI, SEM_FN_NAME (frvbf,ldi) },
28240   { FRVBF_INSN_LDUBI, SEM_FN_NAME (frvbf,ldubi) },
28241   { FRVBF_INSN_LDUHI, SEM_FN_NAME (frvbf,lduhi) },
28242   { FRVBF_INSN_LDBFI, SEM_FN_NAME (frvbf,ldbfi) },
28243   { FRVBF_INSN_LDHFI, SEM_FN_NAME (frvbf,ldhfi) },
28244   { FRVBF_INSN_LDFI, SEM_FN_NAME (frvbf,ldfi) },
28245   { FRVBF_INSN_NLDSBI, SEM_FN_NAME (frvbf,nldsbi) },
28246   { FRVBF_INSN_NLDUBI, SEM_FN_NAME (frvbf,nldubi) },
28247   { FRVBF_INSN_NLDSHI, SEM_FN_NAME (frvbf,nldshi) },
28248   { FRVBF_INSN_NLDUHI, SEM_FN_NAME (frvbf,nlduhi) },
28249   { FRVBF_INSN_NLDI, SEM_FN_NAME (frvbf,nldi) },
28250   { FRVBF_INSN_NLDBFI, SEM_FN_NAME (frvbf,nldbfi) },
28251   { FRVBF_INSN_NLDHFI, SEM_FN_NAME (frvbf,nldhfi) },
28252   { FRVBF_INSN_NLDFI, SEM_FN_NAME (frvbf,nldfi) },
28253   { FRVBF_INSN_LDDI, SEM_FN_NAME (frvbf,lddi) },
28254   { FRVBF_INSN_LDDFI, SEM_FN_NAME (frvbf,lddfi) },
28255   { FRVBF_INSN_NLDDI, SEM_FN_NAME (frvbf,nlddi) },
28256   { FRVBF_INSN_NLDDFI, SEM_FN_NAME (frvbf,nlddfi) },
28257   { FRVBF_INSN_LDQI, SEM_FN_NAME (frvbf,ldqi) },
28258   { FRVBF_INSN_LDQFI, SEM_FN_NAME (frvbf,ldqfi) },
28259   { FRVBF_INSN_NLDQFI, SEM_FN_NAME (frvbf,nldqfi) },
28260   { FRVBF_INSN_STB, SEM_FN_NAME (frvbf,stb) },
28261   { FRVBF_INSN_STH, SEM_FN_NAME (frvbf,sth) },
28262   { FRVBF_INSN_ST, SEM_FN_NAME (frvbf,st) },
28263   { FRVBF_INSN_STBF, SEM_FN_NAME (frvbf,stbf) },
28264   { FRVBF_INSN_STHF, SEM_FN_NAME (frvbf,sthf) },
28265   { FRVBF_INSN_STF, SEM_FN_NAME (frvbf,stf) },
28266   { FRVBF_INSN_STC, SEM_FN_NAME (frvbf,stc) },
28267   { FRVBF_INSN_RSTB, SEM_FN_NAME (frvbf,rstb) },
28268   { FRVBF_INSN_RSTH, SEM_FN_NAME (frvbf,rsth) },
28269   { FRVBF_INSN_RST, SEM_FN_NAME (frvbf,rst) },
28270   { FRVBF_INSN_RSTBF, SEM_FN_NAME (frvbf,rstbf) },
28271   { FRVBF_INSN_RSTHF, SEM_FN_NAME (frvbf,rsthf) },
28272   { FRVBF_INSN_RSTF, SEM_FN_NAME (frvbf,rstf) },
28273   { FRVBF_INSN_STD, SEM_FN_NAME (frvbf,std) },
28274   { FRVBF_INSN_STDF, SEM_FN_NAME (frvbf,stdf) },
28275   { FRVBF_INSN_STDC, SEM_FN_NAME (frvbf,stdc) },
28276   { FRVBF_INSN_RSTD, SEM_FN_NAME (frvbf,rstd) },
28277   { FRVBF_INSN_RSTDF, SEM_FN_NAME (frvbf,rstdf) },
28278   { FRVBF_INSN_STQ, SEM_FN_NAME (frvbf,stq) },
28279   { FRVBF_INSN_STQF, SEM_FN_NAME (frvbf,stqf) },
28280   { FRVBF_INSN_STQC, SEM_FN_NAME (frvbf,stqc) },
28281   { FRVBF_INSN_RSTQ, SEM_FN_NAME (frvbf,rstq) },
28282   { FRVBF_INSN_RSTQF, SEM_FN_NAME (frvbf,rstqf) },
28283   { FRVBF_INSN_STBU, SEM_FN_NAME (frvbf,stbu) },
28284   { FRVBF_INSN_STHU, SEM_FN_NAME (frvbf,sthu) },
28285   { FRVBF_INSN_STU, SEM_FN_NAME (frvbf,stu) },
28286   { FRVBF_INSN_STBFU, SEM_FN_NAME (frvbf,stbfu) },
28287   { FRVBF_INSN_STHFU, SEM_FN_NAME (frvbf,sthfu) },
28288   { FRVBF_INSN_STFU, SEM_FN_NAME (frvbf,stfu) },
28289   { FRVBF_INSN_STCU, SEM_FN_NAME (frvbf,stcu) },
28290   { FRVBF_INSN_STDU, SEM_FN_NAME (frvbf,stdu) },
28291   { FRVBF_INSN_STDFU, SEM_FN_NAME (frvbf,stdfu) },
28292   { FRVBF_INSN_STDCU, SEM_FN_NAME (frvbf,stdcu) },
28293   { FRVBF_INSN_STQU, SEM_FN_NAME (frvbf,stqu) },
28294   { FRVBF_INSN_STQFU, SEM_FN_NAME (frvbf,stqfu) },
28295   { FRVBF_INSN_STQCU, SEM_FN_NAME (frvbf,stqcu) },
28296   { FRVBF_INSN_CLDSB, SEM_FN_NAME (frvbf,cldsb) },
28297   { FRVBF_INSN_CLDUB, SEM_FN_NAME (frvbf,cldub) },
28298   { FRVBF_INSN_CLDSH, SEM_FN_NAME (frvbf,cldsh) },
28299   { FRVBF_INSN_CLDUH, SEM_FN_NAME (frvbf,clduh) },
28300   { FRVBF_INSN_CLD, SEM_FN_NAME (frvbf,cld) },
28301   { FRVBF_INSN_CLDBF, SEM_FN_NAME (frvbf,cldbf) },
28302   { FRVBF_INSN_CLDHF, SEM_FN_NAME (frvbf,cldhf) },
28303   { FRVBF_INSN_CLDF, SEM_FN_NAME (frvbf,cldf) },
28304   { FRVBF_INSN_CLDD, SEM_FN_NAME (frvbf,cldd) },
28305   { FRVBF_INSN_CLDDF, SEM_FN_NAME (frvbf,clddf) },
28306   { FRVBF_INSN_CLDQ, SEM_FN_NAME (frvbf,cldq) },
28307   { FRVBF_INSN_CLDSBU, SEM_FN_NAME (frvbf,cldsbu) },
28308   { FRVBF_INSN_CLDUBU, SEM_FN_NAME (frvbf,cldubu) },
28309   { FRVBF_INSN_CLDSHU, SEM_FN_NAME (frvbf,cldshu) },
28310   { FRVBF_INSN_CLDUHU, SEM_FN_NAME (frvbf,clduhu) },
28311   { FRVBF_INSN_CLDU, SEM_FN_NAME (frvbf,cldu) },
28312   { FRVBF_INSN_CLDBFU, SEM_FN_NAME (frvbf,cldbfu) },
28313   { FRVBF_INSN_CLDHFU, SEM_FN_NAME (frvbf,cldhfu) },
28314   { FRVBF_INSN_CLDFU, SEM_FN_NAME (frvbf,cldfu) },
28315   { FRVBF_INSN_CLDDU, SEM_FN_NAME (frvbf,clddu) },
28316   { FRVBF_INSN_CLDDFU, SEM_FN_NAME (frvbf,clddfu) },
28317   { FRVBF_INSN_CLDQU, SEM_FN_NAME (frvbf,cldqu) },
28318   { FRVBF_INSN_CSTB, SEM_FN_NAME (frvbf,cstb) },
28319   { FRVBF_INSN_CSTH, SEM_FN_NAME (frvbf,csth) },
28320   { FRVBF_INSN_CST, SEM_FN_NAME (frvbf,cst) },
28321   { FRVBF_INSN_CSTBF, SEM_FN_NAME (frvbf,cstbf) },
28322   { FRVBF_INSN_CSTHF, SEM_FN_NAME (frvbf,csthf) },
28323   { FRVBF_INSN_CSTF, SEM_FN_NAME (frvbf,cstf) },
28324   { FRVBF_INSN_CSTD, SEM_FN_NAME (frvbf,cstd) },
28325   { FRVBF_INSN_CSTDF, SEM_FN_NAME (frvbf,cstdf) },
28326   { FRVBF_INSN_CSTQ, SEM_FN_NAME (frvbf,cstq) },
28327   { FRVBF_INSN_CSTBU, SEM_FN_NAME (frvbf,cstbu) },
28328   { FRVBF_INSN_CSTHU, SEM_FN_NAME (frvbf,csthu) },
28329   { FRVBF_INSN_CSTU, SEM_FN_NAME (frvbf,cstu) },
28330   { FRVBF_INSN_CSTBFU, SEM_FN_NAME (frvbf,cstbfu) },
28331   { FRVBF_INSN_CSTHFU, SEM_FN_NAME (frvbf,csthfu) },
28332   { FRVBF_INSN_CSTFU, SEM_FN_NAME (frvbf,cstfu) },
28333   { FRVBF_INSN_CSTDU, SEM_FN_NAME (frvbf,cstdu) },
28334   { FRVBF_INSN_CSTDFU, SEM_FN_NAME (frvbf,cstdfu) },
28335   { FRVBF_INSN_STBI, SEM_FN_NAME (frvbf,stbi) },
28336   { FRVBF_INSN_STHI, SEM_FN_NAME (frvbf,sthi) },
28337   { FRVBF_INSN_STI, SEM_FN_NAME (frvbf,sti) },
28338   { FRVBF_INSN_STBFI, SEM_FN_NAME (frvbf,stbfi) },
28339   { FRVBF_INSN_STHFI, SEM_FN_NAME (frvbf,sthfi) },
28340   { FRVBF_INSN_STFI, SEM_FN_NAME (frvbf,stfi) },
28341   { FRVBF_INSN_STDI, SEM_FN_NAME (frvbf,stdi) },
28342   { FRVBF_INSN_STDFI, SEM_FN_NAME (frvbf,stdfi) },
28343   { FRVBF_INSN_STQI, SEM_FN_NAME (frvbf,stqi) },
28344   { FRVBF_INSN_STQFI, SEM_FN_NAME (frvbf,stqfi) },
28345   { FRVBF_INSN_SWAP, SEM_FN_NAME (frvbf,swap) },
28346   { FRVBF_INSN_SWAPI, SEM_FN_NAME (frvbf,swapi) },
28347   { FRVBF_INSN_CSWAP, SEM_FN_NAME (frvbf,cswap) },
28348   { FRVBF_INSN_MOVGF, SEM_FN_NAME (frvbf,movgf) },
28349   { FRVBF_INSN_MOVFG, SEM_FN_NAME (frvbf,movfg) },
28350   { FRVBF_INSN_MOVGFD, SEM_FN_NAME (frvbf,movgfd) },
28351   { FRVBF_INSN_MOVFGD, SEM_FN_NAME (frvbf,movfgd) },
28352   { FRVBF_INSN_MOVGFQ, SEM_FN_NAME (frvbf,movgfq) },
28353   { FRVBF_INSN_MOVFGQ, SEM_FN_NAME (frvbf,movfgq) },
28354   { FRVBF_INSN_CMOVGF, SEM_FN_NAME (frvbf,cmovgf) },
28355   { FRVBF_INSN_CMOVFG, SEM_FN_NAME (frvbf,cmovfg) },
28356   { FRVBF_INSN_CMOVGFD, SEM_FN_NAME (frvbf,cmovgfd) },
28357   { FRVBF_INSN_CMOVFGD, SEM_FN_NAME (frvbf,cmovfgd) },
28358   { FRVBF_INSN_MOVGS, SEM_FN_NAME (frvbf,movgs) },
28359   { FRVBF_INSN_MOVSG, SEM_FN_NAME (frvbf,movsg) },
28360   { FRVBF_INSN_BRA, SEM_FN_NAME (frvbf,bra) },
28361   { FRVBF_INSN_BNO, SEM_FN_NAME (frvbf,bno) },
28362   { FRVBF_INSN_BEQ, SEM_FN_NAME (frvbf,beq) },
28363   { FRVBF_INSN_BNE, SEM_FN_NAME (frvbf,bne) },
28364   { FRVBF_INSN_BLE, SEM_FN_NAME (frvbf,ble) },
28365   { FRVBF_INSN_BGT, SEM_FN_NAME (frvbf,bgt) },
28366   { FRVBF_INSN_BLT, SEM_FN_NAME (frvbf,blt) },
28367   { FRVBF_INSN_BGE, SEM_FN_NAME (frvbf,bge) },
28368   { FRVBF_INSN_BLS, SEM_FN_NAME (frvbf,bls) },
28369   { FRVBF_INSN_BHI, SEM_FN_NAME (frvbf,bhi) },
28370   { FRVBF_INSN_BC, SEM_FN_NAME (frvbf,bc) },
28371   { FRVBF_INSN_BNC, SEM_FN_NAME (frvbf,bnc) },
28372   { FRVBF_INSN_BN, SEM_FN_NAME (frvbf,bn) },
28373   { FRVBF_INSN_BP, SEM_FN_NAME (frvbf,bp) },
28374   { FRVBF_INSN_BV, SEM_FN_NAME (frvbf,bv) },
28375   { FRVBF_INSN_BNV, SEM_FN_NAME (frvbf,bnv) },
28376   { FRVBF_INSN_FBRA, SEM_FN_NAME (frvbf,fbra) },
28377   { FRVBF_INSN_FBNO, SEM_FN_NAME (frvbf,fbno) },
28378   { FRVBF_INSN_FBNE, SEM_FN_NAME (frvbf,fbne) },
28379   { FRVBF_INSN_FBEQ, SEM_FN_NAME (frvbf,fbeq) },
28380   { FRVBF_INSN_FBLG, SEM_FN_NAME (frvbf,fblg) },
28381   { FRVBF_INSN_FBUE, SEM_FN_NAME (frvbf,fbue) },
28382   { FRVBF_INSN_FBUL, SEM_FN_NAME (frvbf,fbul) },
28383   { FRVBF_INSN_FBGE, SEM_FN_NAME (frvbf,fbge) },
28384   { FRVBF_INSN_FBLT, SEM_FN_NAME (frvbf,fblt) },
28385   { FRVBF_INSN_FBUGE, SEM_FN_NAME (frvbf,fbuge) },
28386   { FRVBF_INSN_FBUG, SEM_FN_NAME (frvbf,fbug) },
28387   { FRVBF_INSN_FBLE, SEM_FN_NAME (frvbf,fble) },
28388   { FRVBF_INSN_FBGT, SEM_FN_NAME (frvbf,fbgt) },
28389   { FRVBF_INSN_FBULE, SEM_FN_NAME (frvbf,fbule) },
28390   { FRVBF_INSN_FBU, SEM_FN_NAME (frvbf,fbu) },
28391   { FRVBF_INSN_FBO, SEM_FN_NAME (frvbf,fbo) },
28392   { FRVBF_INSN_BCTRLR, SEM_FN_NAME (frvbf,bctrlr) },
28393   { FRVBF_INSN_BRALR, SEM_FN_NAME (frvbf,bralr) },
28394   { FRVBF_INSN_BNOLR, SEM_FN_NAME (frvbf,bnolr) },
28395   { FRVBF_INSN_BEQLR, SEM_FN_NAME (frvbf,beqlr) },
28396   { FRVBF_INSN_BNELR, SEM_FN_NAME (frvbf,bnelr) },
28397   { FRVBF_INSN_BLELR, SEM_FN_NAME (frvbf,blelr) },
28398   { FRVBF_INSN_BGTLR, SEM_FN_NAME (frvbf,bgtlr) },
28399   { FRVBF_INSN_BLTLR, SEM_FN_NAME (frvbf,bltlr) },
28400   { FRVBF_INSN_BGELR, SEM_FN_NAME (frvbf,bgelr) },
28401   { FRVBF_INSN_BLSLR, SEM_FN_NAME (frvbf,blslr) },
28402   { FRVBF_INSN_BHILR, SEM_FN_NAME (frvbf,bhilr) },
28403   { FRVBF_INSN_BCLR, SEM_FN_NAME (frvbf,bclr) },
28404   { FRVBF_INSN_BNCLR, SEM_FN_NAME (frvbf,bnclr) },
28405   { FRVBF_INSN_BNLR, SEM_FN_NAME (frvbf,bnlr) },
28406   { FRVBF_INSN_BPLR, SEM_FN_NAME (frvbf,bplr) },
28407   { FRVBF_INSN_BVLR, SEM_FN_NAME (frvbf,bvlr) },
28408   { FRVBF_INSN_BNVLR, SEM_FN_NAME (frvbf,bnvlr) },
28409   { FRVBF_INSN_FBRALR, SEM_FN_NAME (frvbf,fbralr) },
28410   { FRVBF_INSN_FBNOLR, SEM_FN_NAME (frvbf,fbnolr) },
28411   { FRVBF_INSN_FBEQLR, SEM_FN_NAME (frvbf,fbeqlr) },
28412   { FRVBF_INSN_FBNELR, SEM_FN_NAME (frvbf,fbnelr) },
28413   { FRVBF_INSN_FBLGLR, SEM_FN_NAME (frvbf,fblglr) },
28414   { FRVBF_INSN_FBUELR, SEM_FN_NAME (frvbf,fbuelr) },
28415   { FRVBF_INSN_FBULLR, SEM_FN_NAME (frvbf,fbullr) },
28416   { FRVBF_INSN_FBGELR, SEM_FN_NAME (frvbf,fbgelr) },
28417   { FRVBF_INSN_FBLTLR, SEM_FN_NAME (frvbf,fbltlr) },
28418   { FRVBF_INSN_FBUGELR, SEM_FN_NAME (frvbf,fbugelr) },
28419   { FRVBF_INSN_FBUGLR, SEM_FN_NAME (frvbf,fbuglr) },
28420   { FRVBF_INSN_FBLELR, SEM_FN_NAME (frvbf,fblelr) },
28421   { FRVBF_INSN_FBGTLR, SEM_FN_NAME (frvbf,fbgtlr) },
28422   { FRVBF_INSN_FBULELR, SEM_FN_NAME (frvbf,fbulelr) },
28423   { FRVBF_INSN_FBULR, SEM_FN_NAME (frvbf,fbulr) },
28424   { FRVBF_INSN_FBOLR, SEM_FN_NAME (frvbf,fbolr) },
28425   { FRVBF_INSN_BCRALR, SEM_FN_NAME (frvbf,bcralr) },
28426   { FRVBF_INSN_BCNOLR, SEM_FN_NAME (frvbf,bcnolr) },
28427   { FRVBF_INSN_BCEQLR, SEM_FN_NAME (frvbf,bceqlr) },
28428   { FRVBF_INSN_BCNELR, SEM_FN_NAME (frvbf,bcnelr) },
28429   { FRVBF_INSN_BCLELR, SEM_FN_NAME (frvbf,bclelr) },
28430   { FRVBF_INSN_BCGTLR, SEM_FN_NAME (frvbf,bcgtlr) },
28431   { FRVBF_INSN_BCLTLR, SEM_FN_NAME (frvbf,bcltlr) },
28432   { FRVBF_INSN_BCGELR, SEM_FN_NAME (frvbf,bcgelr) },
28433   { FRVBF_INSN_BCLSLR, SEM_FN_NAME (frvbf,bclslr) },
28434   { FRVBF_INSN_BCHILR, SEM_FN_NAME (frvbf,bchilr) },
28435   { FRVBF_INSN_BCCLR, SEM_FN_NAME (frvbf,bcclr) },
28436   { FRVBF_INSN_BCNCLR, SEM_FN_NAME (frvbf,bcnclr) },
28437   { FRVBF_INSN_BCNLR, SEM_FN_NAME (frvbf,bcnlr) },
28438   { FRVBF_INSN_BCPLR, SEM_FN_NAME (frvbf,bcplr) },
28439   { FRVBF_INSN_BCVLR, SEM_FN_NAME (frvbf,bcvlr) },
28440   { FRVBF_INSN_BCNVLR, SEM_FN_NAME (frvbf,bcnvlr) },
28441   { FRVBF_INSN_FCBRALR, SEM_FN_NAME (frvbf,fcbralr) },
28442   { FRVBF_INSN_FCBNOLR, SEM_FN_NAME (frvbf,fcbnolr) },
28443   { FRVBF_INSN_FCBEQLR, SEM_FN_NAME (frvbf,fcbeqlr) },
28444   { FRVBF_INSN_FCBNELR, SEM_FN_NAME (frvbf,fcbnelr) },
28445   { FRVBF_INSN_FCBLGLR, SEM_FN_NAME (frvbf,fcblglr) },
28446   { FRVBF_INSN_FCBUELR, SEM_FN_NAME (frvbf,fcbuelr) },
28447   { FRVBF_INSN_FCBULLR, SEM_FN_NAME (frvbf,fcbullr) },
28448   { FRVBF_INSN_FCBGELR, SEM_FN_NAME (frvbf,fcbgelr) },
28449   { FRVBF_INSN_FCBLTLR, SEM_FN_NAME (frvbf,fcbltlr) },
28450   { FRVBF_INSN_FCBUGELR, SEM_FN_NAME (frvbf,fcbugelr) },
28451   { FRVBF_INSN_FCBUGLR, SEM_FN_NAME (frvbf,fcbuglr) },
28452   { FRVBF_INSN_FCBLELR, SEM_FN_NAME (frvbf,fcblelr) },
28453   { FRVBF_INSN_FCBGTLR, SEM_FN_NAME (frvbf,fcbgtlr) },
28454   { FRVBF_INSN_FCBULELR, SEM_FN_NAME (frvbf,fcbulelr) },
28455   { FRVBF_INSN_FCBULR, SEM_FN_NAME (frvbf,fcbulr) },
28456   { FRVBF_INSN_FCBOLR, SEM_FN_NAME (frvbf,fcbolr) },
28457   { FRVBF_INSN_JMPL, SEM_FN_NAME (frvbf,jmpl) },
28458   { FRVBF_INSN_CALLL, SEM_FN_NAME (frvbf,calll) },
28459   { FRVBF_INSN_JMPIL, SEM_FN_NAME (frvbf,jmpil) },
28460   { FRVBF_INSN_CALLIL, SEM_FN_NAME (frvbf,callil) },
28461   { FRVBF_INSN_CALL, SEM_FN_NAME (frvbf,call) },
28462   { FRVBF_INSN_RETT, SEM_FN_NAME (frvbf,rett) },
28463   { FRVBF_INSN_REI, SEM_FN_NAME (frvbf,rei) },
28464   { FRVBF_INSN_TRA, SEM_FN_NAME (frvbf,tra) },
28465   { FRVBF_INSN_TNO, SEM_FN_NAME (frvbf,tno) },
28466   { FRVBF_INSN_TEQ, SEM_FN_NAME (frvbf,teq) },
28467   { FRVBF_INSN_TNE, SEM_FN_NAME (frvbf,tne) },
28468   { FRVBF_INSN_TLE, SEM_FN_NAME (frvbf,tle) },
28469   { FRVBF_INSN_TGT, SEM_FN_NAME (frvbf,tgt) },
28470   { FRVBF_INSN_TLT, SEM_FN_NAME (frvbf,tlt) },
28471   { FRVBF_INSN_TGE, SEM_FN_NAME (frvbf,tge) },
28472   { FRVBF_INSN_TLS, SEM_FN_NAME (frvbf,tls) },
28473   { FRVBF_INSN_THI, SEM_FN_NAME (frvbf,thi) },
28474   { FRVBF_INSN_TC, SEM_FN_NAME (frvbf,tc) },
28475   { FRVBF_INSN_TNC, SEM_FN_NAME (frvbf,tnc) },
28476   { FRVBF_INSN_TN, SEM_FN_NAME (frvbf,tn) },
28477   { FRVBF_INSN_TP, SEM_FN_NAME (frvbf,tp) },
28478   { FRVBF_INSN_TV, SEM_FN_NAME (frvbf,tv) },
28479   { FRVBF_INSN_TNV, SEM_FN_NAME (frvbf,tnv) },
28480   { FRVBF_INSN_FTRA, SEM_FN_NAME (frvbf,ftra) },
28481   { FRVBF_INSN_FTNO, SEM_FN_NAME (frvbf,ftno) },
28482   { FRVBF_INSN_FTNE, SEM_FN_NAME (frvbf,ftne) },
28483   { FRVBF_INSN_FTEQ, SEM_FN_NAME (frvbf,fteq) },
28484   { FRVBF_INSN_FTLG, SEM_FN_NAME (frvbf,ftlg) },
28485   { FRVBF_INSN_FTUE, SEM_FN_NAME (frvbf,ftue) },
28486   { FRVBF_INSN_FTUL, SEM_FN_NAME (frvbf,ftul) },
28487   { FRVBF_INSN_FTGE, SEM_FN_NAME (frvbf,ftge) },
28488   { FRVBF_INSN_FTLT, SEM_FN_NAME (frvbf,ftlt) },
28489   { FRVBF_INSN_FTUGE, SEM_FN_NAME (frvbf,ftuge) },
28490   { FRVBF_INSN_FTUG, SEM_FN_NAME (frvbf,ftug) },
28491   { FRVBF_INSN_FTLE, SEM_FN_NAME (frvbf,ftle) },
28492   { FRVBF_INSN_FTGT, SEM_FN_NAME (frvbf,ftgt) },
28493   { FRVBF_INSN_FTULE, SEM_FN_NAME (frvbf,ftule) },
28494   { FRVBF_INSN_FTU, SEM_FN_NAME (frvbf,ftu) },
28495   { FRVBF_INSN_FTO, SEM_FN_NAME (frvbf,fto) },
28496   { FRVBF_INSN_TIRA, SEM_FN_NAME (frvbf,tira) },
28497   { FRVBF_INSN_TINO, SEM_FN_NAME (frvbf,tino) },
28498   { FRVBF_INSN_TIEQ, SEM_FN_NAME (frvbf,tieq) },
28499   { FRVBF_INSN_TINE, SEM_FN_NAME (frvbf,tine) },
28500   { FRVBF_INSN_TILE, SEM_FN_NAME (frvbf,tile) },
28501   { FRVBF_INSN_TIGT, SEM_FN_NAME (frvbf,tigt) },
28502   { FRVBF_INSN_TILT, SEM_FN_NAME (frvbf,tilt) },
28503   { FRVBF_INSN_TIGE, SEM_FN_NAME (frvbf,tige) },
28504   { FRVBF_INSN_TILS, SEM_FN_NAME (frvbf,tils) },
28505   { FRVBF_INSN_TIHI, SEM_FN_NAME (frvbf,tihi) },
28506   { FRVBF_INSN_TIC, SEM_FN_NAME (frvbf,tic) },
28507   { FRVBF_INSN_TINC, SEM_FN_NAME (frvbf,tinc) },
28508   { FRVBF_INSN_TIN, SEM_FN_NAME (frvbf,tin) },
28509   { FRVBF_INSN_TIP, SEM_FN_NAME (frvbf,tip) },
28510   { FRVBF_INSN_TIV, SEM_FN_NAME (frvbf,tiv) },
28511   { FRVBF_INSN_TINV, SEM_FN_NAME (frvbf,tinv) },
28512   { FRVBF_INSN_FTIRA, SEM_FN_NAME (frvbf,ftira) },
28513   { FRVBF_INSN_FTINO, SEM_FN_NAME (frvbf,ftino) },
28514   { FRVBF_INSN_FTINE, SEM_FN_NAME (frvbf,ftine) },
28515   { FRVBF_INSN_FTIEQ, SEM_FN_NAME (frvbf,ftieq) },
28516   { FRVBF_INSN_FTILG, SEM_FN_NAME (frvbf,ftilg) },
28517   { FRVBF_INSN_FTIUE, SEM_FN_NAME (frvbf,ftiue) },
28518   { FRVBF_INSN_FTIUL, SEM_FN_NAME (frvbf,ftiul) },
28519   { FRVBF_INSN_FTIGE, SEM_FN_NAME (frvbf,ftige) },
28520   { FRVBF_INSN_FTILT, SEM_FN_NAME (frvbf,ftilt) },
28521   { FRVBF_INSN_FTIUGE, SEM_FN_NAME (frvbf,ftiuge) },
28522   { FRVBF_INSN_FTIUG, SEM_FN_NAME (frvbf,ftiug) },
28523   { FRVBF_INSN_FTILE, SEM_FN_NAME (frvbf,ftile) },
28524   { FRVBF_INSN_FTIGT, SEM_FN_NAME (frvbf,ftigt) },
28525   { FRVBF_INSN_FTIULE, SEM_FN_NAME (frvbf,ftiule) },
28526   { FRVBF_INSN_FTIU, SEM_FN_NAME (frvbf,ftiu) },
28527   { FRVBF_INSN_FTIO, SEM_FN_NAME (frvbf,ftio) },
28528   { FRVBF_INSN_BREAK, SEM_FN_NAME (frvbf,break) },
28529   { FRVBF_INSN_MTRAP, SEM_FN_NAME (frvbf,mtrap) },
28530   { FRVBF_INSN_ANDCR, SEM_FN_NAME (frvbf,andcr) },
28531   { FRVBF_INSN_ORCR, SEM_FN_NAME (frvbf,orcr) },
28532   { FRVBF_INSN_XORCR, SEM_FN_NAME (frvbf,xorcr) },
28533   { FRVBF_INSN_NANDCR, SEM_FN_NAME (frvbf,nandcr) },
28534   { FRVBF_INSN_NORCR, SEM_FN_NAME (frvbf,norcr) },
28535   { FRVBF_INSN_ANDNCR, SEM_FN_NAME (frvbf,andncr) },
28536   { FRVBF_INSN_ORNCR, SEM_FN_NAME (frvbf,orncr) },
28537   { FRVBF_INSN_NANDNCR, SEM_FN_NAME (frvbf,nandncr) },
28538   { FRVBF_INSN_NORNCR, SEM_FN_NAME (frvbf,norncr) },
28539   { FRVBF_INSN_NOTCR, SEM_FN_NAME (frvbf,notcr) },
28540   { FRVBF_INSN_CKRA, SEM_FN_NAME (frvbf,ckra) },
28541   { FRVBF_INSN_CKNO, SEM_FN_NAME (frvbf,ckno) },
28542   { FRVBF_INSN_CKEQ, SEM_FN_NAME (frvbf,ckeq) },
28543   { FRVBF_INSN_CKNE, SEM_FN_NAME (frvbf,ckne) },
28544   { FRVBF_INSN_CKLE, SEM_FN_NAME (frvbf,ckle) },
28545   { FRVBF_INSN_CKGT, SEM_FN_NAME (frvbf,ckgt) },
28546   { FRVBF_INSN_CKLT, SEM_FN_NAME (frvbf,cklt) },
28547   { FRVBF_INSN_CKGE, SEM_FN_NAME (frvbf,ckge) },
28548   { FRVBF_INSN_CKLS, SEM_FN_NAME (frvbf,ckls) },
28549   { FRVBF_INSN_CKHI, SEM_FN_NAME (frvbf,ckhi) },
28550   { FRVBF_INSN_CKC, SEM_FN_NAME (frvbf,ckc) },
28551   { FRVBF_INSN_CKNC, SEM_FN_NAME (frvbf,cknc) },
28552   { FRVBF_INSN_CKN, SEM_FN_NAME (frvbf,ckn) },
28553   { FRVBF_INSN_CKP, SEM_FN_NAME (frvbf,ckp) },
28554   { FRVBF_INSN_CKV, SEM_FN_NAME (frvbf,ckv) },
28555   { FRVBF_INSN_CKNV, SEM_FN_NAME (frvbf,cknv) },
28556   { FRVBF_INSN_FCKRA, SEM_FN_NAME (frvbf,fckra) },
28557   { FRVBF_INSN_FCKNO, SEM_FN_NAME (frvbf,fckno) },
28558   { FRVBF_INSN_FCKNE, SEM_FN_NAME (frvbf,fckne) },
28559   { FRVBF_INSN_FCKEQ, SEM_FN_NAME (frvbf,fckeq) },
28560   { FRVBF_INSN_FCKLG, SEM_FN_NAME (frvbf,fcklg) },
28561   { FRVBF_INSN_FCKUE, SEM_FN_NAME (frvbf,fckue) },
28562   { FRVBF_INSN_FCKUL, SEM_FN_NAME (frvbf,fckul) },
28563   { FRVBF_INSN_FCKGE, SEM_FN_NAME (frvbf,fckge) },
28564   { FRVBF_INSN_FCKLT, SEM_FN_NAME (frvbf,fcklt) },
28565   { FRVBF_INSN_FCKUGE, SEM_FN_NAME (frvbf,fckuge) },
28566   { FRVBF_INSN_FCKUG, SEM_FN_NAME (frvbf,fckug) },
28567   { FRVBF_INSN_FCKLE, SEM_FN_NAME (frvbf,fckle) },
28568   { FRVBF_INSN_FCKGT, SEM_FN_NAME (frvbf,fckgt) },
28569   { FRVBF_INSN_FCKULE, SEM_FN_NAME (frvbf,fckule) },
28570   { FRVBF_INSN_FCKU, SEM_FN_NAME (frvbf,fcku) },
28571   { FRVBF_INSN_FCKO, SEM_FN_NAME (frvbf,fcko) },
28572   { FRVBF_INSN_CCKRA, SEM_FN_NAME (frvbf,cckra) },
28573   { FRVBF_INSN_CCKNO, SEM_FN_NAME (frvbf,cckno) },
28574   { FRVBF_INSN_CCKEQ, SEM_FN_NAME (frvbf,cckeq) },
28575   { FRVBF_INSN_CCKNE, SEM_FN_NAME (frvbf,cckne) },
28576   { FRVBF_INSN_CCKLE, SEM_FN_NAME (frvbf,cckle) },
28577   { FRVBF_INSN_CCKGT, SEM_FN_NAME (frvbf,cckgt) },
28578   { FRVBF_INSN_CCKLT, SEM_FN_NAME (frvbf,ccklt) },
28579   { FRVBF_INSN_CCKGE, SEM_FN_NAME (frvbf,cckge) },
28580   { FRVBF_INSN_CCKLS, SEM_FN_NAME (frvbf,cckls) },
28581   { FRVBF_INSN_CCKHI, SEM_FN_NAME (frvbf,cckhi) },
28582   { FRVBF_INSN_CCKC, SEM_FN_NAME (frvbf,cckc) },
28583   { FRVBF_INSN_CCKNC, SEM_FN_NAME (frvbf,ccknc) },
28584   { FRVBF_INSN_CCKN, SEM_FN_NAME (frvbf,cckn) },
28585   { FRVBF_INSN_CCKP, SEM_FN_NAME (frvbf,cckp) },
28586   { FRVBF_INSN_CCKV, SEM_FN_NAME (frvbf,cckv) },
28587   { FRVBF_INSN_CCKNV, SEM_FN_NAME (frvbf,ccknv) },
28588   { FRVBF_INSN_CFCKRA, SEM_FN_NAME (frvbf,cfckra) },
28589   { FRVBF_INSN_CFCKNO, SEM_FN_NAME (frvbf,cfckno) },
28590   { FRVBF_INSN_CFCKNE, SEM_FN_NAME (frvbf,cfckne) },
28591   { FRVBF_INSN_CFCKEQ, SEM_FN_NAME (frvbf,cfckeq) },
28592   { FRVBF_INSN_CFCKLG, SEM_FN_NAME (frvbf,cfcklg) },
28593   { FRVBF_INSN_CFCKUE, SEM_FN_NAME (frvbf,cfckue) },
28594   { FRVBF_INSN_CFCKUL, SEM_FN_NAME (frvbf,cfckul) },
28595   { FRVBF_INSN_CFCKGE, SEM_FN_NAME (frvbf,cfckge) },
28596   { FRVBF_INSN_CFCKLT, SEM_FN_NAME (frvbf,cfcklt) },
28597   { FRVBF_INSN_CFCKUGE, SEM_FN_NAME (frvbf,cfckuge) },
28598   { FRVBF_INSN_CFCKUG, SEM_FN_NAME (frvbf,cfckug) },
28599   { FRVBF_INSN_CFCKLE, SEM_FN_NAME (frvbf,cfckle) },
28600   { FRVBF_INSN_CFCKGT, SEM_FN_NAME (frvbf,cfckgt) },
28601   { FRVBF_INSN_CFCKULE, SEM_FN_NAME (frvbf,cfckule) },
28602   { FRVBF_INSN_CFCKU, SEM_FN_NAME (frvbf,cfcku) },
28603   { FRVBF_INSN_CFCKO, SEM_FN_NAME (frvbf,cfcko) },
28604   { FRVBF_INSN_CJMPL, SEM_FN_NAME (frvbf,cjmpl) },
28605   { FRVBF_INSN_CCALLL, SEM_FN_NAME (frvbf,ccalll) },
28606   { FRVBF_INSN_ICI, SEM_FN_NAME (frvbf,ici) },
28607   { FRVBF_INSN_DCI, SEM_FN_NAME (frvbf,dci) },
28608   { FRVBF_INSN_ICEI, SEM_FN_NAME (frvbf,icei) },
28609   { FRVBF_INSN_DCEI, SEM_FN_NAME (frvbf,dcei) },
28610   { FRVBF_INSN_DCF, SEM_FN_NAME (frvbf,dcf) },
28611   { FRVBF_INSN_DCEF, SEM_FN_NAME (frvbf,dcef) },
28612   { FRVBF_INSN_WITLB, SEM_FN_NAME (frvbf,witlb) },
28613   { FRVBF_INSN_WDTLB, SEM_FN_NAME (frvbf,wdtlb) },
28614   { FRVBF_INSN_ITLBI, SEM_FN_NAME (frvbf,itlbi) },
28615   { FRVBF_INSN_DTLBI, SEM_FN_NAME (frvbf,dtlbi) },
28616   { FRVBF_INSN_ICPL, SEM_FN_NAME (frvbf,icpl) },
28617   { FRVBF_INSN_DCPL, SEM_FN_NAME (frvbf,dcpl) },
28618   { FRVBF_INSN_ICUL, SEM_FN_NAME (frvbf,icul) },
28619   { FRVBF_INSN_DCUL, SEM_FN_NAME (frvbf,dcul) },
28620   { FRVBF_INSN_BAR, SEM_FN_NAME (frvbf,bar) },
28621   { FRVBF_INSN_MEMBAR, SEM_FN_NAME (frvbf,membar) },
28622   { FRVBF_INSN_COP1, SEM_FN_NAME (frvbf,cop1) },
28623   { FRVBF_INSN_COP2, SEM_FN_NAME (frvbf,cop2) },
28624   { FRVBF_INSN_CLRGR, SEM_FN_NAME (frvbf,clrgr) },
28625   { FRVBF_INSN_CLRFR, SEM_FN_NAME (frvbf,clrfr) },
28626   { FRVBF_INSN_CLRGA, SEM_FN_NAME (frvbf,clrga) },
28627   { FRVBF_INSN_CLRFA, SEM_FN_NAME (frvbf,clrfa) },
28628   { FRVBF_INSN_COMMITGR, SEM_FN_NAME (frvbf,commitgr) },
28629   { FRVBF_INSN_COMMITFR, SEM_FN_NAME (frvbf,commitfr) },
28630   { FRVBF_INSN_COMMITGA, SEM_FN_NAME (frvbf,commitga) },
28631   { FRVBF_INSN_COMMITFA, SEM_FN_NAME (frvbf,commitfa) },
28632   { FRVBF_INSN_FITOS, SEM_FN_NAME (frvbf,fitos) },
28633   { FRVBF_INSN_FSTOI, SEM_FN_NAME (frvbf,fstoi) },
28634   { FRVBF_INSN_FITOD, SEM_FN_NAME (frvbf,fitod) },
28635   { FRVBF_INSN_FDTOI, SEM_FN_NAME (frvbf,fdtoi) },
28636   { FRVBF_INSN_FDITOS, SEM_FN_NAME (frvbf,fditos) },
28637   { FRVBF_INSN_FDSTOI, SEM_FN_NAME (frvbf,fdstoi) },
28638   { FRVBF_INSN_NFDITOS, SEM_FN_NAME (frvbf,nfditos) },
28639   { FRVBF_INSN_NFDSTOI, SEM_FN_NAME (frvbf,nfdstoi) },
28640   { FRVBF_INSN_CFITOS, SEM_FN_NAME (frvbf,cfitos) },
28641   { FRVBF_INSN_CFSTOI, SEM_FN_NAME (frvbf,cfstoi) },
28642   { FRVBF_INSN_NFITOS, SEM_FN_NAME (frvbf,nfitos) },
28643   { FRVBF_INSN_NFSTOI, SEM_FN_NAME (frvbf,nfstoi) },
28644   { FRVBF_INSN_FMOVS, SEM_FN_NAME (frvbf,fmovs) },
28645   { FRVBF_INSN_FMOVD, SEM_FN_NAME (frvbf,fmovd) },
28646   { FRVBF_INSN_FDMOVS, SEM_FN_NAME (frvbf,fdmovs) },
28647   { FRVBF_INSN_CFMOVS, SEM_FN_NAME (frvbf,cfmovs) },
28648   { FRVBF_INSN_FNEGS, SEM_FN_NAME (frvbf,fnegs) },
28649   { FRVBF_INSN_FNEGD, SEM_FN_NAME (frvbf,fnegd) },
28650   { FRVBF_INSN_FDNEGS, SEM_FN_NAME (frvbf,fdnegs) },
28651   { FRVBF_INSN_CFNEGS, SEM_FN_NAME (frvbf,cfnegs) },
28652   { FRVBF_INSN_FABSS, SEM_FN_NAME (frvbf,fabss) },
28653   { FRVBF_INSN_FABSD, SEM_FN_NAME (frvbf,fabsd) },
28654   { FRVBF_INSN_FDABSS, SEM_FN_NAME (frvbf,fdabss) },
28655   { FRVBF_INSN_CFABSS, SEM_FN_NAME (frvbf,cfabss) },
28656   { FRVBF_INSN_FSQRTS, SEM_FN_NAME (frvbf,fsqrts) },
28657   { FRVBF_INSN_FDSQRTS, SEM_FN_NAME (frvbf,fdsqrts) },
28658   { FRVBF_INSN_NFDSQRTS, SEM_FN_NAME (frvbf,nfdsqrts) },
28659   { FRVBF_INSN_FSQRTD, SEM_FN_NAME (frvbf,fsqrtd) },
28660   { FRVBF_INSN_CFSQRTS, SEM_FN_NAME (frvbf,cfsqrts) },
28661   { FRVBF_INSN_NFSQRTS, SEM_FN_NAME (frvbf,nfsqrts) },
28662   { FRVBF_INSN_FADDS, SEM_FN_NAME (frvbf,fadds) },
28663   { FRVBF_INSN_FSUBS, SEM_FN_NAME (frvbf,fsubs) },
28664   { FRVBF_INSN_FMULS, SEM_FN_NAME (frvbf,fmuls) },
28665   { FRVBF_INSN_FDIVS, SEM_FN_NAME (frvbf,fdivs) },
28666   { FRVBF_INSN_FADDD, SEM_FN_NAME (frvbf,faddd) },
28667   { FRVBF_INSN_FSUBD, SEM_FN_NAME (frvbf,fsubd) },
28668   { FRVBF_INSN_FMULD, SEM_FN_NAME (frvbf,fmuld) },
28669   { FRVBF_INSN_FDIVD, SEM_FN_NAME (frvbf,fdivd) },
28670   { FRVBF_INSN_CFADDS, SEM_FN_NAME (frvbf,cfadds) },
28671   { FRVBF_INSN_CFSUBS, SEM_FN_NAME (frvbf,cfsubs) },
28672   { FRVBF_INSN_CFMULS, SEM_FN_NAME (frvbf,cfmuls) },
28673   { FRVBF_INSN_CFDIVS, SEM_FN_NAME (frvbf,cfdivs) },
28674   { FRVBF_INSN_NFADDS, SEM_FN_NAME (frvbf,nfadds) },
28675   { FRVBF_INSN_NFSUBS, SEM_FN_NAME (frvbf,nfsubs) },
28676   { FRVBF_INSN_NFMULS, SEM_FN_NAME (frvbf,nfmuls) },
28677   { FRVBF_INSN_NFDIVS, SEM_FN_NAME (frvbf,nfdivs) },
28678   { FRVBF_INSN_FCMPS, SEM_FN_NAME (frvbf,fcmps) },
28679   { FRVBF_INSN_FCMPD, SEM_FN_NAME (frvbf,fcmpd) },
28680   { FRVBF_INSN_CFCMPS, SEM_FN_NAME (frvbf,cfcmps) },
28681   { FRVBF_INSN_FDCMPS, SEM_FN_NAME (frvbf,fdcmps) },
28682   { FRVBF_INSN_FMADDS, SEM_FN_NAME (frvbf,fmadds) },
28683   { FRVBF_INSN_FMSUBS, SEM_FN_NAME (frvbf,fmsubs) },
28684   { FRVBF_INSN_FMADDD, SEM_FN_NAME (frvbf,fmaddd) },
28685   { FRVBF_INSN_FMSUBD, SEM_FN_NAME (frvbf,fmsubd) },
28686   { FRVBF_INSN_FDMADDS, SEM_FN_NAME (frvbf,fdmadds) },
28687   { FRVBF_INSN_NFDMADDS, SEM_FN_NAME (frvbf,nfdmadds) },
28688   { FRVBF_INSN_CFMADDS, SEM_FN_NAME (frvbf,cfmadds) },
28689   { FRVBF_INSN_CFMSUBS, SEM_FN_NAME (frvbf,cfmsubs) },
28690   { FRVBF_INSN_NFMADDS, SEM_FN_NAME (frvbf,nfmadds) },
28691   { FRVBF_INSN_NFMSUBS, SEM_FN_NAME (frvbf,nfmsubs) },
28692   { FRVBF_INSN_FMAS, SEM_FN_NAME (frvbf,fmas) },
28693   { FRVBF_INSN_FMSS, SEM_FN_NAME (frvbf,fmss) },
28694   { FRVBF_INSN_FDMAS, SEM_FN_NAME (frvbf,fdmas) },
28695   { FRVBF_INSN_FDMSS, SEM_FN_NAME (frvbf,fdmss) },
28696   { FRVBF_INSN_NFDMAS, SEM_FN_NAME (frvbf,nfdmas) },
28697   { FRVBF_INSN_NFDMSS, SEM_FN_NAME (frvbf,nfdmss) },
28698   { FRVBF_INSN_CFMAS, SEM_FN_NAME (frvbf,cfmas) },
28699   { FRVBF_INSN_CFMSS, SEM_FN_NAME (frvbf,cfmss) },
28700   { FRVBF_INSN_FMAD, SEM_FN_NAME (frvbf,fmad) },
28701   { FRVBF_INSN_FMSD, SEM_FN_NAME (frvbf,fmsd) },
28702   { FRVBF_INSN_NFMAS, SEM_FN_NAME (frvbf,nfmas) },
28703   { FRVBF_INSN_NFMSS, SEM_FN_NAME (frvbf,nfmss) },
28704   { FRVBF_INSN_FDADDS, SEM_FN_NAME (frvbf,fdadds) },
28705   { FRVBF_INSN_FDSUBS, SEM_FN_NAME (frvbf,fdsubs) },
28706   { FRVBF_INSN_FDMULS, SEM_FN_NAME (frvbf,fdmuls) },
28707   { FRVBF_INSN_FDDIVS, SEM_FN_NAME (frvbf,fddivs) },
28708   { FRVBF_INSN_FDSADS, SEM_FN_NAME (frvbf,fdsads) },
28709   { FRVBF_INSN_FDMULCS, SEM_FN_NAME (frvbf,fdmulcs) },
28710   { FRVBF_INSN_NFDMULCS, SEM_FN_NAME (frvbf,nfdmulcs) },
28711   { FRVBF_INSN_NFDADDS, SEM_FN_NAME (frvbf,nfdadds) },
28712   { FRVBF_INSN_NFDSUBS, SEM_FN_NAME (frvbf,nfdsubs) },
28713   { FRVBF_INSN_NFDMULS, SEM_FN_NAME (frvbf,nfdmuls) },
28714   { FRVBF_INSN_NFDDIVS, SEM_FN_NAME (frvbf,nfddivs) },
28715   { FRVBF_INSN_NFDSADS, SEM_FN_NAME (frvbf,nfdsads) },
28716   { FRVBF_INSN_NFDCMPS, SEM_FN_NAME (frvbf,nfdcmps) },
28717   { FRVBF_INSN_MHSETLOS, SEM_FN_NAME (frvbf,mhsetlos) },
28718   { FRVBF_INSN_MHSETHIS, SEM_FN_NAME (frvbf,mhsethis) },
28719   { FRVBF_INSN_MHDSETS, SEM_FN_NAME (frvbf,mhdsets) },
28720   { FRVBF_INSN_MHSETLOH, SEM_FN_NAME (frvbf,mhsetloh) },
28721   { FRVBF_INSN_MHSETHIH, SEM_FN_NAME (frvbf,mhsethih) },
28722   { FRVBF_INSN_MHDSETH, SEM_FN_NAME (frvbf,mhdseth) },
28723   { FRVBF_INSN_MAND, SEM_FN_NAME (frvbf,mand) },
28724   { FRVBF_INSN_MOR, SEM_FN_NAME (frvbf,mor) },
28725   { FRVBF_INSN_MXOR, SEM_FN_NAME (frvbf,mxor) },
28726   { FRVBF_INSN_CMAND, SEM_FN_NAME (frvbf,cmand) },
28727   { FRVBF_INSN_CMOR, SEM_FN_NAME (frvbf,cmor) },
28728   { FRVBF_INSN_CMXOR, SEM_FN_NAME (frvbf,cmxor) },
28729   { FRVBF_INSN_MNOT, SEM_FN_NAME (frvbf,mnot) },
28730   { FRVBF_INSN_CMNOT, SEM_FN_NAME (frvbf,cmnot) },
28731   { FRVBF_INSN_MROTLI, SEM_FN_NAME (frvbf,mrotli) },
28732   { FRVBF_INSN_MROTRI, SEM_FN_NAME (frvbf,mrotri) },
28733   { FRVBF_INSN_MWCUT, SEM_FN_NAME (frvbf,mwcut) },
28734   { FRVBF_INSN_MWCUTI, SEM_FN_NAME (frvbf,mwcuti) },
28735   { FRVBF_INSN_MCUT, SEM_FN_NAME (frvbf,mcut) },
28736   { FRVBF_INSN_MCUTI, SEM_FN_NAME (frvbf,mcuti) },
28737   { FRVBF_INSN_MCUTSS, SEM_FN_NAME (frvbf,mcutss) },
28738   { FRVBF_INSN_MCUTSSI, SEM_FN_NAME (frvbf,mcutssi) },
28739   { FRVBF_INSN_MDCUTSSI, SEM_FN_NAME (frvbf,mdcutssi) },
28740   { FRVBF_INSN_MAVEH, SEM_FN_NAME (frvbf,maveh) },
28741   { FRVBF_INSN_MSLLHI, SEM_FN_NAME (frvbf,msllhi) },
28742   { FRVBF_INSN_MSRLHI, SEM_FN_NAME (frvbf,msrlhi) },
28743   { FRVBF_INSN_MSRAHI, SEM_FN_NAME (frvbf,msrahi) },
28744   { FRVBF_INSN_MDROTLI, SEM_FN_NAME (frvbf,mdrotli) },
28745   { FRVBF_INSN_MCPLHI, SEM_FN_NAME (frvbf,mcplhi) },
28746   { FRVBF_INSN_MCPLI, SEM_FN_NAME (frvbf,mcpli) },
28747   { FRVBF_INSN_MSATHS, SEM_FN_NAME (frvbf,msaths) },
28748   { FRVBF_INSN_MQSATHS, SEM_FN_NAME (frvbf,mqsaths) },
28749   { FRVBF_INSN_MSATHU, SEM_FN_NAME (frvbf,msathu) },
28750   { FRVBF_INSN_MCMPSH, SEM_FN_NAME (frvbf,mcmpsh) },
28751   { FRVBF_INSN_MCMPUH, SEM_FN_NAME (frvbf,mcmpuh) },
28752   { FRVBF_INSN_MABSHS, SEM_FN_NAME (frvbf,mabshs) },
28753   { FRVBF_INSN_MADDHSS, SEM_FN_NAME (frvbf,maddhss) },
28754   { FRVBF_INSN_MADDHUS, SEM_FN_NAME (frvbf,maddhus) },
28755   { FRVBF_INSN_MSUBHSS, SEM_FN_NAME (frvbf,msubhss) },
28756   { FRVBF_INSN_MSUBHUS, SEM_FN_NAME (frvbf,msubhus) },
28757   { FRVBF_INSN_CMADDHSS, SEM_FN_NAME (frvbf,cmaddhss) },
28758   { FRVBF_INSN_CMADDHUS, SEM_FN_NAME (frvbf,cmaddhus) },
28759   { FRVBF_INSN_CMSUBHSS, SEM_FN_NAME (frvbf,cmsubhss) },
28760   { FRVBF_INSN_CMSUBHUS, SEM_FN_NAME (frvbf,cmsubhus) },
28761   { FRVBF_INSN_MQADDHSS, SEM_FN_NAME (frvbf,mqaddhss) },
28762   { FRVBF_INSN_MQADDHUS, SEM_FN_NAME (frvbf,mqaddhus) },
28763   { FRVBF_INSN_MQSUBHSS, SEM_FN_NAME (frvbf,mqsubhss) },
28764   { FRVBF_INSN_MQSUBHUS, SEM_FN_NAME (frvbf,mqsubhus) },
28765   { FRVBF_INSN_CMQADDHSS, SEM_FN_NAME (frvbf,cmqaddhss) },
28766   { FRVBF_INSN_CMQADDHUS, SEM_FN_NAME (frvbf,cmqaddhus) },
28767   { FRVBF_INSN_CMQSUBHSS, SEM_FN_NAME (frvbf,cmqsubhss) },
28768   { FRVBF_INSN_CMQSUBHUS, SEM_FN_NAME (frvbf,cmqsubhus) },
28769   { FRVBF_INSN_MADDACCS, SEM_FN_NAME (frvbf,maddaccs) },
28770   { FRVBF_INSN_MSUBACCS, SEM_FN_NAME (frvbf,msubaccs) },
28771   { FRVBF_INSN_MDADDACCS, SEM_FN_NAME (frvbf,mdaddaccs) },
28772   { FRVBF_INSN_MDSUBACCS, SEM_FN_NAME (frvbf,mdsubaccs) },
28773   { FRVBF_INSN_MASACCS, SEM_FN_NAME (frvbf,masaccs) },
28774   { FRVBF_INSN_MDASACCS, SEM_FN_NAME (frvbf,mdasaccs) },
28775   { FRVBF_INSN_MMULHS, SEM_FN_NAME (frvbf,mmulhs) },
28776   { FRVBF_INSN_MMULHU, SEM_FN_NAME (frvbf,mmulhu) },
28777   { FRVBF_INSN_MMULXHS, SEM_FN_NAME (frvbf,mmulxhs) },
28778   { FRVBF_INSN_MMULXHU, SEM_FN_NAME (frvbf,mmulxhu) },
28779   { FRVBF_INSN_CMMULHS, SEM_FN_NAME (frvbf,cmmulhs) },
28780   { FRVBF_INSN_CMMULHU, SEM_FN_NAME (frvbf,cmmulhu) },
28781   { FRVBF_INSN_MQMULHS, SEM_FN_NAME (frvbf,mqmulhs) },
28782   { FRVBF_INSN_MQMULHU, SEM_FN_NAME (frvbf,mqmulhu) },
28783   { FRVBF_INSN_MQMULXHS, SEM_FN_NAME (frvbf,mqmulxhs) },
28784   { FRVBF_INSN_MQMULXHU, SEM_FN_NAME (frvbf,mqmulxhu) },
28785   { FRVBF_INSN_CMQMULHS, SEM_FN_NAME (frvbf,cmqmulhs) },
28786   { FRVBF_INSN_CMQMULHU, SEM_FN_NAME (frvbf,cmqmulhu) },
28787   { FRVBF_INSN_MMACHS, SEM_FN_NAME (frvbf,mmachs) },
28788   { FRVBF_INSN_MMACHU, SEM_FN_NAME (frvbf,mmachu) },
28789   { FRVBF_INSN_MMRDHS, SEM_FN_NAME (frvbf,mmrdhs) },
28790   { FRVBF_INSN_MMRDHU, SEM_FN_NAME (frvbf,mmrdhu) },
28791   { FRVBF_INSN_CMMACHS, SEM_FN_NAME (frvbf,cmmachs) },
28792   { FRVBF_INSN_CMMACHU, SEM_FN_NAME (frvbf,cmmachu) },
28793   { FRVBF_INSN_MQMACHS, SEM_FN_NAME (frvbf,mqmachs) },
28794   { FRVBF_INSN_MQMACHU, SEM_FN_NAME (frvbf,mqmachu) },
28795   { FRVBF_INSN_CMQMACHS, SEM_FN_NAME (frvbf,cmqmachs) },
28796   { FRVBF_INSN_CMQMACHU, SEM_FN_NAME (frvbf,cmqmachu) },
28797   { FRVBF_INSN_MQXMACHS, SEM_FN_NAME (frvbf,mqxmachs) },
28798   { FRVBF_INSN_MQXMACXHS, SEM_FN_NAME (frvbf,mqxmacxhs) },
28799   { FRVBF_INSN_MQMACXHS, SEM_FN_NAME (frvbf,mqmacxhs) },
28800   { FRVBF_INSN_MCPXRS, SEM_FN_NAME (frvbf,mcpxrs) },
28801   { FRVBF_INSN_MCPXRU, SEM_FN_NAME (frvbf,mcpxru) },
28802   { FRVBF_INSN_MCPXIS, SEM_FN_NAME (frvbf,mcpxis) },
28803   { FRVBF_INSN_MCPXIU, SEM_FN_NAME (frvbf,mcpxiu) },
28804   { FRVBF_INSN_CMCPXRS, SEM_FN_NAME (frvbf,cmcpxrs) },
28805   { FRVBF_INSN_CMCPXRU, SEM_FN_NAME (frvbf,cmcpxru) },
28806   { FRVBF_INSN_CMCPXIS, SEM_FN_NAME (frvbf,cmcpxis) },
28807   { FRVBF_INSN_CMCPXIU, SEM_FN_NAME (frvbf,cmcpxiu) },
28808   { FRVBF_INSN_MQCPXRS, SEM_FN_NAME (frvbf,mqcpxrs) },
28809   { FRVBF_INSN_MQCPXRU, SEM_FN_NAME (frvbf,mqcpxru) },
28810   { FRVBF_INSN_MQCPXIS, SEM_FN_NAME (frvbf,mqcpxis) },
28811   { FRVBF_INSN_MQCPXIU, SEM_FN_NAME (frvbf,mqcpxiu) },
28812   { FRVBF_INSN_MEXPDHW, SEM_FN_NAME (frvbf,mexpdhw) },
28813   { FRVBF_INSN_CMEXPDHW, SEM_FN_NAME (frvbf,cmexpdhw) },
28814   { FRVBF_INSN_MEXPDHD, SEM_FN_NAME (frvbf,mexpdhd) },
28815   { FRVBF_INSN_CMEXPDHD, SEM_FN_NAME (frvbf,cmexpdhd) },
28816   { FRVBF_INSN_MPACKH, SEM_FN_NAME (frvbf,mpackh) },
28817   { FRVBF_INSN_MDPACKH, SEM_FN_NAME (frvbf,mdpackh) },
28818   { FRVBF_INSN_MUNPACKH, SEM_FN_NAME (frvbf,munpackh) },
28819   { FRVBF_INSN_MDUNPACKH, SEM_FN_NAME (frvbf,mdunpackh) },
28820   { FRVBF_INSN_MBTOH, SEM_FN_NAME (frvbf,mbtoh) },
28821   { FRVBF_INSN_CMBTOH, SEM_FN_NAME (frvbf,cmbtoh) },
28822   { FRVBF_INSN_MHTOB, SEM_FN_NAME (frvbf,mhtob) },
28823   { FRVBF_INSN_CMHTOB, SEM_FN_NAME (frvbf,cmhtob) },
28824   { FRVBF_INSN_MBTOHE, SEM_FN_NAME (frvbf,mbtohe) },
28825   { FRVBF_INSN_CMBTOHE, SEM_FN_NAME (frvbf,cmbtohe) },
28826   { FRVBF_INSN_MNOP, SEM_FN_NAME (frvbf,mnop) },
28827   { FRVBF_INSN_MCLRACC_0, SEM_FN_NAME (frvbf,mclracc_0) },
28828   { FRVBF_INSN_MCLRACC_1, SEM_FN_NAME (frvbf,mclracc_1) },
28829   { FRVBF_INSN_MRDACC, SEM_FN_NAME (frvbf,mrdacc) },
28830   { FRVBF_INSN_MRDACCG, SEM_FN_NAME (frvbf,mrdaccg) },
28831   { FRVBF_INSN_MWTACC, SEM_FN_NAME (frvbf,mwtacc) },
28832   { FRVBF_INSN_MWTACCG, SEM_FN_NAME (frvbf,mwtaccg) },
28833   { FRVBF_INSN_MCOP1, SEM_FN_NAME (frvbf,mcop1) },
28834   { FRVBF_INSN_MCOP2, SEM_FN_NAME (frvbf,mcop2) },
28835   { FRVBF_INSN_FNOP, SEM_FN_NAME (frvbf,fnop) },
28836   { 0, 0 }
28837 };
28838
28839 /* Add the semantic fns to IDESC_TABLE.  */
28840
28841 void
28842 SEM_FN_NAME (frvbf,init_idesc_table) (SIM_CPU *current_cpu)
28843 {
28844   IDESC *idesc_table = CPU_IDESC (current_cpu);
28845   const struct sem_fn_desc *sf;
28846   int mach_num = MACH_NUM (CPU_MACH (current_cpu));
28847
28848   for (sf = &sem_fns[0]; sf->fn != 0; ++sf)
28849     {
28850       const CGEN_INSN *insn = idesc_table[sf->index].idata;
28851       int valid_p = (CGEN_INSN_VIRTUAL_P (insn)
28852                      || CGEN_INSN_MACH_HAS_P (insn, mach_num));
28853 #if FAST_P
28854       if (valid_p)
28855         idesc_table[sf->index].sem_fast = sf->fn;
28856       else
28857         idesc_table[sf->index].sem_fast = SEM_FN_NAME (frvbf,x_invalid);
28858 #else
28859       if (valid_p)
28860         idesc_table[sf->index].sem_full = sf->fn;
28861       else
28862         idesc_table[sf->index].sem_full = SEM_FN_NAME (frvbf,x_invalid);
28863 #endif
28864     }
28865 }
28866