Switch the license of all files explicitly copyright the FSF
[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-2005 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 3 of the License, or
12 (at your option) 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
20 along with this program.  If not, see <http://www.gnu.org/licenses/>.
21
22 */
23
24 #define WANT_CPU frvbf
25 #define WANT_CPU_FRVBF
26
27 #include "sim-main.h"
28 #include "cgen-mem.h"
29 #include "cgen-ops.h"
30
31 #undef GET_ATTR
32 #if defined (__STDC__) || defined (ALMOST_STDC) || defined (HAVE_STRINGIZE)
33 #define GET_ATTR(cpu, num, attr) CGEN_ATTR_VALUE (NULL, abuf->idesc->attrs, CGEN_INSN_##attr)
34 #else
35 #define GET_ATTR(cpu, num, attr) CGEN_ATTR_VALUE (NULL, abuf->idesc->attrs, CGEN_INSN_/**/attr)
36 #endif
37
38 /* This is used so that we can compile two copies of the semantic code,
39    one with full feature support and one without that runs fast(er).
40    FAST_P, when desired, is defined on the command line, -DFAST_P=1.  */
41 #if FAST_P
42 #define SEM_FN_NAME(cpu,fn) XCONCAT3 (cpu,_semf_,fn)
43 #undef TRACE_RESULT
44 #define TRACE_RESULT(cpu, abuf, name, type, val)
45 #else
46 #define SEM_FN_NAME(cpu,fn) XCONCAT3 (cpu,_sem_,fn)
47 #endif
48
49 /* x-invalid: --invalid-- */
50
51 static SEM_PC
52 SEM_FN_NAME (frvbf,x_invalid) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
53 {
54 #define FLD(f) abuf->fields.fmt_empty.f
55   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
56   int UNUSED written = 0;
57   IADDR UNUSED pc = abuf->addr;
58   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 0);
59
60   {
61     /* Update the recorded pc in the cpu state struct.
62        Only necessary for WITH_SCACHE case, but to avoid the
63        conditional compilation ....  */
64     SET_H_PC (pc);
65     /* Virtual insns have zero size.  Overwrite vpc with address of next insn
66        using the default-insn-bitsize spec.  When executing insns in parallel
67        we may want to queue the fault and continue execution.  */
68     vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
69     vpc = sim_engine_invalid_insn (current_cpu, pc, vpc);
70   }
71
72   return vpc;
73 #undef FLD
74 }
75
76 /* x-after: --after-- */
77
78 static SEM_PC
79 SEM_FN_NAME (frvbf,x_after) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
80 {
81 #define FLD(f) abuf->fields.fmt_empty.f
82   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
83   int UNUSED written = 0;
84   IADDR UNUSED pc = abuf->addr;
85   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 0);
86
87   {
88 #if WITH_SCACHE_PBB_FRVBF
89     frvbf_pbb_after (current_cpu, sem_arg);
90 #endif
91   }
92
93   return vpc;
94 #undef FLD
95 }
96
97 /* x-before: --before-- */
98
99 static SEM_PC
100 SEM_FN_NAME (frvbf,x_before) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
101 {
102 #define FLD(f) abuf->fields.fmt_empty.f
103   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
104   int UNUSED written = 0;
105   IADDR UNUSED pc = abuf->addr;
106   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 0);
107
108   {
109 #if WITH_SCACHE_PBB_FRVBF
110     frvbf_pbb_before (current_cpu, sem_arg);
111 #endif
112   }
113
114   return vpc;
115 #undef FLD
116 }
117
118 /* x-cti-chain: --cti-chain-- */
119
120 static SEM_PC
121 SEM_FN_NAME (frvbf,x_cti_chain) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
122 {
123 #define FLD(f) abuf->fields.fmt_empty.f
124   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
125   int UNUSED written = 0;
126   IADDR UNUSED pc = abuf->addr;
127   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 0);
128
129   {
130 #if WITH_SCACHE_PBB_FRVBF
131 #ifdef DEFINE_SWITCH
132     vpc = frvbf_pbb_cti_chain (current_cpu, sem_arg,
133                                pbb_br_type, pbb_br_npc);
134     BREAK (sem);
135 #else
136     /* FIXME: Allow provision of explicit ifmt spec in insn spec.  */
137     vpc = frvbf_pbb_cti_chain (current_cpu, sem_arg,
138                                CPU_PBB_BR_TYPE (current_cpu),
139                                CPU_PBB_BR_NPC (current_cpu));
140 #endif
141 #endif
142   }
143
144   return vpc;
145 #undef FLD
146 }
147
148 /* x-chain: --chain-- */
149
150 static SEM_PC
151 SEM_FN_NAME (frvbf,x_chain) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
152 {
153 #define FLD(f) abuf->fields.fmt_empty.f
154   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
155   int UNUSED written = 0;
156   IADDR UNUSED pc = abuf->addr;
157   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 0);
158
159   {
160 #if WITH_SCACHE_PBB_FRVBF
161     vpc = frvbf_pbb_chain (current_cpu, sem_arg);
162 #ifdef DEFINE_SWITCH
163     BREAK (sem);
164 #endif
165 #endif
166   }
167
168   return vpc;
169 #undef FLD
170 }
171
172 /* x-begin: --begin-- */
173
174 static SEM_PC
175 SEM_FN_NAME (frvbf,x_begin) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
176 {
177 #define FLD(f) abuf->fields.fmt_empty.f
178   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
179   int UNUSED written = 0;
180   IADDR UNUSED pc = abuf->addr;
181   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 0);
182
183   {
184 #if WITH_SCACHE_PBB_FRVBF
185 #if defined DEFINE_SWITCH || defined FAST_P
186     /* In the switch case FAST_P is a constant, allowing several optimizations
187        in any called inline functions.  */
188     vpc = frvbf_pbb_begin (current_cpu, FAST_P);
189 #else
190 #if 0 /* cgen engine can't handle dynamic fast/full switching yet.  */
191     vpc = frvbf_pbb_begin (current_cpu, STATE_RUN_FAST_P (CPU_STATE (current_cpu)));
192 #else
193     vpc = frvbf_pbb_begin (current_cpu, 0);
194 #endif
195 #endif
196 #endif
197   }
198
199   return vpc;
200 #undef FLD
201 }
202
203 /* add: add$pack $GRi,$GRj,$GRk */
204
205 static SEM_PC
206 SEM_FN_NAME (frvbf,add) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
207 {
208 #define FLD(f) abuf->fields.sfmt_addcc.f
209   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
210   int UNUSED written = 0;
211   IADDR UNUSED pc = abuf->addr;
212   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
213
214   {
215     SI opval = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
216     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
217     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
218   }
219
220   return vpc;
221 #undef FLD
222 }
223
224 /* sub: sub$pack $GRi,$GRj,$GRk */
225
226 static SEM_PC
227 SEM_FN_NAME (frvbf,sub) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
228 {
229 #define FLD(f) abuf->fields.sfmt_addcc.f
230   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
231   int UNUSED written = 0;
232   IADDR UNUSED pc = abuf->addr;
233   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
234
235   {
236     SI opval = SUBSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
237     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
238     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
239   }
240
241   return vpc;
242 #undef FLD
243 }
244
245 /* and: and$pack $GRi,$GRj,$GRk */
246
247 static SEM_PC
248 SEM_FN_NAME (frvbf,and) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
249 {
250 #define FLD(f) abuf->fields.sfmt_addcc.f
251   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
252   int UNUSED written = 0;
253   IADDR UNUSED pc = abuf->addr;
254   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
255
256   {
257     SI opval = ANDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
258     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
259     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
260   }
261
262   return vpc;
263 #undef FLD
264 }
265
266 /* or: or$pack $GRi,$GRj,$GRk */
267
268 static SEM_PC
269 SEM_FN_NAME (frvbf,or) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
270 {
271 #define FLD(f) abuf->fields.sfmt_addcc.f
272   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
273   int UNUSED written = 0;
274   IADDR UNUSED pc = abuf->addr;
275   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
276
277   {
278     SI opval = ORSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
279     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
280     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
281   }
282
283   return vpc;
284 #undef FLD
285 }
286
287 /* xor: xor$pack $GRi,$GRj,$GRk */
288
289 static SEM_PC
290 SEM_FN_NAME (frvbf,xor) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
291 {
292 #define FLD(f) abuf->fields.sfmt_addcc.f
293   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
294   int UNUSED written = 0;
295   IADDR UNUSED pc = abuf->addr;
296   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
297
298   {
299     SI opval = XORSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
300     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
301     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
302   }
303
304   return vpc;
305 #undef FLD
306 }
307
308 /* not: not$pack $GRj,$GRk */
309
310 static SEM_PC
311 SEM_FN_NAME (frvbf,not) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
312 {
313 #define FLD(f) abuf->fields.sfmt_scutss.f
314   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
315   int UNUSED written = 0;
316   IADDR UNUSED pc = abuf->addr;
317   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
318
319   {
320     SI opval = INVSI (GET_H_GR (FLD (f_GRj)));
321     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
322     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
323   }
324
325   return vpc;
326 #undef FLD
327 }
328
329 /* sdiv: sdiv$pack $GRi,$GRj,$GRk */
330
331 static SEM_PC
332 SEM_FN_NAME (frvbf,sdiv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
333 {
334 #define FLD(f) abuf->fields.sfmt_addcc.f
335   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
336   int UNUSED written = 0;
337   IADDR UNUSED pc = abuf->addr;
338   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
339
340 {
341 frvbf_signed_integer_divide (current_cpu, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), FLD (f_GRk), 0);
342 ; /*clobber*/
343 }
344
345   return vpc;
346 #undef FLD
347 }
348
349 /* nsdiv: nsdiv$pack $GRi,$GRj,$GRk */
350
351 static SEM_PC
352 SEM_FN_NAME (frvbf,nsdiv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
353 {
354 #define FLD(f) abuf->fields.sfmt_addcc.f
355   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
356   int UNUSED written = 0;
357   IADDR UNUSED pc = abuf->addr;
358   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
359
360 {
361 frvbf_signed_integer_divide (current_cpu, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), FLD (f_GRk), 1);
362 ; /*clobber*/
363 }
364
365   return vpc;
366 #undef FLD
367 }
368
369 /* udiv: udiv$pack $GRi,$GRj,$GRk */
370
371 static SEM_PC
372 SEM_FN_NAME (frvbf,udiv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
373 {
374 #define FLD(f) abuf->fields.sfmt_addcc.f
375   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
376   int UNUSED written = 0;
377   IADDR UNUSED pc = abuf->addr;
378   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
379
380 {
381 frvbf_unsigned_integer_divide (current_cpu, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), FLD (f_GRk), 0);
382 ; /*clobber*/
383 }
384
385   return vpc;
386 #undef FLD
387 }
388
389 /* nudiv: nudiv$pack $GRi,$GRj,$GRk */
390
391 static SEM_PC
392 SEM_FN_NAME (frvbf,nudiv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
393 {
394 #define FLD(f) abuf->fields.sfmt_addcc.f
395   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
396   int UNUSED written = 0;
397   IADDR UNUSED pc = abuf->addr;
398   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
399
400 {
401 frvbf_unsigned_integer_divide (current_cpu, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), FLD (f_GRk), 1);
402 ; /*clobber*/
403 }
404
405   return vpc;
406 #undef FLD
407 }
408
409 /* smul: smul$pack $GRi,$GRj,$GRdoublek */
410
411 static SEM_PC
412 SEM_FN_NAME (frvbf,smul) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
413 {
414 #define FLD(f) abuf->fields.sfmt_smulcc.f
415   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
416   int UNUSED written = 0;
417   IADDR UNUSED pc = abuf->addr;
418   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
419
420   {
421     DI opval = MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi))), EXTSIDI (GET_H_GR (FLD (f_GRj))));
422     sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
423     TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
424   }
425
426   return vpc;
427 #undef FLD
428 }
429
430 /* umul: umul$pack $GRi,$GRj,$GRdoublek */
431
432 static SEM_PC
433 SEM_FN_NAME (frvbf,umul) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
434 {
435 #define FLD(f) abuf->fields.sfmt_smulcc.f
436   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
437   int UNUSED written = 0;
438   IADDR UNUSED pc = abuf->addr;
439   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
440
441   {
442     DI opval = MULDI (ZEXTSIDI (GET_H_GR (FLD (f_GRi))), ZEXTSIDI (GET_H_GR (FLD (f_GRj))));
443     sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
444     TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
445   }
446
447   return vpc;
448 #undef FLD
449 }
450
451 /* smu: smu$pack $GRi,$GRj */
452
453 static SEM_PC
454 SEM_FN_NAME (frvbf,smu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
455 {
456 #define FLD(f) abuf->fields.sfmt_smass.f
457   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
458   int UNUSED written = 0;
459   IADDR UNUSED pc = abuf->addr;
460   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
461
462   {
463     DI opval = MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi))), EXTSIDI (GET_H_GR (FLD (f_GRj))));
464     sim_queue_fn_di_write (current_cpu, frvbf_h_iacc0_set, ((UINT) 0), opval);
465     TRACE_RESULT (current_cpu, abuf, "iacc0", 'D', opval);
466   }
467
468   return vpc;
469 #undef FLD
470 }
471
472 /* smass: smass$pack $GRi,$GRj */
473
474 static SEM_PC
475 SEM_FN_NAME (frvbf,smass) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
476 {
477 #define FLD(f) abuf->fields.sfmt_smass.f
478   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
479   int UNUSED written = 0;
480   IADDR UNUSED pc = abuf->addr;
481   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
482
483   {
484     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))))));
485     sim_queue_fn_di_write (current_cpu, frvbf_h_iacc0_set, ((UINT) 0), opval);
486     TRACE_RESULT (current_cpu, abuf, "iacc0", 'D', opval);
487   }
488
489   return vpc;
490 #undef FLD
491 }
492
493 /* smsss: smsss$pack $GRi,$GRj */
494
495 static SEM_PC
496 SEM_FN_NAME (frvbf,smsss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
497 {
498 #define FLD(f) abuf->fields.sfmt_smass.f
499   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
500   int UNUSED written = 0;
501   IADDR UNUSED pc = abuf->addr;
502   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
503
504   {
505     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))))));
506     sim_queue_fn_di_write (current_cpu, frvbf_h_iacc0_set, ((UINT) 0), opval);
507     TRACE_RESULT (current_cpu, abuf, "iacc0", 'D', opval);
508   }
509
510   return vpc;
511 #undef FLD
512 }
513
514 /* sll: sll$pack $GRi,$GRj,$GRk */
515
516 static SEM_PC
517 SEM_FN_NAME (frvbf,sll) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
518 {
519 #define FLD(f) abuf->fields.sfmt_addcc.f
520   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
521   int UNUSED written = 0;
522   IADDR UNUSED pc = abuf->addr;
523   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
524
525   {
526     SI opval = SLLSI (GET_H_GR (FLD (f_GRi)), ANDSI (GET_H_GR (FLD (f_GRj)), 31));
527     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
528     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
529   }
530
531   return vpc;
532 #undef FLD
533 }
534
535 /* srl: srl$pack $GRi,$GRj,$GRk */
536
537 static SEM_PC
538 SEM_FN_NAME (frvbf,srl) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
539 {
540 #define FLD(f) abuf->fields.sfmt_addcc.f
541   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
542   int UNUSED written = 0;
543   IADDR UNUSED pc = abuf->addr;
544   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
545
546   {
547     SI opval = SRLSI (GET_H_GR (FLD (f_GRi)), ANDSI (GET_H_GR (FLD (f_GRj)), 31));
548     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
549     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
550   }
551
552   return vpc;
553 #undef FLD
554 }
555
556 /* sra: sra$pack $GRi,$GRj,$GRk */
557
558 static SEM_PC
559 SEM_FN_NAME (frvbf,sra) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
560 {
561 #define FLD(f) abuf->fields.sfmt_addcc.f
562   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
563   int UNUSED written = 0;
564   IADDR UNUSED pc = abuf->addr;
565   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
566
567   {
568     SI opval = SRASI (GET_H_GR (FLD (f_GRi)), ANDSI (GET_H_GR (FLD (f_GRj)), 31));
569     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
570     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
571   }
572
573   return vpc;
574 #undef FLD
575 }
576
577 /* slass: slass$pack $GRi,$GRj,$GRk */
578
579 static SEM_PC
580 SEM_FN_NAME (frvbf,slass) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
581 {
582 #define FLD(f) abuf->fields.sfmt_addcc.f
583   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
584   int UNUSED written = 0;
585   IADDR UNUSED pc = abuf->addr;
586   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
587
588   {
589     SI opval = frvbf_shift_left_arith_saturate (current_cpu, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
590     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
591     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
592   }
593
594   return vpc;
595 #undef FLD
596 }
597
598 /* scutss: scutss$pack $GRj,$GRk */
599
600 static SEM_PC
601 SEM_FN_NAME (frvbf,scutss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
602 {
603 #define FLD(f) abuf->fields.sfmt_scutss.f
604   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
605   int UNUSED written = 0;
606   IADDR UNUSED pc = abuf->addr;
607   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
608
609   {
610     SI opval = frvbf_iacc_cut (current_cpu, GET_H_IACC0 (((UINT) 0)), GET_H_GR (FLD (f_GRj)));
611     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
612     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
613   }
614
615   return vpc;
616 #undef FLD
617 }
618
619 /* scan: scan$pack $GRi,$GRj,$GRk */
620
621 static SEM_PC
622 SEM_FN_NAME (frvbf,scan) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
623 {
624 #define FLD(f) abuf->fields.sfmt_addcc.f
625   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
626   int UNUSED written = 0;
627   IADDR UNUSED pc = abuf->addr;
628   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
629
630 {
631   SI tmp_tmp1;
632   SI tmp_tmp2;
633   tmp_tmp1 = GET_H_GR (FLD (f_GRi));
634   tmp_tmp2 = SRASI (GET_H_GR (FLD (f_GRj)), 1);
635   {
636     SI opval = frvbf_scan_result (current_cpu, XORSI (tmp_tmp1, tmp_tmp2));
637     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
638     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
639   }
640 }
641
642   return vpc;
643 #undef FLD
644 }
645
646 /* cadd: cadd$pack $GRi,$GRj,$GRk,$CCi,$cond */
647
648 static SEM_PC
649 SEM_FN_NAME (frvbf,cadd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
650 {
651 #define FLD(f) abuf->fields.sfmt_cswap.f
652   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
653   int UNUSED written = 0;
654   IADDR UNUSED pc = abuf->addr;
655   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
656
657 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
658   {
659     SI opval = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
660     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
661     written |= (1 << 4);
662     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
663   }
664 }
665
666   abuf->written = written;
667   return vpc;
668 #undef FLD
669 }
670
671 /* csub: csub$pack $GRi,$GRj,$GRk,$CCi,$cond */
672
673 static SEM_PC
674 SEM_FN_NAME (frvbf,csub) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
675 {
676 #define FLD(f) abuf->fields.sfmt_cswap.f
677   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
678   int UNUSED written = 0;
679   IADDR UNUSED pc = abuf->addr;
680   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
681
682 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
683   {
684     SI opval = SUBSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
685     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
686     written |= (1 << 4);
687     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
688   }
689 }
690
691   abuf->written = written;
692   return vpc;
693 #undef FLD
694 }
695
696 /* cand: cand$pack $GRi,$GRj,$GRk,$CCi,$cond */
697
698 static SEM_PC
699 SEM_FN_NAME (frvbf,cand) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
700 {
701 #define FLD(f) abuf->fields.sfmt_cswap.f
702   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
703   int UNUSED written = 0;
704   IADDR UNUSED pc = abuf->addr;
705   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
706
707 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
708   {
709     SI opval = ANDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
710     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
711     written |= (1 << 4);
712     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
713   }
714 }
715
716   abuf->written = written;
717   return vpc;
718 #undef FLD
719 }
720
721 /* cor: cor$pack $GRi,$GRj,$GRk,$CCi,$cond */
722
723 static SEM_PC
724 SEM_FN_NAME (frvbf,cor) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
725 {
726 #define FLD(f) abuf->fields.sfmt_cswap.f
727   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
728   int UNUSED written = 0;
729   IADDR UNUSED pc = abuf->addr;
730   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
731
732 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
733   {
734     SI opval = ORSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
735     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
736     written |= (1 << 4);
737     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
738   }
739 }
740
741   abuf->written = written;
742   return vpc;
743 #undef FLD
744 }
745
746 /* cxor: cxor$pack $GRi,$GRj,$GRk,$CCi,$cond */
747
748 static SEM_PC
749 SEM_FN_NAME (frvbf,cxor) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
750 {
751 #define FLD(f) abuf->fields.sfmt_cswap.f
752   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
753   int UNUSED written = 0;
754   IADDR UNUSED pc = abuf->addr;
755   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
756
757 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
758   {
759     SI opval = XORSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
760     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
761     written |= (1 << 4);
762     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
763   }
764 }
765
766   abuf->written = written;
767   return vpc;
768 #undef FLD
769 }
770
771 /* cnot: cnot$pack $GRj,$GRk,$CCi,$cond */
772
773 static SEM_PC
774 SEM_FN_NAME (frvbf,cnot) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
775 {
776 #define FLD(f) abuf->fields.sfmt_cswap.f
777   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
778   int UNUSED written = 0;
779   IADDR UNUSED pc = abuf->addr;
780   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
781
782 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
783   {
784     SI opval = INVSI (GET_H_GR (FLD (f_GRj)));
785     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
786     written |= (1 << 3);
787     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
788   }
789 }
790
791   abuf->written = written;
792   return vpc;
793 #undef FLD
794 }
795
796 /* csmul: csmul$pack $GRi,$GRj,$GRdoublek,$CCi,$cond */
797
798 static SEM_PC
799 SEM_FN_NAME (frvbf,csmul) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
800 {
801 #define FLD(f) abuf->fields.sfmt_clddu.f
802   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
803   int UNUSED written = 0;
804   IADDR UNUSED pc = abuf->addr;
805   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
806
807 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
808   {
809     DI opval = MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi))), EXTSIDI (GET_H_GR (FLD (f_GRj))));
810     sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
811     written |= (1 << 4);
812     TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
813   }
814 }
815
816   abuf->written = written;
817   return vpc;
818 #undef FLD
819 }
820
821 /* csdiv: csdiv$pack $GRi,$GRj,$GRk,$CCi,$cond */
822
823 static SEM_PC
824 SEM_FN_NAME (frvbf,csdiv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
825 {
826 #define FLD(f) abuf->fields.sfmt_cswap.f
827   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
828   int UNUSED written = 0;
829   IADDR UNUSED pc = abuf->addr;
830   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
831
832 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
833 {
834 frvbf_signed_integer_divide (current_cpu, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), FLD (f_GRk), 0);
835 ; /*clobber*/
836 }
837 }
838
839   abuf->written = written;
840   return vpc;
841 #undef FLD
842 }
843
844 /* cudiv: cudiv$pack $GRi,$GRj,$GRk,$CCi,$cond */
845
846 static SEM_PC
847 SEM_FN_NAME (frvbf,cudiv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
848 {
849 #define FLD(f) abuf->fields.sfmt_cswap.f
850   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
851   int UNUSED written = 0;
852   IADDR UNUSED pc = abuf->addr;
853   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
854
855 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
856 {
857 frvbf_unsigned_integer_divide (current_cpu, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), FLD (f_GRk), 0);
858 ; /*clobber*/
859 }
860 }
861
862   abuf->written = written;
863   return vpc;
864 #undef FLD
865 }
866
867 /* csll: csll$pack $GRi,$GRj,$GRk,$CCi,$cond */
868
869 static SEM_PC
870 SEM_FN_NAME (frvbf,csll) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
871 {
872 #define FLD(f) abuf->fields.sfmt_cswap.f
873   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
874   int UNUSED written = 0;
875   IADDR UNUSED pc = abuf->addr;
876   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
877
878 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
879   {
880     SI opval = SLLSI (GET_H_GR (FLD (f_GRi)), ANDSI (GET_H_GR (FLD (f_GRj)), 31));
881     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
882     written |= (1 << 4);
883     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
884   }
885 }
886
887   abuf->written = written;
888   return vpc;
889 #undef FLD
890 }
891
892 /* csrl: csrl$pack $GRi,$GRj,$GRk,$CCi,$cond */
893
894 static SEM_PC
895 SEM_FN_NAME (frvbf,csrl) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
896 {
897 #define FLD(f) abuf->fields.sfmt_cswap.f
898   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
899   int UNUSED written = 0;
900   IADDR UNUSED pc = abuf->addr;
901   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
902
903 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
904   {
905     SI opval = SRLSI (GET_H_GR (FLD (f_GRi)), ANDSI (GET_H_GR (FLD (f_GRj)), 31));
906     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
907     written |= (1 << 4);
908     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
909   }
910 }
911
912   abuf->written = written;
913   return vpc;
914 #undef FLD
915 }
916
917 /* csra: csra$pack $GRi,$GRj,$GRk,$CCi,$cond */
918
919 static SEM_PC
920 SEM_FN_NAME (frvbf,csra) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
921 {
922 #define FLD(f) abuf->fields.sfmt_cswap.f
923   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
924   int UNUSED written = 0;
925   IADDR UNUSED pc = abuf->addr;
926   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
927
928 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
929   {
930     SI opval = SRASI (GET_H_GR (FLD (f_GRi)), ANDSI (GET_H_GR (FLD (f_GRj)), 31));
931     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
932     written |= (1 << 4);
933     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
934   }
935 }
936
937   abuf->written = written;
938   return vpc;
939 #undef FLD
940 }
941
942 /* cscan: cscan$pack $GRi,$GRj,$GRk,$CCi,$cond */
943
944 static SEM_PC
945 SEM_FN_NAME (frvbf,cscan) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
946 {
947 #define FLD(f) abuf->fields.sfmt_cswap.f
948   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
949   int UNUSED written = 0;
950   IADDR UNUSED pc = abuf->addr;
951   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
952
953 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
954 {
955   SI tmp_tmp1;
956   SI tmp_tmp2;
957   tmp_tmp1 = GET_H_GR (FLD (f_GRi));
958   tmp_tmp2 = SRASI (GET_H_GR (FLD (f_GRj)), 1);
959   {
960     SI opval = frvbf_scan_result (current_cpu, XORSI (tmp_tmp1, tmp_tmp2));
961     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
962     written |= (1 << 4);
963     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
964   }
965 }
966 }
967
968   abuf->written = written;
969   return vpc;
970 #undef FLD
971 }
972
973 /* addcc: addcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
974
975 static SEM_PC
976 SEM_FN_NAME (frvbf,addcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
977 {
978 #define FLD(f) abuf->fields.sfmt_addcc.f
979   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
980   int UNUSED written = 0;
981   IADDR UNUSED pc = abuf->addr;
982   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
983
984 {
985   BI tmp_tmp;
986   QI tmp_cc;
987   SI tmp_result;
988   tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
989   tmp_tmp = ADDOFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), 0);
990 if (EQBI (tmp_tmp, 0)) {
991   tmp_cc = ANDQI (tmp_cc, 13);
992 } else {
993   tmp_cc = ORQI (tmp_cc, 2);
994 }
995   tmp_tmp = ADDCFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), 0);
996 if (EQBI (tmp_tmp, 0)) {
997   tmp_cc = ANDQI (tmp_cc, 14);
998 } else {
999   tmp_cc = ORQI (tmp_cc, 1);
1000 }
1001   tmp_result = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
1002 if (EQSI (tmp_result, 0)) {
1003   tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
1004 } else {
1005 if (LTSI (tmp_result, 0)) {
1006   tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
1007 } else {
1008   tmp_cc = ANDQI (tmp_cc, 3);
1009 }
1010 }
1011   {
1012     SI opval = tmp_result;
1013     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1014     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1015   }
1016   {
1017     UQI opval = tmp_cc;
1018     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1019     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1020   }
1021 }
1022
1023   return vpc;
1024 #undef FLD
1025 }
1026
1027 /* subcc: subcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
1028
1029 static SEM_PC
1030 SEM_FN_NAME (frvbf,subcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1031 {
1032 #define FLD(f) abuf->fields.sfmt_addcc.f
1033   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1034   int UNUSED written = 0;
1035   IADDR UNUSED pc = abuf->addr;
1036   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1037
1038 {
1039   BI tmp_tmp;
1040   QI tmp_cc;
1041   SI tmp_result;
1042   tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
1043   tmp_tmp = SUBOFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), 0);
1044 if (EQBI (tmp_tmp, 0)) {
1045   tmp_cc = ANDQI (tmp_cc, 13);
1046 } else {
1047   tmp_cc = ORQI (tmp_cc, 2);
1048 }
1049   tmp_tmp = SUBCFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), 0);
1050 if (EQBI (tmp_tmp, 0)) {
1051   tmp_cc = ANDQI (tmp_cc, 14);
1052 } else {
1053   tmp_cc = ORQI (tmp_cc, 1);
1054 }
1055   tmp_result = SUBSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
1056 if (EQSI (tmp_result, 0)) {
1057   tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
1058 } else {
1059 if (LTSI (tmp_result, 0)) {
1060   tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
1061 } else {
1062   tmp_cc = ANDQI (tmp_cc, 3);
1063 }
1064 }
1065   {
1066     SI opval = tmp_result;
1067     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1068     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1069   }
1070   {
1071     UQI opval = tmp_cc;
1072     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1073     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1074   }
1075 }
1076
1077   return vpc;
1078 #undef FLD
1079 }
1080
1081 /* andcc: andcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
1082
1083 static SEM_PC
1084 SEM_FN_NAME (frvbf,andcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1085 {
1086 #define FLD(f) abuf->fields.sfmt_addcc.f
1087   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1088   int UNUSED written = 0;
1089   IADDR UNUSED pc = abuf->addr;
1090   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1091
1092 {
1093   SI tmp_tmp;
1094   tmp_tmp = ANDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
1095   {
1096     SI opval = tmp_tmp;
1097     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1098     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1099   }
1100 if (EQSI (tmp_tmp, 0)) {
1101   {
1102     UQI opval = ORQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 7), 4);
1103     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1104     written |= (1 << 4);
1105     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1106   }
1107 } else {
1108 if (LTSI (tmp_tmp, 0)) {
1109   {
1110     UQI opval = ORQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 11), 8);
1111     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1112     written |= (1 << 4);
1113     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1114   }
1115 } else {
1116   {
1117     UQI opval = ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 3);
1118     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1119     written |= (1 << 4);
1120     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1121   }
1122 }
1123 }
1124 }
1125
1126   abuf->written = written;
1127   return vpc;
1128 #undef FLD
1129 }
1130
1131 /* orcc: orcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
1132
1133 static SEM_PC
1134 SEM_FN_NAME (frvbf,orcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1135 {
1136 #define FLD(f) abuf->fields.sfmt_addcc.f
1137   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1138   int UNUSED written = 0;
1139   IADDR UNUSED pc = abuf->addr;
1140   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1141
1142 {
1143   SI tmp_tmp;
1144   tmp_tmp = ORSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
1145   {
1146     SI opval = tmp_tmp;
1147     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1148     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1149   }
1150 if (EQSI (tmp_tmp, 0)) {
1151   {
1152     UQI opval = ORQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 7), 4);
1153     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1154     written |= (1 << 4);
1155     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1156   }
1157 } else {
1158 if (LTSI (tmp_tmp, 0)) {
1159   {
1160     UQI opval = ORQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 11), 8);
1161     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1162     written |= (1 << 4);
1163     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1164   }
1165 } else {
1166   {
1167     UQI opval = ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 3);
1168     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1169     written |= (1 << 4);
1170     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1171   }
1172 }
1173 }
1174 }
1175
1176   abuf->written = written;
1177   return vpc;
1178 #undef FLD
1179 }
1180
1181 /* xorcc: xorcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
1182
1183 static SEM_PC
1184 SEM_FN_NAME (frvbf,xorcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1185 {
1186 #define FLD(f) abuf->fields.sfmt_addcc.f
1187   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1188   int UNUSED written = 0;
1189   IADDR UNUSED pc = abuf->addr;
1190   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1191
1192 {
1193   SI tmp_tmp;
1194   tmp_tmp = XORSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
1195   {
1196     SI opval = tmp_tmp;
1197     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1198     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1199   }
1200 if (EQSI (tmp_tmp, 0)) {
1201   {
1202     UQI opval = ORQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 7), 4);
1203     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1204     written |= (1 << 4);
1205     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1206   }
1207 } else {
1208 if (LTSI (tmp_tmp, 0)) {
1209   {
1210     UQI opval = ORQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 11), 8);
1211     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1212     written |= (1 << 4);
1213     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1214   }
1215 } else {
1216   {
1217     UQI opval = ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 3);
1218     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1219     written |= (1 << 4);
1220     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1221   }
1222 }
1223 }
1224 }
1225
1226   abuf->written = written;
1227   return vpc;
1228 #undef FLD
1229 }
1230
1231 /* sllcc: sllcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
1232
1233 static SEM_PC
1234 SEM_FN_NAME (frvbf,sllcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1235 {
1236 #define FLD(f) abuf->fields.sfmt_addcc.f
1237   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1238   int UNUSED written = 0;
1239   IADDR UNUSED pc = abuf->addr;
1240   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1241
1242 {
1243   SI tmp_shift;
1244   SI tmp_tmp;
1245   QI tmp_cc;
1246   tmp_shift = ANDSI (GET_H_GR (FLD (f_GRj)), 31);
1247   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)]));
1248   tmp_tmp = SLLSI (GET_H_GR (FLD (f_GRi)), tmp_shift);
1249   {
1250     SI opval = tmp_tmp;
1251     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1252     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1253   }
1254 if (EQSI (tmp_tmp, 0)) {
1255   tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
1256 } else {
1257 if (LTSI (tmp_tmp, 0)) {
1258   tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
1259 } else {
1260   tmp_cc = ANDQI (tmp_cc, 3);
1261 }
1262 }
1263   {
1264     UQI opval = tmp_cc;
1265     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1266     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1267   }
1268 }
1269
1270   return vpc;
1271 #undef FLD
1272 }
1273
1274 /* srlcc: srlcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
1275
1276 static SEM_PC
1277 SEM_FN_NAME (frvbf,srlcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1278 {
1279 #define FLD(f) abuf->fields.sfmt_addcc.f
1280   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1281   int UNUSED written = 0;
1282   IADDR UNUSED pc = abuf->addr;
1283   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1284
1285 {
1286   SI tmp_shift;
1287   SI tmp_tmp;
1288   QI tmp_cc;
1289   tmp_shift = ANDSI (GET_H_GR (FLD (f_GRj)), 31);
1290   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)]));
1291   tmp_tmp = SRLSI (GET_H_GR (FLD (f_GRi)), tmp_shift);
1292   {
1293     SI opval = tmp_tmp;
1294     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1295     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1296   }
1297 if (EQSI (tmp_tmp, 0)) {
1298   tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
1299 } else {
1300 if (LTSI (tmp_tmp, 0)) {
1301   tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
1302 } else {
1303   tmp_cc = ANDQI (tmp_cc, 3);
1304 }
1305 }
1306   {
1307     UQI opval = tmp_cc;
1308     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1309     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1310   }
1311 }
1312
1313   return vpc;
1314 #undef FLD
1315 }
1316
1317 /* sracc: sracc$pack $GRi,$GRj,$GRk,$ICCi_1 */
1318
1319 static SEM_PC
1320 SEM_FN_NAME (frvbf,sracc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1321 {
1322 #define FLD(f) abuf->fields.sfmt_addcc.f
1323   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1324   int UNUSED written = 0;
1325   IADDR UNUSED pc = abuf->addr;
1326   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1327
1328 {
1329   SI tmp_shift;
1330   SI tmp_tmp;
1331   QI tmp_cc;
1332   tmp_shift = ANDSI (GET_H_GR (FLD (f_GRj)), 31);
1333   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)]));
1334   tmp_tmp = SRASI (GET_H_GR (FLD (f_GRi)), tmp_shift);
1335   {
1336     SI opval = tmp_tmp;
1337     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1338     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1339   }
1340 if (EQSI (tmp_tmp, 0)) {
1341   tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
1342 } else {
1343 if (LTSI (tmp_tmp, 0)) {
1344   tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
1345 } else {
1346   tmp_cc = ANDQI (tmp_cc, 3);
1347 }
1348 }
1349   {
1350     UQI opval = tmp_cc;
1351     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1352     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1353   }
1354 }
1355
1356   return vpc;
1357 #undef FLD
1358 }
1359
1360 /* smulcc: smulcc$pack $GRi,$GRj,$GRdoublek,$ICCi_1 */
1361
1362 static SEM_PC
1363 SEM_FN_NAME (frvbf,smulcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1364 {
1365 #define FLD(f) abuf->fields.sfmt_smulcc.f
1366   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1367   int UNUSED written = 0;
1368   IADDR UNUSED pc = abuf->addr;
1369   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1370
1371 {
1372   DI tmp_tmp;
1373   QI tmp_cc;
1374   tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
1375   tmp_tmp = MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi))), EXTSIDI (GET_H_GR (FLD (f_GRj))));
1376 if (EQDI (SRLDI (tmp_tmp, 63), 0)) {
1377   tmp_cc = ANDQI (tmp_cc, 7);
1378 } else {
1379   tmp_cc = ORQI (tmp_cc, 8);
1380 }
1381 if (EQBI (EQDI (tmp_tmp, 0), 0)) {
1382   tmp_cc = ANDQI (tmp_cc, 11);
1383 } else {
1384   tmp_cc = ORQI (tmp_cc, 4);
1385 }
1386   {
1387     DI opval = tmp_tmp;
1388     sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
1389     TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
1390   }
1391   {
1392     UQI opval = tmp_cc;
1393     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1394     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1395   }
1396 }
1397
1398   return vpc;
1399 #undef FLD
1400 }
1401
1402 /* umulcc: umulcc$pack $GRi,$GRj,$GRdoublek,$ICCi_1 */
1403
1404 static SEM_PC
1405 SEM_FN_NAME (frvbf,umulcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1406 {
1407 #define FLD(f) abuf->fields.sfmt_smulcc.f
1408   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1409   int UNUSED written = 0;
1410   IADDR UNUSED pc = abuf->addr;
1411   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1412
1413 {
1414   DI tmp_tmp;
1415   QI tmp_cc;
1416   tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
1417   tmp_tmp = MULDI (ZEXTSIDI (GET_H_GR (FLD (f_GRi))), ZEXTSIDI (GET_H_GR (FLD (f_GRj))));
1418 if (EQDI (SRLDI (tmp_tmp, 63), 0)) {
1419   tmp_cc = ANDQI (tmp_cc, 7);
1420 } else {
1421   tmp_cc = ORQI (tmp_cc, 8);
1422 }
1423 if (EQBI (EQDI (tmp_tmp, 0), 0)) {
1424   tmp_cc = ANDQI (tmp_cc, 11);
1425 } else {
1426   tmp_cc = ORQI (tmp_cc, 4);
1427 }
1428   {
1429     DI opval = tmp_tmp;
1430     sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
1431     TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
1432   }
1433   {
1434     UQI opval = tmp_cc;
1435     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1436     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1437   }
1438 }
1439
1440   return vpc;
1441 #undef FLD
1442 }
1443
1444 /* caddcc: caddcc$pack $GRi,$GRj,$GRk,$CCi,$cond */
1445
1446 static SEM_PC
1447 SEM_FN_NAME (frvbf,caddcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1448 {
1449 #define FLD(f) abuf->fields.sfmt_caddcc.f
1450   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1451   int UNUSED written = 0;
1452   IADDR UNUSED pc = abuf->addr;
1453   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1454
1455 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
1456 {
1457   BI tmp_tmp;
1458   QI tmp_cc;
1459   SI tmp_result;
1460   tmp_cc = CPU (h_iccr[((FLD (f_CCi)) & (3))]);
1461   tmp_tmp = ADDOFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), 0);
1462 if (EQBI (tmp_tmp, 0)) {
1463   tmp_cc = ANDQI (tmp_cc, 13);
1464 } else {
1465   tmp_cc = ORQI (tmp_cc, 2);
1466 }
1467   tmp_tmp = ADDCFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), 0);
1468 if (EQBI (tmp_tmp, 0)) {
1469   tmp_cc = ANDQI (tmp_cc, 14);
1470 } else {
1471   tmp_cc = ORQI (tmp_cc, 1);
1472 }
1473   tmp_result = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
1474 if (EQSI (tmp_result, 0)) {
1475   tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
1476 } else {
1477 if (LTSI (tmp_result, 0)) {
1478   tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
1479 } else {
1480   tmp_cc = ANDQI (tmp_cc, 3);
1481 }
1482 }
1483   {
1484     SI opval = tmp_result;
1485     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1486     written |= (1 << 6);
1487     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1488   }
1489   {
1490     UQI opval = tmp_cc;
1491     sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);
1492     written |= (1 << 7);
1493     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1494   }
1495 }
1496 }
1497
1498   abuf->written = written;
1499   return vpc;
1500 #undef FLD
1501 }
1502
1503 /* csubcc: csubcc$pack $GRi,$GRj,$GRk,$CCi,$cond */
1504
1505 static SEM_PC
1506 SEM_FN_NAME (frvbf,csubcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1507 {
1508 #define FLD(f) abuf->fields.sfmt_caddcc.f
1509   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1510   int UNUSED written = 0;
1511   IADDR UNUSED pc = abuf->addr;
1512   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1513
1514 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
1515 {
1516   BI tmp_tmp;
1517   QI tmp_cc;
1518   SI tmp_result;
1519   tmp_cc = CPU (h_iccr[((FLD (f_CCi)) & (3))]);
1520   tmp_tmp = SUBOFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), 0);
1521 if (EQBI (tmp_tmp, 0)) {
1522   tmp_cc = ANDQI (tmp_cc, 13);
1523 } else {
1524   tmp_cc = ORQI (tmp_cc, 2);
1525 }
1526   tmp_tmp = SUBCFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), 0);
1527 if (EQBI (tmp_tmp, 0)) {
1528   tmp_cc = ANDQI (tmp_cc, 14);
1529 } else {
1530   tmp_cc = ORQI (tmp_cc, 1);
1531 }
1532   tmp_result = SUBSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
1533 if (EQSI (tmp_result, 0)) {
1534   tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
1535 } else {
1536 if (LTSI (tmp_result, 0)) {
1537   tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
1538 } else {
1539   tmp_cc = ANDQI (tmp_cc, 3);
1540 }
1541 }
1542   {
1543     SI opval = tmp_result;
1544     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1545     written |= (1 << 6);
1546     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1547   }
1548   {
1549     UQI opval = tmp_cc;
1550     sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);
1551     written |= (1 << 7);
1552     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1553   }
1554 }
1555 }
1556
1557   abuf->written = written;
1558   return vpc;
1559 #undef FLD
1560 }
1561
1562 /* csmulcc: csmulcc$pack $GRi,$GRj,$GRdoublek,$CCi,$cond */
1563
1564 static SEM_PC
1565 SEM_FN_NAME (frvbf,csmulcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1566 {
1567 #define FLD(f) abuf->fields.sfmt_csmulcc.f
1568   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1569   int UNUSED written = 0;
1570   IADDR UNUSED pc = abuf->addr;
1571   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1572
1573 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
1574 {
1575   DI tmp_tmp;
1576   QI tmp_cc;
1577   tmp_cc = CPU (h_iccr[((FLD (f_CCi)) & (3))]);
1578   tmp_tmp = MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi))), EXTSIDI (GET_H_GR (FLD (f_GRj))));
1579 if (EQDI (SRLDI (tmp_tmp, 63), 0)) {
1580   tmp_cc = ANDQI (tmp_cc, 7);
1581 } else {
1582   tmp_cc = ORQI (tmp_cc, 8);
1583 }
1584 if (EQBI (EQDI (tmp_tmp, 0), 0)) {
1585   tmp_cc = ANDQI (tmp_cc, 11);
1586 } else {
1587   tmp_cc = ORQI (tmp_cc, 4);
1588 }
1589   {
1590     DI opval = tmp_tmp;
1591     sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
1592     written |= (1 << 6);
1593     TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
1594   }
1595   {
1596     UQI opval = tmp_cc;
1597     sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);
1598     written |= (1 << 7);
1599     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1600   }
1601 }
1602 }
1603
1604   abuf->written = written;
1605   return vpc;
1606 #undef FLD
1607 }
1608
1609 /* candcc: candcc$pack $GRi,$GRj,$GRk,$CCi,$cond */
1610
1611 static SEM_PC
1612 SEM_FN_NAME (frvbf,candcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1613 {
1614 #define FLD(f) abuf->fields.sfmt_caddcc.f
1615   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1616   int UNUSED written = 0;
1617   IADDR UNUSED pc = abuf->addr;
1618   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1619
1620 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
1621 {
1622   SI tmp_tmp;
1623   tmp_tmp = ANDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
1624   {
1625     SI opval = tmp_tmp;
1626     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1627     written |= (1 << 6);
1628     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1629   }
1630 if (EQSI (tmp_tmp, 0)) {
1631   {
1632     UQI opval = ORQI (ANDQI (CPU (h_iccr[((FLD (f_CCi)) & (3))]), 7), 4);
1633     sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);
1634     written |= (1 << 7);
1635     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1636   }
1637 } else {
1638 if (LTSI (tmp_tmp, 0)) {
1639   {
1640     UQI opval = ORQI (ANDQI (CPU (h_iccr[((FLD (f_CCi)) & (3))]), 11), 8);
1641     sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);
1642     written |= (1 << 7);
1643     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1644   }
1645 } else {
1646   {
1647     UQI opval = ANDQI (CPU (h_iccr[((FLD (f_CCi)) & (3))]), 3);
1648     sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);
1649     written |= (1 << 7);
1650     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1651   }
1652 }
1653 }
1654 }
1655 }
1656
1657   abuf->written = written;
1658   return vpc;
1659 #undef FLD
1660 }
1661
1662 /* corcc: corcc$pack $GRi,$GRj,$GRk,$CCi,$cond */
1663
1664 static SEM_PC
1665 SEM_FN_NAME (frvbf,corcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1666 {
1667 #define FLD(f) abuf->fields.sfmt_caddcc.f
1668   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1669   int UNUSED written = 0;
1670   IADDR UNUSED pc = abuf->addr;
1671   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1672
1673 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
1674 {
1675   SI tmp_tmp;
1676   tmp_tmp = ORSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
1677   {
1678     SI opval = tmp_tmp;
1679     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1680     written |= (1 << 6);
1681     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1682   }
1683 if (EQSI (tmp_tmp, 0)) {
1684   {
1685     UQI opval = ORQI (ANDQI (CPU (h_iccr[((FLD (f_CCi)) & (3))]), 7), 4);
1686     sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);
1687     written |= (1 << 7);
1688     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1689   }
1690 } else {
1691 if (LTSI (tmp_tmp, 0)) {
1692   {
1693     UQI opval = ORQI (ANDQI (CPU (h_iccr[((FLD (f_CCi)) & (3))]), 11), 8);
1694     sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);
1695     written |= (1 << 7);
1696     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1697   }
1698 } else {
1699   {
1700     UQI opval = ANDQI (CPU (h_iccr[((FLD (f_CCi)) & (3))]), 3);
1701     sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);
1702     written |= (1 << 7);
1703     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1704   }
1705 }
1706 }
1707 }
1708 }
1709
1710   abuf->written = written;
1711   return vpc;
1712 #undef FLD
1713 }
1714
1715 /* cxorcc: cxorcc$pack $GRi,$GRj,$GRk,$CCi,$cond */
1716
1717 static SEM_PC
1718 SEM_FN_NAME (frvbf,cxorcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1719 {
1720 #define FLD(f) abuf->fields.sfmt_caddcc.f
1721   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1722   int UNUSED written = 0;
1723   IADDR UNUSED pc = abuf->addr;
1724   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1725
1726 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
1727 {
1728   SI tmp_tmp;
1729   tmp_tmp = XORSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
1730   {
1731     SI opval = tmp_tmp;
1732     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1733     written |= (1 << 6);
1734     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1735   }
1736 if (EQSI (tmp_tmp, 0)) {
1737   {
1738     UQI opval = ORQI (ANDQI (CPU (h_iccr[((FLD (f_CCi)) & (3))]), 7), 4);
1739     sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);
1740     written |= (1 << 7);
1741     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1742   }
1743 } else {
1744 if (LTSI (tmp_tmp, 0)) {
1745   {
1746     UQI opval = ORQI (ANDQI (CPU (h_iccr[((FLD (f_CCi)) & (3))]), 11), 8);
1747     sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);
1748     written |= (1 << 7);
1749     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1750   }
1751 } else {
1752   {
1753     UQI opval = ANDQI (CPU (h_iccr[((FLD (f_CCi)) & (3))]), 3);
1754     sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);
1755     written |= (1 << 7);
1756     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1757   }
1758 }
1759 }
1760 }
1761 }
1762
1763   abuf->written = written;
1764   return vpc;
1765 #undef FLD
1766 }
1767
1768 /* csllcc: csllcc$pack $GRi,$GRj,$GRk,$CCi,$cond */
1769
1770 static SEM_PC
1771 SEM_FN_NAME (frvbf,csllcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1772 {
1773 #define FLD(f) abuf->fields.sfmt_caddcc.f
1774   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1775   int UNUSED written = 0;
1776   IADDR UNUSED pc = abuf->addr;
1777   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1778
1779 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
1780 {
1781   SI tmp_shift;
1782   SI tmp_tmp;
1783   QI tmp_cc;
1784   tmp_shift = ANDSI (GET_H_GR (FLD (f_GRj)), 31);
1785   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))]));
1786   tmp_tmp = SLLSI (GET_H_GR (FLD (f_GRi)), tmp_shift);
1787   {
1788     SI opval = tmp_tmp;
1789     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1790     written |= (1 << 6);
1791     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1792   }
1793 if (EQSI (tmp_tmp, 0)) {
1794   tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
1795 } else {
1796 if (LTSI (tmp_tmp, 0)) {
1797   tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
1798 } else {
1799   tmp_cc = ANDQI (tmp_cc, 3);
1800 }
1801 }
1802   {
1803     UQI opval = tmp_cc;
1804     sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);
1805     written |= (1 << 7);
1806     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1807   }
1808 }
1809 }
1810
1811   abuf->written = written;
1812   return vpc;
1813 #undef FLD
1814 }
1815
1816 /* csrlcc: csrlcc$pack $GRi,$GRj,$GRk,$CCi,$cond */
1817
1818 static SEM_PC
1819 SEM_FN_NAME (frvbf,csrlcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1820 {
1821 #define FLD(f) abuf->fields.sfmt_caddcc.f
1822   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1823   int UNUSED written = 0;
1824   IADDR UNUSED pc = abuf->addr;
1825   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1826
1827 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
1828 {
1829   SI tmp_shift;
1830   SI tmp_tmp;
1831   QI tmp_cc;
1832   tmp_shift = ANDSI (GET_H_GR (FLD (f_GRj)), 31);
1833   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))]));
1834   tmp_tmp = SRLSI (GET_H_GR (FLD (f_GRi)), tmp_shift);
1835   {
1836     SI opval = tmp_tmp;
1837     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1838     written |= (1 << 6);
1839     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1840   }
1841 if (EQSI (tmp_tmp, 0)) {
1842   tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
1843 } else {
1844 if (LTSI (tmp_tmp, 0)) {
1845   tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
1846 } else {
1847   tmp_cc = ANDQI (tmp_cc, 3);
1848 }
1849 }
1850   {
1851     UQI opval = tmp_cc;
1852     sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);
1853     written |= (1 << 7);
1854     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1855   }
1856 }
1857 }
1858
1859   abuf->written = written;
1860   return vpc;
1861 #undef FLD
1862 }
1863
1864 /* csracc: csracc$pack $GRi,$GRj,$GRk,$CCi,$cond */
1865
1866 static SEM_PC
1867 SEM_FN_NAME (frvbf,csracc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1868 {
1869 #define FLD(f) abuf->fields.sfmt_caddcc.f
1870   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1871   int UNUSED written = 0;
1872   IADDR UNUSED pc = abuf->addr;
1873   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1874
1875 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
1876 {
1877   SI tmp_shift;
1878   SI tmp_tmp;
1879   QI tmp_cc;
1880   tmp_shift = ANDSI (GET_H_GR (FLD (f_GRj)), 31);
1881   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))]));
1882   tmp_tmp = SRASI (GET_H_GR (FLD (f_GRi)), tmp_shift);
1883   {
1884     SI opval = tmp_tmp;
1885     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1886     written |= (1 << 6);
1887     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1888   }
1889 if (EQSI (tmp_tmp, 0)) {
1890   tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
1891 } else {
1892 if (LTSI (tmp_tmp, 0)) {
1893   tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
1894 } else {
1895   tmp_cc = ANDQI (tmp_cc, 3);
1896 }
1897 }
1898   {
1899     UQI opval = tmp_cc;
1900     sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);
1901     written |= (1 << 7);
1902     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1903   }
1904 }
1905 }
1906
1907   abuf->written = written;
1908   return vpc;
1909 #undef FLD
1910 }
1911
1912 /* addx: addx$pack $GRi,$GRj,$GRk,$ICCi_1 */
1913
1914 static SEM_PC
1915 SEM_FN_NAME (frvbf,addx) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1916 {
1917 #define FLD(f) abuf->fields.sfmt_addcc.f
1918   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1919   int UNUSED written = 0;
1920   IADDR UNUSED pc = abuf->addr;
1921   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1922
1923   {
1924     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)));
1925     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1926     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1927   }
1928
1929   return vpc;
1930 #undef FLD
1931 }
1932
1933 /* subx: subx$pack $GRi,$GRj,$GRk,$ICCi_1 */
1934
1935 static SEM_PC
1936 SEM_FN_NAME (frvbf,subx) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1937 {
1938 #define FLD(f) abuf->fields.sfmt_addcc.f
1939   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1940   int UNUSED written = 0;
1941   IADDR UNUSED pc = abuf->addr;
1942   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1943
1944   {
1945     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)));
1946     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1947     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1948   }
1949
1950   return vpc;
1951 #undef FLD
1952 }
1953
1954 /* addxcc: addxcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
1955
1956 static SEM_PC
1957 SEM_FN_NAME (frvbf,addxcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1958 {
1959 #define FLD(f) abuf->fields.sfmt_addcc.f
1960   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1961   int UNUSED written = 0;
1962   IADDR UNUSED pc = abuf->addr;
1963   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1964
1965 {
1966   SI tmp_tmp;
1967   QI tmp_cc;
1968   tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
1969   tmp_tmp = ADDCSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), TRUNCQIBI (ANDQI (tmp_cc, 1)));
1970 if (EQSI (ADDOFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), TRUNCQIBI (ANDQI (tmp_cc, 1))), 0)) {
1971   tmp_cc = ANDQI (tmp_cc, 13);
1972 } else {
1973   tmp_cc = ORQI (tmp_cc, 2);
1974 }
1975 if (EQSI (ADDCFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), TRUNCQIBI (ANDQI (tmp_cc, 1))), 0)) {
1976   tmp_cc = ANDQI (tmp_cc, 14);
1977 } else {
1978   tmp_cc = ORQI (tmp_cc, 1);
1979 }
1980 if (EQSI (tmp_tmp, 0)) {
1981   tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
1982 } else {
1983 if (LTSI (tmp_tmp, 0)) {
1984   tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
1985 } else {
1986   tmp_cc = ANDQI (tmp_cc, 3);
1987 }
1988 }
1989   {
1990     SI opval = tmp_tmp;
1991     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1992     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1993   }
1994   {
1995     UQI opval = tmp_cc;
1996     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1997     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1998   }
1999 }
2000
2001   return vpc;
2002 #undef FLD
2003 }
2004
2005 /* subxcc: subxcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
2006
2007 static SEM_PC
2008 SEM_FN_NAME (frvbf,subxcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2009 {
2010 #define FLD(f) abuf->fields.sfmt_addcc.f
2011   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2012   int UNUSED written = 0;
2013   IADDR UNUSED pc = abuf->addr;
2014   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2015
2016 {
2017   SI tmp_tmp;
2018   QI tmp_cc;
2019   tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
2020   tmp_tmp = SUBCSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), TRUNCQIBI (ANDQI (tmp_cc, 1)));
2021 if (EQSI (SUBOFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), TRUNCQIBI (ANDQI (tmp_cc, 1))), 0)) {
2022   tmp_cc = ANDQI (tmp_cc, 13);
2023 } else {
2024   tmp_cc = ORQI (tmp_cc, 2);
2025 }
2026 if (EQSI (SUBCFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), TRUNCQIBI (ANDQI (tmp_cc, 1))), 0)) {
2027   tmp_cc = ANDQI (tmp_cc, 14);
2028 } else {
2029   tmp_cc = ORQI (tmp_cc, 1);
2030 }
2031 if (EQSI (tmp_tmp, 0)) {
2032   tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
2033 } else {
2034 if (LTSI (tmp_tmp, 0)) {
2035   tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
2036 } else {
2037   tmp_cc = ANDQI (tmp_cc, 3);
2038 }
2039 }
2040   {
2041     SI opval = tmp_tmp;
2042     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2043     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2044   }
2045   {
2046     UQI opval = tmp_cc;
2047     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2048     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2049   }
2050 }
2051
2052   return vpc;
2053 #undef FLD
2054 }
2055
2056 /* addss: addss$pack $GRi,$GRj,$GRk */
2057
2058 static SEM_PC
2059 SEM_FN_NAME (frvbf,addss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2060 {
2061 #define FLD(f) abuf->fields.sfmt_addcc.f
2062   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2063   int UNUSED written = 0;
2064   IADDR UNUSED pc = abuf->addr;
2065   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2066
2067 {
2068   {
2069     SI opval = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
2070     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2071     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2072   }
2073 if (ADDOFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), 0)) {
2074   {
2075     SI opval = (GTSI (GET_H_GR (FLD (f_GRi)), 0)) ? (2147483647) : (LTSI (GET_H_GR (FLD (f_GRi)), 0)) ? (0x80000000) : (0);
2076     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2077     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2078   }
2079 }
2080 }
2081
2082   return vpc;
2083 #undef FLD
2084 }
2085
2086 /* subss: subss$pack $GRi,$GRj,$GRk */
2087
2088 static SEM_PC
2089 SEM_FN_NAME (frvbf,subss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2090 {
2091 #define FLD(f) abuf->fields.sfmt_addcc.f
2092   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2093   int UNUSED written = 0;
2094   IADDR UNUSED pc = abuf->addr;
2095   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2096
2097 {
2098   {
2099     SI opval = SUBSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
2100     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2101     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2102   }
2103 if (SUBOFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), 0)) {
2104   {
2105     SI opval = (GTSI (GET_H_GR (FLD (f_GRi)), 0)) ? (2147483647) : (LTSI (GET_H_GR (FLD (f_GRi)), 0)) ? (0x80000000) : (0);
2106     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2107     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2108   }
2109 }
2110 }
2111
2112   return vpc;
2113 #undef FLD
2114 }
2115
2116 /* addi: addi$pack $GRi,$s12,$GRk */
2117
2118 static SEM_PC
2119 SEM_FN_NAME (frvbf,addi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2120 {
2121 #define FLD(f) abuf->fields.sfmt_swapi.f
2122   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2123   int UNUSED written = 0;
2124   IADDR UNUSED pc = abuf->addr;
2125   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2126
2127   {
2128     SI opval = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
2129     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2130     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2131   }
2132
2133   return vpc;
2134 #undef FLD
2135 }
2136
2137 /* subi: subi$pack $GRi,$s12,$GRk */
2138
2139 static SEM_PC
2140 SEM_FN_NAME (frvbf,subi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2141 {
2142 #define FLD(f) abuf->fields.sfmt_swapi.f
2143   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2144   int UNUSED written = 0;
2145   IADDR UNUSED pc = abuf->addr;
2146   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2147
2148   {
2149     SI opval = SUBSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
2150     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2151     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2152   }
2153
2154   return vpc;
2155 #undef FLD
2156 }
2157
2158 /* andi: andi$pack $GRi,$s12,$GRk */
2159
2160 static SEM_PC
2161 SEM_FN_NAME (frvbf,andi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2162 {
2163 #define FLD(f) abuf->fields.sfmt_swapi.f
2164   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2165   int UNUSED written = 0;
2166   IADDR UNUSED pc = abuf->addr;
2167   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2168
2169   {
2170     SI opval = ANDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
2171     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2172     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2173   }
2174
2175   return vpc;
2176 #undef FLD
2177 }
2178
2179 /* ori: ori$pack $GRi,$s12,$GRk */
2180
2181 static SEM_PC
2182 SEM_FN_NAME (frvbf,ori) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2183 {
2184 #define FLD(f) abuf->fields.sfmt_swapi.f
2185   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2186   int UNUSED written = 0;
2187   IADDR UNUSED pc = abuf->addr;
2188   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2189
2190   {
2191     SI opval = ORSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
2192     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2193     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2194   }
2195
2196   return vpc;
2197 #undef FLD
2198 }
2199
2200 /* xori: xori$pack $GRi,$s12,$GRk */
2201
2202 static SEM_PC
2203 SEM_FN_NAME (frvbf,xori) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2204 {
2205 #define FLD(f) abuf->fields.sfmt_swapi.f
2206   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2207   int UNUSED written = 0;
2208   IADDR UNUSED pc = abuf->addr;
2209   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2210
2211   {
2212     SI opval = XORSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
2213     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2214     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2215   }
2216
2217   return vpc;
2218 #undef FLD
2219 }
2220
2221 /* sdivi: sdivi$pack $GRi,$s12,$GRk */
2222
2223 static SEM_PC
2224 SEM_FN_NAME (frvbf,sdivi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2225 {
2226 #define FLD(f) abuf->fields.sfmt_swapi.f
2227   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2228   int UNUSED written = 0;
2229   IADDR UNUSED pc = abuf->addr;
2230   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2231
2232 {
2233 frvbf_signed_integer_divide (current_cpu, GET_H_GR (FLD (f_GRi)), FLD (f_d12), FLD (f_GRk), 0);
2234 ; /*clobber*/
2235 }
2236
2237   return vpc;
2238 #undef FLD
2239 }
2240
2241 /* nsdivi: nsdivi$pack $GRi,$s12,$GRk */
2242
2243 static SEM_PC
2244 SEM_FN_NAME (frvbf,nsdivi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2245 {
2246 #define FLD(f) abuf->fields.sfmt_swapi.f
2247   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2248   int UNUSED written = 0;
2249   IADDR UNUSED pc = abuf->addr;
2250   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2251
2252 {
2253 frvbf_signed_integer_divide (current_cpu, GET_H_GR (FLD (f_GRi)), FLD (f_d12), FLD (f_GRk), 1);
2254 ; /*clobber*/
2255 }
2256
2257   return vpc;
2258 #undef FLD
2259 }
2260
2261 /* udivi: udivi$pack $GRi,$s12,$GRk */
2262
2263 static SEM_PC
2264 SEM_FN_NAME (frvbf,udivi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2265 {
2266 #define FLD(f) abuf->fields.sfmt_swapi.f
2267   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2268   int UNUSED written = 0;
2269   IADDR UNUSED pc = abuf->addr;
2270   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2271
2272 {
2273 frvbf_unsigned_integer_divide (current_cpu, GET_H_GR (FLD (f_GRi)), FLD (f_d12), FLD (f_GRk), 0);
2274 ; /*clobber*/
2275 }
2276
2277   return vpc;
2278 #undef FLD
2279 }
2280
2281 /* nudivi: nudivi$pack $GRi,$s12,$GRk */
2282
2283 static SEM_PC
2284 SEM_FN_NAME (frvbf,nudivi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2285 {
2286 #define FLD(f) abuf->fields.sfmt_swapi.f
2287   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2288   int UNUSED written = 0;
2289   IADDR UNUSED pc = abuf->addr;
2290   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2291
2292 {
2293 frvbf_unsigned_integer_divide (current_cpu, GET_H_GR (FLD (f_GRi)), FLD (f_d12), FLD (f_GRk), 1);
2294 ; /*clobber*/
2295 }
2296
2297   return vpc;
2298 #undef FLD
2299 }
2300
2301 /* smuli: smuli$pack $GRi,$s12,$GRdoublek */
2302
2303 static SEM_PC
2304 SEM_FN_NAME (frvbf,smuli) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2305 {
2306 #define FLD(f) abuf->fields.sfmt_smuli.f
2307   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2308   int UNUSED written = 0;
2309   IADDR UNUSED pc = abuf->addr;
2310   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2311
2312   {
2313     DI opval = MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi))), EXTSIDI (FLD (f_d12)));
2314     sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
2315     TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
2316   }
2317
2318   return vpc;
2319 #undef FLD
2320 }
2321
2322 /* umuli: umuli$pack $GRi,$s12,$GRdoublek */
2323
2324 static SEM_PC
2325 SEM_FN_NAME (frvbf,umuli) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2326 {
2327 #define FLD(f) abuf->fields.sfmt_smuli.f
2328   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2329   int UNUSED written = 0;
2330   IADDR UNUSED pc = abuf->addr;
2331   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2332
2333   {
2334     DI opval = MULDI (ZEXTSIDI (GET_H_GR (FLD (f_GRi))), ZEXTSIDI (FLD (f_d12)));
2335     sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
2336     TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
2337   }
2338
2339   return vpc;
2340 #undef FLD
2341 }
2342
2343 /* slli: slli$pack $GRi,$s12,$GRk */
2344
2345 static SEM_PC
2346 SEM_FN_NAME (frvbf,slli) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2347 {
2348 #define FLD(f) abuf->fields.sfmt_swapi.f
2349   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2350   int UNUSED written = 0;
2351   IADDR UNUSED pc = abuf->addr;
2352   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2353
2354   {
2355     SI opval = SLLSI (GET_H_GR (FLD (f_GRi)), ANDSI (FLD (f_d12), 31));
2356     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2357     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2358   }
2359
2360   return vpc;
2361 #undef FLD
2362 }
2363
2364 /* srli: srli$pack $GRi,$s12,$GRk */
2365
2366 static SEM_PC
2367 SEM_FN_NAME (frvbf,srli) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2368 {
2369 #define FLD(f) abuf->fields.sfmt_swapi.f
2370   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2371   int UNUSED written = 0;
2372   IADDR UNUSED pc = abuf->addr;
2373   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2374
2375   {
2376     SI opval = SRLSI (GET_H_GR (FLD (f_GRi)), ANDSI (FLD (f_d12), 31));
2377     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2378     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2379   }
2380
2381   return vpc;
2382 #undef FLD
2383 }
2384
2385 /* srai: srai$pack $GRi,$s12,$GRk */
2386
2387 static SEM_PC
2388 SEM_FN_NAME (frvbf,srai) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2389 {
2390 #define FLD(f) abuf->fields.sfmt_swapi.f
2391   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2392   int UNUSED written = 0;
2393   IADDR UNUSED pc = abuf->addr;
2394   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2395
2396   {
2397     SI opval = SRASI (GET_H_GR (FLD (f_GRi)), ANDSI (FLD (f_d12), 31));
2398     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2399     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2400   }
2401
2402   return vpc;
2403 #undef FLD
2404 }
2405
2406 /* scani: scani$pack $GRi,$s12,$GRk */
2407
2408 static SEM_PC
2409 SEM_FN_NAME (frvbf,scani) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2410 {
2411 #define FLD(f) abuf->fields.sfmt_swapi.f
2412   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2413   int UNUSED written = 0;
2414   IADDR UNUSED pc = abuf->addr;
2415   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2416
2417 {
2418   SI tmp_tmp1;
2419   SI tmp_tmp2;
2420   tmp_tmp1 = GET_H_GR (FLD (f_GRi));
2421   tmp_tmp2 = SRASI (FLD (f_d12), 1);
2422   {
2423     SI opval = frvbf_scan_result (current_cpu, XORSI (tmp_tmp1, tmp_tmp2));
2424     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2425     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2426   }
2427 }
2428
2429   return vpc;
2430 #undef FLD
2431 }
2432
2433 /* addicc: addicc$pack $GRi,$s10,$GRk,$ICCi_1 */
2434
2435 static SEM_PC
2436 SEM_FN_NAME (frvbf,addicc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2437 {
2438 #define FLD(f) abuf->fields.sfmt_addicc.f
2439   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2440   int UNUSED written = 0;
2441   IADDR UNUSED pc = abuf->addr;
2442   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2443
2444 {
2445   BI tmp_tmp;
2446   QI tmp_cc;
2447   SI tmp_result;
2448   tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
2449   tmp_tmp = ADDOFSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), 0);
2450 if (EQBI (tmp_tmp, 0)) {
2451   tmp_cc = ANDQI (tmp_cc, 13);
2452 } else {
2453   tmp_cc = ORQI (tmp_cc, 2);
2454 }
2455   tmp_tmp = ADDCFSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), 0);
2456 if (EQBI (tmp_tmp, 0)) {
2457   tmp_cc = ANDQI (tmp_cc, 14);
2458 } else {
2459   tmp_cc = ORQI (tmp_cc, 1);
2460 }
2461   tmp_result = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10));
2462 if (EQSI (tmp_result, 0)) {
2463   tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
2464 } else {
2465 if (LTSI (tmp_result, 0)) {
2466   tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
2467 } else {
2468   tmp_cc = ANDQI (tmp_cc, 3);
2469 }
2470 }
2471   {
2472     SI opval = tmp_result;
2473     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2474     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2475   }
2476   {
2477     UQI opval = tmp_cc;
2478     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2479     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2480   }
2481 }
2482
2483   return vpc;
2484 #undef FLD
2485 }
2486
2487 /* subicc: subicc$pack $GRi,$s10,$GRk,$ICCi_1 */
2488
2489 static SEM_PC
2490 SEM_FN_NAME (frvbf,subicc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2491 {
2492 #define FLD(f) abuf->fields.sfmt_addicc.f
2493   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2494   int UNUSED written = 0;
2495   IADDR UNUSED pc = abuf->addr;
2496   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2497
2498 {
2499   BI tmp_tmp;
2500   QI tmp_cc;
2501   SI tmp_result;
2502   tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
2503   tmp_tmp = SUBOFSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), 0);
2504 if (EQBI (tmp_tmp, 0)) {
2505   tmp_cc = ANDQI (tmp_cc, 13);
2506 } else {
2507   tmp_cc = ORQI (tmp_cc, 2);
2508 }
2509   tmp_tmp = SUBCFSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), 0);
2510 if (EQBI (tmp_tmp, 0)) {
2511   tmp_cc = ANDQI (tmp_cc, 14);
2512 } else {
2513   tmp_cc = ORQI (tmp_cc, 1);
2514 }
2515   tmp_result = SUBSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10));
2516 if (EQSI (tmp_result, 0)) {
2517   tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
2518 } else {
2519 if (LTSI (tmp_result, 0)) {
2520   tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
2521 } else {
2522   tmp_cc = ANDQI (tmp_cc, 3);
2523 }
2524 }
2525   {
2526     SI opval = tmp_result;
2527     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2528     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2529   }
2530   {
2531     UQI opval = tmp_cc;
2532     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2533     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2534   }
2535 }
2536
2537   return vpc;
2538 #undef FLD
2539 }
2540
2541 /* andicc: andicc$pack $GRi,$s10,$GRk,$ICCi_1 */
2542
2543 static SEM_PC
2544 SEM_FN_NAME (frvbf,andicc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2545 {
2546 #define FLD(f) abuf->fields.sfmt_addicc.f
2547   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2548   int UNUSED written = 0;
2549   IADDR UNUSED pc = abuf->addr;
2550   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2551
2552 {
2553   SI tmp_tmp;
2554   tmp_tmp = ANDSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10));
2555   {
2556     SI opval = tmp_tmp;
2557     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2558     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2559   }
2560 if (EQSI (tmp_tmp, 0)) {
2561   {
2562     UQI opval = ORQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 7), 4);
2563     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2564     written |= (1 << 4);
2565     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2566   }
2567 } else {
2568 if (LTSI (tmp_tmp, 0)) {
2569   {
2570     UQI opval = ORQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 11), 8);
2571     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2572     written |= (1 << 4);
2573     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2574   }
2575 } else {
2576   {
2577     UQI opval = ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 3);
2578     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2579     written |= (1 << 4);
2580     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2581   }
2582 }
2583 }
2584 }
2585
2586   abuf->written = written;
2587   return vpc;
2588 #undef FLD
2589 }
2590
2591 /* oricc: oricc$pack $GRi,$s10,$GRk,$ICCi_1 */
2592
2593 static SEM_PC
2594 SEM_FN_NAME (frvbf,oricc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2595 {
2596 #define FLD(f) abuf->fields.sfmt_addicc.f
2597   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2598   int UNUSED written = 0;
2599   IADDR UNUSED pc = abuf->addr;
2600   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2601
2602 {
2603   SI tmp_tmp;
2604   tmp_tmp = ORSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10));
2605   {
2606     SI opval = tmp_tmp;
2607     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2608     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2609   }
2610 if (EQSI (tmp_tmp, 0)) {
2611   {
2612     UQI opval = ORQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 7), 4);
2613     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2614     written |= (1 << 4);
2615     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2616   }
2617 } else {
2618 if (LTSI (tmp_tmp, 0)) {
2619   {
2620     UQI opval = ORQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 11), 8);
2621     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2622     written |= (1 << 4);
2623     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2624   }
2625 } else {
2626   {
2627     UQI opval = ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 3);
2628     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2629     written |= (1 << 4);
2630     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2631   }
2632 }
2633 }
2634 }
2635
2636   abuf->written = written;
2637   return vpc;
2638 #undef FLD
2639 }
2640
2641 /* xoricc: xoricc$pack $GRi,$s10,$GRk,$ICCi_1 */
2642
2643 static SEM_PC
2644 SEM_FN_NAME (frvbf,xoricc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2645 {
2646 #define FLD(f) abuf->fields.sfmt_addicc.f
2647   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2648   int UNUSED written = 0;
2649   IADDR UNUSED pc = abuf->addr;
2650   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2651
2652 {
2653   SI tmp_tmp;
2654   tmp_tmp = XORSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10));
2655   {
2656     SI opval = tmp_tmp;
2657     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2658     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2659   }
2660 if (EQSI (tmp_tmp, 0)) {
2661   {
2662     UQI opval = ORQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 7), 4);
2663     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2664     written |= (1 << 4);
2665     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2666   }
2667 } else {
2668 if (LTSI (tmp_tmp, 0)) {
2669   {
2670     UQI opval = ORQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 11), 8);
2671     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2672     written |= (1 << 4);
2673     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2674   }
2675 } else {
2676   {
2677     UQI opval = ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 3);
2678     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2679     written |= (1 << 4);
2680     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2681   }
2682 }
2683 }
2684 }
2685
2686   abuf->written = written;
2687   return vpc;
2688 #undef FLD
2689 }
2690
2691 /* smulicc: smulicc$pack $GRi,$s10,$GRdoublek,$ICCi_1 */
2692
2693 static SEM_PC
2694 SEM_FN_NAME (frvbf,smulicc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2695 {
2696 #define FLD(f) abuf->fields.sfmt_smulicc.f
2697   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2698   int UNUSED written = 0;
2699   IADDR UNUSED pc = abuf->addr;
2700   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2701
2702 {
2703   DI tmp_tmp;
2704   QI tmp_cc;
2705   tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
2706   tmp_tmp = MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi))), EXTSIDI (FLD (f_s10)));
2707 if (EQDI (SRLDI (tmp_tmp, 63), 0)) {
2708   tmp_cc = ANDQI (tmp_cc, 7);
2709 } else {
2710   tmp_cc = ORQI (tmp_cc, 8);
2711 }
2712 if (EQBI (EQDI (tmp_tmp, 0), 0)) {
2713   tmp_cc = ANDQI (tmp_cc, 11);
2714 } else {
2715   tmp_cc = ORQI (tmp_cc, 4);
2716 }
2717   {
2718     DI opval = tmp_tmp;
2719     sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
2720     TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
2721   }
2722   {
2723     UQI opval = tmp_cc;
2724     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2725     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2726   }
2727 }
2728
2729   return vpc;
2730 #undef FLD
2731 }
2732
2733 /* umulicc: umulicc$pack $GRi,$s10,$GRdoublek,$ICCi_1 */
2734
2735 static SEM_PC
2736 SEM_FN_NAME (frvbf,umulicc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2737 {
2738 #define FLD(f) abuf->fields.sfmt_smulicc.f
2739   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2740   int UNUSED written = 0;
2741   IADDR UNUSED pc = abuf->addr;
2742   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2743
2744 {
2745   DI tmp_tmp;
2746   QI tmp_cc;
2747   tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
2748   tmp_tmp = MULDI (ZEXTSIDI (GET_H_GR (FLD (f_GRi))), ZEXTSIDI (FLD (f_s10)));
2749 if (EQDI (SRLDI (tmp_tmp, 63), 0)) {
2750   tmp_cc = ANDQI (tmp_cc, 7);
2751 } else {
2752   tmp_cc = ORQI (tmp_cc, 8);
2753 }
2754 if (EQBI (EQDI (tmp_tmp, 0), 0)) {
2755   tmp_cc = ANDQI (tmp_cc, 11);
2756 } else {
2757   tmp_cc = ORQI (tmp_cc, 4);
2758 }
2759   {
2760     DI opval = tmp_tmp;
2761     sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
2762     TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
2763   }
2764   {
2765     UQI opval = tmp_cc;
2766     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2767     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2768   }
2769 }
2770
2771   return vpc;
2772 #undef FLD
2773 }
2774
2775 /* sllicc: sllicc$pack $GRi,$s10,$GRk,$ICCi_1 */
2776
2777 static SEM_PC
2778 SEM_FN_NAME (frvbf,sllicc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2779 {
2780 #define FLD(f) abuf->fields.sfmt_addicc.f
2781   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2782   int UNUSED written = 0;
2783   IADDR UNUSED pc = abuf->addr;
2784   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2785
2786 {
2787   SI tmp_shift;
2788   SI tmp_tmp;
2789   QI tmp_cc;
2790   tmp_shift = ANDSI (FLD (f_s10), 31);
2791   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)]));
2792   tmp_tmp = SLLSI (GET_H_GR (FLD (f_GRi)), tmp_shift);
2793   {
2794     SI opval = tmp_tmp;
2795     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2796     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2797   }
2798 if (EQSI (tmp_tmp, 0)) {
2799   tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
2800 } else {
2801 if (LTSI (tmp_tmp, 0)) {
2802   tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
2803 } else {
2804   tmp_cc = ANDQI (tmp_cc, 3);
2805 }
2806 }
2807   {
2808     UQI opval = tmp_cc;
2809     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2810     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2811   }
2812 }
2813
2814   return vpc;
2815 #undef FLD
2816 }
2817
2818 /* srlicc: srlicc$pack $GRi,$s10,$GRk,$ICCi_1 */
2819
2820 static SEM_PC
2821 SEM_FN_NAME (frvbf,srlicc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2822 {
2823 #define FLD(f) abuf->fields.sfmt_addicc.f
2824   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2825   int UNUSED written = 0;
2826   IADDR UNUSED pc = abuf->addr;
2827   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2828
2829 {
2830   SI tmp_shift;
2831   SI tmp_tmp;
2832   QI tmp_cc;
2833   tmp_shift = ANDSI (FLD (f_s10), 31);
2834   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)]));
2835   tmp_tmp = SRLSI (GET_H_GR (FLD (f_GRi)), tmp_shift);
2836   {
2837     SI opval = tmp_tmp;
2838     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2839     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2840   }
2841 if (EQSI (tmp_tmp, 0)) {
2842   tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
2843 } else {
2844 if (LTSI (tmp_tmp, 0)) {
2845   tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
2846 } else {
2847   tmp_cc = ANDQI (tmp_cc, 3);
2848 }
2849 }
2850   {
2851     UQI opval = tmp_cc;
2852     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2853     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2854   }
2855 }
2856
2857   return vpc;
2858 #undef FLD
2859 }
2860
2861 /* sraicc: sraicc$pack $GRi,$s10,$GRk,$ICCi_1 */
2862
2863 static SEM_PC
2864 SEM_FN_NAME (frvbf,sraicc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2865 {
2866 #define FLD(f) abuf->fields.sfmt_addicc.f
2867   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2868   int UNUSED written = 0;
2869   IADDR UNUSED pc = abuf->addr;
2870   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2871
2872 {
2873   SI tmp_shift;
2874   SI tmp_tmp;
2875   QI tmp_cc;
2876   tmp_shift = ANDSI (FLD (f_s10), 31);
2877   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)]));
2878   tmp_tmp = SRASI (GET_H_GR (FLD (f_GRi)), tmp_shift);
2879   {
2880     SI opval = tmp_tmp;
2881     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2882     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2883   }
2884 if (EQSI (tmp_tmp, 0)) {
2885   tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
2886 } else {
2887 if (LTSI (tmp_tmp, 0)) {
2888   tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
2889 } else {
2890   tmp_cc = ANDQI (tmp_cc, 3);
2891 }
2892 }
2893   {
2894     UQI opval = tmp_cc;
2895     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2896     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2897   }
2898 }
2899
2900   return vpc;
2901 #undef FLD
2902 }
2903
2904 /* addxi: addxi$pack $GRi,$s10,$GRk,$ICCi_1 */
2905
2906 static SEM_PC
2907 SEM_FN_NAME (frvbf,addxi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2908 {
2909 #define FLD(f) abuf->fields.sfmt_addicc.f
2910   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2911   int UNUSED written = 0;
2912   IADDR UNUSED pc = abuf->addr;
2913   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2914
2915   {
2916     SI opval = ADDCSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 1)));
2917     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2918     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2919   }
2920
2921   return vpc;
2922 #undef FLD
2923 }
2924
2925 /* subxi: subxi$pack $GRi,$s10,$GRk,$ICCi_1 */
2926
2927 static SEM_PC
2928 SEM_FN_NAME (frvbf,subxi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2929 {
2930 #define FLD(f) abuf->fields.sfmt_addicc.f
2931   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2932   int UNUSED written = 0;
2933   IADDR UNUSED pc = abuf->addr;
2934   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2935
2936   {
2937     SI opval = SUBCSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 1)));
2938     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2939     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2940   }
2941
2942   return vpc;
2943 #undef FLD
2944 }
2945
2946 /* addxicc: addxicc$pack $GRi,$s10,$GRk,$ICCi_1 */
2947
2948 static SEM_PC
2949 SEM_FN_NAME (frvbf,addxicc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2950 {
2951 #define FLD(f) abuf->fields.sfmt_addicc.f
2952   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2953   int UNUSED written = 0;
2954   IADDR UNUSED pc = abuf->addr;
2955   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2956
2957 {
2958   SI tmp_tmp;
2959   QI tmp_cc;
2960   tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
2961   tmp_tmp = ADDCSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), TRUNCQIBI (ANDQI (tmp_cc, 1)));
2962 if (EQSI (ADDOFSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), TRUNCQIBI (ANDQI (tmp_cc, 1))), 0)) {
2963   tmp_cc = ANDQI (tmp_cc, 13);
2964 } else {
2965   tmp_cc = ORQI (tmp_cc, 2);
2966 }
2967 if (EQSI (ADDCFSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), TRUNCQIBI (ANDQI (tmp_cc, 1))), 0)) {
2968   tmp_cc = ANDQI (tmp_cc, 14);
2969 } else {
2970   tmp_cc = ORQI (tmp_cc, 1);
2971 }
2972 if (EQSI (tmp_tmp, 0)) {
2973   tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
2974 } else {
2975 if (LTSI (tmp_tmp, 0)) {
2976   tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
2977 } else {
2978   tmp_cc = ANDQI (tmp_cc, 3);
2979 }
2980 }
2981   {
2982     SI opval = tmp_tmp;
2983     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2984     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2985   }
2986   {
2987     UQI opval = tmp_cc;
2988     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2989     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2990   }
2991 }
2992
2993   return vpc;
2994 #undef FLD
2995 }
2996
2997 /* subxicc: subxicc$pack $GRi,$s10,$GRk,$ICCi_1 */
2998
2999 static SEM_PC
3000 SEM_FN_NAME (frvbf,subxicc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3001 {
3002 #define FLD(f) abuf->fields.sfmt_addicc.f
3003   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3004   int UNUSED written = 0;
3005   IADDR UNUSED pc = abuf->addr;
3006   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3007
3008 {
3009   SI tmp_tmp;
3010   QI tmp_cc;
3011   tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
3012   tmp_tmp = SUBCSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), TRUNCQIBI (ANDQI (tmp_cc, 1)));
3013 if (EQSI (SUBOFSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), TRUNCQIBI (ANDQI (tmp_cc, 1))), 0)) {
3014   tmp_cc = ANDQI (tmp_cc, 13);
3015 } else {
3016   tmp_cc = ORQI (tmp_cc, 2);
3017 }
3018 if (EQSI (SUBCFSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), TRUNCQIBI (ANDQI (tmp_cc, 1))), 0)) {
3019   tmp_cc = ANDQI (tmp_cc, 14);
3020 } else {
3021   tmp_cc = ORQI (tmp_cc, 1);
3022 }
3023 if (EQSI (tmp_tmp, 0)) {
3024   tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
3025 } else {
3026 if (LTSI (tmp_tmp, 0)) {
3027   tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
3028 } else {
3029   tmp_cc = ANDQI (tmp_cc, 3);
3030 }
3031 }
3032   {
3033     SI opval = tmp_tmp;
3034     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3035     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3036   }
3037   {
3038     UQI opval = tmp_cc;
3039     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
3040     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
3041   }
3042 }
3043
3044   return vpc;
3045 #undef FLD
3046 }
3047
3048 /* cmpb: cmpb$pack $GRi,$GRj,$ICCi_1 */
3049
3050 static SEM_PC
3051 SEM_FN_NAME (frvbf,cmpb) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3052 {
3053 #define FLD(f) abuf->fields.sfmt_smulcc.f
3054   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3055   int UNUSED written = 0;
3056   IADDR UNUSED pc = abuf->addr;
3057   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3058
3059 {
3060   QI tmp_cc;
3061 if (EQBI (EQSI (ANDSI (GET_H_GR (FLD (f_GRi)), 0xff000000), ANDSI (GET_H_GR (FLD (f_GRj)), 0xff000000)), 0)) {
3062   tmp_cc = ANDQI (tmp_cc, 7);
3063 } else {
3064   tmp_cc = ORQI (tmp_cc, 8);
3065 }
3066 if (EQBI (EQSI (ANDSI (GET_H_GR (FLD (f_GRi)), 16711680), ANDSI (GET_H_GR (FLD (f_GRj)), 16711680)), 0)) {
3067   tmp_cc = ANDQI (tmp_cc, 11);
3068 } else {
3069   tmp_cc = ORQI (tmp_cc, 4);
3070 }
3071 if (EQBI (EQSI (ANDSI (GET_H_GR (FLD (f_GRi)), 65280), ANDSI (GET_H_GR (FLD (f_GRj)), 65280)), 0)) {
3072   tmp_cc = ANDQI (tmp_cc, 13);
3073 } else {
3074   tmp_cc = ORQI (tmp_cc, 2);
3075 }
3076 if (EQBI (EQSI (ANDSI (GET_H_GR (FLD (f_GRi)), 255), ANDSI (GET_H_GR (FLD (f_GRj)), 255)), 0)) {
3077   tmp_cc = ANDQI (tmp_cc, 14);
3078 } else {
3079   tmp_cc = ORQI (tmp_cc, 1);
3080 }
3081   {
3082     UQI opval = tmp_cc;
3083     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
3084     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
3085   }
3086 }
3087
3088   return vpc;
3089 #undef FLD
3090 }
3091
3092 /* cmpba: cmpba$pack $GRi,$GRj,$ICCi_1 */
3093
3094 static SEM_PC
3095 SEM_FN_NAME (frvbf,cmpba) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3096 {
3097 #define FLD(f) abuf->fields.sfmt_smulcc.f
3098   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3099   int UNUSED written = 0;
3100   IADDR UNUSED pc = abuf->addr;
3101   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3102
3103 {
3104   QI tmp_cc;
3105   tmp_cc = 0;
3106 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)) {
3107   tmp_cc = ANDQI (tmp_cc, 14);
3108 } else {
3109   tmp_cc = ORQI (tmp_cc, 1);
3110 }
3111   {
3112     UQI opval = tmp_cc;
3113     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
3114     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
3115   }
3116 }
3117
3118   return vpc;
3119 #undef FLD
3120 }
3121
3122 /* setlo: setlo$pack $ulo16,$GRklo */
3123
3124 static SEM_PC
3125 SEM_FN_NAME (frvbf,setlo) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3126 {
3127 #define FLD(f) abuf->fields.sfmt_setlo.f
3128   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3129   int UNUSED written = 0;
3130   IADDR UNUSED pc = abuf->addr;
3131   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3132
3133   {
3134     UHI opval = FLD (f_u16);
3135     sim_queue_fn_hi_write (current_cpu, frvbf_h_gr_lo_set, FLD (f_GRk), opval);
3136     TRACE_RESULT (current_cpu, abuf, "gr_lo", 'x', opval);
3137   }
3138
3139   return vpc;
3140 #undef FLD
3141 }
3142
3143 /* sethi: sethi$pack $uhi16,$GRkhi */
3144
3145 static SEM_PC
3146 SEM_FN_NAME (frvbf,sethi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3147 {
3148 #define FLD(f) abuf->fields.sfmt_sethi.f
3149   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3150   int UNUSED written = 0;
3151   IADDR UNUSED pc = abuf->addr;
3152   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3153
3154   {
3155     UHI opval = FLD (f_u16);
3156     sim_queue_fn_hi_write (current_cpu, frvbf_h_gr_hi_set, FLD (f_GRk), opval);
3157     TRACE_RESULT (current_cpu, abuf, "gr_hi", 'x', opval);
3158   }
3159
3160   return vpc;
3161 #undef FLD
3162 }
3163
3164 /* setlos: setlos$pack $slo16,$GRk */
3165
3166 static SEM_PC
3167 SEM_FN_NAME (frvbf,setlos) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3168 {
3169 #define FLD(f) abuf->fields.sfmt_setlos.f
3170   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3171   int UNUSED written = 0;
3172   IADDR UNUSED pc = abuf->addr;
3173   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3174
3175   {
3176     SI opval = FLD (f_s16);
3177     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3178     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3179   }
3180
3181   return vpc;
3182 #undef FLD
3183 }
3184
3185 /* ldsb: ldsb$pack @($GRi,$GRj),$GRk */
3186
3187 static SEM_PC
3188 SEM_FN_NAME (frvbf,ldsb) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3189 {
3190 #define FLD(f) abuf->fields.sfmt_addcc.f
3191   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3192   int UNUSED written = 0;
3193   IADDR UNUSED pc = abuf->addr;
3194   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3195
3196   {
3197     SI opval = frvbf_read_mem_QI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3198     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3199     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3200   }
3201
3202   return vpc;
3203 #undef FLD
3204 }
3205
3206 /* ldub: ldub$pack @($GRi,$GRj),$GRk */
3207
3208 static SEM_PC
3209 SEM_FN_NAME (frvbf,ldub) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3210 {
3211 #define FLD(f) abuf->fields.sfmt_addcc.f
3212   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3213   int UNUSED written = 0;
3214   IADDR UNUSED pc = abuf->addr;
3215   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3216
3217   {
3218     SI opval = frvbf_read_mem_UQI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3219     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3220     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3221   }
3222
3223   return vpc;
3224 #undef FLD
3225 }
3226
3227 /* ldsh: ldsh$pack @($GRi,$GRj),$GRk */
3228
3229 static SEM_PC
3230 SEM_FN_NAME (frvbf,ldsh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3231 {
3232 #define FLD(f) abuf->fields.sfmt_addcc.f
3233   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3234   int UNUSED written = 0;
3235   IADDR UNUSED pc = abuf->addr;
3236   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3237
3238   {
3239     SI opval = frvbf_read_mem_HI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3240     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3241     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3242   }
3243
3244   return vpc;
3245 #undef FLD
3246 }
3247
3248 /* lduh: lduh$pack @($GRi,$GRj),$GRk */
3249
3250 static SEM_PC
3251 SEM_FN_NAME (frvbf,lduh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3252 {
3253 #define FLD(f) abuf->fields.sfmt_addcc.f
3254   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3255   int UNUSED written = 0;
3256   IADDR UNUSED pc = abuf->addr;
3257   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3258
3259   {
3260     SI opval = frvbf_read_mem_UHI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3261     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3262     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3263   }
3264
3265   return vpc;
3266 #undef FLD
3267 }
3268
3269 /* ld: ld$pack $ldann($GRi,$GRj),$GRk */
3270
3271 static SEM_PC
3272 SEM_FN_NAME (frvbf,ld) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3273 {
3274 #define FLD(f) abuf->fields.sfmt_addcc.f
3275   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3276   int UNUSED written = 0;
3277   IADDR UNUSED pc = abuf->addr;
3278   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3279
3280   {
3281     SI opval = frvbf_read_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3282     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3283     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3284   }
3285
3286   return vpc;
3287 #undef FLD
3288 }
3289
3290 /* ldbf: ldbf$pack @($GRi,$GRj),$FRintk */
3291
3292 static SEM_PC
3293 SEM_FN_NAME (frvbf,ldbf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3294 {
3295 #define FLD(f) abuf->fields.sfmt_cldbfu.f
3296   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3297   int UNUSED written = 0;
3298   IADDR UNUSED pc = abuf->addr;
3299   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3300
3301   {
3302     SI opval = frvbf_read_mem_UQI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3303     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
3304     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
3305   }
3306
3307   return vpc;
3308 #undef FLD
3309 }
3310
3311 /* ldhf: ldhf$pack @($GRi,$GRj),$FRintk */
3312
3313 static SEM_PC
3314 SEM_FN_NAME (frvbf,ldhf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3315 {
3316 #define FLD(f) abuf->fields.sfmt_cldbfu.f
3317   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3318   int UNUSED written = 0;
3319   IADDR UNUSED pc = abuf->addr;
3320   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3321
3322   {
3323     SI opval = frvbf_read_mem_UHI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3324     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
3325     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
3326   }
3327
3328   return vpc;
3329 #undef FLD
3330 }
3331
3332 /* ldf: ldf$pack @($GRi,$GRj),$FRintk */
3333
3334 static SEM_PC
3335 SEM_FN_NAME (frvbf,ldf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3336 {
3337 #define FLD(f) abuf->fields.sfmt_cldbfu.f
3338   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3339   int UNUSED written = 0;
3340   IADDR UNUSED pc = abuf->addr;
3341   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3342
3343   {
3344     SI opval = frvbf_read_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3345     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
3346     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
3347   }
3348
3349   return vpc;
3350 #undef FLD
3351 }
3352
3353 /* ldc: ldc$pack @($GRi,$GRj),$CPRk */
3354
3355 static SEM_PC
3356 SEM_FN_NAME (frvbf,ldc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3357 {
3358 #define FLD(f) abuf->fields.sfmt_ldcu.f
3359   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3360   int UNUSED written = 0;
3361   IADDR UNUSED pc = abuf->addr;
3362   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3363
3364   {
3365     SI opval = frvbf_read_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3366     sim_queue_si_write (current_cpu, & CPU (h_cpr[FLD (f_CPRk)]), opval);
3367     TRACE_RESULT (current_cpu, abuf, "cpr", 'x', opval);
3368   }
3369
3370   return vpc;
3371 #undef FLD
3372 }
3373
3374 /* nldsb: nldsb$pack @($GRi,$GRj),$GRk */
3375
3376 static SEM_PC
3377 SEM_FN_NAME (frvbf,nldsb) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3378 {
3379 #define FLD(f) abuf->fields.sfmt_addcc.f
3380   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3381   int UNUSED written = 0;
3382   IADDR UNUSED pc = abuf->addr;
3383   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3384
3385 {
3386   BI tmp_do_op;
3387   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 1, 0);
3388 if (tmp_do_op) {
3389   {
3390     SI opval = frvbf_read_mem_QI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3391     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3392     written |= (1 << 6);
3393     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3394   }
3395 }
3396 }
3397
3398   abuf->written = written;
3399   return vpc;
3400 #undef FLD
3401 }
3402
3403 /* nldub: nldub$pack @($GRi,$GRj),$GRk */
3404
3405 static SEM_PC
3406 SEM_FN_NAME (frvbf,nldub) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3407 {
3408 #define FLD(f) abuf->fields.sfmt_addcc.f
3409   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3410   int UNUSED written = 0;
3411   IADDR UNUSED pc = abuf->addr;
3412   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3413
3414 {
3415   BI tmp_do_op;
3416   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 0, 0);
3417 if (tmp_do_op) {
3418   {
3419     SI opval = frvbf_read_mem_UQI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3420     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3421     written |= (1 << 6);
3422     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3423   }
3424 }
3425 }
3426
3427   abuf->written = written;
3428   return vpc;
3429 #undef FLD
3430 }
3431
3432 /* nldsh: nldsh$pack @($GRi,$GRj),$GRk */
3433
3434 static SEM_PC
3435 SEM_FN_NAME (frvbf,nldsh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3436 {
3437 #define FLD(f) abuf->fields.sfmt_addcc.f
3438   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3439   int UNUSED written = 0;
3440   IADDR UNUSED pc = abuf->addr;
3441   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3442
3443 {
3444   BI tmp_do_op;
3445   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 3, 0);
3446 if (tmp_do_op) {
3447   {
3448     SI opval = frvbf_read_mem_HI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3449     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3450     written |= (1 << 6);
3451     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3452   }
3453 }
3454 }
3455
3456   abuf->written = written;
3457   return vpc;
3458 #undef FLD
3459 }
3460
3461 /* nlduh: nlduh$pack @($GRi,$GRj),$GRk */
3462
3463 static SEM_PC
3464 SEM_FN_NAME (frvbf,nlduh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3465 {
3466 #define FLD(f) abuf->fields.sfmt_addcc.f
3467   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3468   int UNUSED written = 0;
3469   IADDR UNUSED pc = abuf->addr;
3470   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3471
3472 {
3473   BI tmp_do_op;
3474   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 2, 0);
3475 if (tmp_do_op) {
3476   {
3477     SI opval = frvbf_read_mem_UHI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3478     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3479     written |= (1 << 6);
3480     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3481   }
3482 }
3483 }
3484
3485   abuf->written = written;
3486   return vpc;
3487 #undef FLD
3488 }
3489
3490 /* nld: nld$pack @($GRi,$GRj),$GRk */
3491
3492 static SEM_PC
3493 SEM_FN_NAME (frvbf,nld) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3494 {
3495 #define FLD(f) abuf->fields.sfmt_addcc.f
3496   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3497   int UNUSED written = 0;
3498   IADDR UNUSED pc = abuf->addr;
3499   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3500
3501 {
3502   BI tmp_do_op;
3503   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 4, 0);
3504 if (tmp_do_op) {
3505   {
3506     SI opval = frvbf_read_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3507     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3508     written |= (1 << 6);
3509     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3510   }
3511 }
3512 }
3513
3514   abuf->written = written;
3515   return vpc;
3516 #undef FLD
3517 }
3518
3519 /* nldbf: nldbf$pack @($GRi,$GRj),$FRintk */
3520
3521 static SEM_PC
3522 SEM_FN_NAME (frvbf,nldbf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3523 {
3524 #define FLD(f) abuf->fields.sfmt_cldbfu.f
3525   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3526   int UNUSED written = 0;
3527   IADDR UNUSED pc = abuf->addr;
3528   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3529
3530 {
3531   BI tmp_do_op;
3532   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_FRk), 0, 0, 1);
3533 if (tmp_do_op) {
3534   {
3535     SI opval = frvbf_read_mem_UQI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3536     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
3537     written |= (1 << 6);
3538     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
3539   }
3540 }
3541 }
3542
3543   abuf->written = written;
3544   return vpc;
3545 #undef FLD
3546 }
3547
3548 /* nldhf: nldhf$pack @($GRi,$GRj),$FRintk */
3549
3550 static SEM_PC
3551 SEM_FN_NAME (frvbf,nldhf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3552 {
3553 #define FLD(f) abuf->fields.sfmt_cldbfu.f
3554   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3555   int UNUSED written = 0;
3556   IADDR UNUSED pc = abuf->addr;
3557   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3558
3559 {
3560   BI tmp_do_op;
3561   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_FRk), 0, 2, 1);
3562 if (tmp_do_op) {
3563   {
3564     SI opval = frvbf_read_mem_UHI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3565     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
3566     written |= (1 << 6);
3567     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
3568   }
3569 }
3570 }
3571
3572   abuf->written = written;
3573   return vpc;
3574 #undef FLD
3575 }
3576
3577 /* nldf: nldf$pack @($GRi,$GRj),$FRintk */
3578
3579 static SEM_PC
3580 SEM_FN_NAME (frvbf,nldf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3581 {
3582 #define FLD(f) abuf->fields.sfmt_cldbfu.f
3583   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3584   int UNUSED written = 0;
3585   IADDR UNUSED pc = abuf->addr;
3586   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3587
3588 {
3589   BI tmp_do_op;
3590   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_FRk), 0, 4, 1);
3591 if (tmp_do_op) {
3592   {
3593     SI opval = frvbf_read_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3594     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
3595     written |= (1 << 6);
3596     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
3597   }
3598 }
3599 }
3600
3601   abuf->written = written;
3602   return vpc;
3603 #undef FLD
3604 }
3605
3606 /* ldd: ldd$pack $lddann($GRi,$GRj),$GRdoublek */
3607
3608 static SEM_PC
3609 SEM_FN_NAME (frvbf,ldd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3610 {
3611 #define FLD(f) abuf->fields.sfmt_smulcc.f
3612   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3613   int UNUSED written = 0;
3614   IADDR UNUSED pc = abuf->addr;
3615   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3616
3617 {
3618   SI tmp_address;
3619 if (NESI (FLD (f_GRk), 0)) {
3620 {
3621   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3622   {
3623     DI opval = frvbf_read_mem_DI (current_cpu, pc, tmp_address);
3624     sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
3625     written |= (1 << 4);
3626     TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
3627   }
3628 }
3629 }
3630 }
3631
3632   abuf->written = written;
3633   return vpc;
3634 #undef FLD
3635 }
3636
3637 /* lddf: lddf$pack @($GRi,$GRj),$FRdoublek */
3638
3639 static SEM_PC
3640 SEM_FN_NAME (frvbf,lddf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3641 {
3642 #define FLD(f) abuf->fields.sfmt_clddfu.f
3643   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3644   int UNUSED written = 0;
3645   IADDR UNUSED pc = abuf->addr;
3646   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3647
3648 {
3649   SI tmp_address;
3650 {
3651   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3652   {
3653     DF opval = frvbf_read_mem_DF (current_cpu, pc, tmp_address);
3654     sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
3655     TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
3656   }
3657 }
3658 }
3659
3660   return vpc;
3661 #undef FLD
3662 }
3663
3664 /* lddc: lddc$pack @($GRi,$GRj),$CPRdoublek */
3665
3666 static SEM_PC
3667 SEM_FN_NAME (frvbf,lddc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3668 {
3669 #define FLD(f) abuf->fields.sfmt_lddcu.f
3670   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3671   int UNUSED written = 0;
3672   IADDR UNUSED pc = abuf->addr;
3673   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3674
3675 {
3676   SI tmp_address;
3677 {
3678   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3679   {
3680     DI opval = frvbf_read_mem_DI (current_cpu, pc, tmp_address);
3681     sim_queue_fn_di_write (current_cpu, frvbf_h_cpr_double_set, FLD (f_CPRk), opval);
3682     TRACE_RESULT (current_cpu, abuf, "cpr_double", 'D', opval);
3683   }
3684 }
3685 }
3686
3687   return vpc;
3688 #undef FLD
3689 }
3690
3691 /* nldd: nldd$pack @($GRi,$GRj),$GRdoublek */
3692
3693 static SEM_PC
3694 SEM_FN_NAME (frvbf,nldd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3695 {
3696 #define FLD(f) abuf->fields.sfmt_smulcc.f
3697   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3698   int UNUSED written = 0;
3699   IADDR UNUSED pc = abuf->addr;
3700   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3701
3702 {
3703   SI tmp_address;
3704 {
3705   BI tmp_do_op;
3706   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 5, 0);
3707 if (tmp_do_op) {
3708 if (NESI (FLD (f_GRk), 0)) {
3709 {
3710   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3711   {
3712     DI opval = frvbf_read_mem_DI (current_cpu, pc, tmp_address);
3713     sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
3714     written |= (1 << 6);
3715     TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
3716   }
3717 }
3718 }
3719 }
3720 }
3721 }
3722
3723   abuf->written = written;
3724   return vpc;
3725 #undef FLD
3726 }
3727
3728 /* nlddf: nlddf$pack @($GRi,$GRj),$FRdoublek */
3729
3730 static SEM_PC
3731 SEM_FN_NAME (frvbf,nlddf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3732 {
3733 #define FLD(f) abuf->fields.sfmt_clddfu.f
3734   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3735   int UNUSED written = 0;
3736   IADDR UNUSED pc = abuf->addr;
3737   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3738
3739 {
3740   SI tmp_address;
3741 {
3742   BI tmp_do_op;
3743   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_FRk), 0, 5, 1);
3744 if (tmp_do_op) {
3745 {
3746   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3747   {
3748     DF opval = frvbf_read_mem_DF (current_cpu, pc, tmp_address);
3749     sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
3750     written |= (1 << 6);
3751     TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
3752   }
3753 }
3754 }
3755 }
3756 }
3757
3758   abuf->written = written;
3759   return vpc;
3760 #undef FLD
3761 }
3762
3763 /* ldq: ldq$pack @($GRi,$GRj),$GRk */
3764
3765 static SEM_PC
3766 SEM_FN_NAME (frvbf,ldq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3767 {
3768 #define FLD(f) abuf->fields.sfmt_smulcc.f
3769   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3770   int UNUSED written = 0;
3771   IADDR UNUSED pc = abuf->addr;
3772   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3773
3774 {
3775   SI tmp_address;
3776 {
3777   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3778 frvbf_load_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
3779 }
3780 }
3781
3782   return vpc;
3783 #undef FLD
3784 }
3785
3786 /* ldqf: ldqf$pack @($GRi,$GRj),$FRintk */
3787
3788 static SEM_PC
3789 SEM_FN_NAME (frvbf,ldqf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3790 {
3791 #define FLD(f) abuf->fields.sfmt_cstdfu.f
3792   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3793   int UNUSED written = 0;
3794   IADDR UNUSED pc = abuf->addr;
3795   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3796
3797 {
3798   SI tmp_address;
3799 {
3800   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3801 frvbf_load_quad_FRint (current_cpu, pc, tmp_address, FLD (f_FRk));
3802 }
3803 }
3804
3805   return vpc;
3806 #undef FLD
3807 }
3808
3809 /* ldqc: ldqc$pack @($GRi,$GRj),$CPRk */
3810
3811 static SEM_PC
3812 SEM_FN_NAME (frvbf,ldqc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3813 {
3814 #define FLD(f) abuf->fields.sfmt_stdcu.f
3815   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3816   int UNUSED written = 0;
3817   IADDR UNUSED pc = abuf->addr;
3818   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3819
3820 {
3821   SI tmp_address;
3822 {
3823   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3824 frvbf_load_quad_CPR (current_cpu, pc, tmp_address, FLD (f_CPRk));
3825 }
3826 }
3827
3828   return vpc;
3829 #undef FLD
3830 }
3831
3832 /* nldq: nldq$pack @($GRi,$GRj),$GRk */
3833
3834 static SEM_PC
3835 SEM_FN_NAME (frvbf,nldq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3836 {
3837 #define FLD(f) abuf->fields.sfmt_smulcc.f
3838   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3839   int UNUSED written = 0;
3840   IADDR UNUSED pc = abuf->addr;
3841   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3842
3843 {
3844   SI tmp_address;
3845 {
3846   BI tmp_do_op;
3847   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 6, 0);
3848 if (tmp_do_op) {
3849 {
3850   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3851 frvbf_load_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
3852 }
3853 }
3854 }
3855 }
3856
3857   return vpc;
3858 #undef FLD
3859 }
3860
3861 /* nldqf: nldqf$pack @($GRi,$GRj),$FRintk */
3862
3863 static SEM_PC
3864 SEM_FN_NAME (frvbf,nldqf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3865 {
3866 #define FLD(f) abuf->fields.sfmt_cstdfu.f
3867   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3868   int UNUSED written = 0;
3869   IADDR UNUSED pc = abuf->addr;
3870   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3871
3872 {
3873   SI tmp_address;
3874 {
3875   BI tmp_do_op;
3876   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_FRk), 0, 6, 1);
3877 if (tmp_do_op) {
3878 {
3879   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3880 frvbf_load_quad_FRint (current_cpu, pc, tmp_address, FLD (f_FRk));
3881 }
3882 }
3883 }
3884 }
3885
3886   return vpc;
3887 #undef FLD
3888 }
3889
3890 /* ldsbu: ldsbu$pack @($GRi,$GRj),$GRk */
3891
3892 static SEM_PC
3893 SEM_FN_NAME (frvbf,ldsbu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3894 {
3895 #define FLD(f) abuf->fields.sfmt_cldsbu.f
3896   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3897   int UNUSED written = 0;
3898   IADDR UNUSED pc = abuf->addr;
3899   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3900
3901 {
3902   USI tmp_address;
3903   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3904   {
3905     SI opval = frvbf_read_mem_QI (current_cpu, pc, tmp_address);
3906     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3907     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3908   }
3909 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
3910 {
3911   {
3912     SI opval = tmp_address;
3913     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
3914     written |= (1 << 5);
3915     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3916   }
3917 frvbf_force_update (current_cpu);
3918 }
3919 }
3920 }
3921
3922   abuf->written = written;
3923   return vpc;
3924 #undef FLD
3925 }
3926
3927 /* ldubu: ldubu$pack @($GRi,$GRj),$GRk */
3928
3929 static SEM_PC
3930 SEM_FN_NAME (frvbf,ldubu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3931 {
3932 #define FLD(f) abuf->fields.sfmt_cldsbu.f
3933   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3934   int UNUSED written = 0;
3935   IADDR UNUSED pc = abuf->addr;
3936   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3937
3938 {
3939   USI tmp_address;
3940   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3941   {
3942     SI opval = frvbf_read_mem_UQI (current_cpu, pc, tmp_address);
3943     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3944     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3945   }
3946 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
3947 {
3948   {
3949     SI opval = tmp_address;
3950     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
3951     written |= (1 << 5);
3952     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3953   }
3954 frvbf_force_update (current_cpu);
3955 }
3956 }
3957 }
3958
3959   abuf->written = written;
3960   return vpc;
3961 #undef FLD
3962 }
3963
3964 /* ldshu: ldshu$pack @($GRi,$GRj),$GRk */
3965
3966 static SEM_PC
3967 SEM_FN_NAME (frvbf,ldshu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3968 {
3969 #define FLD(f) abuf->fields.sfmt_cldsbu.f
3970   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3971   int UNUSED written = 0;
3972   IADDR UNUSED pc = abuf->addr;
3973   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3974
3975 {
3976   USI tmp_address;
3977   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3978   {
3979     SI opval = frvbf_read_mem_HI (current_cpu, pc, tmp_address);
3980     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3981     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3982   }
3983 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
3984 {
3985   {
3986     SI opval = tmp_address;
3987     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
3988     written |= (1 << 5);
3989     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3990   }
3991 frvbf_force_update (current_cpu);
3992 }
3993 }
3994 }
3995
3996   abuf->written = written;
3997   return vpc;
3998 #undef FLD
3999 }
4000
4001 /* lduhu: lduhu$pack @($GRi,$GRj),$GRk */
4002
4003 static SEM_PC
4004 SEM_FN_NAME (frvbf,lduhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4005 {
4006 #define FLD(f) abuf->fields.sfmt_cldsbu.f
4007   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4008   int UNUSED written = 0;
4009   IADDR UNUSED pc = abuf->addr;
4010   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4011
4012 {
4013   USI tmp_address;
4014   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4015   {
4016     SI opval = frvbf_read_mem_UHI (current_cpu, pc, tmp_address);
4017     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
4018     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4019   }
4020 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
4021 {
4022   {
4023     SI opval = tmp_address;
4024     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4025     written |= (1 << 5);
4026     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4027   }
4028 frvbf_force_update (current_cpu);
4029 }
4030 }
4031 }
4032
4033   abuf->written = written;
4034   return vpc;
4035 #undef FLD
4036 }
4037
4038 /* ldu: ldu$pack @($GRi,$GRj),$GRk */
4039
4040 static SEM_PC
4041 SEM_FN_NAME (frvbf,ldu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4042 {
4043 #define FLD(f) abuf->fields.sfmt_cldsbu.f
4044   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4045   int UNUSED written = 0;
4046   IADDR UNUSED pc = abuf->addr;
4047   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4048
4049 {
4050   USI tmp_address;
4051   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4052   {
4053     SI opval = frvbf_read_mem_SI (current_cpu, pc, tmp_address);
4054     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
4055     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4056   }
4057 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
4058 {
4059   {
4060     SI opval = tmp_address;
4061     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4062     written |= (1 << 5);
4063     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4064   }
4065 frvbf_force_update (current_cpu);
4066 }
4067 }
4068 }
4069
4070   abuf->written = written;
4071   return vpc;
4072 #undef FLD
4073 }
4074
4075 /* nldsbu: nldsbu$pack @($GRi,$GRj),$GRk */
4076
4077 static SEM_PC
4078 SEM_FN_NAME (frvbf,nldsbu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4079 {
4080 #define FLD(f) abuf->fields.sfmt_cldsbu.f
4081   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4082   int UNUSED written = 0;
4083   IADDR UNUSED pc = abuf->addr;
4084   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4085
4086 {
4087   BI tmp_do_op;
4088   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 1, 0);
4089 if (tmp_do_op) {
4090 {
4091   USI tmp_address;
4092   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4093   {
4094     SI opval = frvbf_read_mem_QI (current_cpu, pc, tmp_address);
4095     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
4096     written |= (1 << 7);
4097     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4098   }
4099 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
4100 {
4101   {
4102     SI opval = tmp_address;
4103     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4104     written |= (1 << 6);
4105     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4106   }
4107 frvbf_force_update (current_cpu);
4108 }
4109 }
4110 }
4111 }
4112 }
4113
4114   abuf->written = written;
4115   return vpc;
4116 #undef FLD
4117 }
4118
4119 /* nldubu: nldubu$pack @($GRi,$GRj),$GRk */
4120
4121 static SEM_PC
4122 SEM_FN_NAME (frvbf,nldubu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4123 {
4124 #define FLD(f) abuf->fields.sfmt_cldsbu.f
4125   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4126   int UNUSED written = 0;
4127   IADDR UNUSED pc = abuf->addr;
4128   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4129
4130 {
4131   BI tmp_do_op;
4132   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 0, 0);
4133 if (tmp_do_op) {
4134 {
4135   USI tmp_address;
4136   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4137   {
4138     SI opval = frvbf_read_mem_UQI (current_cpu, pc, tmp_address);
4139     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
4140     written |= (1 << 7);
4141     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4142   }
4143 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
4144 {
4145   {
4146     SI opval = tmp_address;
4147     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4148     written |= (1 << 6);
4149     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4150   }
4151 frvbf_force_update (current_cpu);
4152 }
4153 }
4154 }
4155 }
4156 }
4157
4158   abuf->written = written;
4159   return vpc;
4160 #undef FLD
4161 }
4162
4163 /* nldshu: nldshu$pack @($GRi,$GRj),$GRk */
4164
4165 static SEM_PC
4166 SEM_FN_NAME (frvbf,nldshu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4167 {
4168 #define FLD(f) abuf->fields.sfmt_cldsbu.f
4169   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4170   int UNUSED written = 0;
4171   IADDR UNUSED pc = abuf->addr;
4172   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4173
4174 {
4175   BI tmp_do_op;
4176   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 3, 0);
4177 if (tmp_do_op) {
4178 {
4179   USI tmp_address;
4180   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4181   {
4182     SI opval = frvbf_read_mem_HI (current_cpu, pc, tmp_address);
4183     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
4184     written |= (1 << 7);
4185     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4186   }
4187 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
4188 {
4189   {
4190     SI opval = tmp_address;
4191     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4192     written |= (1 << 6);
4193     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4194   }
4195 frvbf_force_update (current_cpu);
4196 }
4197 }
4198 }
4199 }
4200 }
4201
4202   abuf->written = written;
4203   return vpc;
4204 #undef FLD
4205 }
4206
4207 /* nlduhu: nlduhu$pack @($GRi,$GRj),$GRk */
4208
4209 static SEM_PC
4210 SEM_FN_NAME (frvbf,nlduhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4211 {
4212 #define FLD(f) abuf->fields.sfmt_cldsbu.f
4213   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4214   int UNUSED written = 0;
4215   IADDR UNUSED pc = abuf->addr;
4216   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4217
4218 {
4219   BI tmp_do_op;
4220   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 2, 0);
4221 if (tmp_do_op) {
4222 {
4223   USI tmp_address;
4224   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4225   {
4226     SI opval = frvbf_read_mem_UHI (current_cpu, pc, tmp_address);
4227     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
4228     written |= (1 << 7);
4229     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4230   }
4231 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
4232 {
4233   {
4234     SI opval = tmp_address;
4235     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4236     written |= (1 << 6);
4237     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4238   }
4239 frvbf_force_update (current_cpu);
4240 }
4241 }
4242 }
4243 }
4244 }
4245
4246   abuf->written = written;
4247   return vpc;
4248 #undef FLD
4249 }
4250
4251 /* nldu: nldu$pack @($GRi,$GRj),$GRk */
4252
4253 static SEM_PC
4254 SEM_FN_NAME (frvbf,nldu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4255 {
4256 #define FLD(f) abuf->fields.sfmt_cldsbu.f
4257   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4258   int UNUSED written = 0;
4259   IADDR UNUSED pc = abuf->addr;
4260   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4261
4262 {
4263   BI tmp_do_op;
4264   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 4, 0);
4265 if (tmp_do_op) {
4266 {
4267   USI tmp_address;
4268   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4269   {
4270     SI opval = frvbf_read_mem_SI (current_cpu, pc, tmp_address);
4271     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
4272     written |= (1 << 7);
4273     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4274   }
4275 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
4276 {
4277   {
4278     SI opval = tmp_address;
4279     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4280     written |= (1 << 6);
4281     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4282   }
4283 frvbf_force_update (current_cpu);
4284 }
4285 }
4286 }
4287 }
4288 }
4289
4290   abuf->written = written;
4291   return vpc;
4292 #undef FLD
4293 }
4294
4295 /* ldbfu: ldbfu$pack @($GRi,$GRj),$FRintk */
4296
4297 static SEM_PC
4298 SEM_FN_NAME (frvbf,ldbfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4299 {
4300 #define FLD(f) abuf->fields.sfmt_cldbfu.f
4301   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4302   int UNUSED written = 0;
4303   IADDR UNUSED pc = abuf->addr;
4304   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4305
4306 {
4307   USI tmp_address;
4308   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4309   {
4310     SI opval = frvbf_read_mem_UQI (current_cpu, pc, tmp_address);
4311     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
4312     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
4313   }
4314   {
4315     SI opval = tmp_address;
4316     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4317     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4318   }
4319 frvbf_force_update (current_cpu);
4320 }
4321
4322   return vpc;
4323 #undef FLD
4324 }
4325
4326 /* ldhfu: ldhfu$pack @($GRi,$GRj),$FRintk */
4327
4328 static SEM_PC
4329 SEM_FN_NAME (frvbf,ldhfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4330 {
4331 #define FLD(f) abuf->fields.sfmt_cldbfu.f
4332   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4333   int UNUSED written = 0;
4334   IADDR UNUSED pc = abuf->addr;
4335   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4336
4337 {
4338   USI tmp_address;
4339   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4340   {
4341     SI opval = frvbf_read_mem_UHI (current_cpu, pc, tmp_address);
4342     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
4343     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
4344   }
4345   {
4346     SI opval = tmp_address;
4347     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4348     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4349   }
4350 frvbf_force_update (current_cpu);
4351 }
4352
4353   return vpc;
4354 #undef FLD
4355 }
4356
4357 /* ldfu: ldfu$pack @($GRi,$GRj),$FRintk */
4358
4359 static SEM_PC
4360 SEM_FN_NAME (frvbf,ldfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4361 {
4362 #define FLD(f) abuf->fields.sfmt_cldbfu.f
4363   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4364   int UNUSED written = 0;
4365   IADDR UNUSED pc = abuf->addr;
4366   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4367
4368 {
4369   USI tmp_address;
4370   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4371   {
4372     SI opval = frvbf_read_mem_SI (current_cpu, pc, tmp_address);
4373     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
4374     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
4375   }
4376   {
4377     SI opval = tmp_address;
4378     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4379     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4380   }
4381 frvbf_force_update (current_cpu);
4382 }
4383
4384   return vpc;
4385 #undef FLD
4386 }
4387
4388 /* ldcu: ldcu$pack @($GRi,$GRj),$CPRk */
4389
4390 static SEM_PC
4391 SEM_FN_NAME (frvbf,ldcu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4392 {
4393 #define FLD(f) abuf->fields.sfmt_ldcu.f
4394   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4395   int UNUSED written = 0;
4396   IADDR UNUSED pc = abuf->addr;
4397   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4398
4399 {
4400   USI tmp_address;
4401   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4402   {
4403     SI opval = frvbf_read_mem_SI (current_cpu, pc, tmp_address);
4404     sim_queue_si_write (current_cpu, & CPU (h_cpr[FLD (f_CPRk)]), opval);
4405     TRACE_RESULT (current_cpu, abuf, "cpr", 'x', opval);
4406   }
4407   {
4408     SI opval = tmp_address;
4409     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4410     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4411   }
4412 frvbf_force_update (current_cpu);
4413 }
4414
4415   return vpc;
4416 #undef FLD
4417 }
4418
4419 /* nldbfu: nldbfu$pack @($GRi,$GRj),$FRintk */
4420
4421 static SEM_PC
4422 SEM_FN_NAME (frvbf,nldbfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4423 {
4424 #define FLD(f) abuf->fields.sfmt_cldbfu.f
4425   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4426   int UNUSED written = 0;
4427   IADDR UNUSED pc = abuf->addr;
4428   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4429
4430 {
4431   BI tmp_do_op;
4432   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_FRk), 0, 0, 1);
4433 if (tmp_do_op) {
4434 {
4435   USI tmp_address;
4436   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4437   {
4438     SI opval = frvbf_read_mem_UQI (current_cpu, pc, tmp_address);
4439     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
4440     written |= (1 << 6);
4441     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
4442   }
4443   {
4444     SI opval = tmp_address;
4445     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4446     written |= (1 << 7);
4447     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4448   }
4449 frvbf_force_update (current_cpu);
4450 }
4451 }
4452 }
4453
4454   abuf->written = written;
4455   return vpc;
4456 #undef FLD
4457 }
4458
4459 /* nldhfu: nldhfu$pack @($GRi,$GRj),$FRintk */
4460
4461 static SEM_PC
4462 SEM_FN_NAME (frvbf,nldhfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4463 {
4464 #define FLD(f) abuf->fields.sfmt_cldbfu.f
4465   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4466   int UNUSED written = 0;
4467   IADDR UNUSED pc = abuf->addr;
4468   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4469
4470 {
4471   BI tmp_do_op;
4472   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_FRk), 0, 2, 1);
4473 if (tmp_do_op) {
4474 {
4475   USI tmp_address;
4476   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4477   {
4478     SI opval = frvbf_read_mem_UHI (current_cpu, pc, tmp_address);
4479     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
4480     written |= (1 << 6);
4481     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
4482   }
4483   {
4484     SI opval = tmp_address;
4485     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4486     written |= (1 << 7);
4487     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4488   }
4489 frvbf_force_update (current_cpu);
4490 }
4491 }
4492 }
4493
4494   abuf->written = written;
4495   return vpc;
4496 #undef FLD
4497 }
4498
4499 /* nldfu: nldfu$pack @($GRi,$GRj),$FRintk */
4500
4501 static SEM_PC
4502 SEM_FN_NAME (frvbf,nldfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4503 {
4504 #define FLD(f) abuf->fields.sfmt_cldbfu.f
4505   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4506   int UNUSED written = 0;
4507   IADDR UNUSED pc = abuf->addr;
4508   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4509
4510 {
4511   BI tmp_do_op;
4512   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_FRk), 0, 4, 1);
4513 if (tmp_do_op) {
4514 {
4515   USI tmp_address;
4516   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4517   {
4518     SI opval = frvbf_read_mem_SI (current_cpu, pc, tmp_address);
4519     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
4520     written |= (1 << 6);
4521     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
4522   }
4523   {
4524     SI opval = tmp_address;
4525     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4526     written |= (1 << 7);
4527     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4528   }
4529 frvbf_force_update (current_cpu);
4530 }
4531 }
4532 }
4533
4534   abuf->written = written;
4535   return vpc;
4536 #undef FLD
4537 }
4538
4539 /* lddu: lddu$pack @($GRi,$GRj),$GRdoublek */
4540
4541 static SEM_PC
4542 SEM_FN_NAME (frvbf,lddu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4543 {
4544 #define FLD(f) abuf->fields.sfmt_clddu.f
4545   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4546   int UNUSED written = 0;
4547   IADDR UNUSED pc = abuf->addr;
4548   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4549
4550 {
4551   SI tmp_address;
4552 if (NESI (FLD (f_GRk), 0)) {
4553 {
4554   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4555   {
4556     DI opval = frvbf_read_mem_DI (current_cpu, pc, tmp_address);
4557     sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
4558     written |= (1 << 5);
4559     TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
4560   }
4561 }
4562 }
4563 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
4564 {
4565   {
4566     SI opval = tmp_address;
4567     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4568     written |= (1 << 6);
4569     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4570   }
4571 frvbf_force_update (current_cpu);
4572 }
4573 }
4574 }
4575
4576   abuf->written = written;
4577   return vpc;
4578 #undef FLD
4579 }
4580
4581 /* nlddu: nlddu$pack @($GRi,$GRj),$GRdoublek */
4582
4583 static SEM_PC
4584 SEM_FN_NAME (frvbf,nlddu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4585 {
4586 #define FLD(f) abuf->fields.sfmt_clddu.f
4587   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4588   int UNUSED written = 0;
4589   IADDR UNUSED pc = abuf->addr;
4590   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4591
4592 {
4593   BI tmp_do_op;
4594   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 5, 0);
4595 if (tmp_do_op) {
4596 {
4597   SI tmp_address;
4598 if (NESI (FLD (f_GRk), 0)) {
4599 {
4600   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4601   {
4602     DI opval = frvbf_read_mem_DI (current_cpu, pc, tmp_address);
4603     sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
4604     written |= (1 << 6);
4605     TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
4606   }
4607 }
4608 }
4609 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
4610 {
4611   {
4612     SI opval = tmp_address;
4613     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4614     written |= (1 << 7);
4615     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4616   }
4617 frvbf_force_update (current_cpu);
4618 }
4619 }
4620 }
4621 }
4622 }
4623
4624   abuf->written = written;
4625   return vpc;
4626 #undef FLD
4627 }
4628
4629 /* lddfu: lddfu$pack @($GRi,$GRj),$FRdoublek */
4630
4631 static SEM_PC
4632 SEM_FN_NAME (frvbf,lddfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4633 {
4634 #define FLD(f) abuf->fields.sfmt_clddfu.f
4635   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4636   int UNUSED written = 0;
4637   IADDR UNUSED pc = abuf->addr;
4638   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4639
4640 {
4641   SI tmp_address;
4642 {
4643   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4644   {
4645     DF opval = frvbf_read_mem_DF (current_cpu, pc, tmp_address);
4646     sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
4647     TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
4648   }
4649 }
4650   {
4651     SI opval = tmp_address;
4652     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4653     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4654   }
4655 frvbf_force_update (current_cpu);
4656 }
4657
4658   return vpc;
4659 #undef FLD
4660 }
4661
4662 /* lddcu: lddcu$pack @($GRi,$GRj),$CPRdoublek */
4663
4664 static SEM_PC
4665 SEM_FN_NAME (frvbf,lddcu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4666 {
4667 #define FLD(f) abuf->fields.sfmt_lddcu.f
4668   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4669   int UNUSED written = 0;
4670   IADDR UNUSED pc = abuf->addr;
4671   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4672
4673 {
4674   SI tmp_address;
4675 {
4676   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4677   {
4678     DI opval = frvbf_read_mem_DI (current_cpu, pc, tmp_address);
4679     sim_queue_fn_di_write (current_cpu, frvbf_h_cpr_double_set, FLD (f_CPRk), opval);
4680     TRACE_RESULT (current_cpu, abuf, "cpr_double", 'D', opval);
4681   }
4682 }
4683   {
4684     SI opval = tmp_address;
4685     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4686     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4687   }
4688 frvbf_force_update (current_cpu);
4689 }
4690
4691   return vpc;
4692 #undef FLD
4693 }
4694
4695 /* nlddfu: nlddfu$pack @($GRi,$GRj),$FRdoublek */
4696
4697 static SEM_PC
4698 SEM_FN_NAME (frvbf,nlddfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4699 {
4700 #define FLD(f) abuf->fields.sfmt_clddfu.f
4701   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4702   int UNUSED written = 0;
4703   IADDR UNUSED pc = abuf->addr;
4704   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4705
4706 {
4707   BI tmp_do_op;
4708   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_FRk), 0, 5, 1);
4709 if (tmp_do_op) {
4710 {
4711   SI tmp_address;
4712 {
4713   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4714   {
4715     DF opval = frvbf_read_mem_DF (current_cpu, pc, tmp_address);
4716     sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
4717     written |= (1 << 6);
4718     TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
4719   }
4720 }
4721   {
4722     SI opval = tmp_address;
4723     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4724     written |= (1 << 7);
4725     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4726   }
4727 frvbf_force_update (current_cpu);
4728 }
4729 }
4730 }
4731
4732   abuf->written = written;
4733   return vpc;
4734 #undef FLD
4735 }
4736
4737 /* ldqu: ldqu$pack @($GRi,$GRj),$GRk */
4738
4739 static SEM_PC
4740 SEM_FN_NAME (frvbf,ldqu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4741 {
4742 #define FLD(f) abuf->fields.sfmt_cstdu.f
4743   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4744   int UNUSED written = 0;
4745   IADDR UNUSED pc = abuf->addr;
4746   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4747
4748 {
4749   SI tmp_address;
4750 {
4751   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4752 frvbf_load_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
4753 }
4754 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
4755 {
4756   {
4757     SI opval = tmp_address;
4758     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4759     written |= (1 << 5);
4760     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4761   }
4762 frvbf_force_update (current_cpu);
4763 }
4764 }
4765 }
4766
4767   abuf->written = written;
4768   return vpc;
4769 #undef FLD
4770 }
4771
4772 /* nldqu: nldqu$pack @($GRi,$GRj),$GRk */
4773
4774 static SEM_PC
4775 SEM_FN_NAME (frvbf,nldqu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4776 {
4777 #define FLD(f) abuf->fields.sfmt_cstdu.f
4778   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4779   int UNUSED written = 0;
4780   IADDR UNUSED pc = abuf->addr;
4781   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4782
4783 {
4784   BI tmp_do_op;
4785   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 6, 0);
4786 if (tmp_do_op) {
4787 {
4788   SI tmp_address;
4789 {
4790   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4791 frvbf_load_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
4792 }
4793 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
4794 {
4795   {
4796     SI opval = tmp_address;
4797     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4798     written |= (1 << 6);
4799     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4800   }
4801 frvbf_force_update (current_cpu);
4802 }
4803 }
4804 }
4805 }
4806 }
4807
4808   abuf->written = written;
4809   return vpc;
4810 #undef FLD
4811 }
4812
4813 /* ldqfu: ldqfu$pack @($GRi,$GRj),$FRintk */
4814
4815 static SEM_PC
4816 SEM_FN_NAME (frvbf,ldqfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4817 {
4818 #define FLD(f) abuf->fields.sfmt_cstdfu.f
4819   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4820   int UNUSED written = 0;
4821   IADDR UNUSED pc = abuf->addr;
4822   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4823
4824 {
4825   SI tmp_address;
4826 {
4827   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4828 frvbf_load_quad_FRint (current_cpu, pc, tmp_address, FLD (f_FRk));
4829 }
4830   {
4831     SI opval = tmp_address;
4832     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4833     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4834   }
4835 frvbf_force_update (current_cpu);
4836 }
4837
4838   return vpc;
4839 #undef FLD
4840 }
4841
4842 /* ldqcu: ldqcu$pack @($GRi,$GRj),$CPRk */
4843
4844 static SEM_PC
4845 SEM_FN_NAME (frvbf,ldqcu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4846 {
4847 #define FLD(f) abuf->fields.sfmt_stdcu.f
4848   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4849   int UNUSED written = 0;
4850   IADDR UNUSED pc = abuf->addr;
4851   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4852
4853 {
4854   SI tmp_address;
4855 {
4856   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4857 frvbf_load_quad_CPR (current_cpu, pc, tmp_address, FLD (f_CPRk));
4858 }
4859   {
4860     SI opval = tmp_address;
4861     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4862     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4863   }
4864 frvbf_force_update (current_cpu);
4865 }
4866
4867   return vpc;
4868 #undef FLD
4869 }
4870
4871 /* nldqfu: nldqfu$pack @($GRi,$GRj),$FRintk */
4872
4873 static SEM_PC
4874 SEM_FN_NAME (frvbf,nldqfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4875 {
4876 #define FLD(f) abuf->fields.sfmt_cstdfu.f
4877   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4878   int UNUSED written = 0;
4879   IADDR UNUSED pc = abuf->addr;
4880   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4881
4882 {
4883   BI tmp_do_op;
4884   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_FRk), 0, 6, 1);
4885 if (tmp_do_op) {
4886 {
4887   SI tmp_address;
4888 {
4889   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4890 frvbf_load_quad_FRint (current_cpu, pc, tmp_address, FLD (f_FRk));
4891 }
4892   {
4893     SI opval = tmp_address;
4894     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4895     written |= (1 << 6);
4896     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4897   }
4898 frvbf_force_update (current_cpu);
4899 }
4900 }
4901 }
4902
4903   abuf->written = written;
4904   return vpc;
4905 #undef FLD
4906 }
4907
4908 /* ldsbi: ldsbi$pack @($GRi,$d12),$GRk */
4909
4910 static SEM_PC
4911 SEM_FN_NAME (frvbf,ldsbi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4912 {
4913 #define FLD(f) abuf->fields.sfmt_swapi.f
4914   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4915   int UNUSED written = 0;
4916   IADDR UNUSED pc = abuf->addr;
4917   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4918
4919   {
4920     SI opval = frvbf_read_mem_QI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
4921     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
4922     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4923   }
4924
4925   return vpc;
4926 #undef FLD
4927 }
4928
4929 /* ldshi: ldshi$pack @($GRi,$d12),$GRk */
4930
4931 static SEM_PC
4932 SEM_FN_NAME (frvbf,ldshi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4933 {
4934 #define FLD(f) abuf->fields.sfmt_swapi.f
4935   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4936   int UNUSED written = 0;
4937   IADDR UNUSED pc = abuf->addr;
4938   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4939
4940   {
4941     SI opval = frvbf_read_mem_HI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
4942     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
4943     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4944   }
4945
4946   return vpc;
4947 #undef FLD
4948 }
4949
4950 /* ldi: ldi$pack @($GRi,$d12),$GRk */
4951
4952 static SEM_PC
4953 SEM_FN_NAME (frvbf,ldi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4954 {
4955 #define FLD(f) abuf->fields.sfmt_swapi.f
4956   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4957   int UNUSED written = 0;
4958   IADDR UNUSED pc = abuf->addr;
4959   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4960
4961   {
4962     SI opval = frvbf_read_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
4963     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
4964     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4965   }
4966
4967   return vpc;
4968 #undef FLD
4969 }
4970
4971 /* ldubi: ldubi$pack @($GRi,$d12),$GRk */
4972
4973 static SEM_PC
4974 SEM_FN_NAME (frvbf,ldubi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4975 {
4976 #define FLD(f) abuf->fields.sfmt_swapi.f
4977   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4978   int UNUSED written = 0;
4979   IADDR UNUSED pc = abuf->addr;
4980   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4981
4982   {
4983     SI opval = frvbf_read_mem_UQI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
4984     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
4985     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4986   }
4987
4988   return vpc;
4989 #undef FLD
4990 }
4991
4992 /* lduhi: lduhi$pack @($GRi,$d12),$GRk */
4993
4994 static SEM_PC
4995 SEM_FN_NAME (frvbf,lduhi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4996 {
4997 #define FLD(f) abuf->fields.sfmt_swapi.f
4998   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4999   int UNUSED written = 0;
5000   IADDR UNUSED pc = abuf->addr;
5001   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5002
5003   {
5004     SI opval = frvbf_read_mem_UHI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
5005     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
5006     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5007   }
5008
5009   return vpc;
5010 #undef FLD
5011 }
5012
5013 /* ldbfi: ldbfi$pack @($GRi,$d12),$FRintk */
5014
5015 static SEM_PC
5016 SEM_FN_NAME (frvbf,ldbfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5017 {
5018 #define FLD(f) abuf->fields.sfmt_ldbfi.f
5019   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5020   int UNUSED written = 0;
5021   IADDR UNUSED pc = abuf->addr;
5022   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5023
5024   {
5025     SI opval = frvbf_read_mem_UQI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
5026     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
5027     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
5028   }
5029
5030   return vpc;
5031 #undef FLD
5032 }
5033
5034 /* ldhfi: ldhfi$pack @($GRi,$d12),$FRintk */
5035
5036 static SEM_PC
5037 SEM_FN_NAME (frvbf,ldhfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5038 {
5039 #define FLD(f) abuf->fields.sfmt_ldbfi.f
5040   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5041   int UNUSED written = 0;
5042   IADDR UNUSED pc = abuf->addr;
5043   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5044
5045   {
5046     SI opval = frvbf_read_mem_UHI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
5047     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
5048     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
5049   }
5050
5051   return vpc;
5052 #undef FLD
5053 }
5054
5055 /* ldfi: ldfi$pack @($GRi,$d12),$FRintk */
5056
5057 static SEM_PC
5058 SEM_FN_NAME (frvbf,ldfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5059 {
5060 #define FLD(f) abuf->fields.sfmt_ldbfi.f
5061   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5062   int UNUSED written = 0;
5063   IADDR UNUSED pc = abuf->addr;
5064   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5065
5066   {
5067     SI opval = frvbf_read_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
5068     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
5069     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
5070   }
5071
5072   return vpc;
5073 #undef FLD
5074 }
5075
5076 /* nldsbi: nldsbi$pack @($GRi,$d12),$GRk */
5077
5078 static SEM_PC
5079 SEM_FN_NAME (frvbf,nldsbi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5080 {
5081 #define FLD(f) abuf->fields.sfmt_swapi.f
5082   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5083   int UNUSED written = 0;
5084   IADDR UNUSED pc = abuf->addr;
5085   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5086
5087 {
5088   BI tmp_do_op;
5089   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), -1, FLD (f_GRk), FLD (f_d12), 1, 0);
5090 if (tmp_do_op) {
5091   {
5092     SI opval = frvbf_read_mem_QI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
5093     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
5094     written |= (1 << 5);
5095     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5096   }
5097 }
5098 }
5099
5100   abuf->written = written;
5101   return vpc;
5102 #undef FLD
5103 }
5104
5105 /* nldubi: nldubi$pack @($GRi,$d12),$GRk */
5106
5107 static SEM_PC
5108 SEM_FN_NAME (frvbf,nldubi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5109 {
5110 #define FLD(f) abuf->fields.sfmt_swapi.f
5111   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5112   int UNUSED written = 0;
5113   IADDR UNUSED pc = abuf->addr;
5114   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5115
5116 {
5117   BI tmp_do_op;
5118   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), -1, FLD (f_GRk), FLD (f_d12), 0, 0);
5119 if (tmp_do_op) {
5120   {
5121     SI opval = frvbf_read_mem_UQI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
5122     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
5123     written |= (1 << 5);
5124     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5125   }
5126 }
5127 }
5128
5129   abuf->written = written;
5130   return vpc;
5131 #undef FLD
5132 }
5133
5134 /* nldshi: nldshi$pack @($GRi,$d12),$GRk */
5135
5136 static SEM_PC
5137 SEM_FN_NAME (frvbf,nldshi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5138 {
5139 #define FLD(f) abuf->fields.sfmt_swapi.f
5140   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5141   int UNUSED written = 0;
5142   IADDR UNUSED pc = abuf->addr;
5143   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5144
5145 {
5146   BI tmp_do_op;
5147   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), -1, FLD (f_GRk), FLD (f_d12), 3, 0);
5148 if (tmp_do_op) {
5149   {
5150     SI opval = frvbf_read_mem_HI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
5151     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
5152     written |= (1 << 5);
5153     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5154   }
5155 }
5156 }
5157
5158   abuf->written = written;
5159   return vpc;
5160 #undef FLD
5161 }
5162
5163 /* nlduhi: nlduhi$pack @($GRi,$d12),$GRk */
5164
5165 static SEM_PC
5166 SEM_FN_NAME (frvbf,nlduhi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5167 {
5168 #define FLD(f) abuf->fields.sfmt_swapi.f
5169   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5170   int UNUSED written = 0;
5171   IADDR UNUSED pc = abuf->addr;
5172   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5173
5174 {
5175   BI tmp_do_op;
5176   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), -1, FLD (f_GRk), FLD (f_d12), 2, 0);
5177 if (tmp_do_op) {
5178   {
5179     SI opval = frvbf_read_mem_UHI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
5180     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
5181     written |= (1 << 5);
5182     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5183   }
5184 }
5185 }
5186
5187   abuf->written = written;
5188   return vpc;
5189 #undef FLD
5190 }
5191
5192 /* nldi: nldi$pack @($GRi,$d12),$GRk */
5193
5194 static SEM_PC
5195 SEM_FN_NAME (frvbf,nldi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5196 {
5197 #define FLD(f) abuf->fields.sfmt_swapi.f
5198   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5199   int UNUSED written = 0;
5200   IADDR UNUSED pc = abuf->addr;
5201   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5202
5203 {
5204   BI tmp_do_op;
5205   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), -1, FLD (f_GRk), FLD (f_d12), 4, 0);
5206 if (tmp_do_op) {
5207   {
5208     SI opval = frvbf_read_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
5209     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
5210     written |= (1 << 5);
5211     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5212   }
5213 }
5214 }
5215
5216   abuf->written = written;
5217   return vpc;
5218 #undef FLD
5219 }
5220
5221 /* nldbfi: nldbfi$pack @($GRi,$d12),$FRintk */
5222
5223 static SEM_PC
5224 SEM_FN_NAME (frvbf,nldbfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5225 {
5226 #define FLD(f) abuf->fields.sfmt_ldbfi.f
5227   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5228   int UNUSED written = 0;
5229   IADDR UNUSED pc = abuf->addr;
5230   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5231
5232 {
5233   BI tmp_do_op;
5234   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), -1, FLD (f_FRk), FLD (f_d12), 0, 1);
5235 if (tmp_do_op) {
5236   {
5237     SI opval = frvbf_read_mem_UQI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
5238     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
5239     written |= (1 << 5);
5240     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
5241   }
5242 }
5243 }
5244
5245   abuf->written = written;
5246   return vpc;
5247 #undef FLD
5248 }
5249
5250 /* nldhfi: nldhfi$pack @($GRi,$d12),$FRintk */
5251
5252 static SEM_PC
5253 SEM_FN_NAME (frvbf,nldhfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5254 {
5255 #define FLD(f) abuf->fields.sfmt_ldbfi.f
5256   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5257   int UNUSED written = 0;
5258   IADDR UNUSED pc = abuf->addr;
5259   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5260
5261 {
5262   BI tmp_do_op;
5263   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), -1, FLD (f_FRk), FLD (f_d12), 2, 1);
5264 if (tmp_do_op) {
5265   {
5266     SI opval = frvbf_read_mem_UHI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
5267     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
5268     written |= (1 << 5);
5269     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
5270   }
5271 }
5272 }
5273
5274   abuf->written = written;
5275   return vpc;
5276 #undef FLD
5277 }
5278
5279 /* nldfi: nldfi$pack @($GRi,$d12),$FRintk */
5280
5281 static SEM_PC
5282 SEM_FN_NAME (frvbf,nldfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5283 {
5284 #define FLD(f) abuf->fields.sfmt_ldbfi.f
5285   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5286   int UNUSED written = 0;
5287   IADDR UNUSED pc = abuf->addr;
5288   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5289
5290 {
5291   BI tmp_do_op;
5292   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), -1, FLD (f_FRk), FLD (f_d12), 4, 1);
5293 if (tmp_do_op) {
5294   {
5295     SI opval = frvbf_read_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
5296     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
5297     written |= (1 << 5);
5298     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
5299   }
5300 }
5301 }
5302
5303   abuf->written = written;
5304   return vpc;
5305 #undef FLD
5306 }
5307
5308 /* lddi: lddi$pack @($GRi,$d12),$GRdoublek */
5309
5310 static SEM_PC
5311 SEM_FN_NAME (frvbf,lddi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5312 {
5313 #define FLD(f) abuf->fields.sfmt_smuli.f
5314   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5315   int UNUSED written = 0;
5316   IADDR UNUSED pc = abuf->addr;
5317   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5318
5319 {
5320   SI tmp_address;
5321 if (NESI (FLD (f_GRk), 0)) {
5322 {
5323   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
5324   {
5325     DI opval = frvbf_read_mem_DI (current_cpu, pc, tmp_address);
5326     sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
5327     written |= (1 << 4);
5328     TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
5329   }
5330 }
5331 }
5332 }
5333
5334   abuf->written = written;
5335   return vpc;
5336 #undef FLD
5337 }
5338
5339 /* lddfi: lddfi$pack @($GRi,$d12),$FRdoublek */
5340
5341 static SEM_PC
5342 SEM_FN_NAME (frvbf,lddfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5343 {
5344 #define FLD(f) abuf->fields.sfmt_lddfi.f
5345   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5346   int UNUSED written = 0;
5347   IADDR UNUSED pc = abuf->addr;
5348   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5349
5350 {
5351   SI tmp_address;
5352 {
5353   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
5354   {
5355     DF opval = frvbf_read_mem_DF (current_cpu, pc, tmp_address);
5356     sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
5357     TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
5358   }
5359 }
5360 }
5361
5362   return vpc;
5363 #undef FLD
5364 }
5365
5366 /* nlddi: nlddi$pack @($GRi,$d12),$GRdoublek */
5367
5368 static SEM_PC
5369 SEM_FN_NAME (frvbf,nlddi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5370 {
5371 #define FLD(f) abuf->fields.sfmt_smuli.f
5372   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5373   int UNUSED written = 0;
5374   IADDR UNUSED pc = abuf->addr;
5375   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5376
5377 {
5378   SI tmp_address;
5379 {
5380   BI tmp_do_op;
5381   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), -1, FLD (f_GRk), FLD (f_d12), 5, 0);
5382 if (tmp_do_op) {
5383 if (NESI (FLD (f_GRk), 0)) {
5384 {
5385   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
5386   {
5387     DI opval = frvbf_read_mem_DI (current_cpu, pc, tmp_address);
5388     sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
5389     written |= (1 << 5);
5390     TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
5391   }
5392 }
5393 }
5394 }
5395 }
5396 }
5397
5398   abuf->written = written;
5399   return vpc;
5400 #undef FLD
5401 }
5402
5403 /* nlddfi: nlddfi$pack @($GRi,$d12),$FRdoublek */
5404
5405 static SEM_PC
5406 SEM_FN_NAME (frvbf,nlddfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5407 {
5408 #define FLD(f) abuf->fields.sfmt_lddfi.f
5409   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5410   int UNUSED written = 0;
5411   IADDR UNUSED pc = abuf->addr;
5412   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5413
5414 {
5415   SI tmp_address;
5416 {
5417   BI tmp_do_op;
5418   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), -1, FLD (f_FRk), FLD (f_d12), 5, 1);
5419 if (tmp_do_op) {
5420 {
5421   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
5422   {
5423     DF opval = frvbf_read_mem_DF (current_cpu, pc, tmp_address);
5424     sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
5425     written |= (1 << 5);
5426     TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
5427   }
5428 }
5429 }
5430 }
5431 }
5432
5433   abuf->written = written;
5434   return vpc;
5435 #undef FLD
5436 }
5437
5438 /* ldqi: ldqi$pack @($GRi,$d12),$GRk */
5439
5440 static SEM_PC
5441 SEM_FN_NAME (frvbf,ldqi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5442 {
5443 #define FLD(f) abuf->fields.sfmt_stdi.f
5444   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5445   int UNUSED written = 0;
5446   IADDR UNUSED pc = abuf->addr;
5447   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5448
5449 {
5450   SI tmp_address;
5451 {
5452   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
5453 frvbf_load_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
5454 }
5455 }
5456
5457   return vpc;
5458 #undef FLD
5459 }
5460
5461 /* ldqfi: ldqfi$pack @($GRi,$d12),$FRintk */
5462
5463 static SEM_PC
5464 SEM_FN_NAME (frvbf,ldqfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5465 {
5466 #define FLD(f) abuf->fields.sfmt_stdfi.f
5467   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5468   int UNUSED written = 0;
5469   IADDR UNUSED pc = abuf->addr;
5470   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5471
5472 {
5473   SI tmp_address;
5474 {
5475   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
5476 frvbf_load_quad_FRint (current_cpu, pc, tmp_address, FLD (f_FRk));
5477 }
5478 }
5479
5480   return vpc;
5481 #undef FLD
5482 }
5483
5484 /* nldqfi: nldqfi$pack @($GRi,$d12),$FRintk */
5485
5486 static SEM_PC
5487 SEM_FN_NAME (frvbf,nldqfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5488 {
5489 #define FLD(f) abuf->fields.sfmt_stdfi.f
5490   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5491   int UNUSED written = 0;
5492   IADDR UNUSED pc = abuf->addr;
5493   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5494
5495 {
5496   SI tmp_address;
5497 {
5498   BI tmp_do_op;
5499   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), -1, FLD (f_FRk), FLD (f_d12), 6, 1);
5500 if (tmp_do_op) {
5501 {
5502   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
5503 frvbf_load_quad_FRint (current_cpu, pc, tmp_address, FLD (f_FRk));
5504 }
5505 }
5506 }
5507 }
5508
5509   return vpc;
5510 #undef FLD
5511 }
5512
5513 /* stb: stb$pack $GRk,@($GRi,$GRj) */
5514
5515 static SEM_PC
5516 SEM_FN_NAME (frvbf,stb) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5517 {
5518 #define FLD(f) abuf->fields.sfmt_cswap.f
5519   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5520   int UNUSED written = 0;
5521   IADDR UNUSED pc = abuf->addr;
5522   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5523
5524 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)));
5525
5526   return vpc;
5527 #undef FLD
5528 }
5529
5530 /* sth: sth$pack $GRk,@($GRi,$GRj) */
5531
5532 static SEM_PC
5533 SEM_FN_NAME (frvbf,sth) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5534 {
5535 #define FLD(f) abuf->fields.sfmt_cswap.f
5536   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5537   int UNUSED written = 0;
5538   IADDR UNUSED pc = abuf->addr;
5539   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5540
5541 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)));
5542
5543   return vpc;
5544 #undef FLD
5545 }
5546
5547 /* st: st$pack $GRk,@($GRi,$GRj) */
5548
5549 static SEM_PC
5550 SEM_FN_NAME (frvbf,st) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5551 {
5552 #define FLD(f) abuf->fields.sfmt_cswap.f
5553   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5554   int UNUSED written = 0;
5555   IADDR UNUSED pc = abuf->addr;
5556   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5557
5558 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)));
5559
5560   return vpc;
5561 #undef FLD
5562 }
5563
5564 /* stbf: stbf$pack $FRintk,@($GRi,$GRj) */
5565
5566 static SEM_PC
5567 SEM_FN_NAME (frvbf,stbf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5568 {
5569 #define FLD(f) abuf->fields.sfmt_cstbfu.f
5570   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5571   int UNUSED written = 0;
5572   IADDR UNUSED pc = abuf->addr;
5573   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5574
5575 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)));
5576
5577   return vpc;
5578 #undef FLD
5579 }
5580
5581 /* sthf: sthf$pack $FRintk,@($GRi,$GRj) */
5582
5583 static SEM_PC
5584 SEM_FN_NAME (frvbf,sthf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5585 {
5586 #define FLD(f) abuf->fields.sfmt_cstbfu.f
5587   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5588   int UNUSED written = 0;
5589   IADDR UNUSED pc = abuf->addr;
5590   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5591
5592 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)));
5593
5594   return vpc;
5595 #undef FLD
5596 }
5597
5598 /* stf: stf$pack $FRintk,@($GRi,$GRj) */
5599
5600 static SEM_PC
5601 SEM_FN_NAME (frvbf,stf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5602 {
5603 #define FLD(f) abuf->fields.sfmt_cstbfu.f
5604   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5605   int UNUSED written = 0;
5606   IADDR UNUSED pc = abuf->addr;
5607   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5608
5609 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)));
5610
5611   return vpc;
5612 #undef FLD
5613 }
5614
5615 /* stc: stc$pack $CPRk,@($GRi,$GRj) */
5616
5617 static SEM_PC
5618 SEM_FN_NAME (frvbf,stc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5619 {
5620 #define FLD(f) abuf->fields.sfmt_stcu.f
5621   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5622   int UNUSED written = 0;
5623   IADDR UNUSED pc = abuf->addr;
5624   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5625
5626 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)]));
5627
5628   return vpc;
5629 #undef FLD
5630 }
5631
5632 /* std: std$pack $GRdoublek,@($GRi,$GRj) */
5633
5634 static SEM_PC
5635 SEM_FN_NAME (frvbf,std) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5636 {
5637 #define FLD(f) abuf->fields.sfmt_cstdu.f
5638   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5639   int UNUSED written = 0;
5640   IADDR UNUSED pc = abuf->addr;
5641   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5642
5643 {
5644   SI tmp_address;
5645 {
5646   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5647 frvbf_write_mem_DI (current_cpu, pc, tmp_address, GET_H_GR_DOUBLE (FLD (f_GRk)));
5648 }
5649 }
5650
5651   return vpc;
5652 #undef FLD
5653 }
5654
5655 /* stdf: stdf$pack $FRdoublek,@($GRi,$GRj) */
5656
5657 static SEM_PC
5658 SEM_FN_NAME (frvbf,stdf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5659 {
5660 #define FLD(f) abuf->fields.sfmt_cstdfu.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 {
5669   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5670 frvbf_write_mem_DF (current_cpu, pc, tmp_address, GET_H_FR_DOUBLE (FLD (f_FRk)));
5671 }
5672 }
5673
5674   return vpc;
5675 #undef FLD
5676 }
5677
5678 /* stdc: stdc$pack $CPRdoublek,@($GRi,$GRj) */
5679
5680 static SEM_PC
5681 SEM_FN_NAME (frvbf,stdc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5682 {
5683 #define FLD(f) abuf->fields.sfmt_stdcu.f
5684   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5685   int UNUSED written = 0;
5686   IADDR UNUSED pc = abuf->addr;
5687   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5688
5689 {
5690   SI tmp_address;
5691 {
5692   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5693 frvbf_write_mem_DI (current_cpu, pc, tmp_address, GET_H_CPR_DOUBLE (FLD (f_CPRk)));
5694 }
5695 }
5696
5697   return vpc;
5698 #undef FLD
5699 }
5700
5701 /* stq: stq$pack $GRk,@($GRi,$GRj) */
5702
5703 static SEM_PC
5704 SEM_FN_NAME (frvbf,stq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5705 {
5706 #define FLD(f) abuf->fields.sfmt_smulcc.f
5707   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5708   int UNUSED written = 0;
5709   IADDR UNUSED pc = abuf->addr;
5710   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5711
5712 {
5713   SI tmp_address;
5714 {
5715   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5716 frvbf_store_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
5717 }
5718 }
5719
5720   return vpc;
5721 #undef FLD
5722 }
5723
5724 /* stqf: stqf$pack $FRintk,@($GRi,$GRj) */
5725
5726 static SEM_PC
5727 SEM_FN_NAME (frvbf,stqf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5728 {
5729 #define FLD(f) abuf->fields.sfmt_cstdfu.f
5730   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5731   int UNUSED written = 0;
5732   IADDR UNUSED pc = abuf->addr;
5733   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5734
5735 {
5736   SI tmp_address;
5737 {
5738   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5739 frvbf_store_quad_FRint (current_cpu, pc, tmp_address, FLD (f_FRk));
5740 }
5741 }
5742
5743   return vpc;
5744 #undef FLD
5745 }
5746
5747 /* stqc: stqc$pack $CPRk,@($GRi,$GRj) */
5748
5749 static SEM_PC
5750 SEM_FN_NAME (frvbf,stqc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5751 {
5752 #define FLD(f) abuf->fields.sfmt_stdcu.f
5753   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5754   int UNUSED written = 0;
5755   IADDR UNUSED pc = abuf->addr;
5756   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5757
5758 {
5759   SI tmp_address;
5760 {
5761   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5762 frvbf_store_quad_CPR (current_cpu, pc, tmp_address, FLD (f_CPRk));
5763 }
5764 }
5765
5766   return vpc;
5767 #undef FLD
5768 }
5769
5770 /* stbu: stbu$pack $GRk,@($GRi,$GRj) */
5771
5772 static SEM_PC
5773 SEM_FN_NAME (frvbf,stbu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5774 {
5775 #define FLD(f) abuf->fields.sfmt_cstbu.f
5776   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5777   int UNUSED written = 0;
5778   IADDR UNUSED pc = abuf->addr;
5779   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5780
5781 {
5782   USI tmp_address;
5783   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5784 frvbf_write_mem_QI (current_cpu, pc, tmp_address, GET_H_GR (FLD (f_GRk)));
5785   {
5786     SI opval = tmp_address;
5787     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
5788     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5789   }
5790 }
5791
5792   return vpc;
5793 #undef FLD
5794 }
5795
5796 /* sthu: sthu$pack $GRk,@($GRi,$GRj) */
5797
5798 static SEM_PC
5799 SEM_FN_NAME (frvbf,sthu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5800 {
5801 #define FLD(f) abuf->fields.sfmt_cstbu.f
5802   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5803   int UNUSED written = 0;
5804   IADDR UNUSED pc = abuf->addr;
5805   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5806
5807 {
5808   USI tmp_address;
5809   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5810 frvbf_write_mem_HI (current_cpu, pc, tmp_address, GET_H_GR (FLD (f_GRk)));
5811   {
5812     SI opval = tmp_address;
5813     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
5814     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5815   }
5816 }
5817
5818   return vpc;
5819 #undef FLD
5820 }
5821
5822 /* stu: stu$pack $GRk,@($GRi,$GRj) */
5823
5824 static SEM_PC
5825 SEM_FN_NAME (frvbf,stu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5826 {
5827 #define FLD(f) abuf->fields.sfmt_cstbu.f
5828   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5829   int UNUSED written = 0;
5830   IADDR UNUSED pc = abuf->addr;
5831   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5832
5833 {
5834   USI tmp_address;
5835   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5836 frvbf_write_mem_WI (current_cpu, pc, tmp_address, GET_H_GR (FLD (f_GRk)));
5837   {
5838     SI opval = tmp_address;
5839     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
5840     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5841   }
5842 }
5843
5844   return vpc;
5845 #undef FLD
5846 }
5847
5848 /* stbfu: stbfu$pack $FRintk,@($GRi,$GRj) */
5849
5850 static SEM_PC
5851 SEM_FN_NAME (frvbf,stbfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5852 {
5853 #define FLD(f) abuf->fields.sfmt_cstbfu.f
5854   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5855   int UNUSED written = 0;
5856   IADDR UNUSED pc = abuf->addr;
5857   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5858
5859 {
5860   USI tmp_address;
5861   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5862 frvbf_write_mem_QI (current_cpu, pc, tmp_address, GET_H_FR_INT (FLD (f_FRk)));
5863   {
5864     SI opval = tmp_address;
5865     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
5866     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5867   }
5868 }
5869
5870   return vpc;
5871 #undef FLD
5872 }
5873
5874 /* sthfu: sthfu$pack $FRintk,@($GRi,$GRj) */
5875
5876 static SEM_PC
5877 SEM_FN_NAME (frvbf,sthfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5878 {
5879 #define FLD(f) abuf->fields.sfmt_cstbfu.f
5880   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5881   int UNUSED written = 0;
5882   IADDR UNUSED pc = abuf->addr;
5883   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5884
5885 {
5886   USI tmp_address;
5887   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5888 frvbf_write_mem_HI (current_cpu, pc, tmp_address, GET_H_FR_INT (FLD (f_FRk)));
5889   {
5890     SI opval = tmp_address;
5891     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
5892     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5893   }
5894 }
5895
5896   return vpc;
5897 #undef FLD
5898 }
5899
5900 /* stfu: stfu$pack $FRintk,@($GRi,$GRj) */
5901
5902 static SEM_PC
5903 SEM_FN_NAME (frvbf,stfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5904 {
5905 #define FLD(f) abuf->fields.sfmt_cstbfu.f
5906   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5907   int UNUSED written = 0;
5908   IADDR UNUSED pc = abuf->addr;
5909   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5910
5911 {
5912   USI tmp_address;
5913   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5914 frvbf_write_mem_SI (current_cpu, pc, tmp_address, GET_H_FR_INT (FLD (f_FRk)));
5915   {
5916     SI opval = tmp_address;
5917     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
5918     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5919   }
5920 }
5921
5922   return vpc;
5923 #undef FLD
5924 }
5925
5926 /* stcu: stcu$pack $CPRk,@($GRi,$GRj) */
5927
5928 static SEM_PC
5929 SEM_FN_NAME (frvbf,stcu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5930 {
5931 #define FLD(f) abuf->fields.sfmt_stcu.f
5932   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5933   int UNUSED written = 0;
5934   IADDR UNUSED pc = abuf->addr;
5935   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5936
5937 {
5938   USI tmp_address;
5939   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5940 frvbf_write_mem_SI (current_cpu, pc, tmp_address, CPU (h_cpr[FLD (f_CPRk)]));
5941   {
5942     SI opval = tmp_address;
5943     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
5944     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5945   }
5946 }
5947
5948   return vpc;
5949 #undef FLD
5950 }
5951
5952 /* stdu: stdu$pack $GRdoublek,@($GRi,$GRj) */
5953
5954 static SEM_PC
5955 SEM_FN_NAME (frvbf,stdu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5956 {
5957 #define FLD(f) abuf->fields.sfmt_cstdu.f
5958   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5959   int UNUSED written = 0;
5960   IADDR UNUSED pc = abuf->addr;
5961   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5962
5963 {
5964   SI tmp_address;
5965 {
5966   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5967 frvbf_write_mem_DI (current_cpu, pc, tmp_address, GET_H_GR_DOUBLE (FLD (f_GRk)));
5968 }
5969   {
5970     SI opval = tmp_address;
5971     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
5972     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5973   }
5974 }
5975
5976   return vpc;
5977 #undef FLD
5978 }
5979
5980 /* stdfu: stdfu$pack $FRdoublek,@($GRi,$GRj) */
5981
5982 static SEM_PC
5983 SEM_FN_NAME (frvbf,stdfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5984 {
5985 #define FLD(f) abuf->fields.sfmt_cstdfu.f
5986   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5987   int UNUSED written = 0;
5988   IADDR UNUSED pc = abuf->addr;
5989   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5990
5991 {
5992   SI tmp_address;
5993 {
5994   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5995 frvbf_write_mem_DF (current_cpu, pc, tmp_address, GET_H_FR_DOUBLE (FLD (f_FRk)));
5996 }
5997   {
5998     SI opval = tmp_address;
5999     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6000     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6001   }
6002 }
6003
6004   return vpc;
6005 #undef FLD
6006 }
6007
6008 /* stdcu: stdcu$pack $CPRdoublek,@($GRi,$GRj) */
6009
6010 static SEM_PC
6011 SEM_FN_NAME (frvbf,stdcu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6012 {
6013 #define FLD(f) abuf->fields.sfmt_stdcu.f
6014   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6015   int UNUSED written = 0;
6016   IADDR UNUSED pc = abuf->addr;
6017   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6018
6019 {
6020   SI tmp_address;
6021 {
6022   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6023 frvbf_write_mem_DI (current_cpu, pc, tmp_address, GET_H_CPR_DOUBLE (FLD (f_CPRk)));
6024 }
6025   {
6026     SI opval = tmp_address;
6027     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6028     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6029   }
6030 }
6031
6032   return vpc;
6033 #undef FLD
6034 }
6035
6036 /* stqu: stqu$pack $GRk,@($GRi,$GRj) */
6037
6038 static SEM_PC
6039 SEM_FN_NAME (frvbf,stqu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6040 {
6041 #define FLD(f) abuf->fields.sfmt_cstdu.f
6042   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6043   int UNUSED written = 0;
6044   IADDR UNUSED pc = abuf->addr;
6045   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6046
6047 {
6048   SI tmp_address;
6049 {
6050   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6051 frvbf_store_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
6052 }
6053   {
6054     SI opval = tmp_address;
6055     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6056     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6057   }
6058 }
6059
6060   return vpc;
6061 #undef FLD
6062 }
6063
6064 /* stqfu: stqfu$pack $FRintk,@($GRi,$GRj) */
6065
6066 static SEM_PC
6067 SEM_FN_NAME (frvbf,stqfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6068 {
6069 #define FLD(f) abuf->fields.sfmt_cstdfu.f
6070   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6071   int UNUSED written = 0;
6072   IADDR UNUSED pc = abuf->addr;
6073   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6074
6075 {
6076   SI tmp_address;
6077 {
6078   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6079 frvbf_store_quad_FRint (current_cpu, pc, tmp_address, FLD (f_FRk));
6080 }
6081   {
6082     SI opval = tmp_address;
6083     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6084     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6085   }
6086 }
6087
6088   return vpc;
6089 #undef FLD
6090 }
6091
6092 /* stqcu: stqcu$pack $CPRk,@($GRi,$GRj) */
6093
6094 static SEM_PC
6095 SEM_FN_NAME (frvbf,stqcu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6096 {
6097 #define FLD(f) abuf->fields.sfmt_stdcu.f
6098   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6099   int UNUSED written = 0;
6100   IADDR UNUSED pc = abuf->addr;
6101   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6102
6103 {
6104   SI tmp_address;
6105 {
6106   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6107 frvbf_store_quad_CPR (current_cpu, pc, tmp_address, FLD (f_CPRk));
6108 }
6109   {
6110     SI opval = tmp_address;
6111     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6112     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6113   }
6114 }
6115
6116   return vpc;
6117 #undef FLD
6118 }
6119
6120 /* cldsb: cldsb$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6121
6122 static SEM_PC
6123 SEM_FN_NAME (frvbf,cldsb) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6124 {
6125 #define FLD(f) abuf->fields.sfmt_cswap.f
6126   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6127   int UNUSED written = 0;
6128   IADDR UNUSED pc = abuf->addr;
6129   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6130
6131 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6132   {
6133     SI opval = frvbf_read_mem_QI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
6134     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
6135     written |= (1 << 5);
6136     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6137   }
6138 }
6139
6140   abuf->written = written;
6141   return vpc;
6142 #undef FLD
6143 }
6144
6145 /* cldub: cldub$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6146
6147 static SEM_PC
6148 SEM_FN_NAME (frvbf,cldub) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6149 {
6150 #define FLD(f) abuf->fields.sfmt_cswap.f
6151   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6152   int UNUSED written = 0;
6153   IADDR UNUSED pc = abuf->addr;
6154   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6155
6156 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6157   {
6158     SI opval = frvbf_read_mem_UQI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
6159     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
6160     written |= (1 << 5);
6161     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6162   }
6163 }
6164
6165   abuf->written = written;
6166   return vpc;
6167 #undef FLD
6168 }
6169
6170 /* cldsh: cldsh$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6171
6172 static SEM_PC
6173 SEM_FN_NAME (frvbf,cldsh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6174 {
6175 #define FLD(f) abuf->fields.sfmt_cswap.f
6176   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6177   int UNUSED written = 0;
6178   IADDR UNUSED pc = abuf->addr;
6179   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6180
6181 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6182   {
6183     SI opval = frvbf_read_mem_HI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
6184     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
6185     written |= (1 << 5);
6186     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6187   }
6188 }
6189
6190   abuf->written = written;
6191   return vpc;
6192 #undef FLD
6193 }
6194
6195 /* clduh: clduh$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6196
6197 static SEM_PC
6198 SEM_FN_NAME (frvbf,clduh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6199 {
6200 #define FLD(f) abuf->fields.sfmt_cswap.f
6201   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6202   int UNUSED written = 0;
6203   IADDR UNUSED pc = abuf->addr;
6204   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6205
6206 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6207   {
6208     SI opval = frvbf_read_mem_UHI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
6209     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
6210     written |= (1 << 5);
6211     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6212   }
6213 }
6214
6215   abuf->written = written;
6216   return vpc;
6217 #undef FLD
6218 }
6219
6220 /* cld: cld$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6221
6222 static SEM_PC
6223 SEM_FN_NAME (frvbf,cld) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6224 {
6225 #define FLD(f) abuf->fields.sfmt_cswap.f
6226   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6227   int UNUSED written = 0;
6228   IADDR UNUSED pc = abuf->addr;
6229   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6230
6231 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6232   {
6233     SI opval = frvbf_read_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
6234     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
6235     written |= (1 << 5);
6236     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6237   }
6238 }
6239
6240   abuf->written = written;
6241   return vpc;
6242 #undef FLD
6243 }
6244
6245 /* cldbf: cldbf$pack @($GRi,$GRj),$FRintk,$CCi,$cond */
6246
6247 static SEM_PC
6248 SEM_FN_NAME (frvbf,cldbf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6249 {
6250 #define FLD(f) abuf->fields.sfmt_cldbfu.f
6251   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6252   int UNUSED written = 0;
6253   IADDR UNUSED pc = abuf->addr;
6254   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6255
6256 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6257   {
6258     SI opval = frvbf_read_mem_UQI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
6259     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
6260     written |= (1 << 5);
6261     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
6262   }
6263 }
6264
6265   abuf->written = written;
6266   return vpc;
6267 #undef FLD
6268 }
6269
6270 /* cldhf: cldhf$pack @($GRi,$GRj),$FRintk,$CCi,$cond */
6271
6272 static SEM_PC
6273 SEM_FN_NAME (frvbf,cldhf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6274 {
6275 #define FLD(f) abuf->fields.sfmt_cldbfu.f
6276   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6277   int UNUSED written = 0;
6278   IADDR UNUSED pc = abuf->addr;
6279   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6280
6281 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6282   {
6283     SI opval = frvbf_read_mem_UHI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
6284     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
6285     written |= (1 << 5);
6286     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
6287   }
6288 }
6289
6290   abuf->written = written;
6291   return vpc;
6292 #undef FLD
6293 }
6294
6295 /* cldf: cldf$pack @($GRi,$GRj),$FRintk,$CCi,$cond */
6296
6297 static SEM_PC
6298 SEM_FN_NAME (frvbf,cldf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6299 {
6300 #define FLD(f) abuf->fields.sfmt_cldbfu.f
6301   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6302   int UNUSED written = 0;
6303   IADDR UNUSED pc = abuf->addr;
6304   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6305
6306 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6307   {
6308     SI opval = frvbf_read_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
6309     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
6310     written |= (1 << 5);
6311     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
6312   }
6313 }
6314
6315   abuf->written = written;
6316   return vpc;
6317 #undef FLD
6318 }
6319
6320 /* cldd: cldd$pack @($GRi,$GRj),$GRdoublek,$CCi,$cond */
6321
6322 static SEM_PC
6323 SEM_FN_NAME (frvbf,cldd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6324 {
6325 #define FLD(f) abuf->fields.sfmt_clddu.f
6326   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6327   int UNUSED written = 0;
6328   IADDR UNUSED pc = abuf->addr;
6329   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6330
6331 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6332 {
6333   SI tmp_address;
6334 if (NESI (FLD (f_GRk), 0)) {
6335 {
6336   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6337   {
6338     DI opval = frvbf_read_mem_DI (current_cpu, pc, tmp_address);
6339     sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
6340     written |= (1 << 6);
6341     TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
6342   }
6343 }
6344 }
6345 }
6346 }
6347
6348   abuf->written = written;
6349   return vpc;
6350 #undef FLD
6351 }
6352
6353 /* clddf: clddf$pack @($GRi,$GRj),$FRdoublek,$CCi,$cond */
6354
6355 static SEM_PC
6356 SEM_FN_NAME (frvbf,clddf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6357 {
6358 #define FLD(f) abuf->fields.sfmt_clddfu.f
6359   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6360   int UNUSED written = 0;
6361   IADDR UNUSED pc = abuf->addr;
6362   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6363
6364 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6365 {
6366   SI tmp_address;
6367 {
6368   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6369   {
6370     DF opval = frvbf_read_mem_DF (current_cpu, pc, tmp_address);
6371     sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
6372     written |= (1 << 5);
6373     TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
6374   }
6375 }
6376 }
6377 }
6378
6379   abuf->written = written;
6380   return vpc;
6381 #undef FLD
6382 }
6383
6384 /* cldq: cldq$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6385
6386 static SEM_PC
6387 SEM_FN_NAME (frvbf,cldq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6388 {
6389 #define FLD(f) abuf->fields.sfmt_cswap.f
6390   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6391   int UNUSED written = 0;
6392   IADDR UNUSED pc = abuf->addr;
6393   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6394
6395 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6396 {
6397   SI tmp_address;
6398 {
6399   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6400 frvbf_load_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
6401 }
6402 }
6403 }
6404
6405   return vpc;
6406 #undef FLD
6407 }
6408
6409 /* cldsbu: cldsbu$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6410
6411 static SEM_PC
6412 SEM_FN_NAME (frvbf,cldsbu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6413 {
6414 #define FLD(f) abuf->fields.sfmt_cldsbu.f
6415   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6416   int UNUSED written = 0;
6417   IADDR UNUSED pc = abuf->addr;
6418   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6419
6420 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6421 {
6422   SI tmp_address;
6423   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6424   {
6425     SI opval = frvbf_read_mem_QI (current_cpu, pc, tmp_address);
6426     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
6427     written |= (1 << 8);
6428     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6429   }
6430 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
6431   {
6432     SI opval = tmp_address;
6433     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6434     written |= (1 << 7);
6435     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6436   }
6437 }
6438 }
6439 }
6440
6441   abuf->written = written;
6442   return vpc;
6443 #undef FLD
6444 }
6445
6446 /* cldubu: cldubu$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6447
6448 static SEM_PC
6449 SEM_FN_NAME (frvbf,cldubu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6450 {
6451 #define FLD(f) abuf->fields.sfmt_cldsbu.f
6452   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6453   int UNUSED written = 0;
6454   IADDR UNUSED pc = abuf->addr;
6455   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6456
6457 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6458 {
6459   SI tmp_address;
6460   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6461   {
6462     SI opval = frvbf_read_mem_UQI (current_cpu, pc, tmp_address);
6463     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
6464     written |= (1 << 8);
6465     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6466   }
6467 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
6468   {
6469     SI opval = tmp_address;
6470     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6471     written |= (1 << 7);
6472     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6473   }
6474 }
6475 }
6476 }
6477
6478   abuf->written = written;
6479   return vpc;
6480 #undef FLD
6481 }
6482
6483 /* cldshu: cldshu$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6484
6485 static SEM_PC
6486 SEM_FN_NAME (frvbf,cldshu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6487 {
6488 #define FLD(f) abuf->fields.sfmt_cldsbu.f
6489   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6490   int UNUSED written = 0;
6491   IADDR UNUSED pc = abuf->addr;
6492   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6493
6494 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6495 {
6496   SI tmp_address;
6497   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6498   {
6499     SI opval = frvbf_read_mem_HI (current_cpu, pc, tmp_address);
6500     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
6501     written |= (1 << 8);
6502     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6503   }
6504 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
6505   {
6506     SI opval = tmp_address;
6507     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6508     written |= (1 << 7);
6509     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6510   }
6511 }
6512 }
6513 }
6514
6515   abuf->written = written;
6516   return vpc;
6517 #undef FLD
6518 }
6519
6520 /* clduhu: clduhu$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6521
6522 static SEM_PC
6523 SEM_FN_NAME (frvbf,clduhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6524 {
6525 #define FLD(f) abuf->fields.sfmt_cldsbu.f
6526   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6527   int UNUSED written = 0;
6528   IADDR UNUSED pc = abuf->addr;
6529   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6530
6531 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6532 {
6533   SI tmp_address;
6534   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6535   {
6536     SI opval = frvbf_read_mem_UHI (current_cpu, pc, tmp_address);
6537     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
6538     written |= (1 << 8);
6539     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6540   }
6541 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
6542   {
6543     SI opval = tmp_address;
6544     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6545     written |= (1 << 7);
6546     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6547   }
6548 }
6549 }
6550 }
6551
6552   abuf->written = written;
6553   return vpc;
6554 #undef FLD
6555 }
6556
6557 /* cldu: cldu$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6558
6559 static SEM_PC
6560 SEM_FN_NAME (frvbf,cldu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6561 {
6562 #define FLD(f) abuf->fields.sfmt_cldsbu.f
6563   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6564   int UNUSED written = 0;
6565   IADDR UNUSED pc = abuf->addr;
6566   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6567
6568 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6569 {
6570   SI tmp_address;
6571   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6572   {
6573     SI opval = frvbf_read_mem_SI (current_cpu, pc, tmp_address);
6574     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
6575     written |= (1 << 8);
6576     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6577   }
6578 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
6579   {
6580     SI opval = tmp_address;
6581     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6582     written |= (1 << 7);
6583     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6584   }
6585 }
6586 }
6587 }
6588
6589   abuf->written = written;
6590   return vpc;
6591 #undef FLD
6592 }
6593
6594 /* cldbfu: cldbfu$pack @($GRi,$GRj),$FRintk,$CCi,$cond */
6595
6596 static SEM_PC
6597 SEM_FN_NAME (frvbf,cldbfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6598 {
6599 #define FLD(f) abuf->fields.sfmt_cldbfu.f
6600   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6601   int UNUSED written = 0;
6602   IADDR UNUSED pc = abuf->addr;
6603   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6604
6605 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6606 {
6607   SI tmp_address;
6608   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6609   {
6610     SI opval = frvbf_read_mem_UQI (current_cpu, pc, tmp_address);
6611     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
6612     written |= (1 << 5);
6613     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
6614   }
6615   {
6616     SI opval = tmp_address;
6617     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6618     written |= (1 << 6);
6619     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6620   }
6621 }
6622 }
6623
6624   abuf->written = written;
6625   return vpc;
6626 #undef FLD
6627 }
6628
6629 /* cldhfu: cldhfu$pack @($GRi,$GRj),$FRintk,$CCi,$cond */
6630
6631 static SEM_PC
6632 SEM_FN_NAME (frvbf,cldhfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6633 {
6634 #define FLD(f) abuf->fields.sfmt_cldbfu.f
6635   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6636   int UNUSED written = 0;
6637   IADDR UNUSED pc = abuf->addr;
6638   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6639
6640 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6641 {
6642   SI tmp_address;
6643   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6644   {
6645     SI opval = frvbf_read_mem_UHI (current_cpu, pc, tmp_address);
6646     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
6647     written |= (1 << 5);
6648     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
6649   }
6650   {
6651     SI opval = tmp_address;
6652     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6653     written |= (1 << 6);
6654     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6655   }
6656 }
6657 }
6658
6659   abuf->written = written;
6660   return vpc;
6661 #undef FLD
6662 }
6663
6664 /* cldfu: cldfu$pack @($GRi,$GRj),$FRintk,$CCi,$cond */
6665
6666 static SEM_PC
6667 SEM_FN_NAME (frvbf,cldfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6668 {
6669 #define FLD(f) abuf->fields.sfmt_cldbfu.f
6670   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6671   int UNUSED written = 0;
6672   IADDR UNUSED pc = abuf->addr;
6673   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6674
6675 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6676 {
6677   SI tmp_address;
6678   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6679   {
6680     SI opval = frvbf_read_mem_SI (current_cpu, pc, tmp_address);
6681     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
6682     written |= (1 << 5);
6683     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
6684   }
6685   {
6686     SI opval = tmp_address;
6687     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6688     written |= (1 << 6);
6689     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6690   }
6691 }
6692 }
6693
6694   abuf->written = written;
6695   return vpc;
6696 #undef FLD
6697 }
6698
6699 /* clddu: clddu$pack @($GRi,$GRj),$GRdoublek,$CCi,$cond */
6700
6701 static SEM_PC
6702 SEM_FN_NAME (frvbf,clddu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6703 {
6704 #define FLD(f) abuf->fields.sfmt_clddu.f
6705   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6706   int UNUSED written = 0;
6707   IADDR UNUSED pc = abuf->addr;
6708   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6709
6710 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6711 {
6712   SI tmp_address;
6713 if (NESI (FLD (f_GRk), 0)) {
6714 {
6715   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6716   {
6717     DI opval = frvbf_read_mem_DI (current_cpu, pc, tmp_address);
6718     sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
6719     written |= (1 << 7);
6720     TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
6721   }
6722 }
6723 }
6724 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
6725   {
6726     SI opval = tmp_address;
6727     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6728     written |= (1 << 8);
6729     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6730   }
6731 }
6732 }
6733 }
6734
6735   abuf->written = written;
6736   return vpc;
6737 #undef FLD
6738 }
6739
6740 /* clddfu: clddfu$pack @($GRi,$GRj),$FRdoublek,$CCi,$cond */
6741
6742 static SEM_PC
6743 SEM_FN_NAME (frvbf,clddfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6744 {
6745 #define FLD(f) abuf->fields.sfmt_clddfu.f
6746   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6747   int UNUSED written = 0;
6748   IADDR UNUSED pc = abuf->addr;
6749   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6750
6751 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6752 {
6753   SI tmp_address;
6754 {
6755   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6756   {
6757     DF opval = frvbf_read_mem_DF (current_cpu, pc, tmp_address);
6758     sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
6759     written |= (1 << 5);
6760     TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
6761   }
6762 }
6763   {
6764     SI opval = tmp_address;
6765     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6766     written |= (1 << 6);
6767     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6768   }
6769 }
6770 }
6771
6772   abuf->written = written;
6773   return vpc;
6774 #undef FLD
6775 }
6776
6777 /* cldqu: cldqu$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6778
6779 static SEM_PC
6780 SEM_FN_NAME (frvbf,cldqu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6781 {
6782 #define FLD(f) abuf->fields.sfmt_cstdu.f
6783   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6784   int UNUSED written = 0;
6785   IADDR UNUSED pc = abuf->addr;
6786   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6787
6788 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6789 {
6790   SI tmp_address;
6791 {
6792   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6793 frvbf_load_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
6794 }
6795 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
6796   {
6797     SI opval = tmp_address;
6798     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6799     written |= (1 << 7);
6800     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6801   }
6802 }
6803 }
6804 }
6805
6806   abuf->written = written;
6807   return vpc;
6808 #undef FLD
6809 }
6810
6811 /* cstb: cstb$pack $GRk,@($GRi,$GRj),$CCi,$cond */
6812
6813 static SEM_PC
6814 SEM_FN_NAME (frvbf,cstb) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6815 {
6816 #define FLD(f) abuf->fields.sfmt_cswap.f
6817   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6818   int UNUSED written = 0;
6819   IADDR UNUSED pc = abuf->addr;
6820   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6821
6822 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6823 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)));
6824 }
6825
6826   return vpc;
6827 #undef FLD
6828 }
6829
6830 /* csth: csth$pack $GRk,@($GRi,$GRj),$CCi,$cond */
6831
6832 static SEM_PC
6833 SEM_FN_NAME (frvbf,csth) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6834 {
6835 #define FLD(f) abuf->fields.sfmt_cswap.f
6836   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6837   int UNUSED written = 0;
6838   IADDR UNUSED pc = abuf->addr;
6839   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6840
6841 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6842 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)));
6843 }
6844
6845   return vpc;
6846 #undef FLD
6847 }
6848
6849 /* cst: cst$pack $GRk,@($GRi,$GRj),$CCi,$cond */
6850
6851 static SEM_PC
6852 SEM_FN_NAME (frvbf,cst) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6853 {
6854 #define FLD(f) abuf->fields.sfmt_cswap.f
6855   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6856   int UNUSED written = 0;
6857   IADDR UNUSED pc = abuf->addr;
6858   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6859
6860 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6861 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)));
6862 }
6863
6864   return vpc;
6865 #undef FLD
6866 }
6867
6868 /* cstbf: cstbf$pack $FRintk,@($GRi,$GRj),$CCi,$cond */
6869
6870 static SEM_PC
6871 SEM_FN_NAME (frvbf,cstbf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6872 {
6873 #define FLD(f) abuf->fields.sfmt_cstbfu.f
6874   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6875   int UNUSED written = 0;
6876   IADDR UNUSED pc = abuf->addr;
6877   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6878
6879 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6880 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)));
6881 }
6882
6883   return vpc;
6884 #undef FLD
6885 }
6886
6887 /* csthf: csthf$pack $FRintk,@($GRi,$GRj),$CCi,$cond */
6888
6889 static SEM_PC
6890 SEM_FN_NAME (frvbf,csthf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6891 {
6892 #define FLD(f) abuf->fields.sfmt_cstbfu.f
6893   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6894   int UNUSED written = 0;
6895   IADDR UNUSED pc = abuf->addr;
6896   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6897
6898 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6899 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)));
6900 }
6901
6902   return vpc;
6903 #undef FLD
6904 }
6905
6906 /* cstf: cstf$pack $FRintk,@($GRi,$GRj),$CCi,$cond */
6907
6908 static SEM_PC
6909 SEM_FN_NAME (frvbf,cstf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6910 {
6911 #define FLD(f) abuf->fields.sfmt_cstbfu.f
6912   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6913   int UNUSED written = 0;
6914   IADDR UNUSED pc = abuf->addr;
6915   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6916
6917 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6918 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)));
6919 }
6920
6921   return vpc;
6922 #undef FLD
6923 }
6924
6925 /* cstd: cstd$pack $GRdoublek,@($GRi,$GRj),$CCi,$cond */
6926
6927 static SEM_PC
6928 SEM_FN_NAME (frvbf,cstd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6929 {
6930 #define FLD(f) abuf->fields.sfmt_cstdu.f
6931   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6932   int UNUSED written = 0;
6933   IADDR UNUSED pc = abuf->addr;
6934   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6935
6936 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6937 {
6938   SI tmp_address;
6939 {
6940   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6941 frvbf_write_mem_DI (current_cpu, pc, tmp_address, GET_H_GR_DOUBLE (FLD (f_GRk)));
6942 }
6943 }
6944 }
6945
6946   return vpc;
6947 #undef FLD
6948 }
6949
6950 /* cstdf: cstdf$pack $FRdoublek,@($GRi,$GRj),$CCi,$cond */
6951
6952 static SEM_PC
6953 SEM_FN_NAME (frvbf,cstdf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6954 {
6955 #define FLD(f) abuf->fields.sfmt_cstdfu.f
6956   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6957   int UNUSED written = 0;
6958   IADDR UNUSED pc = abuf->addr;
6959   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6960
6961 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6962 {
6963   SI tmp_address;
6964 {
6965   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6966 frvbf_write_mem_DF (current_cpu, pc, tmp_address, GET_H_FR_DOUBLE (FLD (f_FRk)));
6967 }
6968 }
6969 }
6970
6971   return vpc;
6972 #undef FLD
6973 }
6974
6975 /* cstq: cstq$pack $GRk,@($GRi,$GRj),$CCi,$cond */
6976
6977 static SEM_PC
6978 SEM_FN_NAME (frvbf,cstq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6979 {
6980 #define FLD(f) abuf->fields.sfmt_cswap.f
6981   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6982   int UNUSED written = 0;
6983   IADDR UNUSED pc = abuf->addr;
6984   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6985
6986 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6987 {
6988   SI tmp_address;
6989 {
6990   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6991 frvbf_store_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
6992 }
6993 }
6994 }
6995
6996   return vpc;
6997 #undef FLD
6998 }
6999
7000 /* cstbu: cstbu$pack $GRk,@($GRi,$GRj),$CCi,$cond */
7001
7002 static SEM_PC
7003 SEM_FN_NAME (frvbf,cstbu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7004 {
7005 #define FLD(f) abuf->fields.sfmt_cstbu.f
7006   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7007   int UNUSED written = 0;
7008   IADDR UNUSED pc = abuf->addr;
7009   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7010
7011 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7012 {
7013   SI tmp_address;
7014   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7015 frvbf_write_mem_QI (current_cpu, pc, tmp_address, GET_H_GR (FLD (f_GRk)));
7016   {
7017     SI opval = tmp_address;
7018     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
7019     written |= (1 << 6);
7020     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7021   }
7022 }
7023 }
7024
7025   abuf->written = written;
7026   return vpc;
7027 #undef FLD
7028 }
7029
7030 /* csthu: csthu$pack $GRk,@($GRi,$GRj),$CCi,$cond */
7031
7032 static SEM_PC
7033 SEM_FN_NAME (frvbf,csthu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7034 {
7035 #define FLD(f) abuf->fields.sfmt_cstbu.f
7036   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7037   int UNUSED written = 0;
7038   IADDR UNUSED pc = abuf->addr;
7039   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7040
7041 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7042 {
7043   SI tmp_address;
7044   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7045 frvbf_write_mem_HI (current_cpu, pc, tmp_address, GET_H_GR (FLD (f_GRk)));
7046   {
7047     SI opval = tmp_address;
7048     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
7049     written |= (1 << 6);
7050     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7051   }
7052 }
7053 }
7054
7055   abuf->written = written;
7056   return vpc;
7057 #undef FLD
7058 }
7059
7060 /* cstu: cstu$pack $GRk,@($GRi,$GRj),$CCi,$cond */
7061
7062 static SEM_PC
7063 SEM_FN_NAME (frvbf,cstu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7064 {
7065 #define FLD(f) abuf->fields.sfmt_cstbu.f
7066   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7067   int UNUSED written = 0;
7068   IADDR UNUSED pc = abuf->addr;
7069   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7070
7071 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7072 {
7073   SI tmp_address;
7074   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7075 frvbf_write_mem_SI (current_cpu, pc, tmp_address, GET_H_GR (FLD (f_GRk)));
7076   {
7077     SI opval = tmp_address;
7078     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
7079     written |= (1 << 6);
7080     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7081   }
7082 }
7083 }
7084
7085   abuf->written = written;
7086   return vpc;
7087 #undef FLD
7088 }
7089
7090 /* cstbfu: cstbfu$pack $FRintk,@($GRi,$GRj),$CCi,$cond */
7091
7092 static SEM_PC
7093 SEM_FN_NAME (frvbf,cstbfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7094 {
7095 #define FLD(f) abuf->fields.sfmt_cstbfu.f
7096   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7097   int UNUSED written = 0;
7098   IADDR UNUSED pc = abuf->addr;
7099   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7100
7101 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7102 {
7103   SI tmp_address;
7104   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7105 frvbf_write_mem_QI (current_cpu, pc, tmp_address, GET_H_FR_INT (FLD (f_FRk)));
7106   {
7107     SI opval = tmp_address;
7108     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
7109     written |= (1 << 6);
7110     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7111   }
7112 }
7113 }
7114
7115   abuf->written = written;
7116   return vpc;
7117 #undef FLD
7118 }
7119
7120 /* csthfu: csthfu$pack $FRintk,@($GRi,$GRj),$CCi,$cond */
7121
7122 static SEM_PC
7123 SEM_FN_NAME (frvbf,csthfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7124 {
7125 #define FLD(f) abuf->fields.sfmt_cstbfu.f
7126   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7127   int UNUSED written = 0;
7128   IADDR UNUSED pc = abuf->addr;
7129   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7130
7131 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7132 {
7133   SI tmp_address;
7134   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7135 frvbf_write_mem_HI (current_cpu, pc, tmp_address, GET_H_FR_INT (FLD (f_FRk)));
7136   {
7137     SI opval = tmp_address;
7138     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
7139     written |= (1 << 6);
7140     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7141   }
7142 }
7143 }
7144
7145   abuf->written = written;
7146   return vpc;
7147 #undef FLD
7148 }
7149
7150 /* cstfu: cstfu$pack $FRintk,@($GRi,$GRj),$CCi,$cond */
7151
7152 static SEM_PC
7153 SEM_FN_NAME (frvbf,cstfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7154 {
7155 #define FLD(f) abuf->fields.sfmt_cstbfu.f
7156   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7157   int UNUSED written = 0;
7158   IADDR UNUSED pc = abuf->addr;
7159   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7160
7161 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7162 {
7163   SI tmp_address;
7164   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7165 frvbf_write_mem_SI (current_cpu, pc, tmp_address, GET_H_FR_INT (FLD (f_FRk)));
7166   {
7167     SI opval = tmp_address;
7168     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
7169     written |= (1 << 6);
7170     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7171   }
7172 }
7173 }
7174
7175   abuf->written = written;
7176   return vpc;
7177 #undef FLD
7178 }
7179
7180 /* cstdu: cstdu$pack $GRdoublek,@($GRi,$GRj),$CCi,$cond */
7181
7182 static SEM_PC
7183 SEM_FN_NAME (frvbf,cstdu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7184 {
7185 #define FLD(f) abuf->fields.sfmt_cstdu.f
7186   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7187   int UNUSED written = 0;
7188   IADDR UNUSED pc = abuf->addr;
7189   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7190
7191 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7192 {
7193   SI tmp_address;
7194 {
7195   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7196 frvbf_write_mem_DI (current_cpu, pc, tmp_address, GET_H_GR_DOUBLE (FLD (f_GRk)));
7197 }
7198   {
7199     SI opval = tmp_address;
7200     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
7201     written |= (1 << 6);
7202     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7203   }
7204 }
7205 }
7206
7207   abuf->written = written;
7208   return vpc;
7209 #undef FLD
7210 }
7211
7212 /* cstdfu: cstdfu$pack $FRdoublek,@($GRi,$GRj),$CCi,$cond */
7213
7214 static SEM_PC
7215 SEM_FN_NAME (frvbf,cstdfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7216 {
7217 #define FLD(f) abuf->fields.sfmt_cstdfu.f
7218   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7219   int UNUSED written = 0;
7220   IADDR UNUSED pc = abuf->addr;
7221   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7222
7223 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7224 {
7225   SI tmp_address;
7226 {
7227   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7228 frvbf_write_mem_DF (current_cpu, pc, tmp_address, GET_H_FR_DOUBLE (FLD (f_FRk)));
7229 }
7230   {
7231     SI opval = tmp_address;
7232     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
7233     written |= (1 << 6);
7234     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7235   }
7236 }
7237 }
7238
7239   abuf->written = written;
7240   return vpc;
7241 #undef FLD
7242 }
7243
7244 /* stbi: stbi$pack $GRk,@($GRi,$d12) */
7245
7246 static SEM_PC
7247 SEM_FN_NAME (frvbf,stbi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7248 {
7249 #define FLD(f) abuf->fields.sfmt_swapi.f
7250   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7251   int UNUSED written = 0;
7252   IADDR UNUSED pc = abuf->addr;
7253   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7254
7255 frvbf_write_mem_QI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)), GET_H_GR (FLD (f_GRk)));
7256
7257   return vpc;
7258 #undef FLD
7259 }
7260
7261 /* sthi: sthi$pack $GRk,@($GRi,$d12) */
7262
7263 static SEM_PC
7264 SEM_FN_NAME (frvbf,sthi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7265 {
7266 #define FLD(f) abuf->fields.sfmt_swapi.f
7267   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7268   int UNUSED written = 0;
7269   IADDR UNUSED pc = abuf->addr;
7270   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7271
7272 frvbf_write_mem_HI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)), GET_H_GR (FLD (f_GRk)));
7273
7274   return vpc;
7275 #undef FLD
7276 }
7277
7278 /* sti: sti$pack $GRk,@($GRi,$d12) */
7279
7280 static SEM_PC
7281 SEM_FN_NAME (frvbf,sti) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7282 {
7283 #define FLD(f) abuf->fields.sfmt_swapi.f
7284   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7285   int UNUSED written = 0;
7286   IADDR UNUSED pc = abuf->addr;
7287   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7288
7289 frvbf_write_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)), GET_H_GR (FLD (f_GRk)));
7290
7291   return vpc;
7292 #undef FLD
7293 }
7294
7295 /* stbfi: stbfi$pack $FRintk,@($GRi,$d12) */
7296
7297 static SEM_PC
7298 SEM_FN_NAME (frvbf,stbfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7299 {
7300 #define FLD(f) abuf->fields.sfmt_stbfi.f
7301   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7302   int UNUSED written = 0;
7303   IADDR UNUSED pc = abuf->addr;
7304   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7305
7306 frvbf_write_mem_QI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)), GET_H_FR_INT (FLD (f_FRk)));
7307
7308   return vpc;
7309 #undef FLD
7310 }
7311
7312 /* sthfi: sthfi$pack $FRintk,@($GRi,$d12) */
7313
7314 static SEM_PC
7315 SEM_FN_NAME (frvbf,sthfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7316 {
7317 #define FLD(f) abuf->fields.sfmt_stbfi.f
7318   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7319   int UNUSED written = 0;
7320   IADDR UNUSED pc = abuf->addr;
7321   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7322
7323 frvbf_write_mem_HI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)), GET_H_FR_INT (FLD (f_FRk)));
7324
7325   return vpc;
7326 #undef FLD
7327 }
7328
7329 /* stfi: stfi$pack $FRintk,@($GRi,$d12) */
7330
7331 static SEM_PC
7332 SEM_FN_NAME (frvbf,stfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7333 {
7334 #define FLD(f) abuf->fields.sfmt_stbfi.f
7335   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7336   int UNUSED written = 0;
7337   IADDR UNUSED pc = abuf->addr;
7338   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7339
7340 frvbf_write_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)), GET_H_FR_INT (FLD (f_FRk)));
7341
7342   return vpc;
7343 #undef FLD
7344 }
7345
7346 /* stdi: stdi$pack $GRdoublek,@($GRi,$d12) */
7347
7348 static SEM_PC
7349 SEM_FN_NAME (frvbf,stdi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7350 {
7351 #define FLD(f) abuf->fields.sfmt_stdi.f
7352   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7353   int UNUSED written = 0;
7354   IADDR UNUSED pc = abuf->addr;
7355   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7356
7357 {
7358   SI tmp_address;
7359 {
7360   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
7361 frvbf_write_mem_DI (current_cpu, pc, tmp_address, GET_H_GR_DOUBLE (FLD (f_GRk)));
7362 }
7363 }
7364
7365   return vpc;
7366 #undef FLD
7367 }
7368
7369 /* stdfi: stdfi$pack $FRdoublek,@($GRi,$d12) */
7370
7371 static SEM_PC
7372 SEM_FN_NAME (frvbf,stdfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7373 {
7374 #define FLD(f) abuf->fields.sfmt_stdfi.f
7375   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7376   int UNUSED written = 0;
7377   IADDR UNUSED pc = abuf->addr;
7378   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7379
7380 {
7381   SI tmp_address;
7382 {
7383   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
7384 frvbf_write_mem_DF (current_cpu, pc, tmp_address, GET_H_FR_DOUBLE (FLD (f_FRk)));
7385 }
7386 }
7387
7388   return vpc;
7389 #undef FLD
7390 }
7391
7392 /* stqi: stqi$pack $GRk,@($GRi,$d12) */
7393
7394 static SEM_PC
7395 SEM_FN_NAME (frvbf,stqi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7396 {
7397 #define FLD(f) abuf->fields.sfmt_stdi.f
7398   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7399   int UNUSED written = 0;
7400   IADDR UNUSED pc = abuf->addr;
7401   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7402
7403 {
7404   SI tmp_address;
7405 {
7406   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
7407 frvbf_store_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
7408 }
7409 }
7410
7411   return vpc;
7412 #undef FLD
7413 }
7414
7415 /* stqfi: stqfi$pack $FRintk,@($GRi,$d12) */
7416
7417 static SEM_PC
7418 SEM_FN_NAME (frvbf,stqfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7419 {
7420 #define FLD(f) abuf->fields.sfmt_stdfi.f
7421   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7422   int UNUSED written = 0;
7423   IADDR UNUSED pc = abuf->addr;
7424   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7425
7426 {
7427   SI tmp_address;
7428 {
7429   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
7430 frvbf_store_quad_FRint (current_cpu, pc, tmp_address, FLD (f_FRk));
7431 }
7432 }
7433
7434   return vpc;
7435 #undef FLD
7436 }
7437
7438 /* swap: swap$pack @($GRi,$GRj),$GRk */
7439
7440 static SEM_PC
7441 SEM_FN_NAME (frvbf,swap) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7442 {
7443 #define FLD(f) abuf->fields.sfmt_cswap.f
7444   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7445   int UNUSED written = 0;
7446   IADDR UNUSED pc = abuf->addr;
7447   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7448
7449 {
7450   SI tmp_tmp;
7451   SI tmp_address;
7452   tmp_tmp = GET_H_GR (FLD (f_GRk));
7453   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7454 frvbf_check_swap_address (current_cpu, tmp_address);
7455   {
7456     SI opval = frvbf_read_mem_WI (current_cpu, pc, tmp_address);
7457     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
7458     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7459   }
7460 frvbf_write_mem_WI (current_cpu, pc, tmp_address, tmp_tmp);
7461 }
7462
7463   return vpc;
7464 #undef FLD
7465 }
7466
7467 /* swapi: swapi$pack @($GRi,$d12),$GRk */
7468
7469 static SEM_PC
7470 SEM_FN_NAME (frvbf,swapi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7471 {
7472 #define FLD(f) abuf->fields.sfmt_swapi.f
7473   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7474   int UNUSED written = 0;
7475   IADDR UNUSED pc = abuf->addr;
7476   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7477
7478 {
7479   SI tmp_tmp;
7480   SI tmp_address;
7481   tmp_tmp = GET_H_GR (FLD (f_GRk));
7482   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
7483 frvbf_check_swap_address (current_cpu, tmp_address);
7484   {
7485     SI opval = frvbf_read_mem_WI (current_cpu, pc, tmp_address);
7486     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
7487     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7488   }
7489 frvbf_write_mem_WI (current_cpu, pc, tmp_address, tmp_tmp);
7490 }
7491
7492   return vpc;
7493 #undef FLD
7494 }
7495
7496 /* cswap: cswap$pack @($GRi,$GRj),$GRk,$CCi,$cond */
7497
7498 static SEM_PC
7499 SEM_FN_NAME (frvbf,cswap) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7500 {
7501 #define FLD(f) abuf->fields.sfmt_cswap.f
7502   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7503   int UNUSED written = 0;
7504   IADDR UNUSED pc = abuf->addr;
7505   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7506
7507 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7508 {
7509   SI tmp_tmp;
7510   SI tmp_address;
7511   tmp_tmp = GET_H_GR (FLD (f_GRk));
7512   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7513 frvbf_check_swap_address (current_cpu, tmp_address);
7514   {
7515     SI opval = frvbf_read_mem_WI (current_cpu, pc, tmp_address);
7516     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
7517     written |= (1 << 6);
7518     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7519   }
7520 frvbf_write_mem_WI (current_cpu, pc, tmp_address, tmp_tmp);
7521 }
7522 }
7523
7524   abuf->written = written;
7525   return vpc;
7526 #undef FLD
7527 }
7528
7529 /* movgf: movgf$pack $GRj,$FRintk */
7530
7531 static SEM_PC
7532 SEM_FN_NAME (frvbf,movgf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7533 {
7534 #define FLD(f) abuf->fields.sfmt_cmovgfd.f
7535   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7536   int UNUSED written = 0;
7537   IADDR UNUSED pc = abuf->addr;
7538   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7539
7540   {
7541     SI opval = GET_H_GR (FLD (f_GRj));
7542     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
7543     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7544   }
7545
7546   return vpc;
7547 #undef FLD
7548 }
7549
7550 /* movfg: movfg$pack $FRintk,$GRj */
7551
7552 static SEM_PC
7553 SEM_FN_NAME (frvbf,movfg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7554 {
7555 #define FLD(f) abuf->fields.sfmt_cmovfgd.f
7556   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7557   int UNUSED written = 0;
7558   IADDR UNUSED pc = abuf->addr;
7559   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7560
7561   {
7562     SI opval = GET_H_FR_INT (FLD (f_FRk));
7563     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRj), opval);
7564     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7565   }
7566
7567   return vpc;
7568 #undef FLD
7569 }
7570
7571 /* movgfd: movgfd$pack $GRj,$FRintk */
7572
7573 static SEM_PC
7574 SEM_FN_NAME (frvbf,movgfd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7575 {
7576 #define FLD(f) abuf->fields.sfmt_cmovgfd.f
7577   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7578   int UNUSED written = 0;
7579   IADDR UNUSED pc = abuf->addr;
7580   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7581
7582 if (EQSI (FLD (f_GRj), 0)) {
7583 {
7584   {
7585     SI opval = 0;
7586     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
7587     written |= (1 << 4);
7588     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7589   }
7590   {
7591     USI opval = 0;
7592     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (1)), opval);
7593     written |= (1 << 5);
7594     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7595   }
7596 }
7597 } else {
7598 {
7599   {
7600     SI opval = GET_H_GR (FLD (f_GRj));
7601     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
7602     written |= (1 << 4);
7603     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7604   }
7605   {
7606     USI opval = GET_H_GR (((FLD (f_GRj)) + (1)));
7607     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (1)), opval);
7608     written |= (1 << 5);
7609     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7610   }
7611 }
7612 }
7613
7614   abuf->written = written;
7615   return vpc;
7616 #undef FLD
7617 }
7618
7619 /* movfgd: movfgd$pack $FRintk,$GRj */
7620
7621 static SEM_PC
7622 SEM_FN_NAME (frvbf,movfgd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7623 {
7624 #define FLD(f) abuf->fields.sfmt_cmovfgd.f
7625   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7626   int UNUSED written = 0;
7627   IADDR UNUSED pc = abuf->addr;
7628   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7629
7630 if (NESI (FLD (f_GRj), 0)) {
7631 {
7632   {
7633     SI opval = GET_H_FR_INT (FLD (f_FRk));
7634     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRj), opval);
7635     written |= (1 << 4);
7636     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7637   }
7638   {
7639     USI opval = GET_H_FR_INT (((FLD (f_FRk)) + (1)));
7640     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, ((FLD (f_GRj)) + (1)), opval);
7641     written |= (1 << 5);
7642     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7643   }
7644 }
7645 }
7646
7647   abuf->written = written;
7648   return vpc;
7649 #undef FLD
7650 }
7651
7652 /* movgfq: movgfq$pack $GRj,$FRintk */
7653
7654 static SEM_PC
7655 SEM_FN_NAME (frvbf,movgfq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7656 {
7657 #define FLD(f) abuf->fields.sfmt_movgfq.f
7658   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7659   int UNUSED written = 0;
7660   IADDR UNUSED pc = abuf->addr;
7661   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7662
7663 if (EQSI (FLD (f_GRj), 0)) {
7664 {
7665   {
7666     SI opval = 0;
7667     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
7668     written |= (1 << 6);
7669     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7670   }
7671   {
7672     USI opval = 0;
7673     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (1)), opval);
7674     written |= (1 << 7);
7675     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7676   }
7677   {
7678     USI opval = 0;
7679     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (2)), opval);
7680     written |= (1 << 8);
7681     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7682   }
7683   {
7684     USI opval = 0;
7685     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (3)), opval);
7686     written |= (1 << 9);
7687     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7688   }
7689 }
7690 } else {
7691 {
7692   {
7693     SI opval = GET_H_GR (FLD (f_GRj));
7694     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
7695     written |= (1 << 6);
7696     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7697   }
7698   {
7699     USI opval = GET_H_GR (((FLD (f_GRj)) + (1)));
7700     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (1)), opval);
7701     written |= (1 << 7);
7702     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7703   }
7704   {
7705     USI opval = GET_H_GR (((FLD (f_GRj)) + (2)));
7706     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (2)), opval);
7707     written |= (1 << 8);
7708     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7709   }
7710   {
7711     USI opval = GET_H_GR (((FLD (f_GRj)) + (3)));
7712     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (3)), opval);
7713     written |= (1 << 9);
7714     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7715   }
7716 }
7717 }
7718
7719   abuf->written = written;
7720   return vpc;
7721 #undef FLD
7722 }
7723
7724 /* movfgq: movfgq$pack $FRintk,$GRj */
7725
7726 static SEM_PC
7727 SEM_FN_NAME (frvbf,movfgq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7728 {
7729 #define FLD(f) abuf->fields.sfmt_movfgq.f
7730   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7731   int UNUSED written = 0;
7732   IADDR UNUSED pc = abuf->addr;
7733   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7734
7735 if (NESI (FLD (f_GRj), 0)) {
7736 {
7737   {
7738     SI opval = GET_H_FR_INT (FLD (f_FRk));
7739     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRj), opval);
7740     written |= (1 << 6);
7741     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7742   }
7743   {
7744     USI opval = GET_H_FR_INT (((FLD (f_FRk)) + (1)));
7745     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, ((FLD (f_GRj)) + (1)), opval);
7746     written |= (1 << 7);
7747     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7748   }
7749   {
7750     USI opval = GET_H_FR_INT (((FLD (f_FRk)) + (2)));
7751     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, ((FLD (f_GRj)) + (2)), opval);
7752     written |= (1 << 8);
7753     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7754   }
7755   {
7756     USI opval = GET_H_FR_INT (((FLD (f_FRk)) + (3)));
7757     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, ((FLD (f_GRj)) + (3)), opval);
7758     written |= (1 << 9);
7759     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7760   }
7761 }
7762 }
7763
7764   abuf->written = written;
7765   return vpc;
7766 #undef FLD
7767 }
7768
7769 /* cmovgf: cmovgf$pack $GRj,$FRintk,$CCi,$cond */
7770
7771 static SEM_PC
7772 SEM_FN_NAME (frvbf,cmovgf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7773 {
7774 #define FLD(f) abuf->fields.sfmt_cmovgfd.f
7775   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7776   int UNUSED written = 0;
7777   IADDR UNUSED pc = abuf->addr;
7778   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7779
7780 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7781   {
7782     SI opval = GET_H_GR (FLD (f_GRj));
7783     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
7784     written |= (1 << 3);
7785     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7786   }
7787 }
7788
7789   abuf->written = written;
7790   return vpc;
7791 #undef FLD
7792 }
7793
7794 /* cmovfg: cmovfg$pack $FRintk,$GRj,$CCi,$cond */
7795
7796 static SEM_PC
7797 SEM_FN_NAME (frvbf,cmovfg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7798 {
7799 #define FLD(f) abuf->fields.sfmt_cmovfgd.f
7800   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7801   int UNUSED written = 0;
7802   IADDR UNUSED pc = abuf->addr;
7803   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7804
7805 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7806   {
7807     SI opval = GET_H_FR_INT (FLD (f_FRk));
7808     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRj), opval);
7809     written |= (1 << 3);
7810     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7811   }
7812 }
7813
7814   abuf->written = written;
7815   return vpc;
7816 #undef FLD
7817 }
7818
7819 /* cmovgfd: cmovgfd$pack $GRj,$FRintk,$CCi,$cond */
7820
7821 static SEM_PC
7822 SEM_FN_NAME (frvbf,cmovgfd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7823 {
7824 #define FLD(f) abuf->fields.sfmt_cmovgfd.f
7825   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7826   int UNUSED written = 0;
7827   IADDR UNUSED pc = abuf->addr;
7828   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7829
7830 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7831 if (EQSI (FLD (f_GRj), 0)) {
7832 {
7833   {
7834     SI opval = 0;
7835     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
7836     written |= (1 << 6);
7837     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7838   }
7839   {
7840     USI opval = 0;
7841     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (1)), opval);
7842     written |= (1 << 7);
7843     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7844   }
7845 }
7846 } else {
7847 {
7848   {
7849     SI opval = GET_H_GR (FLD (f_GRj));
7850     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
7851     written |= (1 << 6);
7852     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7853   }
7854   {
7855     USI opval = GET_H_GR (((FLD (f_GRj)) + (1)));
7856     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (1)), opval);
7857     written |= (1 << 7);
7858     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7859   }
7860 }
7861 }
7862 }
7863
7864   abuf->written = written;
7865   return vpc;
7866 #undef FLD
7867 }
7868
7869 /* cmovfgd: cmovfgd$pack $FRintk,$GRj,$CCi,$cond */
7870
7871 static SEM_PC
7872 SEM_FN_NAME (frvbf,cmovfgd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7873 {
7874 #define FLD(f) abuf->fields.sfmt_cmovfgd.f
7875   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7876   int UNUSED written = 0;
7877   IADDR UNUSED pc = abuf->addr;
7878   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7879
7880 if (ANDIF (NESI (FLD (f_GRj), 0), EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2)))) {
7881 {
7882   {
7883     SI opval = GET_H_FR_INT (FLD (f_FRk));
7884     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRj), opval);
7885     written |= (1 << 6);
7886     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7887   }
7888   {
7889     USI opval = GET_H_FR_INT (((FLD (f_FRk)) + (1)));
7890     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, ((FLD (f_GRj)) + (1)), opval);
7891     written |= (1 << 7);
7892     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7893   }
7894 }
7895 }
7896
7897   abuf->written = written;
7898   return vpc;
7899 #undef FLD
7900 }
7901
7902 /* movgs: movgs$pack $GRj,$spr */
7903
7904 static SEM_PC
7905 SEM_FN_NAME (frvbf,movgs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7906 {
7907 #define FLD(f) abuf->fields.sfmt_movgs.f
7908   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7909   int UNUSED written = 0;
7910   IADDR UNUSED pc = abuf->addr;
7911   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7912
7913   {
7914     USI opval = GET_H_GR (FLD (f_GRj));
7915     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, FLD (f_spr), opval);
7916     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
7917   }
7918
7919   return vpc;
7920 #undef FLD
7921 }
7922
7923 /* movsg: movsg$pack $spr,$GRj */
7924
7925 static SEM_PC
7926 SEM_FN_NAME (frvbf,movsg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7927 {
7928 #define FLD(f) abuf->fields.sfmt_movsg.f
7929   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7930   int UNUSED written = 0;
7931   IADDR UNUSED pc = abuf->addr;
7932   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7933
7934   {
7935     SI opval = GET_H_SPR (FLD (f_spr));
7936     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRj), opval);
7937     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7938   }
7939
7940   return vpc;
7941 #undef FLD
7942 }
7943
7944 /* bra: bra$pack $hint_taken$label16 */
7945
7946 static SEM_PC
7947 SEM_FN_NAME (frvbf,bra) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7948 {
7949 #define FLD(f) abuf->fields.sfmt_fbne.f
7950   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7951   int UNUSED written = 0;
7952   IADDR UNUSED pc = abuf->addr;
7953   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7954
7955 {
7956 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
7957   {
7958     USI opval = FLD (i_label16);
7959     sim_queue_pc_write (current_cpu, opval);
7960     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
7961   }
7962 }
7963
7964   return vpc;
7965 #undef FLD
7966 }
7967
7968 /* bno: bno$pack$hint_not_taken */
7969
7970 static SEM_PC
7971 SEM_FN_NAME (frvbf,bno) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7972 {
7973 #define FLD(f) abuf->fields.sfmt_fbne.f
7974   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7975   int UNUSED written = 0;
7976   IADDR UNUSED pc = abuf->addr;
7977   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7978
7979 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
7980
7981   return vpc;
7982 #undef FLD
7983 }
7984
7985 /* beq: beq$pack $ICCi_2,$hint,$label16 */
7986
7987 static SEM_PC
7988 SEM_FN_NAME (frvbf,beq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7989 {
7990 #define FLD(f) abuf->fields.sfmt_beq.f
7991   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7992   int UNUSED written = 0;
7993   IADDR UNUSED pc = abuf->addr;
7994   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7995
7996 {
7997 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
7998 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2))) {
7999   {
8000     USI opval = FLD (i_label16);
8001     sim_queue_pc_write (current_cpu, opval);
8002     written |= (1 << 3);
8003     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8004   }
8005 }
8006 }
8007
8008   abuf->written = written;
8009   return vpc;
8010 #undef FLD
8011 }
8012
8013 /* bne: bne$pack $ICCi_2,$hint,$label16 */
8014
8015 static SEM_PC
8016 SEM_FN_NAME (frvbf,bne) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8017 {
8018 #define FLD(f) abuf->fields.sfmt_beq.f
8019   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8020   int UNUSED written = 0;
8021   IADDR UNUSED pc = abuf->addr;
8022   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8023
8024 {
8025 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8026 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)))) {
8027   {
8028     USI opval = FLD (i_label16);
8029     sim_queue_pc_write (current_cpu, opval);
8030     written |= (1 << 3);
8031     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8032   }
8033 }
8034 }
8035
8036   abuf->written = written;
8037   return vpc;
8038 #undef FLD
8039 }
8040
8041 /* ble: ble$pack $ICCi_2,$hint,$label16 */
8042
8043 static SEM_PC
8044 SEM_FN_NAME (frvbf,ble) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8045 {
8046 #define FLD(f) abuf->fields.sfmt_beq.f
8047   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8048   int UNUSED written = 0;
8049   IADDR UNUSED pc = abuf->addr;
8050   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8051
8052 {
8053 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8054 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))))) {
8055   {
8056     USI opval = FLD (i_label16);
8057     sim_queue_pc_write (current_cpu, opval);
8058     written |= (1 << 3);
8059     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8060   }
8061 }
8062 }
8063
8064   abuf->written = written;
8065   return vpc;
8066 #undef FLD
8067 }
8068
8069 /* bgt: bgt$pack $ICCi_2,$hint,$label16 */
8070
8071 static SEM_PC
8072 SEM_FN_NAME (frvbf,bgt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8073 {
8074 #define FLD(f) abuf->fields.sfmt_beq.f
8075   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8076   int UNUSED written = 0;
8077   IADDR UNUSED pc = abuf->addr;
8078   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8079
8080 {
8081 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8082 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)))))) {
8083   {
8084     USI opval = FLD (i_label16);
8085     sim_queue_pc_write (current_cpu, opval);
8086     written |= (1 << 3);
8087     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8088   }
8089 }
8090 }
8091
8092   abuf->written = written;
8093   return vpc;
8094 #undef FLD
8095 }
8096
8097 /* blt: blt$pack $ICCi_2,$hint,$label16 */
8098
8099 static SEM_PC
8100 SEM_FN_NAME (frvbf,blt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8101 {
8102 #define FLD(f) abuf->fields.sfmt_beq.f
8103   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8104   int UNUSED written = 0;
8105   IADDR UNUSED pc = abuf->addr;
8106   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8107
8108 {
8109 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8110 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)))) {
8111   {
8112     USI opval = FLD (i_label16);
8113     sim_queue_pc_write (current_cpu, opval);
8114     written |= (1 << 3);
8115     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8116   }
8117 }
8118 }
8119
8120   abuf->written = written;
8121   return vpc;
8122 #undef FLD
8123 }
8124
8125 /* bge: bge$pack $ICCi_2,$hint,$label16 */
8126
8127 static SEM_PC
8128 SEM_FN_NAME (frvbf,bge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8129 {
8130 #define FLD(f) abuf->fields.sfmt_beq.f
8131   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8132   int UNUSED written = 0;
8133   IADDR UNUSED pc = abuf->addr;
8134   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8135
8136 {
8137 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8138 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))))) {
8139   {
8140     USI opval = FLD (i_label16);
8141     sim_queue_pc_write (current_cpu, opval);
8142     written |= (1 << 3);
8143     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8144   }
8145 }
8146 }
8147
8148   abuf->written = written;
8149   return vpc;
8150 #undef FLD
8151 }
8152
8153 /* bls: bls$pack $ICCi_2,$hint,$label16 */
8154
8155 static SEM_PC
8156 SEM_FN_NAME (frvbf,bls) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8157 {
8158 #define FLD(f) abuf->fields.sfmt_beq.f
8159   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8160   int UNUSED written = 0;
8161   IADDR UNUSED pc = abuf->addr;
8162   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8163
8164 {
8165 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8166 if (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)))) {
8167   {
8168     USI opval = FLD (i_label16);
8169     sim_queue_pc_write (current_cpu, opval);
8170     written |= (1 << 3);
8171     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8172   }
8173 }
8174 }
8175
8176   abuf->written = written;
8177   return vpc;
8178 #undef FLD
8179 }
8180
8181 /* bhi: bhi$pack $ICCi_2,$hint,$label16 */
8182
8183 static SEM_PC
8184 SEM_FN_NAME (frvbf,bhi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8185 {
8186 #define FLD(f) abuf->fields.sfmt_beq.f
8187   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8188   int UNUSED written = 0;
8189   IADDR UNUSED pc = abuf->addr;
8190   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8191
8192 {
8193 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8194 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))))) {
8195   {
8196     USI opval = FLD (i_label16);
8197     sim_queue_pc_write (current_cpu, opval);
8198     written |= (1 << 3);
8199     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8200   }
8201 }
8202 }
8203
8204   abuf->written = written;
8205   return vpc;
8206 #undef FLD
8207 }
8208
8209 /* bc: bc$pack $ICCi_2,$hint,$label16 */
8210
8211 static SEM_PC
8212 SEM_FN_NAME (frvbf,bc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8213 {
8214 #define FLD(f) abuf->fields.sfmt_beq.f
8215   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8216   int UNUSED written = 0;
8217   IADDR UNUSED pc = abuf->addr;
8218   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8219
8220 {
8221 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8222 if (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1))) {
8223   {
8224     USI opval = FLD (i_label16);
8225     sim_queue_pc_write (current_cpu, opval);
8226     written |= (1 << 3);
8227     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8228   }
8229 }
8230 }
8231
8232   abuf->written = written;
8233   return vpc;
8234 #undef FLD
8235 }
8236
8237 /* bnc: bnc$pack $ICCi_2,$hint,$label16 */
8238
8239 static SEM_PC
8240 SEM_FN_NAME (frvbf,bnc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8241 {
8242 #define FLD(f) abuf->fields.sfmt_beq.f
8243   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8244   int UNUSED written = 0;
8245   IADDR UNUSED pc = abuf->addr;
8246   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8247
8248 {
8249 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8250 if (NOTBI (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)))) {
8251   {
8252     USI opval = FLD (i_label16);
8253     sim_queue_pc_write (current_cpu, opval);
8254     written |= (1 << 3);
8255     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8256   }
8257 }
8258 }
8259
8260   abuf->written = written;
8261   return vpc;
8262 #undef FLD
8263 }
8264
8265 /* bn: bn$pack $ICCi_2,$hint,$label16 */
8266
8267 static SEM_PC
8268 SEM_FN_NAME (frvbf,bn) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8269 {
8270 #define FLD(f) abuf->fields.sfmt_beq.f
8271   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8272   int UNUSED written = 0;
8273   IADDR UNUSED pc = abuf->addr;
8274   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8275
8276 {
8277 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8278 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3))) {
8279   {
8280     USI opval = FLD (i_label16);
8281     sim_queue_pc_write (current_cpu, opval);
8282     written |= (1 << 3);
8283     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8284   }
8285 }
8286 }
8287
8288   abuf->written = written;
8289   return vpc;
8290 #undef FLD
8291 }
8292
8293 /* bp: bp$pack $ICCi_2,$hint,$label16 */
8294
8295 static SEM_PC
8296 SEM_FN_NAME (frvbf,bp) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8297 {
8298 #define FLD(f) abuf->fields.sfmt_beq.f
8299   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8300   int UNUSED written = 0;
8301   IADDR UNUSED pc = abuf->addr;
8302   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8303
8304 {
8305 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8306 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3)))) {
8307   {
8308     USI opval = FLD (i_label16);
8309     sim_queue_pc_write (current_cpu, opval);
8310     written |= (1 << 3);
8311     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8312   }
8313 }
8314 }
8315
8316   abuf->written = written;
8317   return vpc;
8318 #undef FLD
8319 }
8320
8321 /* bv: bv$pack $ICCi_2,$hint,$label16 */
8322
8323 static SEM_PC
8324 SEM_FN_NAME (frvbf,bv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8325 {
8326 #define FLD(f) abuf->fields.sfmt_beq.f
8327   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8328   int UNUSED written = 0;
8329   IADDR UNUSED pc = abuf->addr;
8330   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8331
8332 {
8333 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8334 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1))) {
8335   {
8336     USI opval = FLD (i_label16);
8337     sim_queue_pc_write (current_cpu, opval);
8338     written |= (1 << 3);
8339     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8340   }
8341 }
8342 }
8343
8344   abuf->written = written;
8345   return vpc;
8346 #undef FLD
8347 }
8348
8349 /* bnv: bnv$pack $ICCi_2,$hint,$label16 */
8350
8351 static SEM_PC
8352 SEM_FN_NAME (frvbf,bnv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8353 {
8354 #define FLD(f) abuf->fields.sfmt_beq.f
8355   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8356   int UNUSED written = 0;
8357   IADDR UNUSED pc = abuf->addr;
8358   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8359
8360 {
8361 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8362 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1)))) {
8363   {
8364     USI opval = FLD (i_label16);
8365     sim_queue_pc_write (current_cpu, opval);
8366     written |= (1 << 3);
8367     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8368   }
8369 }
8370 }
8371
8372   abuf->written = written;
8373   return vpc;
8374 #undef FLD
8375 }
8376
8377 /* fbra: fbra$pack $hint_taken$label16 */
8378
8379 static SEM_PC
8380 SEM_FN_NAME (frvbf,fbra) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8381 {
8382 #define FLD(f) abuf->fields.sfmt_fbne.f
8383   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8384   int UNUSED written = 0;
8385   IADDR UNUSED pc = abuf->addr;
8386   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8387
8388 {
8389 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8390   {
8391     USI opval = FLD (i_label16);
8392     sim_queue_pc_write (current_cpu, opval);
8393     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8394   }
8395 }
8396
8397   return vpc;
8398 #undef FLD
8399 }
8400
8401 /* fbno: fbno$pack$hint_not_taken */
8402
8403 static SEM_PC
8404 SEM_FN_NAME (frvbf,fbno) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8405 {
8406 #define FLD(f) abuf->fields.sfmt_fbne.f
8407   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8408   int UNUSED written = 0;
8409   IADDR UNUSED pc = abuf->addr;
8410   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8411
8412 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8413
8414   return vpc;
8415 #undef FLD
8416 }
8417
8418 /* fbne: fbne$pack $FCCi_2,$hint,$label16 */
8419
8420 static SEM_PC
8421 SEM_FN_NAME (frvbf,fbne) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8422 {
8423 #define FLD(f) abuf->fields.sfmt_fbne.f
8424   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8425   int UNUSED written = 0;
8426   IADDR UNUSED pc = abuf->addr;
8427   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8428
8429 {
8430 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8431 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))))) {
8432   {
8433     USI opval = FLD (i_label16);
8434     sim_queue_pc_write (current_cpu, opval);
8435     written |= (1 << 3);
8436     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8437   }
8438 }
8439 }
8440
8441   abuf->written = written;
8442   return vpc;
8443 #undef FLD
8444 }
8445
8446 /* fbeq: fbeq$pack $FCCi_2,$hint,$label16 */
8447
8448 static SEM_PC
8449 SEM_FN_NAME (frvbf,fbeq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8450 {
8451 #define FLD(f) abuf->fields.sfmt_fbne.f
8452   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8453   int UNUSED written = 0;
8454   IADDR UNUSED pc = abuf->addr;
8455   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8456
8457 {
8458 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8459 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3))) {
8460   {
8461     USI opval = FLD (i_label16);
8462     sim_queue_pc_write (current_cpu, opval);
8463     written |= (1 << 3);
8464     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8465   }
8466 }
8467 }
8468
8469   abuf->written = written;
8470   return vpc;
8471 #undef FLD
8472 }
8473
8474 /* fblg: fblg$pack $FCCi_2,$hint,$label16 */
8475
8476 static SEM_PC
8477 SEM_FN_NAME (frvbf,fblg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8478 {
8479 #define FLD(f) abuf->fields.sfmt_fbne.f
8480   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8481   int UNUSED written = 0;
8482   IADDR UNUSED pc = abuf->addr;
8483   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8484
8485 {
8486 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8487 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)))) {
8488   {
8489     USI opval = FLD (i_label16);
8490     sim_queue_pc_write (current_cpu, opval);
8491     written |= (1 << 3);
8492     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8493   }
8494 }
8495 }
8496
8497   abuf->written = written;
8498   return vpc;
8499 #undef FLD
8500 }
8501
8502 /* fbue: fbue$pack $FCCi_2,$hint,$label16 */
8503
8504 static SEM_PC
8505 SEM_FN_NAME (frvbf,fbue) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8506 {
8507 #define FLD(f) abuf->fields.sfmt_fbne.f
8508   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8509   int UNUSED written = 0;
8510   IADDR UNUSED pc = abuf->addr;
8511   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8512
8513 {
8514 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8515 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
8516   {
8517     USI opval = FLD (i_label16);
8518     sim_queue_pc_write (current_cpu, opval);
8519     written |= (1 << 3);
8520     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8521   }
8522 }
8523 }
8524
8525   abuf->written = written;
8526   return vpc;
8527 #undef FLD
8528 }
8529
8530 /* fbul: fbul$pack $FCCi_2,$hint,$label16 */
8531
8532 static SEM_PC
8533 SEM_FN_NAME (frvbf,fbul) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8534 {
8535 #define FLD(f) abuf->fields.sfmt_fbne.f
8536   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8537   int UNUSED written = 0;
8538   IADDR UNUSED pc = abuf->addr;
8539   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8540
8541 {
8542 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8543 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
8544   {
8545     USI opval = FLD (i_label16);
8546     sim_queue_pc_write (current_cpu, opval);
8547     written |= (1 << 3);
8548     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8549   }
8550 }
8551 }
8552
8553   abuf->written = written;
8554   return vpc;
8555 #undef FLD
8556 }
8557
8558 /* fbge: fbge$pack $FCCi_2,$hint,$label16 */
8559
8560 static SEM_PC
8561 SEM_FN_NAME (frvbf,fbge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8562 {
8563 #define FLD(f) abuf->fields.sfmt_fbne.f
8564   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8565   int UNUSED written = 0;
8566   IADDR UNUSED pc = abuf->addr;
8567   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8568
8569 {
8570 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8571 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)))) {
8572   {
8573     USI opval = FLD (i_label16);
8574     sim_queue_pc_write (current_cpu, opval);
8575     written |= (1 << 3);
8576     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8577   }
8578 }
8579 }
8580
8581   abuf->written = written;
8582   return vpc;
8583 #undef FLD
8584 }
8585
8586 /* fblt: fblt$pack $FCCi_2,$hint,$label16 */
8587
8588 static SEM_PC
8589 SEM_FN_NAME (frvbf,fblt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8590 {
8591 #define FLD(f) abuf->fields.sfmt_fbne.f
8592   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8593   int UNUSED written = 0;
8594   IADDR UNUSED pc = abuf->addr;
8595   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8596
8597 {
8598 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8599 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2))) {
8600   {
8601     USI opval = FLD (i_label16);
8602     sim_queue_pc_write (current_cpu, opval);
8603     written |= (1 << 3);
8604     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8605   }
8606 }
8607 }
8608
8609   abuf->written = written;
8610   return vpc;
8611 #undef FLD
8612 }
8613
8614 /* fbuge: fbuge$pack $FCCi_2,$hint,$label16 */
8615
8616 static SEM_PC
8617 SEM_FN_NAME (frvbf,fbuge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8618 {
8619 #define FLD(f) abuf->fields.sfmt_fbne.f
8620   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8621   int UNUSED written = 0;
8622   IADDR UNUSED pc = abuf->addr;
8623   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8624
8625 {
8626 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8627 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))))) {
8628   {
8629     USI opval = FLD (i_label16);
8630     sim_queue_pc_write (current_cpu, opval);
8631     written |= (1 << 3);
8632     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8633   }
8634 }
8635 }
8636
8637   abuf->written = written;
8638   return vpc;
8639 #undef FLD
8640 }
8641
8642 /* fbug: fbug$pack $FCCi_2,$hint,$label16 */
8643
8644 static SEM_PC
8645 SEM_FN_NAME (frvbf,fbug) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8646 {
8647 #define FLD(f) abuf->fields.sfmt_fbne.f
8648   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8649   int UNUSED written = 0;
8650   IADDR UNUSED pc = abuf->addr;
8651   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8652
8653 {
8654 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8655 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
8656   {
8657     USI opval = FLD (i_label16);
8658     sim_queue_pc_write (current_cpu, opval);
8659     written |= (1 << 3);
8660     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8661   }
8662 }
8663 }
8664
8665   abuf->written = written;
8666   return vpc;
8667 #undef FLD
8668 }
8669
8670 /* fble: fble$pack $FCCi_2,$hint,$label16 */
8671
8672 static SEM_PC
8673 SEM_FN_NAME (frvbf,fble) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8674 {
8675 #define FLD(f) abuf->fields.sfmt_fbne.f
8676   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8677   int UNUSED written = 0;
8678   IADDR UNUSED pc = abuf->addr;
8679   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8680
8681 {
8682 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8683 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)))) {
8684   {
8685     USI opval = FLD (i_label16);
8686     sim_queue_pc_write (current_cpu, opval);
8687     written |= (1 << 3);
8688     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8689   }
8690 }
8691 }
8692
8693   abuf->written = written;
8694   return vpc;
8695 #undef FLD
8696 }
8697
8698 /* fbgt: fbgt$pack $FCCi_2,$hint,$label16 */
8699
8700 static SEM_PC
8701 SEM_FN_NAME (frvbf,fbgt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8702 {
8703 #define FLD(f) abuf->fields.sfmt_fbne.f
8704   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8705   int UNUSED written = 0;
8706   IADDR UNUSED pc = abuf->addr;
8707   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8708
8709 {
8710 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8711 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1))) {
8712   {
8713     USI opval = FLD (i_label16);
8714     sim_queue_pc_write (current_cpu, opval);
8715     written |= (1 << 3);
8716     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8717   }
8718 }
8719 }
8720
8721   abuf->written = written;
8722   return vpc;
8723 #undef FLD
8724 }
8725
8726 /* fbule: fbule$pack $FCCi_2,$hint,$label16 */
8727
8728 static SEM_PC
8729 SEM_FN_NAME (frvbf,fbule) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8730 {
8731 #define FLD(f) abuf->fields.sfmt_fbne.f
8732   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8733   int UNUSED written = 0;
8734   IADDR UNUSED pc = abuf->addr;
8735   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8736
8737 {
8738 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8739 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))))) {
8740   {
8741     USI opval = FLD (i_label16);
8742     sim_queue_pc_write (current_cpu, opval);
8743     written |= (1 << 3);
8744     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8745   }
8746 }
8747 }
8748
8749   abuf->written = written;
8750   return vpc;
8751 #undef FLD
8752 }
8753
8754 /* fbu: fbu$pack $FCCi_2,$hint,$label16 */
8755
8756 static SEM_PC
8757 SEM_FN_NAME (frvbf,fbu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8758 {
8759 #define FLD(f) abuf->fields.sfmt_fbne.f
8760   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8761   int UNUSED written = 0;
8762   IADDR UNUSED pc = abuf->addr;
8763   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8764
8765 {
8766 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8767 if (TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1))) {
8768   {
8769     USI opval = FLD (i_label16);
8770     sim_queue_pc_write (current_cpu, opval);
8771     written |= (1 << 3);
8772     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8773   }
8774 }
8775 }
8776
8777   abuf->written = written;
8778   return vpc;
8779 #undef FLD
8780 }
8781
8782 /* fbo: fbo$pack $FCCi_2,$hint,$label16 */
8783
8784 static SEM_PC
8785 SEM_FN_NAME (frvbf,fbo) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8786 {
8787 #define FLD(f) abuf->fields.sfmt_fbne.f
8788   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8789   int UNUSED written = 0;
8790   IADDR UNUSED pc = abuf->addr;
8791   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8792
8793 {
8794 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8795 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))))) {
8796   {
8797     USI opval = FLD (i_label16);
8798     sim_queue_pc_write (current_cpu, opval);
8799     written |= (1 << 3);
8800     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8801   }
8802 }
8803 }
8804
8805   abuf->written = written;
8806   return vpc;
8807 #undef FLD
8808 }
8809
8810 /* bctrlr: bctrlr$pack $ccond,$hint */
8811
8812 static SEM_PC
8813 SEM_FN_NAME (frvbf,bctrlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8814 {
8815 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
8816   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8817   int UNUSED written = 0;
8818   IADDR UNUSED pc = abuf->addr;
8819   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8820
8821 {
8822 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
8823 {
8824   SI tmp_tmp;
8825   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
8826   {
8827     USI opval = tmp_tmp;
8828     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
8829     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
8830   }
8831 if (EQSI (FLD (f_ccond), 0)) {
8832 if (NESI (tmp_tmp, 0)) {
8833   {
8834     USI opval = GET_H_SPR (((UINT) 272));
8835     sim_queue_pc_write (current_cpu, opval);
8836     written |= (1 << 5);
8837     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8838   }
8839 }
8840 } else {
8841 if (EQSI (tmp_tmp, 0)) {
8842   {
8843     USI opval = GET_H_SPR (((UINT) 272));
8844     sim_queue_pc_write (current_cpu, opval);
8845     written |= (1 << 5);
8846     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8847   }
8848 }
8849 }
8850 }
8851 }
8852
8853   abuf->written = written;
8854   return vpc;
8855 #undef FLD
8856 }
8857
8858 /* bralr: bralr$pack$hint_taken */
8859
8860 static SEM_PC
8861 SEM_FN_NAME (frvbf,bralr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8862 {
8863 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
8864   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8865   int UNUSED written = 0;
8866   IADDR UNUSED pc = abuf->addr;
8867   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8868
8869 {
8870 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
8871   {
8872     USI opval = GET_H_SPR (((UINT) 272));
8873     sim_queue_pc_write (current_cpu, opval);
8874     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8875   }
8876 }
8877
8878   return vpc;
8879 #undef FLD
8880 }
8881
8882 /* bnolr: bnolr$pack$hint_not_taken */
8883
8884 static SEM_PC
8885 SEM_FN_NAME (frvbf,bnolr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8886 {
8887 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
8888   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8889   int UNUSED written = 0;
8890   IADDR UNUSED pc = abuf->addr;
8891   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8892
8893 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
8894
8895   return vpc;
8896 #undef FLD
8897 }
8898
8899 /* beqlr: beqlr$pack $ICCi_2,$hint */
8900
8901 static SEM_PC
8902 SEM_FN_NAME (frvbf,beqlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8903 {
8904 #define FLD(f) abuf->fields.sfmt_bceqlr.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, GET_H_SPR (((UINT) 272)), FLD (f_hint));
8912 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2))) {
8913   {
8914     USI opval = GET_H_SPR (((UINT) 272));
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 /* bnelr: bnelr$pack $ICCi_2,$hint */
8928
8929 static SEM_PC
8930 SEM_FN_NAME (frvbf,bnelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8931 {
8932 #define FLD(f) abuf->fields.sfmt_bceqlr.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, GET_H_SPR (((UINT) 272)), FLD (f_hint));
8940 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)))) {
8941   {
8942     USI opval = GET_H_SPR (((UINT) 272));
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 /* blelr: blelr$pack $ICCi_2,$hint */
8956
8957 static SEM_PC
8958 SEM_FN_NAME (frvbf,blelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8959 {
8960 #define FLD(f) abuf->fields.sfmt_bceqlr.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, GET_H_SPR (((UINT) 272)), FLD (f_hint));
8968 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))))) {
8969   {
8970     USI opval = GET_H_SPR (((UINT) 272));
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 /* bgtlr: bgtlr$pack $ICCi_2,$hint */
8984
8985 static SEM_PC
8986 SEM_FN_NAME (frvbf,bgtlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8987 {
8988 #define FLD(f) abuf->fields.sfmt_bceqlr.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, GET_H_SPR (((UINT) 272)), FLD (f_hint));
8996 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)))))) {
8997   {
8998     USI opval = GET_H_SPR (((UINT) 272));
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 /* bltlr: bltlr$pack $ICCi_2,$hint */
9012
9013 static SEM_PC
9014 SEM_FN_NAME (frvbf,bltlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9015 {
9016 #define FLD(f) abuf->fields.sfmt_bceqlr.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, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9024 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)))) {
9025   {
9026     USI opval = GET_H_SPR (((UINT) 272));
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 /* bgelr: bgelr$pack $ICCi_2,$hint */
9040
9041 static SEM_PC
9042 SEM_FN_NAME (frvbf,bgelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9043 {
9044 #define FLD(f) abuf->fields.sfmt_bceqlr.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 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))))) {
9053   {
9054     USI opval = GET_H_SPR (((UINT) 272));
9055     sim_queue_pc_write (current_cpu, opval);
9056     written |= (1 << 3);
9057     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9058   }
9059 }
9060 }
9061
9062   abuf->written = written;
9063   return vpc;
9064 #undef FLD
9065 }
9066
9067 /* blslr: blslr$pack $ICCi_2,$hint */
9068
9069 static SEM_PC
9070 SEM_FN_NAME (frvbf,blslr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9071 {
9072 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9073   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9074   int UNUSED written = 0;
9075   IADDR UNUSED pc = abuf->addr;
9076   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9077
9078 {
9079 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9080 if (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)))) {
9081   {
9082     USI opval = GET_H_SPR (((UINT) 272));
9083     sim_queue_pc_write (current_cpu, opval);
9084     written |= (1 << 3);
9085     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9086   }
9087 }
9088 }
9089
9090   abuf->written = written;
9091   return vpc;
9092 #undef FLD
9093 }
9094
9095 /* bhilr: bhilr$pack $ICCi_2,$hint */
9096
9097 static SEM_PC
9098 SEM_FN_NAME (frvbf,bhilr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9099 {
9100 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9101   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9102   int UNUSED written = 0;
9103   IADDR UNUSED pc = abuf->addr;
9104   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9105
9106 {
9107 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9108 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))))) {
9109   {
9110     USI opval = GET_H_SPR (((UINT) 272));
9111     sim_queue_pc_write (current_cpu, opval);
9112     written |= (1 << 3);
9113     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9114   }
9115 }
9116 }
9117
9118   abuf->written = written;
9119   return vpc;
9120 #undef FLD
9121 }
9122
9123 /* bclr: bclr$pack $ICCi_2,$hint */
9124
9125 static SEM_PC
9126 SEM_FN_NAME (frvbf,bclr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9127 {
9128 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9129   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9130   int UNUSED written = 0;
9131   IADDR UNUSED pc = abuf->addr;
9132   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9133
9134 {
9135 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9136 if (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1))) {
9137   {
9138     USI opval = GET_H_SPR (((UINT) 272));
9139     sim_queue_pc_write (current_cpu, opval);
9140     written |= (1 << 3);
9141     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9142   }
9143 }
9144 }
9145
9146   abuf->written = written;
9147   return vpc;
9148 #undef FLD
9149 }
9150
9151 /* bnclr: bnclr$pack $ICCi_2,$hint */
9152
9153 static SEM_PC
9154 SEM_FN_NAME (frvbf,bnclr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9155 {
9156 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9157   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9158   int UNUSED written = 0;
9159   IADDR UNUSED pc = abuf->addr;
9160   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9161
9162 {
9163 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9164 if (NOTBI (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)))) {
9165   {
9166     USI opval = GET_H_SPR (((UINT) 272));
9167     sim_queue_pc_write (current_cpu, opval);
9168     written |= (1 << 3);
9169     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9170   }
9171 }
9172 }
9173
9174   abuf->written = written;
9175   return vpc;
9176 #undef FLD
9177 }
9178
9179 /* bnlr: bnlr$pack $ICCi_2,$hint */
9180
9181 static SEM_PC
9182 SEM_FN_NAME (frvbf,bnlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9183 {
9184 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9185   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9186   int UNUSED written = 0;
9187   IADDR UNUSED pc = abuf->addr;
9188   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9189
9190 {
9191 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9192 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3))) {
9193   {
9194     USI opval = GET_H_SPR (((UINT) 272));
9195     sim_queue_pc_write (current_cpu, opval);
9196     written |= (1 << 3);
9197     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9198   }
9199 }
9200 }
9201
9202   abuf->written = written;
9203   return vpc;
9204 #undef FLD
9205 }
9206
9207 /* bplr: bplr$pack $ICCi_2,$hint */
9208
9209 static SEM_PC
9210 SEM_FN_NAME (frvbf,bplr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9211 {
9212 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9213   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9214   int UNUSED written = 0;
9215   IADDR UNUSED pc = abuf->addr;
9216   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9217
9218 {
9219 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9220 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3)))) {
9221   {
9222     USI opval = GET_H_SPR (((UINT) 272));
9223     sim_queue_pc_write (current_cpu, opval);
9224     written |= (1 << 3);
9225     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9226   }
9227 }
9228 }
9229
9230   abuf->written = written;
9231   return vpc;
9232 #undef FLD
9233 }
9234
9235 /* bvlr: bvlr$pack $ICCi_2,$hint */
9236
9237 static SEM_PC
9238 SEM_FN_NAME (frvbf,bvlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9239 {
9240 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9241   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9242   int UNUSED written = 0;
9243   IADDR UNUSED pc = abuf->addr;
9244   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9245
9246 {
9247 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9248 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1))) {
9249   {
9250     USI opval = GET_H_SPR (((UINT) 272));
9251     sim_queue_pc_write (current_cpu, opval);
9252     written |= (1 << 3);
9253     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9254   }
9255 }
9256 }
9257
9258   abuf->written = written;
9259   return vpc;
9260 #undef FLD
9261 }
9262
9263 /* bnvlr: bnvlr$pack $ICCi_2,$hint */
9264
9265 static SEM_PC
9266 SEM_FN_NAME (frvbf,bnvlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9267 {
9268 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9269   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9270   int UNUSED written = 0;
9271   IADDR UNUSED pc = abuf->addr;
9272   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9273
9274 {
9275 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9276 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1)))) {
9277   {
9278     USI opval = GET_H_SPR (((UINT) 272));
9279     sim_queue_pc_write (current_cpu, opval);
9280     written |= (1 << 3);
9281     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9282   }
9283 }
9284 }
9285
9286   abuf->written = written;
9287   return vpc;
9288 #undef FLD
9289 }
9290
9291 /* fbralr: fbralr$pack$hint_taken */
9292
9293 static SEM_PC
9294 SEM_FN_NAME (frvbf,fbralr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9295 {
9296 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9297   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9298   int UNUSED written = 0;
9299   IADDR UNUSED pc = abuf->addr;
9300   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9301
9302 {
9303 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9304   {
9305     USI opval = GET_H_SPR (((UINT) 272));
9306     sim_queue_pc_write (current_cpu, opval);
9307     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9308   }
9309 }
9310
9311   return vpc;
9312 #undef FLD
9313 }
9314
9315 /* fbnolr: fbnolr$pack$hint_not_taken */
9316
9317 static SEM_PC
9318 SEM_FN_NAME (frvbf,fbnolr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9319 {
9320 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9321   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9322   int UNUSED written = 0;
9323   IADDR UNUSED pc = abuf->addr;
9324   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9325
9326 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9327
9328   return vpc;
9329 #undef FLD
9330 }
9331
9332 /* fbeqlr: fbeqlr$pack $FCCi_2,$hint */
9333
9334 static SEM_PC
9335 SEM_FN_NAME (frvbf,fbeqlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9336 {
9337 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9338   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9339   int UNUSED written = 0;
9340   IADDR UNUSED pc = abuf->addr;
9341   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9342
9343 {
9344 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9345 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3))) {
9346   {
9347     USI opval = GET_H_SPR (((UINT) 272));
9348     sim_queue_pc_write (current_cpu, opval);
9349     written |= (1 << 3);
9350     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9351   }
9352 }
9353 }
9354
9355   abuf->written = written;
9356   return vpc;
9357 #undef FLD
9358 }
9359
9360 /* fbnelr: fbnelr$pack $FCCi_2,$hint */
9361
9362 static SEM_PC
9363 SEM_FN_NAME (frvbf,fbnelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9364 {
9365 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9366   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9367   int UNUSED written = 0;
9368   IADDR UNUSED pc = abuf->addr;
9369   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9370
9371 {
9372 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9373 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))))) {
9374   {
9375     USI opval = GET_H_SPR (((UINT) 272));
9376     sim_queue_pc_write (current_cpu, opval);
9377     written |= (1 << 3);
9378     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9379   }
9380 }
9381 }
9382
9383   abuf->written = written;
9384   return vpc;
9385 #undef FLD
9386 }
9387
9388 /* fblglr: fblglr$pack $FCCi_2,$hint */
9389
9390 static SEM_PC
9391 SEM_FN_NAME (frvbf,fblglr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9392 {
9393 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9394   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9395   int UNUSED written = 0;
9396   IADDR UNUSED pc = abuf->addr;
9397   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9398
9399 {
9400 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9401 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)))) {
9402   {
9403     USI opval = GET_H_SPR (((UINT) 272));
9404     sim_queue_pc_write (current_cpu, opval);
9405     written |= (1 << 3);
9406     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9407   }
9408 }
9409 }
9410
9411   abuf->written = written;
9412   return vpc;
9413 #undef FLD
9414 }
9415
9416 /* fbuelr: fbuelr$pack $FCCi_2,$hint */
9417
9418 static SEM_PC
9419 SEM_FN_NAME (frvbf,fbuelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9420 {
9421 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9422   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9423   int UNUSED written = 0;
9424   IADDR UNUSED pc = abuf->addr;
9425   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9426
9427 {
9428 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9429 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
9430   {
9431     USI opval = GET_H_SPR (((UINT) 272));
9432     sim_queue_pc_write (current_cpu, opval);
9433     written |= (1 << 3);
9434     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9435   }
9436 }
9437 }
9438
9439   abuf->written = written;
9440   return vpc;
9441 #undef FLD
9442 }
9443
9444 /* fbullr: fbullr$pack $FCCi_2,$hint */
9445
9446 static SEM_PC
9447 SEM_FN_NAME (frvbf,fbullr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9448 {
9449 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9450   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9451   int UNUSED written = 0;
9452   IADDR UNUSED pc = abuf->addr;
9453   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9454
9455 {
9456 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9457 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
9458   {
9459     USI opval = GET_H_SPR (((UINT) 272));
9460     sim_queue_pc_write (current_cpu, opval);
9461     written |= (1 << 3);
9462     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9463   }
9464 }
9465 }
9466
9467   abuf->written = written;
9468   return vpc;
9469 #undef FLD
9470 }
9471
9472 /* fbgelr: fbgelr$pack $FCCi_2,$hint */
9473
9474 static SEM_PC
9475 SEM_FN_NAME (frvbf,fbgelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9476 {
9477 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9478   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9479   int UNUSED written = 0;
9480   IADDR UNUSED pc = abuf->addr;
9481   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9482
9483 {
9484 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9485 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)))) {
9486   {
9487     USI opval = GET_H_SPR (((UINT) 272));
9488     sim_queue_pc_write (current_cpu, opval);
9489     written |= (1 << 3);
9490     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9491   }
9492 }
9493 }
9494
9495   abuf->written = written;
9496   return vpc;
9497 #undef FLD
9498 }
9499
9500 /* fbltlr: fbltlr$pack $FCCi_2,$hint */
9501
9502 static SEM_PC
9503 SEM_FN_NAME (frvbf,fbltlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9504 {
9505 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9506   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9507   int UNUSED written = 0;
9508   IADDR UNUSED pc = abuf->addr;
9509   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9510
9511 {
9512 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9513 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2))) {
9514   {
9515     USI opval = GET_H_SPR (((UINT) 272));
9516     sim_queue_pc_write (current_cpu, opval);
9517     written |= (1 << 3);
9518     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9519   }
9520 }
9521 }
9522
9523   abuf->written = written;
9524   return vpc;
9525 #undef FLD
9526 }
9527
9528 /* fbugelr: fbugelr$pack $FCCi_2,$hint */
9529
9530 static SEM_PC
9531 SEM_FN_NAME (frvbf,fbugelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9532 {
9533 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9534   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9535   int UNUSED written = 0;
9536   IADDR UNUSED pc = abuf->addr;
9537   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9538
9539 {
9540 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9541 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))))) {
9542   {
9543     USI opval = GET_H_SPR (((UINT) 272));
9544     sim_queue_pc_write (current_cpu, opval);
9545     written |= (1 << 3);
9546     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9547   }
9548 }
9549 }
9550
9551   abuf->written = written;
9552   return vpc;
9553 #undef FLD
9554 }
9555
9556 /* fbuglr: fbuglr$pack $FCCi_2,$hint */
9557
9558 static SEM_PC
9559 SEM_FN_NAME (frvbf,fbuglr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9560 {
9561 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9562   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9563   int UNUSED written = 0;
9564   IADDR UNUSED pc = abuf->addr;
9565   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9566
9567 {
9568 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9569 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
9570   {
9571     USI opval = GET_H_SPR (((UINT) 272));
9572     sim_queue_pc_write (current_cpu, opval);
9573     written |= (1 << 3);
9574     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9575   }
9576 }
9577 }
9578
9579   abuf->written = written;
9580   return vpc;
9581 #undef FLD
9582 }
9583
9584 /* fblelr: fblelr$pack $FCCi_2,$hint */
9585
9586 static SEM_PC
9587 SEM_FN_NAME (frvbf,fblelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9588 {
9589 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9590   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9591   int UNUSED written = 0;
9592   IADDR UNUSED pc = abuf->addr;
9593   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9594
9595 {
9596 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9597 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)))) {
9598   {
9599     USI opval = GET_H_SPR (((UINT) 272));
9600     sim_queue_pc_write (current_cpu, opval);
9601     written |= (1 << 3);
9602     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9603   }
9604 }
9605 }
9606
9607   abuf->written = written;
9608   return vpc;
9609 #undef FLD
9610 }
9611
9612 /* fbgtlr: fbgtlr$pack $FCCi_2,$hint */
9613
9614 static SEM_PC
9615 SEM_FN_NAME (frvbf,fbgtlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9616 {
9617 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9618   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9619   int UNUSED written = 0;
9620   IADDR UNUSED pc = abuf->addr;
9621   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9622
9623 {
9624 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9625 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1))) {
9626   {
9627     USI opval = GET_H_SPR (((UINT) 272));
9628     sim_queue_pc_write (current_cpu, opval);
9629     written |= (1 << 3);
9630     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9631   }
9632 }
9633 }
9634
9635   abuf->written = written;
9636   return vpc;
9637 #undef FLD
9638 }
9639
9640 /* fbulelr: fbulelr$pack $FCCi_2,$hint */
9641
9642 static SEM_PC
9643 SEM_FN_NAME (frvbf,fbulelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9644 {
9645 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9646   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9647   int UNUSED written = 0;
9648   IADDR UNUSED pc = abuf->addr;
9649   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9650
9651 {
9652 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9653 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))))) {
9654   {
9655     USI opval = GET_H_SPR (((UINT) 272));
9656     sim_queue_pc_write (current_cpu, opval);
9657     written |= (1 << 3);
9658     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9659   }
9660 }
9661 }
9662
9663   abuf->written = written;
9664   return vpc;
9665 #undef FLD
9666 }
9667
9668 /* fbulr: fbulr$pack $FCCi_2,$hint */
9669
9670 static SEM_PC
9671 SEM_FN_NAME (frvbf,fbulr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9672 {
9673 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9674   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9675   int UNUSED written = 0;
9676   IADDR UNUSED pc = abuf->addr;
9677   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9678
9679 {
9680 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9681 if (TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1))) {
9682   {
9683     USI opval = GET_H_SPR (((UINT) 272));
9684     sim_queue_pc_write (current_cpu, opval);
9685     written |= (1 << 3);
9686     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9687   }
9688 }
9689 }
9690
9691   abuf->written = written;
9692   return vpc;
9693 #undef FLD
9694 }
9695
9696 /* fbolr: fbolr$pack $FCCi_2,$hint */
9697
9698 static SEM_PC
9699 SEM_FN_NAME (frvbf,fbolr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9700 {
9701 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9702   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9703   int UNUSED written = 0;
9704   IADDR UNUSED pc = abuf->addr;
9705   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9706
9707 {
9708 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9709 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))))) {
9710   {
9711     USI opval = GET_H_SPR (((UINT) 272));
9712     sim_queue_pc_write (current_cpu, opval);
9713     written |= (1 << 3);
9714     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9715   }
9716 }
9717 }
9718
9719   abuf->written = written;
9720   return vpc;
9721 #undef FLD
9722 }
9723
9724 /* bcralr: bcralr$pack $ccond$hint_taken */
9725
9726 static SEM_PC
9727 SEM_FN_NAME (frvbf,bcralr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9728 {
9729 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9730   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9731   int UNUSED written = 0;
9732   IADDR UNUSED pc = abuf->addr;
9733   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9734
9735 {
9736 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9737 {
9738   SI tmp_tmp;
9739   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
9740   {
9741     USI opval = tmp_tmp;
9742     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
9743     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
9744   }
9745 if (EQSI (FLD (f_ccond), 0)) {
9746 if (NESI (tmp_tmp, 0)) {
9747   {
9748     USI opval = GET_H_SPR (((UINT) 272));
9749     sim_queue_pc_write (current_cpu, opval);
9750     written |= (1 << 5);
9751     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9752   }
9753 }
9754 } else {
9755 if (EQSI (tmp_tmp, 0)) {
9756   {
9757     USI opval = GET_H_SPR (((UINT) 272));
9758     sim_queue_pc_write (current_cpu, opval);
9759     written |= (1 << 5);
9760     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9761   }
9762 }
9763 }
9764 }
9765 }
9766
9767   abuf->written = written;
9768   return vpc;
9769 #undef FLD
9770 }
9771
9772 /* bcnolr: bcnolr$pack$hint_not_taken */
9773
9774 static SEM_PC
9775 SEM_FN_NAME (frvbf,bcnolr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9776 {
9777 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9778   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9779   int UNUSED written = 0;
9780   IADDR UNUSED pc = abuf->addr;
9781   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9782
9783 {
9784 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9785 {
9786   SI tmp_tmp;
9787   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
9788   {
9789     USI opval = tmp_tmp;
9790     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
9791     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
9792   }
9793 ((void) 0); /*nop*/
9794 }
9795 }
9796
9797   return vpc;
9798 #undef FLD
9799 }
9800
9801 /* bceqlr: bceqlr$pack $ICCi_2,$ccond,$hint */
9802
9803 static SEM_PC
9804 SEM_FN_NAME (frvbf,bceqlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9805 {
9806 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9807   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9808   int UNUSED written = 0;
9809   IADDR UNUSED pc = abuf->addr;
9810   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9811
9812 {
9813 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9814 {
9815   SI tmp_tmp;
9816   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
9817   {
9818     USI opval = tmp_tmp;
9819     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
9820     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
9821   }
9822 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2))) {
9823 if (EQSI (FLD (f_ccond), 0)) {
9824 if (NESI (tmp_tmp, 0)) {
9825   {
9826     USI opval = GET_H_SPR (((UINT) 272));
9827     sim_queue_pc_write (current_cpu, opval);
9828     written |= (1 << 6);
9829     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9830   }
9831 }
9832 } else {
9833 if (EQSI (tmp_tmp, 0)) {
9834   {
9835     USI opval = GET_H_SPR (((UINT) 272));
9836     sim_queue_pc_write (current_cpu, opval);
9837     written |= (1 << 6);
9838     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9839   }
9840 }
9841 }
9842 }
9843 }
9844 }
9845
9846   abuf->written = written;
9847   return vpc;
9848 #undef FLD
9849 }
9850
9851 /* bcnelr: bcnelr$pack $ICCi_2,$ccond,$hint */
9852
9853 static SEM_PC
9854 SEM_FN_NAME (frvbf,bcnelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9855 {
9856 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9857   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9858   int UNUSED written = 0;
9859   IADDR UNUSED pc = abuf->addr;
9860   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9861
9862 {
9863 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9864 {
9865   SI tmp_tmp;
9866   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
9867   {
9868     USI opval = tmp_tmp;
9869     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
9870     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
9871   }
9872 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)))) {
9873 if (EQSI (FLD (f_ccond), 0)) {
9874 if (NESI (tmp_tmp, 0)) {
9875   {
9876     USI opval = GET_H_SPR (((UINT) 272));
9877     sim_queue_pc_write (current_cpu, opval);
9878     written |= (1 << 6);
9879     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9880   }
9881 }
9882 } else {
9883 if (EQSI (tmp_tmp, 0)) {
9884   {
9885     USI opval = GET_H_SPR (((UINT) 272));
9886     sim_queue_pc_write (current_cpu, opval);
9887     written |= (1 << 6);
9888     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9889   }
9890 }
9891 }
9892 }
9893 }
9894 }
9895
9896   abuf->written = written;
9897   return vpc;
9898 #undef FLD
9899 }
9900
9901 /* bclelr: bclelr$pack $ICCi_2,$ccond,$hint */
9902
9903 static SEM_PC
9904 SEM_FN_NAME (frvbf,bclelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9905 {
9906 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9907   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9908   int UNUSED written = 0;
9909   IADDR UNUSED pc = abuf->addr;
9910   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9911
9912 {
9913 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9914 {
9915   SI tmp_tmp;
9916   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
9917   {
9918     USI opval = tmp_tmp;
9919     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
9920     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
9921   }
9922 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))))) {
9923 if (EQSI (FLD (f_ccond), 0)) {
9924 if (NESI (tmp_tmp, 0)) {
9925   {
9926     USI opval = GET_H_SPR (((UINT) 272));
9927     sim_queue_pc_write (current_cpu, opval);
9928     written |= (1 << 6);
9929     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9930   }
9931 }
9932 } else {
9933 if (EQSI (tmp_tmp, 0)) {
9934   {
9935     USI opval = GET_H_SPR (((UINT) 272));
9936     sim_queue_pc_write (current_cpu, opval);
9937     written |= (1 << 6);
9938     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9939   }
9940 }
9941 }
9942 }
9943 }
9944 }
9945
9946   abuf->written = written;
9947   return vpc;
9948 #undef FLD
9949 }
9950
9951 /* bcgtlr: bcgtlr$pack $ICCi_2,$ccond,$hint */
9952
9953 static SEM_PC
9954 SEM_FN_NAME (frvbf,bcgtlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9955 {
9956 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9957   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9958   int UNUSED written = 0;
9959   IADDR UNUSED pc = abuf->addr;
9960   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9961
9962 {
9963 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9964 {
9965   SI tmp_tmp;
9966   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
9967   {
9968     USI opval = tmp_tmp;
9969     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
9970     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
9971   }
9972 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)))))) {
9973 if (EQSI (FLD (f_ccond), 0)) {
9974 if (NESI (tmp_tmp, 0)) {
9975   {
9976     USI opval = GET_H_SPR (((UINT) 272));
9977     sim_queue_pc_write (current_cpu, opval);
9978     written |= (1 << 6);
9979     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9980   }
9981 }
9982 } else {
9983 if (EQSI (tmp_tmp, 0)) {
9984   {
9985     USI opval = GET_H_SPR (((UINT) 272));
9986     sim_queue_pc_write (current_cpu, opval);
9987     written |= (1 << 6);
9988     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9989   }
9990 }
9991 }
9992 }
9993 }
9994 }
9995
9996   abuf->written = written;
9997   return vpc;
9998 #undef FLD
9999 }
10000
10001 /* bcltlr: bcltlr$pack $ICCi_2,$ccond,$hint */
10002
10003 static SEM_PC
10004 SEM_FN_NAME (frvbf,bcltlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10005 {
10006 #define FLD(f) abuf->fields.sfmt_bceqlr.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 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)))) {
10023 if (EQSI (FLD (f_ccond), 0)) {
10024 if (NESI (tmp_tmp, 0)) {
10025   {
10026     USI opval = GET_H_SPR (((UINT) 272));
10027     sim_queue_pc_write (current_cpu, opval);
10028     written |= (1 << 6);
10029     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10030   }
10031 }
10032 } else {
10033 if (EQSI (tmp_tmp, 0)) {
10034   {
10035     USI opval = GET_H_SPR (((UINT) 272));
10036     sim_queue_pc_write (current_cpu, opval);
10037     written |= (1 << 6);
10038     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10039   }
10040 }
10041 }
10042 }
10043 }
10044 }
10045
10046   abuf->written = written;
10047   return vpc;
10048 #undef FLD
10049 }
10050
10051 /* bcgelr: bcgelr$pack $ICCi_2,$ccond,$hint */
10052
10053 static SEM_PC
10054 SEM_FN_NAME (frvbf,bcgelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10055 {
10056 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10057   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10058   int UNUSED written = 0;
10059   IADDR UNUSED pc = abuf->addr;
10060   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10061
10062 {
10063 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10064 {
10065   SI tmp_tmp;
10066   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10067   {
10068     USI opval = tmp_tmp;
10069     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10070     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10071   }
10072 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))))) {
10073 if (EQSI (FLD (f_ccond), 0)) {
10074 if (NESI (tmp_tmp, 0)) {
10075   {
10076     USI opval = GET_H_SPR (((UINT) 272));
10077     sim_queue_pc_write (current_cpu, opval);
10078     written |= (1 << 6);
10079     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10080   }
10081 }
10082 } else {
10083 if (EQSI (tmp_tmp, 0)) {
10084   {
10085     USI opval = GET_H_SPR (((UINT) 272));
10086     sim_queue_pc_write (current_cpu, opval);
10087     written |= (1 << 6);
10088     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10089   }
10090 }
10091 }
10092 }
10093 }
10094 }
10095
10096   abuf->written = written;
10097   return vpc;
10098 #undef FLD
10099 }
10100
10101 /* bclslr: bclslr$pack $ICCi_2,$ccond,$hint */
10102
10103 static SEM_PC
10104 SEM_FN_NAME (frvbf,bclslr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10105 {
10106 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10107   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10108   int UNUSED written = 0;
10109   IADDR UNUSED pc = abuf->addr;
10110   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10111
10112 {
10113 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10114 {
10115   SI tmp_tmp;
10116   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10117   {
10118     USI opval = tmp_tmp;
10119     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10120     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10121   }
10122 if (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)))) {
10123 if (EQSI (FLD (f_ccond), 0)) {
10124 if (NESI (tmp_tmp, 0)) {
10125   {
10126     USI opval = GET_H_SPR (((UINT) 272));
10127     sim_queue_pc_write (current_cpu, opval);
10128     written |= (1 << 6);
10129     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10130   }
10131 }
10132 } else {
10133 if (EQSI (tmp_tmp, 0)) {
10134   {
10135     USI opval = GET_H_SPR (((UINT) 272));
10136     sim_queue_pc_write (current_cpu, opval);
10137     written |= (1 << 6);
10138     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10139   }
10140 }
10141 }
10142 }
10143 }
10144 }
10145
10146   abuf->written = written;
10147   return vpc;
10148 #undef FLD
10149 }
10150
10151 /* bchilr: bchilr$pack $ICCi_2,$ccond,$hint */
10152
10153 static SEM_PC
10154 SEM_FN_NAME (frvbf,bchilr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10155 {
10156 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10157   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10158   int UNUSED written = 0;
10159   IADDR UNUSED pc = abuf->addr;
10160   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10161
10162 {
10163 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10164 {
10165   SI tmp_tmp;
10166   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10167   {
10168     USI opval = tmp_tmp;
10169     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10170     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10171   }
10172 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))))) {
10173 if (EQSI (FLD (f_ccond), 0)) {
10174 if (NESI (tmp_tmp, 0)) {
10175   {
10176     USI opval = GET_H_SPR (((UINT) 272));
10177     sim_queue_pc_write (current_cpu, opval);
10178     written |= (1 << 6);
10179     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10180   }
10181 }
10182 } else {
10183 if (EQSI (tmp_tmp, 0)) {
10184   {
10185     USI opval = GET_H_SPR (((UINT) 272));
10186     sim_queue_pc_write (current_cpu, opval);
10187     written |= (1 << 6);
10188     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10189   }
10190 }
10191 }
10192 }
10193 }
10194 }
10195
10196   abuf->written = written;
10197   return vpc;
10198 #undef FLD
10199 }
10200
10201 /* bcclr: bcclr$pack $ICCi_2,$ccond,$hint */
10202
10203 static SEM_PC
10204 SEM_FN_NAME (frvbf,bcclr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10205 {
10206 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10207   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10208   int UNUSED written = 0;
10209   IADDR UNUSED pc = abuf->addr;
10210   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10211
10212 {
10213 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10214 {
10215   SI tmp_tmp;
10216   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10217   {
10218     USI opval = tmp_tmp;
10219     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10220     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10221   }
10222 if (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1))) {
10223 if (EQSI (FLD (f_ccond), 0)) {
10224 if (NESI (tmp_tmp, 0)) {
10225   {
10226     USI opval = GET_H_SPR (((UINT) 272));
10227     sim_queue_pc_write (current_cpu, opval);
10228     written |= (1 << 6);
10229     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10230   }
10231 }
10232 } else {
10233 if (EQSI (tmp_tmp, 0)) {
10234   {
10235     USI opval = GET_H_SPR (((UINT) 272));
10236     sim_queue_pc_write (current_cpu, opval);
10237     written |= (1 << 6);
10238     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10239   }
10240 }
10241 }
10242 }
10243 }
10244 }
10245
10246   abuf->written = written;
10247   return vpc;
10248 #undef FLD
10249 }
10250
10251 /* bcnclr: bcnclr$pack $ICCi_2,$ccond,$hint */
10252
10253 static SEM_PC
10254 SEM_FN_NAME (frvbf,bcnclr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10255 {
10256 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10257   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10258   int UNUSED written = 0;
10259   IADDR UNUSED pc = abuf->addr;
10260   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10261
10262 {
10263 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10264 {
10265   SI tmp_tmp;
10266   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10267   {
10268     USI opval = tmp_tmp;
10269     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10270     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10271   }
10272 if (NOTBI (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)))) {
10273 if (EQSI (FLD (f_ccond), 0)) {
10274 if (NESI (tmp_tmp, 0)) {
10275   {
10276     USI opval = GET_H_SPR (((UINT) 272));
10277     sim_queue_pc_write (current_cpu, opval);
10278     written |= (1 << 6);
10279     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10280   }
10281 }
10282 } else {
10283 if (EQSI (tmp_tmp, 0)) {
10284   {
10285     USI opval = GET_H_SPR (((UINT) 272));
10286     sim_queue_pc_write (current_cpu, opval);
10287     written |= (1 << 6);
10288     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10289   }
10290 }
10291 }
10292 }
10293 }
10294 }
10295
10296   abuf->written = written;
10297   return vpc;
10298 #undef FLD
10299 }
10300
10301 /* bcnlr: bcnlr$pack $ICCi_2,$ccond,$hint */
10302
10303 static SEM_PC
10304 SEM_FN_NAME (frvbf,bcnlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10305 {
10306 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10307   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10308   int UNUSED written = 0;
10309   IADDR UNUSED pc = abuf->addr;
10310   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10311
10312 {
10313 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10314 {
10315   SI tmp_tmp;
10316   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10317   {
10318     USI opval = tmp_tmp;
10319     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10320     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10321   }
10322 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3))) {
10323 if (EQSI (FLD (f_ccond), 0)) {
10324 if (NESI (tmp_tmp, 0)) {
10325   {
10326     USI opval = GET_H_SPR (((UINT) 272));
10327     sim_queue_pc_write (current_cpu, opval);
10328     written |= (1 << 6);
10329     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10330   }
10331 }
10332 } else {
10333 if (EQSI (tmp_tmp, 0)) {
10334   {
10335     USI opval = GET_H_SPR (((UINT) 272));
10336     sim_queue_pc_write (current_cpu, opval);
10337     written |= (1 << 6);
10338     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10339   }
10340 }
10341 }
10342 }
10343 }
10344 }
10345
10346   abuf->written = written;
10347   return vpc;
10348 #undef FLD
10349 }
10350
10351 /* bcplr: bcplr$pack $ICCi_2,$ccond,$hint */
10352
10353 static SEM_PC
10354 SEM_FN_NAME (frvbf,bcplr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10355 {
10356 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10357   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10358   int UNUSED written = 0;
10359   IADDR UNUSED pc = abuf->addr;
10360   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10361
10362 {
10363 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10364 {
10365   SI tmp_tmp;
10366   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10367   {
10368     USI opval = tmp_tmp;
10369     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10370     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10371   }
10372 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3)))) {
10373 if (EQSI (FLD (f_ccond), 0)) {
10374 if (NESI (tmp_tmp, 0)) {
10375   {
10376     USI opval = GET_H_SPR (((UINT) 272));
10377     sim_queue_pc_write (current_cpu, opval);
10378     written |= (1 << 6);
10379     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10380   }
10381 }
10382 } else {
10383 if (EQSI (tmp_tmp, 0)) {
10384   {
10385     USI opval = GET_H_SPR (((UINT) 272));
10386     sim_queue_pc_write (current_cpu, opval);
10387     written |= (1 << 6);
10388     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10389   }
10390 }
10391 }
10392 }
10393 }
10394 }
10395
10396   abuf->written = written;
10397   return vpc;
10398 #undef FLD
10399 }
10400
10401 /* bcvlr: bcvlr$pack $ICCi_2,$ccond,$hint */
10402
10403 static SEM_PC
10404 SEM_FN_NAME (frvbf,bcvlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10405 {
10406 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10407   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10408   int UNUSED written = 0;
10409   IADDR UNUSED pc = abuf->addr;
10410   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10411
10412 {
10413 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10414 {
10415   SI tmp_tmp;
10416   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10417   {
10418     USI opval = tmp_tmp;
10419     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10420     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10421   }
10422 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1))) {
10423 if (EQSI (FLD (f_ccond), 0)) {
10424 if (NESI (tmp_tmp, 0)) {
10425   {
10426     USI opval = GET_H_SPR (((UINT) 272));
10427     sim_queue_pc_write (current_cpu, opval);
10428     written |= (1 << 6);
10429     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10430   }
10431 }
10432 } else {
10433 if (EQSI (tmp_tmp, 0)) {
10434   {
10435     USI opval = GET_H_SPR (((UINT) 272));
10436     sim_queue_pc_write (current_cpu, opval);
10437     written |= (1 << 6);
10438     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10439   }
10440 }
10441 }
10442 }
10443 }
10444 }
10445
10446   abuf->written = written;
10447   return vpc;
10448 #undef FLD
10449 }
10450
10451 /* bcnvlr: bcnvlr$pack $ICCi_2,$ccond,$hint */
10452
10453 static SEM_PC
10454 SEM_FN_NAME (frvbf,bcnvlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10455 {
10456 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10457   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10458   int UNUSED written = 0;
10459   IADDR UNUSED pc = abuf->addr;
10460   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10461
10462 {
10463 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10464 {
10465   SI tmp_tmp;
10466   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10467   {
10468     USI opval = tmp_tmp;
10469     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10470     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10471   }
10472 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1)))) {
10473 if (EQSI (FLD (f_ccond), 0)) {
10474 if (NESI (tmp_tmp, 0)) {
10475   {
10476     USI opval = GET_H_SPR (((UINT) 272));
10477     sim_queue_pc_write (current_cpu, opval);
10478     written |= (1 << 6);
10479     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10480   }
10481 }
10482 } else {
10483 if (EQSI (tmp_tmp, 0)) {
10484   {
10485     USI opval = GET_H_SPR (((UINT) 272));
10486     sim_queue_pc_write (current_cpu, opval);
10487     written |= (1 << 6);
10488     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10489   }
10490 }
10491 }
10492 }
10493 }
10494 }
10495
10496   abuf->written = written;
10497   return vpc;
10498 #undef FLD
10499 }
10500
10501 /* fcbralr: fcbralr$pack $ccond$hint_taken */
10502
10503 static SEM_PC
10504 SEM_FN_NAME (frvbf,fcbralr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10505 {
10506 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10507   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10508   int UNUSED written = 0;
10509   IADDR UNUSED pc = abuf->addr;
10510   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10511
10512 {
10513 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10514 {
10515   SI tmp_tmp;
10516   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10517   {
10518     USI opval = tmp_tmp;
10519     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10520     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10521   }
10522 if (EQSI (FLD (f_ccond), 0)) {
10523 if (NESI (tmp_tmp, 0)) {
10524   {
10525     USI opval = GET_H_SPR (((UINT) 272));
10526     sim_queue_pc_write (current_cpu, opval);
10527     written |= (1 << 5);
10528     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10529   }
10530 }
10531 } else {
10532 if (EQSI (tmp_tmp, 0)) {
10533   {
10534     USI opval = GET_H_SPR (((UINT) 272));
10535     sim_queue_pc_write (current_cpu, opval);
10536     written |= (1 << 5);
10537     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10538   }
10539 }
10540 }
10541 }
10542 }
10543
10544   abuf->written = written;
10545   return vpc;
10546 #undef FLD
10547 }
10548
10549 /* fcbnolr: fcbnolr$pack$hint_not_taken */
10550
10551 static SEM_PC
10552 SEM_FN_NAME (frvbf,fcbnolr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10553 {
10554 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10555   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10556   int UNUSED written = 0;
10557   IADDR UNUSED pc = abuf->addr;
10558   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10559
10560 {
10561 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10562 {
10563   SI tmp_tmp;
10564   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10565   {
10566     USI opval = tmp_tmp;
10567     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10568     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10569   }
10570 ((void) 0); /*nop*/
10571 }
10572 }
10573
10574   return vpc;
10575 #undef FLD
10576 }
10577
10578 /* fcbeqlr: fcbeqlr$pack $FCCi_2,$ccond,$hint */
10579
10580 static SEM_PC
10581 SEM_FN_NAME (frvbf,fcbeqlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10582 {
10583 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10584   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10585   int UNUSED written = 0;
10586   IADDR UNUSED pc = abuf->addr;
10587   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10588
10589 {
10590 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10591 {
10592   SI tmp_tmp;
10593   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10594   {
10595     USI opval = tmp_tmp;
10596     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10597     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10598   }
10599 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3))) {
10600 if (EQSI (FLD (f_ccond), 0)) {
10601 if (NESI (tmp_tmp, 0)) {
10602   {
10603     USI opval = GET_H_SPR (((UINT) 272));
10604     sim_queue_pc_write (current_cpu, opval);
10605     written |= (1 << 6);
10606     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10607   }
10608 }
10609 } else {
10610 if (EQSI (tmp_tmp, 0)) {
10611   {
10612     USI opval = GET_H_SPR (((UINT) 272));
10613     sim_queue_pc_write (current_cpu, opval);
10614     written |= (1 << 6);
10615     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10616   }
10617 }
10618 }
10619 }
10620 }
10621 }
10622
10623   abuf->written = written;
10624   return vpc;
10625 #undef FLD
10626 }
10627
10628 /* fcbnelr: fcbnelr$pack $FCCi_2,$ccond,$hint */
10629
10630 static SEM_PC
10631 SEM_FN_NAME (frvbf,fcbnelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10632 {
10633 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10634   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10635   int UNUSED written = 0;
10636   IADDR UNUSED pc = abuf->addr;
10637   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10638
10639 {
10640 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10641 {
10642   SI tmp_tmp;
10643   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10644   {
10645     USI opval = tmp_tmp;
10646     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10647     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10648   }
10649 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))))) {
10650 if (EQSI (FLD (f_ccond), 0)) {
10651 if (NESI (tmp_tmp, 0)) {
10652   {
10653     USI opval = GET_H_SPR (((UINT) 272));
10654     sim_queue_pc_write (current_cpu, opval);
10655     written |= (1 << 6);
10656     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10657   }
10658 }
10659 } else {
10660 if (EQSI (tmp_tmp, 0)) {
10661   {
10662     USI opval = GET_H_SPR (((UINT) 272));
10663     sim_queue_pc_write (current_cpu, opval);
10664     written |= (1 << 6);
10665     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10666   }
10667 }
10668 }
10669 }
10670 }
10671 }
10672
10673   abuf->written = written;
10674   return vpc;
10675 #undef FLD
10676 }
10677
10678 /* fcblglr: fcblglr$pack $FCCi_2,$ccond,$hint */
10679
10680 static SEM_PC
10681 SEM_FN_NAME (frvbf,fcblglr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10682 {
10683 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10684   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10685   int UNUSED written = 0;
10686   IADDR UNUSED pc = abuf->addr;
10687   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10688
10689 {
10690 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10691 {
10692   SI tmp_tmp;
10693   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10694   {
10695     USI opval = tmp_tmp;
10696     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10697     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10698   }
10699 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)))) {
10700 if (EQSI (FLD (f_ccond), 0)) {
10701 if (NESI (tmp_tmp, 0)) {
10702   {
10703     USI opval = GET_H_SPR (((UINT) 272));
10704     sim_queue_pc_write (current_cpu, opval);
10705     written |= (1 << 6);
10706     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10707   }
10708 }
10709 } else {
10710 if (EQSI (tmp_tmp, 0)) {
10711   {
10712     USI opval = GET_H_SPR (((UINT) 272));
10713     sim_queue_pc_write (current_cpu, opval);
10714     written |= (1 << 6);
10715     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10716   }
10717 }
10718 }
10719 }
10720 }
10721 }
10722
10723   abuf->written = written;
10724   return vpc;
10725 #undef FLD
10726 }
10727
10728 /* fcbuelr: fcbuelr$pack $FCCi_2,$ccond,$hint */
10729
10730 static SEM_PC
10731 SEM_FN_NAME (frvbf,fcbuelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10732 {
10733 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10734   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10735   int UNUSED written = 0;
10736   IADDR UNUSED pc = abuf->addr;
10737   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10738
10739 {
10740 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10741 {
10742   SI tmp_tmp;
10743   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10744   {
10745     USI opval = tmp_tmp;
10746     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10747     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10748   }
10749 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
10750 if (EQSI (FLD (f_ccond), 0)) {
10751 if (NESI (tmp_tmp, 0)) {
10752   {
10753     USI opval = GET_H_SPR (((UINT) 272));
10754     sim_queue_pc_write (current_cpu, opval);
10755     written |= (1 << 6);
10756     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10757   }
10758 }
10759 } else {
10760 if (EQSI (tmp_tmp, 0)) {
10761   {
10762     USI opval = GET_H_SPR (((UINT) 272));
10763     sim_queue_pc_write (current_cpu, opval);
10764     written |= (1 << 6);
10765     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10766   }
10767 }
10768 }
10769 }
10770 }
10771 }
10772
10773   abuf->written = written;
10774   return vpc;
10775 #undef FLD
10776 }
10777
10778 /* fcbullr: fcbullr$pack $FCCi_2,$ccond,$hint */
10779
10780 static SEM_PC
10781 SEM_FN_NAME (frvbf,fcbullr) (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 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
10800 if (EQSI (FLD (f_ccond), 0)) {
10801 if (NESI (tmp_tmp, 0)) {
10802   {
10803     USI opval = GET_H_SPR (((UINT) 272));
10804     sim_queue_pc_write (current_cpu, opval);
10805     written |= (1 << 6);
10806     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10807   }
10808 }
10809 } else {
10810 if (EQSI (tmp_tmp, 0)) {
10811   {
10812     USI opval = GET_H_SPR (((UINT) 272));
10813     sim_queue_pc_write (current_cpu, opval);
10814     written |= (1 << 6);
10815     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10816   }
10817 }
10818 }
10819 }
10820 }
10821 }
10822
10823   abuf->written = written;
10824   return vpc;
10825 #undef FLD
10826 }
10827
10828 /* fcbgelr: fcbgelr$pack $FCCi_2,$ccond,$hint */
10829
10830 static SEM_PC
10831 SEM_FN_NAME (frvbf,fcbgelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10832 {
10833 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10834   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10835   int UNUSED written = 0;
10836   IADDR UNUSED pc = abuf->addr;
10837   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10838
10839 {
10840 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10841 {
10842   SI tmp_tmp;
10843   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10844   {
10845     USI opval = tmp_tmp;
10846     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10847     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10848   }
10849 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)))) {
10850 if (EQSI (FLD (f_ccond), 0)) {
10851 if (NESI (tmp_tmp, 0)) {
10852   {
10853     USI opval = GET_H_SPR (((UINT) 272));
10854     sim_queue_pc_write (current_cpu, opval);
10855     written |= (1 << 6);
10856     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10857   }
10858 }
10859 } else {
10860 if (EQSI (tmp_tmp, 0)) {
10861   {
10862     USI opval = GET_H_SPR (((UINT) 272));
10863     sim_queue_pc_write (current_cpu, opval);
10864     written |= (1 << 6);
10865     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10866   }
10867 }
10868 }
10869 }
10870 }
10871 }
10872
10873   abuf->written = written;
10874   return vpc;
10875 #undef FLD
10876 }
10877
10878 /* fcbltlr: fcbltlr$pack $FCCi_2,$ccond,$hint */
10879
10880 static SEM_PC
10881 SEM_FN_NAME (frvbf,fcbltlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10882 {
10883 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10884   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10885   int UNUSED written = 0;
10886   IADDR UNUSED pc = abuf->addr;
10887   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10888
10889 {
10890 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10891 {
10892   SI tmp_tmp;
10893   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10894   {
10895     USI opval = tmp_tmp;
10896     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10897     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10898   }
10899 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2))) {
10900 if (EQSI (FLD (f_ccond), 0)) {
10901 if (NESI (tmp_tmp, 0)) {
10902   {
10903     USI opval = GET_H_SPR (((UINT) 272));
10904     sim_queue_pc_write (current_cpu, opval);
10905     written |= (1 << 6);
10906     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10907   }
10908 }
10909 } else {
10910 if (EQSI (tmp_tmp, 0)) {
10911   {
10912     USI opval = GET_H_SPR (((UINT) 272));
10913     sim_queue_pc_write (current_cpu, opval);
10914     written |= (1 << 6);
10915     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10916   }
10917 }
10918 }
10919 }
10920 }
10921 }
10922
10923   abuf->written = written;
10924   return vpc;
10925 #undef FLD
10926 }
10927
10928 /* fcbugelr: fcbugelr$pack $FCCi_2,$ccond,$hint */
10929
10930 static SEM_PC
10931 SEM_FN_NAME (frvbf,fcbugelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10932 {
10933 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10934   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10935   int UNUSED written = 0;
10936   IADDR UNUSED pc = abuf->addr;
10937   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10938
10939 {
10940 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10941 {
10942   SI tmp_tmp;
10943   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10944   {
10945     USI opval = tmp_tmp;
10946     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10947     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10948   }
10949 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))))) {
10950 if (EQSI (FLD (f_ccond), 0)) {
10951 if (NESI (tmp_tmp, 0)) {
10952   {
10953     USI opval = GET_H_SPR (((UINT) 272));
10954     sim_queue_pc_write (current_cpu, opval);
10955     written |= (1 << 6);
10956     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10957   }
10958 }
10959 } else {
10960 if (EQSI (tmp_tmp, 0)) {
10961   {
10962     USI opval = GET_H_SPR (((UINT) 272));
10963     sim_queue_pc_write (current_cpu, opval);
10964     written |= (1 << 6);
10965     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10966   }
10967 }
10968 }
10969 }
10970 }
10971 }
10972
10973   abuf->written = written;
10974   return vpc;
10975 #undef FLD
10976 }
10977
10978 /* fcbuglr: fcbuglr$pack $FCCi_2,$ccond,$hint */
10979
10980 static SEM_PC
10981 SEM_FN_NAME (frvbf,fcbuglr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10982 {
10983 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10984   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10985   int UNUSED written = 0;
10986   IADDR UNUSED pc = abuf->addr;
10987   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10988
10989 {
10990 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10991 {
10992   SI tmp_tmp;
10993   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10994   {
10995     USI opval = tmp_tmp;
10996     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10997     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10998   }
10999 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
11000 if (EQSI (FLD (f_ccond), 0)) {
11001 if (NESI (tmp_tmp, 0)) {
11002   {
11003     USI opval = GET_H_SPR (((UINT) 272));
11004     sim_queue_pc_write (current_cpu, opval);
11005     written |= (1 << 6);
11006     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11007   }
11008 }
11009 } else {
11010 if (EQSI (tmp_tmp, 0)) {
11011   {
11012     USI opval = GET_H_SPR (((UINT) 272));
11013     sim_queue_pc_write (current_cpu, opval);
11014     written |= (1 << 6);
11015     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11016   }
11017 }
11018 }
11019 }
11020 }
11021 }
11022
11023   abuf->written = written;
11024   return vpc;
11025 #undef FLD
11026 }
11027
11028 /* fcblelr: fcblelr$pack $FCCi_2,$ccond,$hint */
11029
11030 static SEM_PC
11031 SEM_FN_NAME (frvbf,fcblelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11032 {
11033 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
11034   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11035   int UNUSED written = 0;
11036   IADDR UNUSED pc = abuf->addr;
11037   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11038
11039 {
11040 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
11041 {
11042   SI tmp_tmp;
11043   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
11044   {
11045     USI opval = tmp_tmp;
11046     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
11047     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
11048   }
11049 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)))) {
11050 if (EQSI (FLD (f_ccond), 0)) {
11051 if (NESI (tmp_tmp, 0)) {
11052   {
11053     USI opval = GET_H_SPR (((UINT) 272));
11054     sim_queue_pc_write (current_cpu, opval);
11055     written |= (1 << 6);
11056     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11057   }
11058 }
11059 } else {
11060 if (EQSI (tmp_tmp, 0)) {
11061   {
11062     USI opval = GET_H_SPR (((UINT) 272));
11063     sim_queue_pc_write (current_cpu, opval);
11064     written |= (1 << 6);
11065     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11066   }
11067 }
11068 }
11069 }
11070 }
11071 }
11072
11073   abuf->written = written;
11074   return vpc;
11075 #undef FLD
11076 }
11077
11078 /* fcbgtlr: fcbgtlr$pack $FCCi_2,$ccond,$hint */
11079
11080 static SEM_PC
11081 SEM_FN_NAME (frvbf,fcbgtlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11082 {
11083 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
11084   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11085   int UNUSED written = 0;
11086   IADDR UNUSED pc = abuf->addr;
11087   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11088
11089 {
11090 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
11091 {
11092   SI tmp_tmp;
11093   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
11094   {
11095     USI opval = tmp_tmp;
11096     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
11097     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
11098   }
11099 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1))) {
11100 if (EQSI (FLD (f_ccond), 0)) {
11101 if (NESI (tmp_tmp, 0)) {
11102   {
11103     USI opval = GET_H_SPR (((UINT) 272));
11104     sim_queue_pc_write (current_cpu, opval);
11105     written |= (1 << 6);
11106     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11107   }
11108 }
11109 } else {
11110 if (EQSI (tmp_tmp, 0)) {
11111   {
11112     USI opval = GET_H_SPR (((UINT) 272));
11113     sim_queue_pc_write (current_cpu, opval);
11114     written |= (1 << 6);
11115     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11116   }
11117 }
11118 }
11119 }
11120 }
11121 }
11122
11123   abuf->written = written;
11124   return vpc;
11125 #undef FLD
11126 }
11127
11128 /* fcbulelr: fcbulelr$pack $FCCi_2,$ccond,$hint */
11129
11130 static SEM_PC
11131 SEM_FN_NAME (frvbf,fcbulelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11132 {
11133 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
11134   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11135   int UNUSED written = 0;
11136   IADDR UNUSED pc = abuf->addr;
11137   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11138
11139 {
11140 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
11141 {
11142   SI tmp_tmp;
11143   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
11144   {
11145     USI opval = tmp_tmp;
11146     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
11147     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
11148   }
11149 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))))) {
11150 if (EQSI (FLD (f_ccond), 0)) {
11151 if (NESI (tmp_tmp, 0)) {
11152   {
11153     USI opval = GET_H_SPR (((UINT) 272));
11154     sim_queue_pc_write (current_cpu, opval);
11155     written |= (1 << 6);
11156     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11157   }
11158 }
11159 } else {
11160 if (EQSI (tmp_tmp, 0)) {
11161   {
11162     USI opval = GET_H_SPR (((UINT) 272));
11163     sim_queue_pc_write (current_cpu, opval);
11164     written |= (1 << 6);
11165     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11166   }
11167 }
11168 }
11169 }
11170 }
11171 }
11172
11173   abuf->written = written;
11174   return vpc;
11175 #undef FLD
11176 }
11177
11178 /* fcbulr: fcbulr$pack $FCCi_2,$ccond,$hint */
11179
11180 static SEM_PC
11181 SEM_FN_NAME (frvbf,fcbulr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11182 {
11183 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
11184   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11185   int UNUSED written = 0;
11186   IADDR UNUSED pc = abuf->addr;
11187   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11188
11189 {
11190 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
11191 {
11192   SI tmp_tmp;
11193   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
11194   {
11195     USI opval = tmp_tmp;
11196     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
11197     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
11198   }
11199 if (TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1))) {
11200 if (EQSI (FLD (f_ccond), 0)) {
11201 if (NESI (tmp_tmp, 0)) {
11202   {
11203     USI opval = GET_H_SPR (((UINT) 272));
11204     sim_queue_pc_write (current_cpu, opval);
11205     written |= (1 << 6);
11206     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11207   }
11208 }
11209 } else {
11210 if (EQSI (tmp_tmp, 0)) {
11211   {
11212     USI opval = GET_H_SPR (((UINT) 272));
11213     sim_queue_pc_write (current_cpu, opval);
11214     written |= (1 << 6);
11215     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11216   }
11217 }
11218 }
11219 }
11220 }
11221 }
11222
11223   abuf->written = written;
11224   return vpc;
11225 #undef FLD
11226 }
11227
11228 /* fcbolr: fcbolr$pack $FCCi_2,$ccond,$hint */
11229
11230 static SEM_PC
11231 SEM_FN_NAME (frvbf,fcbolr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11232 {
11233 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
11234   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11235   int UNUSED written = 0;
11236   IADDR UNUSED pc = abuf->addr;
11237   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11238
11239 {
11240 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
11241 {
11242   SI tmp_tmp;
11243   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
11244   {
11245     USI opval = tmp_tmp;
11246     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
11247     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
11248   }
11249 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))))) {
11250 if (EQSI (FLD (f_ccond), 0)) {
11251 if (NESI (tmp_tmp, 0)) {
11252   {
11253     USI opval = GET_H_SPR (((UINT) 272));
11254     sim_queue_pc_write (current_cpu, opval);
11255     written |= (1 << 6);
11256     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11257   }
11258 }
11259 } else {
11260 if (EQSI (tmp_tmp, 0)) {
11261   {
11262     USI opval = GET_H_SPR (((UINT) 272));
11263     sim_queue_pc_write (current_cpu, opval);
11264     written |= (1 << 6);
11265     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11266   }
11267 }
11268 }
11269 }
11270 }
11271 }
11272
11273   abuf->written = written;
11274   return vpc;
11275 #undef FLD
11276 }
11277
11278 /* jmpl: jmpl$pack @($GRi,$GRj) */
11279
11280 static SEM_PC
11281 SEM_FN_NAME (frvbf,jmpl) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11282 {
11283 #define FLD(f) abuf->fields.sfmt_cjmpl.f
11284   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11285   int UNUSED written = 0;
11286   IADDR UNUSED pc = abuf->addr;
11287   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11288
11289 {
11290 if (EQSI (FLD (f_LI), 1)) {
11291 frvbf_set_write_next_vliw_addr_to_LR (current_cpu, 1);
11292 }
11293   {
11294     USI opval = ANDSI (ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), 0xfffffffc);
11295     sim_queue_pc_write (current_cpu, opval);
11296     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11297   }
11298 frvbf_model_branch (current_cpu, pc, 2);
11299 }
11300
11301   return vpc;
11302 #undef FLD
11303 }
11304
11305 /* calll: calll$pack $callann($GRi,$GRj) */
11306
11307 static SEM_PC
11308 SEM_FN_NAME (frvbf,calll) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11309 {
11310 #define FLD(f) abuf->fields.sfmt_cjmpl.f
11311   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11312   int UNUSED written = 0;
11313   IADDR UNUSED pc = abuf->addr;
11314   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11315
11316 {
11317 if (EQSI (FLD (f_LI), 1)) {
11318 frvbf_set_write_next_vliw_addr_to_LR (current_cpu, 1);
11319 }
11320   {
11321     USI opval = ANDSI (ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), 0xfffffffc);
11322     sim_queue_pc_write (current_cpu, opval);
11323     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11324   }
11325 frvbf_model_branch (current_cpu, pc, 2);
11326 }
11327
11328   return vpc;
11329 #undef FLD
11330 }
11331
11332 /* jmpil: jmpil$pack @($GRi,$s12) */
11333
11334 static SEM_PC
11335 SEM_FN_NAME (frvbf,jmpil) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11336 {
11337 #define FLD(f) abuf->fields.sfmt_jmpil.f
11338   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11339   int UNUSED written = 0;
11340   IADDR UNUSED pc = abuf->addr;
11341   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11342
11343 {
11344 if (EQSI (FLD (f_LI), 1)) {
11345 frvbf_set_write_next_vliw_addr_to_LR (current_cpu, 1);
11346 }
11347   {
11348     USI opval = ANDSI (ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)), 0xfffffffc);
11349     sim_queue_pc_write (current_cpu, opval);
11350     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11351   }
11352 frvbf_model_branch (current_cpu, pc, 2);
11353 }
11354
11355   return vpc;
11356 #undef FLD
11357 }
11358
11359 /* callil: callil$pack @($GRi,$s12) */
11360
11361 static SEM_PC
11362 SEM_FN_NAME (frvbf,callil) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11363 {
11364 #define FLD(f) abuf->fields.sfmt_jmpil.f
11365   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11366   int UNUSED written = 0;
11367   IADDR UNUSED pc = abuf->addr;
11368   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11369
11370 {
11371 if (EQSI (FLD (f_LI), 1)) {
11372 frvbf_set_write_next_vliw_addr_to_LR (current_cpu, 1);
11373 }
11374   {
11375     USI opval = ANDSI (ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)), 0xfffffffc);
11376     sim_queue_pc_write (current_cpu, opval);
11377     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11378   }
11379 frvbf_model_branch (current_cpu, pc, 2);
11380 }
11381
11382   return vpc;
11383 #undef FLD
11384 }
11385
11386 /* call: call$pack $label24 */
11387
11388 static SEM_PC
11389 SEM_FN_NAME (frvbf,call) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11390 {
11391 #define FLD(f) abuf->fields.sfmt_call.f
11392   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11393   int UNUSED written = 0;
11394   IADDR UNUSED pc = abuf->addr;
11395   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11396
11397 {
11398 frvbf_set_write_next_vliw_addr_to_LR (current_cpu, 1);
11399   {
11400     USI opval = FLD (i_label24);
11401     sim_queue_pc_write (current_cpu, opval);
11402     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11403   }
11404 frvbf_model_branch (current_cpu, pc, 2);
11405 }
11406
11407   return vpc;
11408 #undef FLD
11409 }
11410
11411 /* rett: rett$pack $debug */
11412
11413 static SEM_PC
11414 SEM_FN_NAME (frvbf,rett) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11415 {
11416 #define FLD(f) abuf->fields.sfmt_rett.f
11417   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11418   int UNUSED written = 0;
11419   IADDR UNUSED pc = abuf->addr;
11420   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11421
11422 {
11423   {
11424     USI opval = frv_rett (current_cpu, pc, FLD (f_debug));
11425     sim_queue_pc_write (current_cpu, opval);
11426     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11427   }
11428 frvbf_model_branch (current_cpu, pc, 2);
11429 }
11430
11431   return vpc;
11432 #undef FLD
11433 }
11434
11435 /* rei: rei$pack $eir */
11436
11437 static SEM_PC
11438 SEM_FN_NAME (frvbf,rei) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11439 {
11440 #define FLD(f) abuf->fields.fmt_empty.f
11441   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11442   int UNUSED written = 0;
11443   IADDR UNUSED pc = abuf->addr;
11444   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11445
11446 ((void) 0); /*nop*/
11447
11448   return vpc;
11449 #undef FLD
11450 }
11451
11452 /* tra: tra$pack $GRi,$GRj */
11453
11454 static SEM_PC
11455 SEM_FN_NAME (frvbf,tra) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11456 {
11457 #define FLD(f) abuf->fields.sfmt_ftne.f
11458   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11459   int UNUSED written = 0;
11460   IADDR UNUSED pc = abuf->addr;
11461   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11462
11463 {
11464 ; /*clobber*/
11465 ; /*clobber*/
11466 ; /*clobber*/
11467 ; /*clobber*/
11468 if (NEBI (CPU (h_psr_esr), 0)) {
11469 {
11470 ; /*clobber*/
11471 ; /*clobber*/
11472 ; /*clobber*/
11473 ; /*clobber*/
11474 }
11475 }
11476 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11477 }
11478
11479   abuf->written = written;
11480   return vpc;
11481 #undef FLD
11482 }
11483
11484 /* tno: tno$pack */
11485
11486 static SEM_PC
11487 SEM_FN_NAME (frvbf,tno) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11488 {
11489 #define FLD(f) abuf->fields.fmt_empty.f
11490   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11491   int UNUSED written = 0;
11492   IADDR UNUSED pc = abuf->addr;
11493   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11494
11495 ((void) 0); /*nop*/
11496
11497   return vpc;
11498 #undef FLD
11499 }
11500
11501 /* teq: teq$pack $ICCi_2,$GRi,$GRj */
11502
11503 static SEM_PC
11504 SEM_FN_NAME (frvbf,teq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11505 {
11506 #define FLD(f) abuf->fields.sfmt_teq.f
11507   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11508   int UNUSED written = 0;
11509   IADDR UNUSED pc = abuf->addr;
11510   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11511
11512 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2))) {
11513 {
11514 ; /*clobber*/
11515 ; /*clobber*/
11516 ; /*clobber*/
11517 ; /*clobber*/
11518 if (NEBI (CPU (h_psr_esr), 0)) {
11519 {
11520 ; /*clobber*/
11521 ; /*clobber*/
11522 ; /*clobber*/
11523 ; /*clobber*/
11524 }
11525 }
11526 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11527 }
11528 }
11529
11530   abuf->written = written;
11531   return vpc;
11532 #undef FLD
11533 }
11534
11535 /* tne: tne$pack $ICCi_2,$GRi,$GRj */
11536
11537 static SEM_PC
11538 SEM_FN_NAME (frvbf,tne) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11539 {
11540 #define FLD(f) abuf->fields.sfmt_teq.f
11541   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11542   int UNUSED written = 0;
11543   IADDR UNUSED pc = abuf->addr;
11544   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11545
11546 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)))) {
11547 {
11548 ; /*clobber*/
11549 ; /*clobber*/
11550 ; /*clobber*/
11551 ; /*clobber*/
11552 if (NEBI (CPU (h_psr_esr), 0)) {
11553 {
11554 ; /*clobber*/
11555 ; /*clobber*/
11556 ; /*clobber*/
11557 ; /*clobber*/
11558 }
11559 }
11560 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11561 }
11562 }
11563
11564   abuf->written = written;
11565   return vpc;
11566 #undef FLD
11567 }
11568
11569 /* tle: tle$pack $ICCi_2,$GRi,$GRj */
11570
11571 static SEM_PC
11572 SEM_FN_NAME (frvbf,tle) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11573 {
11574 #define FLD(f) abuf->fields.sfmt_teq.f
11575   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11576   int UNUSED written = 0;
11577   IADDR UNUSED pc = abuf->addr;
11578   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11579
11580 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))))) {
11581 {
11582 ; /*clobber*/
11583 ; /*clobber*/
11584 ; /*clobber*/
11585 ; /*clobber*/
11586 if (NEBI (CPU (h_psr_esr), 0)) {
11587 {
11588 ; /*clobber*/
11589 ; /*clobber*/
11590 ; /*clobber*/
11591 ; /*clobber*/
11592 }
11593 }
11594 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11595 }
11596 }
11597
11598   abuf->written = written;
11599   return vpc;
11600 #undef FLD
11601 }
11602
11603 /* tgt: tgt$pack $ICCi_2,$GRi,$GRj */
11604
11605 static SEM_PC
11606 SEM_FN_NAME (frvbf,tgt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11607 {
11608 #define FLD(f) abuf->fields.sfmt_teq.f
11609   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11610   int UNUSED written = 0;
11611   IADDR UNUSED pc = abuf->addr;
11612   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11613
11614 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)))))) {
11615 {
11616 ; /*clobber*/
11617 ; /*clobber*/
11618 ; /*clobber*/
11619 ; /*clobber*/
11620 if (NEBI (CPU (h_psr_esr), 0)) {
11621 {
11622 ; /*clobber*/
11623 ; /*clobber*/
11624 ; /*clobber*/
11625 ; /*clobber*/
11626 }
11627 }
11628 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11629 }
11630 }
11631
11632   abuf->written = written;
11633   return vpc;
11634 #undef FLD
11635 }
11636
11637 /* tlt: tlt$pack $ICCi_2,$GRi,$GRj */
11638
11639 static SEM_PC
11640 SEM_FN_NAME (frvbf,tlt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11641 {
11642 #define FLD(f) abuf->fields.sfmt_teq.f
11643   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11644   int UNUSED written = 0;
11645   IADDR UNUSED pc = abuf->addr;
11646   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11647
11648 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)))) {
11649 {
11650 ; /*clobber*/
11651 ; /*clobber*/
11652 ; /*clobber*/
11653 ; /*clobber*/
11654 if (NEBI (CPU (h_psr_esr), 0)) {
11655 {
11656 ; /*clobber*/
11657 ; /*clobber*/
11658 ; /*clobber*/
11659 ; /*clobber*/
11660 }
11661 }
11662 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11663 }
11664 }
11665
11666   abuf->written = written;
11667   return vpc;
11668 #undef FLD
11669 }
11670
11671 /* tge: tge$pack $ICCi_2,$GRi,$GRj */
11672
11673 static SEM_PC
11674 SEM_FN_NAME (frvbf,tge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11675 {
11676 #define FLD(f) abuf->fields.sfmt_teq.f
11677   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11678   int UNUSED written = 0;
11679   IADDR UNUSED pc = abuf->addr;
11680   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11681
11682 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))))) {
11683 {
11684 ; /*clobber*/
11685 ; /*clobber*/
11686 ; /*clobber*/
11687 ; /*clobber*/
11688 if (NEBI (CPU (h_psr_esr), 0)) {
11689 {
11690 ; /*clobber*/
11691 ; /*clobber*/
11692 ; /*clobber*/
11693 ; /*clobber*/
11694 }
11695 }
11696 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11697 }
11698 }
11699
11700   abuf->written = written;
11701   return vpc;
11702 #undef FLD
11703 }
11704
11705 /* tls: tls$pack $ICCi_2,$GRi,$GRj */
11706
11707 static SEM_PC
11708 SEM_FN_NAME (frvbf,tls) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11709 {
11710 #define FLD(f) abuf->fields.sfmt_teq.f
11711   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11712   int UNUSED written = 0;
11713   IADDR UNUSED pc = abuf->addr;
11714   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11715
11716 if (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)))) {
11717 {
11718 ; /*clobber*/
11719 ; /*clobber*/
11720 ; /*clobber*/
11721 ; /*clobber*/
11722 if (NEBI (CPU (h_psr_esr), 0)) {
11723 {
11724 ; /*clobber*/
11725 ; /*clobber*/
11726 ; /*clobber*/
11727 ; /*clobber*/
11728 }
11729 }
11730 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11731 }
11732 }
11733
11734   abuf->written = written;
11735   return vpc;
11736 #undef FLD
11737 }
11738
11739 /* thi: thi$pack $ICCi_2,$GRi,$GRj */
11740
11741 static SEM_PC
11742 SEM_FN_NAME (frvbf,thi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11743 {
11744 #define FLD(f) abuf->fields.sfmt_teq.f
11745   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11746   int UNUSED written = 0;
11747   IADDR UNUSED pc = abuf->addr;
11748   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11749
11750 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))))) {
11751 {
11752 ; /*clobber*/
11753 ; /*clobber*/
11754 ; /*clobber*/
11755 ; /*clobber*/
11756 if (NEBI (CPU (h_psr_esr), 0)) {
11757 {
11758 ; /*clobber*/
11759 ; /*clobber*/
11760 ; /*clobber*/
11761 ; /*clobber*/
11762 }
11763 }
11764 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11765 }
11766 }
11767
11768   abuf->written = written;
11769   return vpc;
11770 #undef FLD
11771 }
11772
11773 /* tc: tc$pack $ICCi_2,$GRi,$GRj */
11774
11775 static SEM_PC
11776 SEM_FN_NAME (frvbf,tc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11777 {
11778 #define FLD(f) abuf->fields.sfmt_teq.f
11779   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11780   int UNUSED written = 0;
11781   IADDR UNUSED pc = abuf->addr;
11782   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11783
11784 if (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1))) {
11785 {
11786 ; /*clobber*/
11787 ; /*clobber*/
11788 ; /*clobber*/
11789 ; /*clobber*/
11790 if (NEBI (CPU (h_psr_esr), 0)) {
11791 {
11792 ; /*clobber*/
11793 ; /*clobber*/
11794 ; /*clobber*/
11795 ; /*clobber*/
11796 }
11797 }
11798 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11799 }
11800 }
11801
11802   abuf->written = written;
11803   return vpc;
11804 #undef FLD
11805 }
11806
11807 /* tnc: tnc$pack $ICCi_2,$GRi,$GRj */
11808
11809 static SEM_PC
11810 SEM_FN_NAME (frvbf,tnc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11811 {
11812 #define FLD(f) abuf->fields.sfmt_teq.f
11813   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11814   int UNUSED written = 0;
11815   IADDR UNUSED pc = abuf->addr;
11816   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11817
11818 if (NOTBI (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)))) {
11819 {
11820 ; /*clobber*/
11821 ; /*clobber*/
11822 ; /*clobber*/
11823 ; /*clobber*/
11824 if (NEBI (CPU (h_psr_esr), 0)) {
11825 {
11826 ; /*clobber*/
11827 ; /*clobber*/
11828 ; /*clobber*/
11829 ; /*clobber*/
11830 }
11831 }
11832 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11833 }
11834 }
11835
11836   abuf->written = written;
11837   return vpc;
11838 #undef FLD
11839 }
11840
11841 /* tn: tn$pack $ICCi_2,$GRi,$GRj */
11842
11843 static SEM_PC
11844 SEM_FN_NAME (frvbf,tn) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11845 {
11846 #define FLD(f) abuf->fields.sfmt_teq.f
11847   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11848   int UNUSED written = 0;
11849   IADDR UNUSED pc = abuf->addr;
11850   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11851
11852 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3))) {
11853 {
11854 ; /*clobber*/
11855 ; /*clobber*/
11856 ; /*clobber*/
11857 ; /*clobber*/
11858 if (NEBI (CPU (h_psr_esr), 0)) {
11859 {
11860 ; /*clobber*/
11861 ; /*clobber*/
11862 ; /*clobber*/
11863 ; /*clobber*/
11864 }
11865 }
11866 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11867 }
11868 }
11869
11870   abuf->written = written;
11871   return vpc;
11872 #undef FLD
11873 }
11874
11875 /* tp: tp$pack $ICCi_2,$GRi,$GRj */
11876
11877 static SEM_PC
11878 SEM_FN_NAME (frvbf,tp) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11879 {
11880 #define FLD(f) abuf->fields.sfmt_teq.f
11881   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11882   int UNUSED written = 0;
11883   IADDR UNUSED pc = abuf->addr;
11884   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11885
11886 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3)))) {
11887 {
11888 ; /*clobber*/
11889 ; /*clobber*/
11890 ; /*clobber*/
11891 ; /*clobber*/
11892 if (NEBI (CPU (h_psr_esr), 0)) {
11893 {
11894 ; /*clobber*/
11895 ; /*clobber*/
11896 ; /*clobber*/
11897 ; /*clobber*/
11898 }
11899 }
11900 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11901 }
11902 }
11903
11904   abuf->written = written;
11905   return vpc;
11906 #undef FLD
11907 }
11908
11909 /* tv: tv$pack $ICCi_2,$GRi,$GRj */
11910
11911 static SEM_PC
11912 SEM_FN_NAME (frvbf,tv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11913 {
11914 #define FLD(f) abuf->fields.sfmt_teq.f
11915   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11916   int UNUSED written = 0;
11917   IADDR UNUSED pc = abuf->addr;
11918   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11919
11920 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1))) {
11921 {
11922 ; /*clobber*/
11923 ; /*clobber*/
11924 ; /*clobber*/
11925 ; /*clobber*/
11926 if (NEBI (CPU (h_psr_esr), 0)) {
11927 {
11928 ; /*clobber*/
11929 ; /*clobber*/
11930 ; /*clobber*/
11931 ; /*clobber*/
11932 }
11933 }
11934 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11935 }
11936 }
11937
11938   abuf->written = written;
11939   return vpc;
11940 #undef FLD
11941 }
11942
11943 /* tnv: tnv$pack $ICCi_2,$GRi,$GRj */
11944
11945 static SEM_PC
11946 SEM_FN_NAME (frvbf,tnv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11947 {
11948 #define FLD(f) abuf->fields.sfmt_teq.f
11949   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11950   int UNUSED written = 0;
11951   IADDR UNUSED pc = abuf->addr;
11952   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11953
11954 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1)))) {
11955 {
11956 ; /*clobber*/
11957 ; /*clobber*/
11958 ; /*clobber*/
11959 ; /*clobber*/
11960 if (NEBI (CPU (h_psr_esr), 0)) {
11961 {
11962 ; /*clobber*/
11963 ; /*clobber*/
11964 ; /*clobber*/
11965 ; /*clobber*/
11966 }
11967 }
11968 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11969 }
11970 }
11971
11972   abuf->written = written;
11973   return vpc;
11974 #undef FLD
11975 }
11976
11977 /* ftra: ftra$pack $GRi,$GRj */
11978
11979 static SEM_PC
11980 SEM_FN_NAME (frvbf,ftra) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11981 {
11982 #define FLD(f) abuf->fields.sfmt_ftne.f
11983   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11984   int UNUSED written = 0;
11985   IADDR UNUSED pc = abuf->addr;
11986   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11987
11988 {
11989 ; /*clobber*/
11990 ; /*clobber*/
11991 ; /*clobber*/
11992 ; /*clobber*/
11993 if (NEBI (CPU (h_psr_esr), 0)) {
11994 {
11995 ; /*clobber*/
11996 ; /*clobber*/
11997 ; /*clobber*/
11998 ; /*clobber*/
11999 }
12000 }
12001 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12002 }
12003
12004   abuf->written = written;
12005   return vpc;
12006 #undef FLD
12007 }
12008
12009 /* ftno: ftno$pack */
12010
12011 static SEM_PC
12012 SEM_FN_NAME (frvbf,ftno) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12013 {
12014 #define FLD(f) abuf->fields.fmt_empty.f
12015   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12016   int UNUSED written = 0;
12017   IADDR UNUSED pc = abuf->addr;
12018   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12019
12020 ((void) 0); /*nop*/
12021
12022   return vpc;
12023 #undef FLD
12024 }
12025
12026 /* ftne: ftne$pack $FCCi_2,$GRi,$GRj */
12027
12028 static SEM_PC
12029 SEM_FN_NAME (frvbf,ftne) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12030 {
12031 #define FLD(f) abuf->fields.sfmt_ftne.f
12032   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12033   int UNUSED written = 0;
12034   IADDR UNUSED pc = abuf->addr;
12035   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12036
12037 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))))) {
12038 {
12039 ; /*clobber*/
12040 ; /*clobber*/
12041 ; /*clobber*/
12042 ; /*clobber*/
12043 if (NEBI (CPU (h_psr_esr), 0)) {
12044 {
12045 ; /*clobber*/
12046 ; /*clobber*/
12047 ; /*clobber*/
12048 ; /*clobber*/
12049 }
12050 }
12051 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12052 }
12053 }
12054
12055   abuf->written = written;
12056   return vpc;
12057 #undef FLD
12058 }
12059
12060 /* fteq: fteq$pack $FCCi_2,$GRi,$GRj */
12061
12062 static SEM_PC
12063 SEM_FN_NAME (frvbf,fteq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12064 {
12065 #define FLD(f) abuf->fields.sfmt_ftne.f
12066   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12067   int UNUSED written = 0;
12068   IADDR UNUSED pc = abuf->addr;
12069   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12070
12071 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3))) {
12072 {
12073 ; /*clobber*/
12074 ; /*clobber*/
12075 ; /*clobber*/
12076 ; /*clobber*/
12077 if (NEBI (CPU (h_psr_esr), 0)) {
12078 {
12079 ; /*clobber*/
12080 ; /*clobber*/
12081 ; /*clobber*/
12082 ; /*clobber*/
12083 }
12084 }
12085 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12086 }
12087 }
12088
12089   abuf->written = written;
12090   return vpc;
12091 #undef FLD
12092 }
12093
12094 /* ftlg: ftlg$pack $FCCi_2,$GRi,$GRj */
12095
12096 static SEM_PC
12097 SEM_FN_NAME (frvbf,ftlg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12098 {
12099 #define FLD(f) abuf->fields.sfmt_ftne.f
12100   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12101   int UNUSED written = 0;
12102   IADDR UNUSED pc = abuf->addr;
12103   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12104
12105 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)))) {
12106 {
12107 ; /*clobber*/
12108 ; /*clobber*/
12109 ; /*clobber*/
12110 ; /*clobber*/
12111 if (NEBI (CPU (h_psr_esr), 0)) {
12112 {
12113 ; /*clobber*/
12114 ; /*clobber*/
12115 ; /*clobber*/
12116 ; /*clobber*/
12117 }
12118 }
12119 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12120 }
12121 }
12122
12123   abuf->written = written;
12124   return vpc;
12125 #undef FLD
12126 }
12127
12128 /* ftue: ftue$pack $FCCi_2,$GRi,$GRj */
12129
12130 static SEM_PC
12131 SEM_FN_NAME (frvbf,ftue) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12132 {
12133 #define FLD(f) abuf->fields.sfmt_ftne.f
12134   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12135   int UNUSED written = 0;
12136   IADDR UNUSED pc = abuf->addr;
12137   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12138
12139 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
12140 {
12141 ; /*clobber*/
12142 ; /*clobber*/
12143 ; /*clobber*/
12144 ; /*clobber*/
12145 if (NEBI (CPU (h_psr_esr), 0)) {
12146 {
12147 ; /*clobber*/
12148 ; /*clobber*/
12149 ; /*clobber*/
12150 ; /*clobber*/
12151 }
12152 }
12153 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12154 }
12155 }
12156
12157   abuf->written = written;
12158   return vpc;
12159 #undef FLD
12160 }
12161
12162 /* ftul: ftul$pack $FCCi_2,$GRi,$GRj */
12163
12164 static SEM_PC
12165 SEM_FN_NAME (frvbf,ftul) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12166 {
12167 #define FLD(f) abuf->fields.sfmt_ftne.f
12168   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12169   int UNUSED written = 0;
12170   IADDR UNUSED pc = abuf->addr;
12171   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12172
12173 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
12174 {
12175 ; /*clobber*/
12176 ; /*clobber*/
12177 ; /*clobber*/
12178 ; /*clobber*/
12179 if (NEBI (CPU (h_psr_esr), 0)) {
12180 {
12181 ; /*clobber*/
12182 ; /*clobber*/
12183 ; /*clobber*/
12184 ; /*clobber*/
12185 }
12186 }
12187 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12188 }
12189 }
12190
12191   abuf->written = written;
12192   return vpc;
12193 #undef FLD
12194 }
12195
12196 /* ftge: ftge$pack $FCCi_2,$GRi,$GRj */
12197
12198 static SEM_PC
12199 SEM_FN_NAME (frvbf,ftge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12200 {
12201 #define FLD(f) abuf->fields.sfmt_ftne.f
12202   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12203   int UNUSED written = 0;
12204   IADDR UNUSED pc = abuf->addr;
12205   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12206
12207 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)))) {
12208 {
12209 ; /*clobber*/
12210 ; /*clobber*/
12211 ; /*clobber*/
12212 ; /*clobber*/
12213 if (NEBI (CPU (h_psr_esr), 0)) {
12214 {
12215 ; /*clobber*/
12216 ; /*clobber*/
12217 ; /*clobber*/
12218 ; /*clobber*/
12219 }
12220 }
12221 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12222 }
12223 }
12224
12225   abuf->written = written;
12226   return vpc;
12227 #undef FLD
12228 }
12229
12230 /* ftlt: ftlt$pack $FCCi_2,$GRi,$GRj */
12231
12232 static SEM_PC
12233 SEM_FN_NAME (frvbf,ftlt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12234 {
12235 #define FLD(f) abuf->fields.sfmt_ftne.f
12236   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12237   int UNUSED written = 0;
12238   IADDR UNUSED pc = abuf->addr;
12239   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12240
12241 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2))) {
12242 {
12243 ; /*clobber*/
12244 ; /*clobber*/
12245 ; /*clobber*/
12246 ; /*clobber*/
12247 if (NEBI (CPU (h_psr_esr), 0)) {
12248 {
12249 ; /*clobber*/
12250 ; /*clobber*/
12251 ; /*clobber*/
12252 ; /*clobber*/
12253 }
12254 }
12255 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12256 }
12257 }
12258
12259   abuf->written = written;
12260   return vpc;
12261 #undef FLD
12262 }
12263
12264 /* ftuge: ftuge$pack $FCCi_2,$GRi,$GRj */
12265
12266 static SEM_PC
12267 SEM_FN_NAME (frvbf,ftuge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12268 {
12269 #define FLD(f) abuf->fields.sfmt_ftne.f
12270   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12271   int UNUSED written = 0;
12272   IADDR UNUSED pc = abuf->addr;
12273   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12274
12275 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))))) {
12276 {
12277 ; /*clobber*/
12278 ; /*clobber*/
12279 ; /*clobber*/
12280 ; /*clobber*/
12281 if (NEBI (CPU (h_psr_esr), 0)) {
12282 {
12283 ; /*clobber*/
12284 ; /*clobber*/
12285 ; /*clobber*/
12286 ; /*clobber*/
12287 }
12288 }
12289 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12290 }
12291 }
12292
12293   abuf->written = written;
12294   return vpc;
12295 #undef FLD
12296 }
12297
12298 /* ftug: ftug$pack $FCCi_2,$GRi,$GRj */
12299
12300 static SEM_PC
12301 SEM_FN_NAME (frvbf,ftug) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12302 {
12303 #define FLD(f) abuf->fields.sfmt_ftne.f
12304   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12305   int UNUSED written = 0;
12306   IADDR UNUSED pc = abuf->addr;
12307   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12308
12309 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
12310 {
12311 ; /*clobber*/
12312 ; /*clobber*/
12313 ; /*clobber*/
12314 ; /*clobber*/
12315 if (NEBI (CPU (h_psr_esr), 0)) {
12316 {
12317 ; /*clobber*/
12318 ; /*clobber*/
12319 ; /*clobber*/
12320 ; /*clobber*/
12321 }
12322 }
12323 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12324 }
12325 }
12326
12327   abuf->written = written;
12328   return vpc;
12329 #undef FLD
12330 }
12331
12332 /* ftle: ftle$pack $FCCi_2,$GRi,$GRj */
12333
12334 static SEM_PC
12335 SEM_FN_NAME (frvbf,ftle) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12336 {
12337 #define FLD(f) abuf->fields.sfmt_ftne.f
12338   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12339   int UNUSED written = 0;
12340   IADDR UNUSED pc = abuf->addr;
12341   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12342
12343 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)))) {
12344 {
12345 ; /*clobber*/
12346 ; /*clobber*/
12347 ; /*clobber*/
12348 ; /*clobber*/
12349 if (NEBI (CPU (h_psr_esr), 0)) {
12350 {
12351 ; /*clobber*/
12352 ; /*clobber*/
12353 ; /*clobber*/
12354 ; /*clobber*/
12355 }
12356 }
12357 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12358 }
12359 }
12360
12361   abuf->written = written;
12362   return vpc;
12363 #undef FLD
12364 }
12365
12366 /* ftgt: ftgt$pack $FCCi_2,$GRi,$GRj */
12367
12368 static SEM_PC
12369 SEM_FN_NAME (frvbf,ftgt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12370 {
12371 #define FLD(f) abuf->fields.sfmt_ftne.f
12372   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12373   int UNUSED written = 0;
12374   IADDR UNUSED pc = abuf->addr;
12375   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12376
12377 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1))) {
12378 {
12379 ; /*clobber*/
12380 ; /*clobber*/
12381 ; /*clobber*/
12382 ; /*clobber*/
12383 if (NEBI (CPU (h_psr_esr), 0)) {
12384 {
12385 ; /*clobber*/
12386 ; /*clobber*/
12387 ; /*clobber*/
12388 ; /*clobber*/
12389 }
12390 }
12391 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12392 }
12393 }
12394
12395   abuf->written = written;
12396   return vpc;
12397 #undef FLD
12398 }
12399
12400 /* ftule: ftule$pack $FCCi_2,$GRi,$GRj */
12401
12402 static SEM_PC
12403 SEM_FN_NAME (frvbf,ftule) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12404 {
12405 #define FLD(f) abuf->fields.sfmt_ftne.f
12406   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12407   int UNUSED written = 0;
12408   IADDR UNUSED pc = abuf->addr;
12409   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12410
12411 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))))) {
12412 {
12413 ; /*clobber*/
12414 ; /*clobber*/
12415 ; /*clobber*/
12416 ; /*clobber*/
12417 if (NEBI (CPU (h_psr_esr), 0)) {
12418 {
12419 ; /*clobber*/
12420 ; /*clobber*/
12421 ; /*clobber*/
12422 ; /*clobber*/
12423 }
12424 }
12425 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12426 }
12427 }
12428
12429   abuf->written = written;
12430   return vpc;
12431 #undef FLD
12432 }
12433
12434 /* ftu: ftu$pack $FCCi_2,$GRi,$GRj */
12435
12436 static SEM_PC
12437 SEM_FN_NAME (frvbf,ftu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12438 {
12439 #define FLD(f) abuf->fields.sfmt_ftne.f
12440   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12441   int UNUSED written = 0;
12442   IADDR UNUSED pc = abuf->addr;
12443   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12444
12445 if (TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1))) {
12446 {
12447 ; /*clobber*/
12448 ; /*clobber*/
12449 ; /*clobber*/
12450 ; /*clobber*/
12451 if (NEBI (CPU (h_psr_esr), 0)) {
12452 {
12453 ; /*clobber*/
12454 ; /*clobber*/
12455 ; /*clobber*/
12456 ; /*clobber*/
12457 }
12458 }
12459 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12460 }
12461 }
12462
12463   abuf->written = written;
12464   return vpc;
12465 #undef FLD
12466 }
12467
12468 /* fto: fto$pack $FCCi_2,$GRi,$GRj */
12469
12470 static SEM_PC
12471 SEM_FN_NAME (frvbf,fto) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12472 {
12473 #define FLD(f) abuf->fields.sfmt_ftne.f
12474   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12475   int UNUSED written = 0;
12476   IADDR UNUSED pc = abuf->addr;
12477   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12478
12479 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))))) {
12480 {
12481 ; /*clobber*/
12482 ; /*clobber*/
12483 ; /*clobber*/
12484 ; /*clobber*/
12485 if (NEBI (CPU (h_psr_esr), 0)) {
12486 {
12487 ; /*clobber*/
12488 ; /*clobber*/
12489 ; /*clobber*/
12490 ; /*clobber*/
12491 }
12492 }
12493 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12494 }
12495 }
12496
12497   abuf->written = written;
12498   return vpc;
12499 #undef FLD
12500 }
12501
12502 /* tira: tira$pack $GRi,$s12 */
12503
12504 static SEM_PC
12505 SEM_FN_NAME (frvbf,tira) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12506 {
12507 #define FLD(f) abuf->fields.sfmt_ftine.f
12508   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12509   int UNUSED written = 0;
12510   IADDR UNUSED pc = abuf->addr;
12511   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12512
12513 {
12514 ; /*clobber*/
12515 ; /*clobber*/
12516 ; /*clobber*/
12517 ; /*clobber*/
12518 if (NEBI (CPU (h_psr_esr), 0)) {
12519 {
12520 ; /*clobber*/
12521 ; /*clobber*/
12522 ; /*clobber*/
12523 ; /*clobber*/
12524 }
12525 }
12526 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12527 }
12528
12529   abuf->written = written;
12530   return vpc;
12531 #undef FLD
12532 }
12533
12534 /* tino: tino$pack */
12535
12536 static SEM_PC
12537 SEM_FN_NAME (frvbf,tino) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12538 {
12539 #define FLD(f) abuf->fields.fmt_empty.f
12540   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12541   int UNUSED written = 0;
12542   IADDR UNUSED pc = abuf->addr;
12543   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12544
12545 ((void) 0); /*nop*/
12546
12547   return vpc;
12548 #undef FLD
12549 }
12550
12551 /* tieq: tieq$pack $ICCi_2,$GRi,$s12 */
12552
12553 static SEM_PC
12554 SEM_FN_NAME (frvbf,tieq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12555 {
12556 #define FLD(f) abuf->fields.sfmt_tieq.f
12557   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12558   int UNUSED written = 0;
12559   IADDR UNUSED pc = abuf->addr;
12560   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12561
12562 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2))) {
12563 {
12564 ; /*clobber*/
12565 ; /*clobber*/
12566 ; /*clobber*/
12567 ; /*clobber*/
12568 if (NEBI (CPU (h_psr_esr), 0)) {
12569 {
12570 ; /*clobber*/
12571 ; /*clobber*/
12572 ; /*clobber*/
12573 ; /*clobber*/
12574 }
12575 }
12576 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12577 }
12578 }
12579
12580   abuf->written = written;
12581   return vpc;
12582 #undef FLD
12583 }
12584
12585 /* tine: tine$pack $ICCi_2,$GRi,$s12 */
12586
12587 static SEM_PC
12588 SEM_FN_NAME (frvbf,tine) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12589 {
12590 #define FLD(f) abuf->fields.sfmt_tieq.f
12591   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12592   int UNUSED written = 0;
12593   IADDR UNUSED pc = abuf->addr;
12594   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12595
12596 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)))) {
12597 {
12598 ; /*clobber*/
12599 ; /*clobber*/
12600 ; /*clobber*/
12601 ; /*clobber*/
12602 if (NEBI (CPU (h_psr_esr), 0)) {
12603 {
12604 ; /*clobber*/
12605 ; /*clobber*/
12606 ; /*clobber*/
12607 ; /*clobber*/
12608 }
12609 }
12610 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12611 }
12612 }
12613
12614   abuf->written = written;
12615   return vpc;
12616 #undef FLD
12617 }
12618
12619 /* tile: tile$pack $ICCi_2,$GRi,$s12 */
12620
12621 static SEM_PC
12622 SEM_FN_NAME (frvbf,tile) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12623 {
12624 #define FLD(f) abuf->fields.sfmt_tieq.f
12625   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12626   int UNUSED written = 0;
12627   IADDR UNUSED pc = abuf->addr;
12628   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12629
12630 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))))) {
12631 {
12632 ; /*clobber*/
12633 ; /*clobber*/
12634 ; /*clobber*/
12635 ; /*clobber*/
12636 if (NEBI (CPU (h_psr_esr), 0)) {
12637 {
12638 ; /*clobber*/
12639 ; /*clobber*/
12640 ; /*clobber*/
12641 ; /*clobber*/
12642 }
12643 }
12644 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12645 }
12646 }
12647
12648   abuf->written = written;
12649   return vpc;
12650 #undef FLD
12651 }
12652
12653 /* tigt: tigt$pack $ICCi_2,$GRi,$s12 */
12654
12655 static SEM_PC
12656 SEM_FN_NAME (frvbf,tigt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12657 {
12658 #define FLD(f) abuf->fields.sfmt_tieq.f
12659   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12660   int UNUSED written = 0;
12661   IADDR UNUSED pc = abuf->addr;
12662   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12663
12664 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)))))) {
12665 {
12666 ; /*clobber*/
12667 ; /*clobber*/
12668 ; /*clobber*/
12669 ; /*clobber*/
12670 if (NEBI (CPU (h_psr_esr), 0)) {
12671 {
12672 ; /*clobber*/
12673 ; /*clobber*/
12674 ; /*clobber*/
12675 ; /*clobber*/
12676 }
12677 }
12678 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12679 }
12680 }
12681
12682   abuf->written = written;
12683   return vpc;
12684 #undef FLD
12685 }
12686
12687 /* tilt: tilt$pack $ICCi_2,$GRi,$s12 */
12688
12689 static SEM_PC
12690 SEM_FN_NAME (frvbf,tilt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12691 {
12692 #define FLD(f) abuf->fields.sfmt_tieq.f
12693   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12694   int UNUSED written = 0;
12695   IADDR UNUSED pc = abuf->addr;
12696   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12697
12698 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)))) {
12699 {
12700 ; /*clobber*/
12701 ; /*clobber*/
12702 ; /*clobber*/
12703 ; /*clobber*/
12704 if (NEBI (CPU (h_psr_esr), 0)) {
12705 {
12706 ; /*clobber*/
12707 ; /*clobber*/
12708 ; /*clobber*/
12709 ; /*clobber*/
12710 }
12711 }
12712 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12713 }
12714 }
12715
12716   abuf->written = written;
12717   return vpc;
12718 #undef FLD
12719 }
12720
12721 /* tige: tige$pack $ICCi_2,$GRi,$s12 */
12722
12723 static SEM_PC
12724 SEM_FN_NAME (frvbf,tige) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12725 {
12726 #define FLD(f) abuf->fields.sfmt_tieq.f
12727   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12728   int UNUSED written = 0;
12729   IADDR UNUSED pc = abuf->addr;
12730   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12731
12732 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))))) {
12733 {
12734 ; /*clobber*/
12735 ; /*clobber*/
12736 ; /*clobber*/
12737 ; /*clobber*/
12738 if (NEBI (CPU (h_psr_esr), 0)) {
12739 {
12740 ; /*clobber*/
12741 ; /*clobber*/
12742 ; /*clobber*/
12743 ; /*clobber*/
12744 }
12745 }
12746 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12747 }
12748 }
12749
12750   abuf->written = written;
12751   return vpc;
12752 #undef FLD
12753 }
12754
12755 /* tils: tils$pack $ICCi_2,$GRi,$s12 */
12756
12757 static SEM_PC
12758 SEM_FN_NAME (frvbf,tils) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12759 {
12760 #define FLD(f) abuf->fields.sfmt_tieq.f
12761   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12762   int UNUSED written = 0;
12763   IADDR UNUSED pc = abuf->addr;
12764   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12765
12766 if (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)))) {
12767 {
12768 ; /*clobber*/
12769 ; /*clobber*/
12770 ; /*clobber*/
12771 ; /*clobber*/
12772 if (NEBI (CPU (h_psr_esr), 0)) {
12773 {
12774 ; /*clobber*/
12775 ; /*clobber*/
12776 ; /*clobber*/
12777 ; /*clobber*/
12778 }
12779 }
12780 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12781 }
12782 }
12783
12784   abuf->written = written;
12785   return vpc;
12786 #undef FLD
12787 }
12788
12789 /* tihi: tihi$pack $ICCi_2,$GRi,$s12 */
12790
12791 static SEM_PC
12792 SEM_FN_NAME (frvbf,tihi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12793 {
12794 #define FLD(f) abuf->fields.sfmt_tieq.f
12795   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12796   int UNUSED written = 0;
12797   IADDR UNUSED pc = abuf->addr;
12798   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12799
12800 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))))) {
12801 {
12802 ; /*clobber*/
12803 ; /*clobber*/
12804 ; /*clobber*/
12805 ; /*clobber*/
12806 if (NEBI (CPU (h_psr_esr), 0)) {
12807 {
12808 ; /*clobber*/
12809 ; /*clobber*/
12810 ; /*clobber*/
12811 ; /*clobber*/
12812 }
12813 }
12814 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12815 }
12816 }
12817
12818   abuf->written = written;
12819   return vpc;
12820 #undef FLD
12821 }
12822
12823 /* tic: tic$pack $ICCi_2,$GRi,$s12 */
12824
12825 static SEM_PC
12826 SEM_FN_NAME (frvbf,tic) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12827 {
12828 #define FLD(f) abuf->fields.sfmt_tieq.f
12829   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12830   int UNUSED written = 0;
12831   IADDR UNUSED pc = abuf->addr;
12832   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12833
12834 if (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1))) {
12835 {
12836 ; /*clobber*/
12837 ; /*clobber*/
12838 ; /*clobber*/
12839 ; /*clobber*/
12840 if (NEBI (CPU (h_psr_esr), 0)) {
12841 {
12842 ; /*clobber*/
12843 ; /*clobber*/
12844 ; /*clobber*/
12845 ; /*clobber*/
12846 }
12847 }
12848 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12849 }
12850 }
12851
12852   abuf->written = written;
12853   return vpc;
12854 #undef FLD
12855 }
12856
12857 /* tinc: tinc$pack $ICCi_2,$GRi,$s12 */
12858
12859 static SEM_PC
12860 SEM_FN_NAME (frvbf,tinc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12861 {
12862 #define FLD(f) abuf->fields.sfmt_tieq.f
12863   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12864   int UNUSED written = 0;
12865   IADDR UNUSED pc = abuf->addr;
12866   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12867
12868 if (NOTBI (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)))) {
12869 {
12870 ; /*clobber*/
12871 ; /*clobber*/
12872 ; /*clobber*/
12873 ; /*clobber*/
12874 if (NEBI (CPU (h_psr_esr), 0)) {
12875 {
12876 ; /*clobber*/
12877 ; /*clobber*/
12878 ; /*clobber*/
12879 ; /*clobber*/
12880 }
12881 }
12882 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12883 }
12884 }
12885
12886   abuf->written = written;
12887   return vpc;
12888 #undef FLD
12889 }
12890
12891 /* tin: tin$pack $ICCi_2,$GRi,$s12 */
12892
12893 static SEM_PC
12894 SEM_FN_NAME (frvbf,tin) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12895 {
12896 #define FLD(f) abuf->fields.sfmt_tieq.f
12897   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12898   int UNUSED written = 0;
12899   IADDR UNUSED pc = abuf->addr;
12900   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12901
12902 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3))) {
12903 {
12904 ; /*clobber*/
12905 ; /*clobber*/
12906 ; /*clobber*/
12907 ; /*clobber*/
12908 if (NEBI (CPU (h_psr_esr), 0)) {
12909 {
12910 ; /*clobber*/
12911 ; /*clobber*/
12912 ; /*clobber*/
12913 ; /*clobber*/
12914 }
12915 }
12916 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12917 }
12918 }
12919
12920   abuf->written = written;
12921   return vpc;
12922 #undef FLD
12923 }
12924
12925 /* tip: tip$pack $ICCi_2,$GRi,$s12 */
12926
12927 static SEM_PC
12928 SEM_FN_NAME (frvbf,tip) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12929 {
12930 #define FLD(f) abuf->fields.sfmt_tieq.f
12931   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12932   int UNUSED written = 0;
12933   IADDR UNUSED pc = abuf->addr;
12934   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12935
12936 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3)))) {
12937 {
12938 ; /*clobber*/
12939 ; /*clobber*/
12940 ; /*clobber*/
12941 ; /*clobber*/
12942 if (NEBI (CPU (h_psr_esr), 0)) {
12943 {
12944 ; /*clobber*/
12945 ; /*clobber*/
12946 ; /*clobber*/
12947 ; /*clobber*/
12948 }
12949 }
12950 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12951 }
12952 }
12953
12954   abuf->written = written;
12955   return vpc;
12956 #undef FLD
12957 }
12958
12959 /* tiv: tiv$pack $ICCi_2,$GRi,$s12 */
12960
12961 static SEM_PC
12962 SEM_FN_NAME (frvbf,tiv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12963 {
12964 #define FLD(f) abuf->fields.sfmt_tieq.f
12965   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12966   int UNUSED written = 0;
12967   IADDR UNUSED pc = abuf->addr;
12968   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12969
12970 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1))) {
12971 {
12972 ; /*clobber*/
12973 ; /*clobber*/
12974 ; /*clobber*/
12975 ; /*clobber*/
12976 if (NEBI (CPU (h_psr_esr), 0)) {
12977 {
12978 ; /*clobber*/
12979 ; /*clobber*/
12980 ; /*clobber*/
12981 ; /*clobber*/
12982 }
12983 }
12984 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12985 }
12986 }
12987
12988   abuf->written = written;
12989   return vpc;
12990 #undef FLD
12991 }
12992
12993 /* tinv: tinv$pack $ICCi_2,$GRi,$s12 */
12994
12995 static SEM_PC
12996 SEM_FN_NAME (frvbf,tinv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12997 {
12998 #define FLD(f) abuf->fields.sfmt_tieq.f
12999   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13000   int UNUSED written = 0;
13001   IADDR UNUSED pc = abuf->addr;
13002   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13003
13004 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1)))) {
13005 {
13006 ; /*clobber*/
13007 ; /*clobber*/
13008 ; /*clobber*/
13009 ; /*clobber*/
13010 if (NEBI (CPU (h_psr_esr), 0)) {
13011 {
13012 ; /*clobber*/
13013 ; /*clobber*/
13014 ; /*clobber*/
13015 ; /*clobber*/
13016 }
13017 }
13018 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13019 }
13020 }
13021
13022   abuf->written = written;
13023   return vpc;
13024 #undef FLD
13025 }
13026
13027 /* ftira: ftira$pack $GRi,$s12 */
13028
13029 static SEM_PC
13030 SEM_FN_NAME (frvbf,ftira) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13031 {
13032 #define FLD(f) abuf->fields.sfmt_ftine.f
13033   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13034   int UNUSED written = 0;
13035   IADDR UNUSED pc = abuf->addr;
13036   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13037
13038 {
13039 ; /*clobber*/
13040 ; /*clobber*/
13041 ; /*clobber*/
13042 ; /*clobber*/
13043 if (NEBI (CPU (h_psr_esr), 0)) {
13044 {
13045 ; /*clobber*/
13046 ; /*clobber*/
13047 ; /*clobber*/
13048 ; /*clobber*/
13049 }
13050 }
13051 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13052 }
13053
13054   abuf->written = written;
13055   return vpc;
13056 #undef FLD
13057 }
13058
13059 /* ftino: ftino$pack */
13060
13061 static SEM_PC
13062 SEM_FN_NAME (frvbf,ftino) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13063 {
13064 #define FLD(f) abuf->fields.fmt_empty.f
13065   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13066   int UNUSED written = 0;
13067   IADDR UNUSED pc = abuf->addr;
13068   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13069
13070 ((void) 0); /*nop*/
13071
13072   return vpc;
13073 #undef FLD
13074 }
13075
13076 /* ftine: ftine$pack $FCCi_2,$GRi,$s12 */
13077
13078 static SEM_PC
13079 SEM_FN_NAME (frvbf,ftine) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13080 {
13081 #define FLD(f) abuf->fields.sfmt_ftine.f
13082   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13083   int UNUSED written = 0;
13084   IADDR UNUSED pc = abuf->addr;
13085   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13086
13087 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))))) {
13088 {
13089 ; /*clobber*/
13090 ; /*clobber*/
13091 ; /*clobber*/
13092 ; /*clobber*/
13093 if (NEBI (CPU (h_psr_esr), 0)) {
13094 {
13095 ; /*clobber*/
13096 ; /*clobber*/
13097 ; /*clobber*/
13098 ; /*clobber*/
13099 }
13100 }
13101 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13102 }
13103 }
13104
13105   abuf->written = written;
13106   return vpc;
13107 #undef FLD
13108 }
13109
13110 /* ftieq: ftieq$pack $FCCi_2,$GRi,$s12 */
13111
13112 static SEM_PC
13113 SEM_FN_NAME (frvbf,ftieq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13114 {
13115 #define FLD(f) abuf->fields.sfmt_ftine.f
13116   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13117   int UNUSED written = 0;
13118   IADDR UNUSED pc = abuf->addr;
13119   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13120
13121 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3))) {
13122 {
13123 ; /*clobber*/
13124 ; /*clobber*/
13125 ; /*clobber*/
13126 ; /*clobber*/
13127 if (NEBI (CPU (h_psr_esr), 0)) {
13128 {
13129 ; /*clobber*/
13130 ; /*clobber*/
13131 ; /*clobber*/
13132 ; /*clobber*/
13133 }
13134 }
13135 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13136 }
13137 }
13138
13139   abuf->written = written;
13140   return vpc;
13141 #undef FLD
13142 }
13143
13144 /* ftilg: ftilg$pack $FCCi_2,$GRi,$s12 */
13145
13146 static SEM_PC
13147 SEM_FN_NAME (frvbf,ftilg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13148 {
13149 #define FLD(f) abuf->fields.sfmt_ftine.f
13150   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13151   int UNUSED written = 0;
13152   IADDR UNUSED pc = abuf->addr;
13153   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13154
13155 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)))) {
13156 {
13157 ; /*clobber*/
13158 ; /*clobber*/
13159 ; /*clobber*/
13160 ; /*clobber*/
13161 if (NEBI (CPU (h_psr_esr), 0)) {
13162 {
13163 ; /*clobber*/
13164 ; /*clobber*/
13165 ; /*clobber*/
13166 ; /*clobber*/
13167 }
13168 }
13169 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13170 }
13171 }
13172
13173   abuf->written = written;
13174   return vpc;
13175 #undef FLD
13176 }
13177
13178 /* ftiue: ftiue$pack $FCCi_2,$GRi,$s12 */
13179
13180 static SEM_PC
13181 SEM_FN_NAME (frvbf,ftiue) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13182 {
13183 #define FLD(f) abuf->fields.sfmt_ftine.f
13184   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13185   int UNUSED written = 0;
13186   IADDR UNUSED pc = abuf->addr;
13187   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13188
13189 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
13190 {
13191 ; /*clobber*/
13192 ; /*clobber*/
13193 ; /*clobber*/
13194 ; /*clobber*/
13195 if (NEBI (CPU (h_psr_esr), 0)) {
13196 {
13197 ; /*clobber*/
13198 ; /*clobber*/
13199 ; /*clobber*/
13200 ; /*clobber*/
13201 }
13202 }
13203 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13204 }
13205 }
13206
13207   abuf->written = written;
13208   return vpc;
13209 #undef FLD
13210 }
13211
13212 /* ftiul: ftiul$pack $FCCi_2,$GRi,$s12 */
13213
13214 static SEM_PC
13215 SEM_FN_NAME (frvbf,ftiul) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13216 {
13217 #define FLD(f) abuf->fields.sfmt_ftine.f
13218   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13219   int UNUSED written = 0;
13220   IADDR UNUSED pc = abuf->addr;
13221   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13222
13223 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
13224 {
13225 ; /*clobber*/
13226 ; /*clobber*/
13227 ; /*clobber*/
13228 ; /*clobber*/
13229 if (NEBI (CPU (h_psr_esr), 0)) {
13230 {
13231 ; /*clobber*/
13232 ; /*clobber*/
13233 ; /*clobber*/
13234 ; /*clobber*/
13235 }
13236 }
13237 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13238 }
13239 }
13240
13241   abuf->written = written;
13242   return vpc;
13243 #undef FLD
13244 }
13245
13246 /* ftige: ftige$pack $FCCi_2,$GRi,$s12 */
13247
13248 static SEM_PC
13249 SEM_FN_NAME (frvbf,ftige) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13250 {
13251 #define FLD(f) abuf->fields.sfmt_ftine.f
13252   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13253   int UNUSED written = 0;
13254   IADDR UNUSED pc = abuf->addr;
13255   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13256
13257 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)))) {
13258 {
13259 ; /*clobber*/
13260 ; /*clobber*/
13261 ; /*clobber*/
13262 ; /*clobber*/
13263 if (NEBI (CPU (h_psr_esr), 0)) {
13264 {
13265 ; /*clobber*/
13266 ; /*clobber*/
13267 ; /*clobber*/
13268 ; /*clobber*/
13269 }
13270 }
13271 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13272 }
13273 }
13274
13275   abuf->written = written;
13276   return vpc;
13277 #undef FLD
13278 }
13279
13280 /* ftilt: ftilt$pack $FCCi_2,$GRi,$s12 */
13281
13282 static SEM_PC
13283 SEM_FN_NAME (frvbf,ftilt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13284 {
13285 #define FLD(f) abuf->fields.sfmt_ftine.f
13286   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13287   int UNUSED written = 0;
13288   IADDR UNUSED pc = abuf->addr;
13289   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13290
13291 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2))) {
13292 {
13293 ; /*clobber*/
13294 ; /*clobber*/
13295 ; /*clobber*/
13296 ; /*clobber*/
13297 if (NEBI (CPU (h_psr_esr), 0)) {
13298 {
13299 ; /*clobber*/
13300 ; /*clobber*/
13301 ; /*clobber*/
13302 ; /*clobber*/
13303 }
13304 }
13305 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13306 }
13307 }
13308
13309   abuf->written = written;
13310   return vpc;
13311 #undef FLD
13312 }
13313
13314 /* ftiuge: ftiuge$pack $FCCi_2,$GRi,$s12 */
13315
13316 static SEM_PC
13317 SEM_FN_NAME (frvbf,ftiuge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13318 {
13319 #define FLD(f) abuf->fields.sfmt_ftine.f
13320   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13321   int UNUSED written = 0;
13322   IADDR UNUSED pc = abuf->addr;
13323   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13324
13325 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))))) {
13326 {
13327 ; /*clobber*/
13328 ; /*clobber*/
13329 ; /*clobber*/
13330 ; /*clobber*/
13331 if (NEBI (CPU (h_psr_esr), 0)) {
13332 {
13333 ; /*clobber*/
13334 ; /*clobber*/
13335 ; /*clobber*/
13336 ; /*clobber*/
13337 }
13338 }
13339 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13340 }
13341 }
13342
13343   abuf->written = written;
13344   return vpc;
13345 #undef FLD
13346 }
13347
13348 /* ftiug: ftiug$pack $FCCi_2,$GRi,$s12 */
13349
13350 static SEM_PC
13351 SEM_FN_NAME (frvbf,ftiug) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13352 {
13353 #define FLD(f) abuf->fields.sfmt_ftine.f
13354   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13355   int UNUSED written = 0;
13356   IADDR UNUSED pc = abuf->addr;
13357   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13358
13359 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
13360 {
13361 ; /*clobber*/
13362 ; /*clobber*/
13363 ; /*clobber*/
13364 ; /*clobber*/
13365 if (NEBI (CPU (h_psr_esr), 0)) {
13366 {
13367 ; /*clobber*/
13368 ; /*clobber*/
13369 ; /*clobber*/
13370 ; /*clobber*/
13371 }
13372 }
13373 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13374 }
13375 }
13376
13377   abuf->written = written;
13378   return vpc;
13379 #undef FLD
13380 }
13381
13382 /* ftile: ftile$pack $FCCi_2,$GRi,$s12 */
13383
13384 static SEM_PC
13385 SEM_FN_NAME (frvbf,ftile) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13386 {
13387 #define FLD(f) abuf->fields.sfmt_ftine.f
13388   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13389   int UNUSED written = 0;
13390   IADDR UNUSED pc = abuf->addr;
13391   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13392
13393 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)))) {
13394 {
13395 ; /*clobber*/
13396 ; /*clobber*/
13397 ; /*clobber*/
13398 ; /*clobber*/
13399 if (NEBI (CPU (h_psr_esr), 0)) {
13400 {
13401 ; /*clobber*/
13402 ; /*clobber*/
13403 ; /*clobber*/
13404 ; /*clobber*/
13405 }
13406 }
13407 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13408 }
13409 }
13410
13411   abuf->written = written;
13412   return vpc;
13413 #undef FLD
13414 }
13415
13416 /* ftigt: ftigt$pack $FCCi_2,$GRi,$s12 */
13417
13418 static SEM_PC
13419 SEM_FN_NAME (frvbf,ftigt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13420 {
13421 #define FLD(f) abuf->fields.sfmt_ftine.f
13422   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13423   int UNUSED written = 0;
13424   IADDR UNUSED pc = abuf->addr;
13425   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13426
13427 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1))) {
13428 {
13429 ; /*clobber*/
13430 ; /*clobber*/
13431 ; /*clobber*/
13432 ; /*clobber*/
13433 if (NEBI (CPU (h_psr_esr), 0)) {
13434 {
13435 ; /*clobber*/
13436 ; /*clobber*/
13437 ; /*clobber*/
13438 ; /*clobber*/
13439 }
13440 }
13441 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13442 }
13443 }
13444
13445   abuf->written = written;
13446   return vpc;
13447 #undef FLD
13448 }
13449
13450 /* ftiule: ftiule$pack $FCCi_2,$GRi,$s12 */
13451
13452 static SEM_PC
13453 SEM_FN_NAME (frvbf,ftiule) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13454 {
13455 #define FLD(f) abuf->fields.sfmt_ftine.f
13456   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13457   int UNUSED written = 0;
13458   IADDR UNUSED pc = abuf->addr;
13459   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13460
13461 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))))) {
13462 {
13463 ; /*clobber*/
13464 ; /*clobber*/
13465 ; /*clobber*/
13466 ; /*clobber*/
13467 if (NEBI (CPU (h_psr_esr), 0)) {
13468 {
13469 ; /*clobber*/
13470 ; /*clobber*/
13471 ; /*clobber*/
13472 ; /*clobber*/
13473 }
13474 }
13475 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13476 }
13477 }
13478
13479   abuf->written = written;
13480   return vpc;
13481 #undef FLD
13482 }
13483
13484 /* ftiu: ftiu$pack $FCCi_2,$GRi,$s12 */
13485
13486 static SEM_PC
13487 SEM_FN_NAME (frvbf,ftiu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13488 {
13489 #define FLD(f) abuf->fields.sfmt_ftine.f
13490   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13491   int UNUSED written = 0;
13492   IADDR UNUSED pc = abuf->addr;
13493   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13494
13495 if (TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1))) {
13496 {
13497 ; /*clobber*/
13498 ; /*clobber*/
13499 ; /*clobber*/
13500 ; /*clobber*/
13501 if (NEBI (CPU (h_psr_esr), 0)) {
13502 {
13503 ; /*clobber*/
13504 ; /*clobber*/
13505 ; /*clobber*/
13506 ; /*clobber*/
13507 }
13508 }
13509 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13510 }
13511 }
13512
13513   abuf->written = written;
13514   return vpc;
13515 #undef FLD
13516 }
13517
13518 /* ftio: ftio$pack $FCCi_2,$GRi,$s12 */
13519
13520 static SEM_PC
13521 SEM_FN_NAME (frvbf,ftio) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13522 {
13523 #define FLD(f) abuf->fields.sfmt_ftine.f
13524   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13525   int UNUSED written = 0;
13526   IADDR UNUSED pc = abuf->addr;
13527   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13528
13529 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))))) {
13530 {
13531 ; /*clobber*/
13532 ; /*clobber*/
13533 ; /*clobber*/
13534 ; /*clobber*/
13535 if (NEBI (CPU (h_psr_esr), 0)) {
13536 {
13537 ; /*clobber*/
13538 ; /*clobber*/
13539 ; /*clobber*/
13540 ; /*clobber*/
13541 }
13542 }
13543 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13544 }
13545 }
13546
13547   abuf->written = written;
13548   return vpc;
13549 #undef FLD
13550 }
13551
13552 /* break: break$pack */
13553
13554 static SEM_PC
13555 SEM_FN_NAME (frvbf,break) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13556 {
13557 #define FLD(f) abuf->fields.sfmt_break.f
13558   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13559   int UNUSED written = 0;
13560   IADDR UNUSED pc = abuf->addr;
13561   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13562
13563 {
13564 ; /*clobber*/
13565 ; /*clobber*/
13566 ; /*clobber*/
13567 ; /*clobber*/
13568 ; /*clobber*/
13569 ; /*clobber*/
13570 frv_break (current_cpu);
13571 }
13572
13573   return vpc;
13574 #undef FLD
13575 }
13576
13577 /* mtrap: mtrap$pack */
13578
13579 static SEM_PC
13580 SEM_FN_NAME (frvbf,mtrap) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13581 {
13582 #define FLD(f) abuf->fields.fmt_empty.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 frv_mtrap (current_cpu);
13589
13590   return vpc;
13591 #undef FLD
13592 }
13593
13594 /* andcr: andcr$pack $CRi,$CRj,$CRk */
13595
13596 static SEM_PC
13597 SEM_FN_NAME (frvbf,andcr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13598 {
13599 #define FLD(f) abuf->fields.sfmt_andcr.f
13600   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13601   int UNUSED written = 0;
13602   IADDR UNUSED pc = abuf->addr;
13603   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13604
13605   {
13606     UQI opval = frvbf_cr_logic (current_cpu, 0, CPU (h_cccr[FLD (f_CRi)]), CPU (h_cccr[FLD (f_CRj)]));
13607     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRk)]), opval);
13608     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13609   }
13610
13611   return vpc;
13612 #undef FLD
13613 }
13614
13615 /* orcr: orcr$pack $CRi,$CRj,$CRk */
13616
13617 static SEM_PC
13618 SEM_FN_NAME (frvbf,orcr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13619 {
13620 #define FLD(f) abuf->fields.sfmt_andcr.f
13621   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13622   int UNUSED written = 0;
13623   IADDR UNUSED pc = abuf->addr;
13624   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13625
13626   {
13627     UQI opval = frvbf_cr_logic (current_cpu, 1, CPU (h_cccr[FLD (f_CRi)]), CPU (h_cccr[FLD (f_CRj)]));
13628     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRk)]), opval);
13629     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13630   }
13631
13632   return vpc;
13633 #undef FLD
13634 }
13635
13636 /* xorcr: xorcr$pack $CRi,$CRj,$CRk */
13637
13638 static SEM_PC
13639 SEM_FN_NAME (frvbf,xorcr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13640 {
13641 #define FLD(f) abuf->fields.sfmt_andcr.f
13642   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13643   int UNUSED written = 0;
13644   IADDR UNUSED pc = abuf->addr;
13645   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13646
13647   {
13648     UQI opval = frvbf_cr_logic (current_cpu, 2, CPU (h_cccr[FLD (f_CRi)]), CPU (h_cccr[FLD (f_CRj)]));
13649     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRk)]), opval);
13650     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13651   }
13652
13653   return vpc;
13654 #undef FLD
13655 }
13656
13657 /* nandcr: nandcr$pack $CRi,$CRj,$CRk */
13658
13659 static SEM_PC
13660 SEM_FN_NAME (frvbf,nandcr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13661 {
13662 #define FLD(f) abuf->fields.sfmt_andcr.f
13663   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13664   int UNUSED written = 0;
13665   IADDR UNUSED pc = abuf->addr;
13666   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13667
13668   {
13669     UQI opval = frvbf_cr_logic (current_cpu, 3, CPU (h_cccr[FLD (f_CRi)]), CPU (h_cccr[FLD (f_CRj)]));
13670     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRk)]), opval);
13671     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13672   }
13673
13674   return vpc;
13675 #undef FLD
13676 }
13677
13678 /* norcr: norcr$pack $CRi,$CRj,$CRk */
13679
13680 static SEM_PC
13681 SEM_FN_NAME (frvbf,norcr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13682 {
13683 #define FLD(f) abuf->fields.sfmt_andcr.f
13684   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13685   int UNUSED written = 0;
13686   IADDR UNUSED pc = abuf->addr;
13687   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13688
13689   {
13690     UQI opval = frvbf_cr_logic (current_cpu, 4, CPU (h_cccr[FLD (f_CRi)]), CPU (h_cccr[FLD (f_CRj)]));
13691     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRk)]), opval);
13692     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13693   }
13694
13695   return vpc;
13696 #undef FLD
13697 }
13698
13699 /* andncr: andncr$pack $CRi,$CRj,$CRk */
13700
13701 static SEM_PC
13702 SEM_FN_NAME (frvbf,andncr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13703 {
13704 #define FLD(f) abuf->fields.sfmt_andcr.f
13705   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13706   int UNUSED written = 0;
13707   IADDR UNUSED pc = abuf->addr;
13708   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13709
13710   {
13711     UQI opval = frvbf_cr_logic (current_cpu, 5, CPU (h_cccr[FLD (f_CRi)]), CPU (h_cccr[FLD (f_CRj)]));
13712     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRk)]), opval);
13713     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13714   }
13715
13716   return vpc;
13717 #undef FLD
13718 }
13719
13720 /* orncr: orncr$pack $CRi,$CRj,$CRk */
13721
13722 static SEM_PC
13723 SEM_FN_NAME (frvbf,orncr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13724 {
13725 #define FLD(f) abuf->fields.sfmt_andcr.f
13726   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13727   int UNUSED written = 0;
13728   IADDR UNUSED pc = abuf->addr;
13729   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13730
13731   {
13732     UQI opval = frvbf_cr_logic (current_cpu, 6, CPU (h_cccr[FLD (f_CRi)]), CPU (h_cccr[FLD (f_CRj)]));
13733     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRk)]), opval);
13734     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13735   }
13736
13737   return vpc;
13738 #undef FLD
13739 }
13740
13741 /* nandncr: nandncr$pack $CRi,$CRj,$CRk */
13742
13743 static SEM_PC
13744 SEM_FN_NAME (frvbf,nandncr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13745 {
13746 #define FLD(f) abuf->fields.sfmt_andcr.f
13747   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13748   int UNUSED written = 0;
13749   IADDR UNUSED pc = abuf->addr;
13750   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13751
13752   {
13753     UQI opval = frvbf_cr_logic (current_cpu, 7, CPU (h_cccr[FLD (f_CRi)]), CPU (h_cccr[FLD (f_CRj)]));
13754     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRk)]), opval);
13755     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13756   }
13757
13758   return vpc;
13759 #undef FLD
13760 }
13761
13762 /* norncr: norncr$pack $CRi,$CRj,$CRk */
13763
13764 static SEM_PC
13765 SEM_FN_NAME (frvbf,norncr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13766 {
13767 #define FLD(f) abuf->fields.sfmt_andcr.f
13768   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13769   int UNUSED written = 0;
13770   IADDR UNUSED pc = abuf->addr;
13771   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13772
13773   {
13774     UQI opval = frvbf_cr_logic (current_cpu, 8, CPU (h_cccr[FLD (f_CRi)]), CPU (h_cccr[FLD (f_CRj)]));
13775     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRk)]), opval);
13776     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13777   }
13778
13779   return vpc;
13780 #undef FLD
13781 }
13782
13783 /* notcr: notcr$pack $CRj,$CRk */
13784
13785 static SEM_PC
13786 SEM_FN_NAME (frvbf,notcr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13787 {
13788 #define FLD(f) abuf->fields.sfmt_andcr.f
13789   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13790   int UNUSED written = 0;
13791   IADDR UNUSED pc = abuf->addr;
13792   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13793
13794   {
13795     UQI opval = XORQI (CPU (h_cccr[FLD (f_CRj)]), 1);
13796     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRk)]), opval);
13797     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13798   }
13799
13800   return vpc;
13801 #undef FLD
13802 }
13803
13804 /* ckra: ckra$pack $CRj_int */
13805
13806 static SEM_PC
13807 SEM_FN_NAME (frvbf,ckra) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13808 {
13809 #define FLD(f) abuf->fields.sfmt_cckeq.f
13810   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13811   int UNUSED written = 0;
13812   IADDR UNUSED pc = abuf->addr;
13813   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13814
13815   {
13816     UQI opval = 3;
13817     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
13818     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13819   }
13820
13821   return vpc;
13822 #undef FLD
13823 }
13824
13825 /* ckno: ckno$pack $CRj_int */
13826
13827 static SEM_PC
13828 SEM_FN_NAME (frvbf,ckno) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13829 {
13830 #define FLD(f) abuf->fields.sfmt_cckeq.f
13831   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13832   int UNUSED written = 0;
13833   IADDR UNUSED pc = abuf->addr;
13834   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13835
13836   {
13837     UQI opval = 2;
13838     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
13839     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13840   }
13841
13842   return vpc;
13843 #undef FLD
13844 }
13845
13846 /* ckeq: ckeq$pack $ICCi_3,$CRj_int */
13847
13848 static SEM_PC
13849 SEM_FN_NAME (frvbf,ckeq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13850 {
13851 #define FLD(f) abuf->fields.sfmt_cckeq.f
13852   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13853   int UNUSED written = 0;
13854   IADDR UNUSED pc = abuf->addr;
13855   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13856
13857 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 4), 2))) {
13858   {
13859     UQI opval = 3;
13860     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
13861     written |= (1 << 1);
13862     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13863   }
13864 } else {
13865   {
13866     UQI opval = 2;
13867     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
13868     written |= (1 << 1);
13869     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13870   }
13871 }
13872
13873   abuf->written = written;
13874   return vpc;
13875 #undef FLD
13876 }
13877
13878 /* ckne: ckne$pack $ICCi_3,$CRj_int */
13879
13880 static SEM_PC
13881 SEM_FN_NAME (frvbf,ckne) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13882 {
13883 #define FLD(f) abuf->fields.sfmt_cckeq.f
13884   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13885   int UNUSED written = 0;
13886   IADDR UNUSED pc = abuf->addr;
13887   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13888
13889 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 4), 2)))) {
13890   {
13891     UQI opval = 3;
13892     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
13893     written |= (1 << 1);
13894     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13895   }
13896 } else {
13897   {
13898     UQI opval = 2;
13899     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
13900     written |= (1 << 1);
13901     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13902   }
13903 }
13904
13905   abuf->written = written;
13906   return vpc;
13907 #undef FLD
13908 }
13909
13910 /* ckle: ckle$pack $ICCi_3,$CRj_int */
13911
13912 static SEM_PC
13913 SEM_FN_NAME (frvbf,ckle) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13914 {
13915 #define FLD(f) abuf->fields.sfmt_cckeq.f
13916   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13917   int UNUSED written = 0;
13918   IADDR UNUSED pc = abuf->addr;
13919   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13920
13921 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))))) {
13922   {
13923     UQI opval = 3;
13924     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
13925     written |= (1 << 1);
13926     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13927   }
13928 } else {
13929   {
13930     UQI opval = 2;
13931     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
13932     written |= (1 << 1);
13933     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13934   }
13935 }
13936
13937   abuf->written = written;
13938   return vpc;
13939 #undef FLD
13940 }
13941
13942 /* ckgt: ckgt$pack $ICCi_3,$CRj_int */
13943
13944 static SEM_PC
13945 SEM_FN_NAME (frvbf,ckgt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13946 {
13947 #define FLD(f) abuf->fields.sfmt_cckeq.f
13948   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13949   int UNUSED written = 0;
13950   IADDR UNUSED pc = abuf->addr;
13951   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13952
13953 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)))))) {
13954   {
13955     UQI opval = 3;
13956     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
13957     written |= (1 << 1);
13958     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13959   }
13960 } else {
13961   {
13962     UQI opval = 2;
13963     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
13964     written |= (1 << 1);
13965     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13966   }
13967 }
13968
13969   abuf->written = written;
13970   return vpc;
13971 #undef FLD
13972 }
13973
13974 /* cklt: cklt$pack $ICCi_3,$CRj_int */
13975
13976 static SEM_PC
13977 SEM_FN_NAME (frvbf,cklt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13978 {
13979 #define FLD(f) abuf->fields.sfmt_cckeq.f
13980   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13981   int UNUSED written = 0;
13982   IADDR UNUSED pc = abuf->addr;
13983   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13984
13985 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)))) {
13986   {
13987     UQI opval = 3;
13988     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
13989     written |= (1 << 1);
13990     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13991   }
13992 } else {
13993   {
13994     UQI opval = 2;
13995     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
13996     written |= (1 << 1);
13997     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13998   }
13999 }
14000
14001   abuf->written = written;
14002   return vpc;
14003 #undef FLD
14004 }
14005
14006 /* ckge: ckge$pack $ICCi_3,$CRj_int */
14007
14008 static SEM_PC
14009 SEM_FN_NAME (frvbf,ckge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14010 {
14011 #define FLD(f) abuf->fields.sfmt_cckeq.f
14012   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14013   int UNUSED written = 0;
14014   IADDR UNUSED pc = abuf->addr;
14015   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14016
14017 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))))) {
14018   {
14019     UQI opval = 3;
14020     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14021     written |= (1 << 1);
14022     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14023   }
14024 } else {
14025   {
14026     UQI opval = 2;
14027     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14028     written |= (1 << 1);
14029     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14030   }
14031 }
14032
14033   abuf->written = written;
14034   return vpc;
14035 #undef FLD
14036 }
14037
14038 /* ckls: ckls$pack $ICCi_3,$CRj_int */
14039
14040 static SEM_PC
14041 SEM_FN_NAME (frvbf,ckls) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14042 {
14043 #define FLD(f) abuf->fields.sfmt_cckeq.f
14044   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14045   int UNUSED written = 0;
14046   IADDR UNUSED pc = abuf->addr;
14047   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14048
14049 if (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 4), 2)))) {
14050   {
14051     UQI opval = 3;
14052     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14053     written |= (1 << 1);
14054     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14055   }
14056 } else {
14057   {
14058     UQI opval = 2;
14059     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14060     written |= (1 << 1);
14061     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14062   }
14063 }
14064
14065   abuf->written = written;
14066   return vpc;
14067 #undef FLD
14068 }
14069
14070 /* ckhi: ckhi$pack $ICCi_3,$CRj_int */
14071
14072 static SEM_PC
14073 SEM_FN_NAME (frvbf,ckhi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14074 {
14075 #define FLD(f) abuf->fields.sfmt_cckeq.f
14076   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14077   int UNUSED written = 0;
14078   IADDR UNUSED pc = abuf->addr;
14079   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14080
14081 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))))) {
14082   {
14083     UQI opval = 3;
14084     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14085     written |= (1 << 1);
14086     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14087   }
14088 } else {
14089   {
14090     UQI opval = 2;
14091     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14092     written |= (1 << 1);
14093     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14094   }
14095 }
14096
14097   abuf->written = written;
14098   return vpc;
14099 #undef FLD
14100 }
14101
14102 /* ckc: ckc$pack $ICCi_3,$CRj_int */
14103
14104 static SEM_PC
14105 SEM_FN_NAME (frvbf,ckc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14106 {
14107 #define FLD(f) abuf->fields.sfmt_cckeq.f
14108   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14109   int UNUSED written = 0;
14110   IADDR UNUSED pc = abuf->addr;
14111   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14112
14113 if (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 1))) {
14114   {
14115     UQI opval = 3;
14116     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14117     written |= (1 << 1);
14118     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14119   }
14120 } else {
14121   {
14122     UQI opval = 2;
14123     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14124     written |= (1 << 1);
14125     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14126   }
14127 }
14128
14129   abuf->written = written;
14130   return vpc;
14131 #undef FLD
14132 }
14133
14134 /* cknc: cknc$pack $ICCi_3,$CRj_int */
14135
14136 static SEM_PC
14137 SEM_FN_NAME (frvbf,cknc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14138 {
14139 #define FLD(f) abuf->fields.sfmt_cckeq.f
14140   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14141   int UNUSED written = 0;
14142   IADDR UNUSED pc = abuf->addr;
14143   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14144
14145 if (NOTBI (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 1)))) {
14146   {
14147     UQI opval = 3;
14148     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14149     written |= (1 << 1);
14150     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14151   }
14152 } else {
14153   {
14154     UQI opval = 2;
14155     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14156     written |= (1 << 1);
14157     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14158   }
14159 }
14160
14161   abuf->written = written;
14162   return vpc;
14163 #undef FLD
14164 }
14165
14166 /* ckn: ckn$pack $ICCi_3,$CRj_int */
14167
14168 static SEM_PC
14169 SEM_FN_NAME (frvbf,ckn) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14170 {
14171 #define FLD(f) abuf->fields.sfmt_cckeq.f
14172   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14173   int UNUSED written = 0;
14174   IADDR UNUSED pc = abuf->addr;
14175   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14176
14177 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 8), 3))) {
14178   {
14179     UQI opval = 3;
14180     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14181     written |= (1 << 1);
14182     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14183   }
14184 } else {
14185   {
14186     UQI opval = 2;
14187     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14188     written |= (1 << 1);
14189     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14190   }
14191 }
14192
14193   abuf->written = written;
14194   return vpc;
14195 #undef FLD
14196 }
14197
14198 /* ckp: ckp$pack $ICCi_3,$CRj_int */
14199
14200 static SEM_PC
14201 SEM_FN_NAME (frvbf,ckp) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14202 {
14203 #define FLD(f) abuf->fields.sfmt_cckeq.f
14204   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14205   int UNUSED written = 0;
14206   IADDR UNUSED pc = abuf->addr;
14207   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14208
14209 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 8), 3)))) {
14210   {
14211     UQI opval = 3;
14212     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14213     written |= (1 << 1);
14214     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14215   }
14216 } else {
14217   {
14218     UQI opval = 2;
14219     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14220     written |= (1 << 1);
14221     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14222   }
14223 }
14224
14225   abuf->written = written;
14226   return vpc;
14227 #undef FLD
14228 }
14229
14230 /* ckv: ckv$pack $ICCi_3,$CRj_int */
14231
14232 static SEM_PC
14233 SEM_FN_NAME (frvbf,ckv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14234 {
14235 #define FLD(f) abuf->fields.sfmt_cckeq.f
14236   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14237   int UNUSED written = 0;
14238   IADDR UNUSED pc = abuf->addr;
14239   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14240
14241 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 2), 1))) {
14242   {
14243     UQI opval = 3;
14244     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14245     written |= (1 << 1);
14246     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14247   }
14248 } else {
14249   {
14250     UQI opval = 2;
14251     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14252     written |= (1 << 1);
14253     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14254   }
14255 }
14256
14257   abuf->written = written;
14258   return vpc;
14259 #undef FLD
14260 }
14261
14262 /* cknv: cknv$pack $ICCi_3,$CRj_int */
14263
14264 static SEM_PC
14265 SEM_FN_NAME (frvbf,cknv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14266 {
14267 #define FLD(f) abuf->fields.sfmt_cckeq.f
14268   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14269   int UNUSED written = 0;
14270   IADDR UNUSED pc = abuf->addr;
14271   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14272
14273 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 2), 1)))) {
14274   {
14275     UQI opval = 3;
14276     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14277     written |= (1 << 1);
14278     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14279   }
14280 } else {
14281   {
14282     UQI opval = 2;
14283     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14284     written |= (1 << 1);
14285     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14286   }
14287 }
14288
14289   abuf->written = written;
14290   return vpc;
14291 #undef FLD
14292 }
14293
14294 /* fckra: fckra$pack $CRj_float */
14295
14296 static SEM_PC
14297 SEM_FN_NAME (frvbf,fckra) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14298 {
14299 #define FLD(f) abuf->fields.sfmt_cfckne.f
14300   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14301   int UNUSED written = 0;
14302   IADDR UNUSED pc = abuf->addr;
14303   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14304
14305   {
14306     UQI opval = 3;
14307     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14308     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14309   }
14310
14311   return vpc;
14312 #undef FLD
14313 }
14314
14315 /* fckno: fckno$pack $CRj_float */
14316
14317 static SEM_PC
14318 SEM_FN_NAME (frvbf,fckno) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14319 {
14320 #define FLD(f) abuf->fields.sfmt_cfckne.f
14321   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14322   int UNUSED written = 0;
14323   IADDR UNUSED pc = abuf->addr;
14324   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14325
14326   {
14327     UQI opval = 2;
14328     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14329     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14330   }
14331
14332   return vpc;
14333 #undef FLD
14334 }
14335
14336 /* fckne: fckne$pack $FCCi_3,$CRj_float */
14337
14338 static SEM_PC
14339 SEM_FN_NAME (frvbf,fckne) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14340 {
14341 #define FLD(f) abuf->fields.sfmt_cfckne.f
14342   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14343   int UNUSED written = 0;
14344   IADDR UNUSED pc = abuf->addr;
14345   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14346
14347 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))))) {
14348   {
14349     UQI opval = 3;
14350     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14351     written |= (1 << 1);
14352     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14353   }
14354 } else {
14355   {
14356     UQI opval = 2;
14357     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14358     written |= (1 << 1);
14359     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14360   }
14361 }
14362
14363   abuf->written = written;
14364   return vpc;
14365 #undef FLD
14366 }
14367
14368 /* fckeq: fckeq$pack $FCCi_3,$CRj_float */
14369
14370 static SEM_PC
14371 SEM_FN_NAME (frvbf,fckeq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14372 {
14373 #define FLD(f) abuf->fields.sfmt_cfckne.f
14374   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14375   int UNUSED written = 0;
14376   IADDR UNUSED pc = abuf->addr;
14377   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14378
14379 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 8), 3))) {
14380   {
14381     UQI opval = 3;
14382     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14383     written |= (1 << 1);
14384     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14385   }
14386 } else {
14387   {
14388     UQI opval = 2;
14389     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14390     written |= (1 << 1);
14391     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14392   }
14393 }
14394
14395   abuf->written = written;
14396   return vpc;
14397 #undef FLD
14398 }
14399
14400 /* fcklg: fcklg$pack $FCCi_3,$CRj_float */
14401
14402 static SEM_PC
14403 SEM_FN_NAME (frvbf,fcklg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14404 {
14405 #define FLD(f) abuf->fields.sfmt_cfckne.f
14406   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14407   int UNUSED written = 0;
14408   IADDR UNUSED pc = abuf->addr;
14409   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14410
14411 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)))) {
14412   {
14413     UQI opval = 3;
14414     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14415     written |= (1 << 1);
14416     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14417   }
14418 } else {
14419   {
14420     UQI opval = 2;
14421     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14422     written |= (1 << 1);
14423     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14424   }
14425 }
14426
14427   abuf->written = written;
14428   return vpc;
14429 #undef FLD
14430 }
14431
14432 /* fckue: fckue$pack $FCCi_3,$CRj_float */
14433
14434 static SEM_PC
14435 SEM_FN_NAME (frvbf,fckue) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14436 {
14437 #define FLD(f) abuf->fields.sfmt_cfckne.f
14438   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14439   int UNUSED written = 0;
14440   IADDR UNUSED pc = abuf->addr;
14441   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14442
14443 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 8), 3)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 1)))) {
14444   {
14445     UQI opval = 3;
14446     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14447     written |= (1 << 1);
14448     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14449   }
14450 } else {
14451   {
14452     UQI opval = 2;
14453     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14454     written |= (1 << 1);
14455     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14456   }
14457 }
14458
14459   abuf->written = written;
14460   return vpc;
14461 #undef FLD
14462 }
14463
14464 /* fckul: fckul$pack $FCCi_3,$CRj_float */
14465
14466 static SEM_PC
14467 SEM_FN_NAME (frvbf,fckul) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14468 {
14469 #define FLD(f) abuf->fields.sfmt_cfckne.f
14470   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14471   int UNUSED written = 0;
14472   IADDR UNUSED pc = abuf->addr;
14473   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14474
14475 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 4), 2)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 1)))) {
14476   {
14477     UQI opval = 3;
14478     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14479     written |= (1 << 1);
14480     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14481   }
14482 } else {
14483   {
14484     UQI opval = 2;
14485     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14486     written |= (1 << 1);
14487     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14488   }
14489 }
14490
14491   abuf->written = written;
14492   return vpc;
14493 #undef FLD
14494 }
14495
14496 /* fckge: fckge$pack $FCCi_3,$CRj_float */
14497
14498 static SEM_PC
14499 SEM_FN_NAME (frvbf,fckge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14500 {
14501 #define FLD(f) abuf->fields.sfmt_cfckne.f
14502   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14503   int UNUSED written = 0;
14504   IADDR UNUSED pc = abuf->addr;
14505   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14506
14507 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)))) {
14508   {
14509     UQI opval = 3;
14510     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14511     written |= (1 << 1);
14512     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14513   }
14514 } else {
14515   {
14516     UQI opval = 2;
14517     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14518     written |= (1 << 1);
14519     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14520   }
14521 }
14522
14523   abuf->written = written;
14524   return vpc;
14525 #undef FLD
14526 }
14527
14528 /* fcklt: fcklt$pack $FCCi_3,$CRj_float */
14529
14530 static SEM_PC
14531 SEM_FN_NAME (frvbf,fcklt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14532 {
14533 #define FLD(f) abuf->fields.sfmt_cfckne.f
14534   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14535   int UNUSED written = 0;
14536   IADDR UNUSED pc = abuf->addr;
14537   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14538
14539 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 4), 2))) {
14540   {
14541     UQI opval = 3;
14542     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14543     written |= (1 << 1);
14544     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14545   }
14546 } else {
14547   {
14548     UQI opval = 2;
14549     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14550     written |= (1 << 1);
14551     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14552   }
14553 }
14554
14555   abuf->written = written;
14556   return vpc;
14557 #undef FLD
14558 }
14559
14560 /* fckuge: fckuge$pack $FCCi_3,$CRj_float */
14561
14562 static SEM_PC
14563 SEM_FN_NAME (frvbf,fckuge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14564 {
14565 #define FLD(f) abuf->fields.sfmt_cfckne.f
14566   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14567   int UNUSED written = 0;
14568   IADDR UNUSED pc = abuf->addr;
14569   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14570
14571 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))))) {
14572   {
14573     UQI opval = 3;
14574     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14575     written |= (1 << 1);
14576     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14577   }
14578 } else {
14579   {
14580     UQI opval = 2;
14581     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14582     written |= (1 << 1);
14583     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14584   }
14585 }
14586
14587   abuf->written = written;
14588   return vpc;
14589 #undef FLD
14590 }
14591
14592 /* fckug: fckug$pack $FCCi_3,$CRj_float */
14593
14594 static SEM_PC
14595 SEM_FN_NAME (frvbf,fckug) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14596 {
14597 #define FLD(f) abuf->fields.sfmt_cfckne.f
14598   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14599   int UNUSED written = 0;
14600   IADDR UNUSED pc = abuf->addr;
14601   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14602
14603 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 1)))) {
14604   {
14605     UQI opval = 3;
14606     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14607     written |= (1 << 1);
14608     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14609   }
14610 } else {
14611   {
14612     UQI opval = 2;
14613     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14614     written |= (1 << 1);
14615     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14616   }
14617 }
14618
14619   abuf->written = written;
14620   return vpc;
14621 #undef FLD
14622 }
14623
14624 /* fckle: fckle$pack $FCCi_3,$CRj_float */
14625
14626 static SEM_PC
14627 SEM_FN_NAME (frvbf,fckle) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14628 {
14629 #define FLD(f) abuf->fields.sfmt_cfckne.f
14630   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14631   int UNUSED written = 0;
14632   IADDR UNUSED pc = abuf->addr;
14633   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14634
14635 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)))) {
14636   {
14637     UQI opval = 3;
14638     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14639     written |= (1 << 1);
14640     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14641   }
14642 } else {
14643   {
14644     UQI opval = 2;
14645     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14646     written |= (1 << 1);
14647     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14648   }
14649 }
14650
14651   abuf->written = written;
14652   return vpc;
14653 #undef FLD
14654 }
14655
14656 /* fckgt: fckgt$pack $FCCi_3,$CRj_float */
14657
14658 static SEM_PC
14659 SEM_FN_NAME (frvbf,fckgt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14660 {
14661 #define FLD(f) abuf->fields.sfmt_cfckne.f
14662   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14663   int UNUSED written = 0;
14664   IADDR UNUSED pc = abuf->addr;
14665   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14666
14667 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 2), 1))) {
14668   {
14669     UQI opval = 3;
14670     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14671     written |= (1 << 1);
14672     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14673   }
14674 } else {
14675   {
14676     UQI opval = 2;
14677     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14678     written |= (1 << 1);
14679     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14680   }
14681 }
14682
14683   abuf->written = written;
14684   return vpc;
14685 #undef FLD
14686 }
14687
14688 /* fckule: fckule$pack $FCCi_3,$CRj_float */
14689
14690 static SEM_PC
14691 SEM_FN_NAME (frvbf,fckule) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14692 {
14693 #define FLD(f) abuf->fields.sfmt_cfckne.f
14694   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14695   int UNUSED written = 0;
14696   IADDR UNUSED pc = abuf->addr;
14697   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14698
14699 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))))) {
14700   {
14701     UQI opval = 3;
14702     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14703     written |= (1 << 1);
14704     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14705   }
14706 } else {
14707   {
14708     UQI opval = 2;
14709     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14710     written |= (1 << 1);
14711     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14712   }
14713 }
14714
14715   abuf->written = written;
14716   return vpc;
14717 #undef FLD
14718 }
14719
14720 /* fcku: fcku$pack $FCCi_3,$CRj_float */
14721
14722 static SEM_PC
14723 SEM_FN_NAME (frvbf,fcku) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14724 {
14725 #define FLD(f) abuf->fields.sfmt_cfckne.f
14726   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14727   int UNUSED written = 0;
14728   IADDR UNUSED pc = abuf->addr;
14729   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14730
14731 if (TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 1))) {
14732   {
14733     UQI opval = 3;
14734     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14735     written |= (1 << 1);
14736     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14737   }
14738 } else {
14739   {
14740     UQI opval = 2;
14741     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14742     written |= (1 << 1);
14743     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14744   }
14745 }
14746
14747   abuf->written = written;
14748   return vpc;
14749 #undef FLD
14750 }
14751
14752 /* fcko: fcko$pack $FCCi_3,$CRj_float */
14753
14754 static SEM_PC
14755 SEM_FN_NAME (frvbf,fcko) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14756 {
14757 #define FLD(f) abuf->fields.sfmt_cfckne.f
14758   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14759   int UNUSED written = 0;
14760   IADDR UNUSED pc = abuf->addr;
14761   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14762
14763 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))))) {
14764   {
14765     UQI opval = 3;
14766     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14767     written |= (1 << 1);
14768     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14769   }
14770 } else {
14771   {
14772     UQI opval = 2;
14773     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14774     written |= (1 << 1);
14775     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14776   }
14777 }
14778
14779   abuf->written = written;
14780   return vpc;
14781 #undef FLD
14782 }
14783
14784 /* cckra: cckra$pack $CRj_int,$CCi,$cond */
14785
14786 static SEM_PC
14787 SEM_FN_NAME (frvbf,cckra) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14788 {
14789 #define FLD(f) abuf->fields.sfmt_cckeq.f
14790   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14791   int UNUSED written = 0;
14792   IADDR UNUSED pc = abuf->addr;
14793   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14794
14795 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
14796   {
14797     UQI opval = 3;
14798     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14799     written |= (1 << 2);
14800     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14801   }
14802 } else {
14803   {
14804     UQI opval = 0;
14805     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14806     written |= (1 << 2);
14807     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14808   }
14809 }
14810
14811   abuf->written = written;
14812   return vpc;
14813 #undef FLD
14814 }
14815
14816 /* cckno: cckno$pack $CRj_int,$CCi,$cond */
14817
14818 static SEM_PC
14819 SEM_FN_NAME (frvbf,cckno) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14820 {
14821 #define FLD(f) abuf->fields.sfmt_cckeq.f
14822   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14823   int UNUSED written = 0;
14824   IADDR UNUSED pc = abuf->addr;
14825   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14826
14827 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
14828   {
14829     UQI opval = 2;
14830     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14831     written |= (1 << 2);
14832     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14833   }
14834 } else {
14835   {
14836     UQI opval = 0;
14837     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14838     written |= (1 << 2);
14839     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14840   }
14841 }
14842
14843   abuf->written = written;
14844   return vpc;
14845 #undef FLD
14846 }
14847
14848 /* cckeq: cckeq$pack $ICCi_3,$CRj_int,$CCi,$cond */
14849
14850 static SEM_PC
14851 SEM_FN_NAME (frvbf,cckeq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14852 {
14853 #define FLD(f) abuf->fields.sfmt_cckeq.f
14854   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14855   int UNUSED written = 0;
14856   IADDR UNUSED pc = abuf->addr;
14857   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14858
14859 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
14860 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 4), 2))) {
14861   {
14862     UQI opval = 3;
14863     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14864     written |= (1 << 3);
14865     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14866   }
14867 } else {
14868   {
14869     UQI opval = 2;
14870     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14871     written |= (1 << 3);
14872     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14873   }
14874 }
14875 } else {
14876   {
14877     UQI opval = 0;
14878     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14879     written |= (1 << 3);
14880     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14881   }
14882 }
14883
14884   abuf->written = written;
14885   return vpc;
14886 #undef FLD
14887 }
14888
14889 /* cckne: cckne$pack $ICCi_3,$CRj_int,$CCi,$cond */
14890
14891 static SEM_PC
14892 SEM_FN_NAME (frvbf,cckne) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14893 {
14894 #define FLD(f) abuf->fields.sfmt_cckeq.f
14895   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14896   int UNUSED written = 0;
14897   IADDR UNUSED pc = abuf->addr;
14898   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14899
14900 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
14901 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 4), 2)))) {
14902   {
14903     UQI opval = 3;
14904     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14905     written |= (1 << 3);
14906     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14907   }
14908 } else {
14909   {
14910     UQI opval = 2;
14911     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14912     written |= (1 << 3);
14913     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14914   }
14915 }
14916 } else {
14917   {
14918     UQI opval = 0;
14919     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14920     written |= (1 << 3);
14921     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14922   }
14923 }
14924
14925   abuf->written = written;
14926   return vpc;
14927 #undef FLD
14928 }
14929
14930 /* cckle: cckle$pack $ICCi_3,$CRj_int,$CCi,$cond */
14931
14932 static SEM_PC
14933 SEM_FN_NAME (frvbf,cckle) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14934 {
14935 #define FLD(f) abuf->fields.sfmt_cckeq.f
14936   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14937   int UNUSED written = 0;
14938   IADDR UNUSED pc = abuf->addr;
14939   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14940
14941 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
14942 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))))) {
14943   {
14944     UQI opval = 3;
14945     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14946     written |= (1 << 3);
14947     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14948   }
14949 } else {
14950   {
14951     UQI opval = 2;
14952     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14953     written |= (1 << 3);
14954     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14955   }
14956 }
14957 } else {
14958   {
14959     UQI opval = 0;
14960     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14961     written |= (1 << 3);
14962     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14963   }
14964 }
14965
14966   abuf->written = written;
14967   return vpc;
14968 #undef FLD
14969 }
14970
14971 /* cckgt: cckgt$pack $ICCi_3,$CRj_int,$CCi,$cond */
14972
14973 static SEM_PC
14974 SEM_FN_NAME (frvbf,cckgt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14975 {
14976 #define FLD(f) abuf->fields.sfmt_cckeq.f
14977   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14978   int UNUSED written = 0;
14979   IADDR UNUSED pc = abuf->addr;
14980   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14981
14982 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
14983 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)))))) {
14984   {
14985     UQI opval = 3;
14986     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14987     written |= (1 << 3);
14988     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14989   }
14990 } else {
14991   {
14992     UQI opval = 2;
14993     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14994     written |= (1 << 3);
14995     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14996   }
14997 }
14998 } else {
14999   {
15000     UQI opval = 0;
15001     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15002     written |= (1 << 3);
15003     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15004   }
15005 }
15006
15007   abuf->written = written;
15008   return vpc;
15009 #undef FLD
15010 }
15011
15012 /* ccklt: ccklt$pack $ICCi_3,$CRj_int,$CCi,$cond */
15013
15014 static SEM_PC
15015 SEM_FN_NAME (frvbf,ccklt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15016 {
15017 #define FLD(f) abuf->fields.sfmt_cckeq.f
15018   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15019   int UNUSED written = 0;
15020   IADDR UNUSED pc = abuf->addr;
15021   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15022
15023 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15024 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)))) {
15025   {
15026     UQI opval = 3;
15027     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15028     written |= (1 << 3);
15029     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15030   }
15031 } else {
15032   {
15033     UQI opval = 2;
15034     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15035     written |= (1 << 3);
15036     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15037   }
15038 }
15039 } else {
15040   {
15041     UQI opval = 0;
15042     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15043     written |= (1 << 3);
15044     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15045   }
15046 }
15047
15048   abuf->written = written;
15049   return vpc;
15050 #undef FLD
15051 }
15052
15053 /* cckge: cckge$pack $ICCi_3,$CRj_int,$CCi,$cond */
15054
15055 static SEM_PC
15056 SEM_FN_NAME (frvbf,cckge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15057 {
15058 #define FLD(f) abuf->fields.sfmt_cckeq.f
15059   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15060   int UNUSED written = 0;
15061   IADDR UNUSED pc = abuf->addr;
15062   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15063
15064 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15065 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))))) {
15066   {
15067     UQI opval = 3;
15068     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15069     written |= (1 << 3);
15070     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15071   }
15072 } else {
15073   {
15074     UQI opval = 2;
15075     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15076     written |= (1 << 3);
15077     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15078   }
15079 }
15080 } else {
15081   {
15082     UQI opval = 0;
15083     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15084     written |= (1 << 3);
15085     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15086   }
15087 }
15088
15089   abuf->written = written;
15090   return vpc;
15091 #undef FLD
15092 }
15093
15094 /* cckls: cckls$pack $ICCi_3,$CRj_int,$CCi,$cond */
15095
15096 static SEM_PC
15097 SEM_FN_NAME (frvbf,cckls) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15098 {
15099 #define FLD(f) abuf->fields.sfmt_cckeq.f
15100   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15101   int UNUSED written = 0;
15102   IADDR UNUSED pc = abuf->addr;
15103   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15104
15105 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15106 if (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 4), 2)))) {
15107   {
15108     UQI opval = 3;
15109     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15110     written |= (1 << 3);
15111     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15112   }
15113 } else {
15114   {
15115     UQI opval = 2;
15116     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15117     written |= (1 << 3);
15118     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15119   }
15120 }
15121 } else {
15122   {
15123     UQI opval = 0;
15124     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15125     written |= (1 << 3);
15126     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15127   }
15128 }
15129
15130   abuf->written = written;
15131   return vpc;
15132 #undef FLD
15133 }
15134
15135 /* cckhi: cckhi$pack $ICCi_3,$CRj_int,$CCi,$cond */
15136
15137 static SEM_PC
15138 SEM_FN_NAME (frvbf,cckhi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15139 {
15140 #define FLD(f) abuf->fields.sfmt_cckeq.f
15141   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15142   int UNUSED written = 0;
15143   IADDR UNUSED pc = abuf->addr;
15144   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15145
15146 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15147 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))))) {
15148   {
15149     UQI opval = 3;
15150     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15151     written |= (1 << 3);
15152     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15153   }
15154 } else {
15155   {
15156     UQI opval = 2;
15157     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15158     written |= (1 << 3);
15159     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15160   }
15161 }
15162 } else {
15163   {
15164     UQI opval = 0;
15165     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15166     written |= (1 << 3);
15167     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15168   }
15169 }
15170
15171   abuf->written = written;
15172   return vpc;
15173 #undef FLD
15174 }
15175
15176 /* cckc: cckc$pack $ICCi_3,$CRj_int,$CCi,$cond */
15177
15178 static SEM_PC
15179 SEM_FN_NAME (frvbf,cckc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15180 {
15181 #define FLD(f) abuf->fields.sfmt_cckeq.f
15182   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15183   int UNUSED written = 0;
15184   IADDR UNUSED pc = abuf->addr;
15185   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15186
15187 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15188 if (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 1))) {
15189   {
15190     UQI opval = 3;
15191     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15192     written |= (1 << 3);
15193     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15194   }
15195 } else {
15196   {
15197     UQI opval = 2;
15198     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15199     written |= (1 << 3);
15200     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15201   }
15202 }
15203 } else {
15204   {
15205     UQI opval = 0;
15206     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15207     written |= (1 << 3);
15208     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15209   }
15210 }
15211
15212   abuf->written = written;
15213   return vpc;
15214 #undef FLD
15215 }
15216
15217 /* ccknc: ccknc$pack $ICCi_3,$CRj_int,$CCi,$cond */
15218
15219 static SEM_PC
15220 SEM_FN_NAME (frvbf,ccknc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15221 {
15222 #define FLD(f) abuf->fields.sfmt_cckeq.f
15223   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15224   int UNUSED written = 0;
15225   IADDR UNUSED pc = abuf->addr;
15226   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15227
15228 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15229 if (NOTBI (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 1)))) {
15230   {
15231     UQI opval = 3;
15232     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15233     written |= (1 << 3);
15234     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15235   }
15236 } else {
15237   {
15238     UQI opval = 2;
15239     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15240     written |= (1 << 3);
15241     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15242   }
15243 }
15244 } else {
15245   {
15246     UQI opval = 0;
15247     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15248     written |= (1 << 3);
15249     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15250   }
15251 }
15252
15253   abuf->written = written;
15254   return vpc;
15255 #undef FLD
15256 }
15257
15258 /* cckn: cckn$pack $ICCi_3,$CRj_int,$CCi,$cond */
15259
15260 static SEM_PC
15261 SEM_FN_NAME (frvbf,cckn) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15262 {
15263 #define FLD(f) abuf->fields.sfmt_cckeq.f
15264   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15265   int UNUSED written = 0;
15266   IADDR UNUSED pc = abuf->addr;
15267   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15268
15269 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15270 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 8), 3))) {
15271   {
15272     UQI opval = 3;
15273     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15274     written |= (1 << 3);
15275     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15276   }
15277 } else {
15278   {
15279     UQI opval = 2;
15280     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15281     written |= (1 << 3);
15282     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15283   }
15284 }
15285 } else {
15286   {
15287     UQI opval = 0;
15288     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15289     written |= (1 << 3);
15290     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15291   }
15292 }
15293
15294   abuf->written = written;
15295   return vpc;
15296 #undef FLD
15297 }
15298
15299 /* cckp: cckp$pack $ICCi_3,$CRj_int,$CCi,$cond */
15300
15301 static SEM_PC
15302 SEM_FN_NAME (frvbf,cckp) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15303 {
15304 #define FLD(f) abuf->fields.sfmt_cckeq.f
15305   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15306   int UNUSED written = 0;
15307   IADDR UNUSED pc = abuf->addr;
15308   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15309
15310 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15311 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 8), 3)))) {
15312   {
15313     UQI opval = 3;
15314     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15315     written |= (1 << 3);
15316     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15317   }
15318 } else {
15319   {
15320     UQI opval = 2;
15321     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15322     written |= (1 << 3);
15323     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15324   }
15325 }
15326 } else {
15327   {
15328     UQI opval = 0;
15329     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15330     written |= (1 << 3);
15331     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15332   }
15333 }
15334
15335   abuf->written = written;
15336   return vpc;
15337 #undef FLD
15338 }
15339
15340 /* cckv: cckv$pack $ICCi_3,$CRj_int,$CCi,$cond */
15341
15342 static SEM_PC
15343 SEM_FN_NAME (frvbf,cckv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15344 {
15345 #define FLD(f) abuf->fields.sfmt_cckeq.f
15346   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15347   int UNUSED written = 0;
15348   IADDR UNUSED pc = abuf->addr;
15349   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15350
15351 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15352 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 2), 1))) {
15353   {
15354     UQI opval = 3;
15355     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15356     written |= (1 << 3);
15357     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15358   }
15359 } else {
15360   {
15361     UQI opval = 2;
15362     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15363     written |= (1 << 3);
15364     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15365   }
15366 }
15367 } else {
15368   {
15369     UQI opval = 0;
15370     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15371     written |= (1 << 3);
15372     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15373   }
15374 }
15375
15376   abuf->written = written;
15377   return vpc;
15378 #undef FLD
15379 }
15380
15381 /* ccknv: ccknv$pack $ICCi_3,$CRj_int,$CCi,$cond */
15382
15383 static SEM_PC
15384 SEM_FN_NAME (frvbf,ccknv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15385 {
15386 #define FLD(f) abuf->fields.sfmt_cckeq.f
15387   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15388   int UNUSED written = 0;
15389   IADDR UNUSED pc = abuf->addr;
15390   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15391
15392 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15393 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 2), 1)))) {
15394   {
15395     UQI opval = 3;
15396     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15397     written |= (1 << 3);
15398     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15399   }
15400 } else {
15401   {
15402     UQI opval = 2;
15403     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15404     written |= (1 << 3);
15405     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15406   }
15407 }
15408 } else {
15409   {
15410     UQI opval = 0;
15411     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15412     written |= (1 << 3);
15413     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15414   }
15415 }
15416
15417   abuf->written = written;
15418   return vpc;
15419 #undef FLD
15420 }
15421
15422 /* cfckra: cfckra$pack $CRj_float,$CCi,$cond */
15423
15424 static SEM_PC
15425 SEM_FN_NAME (frvbf,cfckra) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15426 {
15427 #define FLD(f) abuf->fields.sfmt_cfckne.f
15428   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15429   int UNUSED written = 0;
15430   IADDR UNUSED pc = abuf->addr;
15431   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15432
15433 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15434   {
15435     UQI opval = 3;
15436     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15437     written |= (1 << 2);
15438     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15439   }
15440 } else {
15441   {
15442     UQI opval = 0;
15443     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15444     written |= (1 << 2);
15445     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15446   }
15447 }
15448
15449   abuf->written = written;
15450   return vpc;
15451 #undef FLD
15452 }
15453
15454 /* cfckno: cfckno$pack $CRj_float,$CCi,$cond */
15455
15456 static SEM_PC
15457 SEM_FN_NAME (frvbf,cfckno) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15458 {
15459 #define FLD(f) abuf->fields.sfmt_cfckne.f
15460   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15461   int UNUSED written = 0;
15462   IADDR UNUSED pc = abuf->addr;
15463   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15464
15465 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15466   {
15467     UQI opval = 2;
15468     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15469     written |= (1 << 2);
15470     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15471   }
15472 } else {
15473   {
15474     UQI opval = 0;
15475     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15476     written |= (1 << 2);
15477     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15478   }
15479 }
15480
15481   abuf->written = written;
15482   return vpc;
15483 #undef FLD
15484 }
15485
15486 /* cfckne: cfckne$pack $FCCi_3,$CRj_float,$CCi,$cond */
15487
15488 static SEM_PC
15489 SEM_FN_NAME (frvbf,cfckne) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15490 {
15491 #define FLD(f) abuf->fields.sfmt_cfckne.f
15492   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15493   int UNUSED written = 0;
15494   IADDR UNUSED pc = abuf->addr;
15495   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15496
15497 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15498 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))))) {
15499   {
15500     UQI opval = 3;
15501     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15502     written |= (1 << 3);
15503     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15504   }
15505 } else {
15506   {
15507     UQI opval = 2;
15508     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15509     written |= (1 << 3);
15510     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15511   }
15512 }
15513 } else {
15514   {
15515     UQI opval = 0;
15516     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15517     written |= (1 << 3);
15518     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15519   }
15520 }
15521
15522   abuf->written = written;
15523   return vpc;
15524 #undef FLD
15525 }
15526
15527 /* cfckeq: cfckeq$pack $FCCi_3,$CRj_float,$CCi,$cond */
15528
15529 static SEM_PC
15530 SEM_FN_NAME (frvbf,cfckeq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15531 {
15532 #define FLD(f) abuf->fields.sfmt_cfckne.f
15533   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15534   int UNUSED written = 0;
15535   IADDR UNUSED pc = abuf->addr;
15536   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15537
15538 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15539 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 8), 3))) {
15540   {
15541     UQI opval = 3;
15542     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15543     written |= (1 << 3);
15544     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15545   }
15546 } else {
15547   {
15548     UQI opval = 2;
15549     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15550     written |= (1 << 3);
15551     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15552   }
15553 }
15554 } else {
15555   {
15556     UQI opval = 0;
15557     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15558     written |= (1 << 3);
15559     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15560   }
15561 }
15562
15563   abuf->written = written;
15564   return vpc;
15565 #undef FLD
15566 }
15567
15568 /* cfcklg: cfcklg$pack $FCCi_3,$CRj_float,$CCi,$cond */
15569
15570 static SEM_PC
15571 SEM_FN_NAME (frvbf,cfcklg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15572 {
15573 #define FLD(f) abuf->fields.sfmt_cfckne.f
15574   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15575   int UNUSED written = 0;
15576   IADDR UNUSED pc = abuf->addr;
15577   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15578
15579 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15580 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)))) {
15581   {
15582     UQI opval = 3;
15583     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15584     written |= (1 << 3);
15585     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15586   }
15587 } else {
15588   {
15589     UQI opval = 2;
15590     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15591     written |= (1 << 3);
15592     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15593   }
15594 }
15595 } else {
15596   {
15597     UQI opval = 0;
15598     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15599     written |= (1 << 3);
15600     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15601   }
15602 }
15603
15604   abuf->written = written;
15605   return vpc;
15606 #undef FLD
15607 }
15608
15609 /* cfckue: cfckue$pack $FCCi_3,$CRj_float,$CCi,$cond */
15610
15611 static SEM_PC
15612 SEM_FN_NAME (frvbf,cfckue) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15613 {
15614 #define FLD(f) abuf->fields.sfmt_cfckne.f
15615   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15616   int UNUSED written = 0;
15617   IADDR UNUSED pc = abuf->addr;
15618   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15619
15620 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15621 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 8), 3)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 1)))) {
15622   {
15623     UQI opval = 3;
15624     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15625     written |= (1 << 3);
15626     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15627   }
15628 } else {
15629   {
15630     UQI opval = 2;
15631     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15632     written |= (1 << 3);
15633     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15634   }
15635 }
15636 } else {
15637   {
15638     UQI opval = 0;
15639     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15640     written |= (1 << 3);
15641     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15642   }
15643 }
15644
15645   abuf->written = written;
15646   return vpc;
15647 #undef FLD
15648 }
15649
15650 /* cfckul: cfckul$pack $FCCi_3,$CRj_float,$CCi,$cond */
15651
15652 static SEM_PC
15653 SEM_FN_NAME (frvbf,cfckul) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15654 {
15655 #define FLD(f) abuf->fields.sfmt_cfckne.f
15656   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15657   int UNUSED written = 0;
15658   IADDR UNUSED pc = abuf->addr;
15659   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15660
15661 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15662 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 4), 2)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 1)))) {
15663   {
15664     UQI opval = 3;
15665     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15666     written |= (1 << 3);
15667     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15668   }
15669 } else {
15670   {
15671     UQI opval = 2;
15672     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15673     written |= (1 << 3);
15674     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15675   }
15676 }
15677 } else {
15678   {
15679     UQI opval = 0;
15680     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15681     written |= (1 << 3);
15682     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15683   }
15684 }
15685
15686   abuf->written = written;
15687   return vpc;
15688 #undef FLD
15689 }
15690
15691 /* cfckge: cfckge$pack $FCCi_3,$CRj_float,$CCi,$cond */
15692
15693 static SEM_PC
15694 SEM_FN_NAME (frvbf,cfckge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15695 {
15696 #define FLD(f) abuf->fields.sfmt_cfckne.f
15697   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15698   int UNUSED written = 0;
15699   IADDR UNUSED pc = abuf->addr;
15700   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15701
15702 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15703 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)))) {
15704   {
15705     UQI opval = 3;
15706     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15707     written |= (1 << 3);
15708     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15709   }
15710 } else {
15711   {
15712     UQI opval = 2;
15713     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15714     written |= (1 << 3);
15715     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15716   }
15717 }
15718 } else {
15719   {
15720     UQI opval = 0;
15721     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15722     written |= (1 << 3);
15723     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15724   }
15725 }
15726
15727   abuf->written = written;
15728   return vpc;
15729 #undef FLD
15730 }
15731
15732 /* cfcklt: cfcklt$pack $FCCi_3,$CRj_float,$CCi,$cond */
15733
15734 static SEM_PC
15735 SEM_FN_NAME (frvbf,cfcklt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15736 {
15737 #define FLD(f) abuf->fields.sfmt_cfckne.f
15738   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15739   int UNUSED written = 0;
15740   IADDR UNUSED pc = abuf->addr;
15741   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15742
15743 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15744 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 4), 2))) {
15745   {
15746     UQI opval = 3;
15747     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15748     written |= (1 << 3);
15749     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15750   }
15751 } else {
15752   {
15753     UQI opval = 2;
15754     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15755     written |= (1 << 3);
15756     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15757   }
15758 }
15759 } else {
15760   {
15761     UQI opval = 0;
15762     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15763     written |= (1 << 3);
15764     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15765   }
15766 }
15767
15768   abuf->written = written;
15769   return vpc;
15770 #undef FLD
15771 }
15772
15773 /* cfckuge: cfckuge$pack $FCCi_3,$CRj_float,$CCi,$cond */
15774
15775 static SEM_PC
15776 SEM_FN_NAME (frvbf,cfckuge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15777 {
15778 #define FLD(f) abuf->fields.sfmt_cfckne.f
15779   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15780   int UNUSED written = 0;
15781   IADDR UNUSED pc = abuf->addr;
15782   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15783
15784 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15785 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))))) {
15786   {
15787     UQI opval = 3;
15788     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15789     written |= (1 << 3);
15790     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15791   }
15792 } else {
15793   {
15794     UQI opval = 2;
15795     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15796     written |= (1 << 3);
15797     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15798   }
15799 }
15800 } else {
15801   {
15802     UQI opval = 0;
15803     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15804     written |= (1 << 3);
15805     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15806   }
15807 }
15808
15809   abuf->written = written;
15810   return vpc;
15811 #undef FLD
15812 }
15813
15814 /* cfckug: cfckug$pack $FCCi_3,$CRj_float,$CCi,$cond */
15815
15816 static SEM_PC
15817 SEM_FN_NAME (frvbf,cfckug) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15818 {
15819 #define FLD(f) abuf->fields.sfmt_cfckne.f
15820   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15821   int UNUSED written = 0;
15822   IADDR UNUSED pc = abuf->addr;
15823   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15824
15825 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15826 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 1)))) {
15827   {
15828     UQI opval = 3;
15829     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15830     written |= (1 << 3);
15831     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15832   }
15833 } else {
15834   {
15835     UQI opval = 2;
15836     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15837     written |= (1 << 3);
15838     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15839   }
15840 }
15841 } else {
15842   {
15843     UQI opval = 0;
15844     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15845     written |= (1 << 3);
15846     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15847   }
15848 }
15849
15850   abuf->written = written;
15851   return vpc;
15852 #undef FLD
15853 }
15854
15855 /* cfckle: cfckle$pack $FCCi_3,$CRj_float,$CCi,$cond */
15856
15857 static SEM_PC
15858 SEM_FN_NAME (frvbf,cfckle) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15859 {
15860 #define FLD(f) abuf->fields.sfmt_cfckne.f
15861   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15862   int UNUSED written = 0;
15863   IADDR UNUSED pc = abuf->addr;
15864   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15865
15866 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15867 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)))) {
15868   {
15869     UQI opval = 3;
15870     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15871     written |= (1 << 3);
15872     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15873   }
15874 } else {
15875   {
15876     UQI opval = 2;
15877     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15878     written |= (1 << 3);
15879     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15880   }
15881 }
15882 } else {
15883   {
15884     UQI opval = 0;
15885     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15886     written |= (1 << 3);
15887     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15888   }
15889 }
15890
15891   abuf->written = written;
15892   return vpc;
15893 #undef FLD
15894 }
15895
15896 /* cfckgt: cfckgt$pack $FCCi_3,$CRj_float,$CCi,$cond */
15897
15898 static SEM_PC
15899 SEM_FN_NAME (frvbf,cfckgt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15900 {
15901 #define FLD(f) abuf->fields.sfmt_cfckne.f
15902   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15903   int UNUSED written = 0;
15904   IADDR UNUSED pc = abuf->addr;
15905   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15906
15907 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15908 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 2), 1))) {
15909   {
15910     UQI opval = 3;
15911     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15912     written |= (1 << 3);
15913     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15914   }
15915 } else {
15916   {
15917     UQI opval = 2;
15918     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15919     written |= (1 << 3);
15920     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15921   }
15922 }
15923 } else {
15924   {
15925     UQI opval = 0;
15926     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15927     written |= (1 << 3);
15928     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15929   }
15930 }
15931
15932   abuf->written = written;
15933   return vpc;
15934 #undef FLD
15935 }
15936
15937 /* cfckule: cfckule$pack $FCCi_3,$CRj_float,$CCi,$cond */
15938
15939 static SEM_PC
15940 SEM_FN_NAME (frvbf,cfckule) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15941 {
15942 #define FLD(f) abuf->fields.sfmt_cfckne.f
15943   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15944   int UNUSED written = 0;
15945   IADDR UNUSED pc = abuf->addr;
15946   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15947
15948 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15949 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))))) {
15950   {
15951     UQI opval = 3;
15952     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15953     written |= (1 << 3);
15954     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15955   }
15956 } else {
15957   {
15958     UQI opval = 2;
15959     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15960     written |= (1 << 3);
15961     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15962   }
15963 }
15964 } else {
15965   {
15966     UQI opval = 0;
15967     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15968     written |= (1 << 3);
15969     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15970   }
15971 }
15972
15973   abuf->written = written;
15974   return vpc;
15975 #undef FLD
15976 }
15977
15978 /* cfcku: cfcku$pack $FCCi_3,$CRj_float,$CCi,$cond */
15979
15980 static SEM_PC
15981 SEM_FN_NAME (frvbf,cfcku) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15982 {
15983 #define FLD(f) abuf->fields.sfmt_cfckne.f
15984   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15985   int UNUSED written = 0;
15986   IADDR UNUSED pc = abuf->addr;
15987   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15988
15989 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15990 if (TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 1))) {
15991   {
15992     UQI opval = 3;
15993     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15994     written |= (1 << 3);
15995     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15996   }
15997 } else {
15998   {
15999     UQI opval = 2;
16000     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
16001     written |= (1 << 3);
16002     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
16003   }
16004 }
16005 } else {
16006   {
16007     UQI opval = 0;
16008     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
16009     written |= (1 << 3);
16010     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
16011   }
16012 }
16013
16014   abuf->written = written;
16015   return vpc;
16016 #undef FLD
16017 }
16018
16019 /* cfcko: cfcko$pack $FCCi_3,$CRj_float,$CCi,$cond */
16020
16021 static SEM_PC
16022 SEM_FN_NAME (frvbf,cfcko) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16023 {
16024 #define FLD(f) abuf->fields.sfmt_cfckne.f
16025   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16026   int UNUSED written = 0;
16027   IADDR UNUSED pc = abuf->addr;
16028   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16029
16030 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
16031 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))))) {
16032   {
16033     UQI opval = 3;
16034     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
16035     written |= (1 << 3);
16036     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
16037   }
16038 } else {
16039   {
16040     UQI opval = 2;
16041     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
16042     written |= (1 << 3);
16043     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
16044   }
16045 }
16046 } else {
16047   {
16048     UQI opval = 0;
16049     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
16050     written |= (1 << 3);
16051     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
16052   }
16053 }
16054
16055   abuf->written = written;
16056   return vpc;
16057 #undef FLD
16058 }
16059
16060 /* cjmpl: cjmpl$pack @($GRi,$GRj),$CCi,$cond */
16061
16062 static SEM_PC
16063 SEM_FN_NAME (frvbf,cjmpl) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16064 {
16065 #define FLD(f) abuf->fields.sfmt_cjmpl.f
16066   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16067   int UNUSED written = 0;
16068   IADDR UNUSED pc = abuf->addr;
16069   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16070
16071 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
16072 {
16073 if (EQSI (FLD (f_LI), 1)) {
16074 frvbf_set_write_next_vliw_addr_to_LR (current_cpu, 1);
16075 }
16076   {
16077     USI opval = ANDSI (ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), 0xfffffffc);
16078     sim_queue_pc_write (current_cpu, opval);
16079     written |= (1 << 6);
16080     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
16081   }
16082 frvbf_model_branch (current_cpu, pc, 2);
16083 }
16084 }
16085
16086   abuf->written = written;
16087   return vpc;
16088 #undef FLD
16089 }
16090
16091 /* ccalll: ccalll$pack @($GRi,$GRj),$CCi,$cond */
16092
16093 static SEM_PC
16094 SEM_FN_NAME (frvbf,ccalll) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16095 {
16096 #define FLD(f) abuf->fields.sfmt_cjmpl.f
16097   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16098   int UNUSED written = 0;
16099   IADDR UNUSED pc = abuf->addr;
16100   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16101
16102 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
16103 {
16104 if (EQSI (FLD (f_LI), 1)) {
16105 frvbf_set_write_next_vliw_addr_to_LR (current_cpu, 1);
16106 }
16107   {
16108     USI opval = ANDSI (ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), 0xfffffffc);
16109     sim_queue_pc_write (current_cpu, opval);
16110     written |= (1 << 6);
16111     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
16112   }
16113 frvbf_model_branch (current_cpu, pc, 2);
16114 }
16115 }
16116
16117   abuf->written = written;
16118   return vpc;
16119 #undef FLD
16120 }
16121
16122 /* ici: ici$pack @($GRi,$GRj) */
16123
16124 static SEM_PC
16125 SEM_FN_NAME (frvbf,ici) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16126 {
16127 #define FLD(f) abuf->fields.sfmt_icpl.f
16128   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16129   int UNUSED written = 0;
16130   IADDR UNUSED pc = abuf->addr;
16131   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16132
16133 frvbf_insn_cache_invalidate (current_cpu, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), 0);
16134
16135   return vpc;
16136 #undef FLD
16137 }
16138
16139 /* dci: dci$pack @($GRi,$GRj) */
16140
16141 static SEM_PC
16142 SEM_FN_NAME (frvbf,dci) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16143 {
16144 #define FLD(f) abuf->fields.sfmt_icpl.f
16145   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16146   int UNUSED written = 0;
16147   IADDR UNUSED pc = abuf->addr;
16148   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16149
16150 frvbf_data_cache_invalidate (current_cpu, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), 0);
16151
16152   return vpc;
16153 #undef FLD
16154 }
16155
16156 /* icei: icei$pack @($GRi,$GRj),$ae */
16157
16158 static SEM_PC
16159 SEM_FN_NAME (frvbf,icei) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16160 {
16161 #define FLD(f) abuf->fields.sfmt_icei.f
16162   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16163   int UNUSED written = 0;
16164   IADDR UNUSED pc = abuf->addr;
16165   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16166
16167 if (EQSI (FLD (f_ae), 0)) {
16168 frvbf_insn_cache_invalidate (current_cpu, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), -1);
16169 } else {
16170 frvbf_insn_cache_invalidate (current_cpu, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), FLD (f_ae));
16171 }
16172
16173   return vpc;
16174 #undef FLD
16175 }
16176
16177 /* dcei: dcei$pack @($GRi,$GRj),$ae */
16178
16179 static SEM_PC
16180 SEM_FN_NAME (frvbf,dcei) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16181 {
16182 #define FLD(f) abuf->fields.sfmt_icei.f
16183   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16184   int UNUSED written = 0;
16185   IADDR UNUSED pc = abuf->addr;
16186   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16187
16188 if (EQSI (FLD (f_ae), 0)) {
16189 frvbf_data_cache_invalidate (current_cpu, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), -1);
16190 } else {
16191 frvbf_data_cache_invalidate (current_cpu, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), FLD (f_ae));
16192 }
16193
16194   return vpc;
16195 #undef FLD
16196 }
16197
16198 /* dcf: dcf$pack @($GRi,$GRj) */
16199
16200 static SEM_PC
16201 SEM_FN_NAME (frvbf,dcf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16202 {
16203 #define FLD(f) abuf->fields.sfmt_icpl.f
16204   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16205   int UNUSED written = 0;
16206   IADDR UNUSED pc = abuf->addr;
16207   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16208
16209 frvbf_data_cache_flush (current_cpu, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), 0);
16210
16211   return vpc;
16212 #undef FLD
16213 }
16214
16215 /* dcef: dcef$pack @($GRi,$GRj),$ae */
16216
16217 static SEM_PC
16218 SEM_FN_NAME (frvbf,dcef) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16219 {
16220 #define FLD(f) abuf->fields.sfmt_icei.f
16221   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16222   int UNUSED written = 0;
16223   IADDR UNUSED pc = abuf->addr;
16224   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16225
16226 if (EQSI (FLD (f_ae), 0)) {
16227 frvbf_data_cache_flush (current_cpu, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), -1);
16228 } else {
16229 frvbf_data_cache_flush (current_cpu, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), FLD (f_ae));
16230 }
16231
16232   return vpc;
16233 #undef FLD
16234 }
16235
16236 /* witlb: witlb$pack $GRk,@($GRi,$GRj) */
16237
16238 static SEM_PC
16239 SEM_FN_NAME (frvbf,witlb) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16240 {
16241 #define FLD(f) abuf->fields.fmt_empty.f
16242   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16243   int UNUSED written = 0;
16244   IADDR UNUSED pc = abuf->addr;
16245   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16246
16247 ((void) 0); /*nop*/
16248
16249   return vpc;
16250 #undef FLD
16251 }
16252
16253 /* wdtlb: wdtlb$pack $GRk,@($GRi,$GRj) */
16254
16255 static SEM_PC
16256 SEM_FN_NAME (frvbf,wdtlb) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16257 {
16258 #define FLD(f) abuf->fields.fmt_empty.f
16259   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16260   int UNUSED written = 0;
16261   IADDR UNUSED pc = abuf->addr;
16262   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16263
16264 ((void) 0); /*nop*/
16265
16266   return vpc;
16267 #undef FLD
16268 }
16269
16270 /* itlbi: itlbi$pack @($GRi,$GRj) */
16271
16272 static SEM_PC
16273 SEM_FN_NAME (frvbf,itlbi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16274 {
16275 #define FLD(f) abuf->fields.fmt_empty.f
16276   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16277   int UNUSED written = 0;
16278   IADDR UNUSED pc = abuf->addr;
16279   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16280
16281 ((void) 0); /*nop*/
16282
16283   return vpc;
16284 #undef FLD
16285 }
16286
16287 /* dtlbi: dtlbi$pack @($GRi,$GRj) */
16288
16289 static SEM_PC
16290 SEM_FN_NAME (frvbf,dtlbi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16291 {
16292 #define FLD(f) abuf->fields.fmt_empty.f
16293   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16294   int UNUSED written = 0;
16295   IADDR UNUSED pc = abuf->addr;
16296   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16297
16298 ((void) 0); /*nop*/
16299
16300   return vpc;
16301 #undef FLD
16302 }
16303
16304 /* icpl: icpl$pack $GRi,$GRj,$lock */
16305
16306 static SEM_PC
16307 SEM_FN_NAME (frvbf,icpl) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16308 {
16309 #define FLD(f) abuf->fields.sfmt_icpl.f
16310   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16311   int UNUSED written = 0;
16312   IADDR UNUSED pc = abuf->addr;
16313   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16314
16315 frvbf_insn_cache_preload (current_cpu, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), FLD (f_lock));
16316
16317   return vpc;
16318 #undef FLD
16319 }
16320
16321 /* dcpl: dcpl$pack $GRi,$GRj,$lock */
16322
16323 static SEM_PC
16324 SEM_FN_NAME (frvbf,dcpl) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16325 {
16326 #define FLD(f) abuf->fields.sfmt_icpl.f
16327   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16328   int UNUSED written = 0;
16329   IADDR UNUSED pc = abuf->addr;
16330   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16331
16332 frvbf_data_cache_preload (current_cpu, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), FLD (f_lock));
16333
16334   return vpc;
16335 #undef FLD
16336 }
16337
16338 /* icul: icul$pack $GRi */
16339
16340 static SEM_PC
16341 SEM_FN_NAME (frvbf,icul) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16342 {
16343 #define FLD(f) abuf->fields.sfmt_jmpil.f
16344   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16345   int UNUSED written = 0;
16346   IADDR UNUSED pc = abuf->addr;
16347   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16348
16349 frvbf_insn_cache_unlock (current_cpu, GET_H_GR (FLD (f_GRi)));
16350
16351   return vpc;
16352 #undef FLD
16353 }
16354
16355 /* dcul: dcul$pack $GRi */
16356
16357 static SEM_PC
16358 SEM_FN_NAME (frvbf,dcul) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16359 {
16360 #define FLD(f) abuf->fields.sfmt_jmpil.f
16361   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16362   int UNUSED written = 0;
16363   IADDR UNUSED pc = abuf->addr;
16364   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16365
16366 frvbf_data_cache_unlock (current_cpu, GET_H_GR (FLD (f_GRi)));
16367
16368   return vpc;
16369 #undef FLD
16370 }
16371
16372 /* bar: bar$pack */
16373
16374 static SEM_PC
16375 SEM_FN_NAME (frvbf,bar) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16376 {
16377 #define FLD(f) abuf->fields.fmt_empty.f
16378   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16379   int UNUSED written = 0;
16380   IADDR UNUSED pc = abuf->addr;
16381   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16382
16383 ((void) 0); /*nop*/
16384
16385   return vpc;
16386 #undef FLD
16387 }
16388
16389 /* membar: membar$pack */
16390
16391 static SEM_PC
16392 SEM_FN_NAME (frvbf,membar) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16393 {
16394 #define FLD(f) abuf->fields.fmt_empty.f
16395   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16396   int UNUSED written = 0;
16397   IADDR UNUSED pc = abuf->addr;
16398   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16399
16400 ((void) 0); /*nop*/
16401
16402   return vpc;
16403 #undef FLD
16404 }
16405
16406 /* lrai: lrai$pack $GRi,$GRk,$LRAE,$LRAD,$LRAS */
16407
16408 static SEM_PC
16409 SEM_FN_NAME (frvbf,lrai) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16410 {
16411 #define FLD(f) abuf->fields.fmt_empty.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 ((void) 0); /*nop*/
16418
16419   return vpc;
16420 #undef FLD
16421 }
16422
16423 /* lrad: lrad$pack $GRi,$GRk,$LRAE,$LRAD,$LRAS */
16424
16425 static SEM_PC
16426 SEM_FN_NAME (frvbf,lrad) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16427 {
16428 #define FLD(f) abuf->fields.fmt_empty.f
16429   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16430   int UNUSED written = 0;
16431   IADDR UNUSED pc = abuf->addr;
16432   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16433
16434 ((void) 0); /*nop*/
16435
16436   return vpc;
16437 #undef FLD
16438 }
16439
16440 /* tlbpr: tlbpr$pack $GRi,$GRj,$TLBPRopx,$TLBPRL */
16441
16442 static SEM_PC
16443 SEM_FN_NAME (frvbf,tlbpr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16444 {
16445 #define FLD(f) abuf->fields.fmt_empty.f
16446   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16447   int UNUSED written = 0;
16448   IADDR UNUSED pc = abuf->addr;
16449   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16450
16451 ((void) 0); /*nop*/
16452
16453   return vpc;
16454 #undef FLD
16455 }
16456
16457 /* cop1: cop1$pack $s6_1,$CPRi,$CPRj,$CPRk */
16458
16459 static SEM_PC
16460 SEM_FN_NAME (frvbf,cop1) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16461 {
16462 #define FLD(f) abuf->fields.fmt_empty.f
16463   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16464   int UNUSED written = 0;
16465   IADDR UNUSED pc = abuf->addr;
16466   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16467
16468 ((void) 0); /*nop*/
16469
16470   return vpc;
16471 #undef FLD
16472 }
16473
16474 /* cop2: cop2$pack $s6_1,$CPRi,$CPRj,$CPRk */
16475
16476 static SEM_PC
16477 SEM_FN_NAME (frvbf,cop2) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16478 {
16479 #define FLD(f) abuf->fields.fmt_empty.f
16480   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16481   int UNUSED written = 0;
16482   IADDR UNUSED pc = abuf->addr;
16483   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16484
16485 ((void) 0); /*nop*/
16486
16487   return vpc;
16488 #undef FLD
16489 }
16490
16491 /* clrgr: clrgr$pack $GRk */
16492
16493 static SEM_PC
16494 SEM_FN_NAME (frvbf,clrgr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16495 {
16496 #define FLD(f) abuf->fields.sfmt_swapi.f
16497   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16498   int UNUSED written = 0;
16499   IADDR UNUSED pc = abuf->addr;
16500   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16501
16502 {
16503 frv_ref_SI (GET_H_GR (FLD (f_GRk)));
16504 frvbf_clear_ne_flags (current_cpu, FLD (f_GRk), 0);
16505 }
16506
16507   return vpc;
16508 #undef FLD
16509 }
16510
16511 /* clrfr: clrfr$pack $FRk */
16512
16513 static SEM_PC
16514 SEM_FN_NAME (frvbf,clrfr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16515 {
16516 #define FLD(f) abuf->fields.sfmt_cfmadds.f
16517   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16518   int UNUSED written = 0;
16519   IADDR UNUSED pc = abuf->addr;
16520   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16521
16522 {
16523 frv_ref_SI (GET_H_FR (FLD (f_FRk)));
16524 frvbf_clear_ne_flags (current_cpu, FLD (f_FRk), 1);
16525 }
16526
16527   return vpc;
16528 #undef FLD
16529 }
16530
16531 /* clrga: clrga$pack */
16532
16533 static SEM_PC
16534 SEM_FN_NAME (frvbf,clrga) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16535 {
16536 #define FLD(f) abuf->fields.fmt_empty.f
16537   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16538   int UNUSED written = 0;
16539   IADDR UNUSED pc = abuf->addr;
16540   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16541
16542 frvbf_clear_ne_flags (current_cpu, -1, 0);
16543
16544   return vpc;
16545 #undef FLD
16546 }
16547
16548 /* clrfa: clrfa$pack */
16549
16550 static SEM_PC
16551 SEM_FN_NAME (frvbf,clrfa) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16552 {
16553 #define FLD(f) abuf->fields.fmt_empty.f
16554   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16555   int UNUSED written = 0;
16556   IADDR UNUSED pc = abuf->addr;
16557   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16558
16559 frvbf_clear_ne_flags (current_cpu, -1, 1);
16560
16561   return vpc;
16562 #undef FLD
16563 }
16564
16565 /* commitgr: commitgr$pack $GRk */
16566
16567 static SEM_PC
16568 SEM_FN_NAME (frvbf,commitgr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16569 {
16570 #define FLD(f) abuf->fields.sfmt_setlos.f
16571   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16572   int UNUSED written = 0;
16573   IADDR UNUSED pc = abuf->addr;
16574   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16575
16576 frvbf_commit (current_cpu, FLD (f_GRk), 0);
16577
16578   return vpc;
16579 #undef FLD
16580 }
16581
16582 /* commitfr: commitfr$pack $FRk */
16583
16584 static SEM_PC
16585 SEM_FN_NAME (frvbf,commitfr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16586 {
16587 #define FLD(f) abuf->fields.sfmt_mhsethis.f
16588   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16589   int UNUSED written = 0;
16590   IADDR UNUSED pc = abuf->addr;
16591   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16592
16593 frvbf_commit (current_cpu, FLD (f_FRk), 1);
16594
16595   return vpc;
16596 #undef FLD
16597 }
16598
16599 /* commitga: commitga$pack */
16600
16601 static SEM_PC
16602 SEM_FN_NAME (frvbf,commitga) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16603 {
16604 #define FLD(f) abuf->fields.fmt_empty.f
16605   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16606   int UNUSED written = 0;
16607   IADDR UNUSED pc = abuf->addr;
16608   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16609
16610 frvbf_commit (current_cpu, -1, 0);
16611
16612   return vpc;
16613 #undef FLD
16614 }
16615
16616 /* commitfa: commitfa$pack */
16617
16618 static SEM_PC
16619 SEM_FN_NAME (frvbf,commitfa) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16620 {
16621 #define FLD(f) abuf->fields.fmt_empty.f
16622   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16623   int UNUSED written = 0;
16624   IADDR UNUSED pc = abuf->addr;
16625   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16626
16627 frvbf_commit (current_cpu, -1, 1);
16628
16629   return vpc;
16630 #undef FLD
16631 }
16632
16633 /* fitos: fitos$pack $FRintj,$FRk */
16634
16635 static SEM_PC
16636 SEM_FN_NAME (frvbf,fitos) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16637 {
16638 #define FLD(f) abuf->fields.sfmt_fditos.f
16639   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16640   int UNUSED written = 0;
16641   IADDR UNUSED pc = abuf->addr;
16642   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16643
16644   {
16645     SF opval = CGEN_CPU_FPU (current_cpu)->ops->floatsisf (CGEN_CPU_FPU (current_cpu), GET_H_FR_INT (FLD (f_FRj)));
16646     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
16647     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
16648   }
16649
16650   return vpc;
16651 #undef FLD
16652 }
16653
16654 /* fstoi: fstoi$pack $FRj,$FRintk */
16655
16656 static SEM_PC
16657 SEM_FN_NAME (frvbf,fstoi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16658 {
16659 #define FLD(f) abuf->fields.sfmt_fdstoi.f
16660   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16661   int UNUSED written = 0;
16662   IADDR UNUSED pc = abuf->addr;
16663   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16664
16665   {
16666     SI opval = CGEN_CPU_FPU (current_cpu)->ops->fixsfsi (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
16667     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
16668     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
16669   }
16670
16671   return vpc;
16672 #undef FLD
16673 }
16674
16675 /* fitod: fitod$pack $FRintj,$FRdoublek */
16676
16677 static SEM_PC
16678 SEM_FN_NAME (frvbf,fitod) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16679 {
16680 #define FLD(f) abuf->fields.sfmt_fitod.f
16681   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16682   int UNUSED written = 0;
16683   IADDR UNUSED pc = abuf->addr;
16684   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16685
16686   {
16687     DF opval = CGEN_CPU_FPU (current_cpu)->ops->floatsidf (CGEN_CPU_FPU (current_cpu), GET_H_FR_INT (FLD (f_FRj)));
16688     sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
16689     TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
16690   }
16691
16692   return vpc;
16693 #undef FLD
16694 }
16695
16696 /* fdtoi: fdtoi$pack $FRdoublej,$FRintk */
16697
16698 static SEM_PC
16699 SEM_FN_NAME (frvbf,fdtoi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16700 {
16701 #define FLD(f) abuf->fields.sfmt_fdtoi.f
16702   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16703   int UNUSED written = 0;
16704   IADDR UNUSED pc = abuf->addr;
16705   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16706
16707   {
16708     SI opval = CGEN_CPU_FPU (current_cpu)->ops->fixdfsi (CGEN_CPU_FPU (current_cpu), GET_H_FR_DOUBLE (FLD (f_FRj)));
16709     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
16710     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
16711   }
16712
16713   return vpc;
16714 #undef FLD
16715 }
16716
16717 /* fditos: fditos$pack $FRintj,$FRk */
16718
16719 static SEM_PC
16720 SEM_FN_NAME (frvbf,fditos) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16721 {
16722 #define FLD(f) abuf->fields.sfmt_fditos.f
16723   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16724   int UNUSED written = 0;
16725   IADDR UNUSED pc = abuf->addr;
16726   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16727
16728 {
16729   {
16730     SF opval = CGEN_CPU_FPU (current_cpu)->ops->floatsisf (CGEN_CPU_FPU (current_cpu), GET_H_FR_INT (FLD (f_FRj)));
16731     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
16732     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
16733   }
16734   {
16735     SF opval = CGEN_CPU_FPU (current_cpu)->ops->floatsisf (CGEN_CPU_FPU (current_cpu), GET_H_FR_INT (((FLD (f_FRj)) + (1))));
16736     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
16737     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
16738   }
16739 }
16740
16741   return vpc;
16742 #undef FLD
16743 }
16744
16745 /* fdstoi: fdstoi$pack $FRj,$FRintk */
16746
16747 static SEM_PC
16748 SEM_FN_NAME (frvbf,fdstoi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16749 {
16750 #define FLD(f) abuf->fields.sfmt_fdstoi.f
16751   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16752   int UNUSED written = 0;
16753   IADDR UNUSED pc = abuf->addr;
16754   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16755
16756 {
16757   {
16758     SI opval = CGEN_CPU_FPU (current_cpu)->ops->fixsfsi (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
16759     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
16760     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
16761   }
16762   {
16763     USI opval = CGEN_CPU_FPU (current_cpu)->ops->fixsfsi (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRj)) + (1))));
16764     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (1)), opval);
16765     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
16766   }
16767 }
16768
16769   return vpc;
16770 #undef FLD
16771 }
16772
16773 /* nfditos: nfditos$pack $FRintj,$FRk */
16774
16775 static SEM_PC
16776 SEM_FN_NAME (frvbf,nfditos) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16777 {
16778 #define FLD(f) abuf->fields.sfmt_fditos.f
16779   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16780   int UNUSED written = 0;
16781   IADDR UNUSED pc = abuf->addr;
16782   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16783
16784 {
16785 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
16786   {
16787     SF opval = CGEN_CPU_FPU (current_cpu)->ops->floatsisf (CGEN_CPU_FPU (current_cpu), GET_H_FR_INT (FLD (f_FRj)));
16788     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
16789     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
16790   }
16791 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
16792   {
16793     SF opval = CGEN_CPU_FPU (current_cpu)->ops->floatsisf (CGEN_CPU_FPU (current_cpu), GET_H_FR_INT (((FLD (f_FRj)) + (1))));
16794     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
16795     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
16796   }
16797 }
16798
16799   return vpc;
16800 #undef FLD
16801 }
16802
16803 /* nfdstoi: nfdstoi$pack $FRj,$FRintk */
16804
16805 static SEM_PC
16806 SEM_FN_NAME (frvbf,nfdstoi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16807 {
16808 #define FLD(f) abuf->fields.sfmt_fdstoi.f
16809   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16810   int UNUSED written = 0;
16811   IADDR UNUSED pc = abuf->addr;
16812   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16813
16814 {
16815 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
16816   {
16817     SI opval = CGEN_CPU_FPU (current_cpu)->ops->fixsfsi (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
16818     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
16819     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
16820   }
16821 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
16822   {
16823     USI opval = CGEN_CPU_FPU (current_cpu)->ops->fixsfsi (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRj)) + (1))));
16824     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (1)), opval);
16825     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
16826   }
16827 }
16828
16829   return vpc;
16830 #undef FLD
16831 }
16832
16833 /* cfitos: cfitos$pack $FRintj,$FRk,$CCi,$cond */
16834
16835 static SEM_PC
16836 SEM_FN_NAME (frvbf,cfitos) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16837 {
16838 #define FLD(f) abuf->fields.sfmt_cfitos.f
16839   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16840   int UNUSED written = 0;
16841   IADDR UNUSED pc = abuf->addr;
16842   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16843
16844 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
16845   {
16846     SF opval = CGEN_CPU_FPU (current_cpu)->ops->floatsisf (CGEN_CPU_FPU (current_cpu), GET_H_FR_INT (FLD (f_FRj)));
16847     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
16848     written |= (1 << 3);
16849     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
16850   }
16851 }
16852
16853   abuf->written = written;
16854   return vpc;
16855 #undef FLD
16856 }
16857
16858 /* cfstoi: cfstoi$pack $FRj,$FRintk,$CCi,$cond */
16859
16860 static SEM_PC
16861 SEM_FN_NAME (frvbf,cfstoi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16862 {
16863 #define FLD(f) abuf->fields.sfmt_cfstoi.f
16864   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16865   int UNUSED written = 0;
16866   IADDR UNUSED pc = abuf->addr;
16867   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16868
16869 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
16870   {
16871     SI opval = CGEN_CPU_FPU (current_cpu)->ops->fixsfsi (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
16872     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
16873     written |= (1 << 3);
16874     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
16875   }
16876 }
16877
16878   abuf->written = written;
16879   return vpc;
16880 #undef FLD
16881 }
16882
16883 /* nfitos: nfitos$pack $FRintj,$FRk */
16884
16885 static SEM_PC
16886 SEM_FN_NAME (frvbf,nfitos) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16887 {
16888 #define FLD(f) abuf->fields.sfmt_fditos.f
16889   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16890   int UNUSED written = 0;
16891   IADDR UNUSED pc = abuf->addr;
16892   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16893
16894 {
16895 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
16896   {
16897     SF opval = CGEN_CPU_FPU (current_cpu)->ops->floatsisf (CGEN_CPU_FPU (current_cpu), GET_H_FR_INT (FLD (f_FRj)));
16898     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
16899     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
16900   }
16901 }
16902
16903   return vpc;
16904 #undef FLD
16905 }
16906
16907 /* nfstoi: nfstoi$pack $FRj,$FRintk */
16908
16909 static SEM_PC
16910 SEM_FN_NAME (frvbf,nfstoi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16911 {
16912 #define FLD(f) abuf->fields.sfmt_fdstoi.f
16913   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16914   int UNUSED written = 0;
16915   IADDR UNUSED pc = abuf->addr;
16916   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16917
16918 {
16919 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
16920   {
16921     SI opval = CGEN_CPU_FPU (current_cpu)->ops->fixsfsi (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
16922     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
16923     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
16924   }
16925 }
16926
16927   return vpc;
16928 #undef FLD
16929 }
16930
16931 /* fmovs: fmovs$pack $FRj,$FRk */
16932
16933 static SEM_PC
16934 SEM_FN_NAME (frvbf,fmovs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16935 {
16936 #define FLD(f) abuf->fields.sfmt_cfmadds.f
16937   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16938   int UNUSED written = 0;
16939   IADDR UNUSED pc = abuf->addr;
16940   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16941
16942   {
16943     SF opval = GET_H_FR (FLD (f_FRj));
16944     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
16945     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
16946   }
16947
16948   return vpc;
16949 #undef FLD
16950 }
16951
16952 /* fmovd: fmovd$pack $FRdoublej,$FRdoublek */
16953
16954 static SEM_PC
16955 SEM_FN_NAME (frvbf,fmovd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16956 {
16957 #define FLD(f) abuf->fields.sfmt_fmaddd.f
16958   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16959   int UNUSED written = 0;
16960   IADDR UNUSED pc = abuf->addr;
16961   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16962
16963   {
16964     DF opval = GET_H_FR_DOUBLE (FLD (f_FRj));
16965     sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
16966     TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
16967   }
16968
16969   return vpc;
16970 #undef FLD
16971 }
16972
16973 /* fdmovs: fdmovs$pack $FRj,$FRk */
16974
16975 static SEM_PC
16976 SEM_FN_NAME (frvbf,fdmovs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16977 {
16978 #define FLD(f) abuf->fields.sfmt_fdmadds.f
16979   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16980   int UNUSED written = 0;
16981   IADDR UNUSED pc = abuf->addr;
16982   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16983
16984 {
16985   {
16986     SF opval = GET_H_FR (FLD (f_FRj));
16987     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
16988     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
16989   }
16990   {
16991     SF opval = GET_H_FR (((FLD (f_FRj)) + (1)));
16992     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
16993     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
16994   }
16995 }
16996
16997   return vpc;
16998 #undef FLD
16999 }
17000
17001 /* cfmovs: cfmovs$pack $FRj,$FRk,$CCi,$cond */
17002
17003 static SEM_PC
17004 SEM_FN_NAME (frvbf,cfmovs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17005 {
17006 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17007   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17008   int UNUSED written = 0;
17009   IADDR UNUSED pc = abuf->addr;
17010   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17011
17012 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
17013   {
17014     SF opval = GET_H_FR (FLD (f_FRj));
17015     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17016     written |= (1 << 3);
17017     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17018   }
17019 }
17020
17021   abuf->written = written;
17022   return vpc;
17023 #undef FLD
17024 }
17025
17026 /* fnegs: fnegs$pack $FRj,$FRk */
17027
17028 static SEM_PC
17029 SEM_FN_NAME (frvbf,fnegs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17030 {
17031 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17032   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17033   int UNUSED written = 0;
17034   IADDR UNUSED pc = abuf->addr;
17035   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17036
17037   {
17038     SF opval = CGEN_CPU_FPU (current_cpu)->ops->negsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17039     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17040     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17041   }
17042
17043   return vpc;
17044 #undef FLD
17045 }
17046
17047 /* fnegd: fnegd$pack $FRdoublej,$FRdoublek */
17048
17049 static SEM_PC
17050 SEM_FN_NAME (frvbf,fnegd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17051 {
17052 #define FLD(f) abuf->fields.sfmt_fmaddd.f
17053   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17054   int UNUSED written = 0;
17055   IADDR UNUSED pc = abuf->addr;
17056   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17057
17058   {
17059     DF opval = CGEN_CPU_FPU (current_cpu)->ops->negdf (CGEN_CPU_FPU (current_cpu), GET_H_FR_DOUBLE (FLD (f_FRj)));
17060     sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
17061     TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
17062   }
17063
17064   return vpc;
17065 #undef FLD
17066 }
17067
17068 /* fdnegs: fdnegs$pack $FRj,$FRk */
17069
17070 static SEM_PC
17071 SEM_FN_NAME (frvbf,fdnegs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17072 {
17073 #define FLD(f) abuf->fields.sfmt_fdmadds.f
17074   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17075   int UNUSED written = 0;
17076   IADDR UNUSED pc = abuf->addr;
17077   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17078
17079 {
17080   {
17081     SF opval = CGEN_CPU_FPU (current_cpu)->ops->negsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17082     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17083     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17084   }
17085   {
17086     SF opval = CGEN_CPU_FPU (current_cpu)->ops->negsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRj)) + (1))));
17087     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
17088     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17089   }
17090 }
17091
17092   return vpc;
17093 #undef FLD
17094 }
17095
17096 /* cfnegs: cfnegs$pack $FRj,$FRk,$CCi,$cond */
17097
17098 static SEM_PC
17099 SEM_FN_NAME (frvbf,cfnegs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17100 {
17101 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17102   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17103   int UNUSED written = 0;
17104   IADDR UNUSED pc = abuf->addr;
17105   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17106
17107 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
17108   {
17109     SF opval = CGEN_CPU_FPU (current_cpu)->ops->negsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17110     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17111     written |= (1 << 3);
17112     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17113   }
17114 }
17115
17116   abuf->written = written;
17117   return vpc;
17118 #undef FLD
17119 }
17120
17121 /* fabss: fabss$pack $FRj,$FRk */
17122
17123 static SEM_PC
17124 SEM_FN_NAME (frvbf,fabss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17125 {
17126 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17127   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17128   int UNUSED written = 0;
17129   IADDR UNUSED pc = abuf->addr;
17130   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17131
17132   {
17133     SF opval = CGEN_CPU_FPU (current_cpu)->ops->abssf (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17134     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17135     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17136   }
17137
17138   return vpc;
17139 #undef FLD
17140 }
17141
17142 /* fabsd: fabsd$pack $FRdoublej,$FRdoublek */
17143
17144 static SEM_PC
17145 SEM_FN_NAME (frvbf,fabsd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17146 {
17147 #define FLD(f) abuf->fields.sfmt_fmaddd.f
17148   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17149   int UNUSED written = 0;
17150   IADDR UNUSED pc = abuf->addr;
17151   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17152
17153   {
17154     DF opval = CGEN_CPU_FPU (current_cpu)->ops->absdf (CGEN_CPU_FPU (current_cpu), GET_H_FR_DOUBLE (FLD (f_FRj)));
17155     sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
17156     TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
17157   }
17158
17159   return vpc;
17160 #undef FLD
17161 }
17162
17163 /* fdabss: fdabss$pack $FRj,$FRk */
17164
17165 static SEM_PC
17166 SEM_FN_NAME (frvbf,fdabss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17167 {
17168 #define FLD(f) abuf->fields.sfmt_fdmadds.f
17169   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17170   int UNUSED written = 0;
17171   IADDR UNUSED pc = abuf->addr;
17172   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17173
17174 {
17175   {
17176     SF opval = CGEN_CPU_FPU (current_cpu)->ops->abssf (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17177     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17178     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17179   }
17180   {
17181     SF opval = CGEN_CPU_FPU (current_cpu)->ops->abssf (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRj)) + (1))));
17182     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
17183     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17184   }
17185 }
17186
17187   return vpc;
17188 #undef FLD
17189 }
17190
17191 /* cfabss: cfabss$pack $FRj,$FRk,$CCi,$cond */
17192
17193 static SEM_PC
17194 SEM_FN_NAME (frvbf,cfabss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17195 {
17196 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17197   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17198   int UNUSED written = 0;
17199   IADDR UNUSED pc = abuf->addr;
17200   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17201
17202 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
17203   {
17204     SF opval = CGEN_CPU_FPU (current_cpu)->ops->abssf (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17205     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17206     written |= (1 << 3);
17207     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17208   }
17209 }
17210
17211   abuf->written = written;
17212   return vpc;
17213 #undef FLD
17214 }
17215
17216 /* fsqrts: fsqrts$pack $FRj,$FRk */
17217
17218 static SEM_PC
17219 SEM_FN_NAME (frvbf,fsqrts) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17220 {
17221 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17222   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17223   int UNUSED written = 0;
17224   IADDR UNUSED pc = abuf->addr;
17225   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17226
17227   {
17228     SF opval = CGEN_CPU_FPU (current_cpu)->ops->sqrtsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17229     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17230     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17231   }
17232
17233   return vpc;
17234 #undef FLD
17235 }
17236
17237 /* fdsqrts: fdsqrts$pack $FRj,$FRk */
17238
17239 static SEM_PC
17240 SEM_FN_NAME (frvbf,fdsqrts) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17241 {
17242 #define FLD(f) abuf->fields.sfmt_fdmadds.f
17243   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17244   int UNUSED written = 0;
17245   IADDR UNUSED pc = abuf->addr;
17246   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17247
17248 {
17249   {
17250     SF opval = CGEN_CPU_FPU (current_cpu)->ops->sqrtsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17251     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17252     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17253   }
17254   {
17255     SF opval = CGEN_CPU_FPU (current_cpu)->ops->sqrtsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRj)) + (1))));
17256     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
17257     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17258   }
17259 }
17260
17261   return vpc;
17262 #undef FLD
17263 }
17264
17265 /* nfdsqrts: nfdsqrts$pack $FRj,$FRk */
17266
17267 static SEM_PC
17268 SEM_FN_NAME (frvbf,nfdsqrts) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17269 {
17270 #define FLD(f) abuf->fields.sfmt_fdmadds.f
17271   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17272   int UNUSED written = 0;
17273   IADDR UNUSED pc = abuf->addr;
17274   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17275
17276 {
17277 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
17278   {
17279     SF opval = CGEN_CPU_FPU (current_cpu)->ops->sqrtsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17280     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17281     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17282   }
17283 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
17284   {
17285     SF opval = CGEN_CPU_FPU (current_cpu)->ops->sqrtsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRj)) + (1))));
17286     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
17287     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17288   }
17289 }
17290
17291   return vpc;
17292 #undef FLD
17293 }
17294
17295 /* fsqrtd: fsqrtd$pack $FRdoublej,$FRdoublek */
17296
17297 static SEM_PC
17298 SEM_FN_NAME (frvbf,fsqrtd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17299 {
17300 #define FLD(f) abuf->fields.sfmt_fmaddd.f
17301   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17302   int UNUSED written = 0;
17303   IADDR UNUSED pc = abuf->addr;
17304   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17305
17306   {
17307     DF opval = CGEN_CPU_FPU (current_cpu)->ops->sqrtdf (CGEN_CPU_FPU (current_cpu), GET_H_FR_DOUBLE (FLD (f_FRj)));
17308     sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
17309     TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
17310   }
17311
17312   return vpc;
17313 #undef FLD
17314 }
17315
17316 /* cfsqrts: cfsqrts$pack $FRj,$FRk,$CCi,$cond */
17317
17318 static SEM_PC
17319 SEM_FN_NAME (frvbf,cfsqrts) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17320 {
17321 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17322   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17323   int UNUSED written = 0;
17324   IADDR UNUSED pc = abuf->addr;
17325   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17326
17327 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
17328   {
17329     SF opval = CGEN_CPU_FPU (current_cpu)->ops->sqrtsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17330     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17331     written |= (1 << 3);
17332     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17333   }
17334 }
17335
17336   abuf->written = written;
17337   return vpc;
17338 #undef FLD
17339 }
17340
17341 /* nfsqrts: nfsqrts$pack $FRj,$FRk */
17342
17343 static SEM_PC
17344 SEM_FN_NAME (frvbf,nfsqrts) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17345 {
17346 #define FLD(f) abuf->fields.sfmt_cfmadds.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 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
17354   {
17355     SF opval = CGEN_CPU_FPU (current_cpu)->ops->sqrtsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17356     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17357     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17358   }
17359 }
17360
17361   return vpc;
17362 #undef FLD
17363 }
17364
17365 /* fadds: fadds$pack $FRi,$FRj,$FRk */
17366
17367 static SEM_PC
17368 SEM_FN_NAME (frvbf,fadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17369 {
17370 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17371   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17372   int UNUSED written = 0;
17373   IADDR UNUSED pc = abuf->addr;
17374   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17375
17376   {
17377     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)));
17378     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17379     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17380   }
17381
17382   return vpc;
17383 #undef FLD
17384 }
17385
17386 /* fsubs: fsubs$pack $FRi,$FRj,$FRk */
17387
17388 static SEM_PC
17389 SEM_FN_NAME (frvbf,fsubs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17390 {
17391 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17392   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17393   int UNUSED written = 0;
17394   IADDR UNUSED pc = abuf->addr;
17395   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17396
17397   {
17398     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)));
17399     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17400     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17401   }
17402
17403   return vpc;
17404 #undef FLD
17405 }
17406
17407 /* fmuls: fmuls$pack $FRi,$FRj,$FRk */
17408
17409 static SEM_PC
17410 SEM_FN_NAME (frvbf,fmuls) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17411 {
17412 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17413   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17414   int UNUSED written = 0;
17415   IADDR UNUSED pc = abuf->addr;
17416   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17417
17418   {
17419     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)));
17420     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17421     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17422   }
17423
17424   return vpc;
17425 #undef FLD
17426 }
17427
17428 /* fdivs: fdivs$pack $FRi,$FRj,$FRk */
17429
17430 static SEM_PC
17431 SEM_FN_NAME (frvbf,fdivs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17432 {
17433 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17434   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17435   int UNUSED written = 0;
17436   IADDR UNUSED pc = abuf->addr;
17437   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17438
17439   {
17440     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)));
17441     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17442     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17443   }
17444
17445   return vpc;
17446 #undef FLD
17447 }
17448
17449 /* faddd: faddd$pack $FRdoublei,$FRdoublej,$FRdoublek */
17450
17451 static SEM_PC
17452 SEM_FN_NAME (frvbf,faddd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17453 {
17454 #define FLD(f) abuf->fields.sfmt_fmaddd.f
17455   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17456   int UNUSED written = 0;
17457   IADDR UNUSED pc = abuf->addr;
17458   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17459
17460   {
17461     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)));
17462     sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
17463     TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
17464   }
17465
17466   return vpc;
17467 #undef FLD
17468 }
17469
17470 /* fsubd: fsubd$pack $FRdoublei,$FRdoublej,$FRdoublek */
17471
17472 static SEM_PC
17473 SEM_FN_NAME (frvbf,fsubd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17474 {
17475 #define FLD(f) abuf->fields.sfmt_fmaddd.f
17476   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17477   int UNUSED written = 0;
17478   IADDR UNUSED pc = abuf->addr;
17479   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17480
17481   {
17482     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)));
17483     sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
17484     TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
17485   }
17486
17487   return vpc;
17488 #undef FLD
17489 }
17490
17491 /* fmuld: fmuld$pack $FRdoublei,$FRdoublej,$FRdoublek */
17492
17493 static SEM_PC
17494 SEM_FN_NAME (frvbf,fmuld) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17495 {
17496 #define FLD(f) abuf->fields.sfmt_fmaddd.f
17497   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17498   int UNUSED written = 0;
17499   IADDR UNUSED pc = abuf->addr;
17500   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17501
17502   {
17503     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)));
17504     sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
17505     TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
17506   }
17507
17508   return vpc;
17509 #undef FLD
17510 }
17511
17512 /* fdivd: fdivd$pack $FRdoublei,$FRdoublej,$FRdoublek */
17513
17514 static SEM_PC
17515 SEM_FN_NAME (frvbf,fdivd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17516 {
17517 #define FLD(f) abuf->fields.sfmt_fmaddd.f
17518   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17519   int UNUSED written = 0;
17520   IADDR UNUSED pc = abuf->addr;
17521   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17522
17523   {
17524     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)));
17525     sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
17526     TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
17527   }
17528
17529   return vpc;
17530 #undef FLD
17531 }
17532
17533 /* cfadds: cfadds$pack $FRi,$FRj,$FRk,$CCi,$cond */
17534
17535 static SEM_PC
17536 SEM_FN_NAME (frvbf,cfadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17537 {
17538 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17539   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17540   int UNUSED written = 0;
17541   IADDR UNUSED pc = abuf->addr;
17542   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17543
17544 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
17545   {
17546     SF opval = CGEN_CPU_FPU (current_cpu)->ops->addsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)));
17547     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17548     written |= (1 << 4);
17549     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17550   }
17551 }
17552
17553   abuf->written = written;
17554   return vpc;
17555 #undef FLD
17556 }
17557
17558 /* cfsubs: cfsubs$pack $FRi,$FRj,$FRk,$CCi,$cond */
17559
17560 static SEM_PC
17561 SEM_FN_NAME (frvbf,cfsubs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17562 {
17563 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17564   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17565   int UNUSED written = 0;
17566   IADDR UNUSED pc = abuf->addr;
17567   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17568
17569 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
17570   {
17571     SF opval = CGEN_CPU_FPU (current_cpu)->ops->subsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)));
17572     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17573     written |= (1 << 4);
17574     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17575   }
17576 }
17577
17578   abuf->written = written;
17579   return vpc;
17580 #undef FLD
17581 }
17582
17583 /* cfmuls: cfmuls$pack $FRi,$FRj,$FRk,$CCi,$cond */
17584
17585 static SEM_PC
17586 SEM_FN_NAME (frvbf,cfmuls) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17587 {
17588 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17589   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17590   int UNUSED written = 0;
17591   IADDR UNUSED pc = abuf->addr;
17592   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17593
17594 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
17595   {
17596     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)));
17597     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17598     written |= (1 << 4);
17599     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17600   }
17601 }
17602
17603   abuf->written = written;
17604   return vpc;
17605 #undef FLD
17606 }
17607
17608 /* cfdivs: cfdivs$pack $FRi,$FRj,$FRk,$CCi,$cond */
17609
17610 static SEM_PC
17611 SEM_FN_NAME (frvbf,cfdivs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17612 {
17613 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17614   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17615   int UNUSED written = 0;
17616   IADDR UNUSED pc = abuf->addr;
17617   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17618
17619 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
17620   {
17621     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)));
17622     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17623     written |= (1 << 4);
17624     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17625   }
17626 }
17627
17628   abuf->written = written;
17629   return vpc;
17630 #undef FLD
17631 }
17632
17633 /* nfadds: nfadds$pack $FRi,$FRj,$FRk */
17634
17635 static SEM_PC
17636 SEM_FN_NAME (frvbf,nfadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17637 {
17638 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17639   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17640   int UNUSED written = 0;
17641   IADDR UNUSED pc = abuf->addr;
17642   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17643
17644 {
17645 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
17646   {
17647     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)));
17648     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17649     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17650   }
17651 }
17652
17653   return vpc;
17654 #undef FLD
17655 }
17656
17657 /* nfsubs: nfsubs$pack $FRi,$FRj,$FRk */
17658
17659 static SEM_PC
17660 SEM_FN_NAME (frvbf,nfsubs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17661 {
17662 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17663   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17664   int UNUSED written = 0;
17665   IADDR UNUSED pc = abuf->addr;
17666   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17667
17668 {
17669 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
17670   {
17671     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)));
17672     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17673     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17674   }
17675 }
17676
17677   return vpc;
17678 #undef FLD
17679 }
17680
17681 /* nfmuls: nfmuls$pack $FRi,$FRj,$FRk */
17682
17683 static SEM_PC
17684 SEM_FN_NAME (frvbf,nfmuls) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17685 {
17686 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17687   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17688   int UNUSED written = 0;
17689   IADDR UNUSED pc = abuf->addr;
17690   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17691
17692 {
17693 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
17694   {
17695     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)));
17696     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17697     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17698   }
17699 }
17700
17701   return vpc;
17702 #undef FLD
17703 }
17704
17705 /* nfdivs: nfdivs$pack $FRi,$FRj,$FRk */
17706
17707 static SEM_PC
17708 SEM_FN_NAME (frvbf,nfdivs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17709 {
17710 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17711   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17712   int UNUSED written = 0;
17713   IADDR UNUSED pc = abuf->addr;
17714   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17715
17716 {
17717 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
17718   {
17719     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)));
17720     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17721     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17722   }
17723 }
17724
17725   return vpc;
17726 #undef FLD
17727 }
17728
17729 /* fcmps: fcmps$pack $FRi,$FRj,$FCCi_2 */
17730
17731 static SEM_PC
17732 SEM_FN_NAME (frvbf,fcmps) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17733 {
17734 #define FLD(f) abuf->fields.sfmt_cfcmps.f
17735   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17736   int UNUSED written = 0;
17737   IADDR UNUSED pc = abuf->addr;
17738   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17739
17740 if (CGEN_CPU_FPU (current_cpu)->ops->gtsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)))) {
17741   {
17742     UQI opval = 2;
17743     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17744     written |= (1 << 2);
17745     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17746   }
17747 } else {
17748 if (CGEN_CPU_FPU (current_cpu)->ops->eqsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)))) {
17749   {
17750     UQI opval = 8;
17751     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17752     written |= (1 << 2);
17753     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17754   }
17755 } else {
17756 if (CGEN_CPU_FPU (current_cpu)->ops->ltsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)))) {
17757   {
17758     UQI opval = 4;
17759     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17760     written |= (1 << 2);
17761     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17762   }
17763 } else {
17764   {
17765     UQI opval = 1;
17766     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17767     written |= (1 << 2);
17768     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17769   }
17770 }
17771 }
17772 }
17773
17774   abuf->written = written;
17775   return vpc;
17776 #undef FLD
17777 }
17778
17779 /* fcmpd: fcmpd$pack $FRdoublei,$FRdoublej,$FCCi_2 */
17780
17781 static SEM_PC
17782 SEM_FN_NAME (frvbf,fcmpd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17783 {
17784 #define FLD(f) abuf->fields.sfmt_fcmpd.f
17785   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17786   int UNUSED written = 0;
17787   IADDR UNUSED pc = abuf->addr;
17788   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17789
17790 if (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)))) {
17791   {
17792     UQI opval = 2;
17793     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17794     written |= (1 << 2);
17795     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17796   }
17797 } else {
17798 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)))) {
17799   {
17800     UQI opval = 8;
17801     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17802     written |= (1 << 2);
17803     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17804   }
17805 } else {
17806 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)))) {
17807   {
17808     UQI opval = 4;
17809     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17810     written |= (1 << 2);
17811     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17812   }
17813 } else {
17814   {
17815     UQI opval = 1;
17816     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17817     written |= (1 << 2);
17818     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17819   }
17820 }
17821 }
17822 }
17823
17824   abuf->written = written;
17825   return vpc;
17826 #undef FLD
17827 }
17828
17829 /* cfcmps: cfcmps$pack $FRi,$FRj,$FCCi_2,$CCi,$cond */
17830
17831 static SEM_PC
17832 SEM_FN_NAME (frvbf,cfcmps) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17833 {
17834 #define FLD(f) abuf->fields.sfmt_cfcmps.f
17835   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17836   int UNUSED written = 0;
17837   IADDR UNUSED pc = abuf->addr;
17838   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17839
17840 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
17841 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)))) {
17842   {
17843     UQI opval = 2;
17844     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17845     written |= (1 << 4);
17846     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17847   }
17848 } else {
17849 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)))) {
17850   {
17851     UQI opval = 8;
17852     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17853     written |= (1 << 4);
17854     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17855   }
17856 } else {
17857 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)))) {
17858   {
17859     UQI opval = 4;
17860     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17861     written |= (1 << 4);
17862     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17863   }
17864 } else {
17865   {
17866     UQI opval = 1;
17867     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17868     written |= (1 << 4);
17869     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17870   }
17871 }
17872 }
17873 }
17874 }
17875
17876   abuf->written = written;
17877   return vpc;
17878 #undef FLD
17879 }
17880
17881 /* fdcmps: fdcmps$pack $FRi,$FRj,$FCCi_2 */
17882
17883 static SEM_PC
17884 SEM_FN_NAME (frvbf,fdcmps) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17885 {
17886 #define FLD(f) abuf->fields.sfmt_nfdcmps.f
17887   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17888   int UNUSED written = 0;
17889   IADDR UNUSED pc = abuf->addr;
17890   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17891
17892 {
17893 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)))) {
17894   {
17895     UQI opval = 2;
17896     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17897     written |= (1 << 7);
17898     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17899   }
17900 } else {
17901 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)))) {
17902   {
17903     UQI opval = 8;
17904     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17905     written |= (1 << 7);
17906     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17907   }
17908 } else {
17909 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)))) {
17910   {
17911     UQI opval = 4;
17912     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17913     written |= (1 << 7);
17914     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17915   }
17916 } else {
17917   {
17918     UQI opval = 1;
17919     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17920     written |= (1 << 7);
17921     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17922   }
17923 }
17924 }
17925 }
17926 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))))) {
17927   {
17928     UQI opval = 2;
17929     sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCi_2)) + (1))]), opval);
17930     written |= (1 << 8);
17931     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17932   }
17933 } else {
17934 if (CGEN_CPU_FPU (current_cpu)->ops->eqsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (1))), GET_H_FR (((FLD (f_FRj)) + (1))))) {
17935   {
17936     UQI opval = 8;
17937     sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCi_2)) + (1))]), opval);
17938     written |= (1 << 8);
17939     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17940   }
17941 } else {
17942 if (CGEN_CPU_FPU (current_cpu)->ops->ltsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (1))), GET_H_FR (((FLD (f_FRj)) + (1))))) {
17943   {
17944     UQI opval = 4;
17945     sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCi_2)) + (1))]), opval);
17946     written |= (1 << 8);
17947     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17948   }
17949 } else {
17950   {
17951     UQI opval = 1;
17952     sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCi_2)) + (1))]), opval);
17953     written |= (1 << 8);
17954     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17955   }
17956 }
17957 }
17958 }
17959 }
17960
17961   abuf->written = written;
17962   return vpc;
17963 #undef FLD
17964 }
17965
17966 /* fmadds: fmadds$pack $FRi,$FRj,$FRk */
17967
17968 static SEM_PC
17969 SEM_FN_NAME (frvbf,fmadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17970 {
17971 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17972   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17973   int UNUSED written = 0;
17974   IADDR UNUSED pc = abuf->addr;
17975   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17976
17977   {
17978     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)));
17979     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17980     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17981   }
17982
17983   return vpc;
17984 #undef FLD
17985 }
17986
17987 /* fmsubs: fmsubs$pack $FRi,$FRj,$FRk */
17988
17989 static SEM_PC
17990 SEM_FN_NAME (frvbf,fmsubs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17991 {
17992 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17993   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17994   int UNUSED written = 0;
17995   IADDR UNUSED pc = abuf->addr;
17996   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17997
17998   {
17999     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)));
18000     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18001     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18002   }
18003
18004   return vpc;
18005 #undef FLD
18006 }
18007
18008 /* fmaddd: fmaddd$pack $FRdoublei,$FRdoublej,$FRdoublek */
18009
18010 static SEM_PC
18011 SEM_FN_NAME (frvbf,fmaddd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18012 {
18013 #define FLD(f) abuf->fields.sfmt_fmaddd.f
18014   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18015   int UNUSED written = 0;
18016   IADDR UNUSED pc = abuf->addr;
18017   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18018
18019   {
18020     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)));
18021     sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
18022     TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
18023   }
18024
18025   return vpc;
18026 #undef FLD
18027 }
18028
18029 /* fmsubd: fmsubd$pack $FRdoublei,$FRdoublej,$FRdoublek */
18030
18031 static SEM_PC
18032 SEM_FN_NAME (frvbf,fmsubd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18033 {
18034 #define FLD(f) abuf->fields.sfmt_fmaddd.f
18035   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18036   int UNUSED written = 0;
18037   IADDR UNUSED pc = abuf->addr;
18038   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18039
18040   {
18041     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)));
18042     sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
18043     TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
18044   }
18045
18046   return vpc;
18047 #undef FLD
18048 }
18049
18050 /* fdmadds: fdmadds$pack $FRi,$FRj,$FRk */
18051
18052 static SEM_PC
18053 SEM_FN_NAME (frvbf,fdmadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18054 {
18055 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18056   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18057   int UNUSED written = 0;
18058   IADDR UNUSED pc = abuf->addr;
18059   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18060
18061 {
18062   {
18063     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)));
18064     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18065     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18066   }
18067   {
18068     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))));
18069     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18070     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18071   }
18072 }
18073
18074   return vpc;
18075 #undef FLD
18076 }
18077
18078 /* nfdmadds: nfdmadds$pack $FRi,$FRj,$FRk */
18079
18080 static SEM_PC
18081 SEM_FN_NAME (frvbf,nfdmadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18082 {
18083 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18084   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18085   int UNUSED written = 0;
18086   IADDR UNUSED pc = abuf->addr;
18087   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18088
18089 {
18090 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18091   {
18092     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)));
18093     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18094     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18095   }
18096 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18097   {
18098     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))));
18099     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18100     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18101   }
18102 }
18103
18104   return vpc;
18105 #undef FLD
18106 }
18107
18108 /* cfmadds: cfmadds$pack $FRi,$FRj,$FRk,$CCi,$cond */
18109
18110 static SEM_PC
18111 SEM_FN_NAME (frvbf,cfmadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18112 {
18113 #define FLD(f) abuf->fields.sfmt_cfmadds.f
18114   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18115   int UNUSED written = 0;
18116   IADDR UNUSED pc = abuf->addr;
18117   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18118
18119 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
18120   {
18121     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)));
18122     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18123     written |= (1 << 5);
18124     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18125   }
18126 }
18127
18128   abuf->written = written;
18129   return vpc;
18130 #undef FLD
18131 }
18132
18133 /* cfmsubs: cfmsubs$pack $FRi,$FRj,$FRk,$CCi,$cond */
18134
18135 static SEM_PC
18136 SEM_FN_NAME (frvbf,cfmsubs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18137 {
18138 #define FLD(f) abuf->fields.sfmt_cfmadds.f
18139   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18140   int UNUSED written = 0;
18141   IADDR UNUSED pc = abuf->addr;
18142   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18143
18144 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
18145   {
18146     SF opval = CGEN_CPU_FPU (current_cpu)->ops->subsf (CGEN_CPU_FPU (current_cpu), CGEN_CPU_FPU (current_cpu)->ops->mulsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj))), GET_H_FR (FLD (f_FRk)));
18147     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18148     written |= (1 << 5);
18149     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18150   }
18151 }
18152
18153   abuf->written = written;
18154   return vpc;
18155 #undef FLD
18156 }
18157
18158 /* nfmadds: nfmadds$pack $FRi,$FRj,$FRk */
18159
18160 static SEM_PC
18161 SEM_FN_NAME (frvbf,nfmadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18162 {
18163 #define FLD(f) abuf->fields.sfmt_cfmadds.f
18164   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18165   int UNUSED written = 0;
18166   IADDR UNUSED pc = abuf->addr;
18167   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18168
18169 {
18170 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18171   {
18172     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)));
18173     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18174     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18175   }
18176 }
18177
18178   return vpc;
18179 #undef FLD
18180 }
18181
18182 /* nfmsubs: nfmsubs$pack $FRi,$FRj,$FRk */
18183
18184 static SEM_PC
18185 SEM_FN_NAME (frvbf,nfmsubs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18186 {
18187 #define FLD(f) abuf->fields.sfmt_cfmadds.f
18188   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18189   int UNUSED written = 0;
18190   IADDR UNUSED pc = abuf->addr;
18191   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18192
18193 {
18194 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18195   {
18196     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)));
18197     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18198     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18199   }
18200 }
18201
18202   return vpc;
18203 #undef FLD
18204 }
18205
18206 /* fmas: fmas$pack $FRi,$FRj,$FRk */
18207
18208 static SEM_PC
18209 SEM_FN_NAME (frvbf,fmas) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18210 {
18211 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18212   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18213   int UNUSED written = 0;
18214   IADDR UNUSED pc = abuf->addr;
18215   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18216
18217 {
18218   {
18219     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)));
18220     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18221     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18222   }
18223   {
18224     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))));
18225     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18226     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18227   }
18228 }
18229
18230   return vpc;
18231 #undef FLD
18232 }
18233
18234 /* fmss: fmss$pack $FRi,$FRj,$FRk */
18235
18236 static SEM_PC
18237 SEM_FN_NAME (frvbf,fmss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18238 {
18239 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18240   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18241   int UNUSED written = 0;
18242   IADDR UNUSED pc = abuf->addr;
18243   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18244
18245 {
18246   {
18247     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)));
18248     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18249     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18250   }
18251   {
18252     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))));
18253     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18254     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18255   }
18256 }
18257
18258   return vpc;
18259 #undef FLD
18260 }
18261
18262 /* fdmas: fdmas$pack $FRi,$FRj,$FRk */
18263
18264 static SEM_PC
18265 SEM_FN_NAME (frvbf,fdmas) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18266 {
18267 #define FLD(f) abuf->fields.sfmt_fdmas.f
18268   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18269   int UNUSED written = 0;
18270   IADDR UNUSED pc = abuf->addr;
18271   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18272
18273 {
18274   {
18275     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)));
18276     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18277     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18278   }
18279   {
18280     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))));
18281     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18282     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18283   }
18284   {
18285     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))));
18286     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (2)), opval);
18287     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18288   }
18289   {
18290     SF opval = CGEN_CPU_FPU (current_cpu)->ops->addsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (3))), GET_H_FR (((FLD (f_FRj)) + (3))));
18291     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (3)), opval);
18292     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18293   }
18294 }
18295
18296   return vpc;
18297 #undef FLD
18298 }
18299
18300 /* fdmss: fdmss$pack $FRi,$FRj,$FRk */
18301
18302 static SEM_PC
18303 SEM_FN_NAME (frvbf,fdmss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18304 {
18305 #define FLD(f) abuf->fields.sfmt_fdmas.f
18306   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18307   int UNUSED written = 0;
18308   IADDR UNUSED pc = abuf->addr;
18309   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18310
18311 {
18312   {
18313     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)));
18314     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18315     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18316   }
18317   {
18318     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))));
18319     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18320     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18321   }
18322   {
18323     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))));
18324     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (2)), opval);
18325     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18326   }
18327   {
18328     SF opval = CGEN_CPU_FPU (current_cpu)->ops->subsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (3))), GET_H_FR (((FLD (f_FRj)) + (3))));
18329     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (3)), opval);
18330     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18331   }
18332 }
18333
18334   return vpc;
18335 #undef FLD
18336 }
18337
18338 /* nfdmas: nfdmas$pack $FRi,$FRj,$FRk */
18339
18340 static SEM_PC
18341 SEM_FN_NAME (frvbf,nfdmas) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18342 {
18343 #define FLD(f) abuf->fields.sfmt_fdmas.f
18344   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18345   int UNUSED written = 0;
18346   IADDR UNUSED pc = abuf->addr;
18347   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18348
18349 {
18350 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18351 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18352 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 2));
18353 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 3));
18354   {
18355     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)));
18356     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18357     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18358   }
18359   {
18360     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))));
18361     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18362     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18363   }
18364   {
18365     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))));
18366     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (2)), opval);
18367     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18368   }
18369   {
18370     SF opval = CGEN_CPU_FPU (current_cpu)->ops->addsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (3))), GET_H_FR (((FLD (f_FRj)) + (3))));
18371     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (3)), opval);
18372     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18373   }
18374 }
18375
18376   return vpc;
18377 #undef FLD
18378 }
18379
18380 /* nfdmss: nfdmss$pack $FRi,$FRj,$FRk */
18381
18382 static SEM_PC
18383 SEM_FN_NAME (frvbf,nfdmss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18384 {
18385 #define FLD(f) abuf->fields.sfmt_fdmas.f
18386   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18387   int UNUSED written = 0;
18388   IADDR UNUSED pc = abuf->addr;
18389   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18390
18391 {
18392 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18393 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18394 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 2));
18395 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 3));
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->subsf (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     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))));
18408     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (2)), opval);
18409     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18410   }
18411   {
18412     SF opval = CGEN_CPU_FPU (current_cpu)->ops->subsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (3))), GET_H_FR (((FLD (f_FRj)) + (3))));
18413     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (3)), opval);
18414     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18415   }
18416 }
18417
18418   return vpc;
18419 #undef FLD
18420 }
18421
18422 /* cfmas: cfmas$pack $FRi,$FRj,$FRk,$CCi,$cond */
18423
18424 static SEM_PC
18425 SEM_FN_NAME (frvbf,cfmas) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18426 {
18427 #define FLD(f) abuf->fields.sfmt_cfmas.f
18428   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18429   int UNUSED written = 0;
18430   IADDR UNUSED pc = abuf->addr;
18431   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18432
18433 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
18434 {
18435   {
18436     SF opval = CGEN_CPU_FPU (current_cpu)->ops->mulsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)));
18437     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18438     written |= (1 << 9);
18439     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18440   }
18441   {
18442     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))));
18443     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18444     written |= (1 << 10);
18445     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18446   }
18447 }
18448 }
18449
18450   abuf->written = written;
18451   return vpc;
18452 #undef FLD
18453 }
18454
18455 /* cfmss: cfmss$pack $FRi,$FRj,$FRk,$CCi,$cond */
18456
18457 static SEM_PC
18458 SEM_FN_NAME (frvbf,cfmss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18459 {
18460 #define FLD(f) abuf->fields.sfmt_cfmas.f
18461   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18462   int UNUSED written = 0;
18463   IADDR UNUSED pc = abuf->addr;
18464   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18465
18466 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
18467 {
18468   {
18469     SF opval = CGEN_CPU_FPU (current_cpu)->ops->mulsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)));
18470     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18471     written |= (1 << 9);
18472     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18473   }
18474   {
18475     SF opval = CGEN_CPU_FPU (current_cpu)->ops->subsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (1))), GET_H_FR (((FLD (f_FRj)) + (1))));
18476     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18477     written |= (1 << 10);
18478     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18479   }
18480 }
18481 }
18482
18483   abuf->written = written;
18484   return vpc;
18485 #undef FLD
18486 }
18487
18488 /* fmad: fmad$pack $FRi,$FRj,$FRk */
18489
18490 static SEM_PC
18491 SEM_FN_NAME (frvbf,fmad) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18492 {
18493 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18494   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18495   int UNUSED written = 0;
18496   IADDR UNUSED pc = abuf->addr;
18497   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18498
18499 {
18500   {
18501     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)))));
18502     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18503     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18504   }
18505   {
18506     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))))));
18507     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18508     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18509   }
18510 }
18511
18512   return vpc;
18513 #undef FLD
18514 }
18515
18516 /* fmsd: fmsd$pack $FRi,$FRj,$FRk */
18517
18518 static SEM_PC
18519 SEM_FN_NAME (frvbf,fmsd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18520 {
18521 #define FLD(f) abuf->fields.sfmt_fdmadds.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   {
18529     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)))));
18530     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18531     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18532   }
18533   {
18534     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))))));
18535     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18536     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18537   }
18538 }
18539
18540   return vpc;
18541 #undef FLD
18542 }
18543
18544 /* nfmas: nfmas$pack $FRi,$FRj,$FRk */
18545
18546 static SEM_PC
18547 SEM_FN_NAME (frvbf,nfmas) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18548 {
18549 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18550   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18551   int UNUSED written = 0;
18552   IADDR UNUSED pc = abuf->addr;
18553   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18554
18555 {
18556 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18557   {
18558     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)));
18559     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18560     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18561   }
18562 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18563   {
18564     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))));
18565     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18566     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18567   }
18568 }
18569
18570   return vpc;
18571 #undef FLD
18572 }
18573
18574 /* nfmss: nfmss$pack $FRi,$FRj,$FRk */
18575
18576 static SEM_PC
18577 SEM_FN_NAME (frvbf,nfmss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18578 {
18579 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18580   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18581   int UNUSED written = 0;
18582   IADDR UNUSED pc = abuf->addr;
18583   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18584
18585 {
18586 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18587   {
18588     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)));
18589     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18590     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18591   }
18592 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18593   {
18594     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))));
18595     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18596     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18597   }
18598 }
18599
18600   return vpc;
18601 #undef FLD
18602 }
18603
18604 /* fdadds: fdadds$pack $FRi,$FRj,$FRk */
18605
18606 static SEM_PC
18607 SEM_FN_NAME (frvbf,fdadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18608 {
18609 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18610   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18611   int UNUSED written = 0;
18612   IADDR UNUSED pc = abuf->addr;
18613   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18614
18615 {
18616   {
18617     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)));
18618     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18619     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18620   }
18621   {
18622     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))));
18623     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18624     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18625   }
18626 }
18627
18628   return vpc;
18629 #undef FLD
18630 }
18631
18632 /* fdsubs: fdsubs$pack $FRi,$FRj,$FRk */
18633
18634 static SEM_PC
18635 SEM_FN_NAME (frvbf,fdsubs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18636 {
18637 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18638   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18639   int UNUSED written = 0;
18640   IADDR UNUSED pc = abuf->addr;
18641   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18642
18643 {
18644   {
18645     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)));
18646     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18647     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18648   }
18649   {
18650     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))));
18651     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18652     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18653   }
18654 }
18655
18656   return vpc;
18657 #undef FLD
18658 }
18659
18660 /* fdmuls: fdmuls$pack $FRi,$FRj,$FRk */
18661
18662 static SEM_PC
18663 SEM_FN_NAME (frvbf,fdmuls) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18664 {
18665 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18666   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18667   int UNUSED written = 0;
18668   IADDR UNUSED pc = abuf->addr;
18669   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18670
18671 {
18672   {
18673     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)));
18674     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18675     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18676   }
18677   {
18678     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))));
18679     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18680     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18681   }
18682 }
18683
18684   return vpc;
18685 #undef FLD
18686 }
18687
18688 /* fddivs: fddivs$pack $FRi,$FRj,$FRk */
18689
18690 static SEM_PC
18691 SEM_FN_NAME (frvbf,fddivs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18692 {
18693 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18694   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18695   int UNUSED written = 0;
18696   IADDR UNUSED pc = abuf->addr;
18697   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18698
18699 {
18700   {
18701     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)));
18702     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18703     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18704   }
18705   {
18706     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))));
18707     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18708     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18709   }
18710 }
18711
18712   return vpc;
18713 #undef FLD
18714 }
18715
18716 /* fdsads: fdsads$pack $FRi,$FRj,$FRk */
18717
18718 static SEM_PC
18719 SEM_FN_NAME (frvbf,fdsads) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18720 {
18721 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18722   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18723   int UNUSED written = 0;
18724   IADDR UNUSED pc = abuf->addr;
18725   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18726
18727 {
18728   {
18729     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)));
18730     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18731     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18732   }
18733   {
18734     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))));
18735     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18736     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18737   }
18738 }
18739
18740   return vpc;
18741 #undef FLD
18742 }
18743
18744 /* fdmulcs: fdmulcs$pack $FRi,$FRj,$FRk */
18745
18746 static SEM_PC
18747 SEM_FN_NAME (frvbf,fdmulcs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18748 {
18749 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18750   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18751   int UNUSED written = 0;
18752   IADDR UNUSED pc = abuf->addr;
18753   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18754
18755 {
18756   {
18757     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))));
18758     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18759     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18760   }
18761   {
18762     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)));
18763     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18764     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18765   }
18766 }
18767
18768   return vpc;
18769 #undef FLD
18770 }
18771
18772 /* nfdmulcs: nfdmulcs$pack $FRi,$FRj,$FRk */
18773
18774 static SEM_PC
18775 SEM_FN_NAME (frvbf,nfdmulcs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18776 {
18777 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18778   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18779   int UNUSED written = 0;
18780   IADDR UNUSED pc = abuf->addr;
18781   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18782
18783 {
18784 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18785   {
18786     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))));
18787     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18788     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18789   }
18790 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18791   {
18792     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)));
18793     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18794     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18795   }
18796 }
18797
18798   return vpc;
18799 #undef FLD
18800 }
18801
18802 /* nfdadds: nfdadds$pack $FRi,$FRj,$FRk */
18803
18804 static SEM_PC
18805 SEM_FN_NAME (frvbf,nfdadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18806 {
18807 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18808   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18809   int UNUSED written = 0;
18810   IADDR UNUSED pc = abuf->addr;
18811   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18812
18813 {
18814 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18815   {
18816     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)));
18817     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18818     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18819   }
18820 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18821   {
18822     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))));
18823     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18824     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18825   }
18826 }
18827
18828   return vpc;
18829 #undef FLD
18830 }
18831
18832 /* nfdsubs: nfdsubs$pack $FRi,$FRj,$FRk */
18833
18834 static SEM_PC
18835 SEM_FN_NAME (frvbf,nfdsubs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18836 {
18837 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18838   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18839   int UNUSED written = 0;
18840   IADDR UNUSED pc = abuf->addr;
18841   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18842
18843 {
18844 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18845   {
18846     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)));
18847     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18848     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18849   }
18850 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18851   {
18852     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))));
18853     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18854     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18855   }
18856 }
18857
18858   return vpc;
18859 #undef FLD
18860 }
18861
18862 /* nfdmuls: nfdmuls$pack $FRi,$FRj,$FRk */
18863
18864 static SEM_PC
18865 SEM_FN_NAME (frvbf,nfdmuls) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18866 {
18867 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18868   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18869   int UNUSED written = 0;
18870   IADDR UNUSED pc = abuf->addr;
18871   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18872
18873 {
18874 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18875   {
18876     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)));
18877     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18878     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18879   }
18880 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18881   {
18882     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))));
18883     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18884     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18885   }
18886 }
18887
18888   return vpc;
18889 #undef FLD
18890 }
18891
18892 /* nfddivs: nfddivs$pack $FRi,$FRj,$FRk */
18893
18894 static SEM_PC
18895 SEM_FN_NAME (frvbf,nfddivs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18896 {
18897 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18898   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18899   int UNUSED written = 0;
18900   IADDR UNUSED pc = abuf->addr;
18901   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18902
18903 {
18904 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18905   {
18906     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)));
18907     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18908     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18909   }
18910 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18911   {
18912     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))));
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 /* nfdsads: nfdsads$pack $FRi,$FRj,$FRk */
18923
18924 static SEM_PC
18925 SEM_FN_NAME (frvbf,nfdsads) (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 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18935   {
18936     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)));
18937     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18938     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18939   }
18940 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18941   {
18942     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))));
18943     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18944     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18945   }
18946 }
18947
18948   return vpc;
18949 #undef FLD
18950 }
18951
18952 /* nfdcmps: nfdcmps$pack $FRi,$FRj,$FCCi_2 */
18953
18954 static SEM_PC
18955 SEM_FN_NAME (frvbf,nfdcmps) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18956 {
18957 #define FLD(f) abuf->fields.sfmt_nfdcmps.f
18958   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18959   int UNUSED written = 0;
18960   IADDR UNUSED pc = abuf->addr;
18961   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18962
18963 {
18964 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18965 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)))) {
18966   {
18967     UQI opval = 2;
18968     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
18969     written |= (1 << 8);
18970     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
18971   }
18972 } else {
18973 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)))) {
18974   {
18975     UQI opval = 8;
18976     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
18977     written |= (1 << 8);
18978     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
18979   }
18980 } else {
18981 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)))) {
18982   {
18983     UQI opval = 4;
18984     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
18985     written |= (1 << 8);
18986     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
18987   }
18988 } else {
18989   {
18990     UQI opval = 1;
18991     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
18992     written |= (1 << 8);
18993     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
18994   }
18995 }
18996 }
18997 }
18998 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18999 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))))) {
19000   {
19001     UQI opval = 2;
19002     sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCi_2)) + (1))]), opval);
19003     written |= (1 << 9);
19004     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
19005   }
19006 } else {
19007 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))))) {
19008   {
19009     UQI opval = 8;
19010     sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCi_2)) + (1))]), opval);
19011     written |= (1 << 9);
19012     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
19013   }
19014 } else {
19015 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))))) {
19016   {
19017     UQI opval = 4;
19018     sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCi_2)) + (1))]), opval);
19019     written |= (1 << 9);
19020     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
19021   }
19022 } else {
19023   {
19024     UQI opval = 1;
19025     sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCi_2)) + (1))]), opval);
19026     written |= (1 << 9);
19027     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
19028   }
19029 }
19030 }
19031 }
19032 }
19033
19034   abuf->written = written;
19035   return vpc;
19036 #undef FLD
19037 }
19038
19039 /* mhsetlos: mhsetlos$pack $u12,$FRklo */
19040
19041 static SEM_PC
19042 SEM_FN_NAME (frvbf,mhsetlos) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19043 {
19044 #define FLD(f) abuf->fields.sfmt_mhsetlos.f
19045   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19046   int UNUSED written = 0;
19047   IADDR UNUSED pc = abuf->addr;
19048   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19049
19050   {
19051     UHI opval = FLD (f_u12);
19052     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, FLD (f_FRk), opval);
19053     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19054   }
19055
19056   return vpc;
19057 #undef FLD
19058 }
19059
19060 /* mhsethis: mhsethis$pack $u12,$FRkhi */
19061
19062 static SEM_PC
19063 SEM_FN_NAME (frvbf,mhsethis) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19064 {
19065 #define FLD(f) abuf->fields.sfmt_mhsethis.f
19066   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19067   int UNUSED written = 0;
19068   IADDR UNUSED pc = abuf->addr;
19069   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19070
19071   {
19072     UHI opval = FLD (f_u12);
19073     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, FLD (f_FRk), opval);
19074     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19075   }
19076
19077   return vpc;
19078 #undef FLD
19079 }
19080
19081 /* mhdsets: mhdsets$pack $u12,$FRintk */
19082
19083 static SEM_PC
19084 SEM_FN_NAME (frvbf,mhdsets) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19085 {
19086 #define FLD(f) abuf->fields.sfmt_mhdsets.f
19087   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19088   int UNUSED written = 0;
19089   IADDR UNUSED pc = abuf->addr;
19090   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19091
19092 {
19093   {
19094     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
19095     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19096     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19097   }
19098   {
19099     UHI opval = FLD (f_u12);
19100     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
19101     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19102   }
19103   {
19104     UHI opval = FLD (f_u12);
19105     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
19106     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19107   }
19108 }
19109
19110   return vpc;
19111 #undef FLD
19112 }
19113
19114 /* mhsetloh: mhsetloh$pack $s5,$FRklo */
19115
19116 static SEM_PC
19117 SEM_FN_NAME (frvbf,mhsetloh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19118 {
19119 #define FLD(f) abuf->fields.sfmt_mhsetloh.f
19120   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19121   int UNUSED written = 0;
19122   IADDR UNUSED pc = abuf->addr;
19123   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19124
19125 {
19126   HI tmp_tmp;
19127   tmp_tmp = GET_H_FR_LO (FLD (f_FRk));
19128   tmp_tmp = ANDHI (tmp_tmp, 2047);
19129   tmp_tmp = ORHI (tmp_tmp, SLLSI (ANDSI (FLD (f_s5), 31), 11));
19130   {
19131     UHI opval = tmp_tmp;
19132     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, FLD (f_FRk), opval);
19133     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19134   }
19135 }
19136
19137   return vpc;
19138 #undef FLD
19139 }
19140
19141 /* mhsethih: mhsethih$pack $s5,$FRkhi */
19142
19143 static SEM_PC
19144 SEM_FN_NAME (frvbf,mhsethih) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19145 {
19146 #define FLD(f) abuf->fields.sfmt_mhsethih.f
19147   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19148   int UNUSED written = 0;
19149   IADDR UNUSED pc = abuf->addr;
19150   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19151
19152 {
19153   HI tmp_tmp;
19154   tmp_tmp = GET_H_FR_HI (FLD (f_FRk));
19155   tmp_tmp = ANDHI (tmp_tmp, 2047);
19156   tmp_tmp = ORHI (tmp_tmp, SLLSI (ANDSI (FLD (f_s5), 31), 11));
19157   {
19158     UHI opval = tmp_tmp;
19159     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, FLD (f_FRk), opval);
19160     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19161   }
19162 }
19163
19164   return vpc;
19165 #undef FLD
19166 }
19167
19168 /* mhdseth: mhdseth$pack $s5,$FRintk */
19169
19170 static SEM_PC
19171 SEM_FN_NAME (frvbf,mhdseth) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19172 {
19173 #define FLD(f) abuf->fields.sfmt_mhdseth.f
19174   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19175   int UNUSED written = 0;
19176   IADDR UNUSED pc = abuf->addr;
19177   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19178
19179 {
19180   {
19181     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
19182     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19183     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19184   }
19185 {
19186   HI tmp_tmp;
19187   tmp_tmp = GET_H_FR_HI (((FLD (f_FRk)) + (0)));
19188   tmp_tmp = ANDHI (tmp_tmp, 2047);
19189   tmp_tmp = ORHI (tmp_tmp, SLLSI (ANDSI (FLD (f_s5), 31), 11));
19190   {
19191     UHI opval = tmp_tmp;
19192     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
19193     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19194   }
19195 }
19196 {
19197   HI tmp_tmp;
19198   tmp_tmp = GET_H_FR_LO (((FLD (f_FRk)) + (0)));
19199   tmp_tmp = ANDHI (tmp_tmp, 2047);
19200   tmp_tmp = ORHI (tmp_tmp, SLLSI (ANDSI (FLD (f_s5), 31), 11));
19201   {
19202     UHI opval = tmp_tmp;
19203     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
19204     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19205   }
19206 }
19207 }
19208
19209   return vpc;
19210 #undef FLD
19211 }
19212
19213 /* mand: mand$pack $FRinti,$FRintj,$FRintk */
19214
19215 static SEM_PC
19216 SEM_FN_NAME (frvbf,mand) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19217 {
19218 #define FLD(f) abuf->fields.sfmt_mwcut.f
19219   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19220   int UNUSED written = 0;
19221   IADDR UNUSED pc = abuf->addr;
19222   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19223
19224   {
19225     SI opval = ANDSI (GET_H_FR_INT (FLD (f_FRi)), GET_H_FR_INT (FLD (f_FRj)));
19226     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19227     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19228   }
19229
19230   return vpc;
19231 #undef FLD
19232 }
19233
19234 /* mor: mor$pack $FRinti,$FRintj,$FRintk */
19235
19236 static SEM_PC
19237 SEM_FN_NAME (frvbf,mor) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19238 {
19239 #define FLD(f) abuf->fields.sfmt_mwcut.f
19240   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19241   int UNUSED written = 0;
19242   IADDR UNUSED pc = abuf->addr;
19243   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19244
19245   {
19246     SI opval = ORSI (GET_H_FR_INT (FLD (f_FRi)), GET_H_FR_INT (FLD (f_FRj)));
19247     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19248     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19249   }
19250
19251   return vpc;
19252 #undef FLD
19253 }
19254
19255 /* mxor: mxor$pack $FRinti,$FRintj,$FRintk */
19256
19257 static SEM_PC
19258 SEM_FN_NAME (frvbf,mxor) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19259 {
19260 #define FLD(f) abuf->fields.sfmt_mwcut.f
19261   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19262   int UNUSED written = 0;
19263   IADDR UNUSED pc = abuf->addr;
19264   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19265
19266   {
19267     SI opval = XORSI (GET_H_FR_INT (FLD (f_FRi)), GET_H_FR_INT (FLD (f_FRj)));
19268     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19269     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19270   }
19271
19272   return vpc;
19273 #undef FLD
19274 }
19275
19276 /* cmand: cmand$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
19277
19278 static SEM_PC
19279 SEM_FN_NAME (frvbf,cmand) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19280 {
19281 #define FLD(f) abuf->fields.sfmt_cmand.f
19282   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19283   int UNUSED written = 0;
19284   IADDR UNUSED pc = abuf->addr;
19285   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19286
19287 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
19288   {
19289     SI opval = ANDSI (GET_H_FR_INT (FLD (f_FRi)), GET_H_FR_INT (FLD (f_FRj)));
19290     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19291     written |= (1 << 4);
19292     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19293   }
19294 }
19295
19296   abuf->written = written;
19297   return vpc;
19298 #undef FLD
19299 }
19300
19301 /* cmor: cmor$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
19302
19303 static SEM_PC
19304 SEM_FN_NAME (frvbf,cmor) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19305 {
19306 #define FLD(f) abuf->fields.sfmt_cmand.f
19307   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19308   int UNUSED written = 0;
19309   IADDR UNUSED pc = abuf->addr;
19310   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19311
19312 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
19313   {
19314     SI opval = ORSI (GET_H_FR_INT (FLD (f_FRi)), GET_H_FR_INT (FLD (f_FRj)));
19315     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19316     written |= (1 << 4);
19317     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19318   }
19319 }
19320
19321   abuf->written = written;
19322   return vpc;
19323 #undef FLD
19324 }
19325
19326 /* cmxor: cmxor$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
19327
19328 static SEM_PC
19329 SEM_FN_NAME (frvbf,cmxor) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19330 {
19331 #define FLD(f) abuf->fields.sfmt_cmand.f
19332   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19333   int UNUSED written = 0;
19334   IADDR UNUSED pc = abuf->addr;
19335   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19336
19337 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
19338   {
19339     SI opval = XORSI (GET_H_FR_INT (FLD (f_FRi)), GET_H_FR_INT (FLD (f_FRj)));
19340     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19341     written |= (1 << 4);
19342     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19343   }
19344 }
19345
19346   abuf->written = written;
19347   return vpc;
19348 #undef FLD
19349 }
19350
19351 /* mnot: mnot$pack $FRintj,$FRintk */
19352
19353 static SEM_PC
19354 SEM_FN_NAME (frvbf,mnot) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19355 {
19356 #define FLD(f) abuf->fields.sfmt_mcut.f
19357   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19358   int UNUSED written = 0;
19359   IADDR UNUSED pc = abuf->addr;
19360   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19361
19362   {
19363     SI opval = INVSI (GET_H_FR_INT (FLD (f_FRj)));
19364     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19365     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19366   }
19367
19368   return vpc;
19369 #undef FLD
19370 }
19371
19372 /* cmnot: cmnot$pack $FRintj,$FRintk,$CCi,$cond */
19373
19374 static SEM_PC
19375 SEM_FN_NAME (frvbf,cmnot) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19376 {
19377 #define FLD(f) abuf->fields.sfmt_cmand.f
19378   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19379   int UNUSED written = 0;
19380   IADDR UNUSED pc = abuf->addr;
19381   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19382
19383 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
19384   {
19385     SI opval = INVSI (GET_H_FR_INT (FLD (f_FRj)));
19386     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19387     written |= (1 << 3);
19388     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19389   }
19390 }
19391
19392   abuf->written = written;
19393   return vpc;
19394 #undef FLD
19395 }
19396
19397 /* mrotli: mrotli$pack $FRinti,$u6,$FRintk */
19398
19399 static SEM_PC
19400 SEM_FN_NAME (frvbf,mrotli) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19401 {
19402 #define FLD(f) abuf->fields.sfmt_mwcuti.f
19403   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19404   int UNUSED written = 0;
19405   IADDR UNUSED pc = abuf->addr;
19406   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19407
19408   {
19409     SI opval = ROLSI (GET_H_FR_INT (FLD (f_FRi)), ANDSI (FLD (f_u6), 31));
19410     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19411     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19412   }
19413
19414   return vpc;
19415 #undef FLD
19416 }
19417
19418 /* mrotri: mrotri$pack $FRinti,$u6,$FRintk */
19419
19420 static SEM_PC
19421 SEM_FN_NAME (frvbf,mrotri) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19422 {
19423 #define FLD(f) abuf->fields.sfmt_mwcuti.f
19424   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19425   int UNUSED written = 0;
19426   IADDR UNUSED pc = abuf->addr;
19427   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19428
19429   {
19430     SI opval = RORSI (GET_H_FR_INT (FLD (f_FRi)), ANDSI (FLD (f_u6), 31));
19431     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19432     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19433   }
19434
19435   return vpc;
19436 #undef FLD
19437 }
19438
19439 /* mwcut: mwcut$pack $FRinti,$FRintj,$FRintk */
19440
19441 static SEM_PC
19442 SEM_FN_NAME (frvbf,mwcut) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19443 {
19444 #define FLD(f) abuf->fields.sfmt_mwcut.f
19445   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19446   int UNUSED written = 0;
19447   IADDR UNUSED pc = abuf->addr;
19448   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19449
19450   {
19451     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)));
19452     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19453     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19454   }
19455
19456   return vpc;
19457 #undef FLD
19458 }
19459
19460 /* mwcuti: mwcuti$pack $FRinti,$u6,$FRintk */
19461
19462 static SEM_PC
19463 SEM_FN_NAME (frvbf,mwcuti) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19464 {
19465 #define FLD(f) abuf->fields.sfmt_mwcuti.f
19466   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19467   int UNUSED written = 0;
19468   IADDR UNUSED pc = abuf->addr;
19469   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19470
19471   {
19472     SI opval = frvbf_cut (current_cpu, GET_H_FR_INT (FLD (f_FRi)), GET_H_FR_INT (((FLD (f_FRi)) + (1))), FLD (f_u6));
19473     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19474     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19475   }
19476
19477   return vpc;
19478 #undef FLD
19479 }
19480
19481 /* mcut: mcut$pack $ACC40Si,$FRintj,$FRintk */
19482
19483 static SEM_PC
19484 SEM_FN_NAME (frvbf,mcut) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19485 {
19486 #define FLD(f) abuf->fields.sfmt_mcut.f
19487   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19488   int UNUSED written = 0;
19489   IADDR UNUSED pc = abuf->addr;
19490   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19491
19492   {
19493     SI opval = frvbf_media_cut (current_cpu, GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_FR_INT (FLD (f_FRj)));
19494     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19495     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19496   }
19497
19498   return vpc;
19499 #undef FLD
19500 }
19501
19502 /* mcuti: mcuti$pack $ACC40Si,$s6,$FRintk */
19503
19504 static SEM_PC
19505 SEM_FN_NAME (frvbf,mcuti) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19506 {
19507 #define FLD(f) abuf->fields.sfmt_mcuti.f
19508   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19509   int UNUSED written = 0;
19510   IADDR UNUSED pc = abuf->addr;
19511   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19512
19513   {
19514     SI opval = frvbf_media_cut (current_cpu, GET_H_ACC40S (FLD (f_ACC40Si)), FLD (f_s6));
19515     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19516     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19517   }
19518
19519   return vpc;
19520 #undef FLD
19521 }
19522
19523 /* mcutss: mcutss$pack $ACC40Si,$FRintj,$FRintk */
19524
19525 static SEM_PC
19526 SEM_FN_NAME (frvbf,mcutss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19527 {
19528 #define FLD(f) abuf->fields.sfmt_mcut.f
19529   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19530   int UNUSED written = 0;
19531   IADDR UNUSED pc = abuf->addr;
19532   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19533
19534   {
19535     SI opval = frvbf_media_cut_ss (current_cpu, GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_FR_INT (FLD (f_FRj)));
19536     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19537     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19538   }
19539
19540   return vpc;
19541 #undef FLD
19542 }
19543
19544 /* mcutssi: mcutssi$pack $ACC40Si,$s6,$FRintk */
19545
19546 static SEM_PC
19547 SEM_FN_NAME (frvbf,mcutssi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19548 {
19549 #define FLD(f) abuf->fields.sfmt_mcuti.f
19550   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19551   int UNUSED written = 0;
19552   IADDR UNUSED pc = abuf->addr;
19553   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19554
19555   {
19556     SI opval = frvbf_media_cut_ss (current_cpu, GET_H_ACC40S (FLD (f_ACC40Si)), FLD (f_s6));
19557     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19558     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19559   }
19560
19561   return vpc;
19562 #undef FLD
19563 }
19564
19565 /* mdcutssi: mdcutssi$pack $ACC40Si,$s6,$FRintkeven */
19566
19567 static SEM_PC
19568 SEM_FN_NAME (frvbf,mdcutssi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19569 {
19570 #define FLD(f) abuf->fields.sfmt_mdcutssi.f
19571   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19572   int UNUSED written = 0;
19573   IADDR UNUSED pc = abuf->addr;
19574   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19575
19576 if (ANDSI (FLD (f_ACC40Si), SUBSI (2, 1))) {
19577 frvbf_media_acc_not_aligned (current_cpu);
19578 } else {
19579 if (ANDSI (FLD (f_FRk), SUBSI (2, 1))) {
19580 frvbf_media_register_not_aligned (current_cpu);
19581 } else {
19582 {
19583   {
19584     SI opval = frvbf_media_cut_ss (current_cpu, GET_H_ACC40S (FLD (f_ACC40Si)), FLD (f_s6));
19585     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19586     written |= (1 << 5);
19587     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19588   }
19589   {
19590     USI opval = frvbf_media_cut_ss (current_cpu, GET_H_ACC40S (((FLD (f_ACC40Si)) + (1))), FLD (f_s6));
19591     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (1)), opval);
19592     written |= (1 << 6);
19593     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19594   }
19595 }
19596 }
19597 }
19598
19599   abuf->written = written;
19600   return vpc;
19601 #undef FLD
19602 }
19603
19604 /* maveh: maveh$pack $FRinti,$FRintj,$FRintk */
19605
19606 static SEM_PC
19607 SEM_FN_NAME (frvbf,maveh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19608 {
19609 #define FLD(f) abuf->fields.sfmt_mwcut.f
19610   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19611   int UNUSED written = 0;
19612   IADDR UNUSED pc = abuf->addr;
19613   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19614
19615   {
19616     SI opval = frvbf_media_average (current_cpu, GET_H_FR_INT (FLD (f_FRi)), GET_H_FR_INT (FLD (f_FRj)));
19617     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19618     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19619   }
19620
19621   return vpc;
19622 #undef FLD
19623 }
19624
19625 /* msllhi: msllhi$pack $FRinti,$u6,$FRintk */
19626
19627 static SEM_PC
19628 SEM_FN_NAME (frvbf,msllhi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19629 {
19630 #define FLD(f) abuf->fields.sfmt_msllhi.f
19631   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19632   int UNUSED written = 0;
19633   IADDR UNUSED pc = abuf->addr;
19634   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19635
19636 {
19637   {
19638     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRi)));
19639     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRi), opval);
19640     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19641   }
19642   {
19643     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
19644     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19645     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19646   }
19647   {
19648     UHI opval = SLLHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), ANDSI (FLD (f_u6), 15));
19649     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
19650     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19651   }
19652   {
19653     UHI opval = SLLHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), ANDSI (FLD (f_u6), 15));
19654     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
19655     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19656   }
19657 }
19658
19659   return vpc;
19660 #undef FLD
19661 }
19662
19663 /* msrlhi: msrlhi$pack $FRinti,$u6,$FRintk */
19664
19665 static SEM_PC
19666 SEM_FN_NAME (frvbf,msrlhi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19667 {
19668 #define FLD(f) abuf->fields.sfmt_msllhi.f
19669   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19670   int UNUSED written = 0;
19671   IADDR UNUSED pc = abuf->addr;
19672   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19673
19674 {
19675   {
19676     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRi)));
19677     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRi), opval);
19678     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19679   }
19680   {
19681     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
19682     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19683     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19684   }
19685   {
19686     UHI opval = SRLHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), ANDSI (FLD (f_u6), 15));
19687     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
19688     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19689   }
19690   {
19691     UHI opval = SRLHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), ANDSI (FLD (f_u6), 15));
19692     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
19693     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19694   }
19695 }
19696
19697   return vpc;
19698 #undef FLD
19699 }
19700
19701 /* msrahi: msrahi$pack $FRinti,$u6,$FRintk */
19702
19703 static SEM_PC
19704 SEM_FN_NAME (frvbf,msrahi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19705 {
19706 #define FLD(f) abuf->fields.sfmt_msllhi.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   {
19714     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRi)));
19715     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRi), opval);
19716     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19717   }
19718   {
19719     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
19720     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19721     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19722   }
19723   {
19724     UHI opval = SRAHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), ANDSI (FLD (f_u6), 15));
19725     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
19726     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19727   }
19728   {
19729     UHI opval = SRAHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), ANDSI (FLD (f_u6), 15));
19730     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
19731     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19732   }
19733 }
19734
19735   return vpc;
19736 #undef FLD
19737 }
19738
19739 /* mdrotli: mdrotli$pack $FRintieven,$s6,$FRintkeven */
19740
19741 static SEM_PC
19742 SEM_FN_NAME (frvbf,mdrotli) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19743 {
19744 #define FLD(f) abuf->fields.sfmt_mdrotli.f
19745   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19746   int UNUSED written = 0;
19747   IADDR UNUSED pc = abuf->addr;
19748   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19749
19750 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1)))) {
19751 frvbf_media_register_not_aligned (current_cpu);
19752 } else {
19753 {
19754   {
19755     SI opval = ROLSI (GET_H_FR_INT (FLD (f_FRi)), ANDSI (FLD (f_s6), 31));
19756     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19757     written |= (1 << 5);
19758     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19759   }
19760   {
19761     USI opval = ROLSI (GET_H_FR_INT (((FLD (f_FRi)) + (1))), ANDSI (FLD (f_s6), 31));
19762     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (1)), opval);
19763     written |= (1 << 6);
19764     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19765   }
19766 }
19767 }
19768
19769   abuf->written = written;
19770   return vpc;
19771 #undef FLD
19772 }
19773
19774 /* mcplhi: mcplhi$pack $FRinti,$u6,$FRintk */
19775
19776 static SEM_PC
19777 SEM_FN_NAME (frvbf,mcplhi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19778 {
19779 #define FLD(f) abuf->fields.sfmt_mcplhi.f
19780   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19781   int UNUSED written = 0;
19782   IADDR UNUSED pc = abuf->addr;
19783   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19784
19785 {
19786   HI tmp_arg1;
19787   HI tmp_arg2;
19788   HI tmp_shift;
19789   {
19790     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRi)));
19791     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRi), opval);
19792     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19793   }
19794   {
19795     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
19796     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19797     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19798   }
19799   tmp_shift = ANDSI (FLD (f_u6), 15);
19800   tmp_arg1 = SLLHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), tmp_shift);
19801 if (NEHI (tmp_shift, 0)) {
19802 {
19803   tmp_arg2 = GET_H_FR_HI (((FLD (f_FRi)) + (1)));
19804   tmp_arg2 = SRLHI (SLLHI (tmp_arg2, SUBSI (15, tmp_shift)), SUBSI (15, tmp_shift));
19805   tmp_arg1 = ORHI (tmp_arg1, tmp_arg2);
19806 }
19807 }
19808   {
19809     UHI opval = tmp_arg1;
19810     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
19811     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19812   }
19813 }
19814
19815   return vpc;
19816 #undef FLD
19817 }
19818
19819 /* mcpli: mcpli$pack $FRinti,$u6,$FRintk */
19820
19821 static SEM_PC
19822 SEM_FN_NAME (frvbf,mcpli) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19823 {
19824 #define FLD(f) abuf->fields.sfmt_mwcuti.f
19825   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19826   int UNUSED written = 0;
19827   IADDR UNUSED pc = abuf->addr;
19828   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19829
19830 {
19831   SI tmp_tmp;
19832   SI tmp_shift;
19833   tmp_shift = ANDSI (FLD (f_u6), 31);
19834   tmp_tmp = SLLSI (GET_H_FR_INT (FLD (f_FRi)), tmp_shift);
19835 if (NESI (tmp_shift, 0)) {
19836 {
19837   SI tmp_tmp1;
19838   tmp_tmp1 = SRLSI (SLLSI (GET_H_FR_INT (((FLD (f_FRi)) + (1))), SUBSI (31, tmp_shift)), SUBSI (31, tmp_shift));
19839   tmp_tmp = ORSI (tmp_tmp, tmp_tmp1);
19840 }
19841 }
19842   {
19843     SI opval = tmp_tmp;
19844     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19845     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19846   }
19847 }
19848
19849   return vpc;
19850 #undef FLD
19851 }
19852
19853 /* msaths: msaths$pack $FRinti,$FRintj,$FRintk */
19854
19855 static SEM_PC
19856 SEM_FN_NAME (frvbf,msaths) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19857 {
19858 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
19859   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19860   int UNUSED written = 0;
19861   IADDR UNUSED pc = abuf->addr;
19862   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19863
19864 {
19865   HI tmp_argihi;
19866   HI tmp_argilo;
19867   HI tmp_argjhi;
19868   HI tmp_argjlo;
19869 {
19870   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
19871   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
19872   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
19873   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
19874 }
19875 if (GTHI (tmp_argihi, tmp_argjhi)) {
19876   {
19877     UHI opval = tmp_argjhi;
19878     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
19879     written |= (1 << 9);
19880     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19881   }
19882 } else {
19883 if (LTHI (tmp_argihi, INVHI (tmp_argjhi))) {
19884   {
19885     UHI opval = INVHI (tmp_argjhi);
19886     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
19887     written |= (1 << 9);
19888     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19889   }
19890 } else {
19891   {
19892     UHI opval = tmp_argihi;
19893     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
19894     written |= (1 << 9);
19895     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19896   }
19897 }
19898 }
19899 if (GTHI (tmp_argilo, tmp_argjlo)) {
19900   {
19901     UHI opval = tmp_argjlo;
19902     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
19903     written |= (1 << 10);
19904     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19905   }
19906 } else {
19907 if (LTHI (tmp_argilo, INVHI (tmp_argjlo))) {
19908   {
19909     UHI opval = INVHI (tmp_argjlo);
19910     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
19911     written |= (1 << 10);
19912     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19913   }
19914 } else {
19915   {
19916     UHI opval = tmp_argilo;
19917     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
19918     written |= (1 << 10);
19919     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19920   }
19921 }
19922 }
19923 }
19924
19925   abuf->written = written;
19926   return vpc;
19927 #undef FLD
19928 }
19929
19930 /* mqsaths: mqsaths$pack $FRintieven,$FRintjeven,$FRintkeven */
19931
19932 static SEM_PC
19933 SEM_FN_NAME (frvbf,mqsaths) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19934 {
19935 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
19936   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19937   int UNUSED written = 0;
19938   IADDR UNUSED pc = abuf->addr;
19939   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19940
19941 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
19942 frvbf_media_register_not_aligned (current_cpu);
19943 } else {
19944 {
19945   HI tmp_argihi;
19946   HI tmp_argilo;
19947   HI tmp_argjhi;
19948   HI tmp_argjlo;
19949   {
19950     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
19951     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19952     written |= (1 << 14);
19953     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19954   }
19955 {
19956   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
19957   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
19958   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
19959   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
19960 }
19961 if (GTHI (tmp_argihi, tmp_argjhi)) {
19962   {
19963     UHI opval = tmp_argjhi;
19964     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
19965     written |= (1 << 15);
19966     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19967   }
19968 } else {
19969 if (LTHI (tmp_argihi, INVHI (tmp_argjhi))) {
19970   {
19971     UHI opval = INVHI (tmp_argjhi);
19972     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
19973     written |= (1 << 15);
19974     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19975   }
19976 } else {
19977   {
19978     UHI opval = tmp_argihi;
19979     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
19980     written |= (1 << 15);
19981     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19982   }
19983 }
19984 }
19985 if (GTHI (tmp_argilo, tmp_argjlo)) {
19986   {
19987     UHI opval = tmp_argjlo;
19988     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
19989     written |= (1 << 17);
19990     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19991   }
19992 } else {
19993 if (LTHI (tmp_argilo, INVHI (tmp_argjlo))) {
19994   {
19995     UHI opval = INVHI (tmp_argjlo);
19996     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
19997     written |= (1 << 17);
19998     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19999   }
20000 } else {
20001   {
20002     UHI opval = tmp_argilo;
20003     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20004     written |= (1 << 17);
20005     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20006   }
20007 }
20008 }
20009 {
20010   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20011   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20012   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20013   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20014 }
20015 if (GTHI (tmp_argihi, tmp_argjhi)) {
20016   {
20017     UHI opval = tmp_argjhi;
20018     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
20019     written |= (1 << 16);
20020     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20021   }
20022 } else {
20023 if (LTHI (tmp_argihi, INVHI (tmp_argjhi))) {
20024   {
20025     UHI opval = INVHI (tmp_argjhi);
20026     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
20027     written |= (1 << 16);
20028     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20029   }
20030 } else {
20031   {
20032     UHI opval = tmp_argihi;
20033     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
20034     written |= (1 << 16);
20035     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20036   }
20037 }
20038 }
20039 if (GTHI (tmp_argilo, tmp_argjlo)) {
20040   {
20041     UHI opval = tmp_argjlo;
20042     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
20043     written |= (1 << 18);
20044     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20045   }
20046 } else {
20047 if (LTHI (tmp_argilo, INVHI (tmp_argjlo))) {
20048   {
20049     UHI opval = INVHI (tmp_argjlo);
20050     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
20051     written |= (1 << 18);
20052     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20053   }
20054 } else {
20055   {
20056     UHI opval = tmp_argilo;
20057     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
20058     written |= (1 << 18);
20059     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20060   }
20061 }
20062 }
20063 }
20064 }
20065
20066   abuf->written = written;
20067   return vpc;
20068 #undef FLD
20069 }
20070
20071 /* msathu: msathu$pack $FRinti,$FRintj,$FRintk */
20072
20073 static SEM_PC
20074 SEM_FN_NAME (frvbf,msathu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20075 {
20076 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
20077   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20078   int UNUSED written = 0;
20079   IADDR UNUSED pc = abuf->addr;
20080   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20081
20082 {
20083   UHI tmp_argihi;
20084   UHI tmp_argilo;
20085   UHI tmp_argjhi;
20086   UHI tmp_argjlo;
20087 {
20088   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20089   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20090   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20091   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20092 }
20093 if (GTUHI (tmp_argihi, tmp_argjhi)) {
20094   {
20095     UHI opval = tmp_argjhi;
20096     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20097     written |= (1 << 9);
20098     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20099   }
20100 } else {
20101   {
20102     UHI opval = tmp_argihi;
20103     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20104     written |= (1 << 9);
20105     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20106   }
20107 }
20108 if (GTUHI (tmp_argilo, tmp_argjlo)) {
20109   {
20110     UHI opval = tmp_argjlo;
20111     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20112     written |= (1 << 10);
20113     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20114   }
20115 } else {
20116   {
20117     UHI opval = tmp_argilo;
20118     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20119     written |= (1 << 10);
20120     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20121   }
20122 }
20123 }
20124
20125   abuf->written = written;
20126   return vpc;
20127 #undef FLD
20128 }
20129
20130 /* mcmpsh: mcmpsh$pack $FRinti,$FRintj,$FCCk */
20131
20132 static SEM_PC
20133 SEM_FN_NAME (frvbf,mcmpsh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20134 {
20135 #define FLD(f) abuf->fields.sfmt_mcmpsh.f
20136   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20137   int UNUSED written = 0;
20138   IADDR UNUSED pc = abuf->addr;
20139   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20140
20141 if (ANDSI (FLD (f_FCCk), SUBSI (2, 1))) {
20142 frvbf_media_cr_not_aligned (current_cpu);
20143 } else {
20144 {
20145   HI tmp_argihi;
20146   HI tmp_argilo;
20147   HI tmp_argjhi;
20148   HI tmp_argjlo;
20149 {
20150   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20151   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20152   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20153   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20154 }
20155 if (GTHI (tmp_argihi, tmp_argjhi)) {
20156   {
20157     UQI opval = 2;
20158     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCk)]), opval);
20159     written |= (1 << 9);
20160     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20161   }
20162 } else {
20163 if (EQHI (tmp_argihi, tmp_argjhi)) {
20164   {
20165     UQI opval = 8;
20166     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCk)]), opval);
20167     written |= (1 << 9);
20168     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20169   }
20170 } else {
20171 if (LTHI (tmp_argihi, tmp_argjhi)) {
20172   {
20173     UQI opval = 4;
20174     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCk)]), opval);
20175     written |= (1 << 9);
20176     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20177   }
20178 } else {
20179   {
20180     UQI opval = 1;
20181     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCk)]), opval);
20182     written |= (1 << 9);
20183     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20184   }
20185 }
20186 }
20187 }
20188 if (GTHI (tmp_argilo, tmp_argjlo)) {
20189   {
20190     UQI opval = 2;
20191     sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCk)) + (1))]), opval);
20192     written |= (1 << 10);
20193     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20194   }
20195 } else {
20196 if (EQHI (tmp_argilo, tmp_argjlo)) {
20197   {
20198     UQI opval = 8;
20199     sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCk)) + (1))]), opval);
20200     written |= (1 << 10);
20201     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20202   }
20203 } else {
20204 if (LTHI (tmp_argilo, tmp_argjlo)) {
20205   {
20206     UQI opval = 4;
20207     sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCk)) + (1))]), opval);
20208     written |= (1 << 10);
20209     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20210   }
20211 } else {
20212   {
20213     UQI opval = 1;
20214     sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCk)) + (1))]), opval);
20215     written |= (1 << 10);
20216     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20217   }
20218 }
20219 }
20220 }
20221 }
20222 }
20223
20224   abuf->written = written;
20225   return vpc;
20226 #undef FLD
20227 }
20228
20229 /* mcmpuh: mcmpuh$pack $FRinti,$FRintj,$FCCk */
20230
20231 static SEM_PC
20232 SEM_FN_NAME (frvbf,mcmpuh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20233 {
20234 #define FLD(f) abuf->fields.sfmt_mcmpsh.f
20235   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20236   int UNUSED written = 0;
20237   IADDR UNUSED pc = abuf->addr;
20238   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20239
20240 if (ANDSI (FLD (f_FCCk), SUBSI (2, 1))) {
20241 frvbf_media_cr_not_aligned (current_cpu);
20242 } else {
20243 {
20244   UHI tmp_argihi;
20245   UHI tmp_argilo;
20246   UHI tmp_argjhi;
20247   UHI tmp_argjlo;
20248 {
20249   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20250   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20251   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20252   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20253 }
20254 if (GTUHI (tmp_argihi, tmp_argjhi)) {
20255   {
20256     UQI opval = 2;
20257     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCk)]), opval);
20258     written |= (1 << 9);
20259     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20260   }
20261 } else {
20262 if (EQHI (tmp_argihi, tmp_argjhi)) {
20263   {
20264     UQI opval = 8;
20265     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCk)]), opval);
20266     written |= (1 << 9);
20267     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20268   }
20269 } else {
20270 if (LTUHI (tmp_argihi, tmp_argjhi)) {
20271   {
20272     UQI opval = 4;
20273     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCk)]), opval);
20274     written |= (1 << 9);
20275     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20276   }
20277 } else {
20278   {
20279     UQI opval = 1;
20280     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCk)]), opval);
20281     written |= (1 << 9);
20282     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20283   }
20284 }
20285 }
20286 }
20287 if (GTUHI (tmp_argilo, tmp_argjlo)) {
20288   {
20289     UQI opval = 2;
20290     sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCk)) + (1))]), opval);
20291     written |= (1 << 10);
20292     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20293   }
20294 } else {
20295 if (EQHI (tmp_argilo, tmp_argjlo)) {
20296   {
20297     UQI opval = 8;
20298     sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCk)) + (1))]), opval);
20299     written |= (1 << 10);
20300     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20301   }
20302 } else {
20303 if (LTUHI (tmp_argilo, tmp_argjlo)) {
20304   {
20305     UQI opval = 4;
20306     sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCk)) + (1))]), opval);
20307     written |= (1 << 10);
20308     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20309   }
20310 } else {
20311   {
20312     UQI opval = 1;
20313     sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCk)) + (1))]), opval);
20314     written |= (1 << 10);
20315     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20316   }
20317 }
20318 }
20319 }
20320 }
20321 }
20322
20323   abuf->written = written;
20324   return vpc;
20325 #undef FLD
20326 }
20327
20328 /* mabshs: mabshs$pack $FRintj,$FRintk */
20329
20330 static SEM_PC
20331 SEM_FN_NAME (frvbf,mabshs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20332 {
20333 #define FLD(f) abuf->fields.sfmt_mabshs.f
20334   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20335   int UNUSED written = 0;
20336   IADDR UNUSED pc = abuf->addr;
20337   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20338
20339 {
20340   HI tmp_arghi;
20341   HI tmp_arglo;
20342   {
20343     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRj)));
20344     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRj), opval);
20345     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
20346   }
20347   {
20348     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
20349     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
20350     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
20351   }
20352   tmp_arghi = GET_H_FR_HI (((FLD (f_FRj)) + (0)));
20353   tmp_arglo = GET_H_FR_LO (((FLD (f_FRj)) + (0)));
20354 if (GTDI (ABSHI (tmp_arghi), 32767)) {
20355 {
20356   {
20357     UHI opval = 32767;
20358     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20359     written |= (1 << 8);
20360     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20361   }
20362 frvbf_media_overflow (current_cpu, 8);
20363 }
20364 } else {
20365 if (LTDI (ABSHI (tmp_arghi), -32768)) {
20366 {
20367   {
20368     UHI opval = -32768;
20369     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20370     written |= (1 << 8);
20371     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20372   }
20373 frvbf_media_overflow (current_cpu, 8);
20374 }
20375 } else {
20376   {
20377     UHI opval = ABSHI (tmp_arghi);
20378     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20379     written |= (1 << 8);
20380     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20381   }
20382 }
20383 }
20384 if (GTDI (ABSHI (tmp_arglo), 32767)) {
20385 {
20386   {
20387     UHI opval = 32767;
20388     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20389     written |= (1 << 9);
20390     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20391   }
20392 frvbf_media_overflow (current_cpu, 4);
20393 }
20394 } else {
20395 if (LTDI (ABSHI (tmp_arglo), -32768)) {
20396 {
20397   {
20398     UHI opval = -32768;
20399     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20400     written |= (1 << 9);
20401     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20402   }
20403 frvbf_media_overflow (current_cpu, 4);
20404 }
20405 } else {
20406   {
20407     UHI opval = ABSHI (tmp_arglo);
20408     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20409     written |= (1 << 9);
20410     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20411   }
20412 }
20413 }
20414 }
20415
20416   abuf->written = written;
20417   return vpc;
20418 #undef FLD
20419 }
20420
20421 /* maddhss: maddhss$pack $FRinti,$FRintj,$FRintk */
20422
20423 static SEM_PC
20424 SEM_FN_NAME (frvbf,maddhss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20425 {
20426 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
20427   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20428   int UNUSED written = 0;
20429   IADDR UNUSED pc = abuf->addr;
20430   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20431
20432 {
20433   HI tmp_argihi;
20434   HI tmp_argilo;
20435   HI tmp_argjhi;
20436   HI tmp_argjlo;
20437 {
20438   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20439   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20440   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20441   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20442 }
20443 {
20444   DI tmp_tmp;
20445   tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
20446 if (GTDI (tmp_tmp, 32767)) {
20447 {
20448   {
20449     UHI opval = 32767;
20450     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20451     written |= (1 << 9);
20452     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20453   }
20454 frvbf_media_overflow (current_cpu, 8);
20455 }
20456 } else {
20457 if (LTDI (tmp_tmp, -32768)) {
20458 {
20459   {
20460     UHI opval = -32768;
20461     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20462     written |= (1 << 9);
20463     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20464   }
20465 frvbf_media_overflow (current_cpu, 8);
20466 }
20467 } else {
20468   {
20469     UHI opval = tmp_tmp;
20470     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20471     written |= (1 << 9);
20472     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20473   }
20474 }
20475 }
20476 }
20477 {
20478   DI tmp_tmp;
20479   tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
20480 if (GTDI (tmp_tmp, 32767)) {
20481 {
20482   {
20483     UHI opval = 32767;
20484     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20485     written |= (1 << 10);
20486     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20487   }
20488 frvbf_media_overflow (current_cpu, 4);
20489 }
20490 } else {
20491 if (LTDI (tmp_tmp, -32768)) {
20492 {
20493   {
20494     UHI opval = -32768;
20495     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20496     written |= (1 << 10);
20497     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20498   }
20499 frvbf_media_overflow (current_cpu, 4);
20500 }
20501 } else {
20502   {
20503     UHI opval = tmp_tmp;
20504     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20505     written |= (1 << 10);
20506     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20507   }
20508 }
20509 }
20510 }
20511 }
20512
20513   abuf->written = written;
20514   return vpc;
20515 #undef FLD
20516 }
20517
20518 /* maddhus: maddhus$pack $FRinti,$FRintj,$FRintk */
20519
20520 static SEM_PC
20521 SEM_FN_NAME (frvbf,maddhus) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20522 {
20523 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
20524   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20525   int UNUSED written = 0;
20526   IADDR UNUSED pc = abuf->addr;
20527   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20528
20529 {
20530   UHI tmp_argihi;
20531   UHI tmp_argilo;
20532   UHI tmp_argjhi;
20533   UHI tmp_argjlo;
20534 {
20535   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20536   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20537   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20538   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20539 }
20540 {
20541   DI tmp_tmp;
20542   tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
20543 if (GTDI (tmp_tmp, 65535)) {
20544 {
20545   {
20546     UHI opval = 65535;
20547     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20548     written |= (1 << 9);
20549     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20550   }
20551 frvbf_media_overflow (current_cpu, 8);
20552 }
20553 } else {
20554 if (LTDI (tmp_tmp, 0)) {
20555 {
20556   {
20557     UHI opval = 0;
20558     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20559     written |= (1 << 9);
20560     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20561   }
20562 frvbf_media_overflow (current_cpu, 8);
20563 }
20564 } else {
20565   {
20566     UHI opval = tmp_tmp;
20567     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20568     written |= (1 << 9);
20569     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20570   }
20571 }
20572 }
20573 }
20574 {
20575   DI tmp_tmp;
20576   tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
20577 if (GTDI (tmp_tmp, 65535)) {
20578 {
20579   {
20580     UHI opval = 65535;
20581     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20582     written |= (1 << 10);
20583     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20584   }
20585 frvbf_media_overflow (current_cpu, 4);
20586 }
20587 } else {
20588 if (LTDI (tmp_tmp, 0)) {
20589 {
20590   {
20591     UHI opval = 0;
20592     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20593     written |= (1 << 10);
20594     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20595   }
20596 frvbf_media_overflow (current_cpu, 4);
20597 }
20598 } else {
20599   {
20600     UHI opval = tmp_tmp;
20601     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20602     written |= (1 << 10);
20603     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20604   }
20605 }
20606 }
20607 }
20608 }
20609
20610   abuf->written = written;
20611   return vpc;
20612 #undef FLD
20613 }
20614
20615 /* msubhss: msubhss$pack $FRinti,$FRintj,$FRintk */
20616
20617 static SEM_PC
20618 SEM_FN_NAME (frvbf,msubhss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20619 {
20620 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
20621   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20622   int UNUSED written = 0;
20623   IADDR UNUSED pc = abuf->addr;
20624   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20625
20626 {
20627   HI tmp_argihi;
20628   HI tmp_argilo;
20629   HI tmp_argjhi;
20630   HI tmp_argjlo;
20631 {
20632   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20633   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20634   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20635   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20636 }
20637 {
20638   DI tmp_tmp;
20639   tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
20640 if (GTDI (tmp_tmp, 32767)) {
20641 {
20642   {
20643     UHI opval = 32767;
20644     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20645     written |= (1 << 9);
20646     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20647   }
20648 frvbf_media_overflow (current_cpu, 8);
20649 }
20650 } else {
20651 if (LTDI (tmp_tmp, -32768)) {
20652 {
20653   {
20654     UHI opval = -32768;
20655     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20656     written |= (1 << 9);
20657     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20658   }
20659 frvbf_media_overflow (current_cpu, 8);
20660 }
20661 } else {
20662   {
20663     UHI opval = tmp_tmp;
20664     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20665     written |= (1 << 9);
20666     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20667   }
20668 }
20669 }
20670 }
20671 {
20672   DI tmp_tmp;
20673   tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
20674 if (GTDI (tmp_tmp, 32767)) {
20675 {
20676   {
20677     UHI opval = 32767;
20678     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20679     written |= (1 << 10);
20680     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20681   }
20682 frvbf_media_overflow (current_cpu, 4);
20683 }
20684 } else {
20685 if (LTDI (tmp_tmp, -32768)) {
20686 {
20687   {
20688     UHI opval = -32768;
20689     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20690     written |= (1 << 10);
20691     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20692   }
20693 frvbf_media_overflow (current_cpu, 4);
20694 }
20695 } else {
20696   {
20697     UHI opval = tmp_tmp;
20698     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20699     written |= (1 << 10);
20700     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20701   }
20702 }
20703 }
20704 }
20705 }
20706
20707   abuf->written = written;
20708   return vpc;
20709 #undef FLD
20710 }
20711
20712 /* msubhus: msubhus$pack $FRinti,$FRintj,$FRintk */
20713
20714 static SEM_PC
20715 SEM_FN_NAME (frvbf,msubhus) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20716 {
20717 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
20718   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20719   int UNUSED written = 0;
20720   IADDR UNUSED pc = abuf->addr;
20721   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20722
20723 {
20724   UHI tmp_argihi;
20725   UHI tmp_argilo;
20726   UHI tmp_argjhi;
20727   UHI tmp_argjlo;
20728 {
20729   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20730   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20731   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20732   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20733 }
20734 {
20735   DI tmp_tmp;
20736   tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
20737 if (GTDI (tmp_tmp, 65535)) {
20738 {
20739   {
20740     UHI opval = 65535;
20741     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20742     written |= (1 << 9);
20743     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20744   }
20745 frvbf_media_overflow (current_cpu, 8);
20746 }
20747 } else {
20748 if (LTDI (tmp_tmp, 0)) {
20749 {
20750   {
20751     UHI opval = 0;
20752     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20753     written |= (1 << 9);
20754     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20755   }
20756 frvbf_media_overflow (current_cpu, 8);
20757 }
20758 } else {
20759   {
20760     UHI opval = tmp_tmp;
20761     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20762     written |= (1 << 9);
20763     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20764   }
20765 }
20766 }
20767 }
20768 {
20769   DI tmp_tmp;
20770   tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
20771 if (GTDI (tmp_tmp, 65535)) {
20772 {
20773   {
20774     UHI opval = 65535;
20775     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20776     written |= (1 << 10);
20777     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20778   }
20779 frvbf_media_overflow (current_cpu, 4);
20780 }
20781 } else {
20782 if (LTDI (tmp_tmp, 0)) {
20783 {
20784   {
20785     UHI opval = 0;
20786     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20787     written |= (1 << 10);
20788     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20789   }
20790 frvbf_media_overflow (current_cpu, 4);
20791 }
20792 } else {
20793   {
20794     UHI opval = tmp_tmp;
20795     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20796     written |= (1 << 10);
20797     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20798   }
20799 }
20800 }
20801 }
20802 }
20803
20804   abuf->written = written;
20805   return vpc;
20806 #undef FLD
20807 }
20808
20809 /* cmaddhss: cmaddhss$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
20810
20811 static SEM_PC
20812 SEM_FN_NAME (frvbf,cmaddhss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20813 {
20814 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
20815   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20816   int UNUSED written = 0;
20817   IADDR UNUSED pc = abuf->addr;
20818   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20819
20820 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
20821 {
20822   HI tmp_argihi;
20823   HI tmp_argilo;
20824   HI tmp_argjhi;
20825   HI tmp_argjlo;
20826 {
20827   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20828   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20829   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20830   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20831 }
20832 {
20833   DI tmp_tmp;
20834   tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
20835 if (GTDI (tmp_tmp, 32767)) {
20836 {
20837   {
20838     UHI opval = 32767;
20839     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20840     written |= (1 << 11);
20841     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20842   }
20843 frvbf_media_overflow (current_cpu, 8);
20844 }
20845 } else {
20846 if (LTDI (tmp_tmp, -32768)) {
20847 {
20848   {
20849     UHI opval = -32768;
20850     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20851     written |= (1 << 11);
20852     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20853   }
20854 frvbf_media_overflow (current_cpu, 8);
20855 }
20856 } else {
20857   {
20858     UHI opval = tmp_tmp;
20859     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20860     written |= (1 << 11);
20861     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20862   }
20863 }
20864 }
20865 }
20866 {
20867   DI tmp_tmp;
20868   tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
20869 if (GTDI (tmp_tmp, 32767)) {
20870 {
20871   {
20872     UHI opval = 32767;
20873     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20874     written |= (1 << 12);
20875     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20876   }
20877 frvbf_media_overflow (current_cpu, 4);
20878 }
20879 } else {
20880 if (LTDI (tmp_tmp, -32768)) {
20881 {
20882   {
20883     UHI opval = -32768;
20884     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20885     written |= (1 << 12);
20886     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20887   }
20888 frvbf_media_overflow (current_cpu, 4);
20889 }
20890 } else {
20891   {
20892     UHI opval = tmp_tmp;
20893     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20894     written |= (1 << 12);
20895     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20896   }
20897 }
20898 }
20899 }
20900 }
20901 }
20902
20903   abuf->written = written;
20904   return vpc;
20905 #undef FLD
20906 }
20907
20908 /* cmaddhus: cmaddhus$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
20909
20910 static SEM_PC
20911 SEM_FN_NAME (frvbf,cmaddhus) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20912 {
20913 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
20914   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20915   int UNUSED written = 0;
20916   IADDR UNUSED pc = abuf->addr;
20917   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20918
20919 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
20920 {
20921   UHI tmp_argihi;
20922   UHI tmp_argilo;
20923   UHI tmp_argjhi;
20924   UHI tmp_argjlo;
20925 {
20926   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20927   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20928   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20929   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20930 }
20931 {
20932   DI tmp_tmp;
20933   tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
20934 if (GTDI (tmp_tmp, 65535)) {
20935 {
20936   {
20937     UHI opval = 65535;
20938     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20939     written |= (1 << 11);
20940     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20941   }
20942 frvbf_media_overflow (current_cpu, 8);
20943 }
20944 } else {
20945 if (LTDI (tmp_tmp, 0)) {
20946 {
20947   {
20948     UHI opval = 0;
20949     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20950     written |= (1 << 11);
20951     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20952   }
20953 frvbf_media_overflow (current_cpu, 8);
20954 }
20955 } else {
20956   {
20957     UHI opval = tmp_tmp;
20958     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20959     written |= (1 << 11);
20960     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20961   }
20962 }
20963 }
20964 }
20965 {
20966   DI tmp_tmp;
20967   tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
20968 if (GTDI (tmp_tmp, 65535)) {
20969 {
20970   {
20971     UHI opval = 65535;
20972     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20973     written |= (1 << 12);
20974     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20975   }
20976 frvbf_media_overflow (current_cpu, 4);
20977 }
20978 } else {
20979 if (LTDI (tmp_tmp, 0)) {
20980 {
20981   {
20982     UHI opval = 0;
20983     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20984     written |= (1 << 12);
20985     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20986   }
20987 frvbf_media_overflow (current_cpu, 4);
20988 }
20989 } else {
20990   {
20991     UHI opval = tmp_tmp;
20992     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20993     written |= (1 << 12);
20994     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20995   }
20996 }
20997 }
20998 }
20999 }
21000 }
21001
21002   abuf->written = written;
21003   return vpc;
21004 #undef FLD
21005 }
21006
21007 /* cmsubhss: cmsubhss$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
21008
21009 static SEM_PC
21010 SEM_FN_NAME (frvbf,cmsubhss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
21011 {
21012 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
21013   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
21014   int UNUSED written = 0;
21015   IADDR UNUSED pc = abuf->addr;
21016   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
21017
21018 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
21019 {
21020   HI tmp_argihi;
21021   HI tmp_argilo;
21022   HI tmp_argjhi;
21023   HI tmp_argjlo;
21024 {
21025   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21026   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21027   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21028   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21029 }
21030 {
21031   DI tmp_tmp;
21032   tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
21033 if (GTDI (tmp_tmp, 32767)) {
21034 {
21035   {
21036     UHI opval = 32767;
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 frvbf_media_overflow (current_cpu, 8);
21042 }
21043 } else {
21044 if (LTDI (tmp_tmp, -32768)) {
21045 {
21046   {
21047     UHI opval = -32768;
21048     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21049     written |= (1 << 11);
21050     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21051   }
21052 frvbf_media_overflow (current_cpu, 8);
21053 }
21054 } else {
21055   {
21056     UHI opval = tmp_tmp;
21057     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21058     written |= (1 << 11);
21059     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21060   }
21061 }
21062 }
21063 }
21064 {
21065   DI tmp_tmp;
21066   tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
21067 if (GTDI (tmp_tmp, 32767)) {
21068 {
21069   {
21070     UHI opval = 32767;
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 frvbf_media_overflow (current_cpu, 4);
21076 }
21077 } else {
21078 if (LTDI (tmp_tmp, -32768)) {
21079 {
21080   {
21081     UHI opval = -32768;
21082     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21083     written |= (1 << 12);
21084     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21085   }
21086 frvbf_media_overflow (current_cpu, 4);
21087 }
21088 } else {
21089   {
21090     UHI opval = tmp_tmp;
21091     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21092     written |= (1 << 12);
21093     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21094   }
21095 }
21096 }
21097 }
21098 }
21099 }
21100
21101   abuf->written = written;
21102   return vpc;
21103 #undef FLD
21104 }
21105
21106 /* cmsubhus: cmsubhus$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
21107
21108 static SEM_PC
21109 SEM_FN_NAME (frvbf,cmsubhus) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
21110 {
21111 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
21112   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
21113   int UNUSED written = 0;
21114   IADDR UNUSED pc = abuf->addr;
21115   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
21116
21117 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
21118 {
21119   UHI tmp_argihi;
21120   UHI tmp_argilo;
21121   UHI tmp_argjhi;
21122   UHI tmp_argjlo;
21123 {
21124   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21125   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21126   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21127   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21128 }
21129 {
21130   DI tmp_tmp;
21131   tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
21132 if (GTDI (tmp_tmp, 65535)) {
21133 {
21134   {
21135     UHI opval = 65535;
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 frvbf_media_overflow (current_cpu, 8);
21141 }
21142 } else {
21143 if (LTDI (tmp_tmp, 0)) {
21144 {
21145   {
21146     UHI opval = 0;
21147     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21148     written |= (1 << 11);
21149     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21150   }
21151 frvbf_media_overflow (current_cpu, 8);
21152 }
21153 } else {
21154   {
21155     UHI opval = tmp_tmp;
21156     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21157     written |= (1 << 11);
21158     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21159   }
21160 }
21161 }
21162 }
21163 {
21164   DI tmp_tmp;
21165   tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
21166 if (GTDI (tmp_tmp, 65535)) {
21167 {
21168   {
21169     UHI opval = 65535;
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 frvbf_media_overflow (current_cpu, 4);
21175 }
21176 } else {
21177 if (LTDI (tmp_tmp, 0)) {
21178 {
21179   {
21180     UHI opval = 0;
21181     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21182     written |= (1 << 12);
21183     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21184   }
21185 frvbf_media_overflow (current_cpu, 4);
21186 }
21187 } else {
21188   {
21189     UHI opval = tmp_tmp;
21190     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21191     written |= (1 << 12);
21192     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21193   }
21194 }
21195 }
21196 }
21197 }
21198 }
21199
21200   abuf->written = written;
21201   return vpc;
21202 #undef FLD
21203 }
21204
21205 /* mqaddhss: mqaddhss$pack $FRintieven,$FRintjeven,$FRintkeven */
21206
21207 static SEM_PC
21208 SEM_FN_NAME (frvbf,mqaddhss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
21209 {
21210 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
21211   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
21212   int UNUSED written = 0;
21213   IADDR UNUSED pc = abuf->addr;
21214   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
21215
21216 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
21217 frvbf_media_register_not_aligned (current_cpu);
21218 } else {
21219 {
21220   HI tmp_argihi;
21221   HI tmp_argilo;
21222   HI tmp_argjhi;
21223   HI tmp_argjlo;
21224   {
21225     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
21226     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
21227     written |= (1 << 14);
21228     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
21229   }
21230 {
21231   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21232   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21233   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21234   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21235 }
21236 {
21237   DI tmp_tmp;
21238   tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
21239 if (GTDI (tmp_tmp, 32767)) {
21240 {
21241   {
21242     UHI opval = 32767;
21243     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21244     written |= (1 << 15);
21245     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21246   }
21247 frvbf_media_overflow (current_cpu, 8);
21248 }
21249 } else {
21250 if (LTDI (tmp_tmp, -32768)) {
21251 {
21252   {
21253     UHI opval = -32768;
21254     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21255     written |= (1 << 15);
21256     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21257   }
21258 frvbf_media_overflow (current_cpu, 8);
21259 }
21260 } else {
21261   {
21262     UHI opval = tmp_tmp;
21263     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21264     written |= (1 << 15);
21265     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21266   }
21267 }
21268 }
21269 }
21270 {
21271   DI tmp_tmp;
21272   tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
21273 if (GTDI (tmp_tmp, 32767)) {
21274 {
21275   {
21276     UHI opval = 32767;
21277     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21278     written |= (1 << 17);
21279     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21280   }
21281 frvbf_media_overflow (current_cpu, 4);
21282 }
21283 } else {
21284 if (LTDI (tmp_tmp, -32768)) {
21285 {
21286   {
21287     UHI opval = -32768;
21288     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21289     written |= (1 << 17);
21290     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21291   }
21292 frvbf_media_overflow (current_cpu, 4);
21293 }
21294 } else {
21295   {
21296     UHI opval = tmp_tmp;
21297     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21298     written |= (1 << 17);
21299     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21300   }
21301 }
21302 }
21303 }
21304 {
21305   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21306   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21307   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21308   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21309 }
21310 {
21311   DI tmp_tmp;
21312   tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
21313 if (GTDI (tmp_tmp, 32767)) {
21314 {
21315   {
21316     UHI opval = 32767;
21317     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21318     written |= (1 << 16);
21319     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21320   }
21321 frvbf_media_overflow (current_cpu, 2);
21322 }
21323 } else {
21324 if (LTDI (tmp_tmp, -32768)) {
21325 {
21326   {
21327     UHI opval = -32768;
21328     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21329     written |= (1 << 16);
21330     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21331   }
21332 frvbf_media_overflow (current_cpu, 2);
21333 }
21334 } else {
21335   {
21336     UHI opval = tmp_tmp;
21337     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21338     written |= (1 << 16);
21339     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21340   }
21341 }
21342 }
21343 }
21344 {
21345   DI tmp_tmp;
21346   tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
21347 if (GTDI (tmp_tmp, 32767)) {
21348 {
21349   {
21350     UHI opval = 32767;
21351     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21352     written |= (1 << 18);
21353     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21354   }
21355 frvbf_media_overflow (current_cpu, 1);
21356 }
21357 } else {
21358 if (LTDI (tmp_tmp, -32768)) {
21359 {
21360   {
21361     UHI opval = -32768;
21362     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21363     written |= (1 << 18);
21364     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21365   }
21366 frvbf_media_overflow (current_cpu, 1);
21367 }
21368 } else {
21369   {
21370     UHI opval = tmp_tmp;
21371     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21372     written |= (1 << 18);
21373     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21374   }
21375 }
21376 }
21377 }
21378 }
21379 }
21380
21381   abuf->written = written;
21382   return vpc;
21383 #undef FLD
21384 }
21385
21386 /* mqaddhus: mqaddhus$pack $FRintieven,$FRintjeven,$FRintkeven */
21387
21388 static SEM_PC
21389 SEM_FN_NAME (frvbf,mqaddhus) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
21390 {
21391 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
21392   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
21393   int UNUSED written = 0;
21394   IADDR UNUSED pc = abuf->addr;
21395   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
21396
21397 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
21398 frvbf_media_register_not_aligned (current_cpu);
21399 } else {
21400 {
21401   UHI tmp_argihi;
21402   UHI tmp_argilo;
21403   UHI tmp_argjhi;
21404   UHI tmp_argjlo;
21405   {
21406     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
21407     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
21408     written |= (1 << 14);
21409     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
21410   }
21411 {
21412   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21413   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21414   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21415   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21416 }
21417 {
21418   DI tmp_tmp;
21419   tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
21420 if (GTDI (tmp_tmp, 65535)) {
21421 {
21422   {
21423     UHI opval = 65535;
21424     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21425     written |= (1 << 15);
21426     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21427   }
21428 frvbf_media_overflow (current_cpu, 8);
21429 }
21430 } else {
21431 if (LTDI (tmp_tmp, 0)) {
21432 {
21433   {
21434     UHI opval = 0;
21435     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21436     written |= (1 << 15);
21437     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21438   }
21439 frvbf_media_overflow (current_cpu, 8);
21440 }
21441 } else {
21442   {
21443     UHI opval = tmp_tmp;
21444     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21445     written |= (1 << 15);
21446     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21447   }
21448 }
21449 }
21450 }
21451 {
21452   DI tmp_tmp;
21453   tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
21454 if (GTDI (tmp_tmp, 65535)) {
21455 {
21456   {
21457     UHI opval = 65535;
21458     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21459     written |= (1 << 17);
21460     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21461   }
21462 frvbf_media_overflow (current_cpu, 4);
21463 }
21464 } else {
21465 if (LTDI (tmp_tmp, 0)) {
21466 {
21467   {
21468     UHI opval = 0;
21469     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21470     written |= (1 << 17);
21471     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21472   }
21473 frvbf_media_overflow (current_cpu, 4);
21474 }
21475 } else {
21476   {
21477     UHI opval = tmp_tmp;
21478     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21479     written |= (1 << 17);
21480     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21481   }
21482 }
21483 }
21484 }
21485 {
21486   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21487   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21488   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21489   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21490 }
21491 {
21492   DI tmp_tmp;
21493   tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
21494 if (GTDI (tmp_tmp, 65535)) {
21495 {
21496   {
21497     UHI opval = 65535;
21498     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21499     written |= (1 << 16);
21500     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21501   }
21502 frvbf_media_overflow (current_cpu, 2);
21503 }
21504 } else {
21505 if (LTDI (tmp_tmp, 0)) {
21506 {
21507   {
21508     UHI opval = 0;
21509     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21510     written |= (1 << 16);
21511     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21512   }
21513 frvbf_media_overflow (current_cpu, 2);
21514 }
21515 } else {
21516   {
21517     UHI opval = tmp_tmp;
21518     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21519     written |= (1 << 16);
21520     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21521   }
21522 }
21523 }
21524 }
21525 {
21526   DI tmp_tmp;
21527   tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
21528 if (GTDI (tmp_tmp, 65535)) {
21529 {
21530   {
21531     UHI opval = 65535;
21532     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21533     written |= (1 << 18);
21534     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21535   }
21536 frvbf_media_overflow (current_cpu, 1);
21537 }
21538 } else {
21539 if (LTDI (tmp_tmp, 0)) {
21540 {
21541   {
21542     UHI opval = 0;
21543     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21544     written |= (1 << 18);
21545     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21546   }
21547 frvbf_media_overflow (current_cpu, 1);
21548 }
21549 } else {
21550   {
21551     UHI opval = tmp_tmp;
21552     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21553     written |= (1 << 18);
21554     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21555   }
21556 }
21557 }
21558 }
21559 }
21560 }
21561
21562   abuf->written = written;
21563   return vpc;
21564 #undef FLD
21565 }
21566
21567 /* mqsubhss: mqsubhss$pack $FRintieven,$FRintjeven,$FRintkeven */
21568
21569 static SEM_PC
21570 SEM_FN_NAME (frvbf,mqsubhss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
21571 {
21572 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
21573   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
21574   int UNUSED written = 0;
21575   IADDR UNUSED pc = abuf->addr;
21576   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
21577
21578 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
21579 frvbf_media_register_not_aligned (current_cpu);
21580 } else {
21581 {
21582   HI tmp_argihi;
21583   HI tmp_argilo;
21584   HI tmp_argjhi;
21585   HI tmp_argjlo;
21586   {
21587     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
21588     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
21589     written |= (1 << 14);
21590     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
21591   }
21592 {
21593   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21594   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21595   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21596   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21597 }
21598 {
21599   DI tmp_tmp;
21600   tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
21601 if (GTDI (tmp_tmp, 32767)) {
21602 {
21603   {
21604     UHI opval = 32767;
21605     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21606     written |= (1 << 15);
21607     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21608   }
21609 frvbf_media_overflow (current_cpu, 8);
21610 }
21611 } else {
21612 if (LTDI (tmp_tmp, -32768)) {
21613 {
21614   {
21615     UHI opval = -32768;
21616     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21617     written |= (1 << 15);
21618     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21619   }
21620 frvbf_media_overflow (current_cpu, 8);
21621 }
21622 } else {
21623   {
21624     UHI opval = tmp_tmp;
21625     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21626     written |= (1 << 15);
21627     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21628   }
21629 }
21630 }
21631 }
21632 {
21633   DI tmp_tmp;
21634   tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
21635 if (GTDI (tmp_tmp, 32767)) {
21636 {
21637   {
21638     UHI opval = 32767;
21639     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21640     written |= (1 << 17);
21641     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21642   }
21643 frvbf_media_overflow (current_cpu, 4);
21644 }
21645 } else {
21646 if (LTDI (tmp_tmp, -32768)) {
21647 {
21648   {
21649     UHI opval = -32768;
21650     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21651     written |= (1 << 17);
21652     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21653   }
21654 frvbf_media_overflow (current_cpu, 4);
21655 }
21656 } else {
21657   {
21658     UHI opval = tmp_tmp;
21659     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21660     written |= (1 << 17);
21661     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21662   }
21663 }
21664 }
21665 }
21666 {
21667   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21668   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21669   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21670   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21671 }
21672 {
21673   DI tmp_tmp;
21674   tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
21675 if (GTDI (tmp_tmp, 32767)) {
21676 {
21677   {
21678     UHI opval = 32767;
21679     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21680     written |= (1 << 16);
21681     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21682   }
21683 frvbf_media_overflow (current_cpu, 2);
21684 }
21685 } else {
21686 if (LTDI (tmp_tmp, -32768)) {
21687 {
21688   {
21689     UHI opval = -32768;
21690     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21691     written |= (1 << 16);
21692     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21693   }
21694 frvbf_media_overflow (current_cpu, 2);
21695 }
21696 } else {
21697   {
21698     UHI opval = tmp_tmp;
21699     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21700     written |= (1 << 16);
21701     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21702   }
21703 }
21704 }
21705 }
21706 {
21707   DI tmp_tmp;
21708   tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
21709 if (GTDI (tmp_tmp, 32767)) {
21710 {
21711   {
21712     UHI opval = 32767;
21713     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21714     written |= (1 << 18);
21715     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21716   }
21717 frvbf_media_overflow (current_cpu, 1);
21718 }
21719 } else {
21720 if (LTDI (tmp_tmp, -32768)) {
21721 {
21722   {
21723     UHI opval = -32768;
21724     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21725     written |= (1 << 18);
21726     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21727   }
21728 frvbf_media_overflow (current_cpu, 1);
21729 }
21730 } else {
21731   {
21732     UHI opval = tmp_tmp;
21733     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21734     written |= (1 << 18);
21735     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21736   }
21737 }
21738 }
21739 }
21740 }
21741 }
21742
21743   abuf->written = written;
21744   return vpc;
21745 #undef FLD
21746 }
21747
21748 /* mqsubhus: mqsubhus$pack $FRintieven,$FRintjeven,$FRintkeven */
21749
21750 static SEM_PC
21751 SEM_FN_NAME (frvbf,mqsubhus) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
21752 {
21753 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
21754   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
21755   int UNUSED written = 0;
21756   IADDR UNUSED pc = abuf->addr;
21757   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
21758
21759 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
21760 frvbf_media_register_not_aligned (current_cpu);
21761 } else {
21762 {
21763   UHI tmp_argihi;
21764   UHI tmp_argilo;
21765   UHI tmp_argjhi;
21766   UHI tmp_argjlo;
21767   {
21768     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
21769     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
21770     written |= (1 << 14);
21771     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
21772   }
21773 {
21774   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21775   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21776   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21777   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21778 }
21779 {
21780   DI tmp_tmp;
21781   tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
21782 if (GTDI (tmp_tmp, 65535)) {
21783 {
21784   {
21785     UHI opval = 65535;
21786     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21787     written |= (1 << 15);
21788     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21789   }
21790 frvbf_media_overflow (current_cpu, 8);
21791 }
21792 } else {
21793 if (LTDI (tmp_tmp, 0)) {
21794 {
21795   {
21796     UHI opval = 0;
21797     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21798     written |= (1 << 15);
21799     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21800   }
21801 frvbf_media_overflow (current_cpu, 8);
21802 }
21803 } else {
21804   {
21805     UHI opval = tmp_tmp;
21806     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21807     written |= (1 << 15);
21808     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21809   }
21810 }
21811 }
21812 }
21813 {
21814   DI tmp_tmp;
21815   tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
21816 if (GTDI (tmp_tmp, 65535)) {
21817 {
21818   {
21819     UHI opval = 65535;
21820     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21821     written |= (1 << 17);
21822     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21823   }
21824 frvbf_media_overflow (current_cpu, 4);
21825 }
21826 } else {
21827 if (LTDI (tmp_tmp, 0)) {
21828 {
21829   {
21830     UHI opval = 0;
21831     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21832     written |= (1 << 17);
21833     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21834   }
21835 frvbf_media_overflow (current_cpu, 4);
21836 }
21837 } else {
21838   {
21839     UHI opval = tmp_tmp;
21840     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21841     written |= (1 << 17);
21842     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21843   }
21844 }
21845 }
21846 }
21847 {
21848   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21849   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21850   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21851   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21852 }
21853 {
21854   DI tmp_tmp;
21855   tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
21856 if (GTDI (tmp_tmp, 65535)) {
21857 {
21858   {
21859     UHI opval = 65535;
21860     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21861     written |= (1 << 16);
21862     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21863   }
21864 frvbf_media_overflow (current_cpu, 2);
21865 }
21866 } else {
21867 if (LTDI (tmp_tmp, 0)) {
21868 {
21869   {
21870     UHI opval = 0;
21871     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21872     written |= (1 << 16);
21873     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21874   }
21875 frvbf_media_overflow (current_cpu, 2);
21876 }
21877 } else {
21878   {
21879     UHI opval = tmp_tmp;
21880     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21881     written |= (1 << 16);
21882     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21883   }
21884 }
21885 }
21886 }
21887 {
21888   DI tmp_tmp;
21889   tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
21890 if (GTDI (tmp_tmp, 65535)) {
21891 {
21892   {
21893     UHI opval = 65535;
21894     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21895     written |= (1 << 18);
21896     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21897   }
21898 frvbf_media_overflow (current_cpu, 1);
21899 }
21900 } else {
21901 if (LTDI (tmp_tmp, 0)) {
21902 {
21903   {
21904     UHI opval = 0;
21905     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21906     written |= (1 << 18);
21907     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21908   }
21909 frvbf_media_overflow (current_cpu, 1);
21910 }
21911 } else {
21912   {
21913     UHI opval = tmp_tmp;
21914     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21915     written |= (1 << 18);
21916     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21917   }
21918 }
21919 }
21920 }
21921 }
21922 }
21923
21924   abuf->written = written;
21925   return vpc;
21926 #undef FLD
21927 }
21928
21929 /* cmqaddhss: cmqaddhss$pack $FRintieven,$FRintjeven,$FRintkeven,$CCi,$cond */
21930
21931 static SEM_PC
21932 SEM_FN_NAME (frvbf,cmqaddhss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
21933 {
21934 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
21935   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
21936   int UNUSED written = 0;
21937   IADDR UNUSED pc = abuf->addr;
21938   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
21939
21940 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
21941 frvbf_media_register_not_aligned (current_cpu);
21942 } else {
21943 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
21944 {
21945   HI tmp_argihi;
21946   HI tmp_argilo;
21947   HI tmp_argjhi;
21948   HI tmp_argjlo;
21949   {
21950     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
21951     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
21952     written |= (1 << 16);
21953     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
21954   }
21955 {
21956   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21957   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21958   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21959   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21960 }
21961 {
21962   DI tmp_tmp;
21963   tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
21964 if (GTDI (tmp_tmp, 32767)) {
21965 {
21966   {
21967     UHI opval = 32767;
21968     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21969     written |= (1 << 17);
21970     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21971   }
21972 frvbf_media_overflow (current_cpu, 8);
21973 }
21974 } else {
21975 if (LTDI (tmp_tmp, -32768)) {
21976 {
21977   {
21978     UHI opval = -32768;
21979     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21980     written |= (1 << 17);
21981     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21982   }
21983 frvbf_media_overflow (current_cpu, 8);
21984 }
21985 } else {
21986   {
21987     UHI opval = tmp_tmp;
21988     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21989     written |= (1 << 17);
21990     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21991   }
21992 }
21993 }
21994 }
21995 {
21996   DI tmp_tmp;
21997   tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
21998 if (GTDI (tmp_tmp, 32767)) {
21999 {
22000   {
22001     UHI opval = 32767;
22002     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22003     written |= (1 << 19);
22004     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22005   }
22006 frvbf_media_overflow (current_cpu, 4);
22007 }
22008 } else {
22009 if (LTDI (tmp_tmp, -32768)) {
22010 {
22011   {
22012     UHI opval = -32768;
22013     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22014     written |= (1 << 19);
22015     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22016   }
22017 frvbf_media_overflow (current_cpu, 4);
22018 }
22019 } else {
22020   {
22021     UHI opval = tmp_tmp;
22022     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22023     written |= (1 << 19);
22024     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22025   }
22026 }
22027 }
22028 }
22029 {
22030   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22031   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22032   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22033   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22034 }
22035 {
22036   DI tmp_tmp;
22037   tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
22038 if (GTDI (tmp_tmp, 32767)) {
22039 {
22040   {
22041     UHI opval = 32767;
22042     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22043     written |= (1 << 18);
22044     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22045   }
22046 frvbf_media_overflow (current_cpu, 2);
22047 }
22048 } else {
22049 if (LTDI (tmp_tmp, -32768)) {
22050 {
22051   {
22052     UHI opval = -32768;
22053     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22054     written |= (1 << 18);
22055     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22056   }
22057 frvbf_media_overflow (current_cpu, 2);
22058 }
22059 } else {
22060   {
22061     UHI opval = tmp_tmp;
22062     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22063     written |= (1 << 18);
22064     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22065   }
22066 }
22067 }
22068 }
22069 {
22070   DI tmp_tmp;
22071   tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
22072 if (GTDI (tmp_tmp, 32767)) {
22073 {
22074   {
22075     UHI opval = 32767;
22076     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22077     written |= (1 << 20);
22078     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22079   }
22080 frvbf_media_overflow (current_cpu, 1);
22081 }
22082 } else {
22083 if (LTDI (tmp_tmp, -32768)) {
22084 {
22085   {
22086     UHI opval = -32768;
22087     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22088     written |= (1 << 20);
22089     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22090   }
22091 frvbf_media_overflow (current_cpu, 1);
22092 }
22093 } else {
22094   {
22095     UHI opval = tmp_tmp;
22096     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22097     written |= (1 << 20);
22098     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22099   }
22100 }
22101 }
22102 }
22103 }
22104 }
22105 }
22106
22107   abuf->written = written;
22108   return vpc;
22109 #undef FLD
22110 }
22111
22112 /* cmqaddhus: cmqaddhus$pack $FRintieven,$FRintjeven,$FRintkeven,$CCi,$cond */
22113
22114 static SEM_PC
22115 SEM_FN_NAME (frvbf,cmqaddhus) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
22116 {
22117 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
22118   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
22119   int UNUSED written = 0;
22120   IADDR UNUSED pc = abuf->addr;
22121   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
22122
22123 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
22124 frvbf_media_register_not_aligned (current_cpu);
22125 } else {
22126 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
22127 {
22128   UHI tmp_argihi;
22129   UHI tmp_argilo;
22130   UHI tmp_argjhi;
22131   UHI tmp_argjlo;
22132   {
22133     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
22134     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
22135     written |= (1 << 16);
22136     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
22137   }
22138 {
22139   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22140   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22141   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22142   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22143 }
22144 {
22145   DI tmp_tmp;
22146   tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
22147 if (GTDI (tmp_tmp, 65535)) {
22148 {
22149   {
22150     UHI opval = 65535;
22151     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22152     written |= (1 << 17);
22153     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22154   }
22155 frvbf_media_overflow (current_cpu, 8);
22156 }
22157 } else {
22158 if (LTDI (tmp_tmp, 0)) {
22159 {
22160   {
22161     UHI opval = 0;
22162     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22163     written |= (1 << 17);
22164     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22165   }
22166 frvbf_media_overflow (current_cpu, 8);
22167 }
22168 } else {
22169   {
22170     UHI opval = tmp_tmp;
22171     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22172     written |= (1 << 17);
22173     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22174   }
22175 }
22176 }
22177 }
22178 {
22179   DI tmp_tmp;
22180   tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
22181 if (GTDI (tmp_tmp, 65535)) {
22182 {
22183   {
22184     UHI opval = 65535;
22185     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22186     written |= (1 << 19);
22187     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22188   }
22189 frvbf_media_overflow (current_cpu, 4);
22190 }
22191 } else {
22192 if (LTDI (tmp_tmp, 0)) {
22193 {
22194   {
22195     UHI opval = 0;
22196     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22197     written |= (1 << 19);
22198     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22199   }
22200 frvbf_media_overflow (current_cpu, 4);
22201 }
22202 } else {
22203   {
22204     UHI opval = tmp_tmp;
22205     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22206     written |= (1 << 19);
22207     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22208   }
22209 }
22210 }
22211 }
22212 {
22213   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22214   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22215   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22216   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22217 }
22218 {
22219   DI tmp_tmp;
22220   tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
22221 if (GTDI (tmp_tmp, 65535)) {
22222 {
22223   {
22224     UHI opval = 65535;
22225     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22226     written |= (1 << 18);
22227     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22228   }
22229 frvbf_media_overflow (current_cpu, 2);
22230 }
22231 } else {
22232 if (LTDI (tmp_tmp, 0)) {
22233 {
22234   {
22235     UHI opval = 0;
22236     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22237     written |= (1 << 18);
22238     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22239   }
22240 frvbf_media_overflow (current_cpu, 2);
22241 }
22242 } else {
22243   {
22244     UHI opval = tmp_tmp;
22245     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22246     written |= (1 << 18);
22247     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22248   }
22249 }
22250 }
22251 }
22252 {
22253   DI tmp_tmp;
22254   tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
22255 if (GTDI (tmp_tmp, 65535)) {
22256 {
22257   {
22258     UHI opval = 65535;
22259     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22260     written |= (1 << 20);
22261     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22262   }
22263 frvbf_media_overflow (current_cpu, 1);
22264 }
22265 } else {
22266 if (LTDI (tmp_tmp, 0)) {
22267 {
22268   {
22269     UHI opval = 0;
22270     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22271     written |= (1 << 20);
22272     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22273   }
22274 frvbf_media_overflow (current_cpu, 1);
22275 }
22276 } else {
22277   {
22278     UHI opval = tmp_tmp;
22279     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22280     written |= (1 << 20);
22281     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22282   }
22283 }
22284 }
22285 }
22286 }
22287 }
22288 }
22289
22290   abuf->written = written;
22291   return vpc;
22292 #undef FLD
22293 }
22294
22295 /* cmqsubhss: cmqsubhss$pack $FRintieven,$FRintjeven,$FRintkeven,$CCi,$cond */
22296
22297 static SEM_PC
22298 SEM_FN_NAME (frvbf,cmqsubhss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
22299 {
22300 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
22301   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
22302   int UNUSED written = 0;
22303   IADDR UNUSED pc = abuf->addr;
22304   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
22305
22306 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
22307 frvbf_media_register_not_aligned (current_cpu);
22308 } else {
22309 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
22310 {
22311   HI tmp_argihi;
22312   HI tmp_argilo;
22313   HI tmp_argjhi;
22314   HI tmp_argjlo;
22315   {
22316     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
22317     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
22318     written |= (1 << 16);
22319     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
22320   }
22321 {
22322   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22323   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22324   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22325   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22326 }
22327 {
22328   DI tmp_tmp;
22329   tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
22330 if (GTDI (tmp_tmp, 32767)) {
22331 {
22332   {
22333     UHI opval = 32767;
22334     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22335     written |= (1 << 17);
22336     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22337   }
22338 frvbf_media_overflow (current_cpu, 8);
22339 }
22340 } else {
22341 if (LTDI (tmp_tmp, -32768)) {
22342 {
22343   {
22344     UHI opval = -32768;
22345     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22346     written |= (1 << 17);
22347     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22348   }
22349 frvbf_media_overflow (current_cpu, 8);
22350 }
22351 } else {
22352   {
22353     UHI opval = tmp_tmp;
22354     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22355     written |= (1 << 17);
22356     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22357   }
22358 }
22359 }
22360 }
22361 {
22362   DI tmp_tmp;
22363   tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
22364 if (GTDI (tmp_tmp, 32767)) {
22365 {
22366   {
22367     UHI opval = 32767;
22368     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22369     written |= (1 << 19);
22370     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22371   }
22372 frvbf_media_overflow (current_cpu, 4);
22373 }
22374 } else {
22375 if (LTDI (tmp_tmp, -32768)) {
22376 {
22377   {
22378     UHI opval = -32768;
22379     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22380     written |= (1 << 19);
22381     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22382   }
22383 frvbf_media_overflow (current_cpu, 4);
22384 }
22385 } else {
22386   {
22387     UHI opval = tmp_tmp;
22388     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22389     written |= (1 << 19);
22390     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22391   }
22392 }
22393 }
22394 }
22395 {
22396   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22397   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22398   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22399   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22400 }
22401 {
22402   DI tmp_tmp;
22403   tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
22404 if (GTDI (tmp_tmp, 32767)) {
22405 {
22406   {
22407     UHI opval = 32767;
22408     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22409     written |= (1 << 18);
22410     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22411   }
22412 frvbf_media_overflow (current_cpu, 2);
22413 }
22414 } else {
22415 if (LTDI (tmp_tmp, -32768)) {
22416 {
22417   {
22418     UHI opval = -32768;
22419     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22420     written |= (1 << 18);
22421     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22422   }
22423 frvbf_media_overflow (current_cpu, 2);
22424 }
22425 } else {
22426   {
22427     UHI opval = tmp_tmp;
22428     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22429     written |= (1 << 18);
22430     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22431   }
22432 }
22433 }
22434 }
22435 {
22436   DI tmp_tmp;
22437   tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
22438 if (GTDI (tmp_tmp, 32767)) {
22439 {
22440   {
22441     UHI opval = 32767;
22442     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22443     written |= (1 << 20);
22444     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22445   }
22446 frvbf_media_overflow (current_cpu, 1);
22447 }
22448 } else {
22449 if (LTDI (tmp_tmp, -32768)) {
22450 {
22451   {
22452     UHI opval = -32768;
22453     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22454     written |= (1 << 20);
22455     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22456   }
22457 frvbf_media_overflow (current_cpu, 1);
22458 }
22459 } else {
22460   {
22461     UHI opval = tmp_tmp;
22462     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22463     written |= (1 << 20);
22464     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22465   }
22466 }
22467 }
22468 }
22469 }
22470 }
22471 }
22472
22473   abuf->written = written;
22474   return vpc;
22475 #undef FLD
22476 }
22477
22478 /* cmqsubhus: cmqsubhus$pack $FRintieven,$FRintjeven,$FRintkeven,$CCi,$cond */
22479
22480 static SEM_PC
22481 SEM_FN_NAME (frvbf,cmqsubhus) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
22482 {
22483 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
22484   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
22485   int UNUSED written = 0;
22486   IADDR UNUSED pc = abuf->addr;
22487   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
22488
22489 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
22490 frvbf_media_register_not_aligned (current_cpu);
22491 } else {
22492 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
22493 {
22494   UHI tmp_argihi;
22495   UHI tmp_argilo;
22496   UHI tmp_argjhi;
22497   UHI tmp_argjlo;
22498   {
22499     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
22500     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
22501     written |= (1 << 16);
22502     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
22503   }
22504 {
22505   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22506   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22507   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22508   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22509 }
22510 {
22511   DI tmp_tmp;
22512   tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
22513 if (GTDI (tmp_tmp, 65535)) {
22514 {
22515   {
22516     UHI opval = 65535;
22517     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22518     written |= (1 << 17);
22519     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22520   }
22521 frvbf_media_overflow (current_cpu, 8);
22522 }
22523 } else {
22524 if (LTDI (tmp_tmp, 0)) {
22525 {
22526   {
22527     UHI opval = 0;
22528     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22529     written |= (1 << 17);
22530     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22531   }
22532 frvbf_media_overflow (current_cpu, 8);
22533 }
22534 } else {
22535   {
22536     UHI opval = tmp_tmp;
22537     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22538     written |= (1 << 17);
22539     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22540   }
22541 }
22542 }
22543 }
22544 {
22545   DI tmp_tmp;
22546   tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
22547 if (GTDI (tmp_tmp, 65535)) {
22548 {
22549   {
22550     UHI opval = 65535;
22551     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22552     written |= (1 << 19);
22553     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22554   }
22555 frvbf_media_overflow (current_cpu, 4);
22556 }
22557 } else {
22558 if (LTDI (tmp_tmp, 0)) {
22559 {
22560   {
22561     UHI opval = 0;
22562     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22563     written |= (1 << 19);
22564     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22565   }
22566 frvbf_media_overflow (current_cpu, 4);
22567 }
22568 } else {
22569   {
22570     UHI opval = tmp_tmp;
22571     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22572     written |= (1 << 19);
22573     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22574   }
22575 }
22576 }
22577 }
22578 {
22579   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22580   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22581   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22582   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22583 }
22584 {
22585   DI tmp_tmp;
22586   tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
22587 if (GTDI (tmp_tmp, 65535)) {
22588 {
22589   {
22590     UHI opval = 65535;
22591     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22592     written |= (1 << 18);
22593     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22594   }
22595 frvbf_media_overflow (current_cpu, 2);
22596 }
22597 } else {
22598 if (LTDI (tmp_tmp, 0)) {
22599 {
22600   {
22601     UHI opval = 0;
22602     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22603     written |= (1 << 18);
22604     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22605   }
22606 frvbf_media_overflow (current_cpu, 2);
22607 }
22608 } else {
22609   {
22610     UHI opval = tmp_tmp;
22611     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22612     written |= (1 << 18);
22613     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22614   }
22615 }
22616 }
22617 }
22618 {
22619   DI tmp_tmp;
22620   tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
22621 if (GTDI (tmp_tmp, 65535)) {
22622 {
22623   {
22624     UHI opval = 65535;
22625     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22626     written |= (1 << 20);
22627     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22628   }
22629 frvbf_media_overflow (current_cpu, 1);
22630 }
22631 } else {
22632 if (LTDI (tmp_tmp, 0)) {
22633 {
22634   {
22635     UHI opval = 0;
22636     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22637     written |= (1 << 20);
22638     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22639   }
22640 frvbf_media_overflow (current_cpu, 1);
22641 }
22642 } else {
22643   {
22644     UHI opval = tmp_tmp;
22645     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22646     written |= (1 << 20);
22647     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22648   }
22649 }
22650 }
22651 }
22652 }
22653 }
22654 }
22655
22656   abuf->written = written;
22657   return vpc;
22658 #undef FLD
22659 }
22660
22661 /* mqlclrhs: mqlclrhs$pack $FRintieven,$FRintjeven,$FRintkeven */
22662
22663 static SEM_PC
22664 SEM_FN_NAME (frvbf,mqlclrhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
22665 {
22666 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
22667   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
22668   int UNUSED written = 0;
22669   IADDR UNUSED pc = abuf->addr;
22670   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
22671
22672 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
22673 frvbf_media_register_not_aligned (current_cpu);
22674 } else {
22675 {
22676   HI tmp_a1;
22677   HI tmp_a2;
22678   HI tmp_a3;
22679   HI tmp_a4;
22680   HI tmp_b1;
22681   HI tmp_b2;
22682   HI tmp_b3;
22683   HI tmp_b4;
22684   {
22685     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
22686     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
22687     written |= (1 << 14);
22688     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
22689   }
22690 {
22691   tmp_a1 = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22692   tmp_a2 = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22693   tmp_b1 = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22694   tmp_b2 = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22695 }
22696 {
22697   tmp_a3 = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22698   tmp_a4 = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22699   tmp_b3 = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22700   tmp_b4 = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22701 }
22702   {
22703     UHI opval = (LEUHI (ABSHI (tmp_a1), ABSHI (tmp_b1))) ? (0) : (LEHI (0, tmp_b1)) ? (tmp_a1) : (EQHI (tmp_a1, -32768)) ? (32767) : (NEGHI (tmp_a1));
22704     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22705     written |= (1 << 15);
22706     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22707   }
22708   {
22709     UHI opval = (LEUHI (ABSHI (tmp_a2), ABSHI (tmp_b2))) ? (0) : (LEHI (0, tmp_b2)) ? (tmp_a2) : (EQHI (tmp_a2, -32768)) ? (32767) : (NEGHI (tmp_a2));
22710     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22711     written |= (1 << 17);
22712     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22713   }
22714   {
22715     UHI opval = (LEUHI (ABSHI (tmp_a3), ABSHI (tmp_b3))) ? (0) : (LEHI (0, tmp_b3)) ? (tmp_a3) : (EQHI (tmp_a3, -32768)) ? (32767) : (NEGHI (tmp_a3));
22716     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22717     written |= (1 << 16);
22718     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22719   }
22720   {
22721     UHI opval = (LEUHI (ABSHI (tmp_a4), ABSHI (tmp_b4))) ? (0) : (LEHI (0, tmp_b4)) ? (tmp_a4) : (EQHI (tmp_a4, -32768)) ? (32767) : (NEGHI (tmp_a4));
22722     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22723     written |= (1 << 18);
22724     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22725   }
22726 }
22727 }
22728
22729   abuf->written = written;
22730   return vpc;
22731 #undef FLD
22732 }
22733
22734 /* mqlmths: mqlmths$pack $FRintieven,$FRintjeven,$FRintkeven */
22735
22736 static SEM_PC
22737 SEM_FN_NAME (frvbf,mqlmths) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
22738 {
22739 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
22740   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
22741   int UNUSED written = 0;
22742   IADDR UNUSED pc = abuf->addr;
22743   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
22744
22745 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
22746 frvbf_media_register_not_aligned (current_cpu);
22747 } else {
22748 {
22749   HI tmp_a1;
22750   HI tmp_a2;
22751   HI tmp_a3;
22752   HI tmp_a4;
22753   HI tmp_b1;
22754   HI tmp_b2;
22755   HI tmp_b3;
22756   HI tmp_b4;
22757   {
22758     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
22759     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
22760     written |= (1 << 14);
22761     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
22762   }
22763 {
22764   tmp_a1 = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22765   tmp_a2 = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22766   tmp_b1 = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22767   tmp_b2 = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22768 }
22769 {
22770   tmp_a3 = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22771   tmp_a4 = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22772   tmp_b3 = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22773   tmp_b4 = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22774 }
22775   {
22776     UHI opval = (ANDIF (GTHI (tmp_b1, -32768), GEHI (tmp_a1, ABSHI (tmp_b1)))) ? (tmp_b1) : (GTHI (tmp_a1, NEGHI (ABSHI (tmp_b1)))) ? (tmp_a1) : (EQHI (tmp_b1, -32768)) ? (32767) : (NEGHI (tmp_b1));
22777     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22778     written |= (1 << 15);
22779     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22780   }
22781   {
22782     UHI opval = (ANDIF (GTHI (tmp_b2, -32768), GEHI (tmp_a2, ABSHI (tmp_b2)))) ? (tmp_b2) : (GTHI (tmp_a2, NEGHI (ABSHI (tmp_b2)))) ? (tmp_a2) : (EQHI (tmp_b2, -32768)) ? (32767) : (NEGHI (tmp_b2));
22783     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22784     written |= (1 << 17);
22785     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22786   }
22787   {
22788     UHI opval = (ANDIF (GTHI (tmp_b3, -32768), GEHI (tmp_a3, ABSHI (tmp_b3)))) ? (tmp_b3) : (GTHI (tmp_a3, NEGHI (ABSHI (tmp_b3)))) ? (tmp_a3) : (EQHI (tmp_b3, -32768)) ? (32767) : (NEGHI (tmp_b3));
22789     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22790     written |= (1 << 16);
22791     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22792   }
22793   {
22794     UHI opval = (ANDIF (GTHI (tmp_b4, -32768), GEHI (tmp_a4, ABSHI (tmp_b4)))) ? (tmp_b4) : (GTHI (tmp_a4, NEGHI (ABSHI (tmp_b4)))) ? (tmp_a4) : (EQHI (tmp_b4, -32768)) ? (32767) : (NEGHI (tmp_b4));
22795     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22796     written |= (1 << 18);
22797     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22798   }
22799 }
22800 }
22801
22802   abuf->written = written;
22803   return vpc;
22804 #undef FLD
22805 }
22806
22807 /* mqsllhi: mqsllhi$pack $FRintieven,$u6,$FRintkeven */
22808
22809 static SEM_PC
22810 SEM_FN_NAME (frvbf,mqsllhi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
22811 {
22812 #define FLD(f) abuf->fields.sfmt_mqsllhi.f
22813   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
22814   int UNUSED written = 0;
22815   IADDR UNUSED pc = abuf->addr;
22816   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
22817
22818 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1)))) {
22819 frvbf_media_register_not_aligned (current_cpu);
22820 } else {
22821 {
22822   {
22823     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRi)));
22824     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRi), opval);
22825     written |= (1 << 9);
22826     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
22827   }
22828   {
22829     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
22830     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
22831     written |= (1 << 10);
22832     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
22833   }
22834   {
22835     UHI opval = SLLHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), ANDSI (FLD (f_u6), 15));
22836     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22837     written |= (1 << 11);
22838     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22839   }
22840   {
22841     UHI opval = SLLHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), ANDSI (FLD (f_u6), 15));
22842     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22843     written |= (1 << 13);
22844     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22845   }
22846   {
22847     UHI opval = SLLHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), ANDSI (FLD (f_u6), 15));
22848     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22849     written |= (1 << 12);
22850     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22851   }
22852   {
22853     UHI opval = SLLHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), ANDSI (FLD (f_u6), 15));
22854     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22855     written |= (1 << 14);
22856     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22857   }
22858 }
22859 }
22860
22861   abuf->written = written;
22862   return vpc;
22863 #undef FLD
22864 }
22865
22866 /* mqsrahi: mqsrahi$pack $FRintieven,$u6,$FRintkeven */
22867
22868 static SEM_PC
22869 SEM_FN_NAME (frvbf,mqsrahi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
22870 {
22871 #define FLD(f) abuf->fields.sfmt_mqsllhi.f
22872   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
22873   int UNUSED written = 0;
22874   IADDR UNUSED pc = abuf->addr;
22875   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
22876
22877 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1)))) {
22878 frvbf_media_register_not_aligned (current_cpu);
22879 } else {
22880 {
22881   {
22882     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRi)));
22883     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRi), opval);
22884     written |= (1 << 9);
22885     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
22886   }
22887   {
22888     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
22889     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
22890     written |= (1 << 10);
22891     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
22892   }
22893   {
22894     UHI opval = SRAHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), ANDSI (FLD (f_u6), 15));
22895     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22896     written |= (1 << 11);
22897     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22898   }
22899   {
22900     UHI opval = SRAHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), ANDSI (FLD (f_u6), 15));
22901     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22902     written |= (1 << 13);
22903     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22904   }
22905   {
22906     UHI opval = SRAHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), ANDSI (FLD (f_u6), 15));
22907     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22908     written |= (1 << 12);
22909     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22910   }
22911   {
22912     UHI opval = SRAHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), ANDSI (FLD (f_u6), 15));
22913     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22914     written |= (1 << 14);
22915     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22916   }
22917 }
22918 }
22919
22920   abuf->written = written;
22921   return vpc;
22922 #undef FLD
22923 }
22924
22925 /* maddaccs: maddaccs$pack $ACC40Si,$ACC40Sk */
22926
22927 static SEM_PC
22928 SEM_FN_NAME (frvbf,maddaccs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
22929 {
22930 #define FLD(f) abuf->fields.sfmt_mdasaccs.f
22931   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
22932   int UNUSED written = 0;
22933   IADDR UNUSED pc = abuf->addr;
22934   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
22935
22936 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Si))) {
22937 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
22938 if (ANDSI (FLD (f_ACC40Si), SUBSI (2, 1))) {
22939 frvbf_media_acc_not_aligned (current_cpu);
22940 } else {
22941 {
22942   DI tmp_tmp;
22943   tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_ACC40S (((FLD (f_ACC40Si)) + (1))));
22944 if (GTDI (tmp_tmp, 549755813887)) {
22945 {
22946   {
22947     DI opval = 549755813887;
22948     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
22949     written |= (1 << 4);
22950     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22951   }
22952 frvbf_media_overflow (current_cpu, 8);
22953 }
22954 } else {
22955 if (LTDI (tmp_tmp, INVDI (549755813887))) {
22956 {
22957   {
22958     DI opval = INVDI (549755813887);
22959     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
22960     written |= (1 << 4);
22961     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22962   }
22963 frvbf_media_overflow (current_cpu, 8);
22964 }
22965 } else {
22966   {
22967     DI opval = tmp_tmp;
22968     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
22969     written |= (1 << 4);
22970     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22971   }
22972 }
22973 }
22974 }
22975 }
22976 }
22977 }
22978
22979   abuf->written = written;
22980   return vpc;
22981 #undef FLD
22982 }
22983
22984 /* msubaccs: msubaccs$pack $ACC40Si,$ACC40Sk */
22985
22986 static SEM_PC
22987 SEM_FN_NAME (frvbf,msubaccs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
22988 {
22989 #define FLD(f) abuf->fields.sfmt_mdasaccs.f
22990   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
22991   int UNUSED written = 0;
22992   IADDR UNUSED pc = abuf->addr;
22993   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
22994
22995 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Si))) {
22996 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
22997 if (ANDSI (FLD (f_ACC40Si), SUBSI (2, 1))) {
22998 frvbf_media_acc_not_aligned (current_cpu);
22999 } else {
23000 {
23001   DI tmp_tmp;
23002   tmp_tmp = SUBDI (GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_ACC40S (((FLD (f_ACC40Si)) + (1))));
23003 if (GTDI (tmp_tmp, 549755813887)) {
23004 {
23005   {
23006     DI opval = 549755813887;
23007     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23008     written |= (1 << 4);
23009     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23010   }
23011 frvbf_media_overflow (current_cpu, 8);
23012 }
23013 } else {
23014 if (LTDI (tmp_tmp, INVDI (549755813887))) {
23015 {
23016   {
23017     DI opval = INVDI (549755813887);
23018     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23019     written |= (1 << 4);
23020     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23021   }
23022 frvbf_media_overflow (current_cpu, 8);
23023 }
23024 } else {
23025   {
23026     DI opval = tmp_tmp;
23027     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23028     written |= (1 << 4);
23029     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23030   }
23031 }
23032 }
23033 }
23034 }
23035 }
23036 }
23037
23038   abuf->written = written;
23039   return vpc;
23040 #undef FLD
23041 }
23042
23043 /* mdaddaccs: mdaddaccs$pack $ACC40Si,$ACC40Sk */
23044
23045 static SEM_PC
23046 SEM_FN_NAME (frvbf,mdaddaccs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23047 {
23048 #define FLD(f) abuf->fields.sfmt_mdasaccs.f
23049   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23050   int UNUSED written = 0;
23051   IADDR UNUSED pc = abuf->addr;
23052   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23053
23054 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Si))) {
23055 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
23056 if (ANDSI (FLD (f_ACC40Si), SUBSI (4, 1))) {
23057 frvbf_media_acc_not_aligned (current_cpu);
23058 } else {
23059 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
23060 frvbf_media_acc_not_aligned (current_cpu);
23061 } else {
23062 {
23063 {
23064   DI tmp_tmp;
23065   tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_ACC40S (((FLD (f_ACC40Si)) + (1))));
23066 if (GTDI (tmp_tmp, 549755813887)) {
23067 {
23068   {
23069     DI opval = 549755813887;
23070     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23071     written |= (1 << 6);
23072     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23073   }
23074 frvbf_media_overflow (current_cpu, 8);
23075 }
23076 } else {
23077 if (LTDI (tmp_tmp, INVDI (549755813887))) {
23078 {
23079   {
23080     DI opval = INVDI (549755813887);
23081     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23082     written |= (1 << 6);
23083     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23084   }
23085 frvbf_media_overflow (current_cpu, 8);
23086 }
23087 } else {
23088   {
23089     DI opval = tmp_tmp;
23090     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23091     written |= (1 << 6);
23092     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23093   }
23094 }
23095 }
23096 }
23097 {
23098   DI tmp_tmp;
23099   tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Si)) + (2))), GET_H_ACC40S (((FLD (f_ACC40Si)) + (3))));
23100 if (GTDI (tmp_tmp, 549755813887)) {
23101 {
23102   {
23103     DI opval = 549755813887;
23104     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23105     written |= (1 << 7);
23106     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23107   }
23108 frvbf_media_overflow (current_cpu, 4);
23109 }
23110 } else {
23111 if (LTDI (tmp_tmp, INVDI (549755813887))) {
23112 {
23113   {
23114     DI opval = INVDI (549755813887);
23115     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23116     written |= (1 << 7);
23117     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23118   }
23119 frvbf_media_overflow (current_cpu, 4);
23120 }
23121 } else {
23122   {
23123     DI opval = tmp_tmp;
23124     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23125     written |= (1 << 7);
23126     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23127   }
23128 }
23129 }
23130 }
23131 }
23132 }
23133 }
23134 }
23135 }
23136
23137   abuf->written = written;
23138   return vpc;
23139 #undef FLD
23140 }
23141
23142 /* mdsubaccs: mdsubaccs$pack $ACC40Si,$ACC40Sk */
23143
23144 static SEM_PC
23145 SEM_FN_NAME (frvbf,mdsubaccs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23146 {
23147 #define FLD(f) abuf->fields.sfmt_mdasaccs.f
23148   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23149   int UNUSED written = 0;
23150   IADDR UNUSED pc = abuf->addr;
23151   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23152
23153 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Si))) {
23154 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
23155 if (ANDSI (FLD (f_ACC40Si), SUBSI (4, 1))) {
23156 frvbf_media_acc_not_aligned (current_cpu);
23157 } else {
23158 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
23159 frvbf_media_acc_not_aligned (current_cpu);
23160 } else {
23161 {
23162 {
23163   DI tmp_tmp;
23164   tmp_tmp = SUBDI (GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_ACC40S (((FLD (f_ACC40Si)) + (1))));
23165 if (GTDI (tmp_tmp, 549755813887)) {
23166 {
23167   {
23168     DI opval = 549755813887;
23169     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23170     written |= (1 << 6);
23171     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23172   }
23173 frvbf_media_overflow (current_cpu, 8);
23174 }
23175 } else {
23176 if (LTDI (tmp_tmp, INVDI (549755813887))) {
23177 {
23178   {
23179     DI opval = INVDI (549755813887);
23180     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23181     written |= (1 << 6);
23182     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23183   }
23184 frvbf_media_overflow (current_cpu, 8);
23185 }
23186 } else {
23187   {
23188     DI opval = tmp_tmp;
23189     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23190     written |= (1 << 6);
23191     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23192   }
23193 }
23194 }
23195 }
23196 {
23197   DI tmp_tmp;
23198   tmp_tmp = SUBDI (GET_H_ACC40S (((FLD (f_ACC40Si)) + (2))), GET_H_ACC40S (((FLD (f_ACC40Si)) + (3))));
23199 if (GTDI (tmp_tmp, 549755813887)) {
23200 {
23201   {
23202     DI opval = 549755813887;
23203     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23204     written |= (1 << 7);
23205     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23206   }
23207 frvbf_media_overflow (current_cpu, 4);
23208 }
23209 } else {
23210 if (LTDI (tmp_tmp, INVDI (549755813887))) {
23211 {
23212   {
23213     DI opval = INVDI (549755813887);
23214     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23215     written |= (1 << 7);
23216     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23217   }
23218 frvbf_media_overflow (current_cpu, 4);
23219 }
23220 } else {
23221   {
23222     DI opval = tmp_tmp;
23223     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23224     written |= (1 << 7);
23225     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23226   }
23227 }
23228 }
23229 }
23230 }
23231 }
23232 }
23233 }
23234 }
23235
23236   abuf->written = written;
23237   return vpc;
23238 #undef FLD
23239 }
23240
23241 /* masaccs: masaccs$pack $ACC40Si,$ACC40Sk */
23242
23243 static SEM_PC
23244 SEM_FN_NAME (frvbf,masaccs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23245 {
23246 #define FLD(f) abuf->fields.sfmt_mdasaccs.f
23247   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23248   int UNUSED written = 0;
23249   IADDR UNUSED pc = abuf->addr;
23250   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23251
23252 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Si))) {
23253 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
23254 if (ANDSI (FLD (f_ACC40Si), SUBSI (2, 1))) {
23255 frvbf_media_acc_not_aligned (current_cpu);
23256 } else {
23257 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
23258 frvbf_media_acc_not_aligned (current_cpu);
23259 } else {
23260 {
23261 {
23262   DI tmp_tmp;
23263   tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_ACC40S (((FLD (f_ACC40Si)) + (1))));
23264 if (GTDI (tmp_tmp, 549755813887)) {
23265 {
23266   {
23267     DI opval = 549755813887;
23268     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23269     written |= (1 << 4);
23270     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23271   }
23272 frvbf_media_overflow (current_cpu, 8);
23273 }
23274 } else {
23275 if (LTDI (tmp_tmp, INVDI (549755813887))) {
23276 {
23277   {
23278     DI opval = INVDI (549755813887);
23279     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23280     written |= (1 << 4);
23281     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23282   }
23283 frvbf_media_overflow (current_cpu, 8);
23284 }
23285 } else {
23286   {
23287     DI opval = tmp_tmp;
23288     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23289     written |= (1 << 4);
23290     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23291   }
23292 }
23293 }
23294 }
23295 {
23296   DI tmp_tmp;
23297   tmp_tmp = SUBDI (GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_ACC40S (((FLD (f_ACC40Si)) + (1))));
23298 if (GTDI (tmp_tmp, 549755813887)) {
23299 {
23300   {
23301     DI opval = 549755813887;
23302     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23303     written |= (1 << 5);
23304     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23305   }
23306 frvbf_media_overflow (current_cpu, 4);
23307 }
23308 } else {
23309 if (LTDI (tmp_tmp, INVDI (549755813887))) {
23310 {
23311   {
23312     DI opval = INVDI (549755813887);
23313     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23314     written |= (1 << 5);
23315     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23316   }
23317 frvbf_media_overflow (current_cpu, 4);
23318 }
23319 } else {
23320   {
23321     DI opval = tmp_tmp;
23322     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23323     written |= (1 << 5);
23324     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23325   }
23326 }
23327 }
23328 }
23329 }
23330 }
23331 }
23332 }
23333 }
23334
23335   abuf->written = written;
23336   return vpc;
23337 #undef FLD
23338 }
23339
23340 /* mdasaccs: mdasaccs$pack $ACC40Si,$ACC40Sk */
23341
23342 static SEM_PC
23343 SEM_FN_NAME (frvbf,mdasaccs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23344 {
23345 #define FLD(f) abuf->fields.sfmt_mdasaccs.f
23346   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23347   int UNUSED written = 0;
23348   IADDR UNUSED pc = abuf->addr;
23349   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23350
23351 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Si))) {
23352 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
23353 if (ANDSI (FLD (f_ACC40Si), SUBSI (4, 1))) {
23354 frvbf_media_acc_not_aligned (current_cpu);
23355 } else {
23356 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
23357 frvbf_media_acc_not_aligned (current_cpu);
23358 } else {
23359 {
23360 {
23361   DI tmp_tmp;
23362   tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_ACC40S (((FLD (f_ACC40Si)) + (1))));
23363 if (GTDI (tmp_tmp, 549755813887)) {
23364 {
23365   {
23366     DI opval = 549755813887;
23367     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23368     written |= (1 << 6);
23369     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23370   }
23371 frvbf_media_overflow (current_cpu, 8);
23372 }
23373 } else {
23374 if (LTDI (tmp_tmp, INVDI (549755813887))) {
23375 {
23376   {
23377     DI opval = INVDI (549755813887);
23378     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23379     written |= (1 << 6);
23380     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23381   }
23382 frvbf_media_overflow (current_cpu, 8);
23383 }
23384 } else {
23385   {
23386     DI opval = tmp_tmp;
23387     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23388     written |= (1 << 6);
23389     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23390   }
23391 }
23392 }
23393 }
23394 {
23395   DI tmp_tmp;
23396   tmp_tmp = SUBDI (GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_ACC40S (((FLD (f_ACC40Si)) + (1))));
23397 if (GTDI (tmp_tmp, 549755813887)) {
23398 {
23399   {
23400     DI opval = 549755813887;
23401     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23402     written |= (1 << 7);
23403     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23404   }
23405 frvbf_media_overflow (current_cpu, 4);
23406 }
23407 } else {
23408 if (LTDI (tmp_tmp, INVDI (549755813887))) {
23409 {
23410   {
23411     DI opval = INVDI (549755813887);
23412     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23413     written |= (1 << 7);
23414     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23415   }
23416 frvbf_media_overflow (current_cpu, 4);
23417 }
23418 } else {
23419   {
23420     DI opval = tmp_tmp;
23421     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23422     written |= (1 << 7);
23423     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23424   }
23425 }
23426 }
23427 }
23428 {
23429   DI tmp_tmp;
23430   tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Si)) + (2))), GET_H_ACC40S (((FLD (f_ACC40Si)) + (3))));
23431 if (GTDI (tmp_tmp, 549755813887)) {
23432 {
23433   {
23434     DI opval = 549755813887;
23435     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
23436     written |= (1 << 8);
23437     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23438   }
23439 frvbf_media_overflow (current_cpu, 2);
23440 }
23441 } else {
23442 if (LTDI (tmp_tmp, INVDI (549755813887))) {
23443 {
23444   {
23445     DI opval = INVDI (549755813887);
23446     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
23447     written |= (1 << 8);
23448     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23449   }
23450 frvbf_media_overflow (current_cpu, 2);
23451 }
23452 } else {
23453   {
23454     DI opval = tmp_tmp;
23455     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
23456     written |= (1 << 8);
23457     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23458   }
23459 }
23460 }
23461 }
23462 {
23463   DI tmp_tmp;
23464   tmp_tmp = SUBDI (GET_H_ACC40S (((FLD (f_ACC40Si)) + (2))), GET_H_ACC40S (((FLD (f_ACC40Si)) + (3))));
23465 if (GTDI (tmp_tmp, 549755813887)) {
23466 {
23467   {
23468     DI opval = 549755813887;
23469     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
23470     written |= (1 << 9);
23471     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23472   }
23473 frvbf_media_overflow (current_cpu, 1);
23474 }
23475 } else {
23476 if (LTDI (tmp_tmp, INVDI (549755813887))) {
23477 {
23478   {
23479     DI opval = INVDI (549755813887);
23480     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
23481     written |= (1 << 9);
23482     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23483   }
23484 frvbf_media_overflow (current_cpu, 1);
23485 }
23486 } else {
23487   {
23488     DI opval = tmp_tmp;
23489     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
23490     written |= (1 << 9);
23491     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23492   }
23493 }
23494 }
23495 }
23496 }
23497 }
23498 }
23499 }
23500 }
23501
23502   abuf->written = written;
23503   return vpc;
23504 #undef FLD
23505 }
23506
23507 /* mmulhs: mmulhs$pack $FRinti,$FRintj,$ACC40Sk */
23508
23509 static SEM_PC
23510 SEM_FN_NAME (frvbf,mmulhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23511 {
23512 #define FLD(f) abuf->fields.sfmt_cmmachs.f
23513   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23514   int UNUSED written = 0;
23515   IADDR UNUSED pc = abuf->addr;
23516   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23517
23518 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
23519 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
23520 frvbf_media_acc_not_aligned (current_cpu);
23521 } else {
23522 {
23523   HI tmp_argihi;
23524   HI tmp_argilo;
23525   HI tmp_argjhi;
23526   HI tmp_argjlo;
23527 {
23528   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23529   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23530   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23531   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23532 }
23533   {
23534     DI opval = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
23535     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23536     written |= (1 << 9);
23537     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23538   }
23539   {
23540     DI opval = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
23541     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23542     written |= (1 << 10);
23543     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23544   }
23545 }
23546 }
23547 }
23548
23549   abuf->written = written;
23550   return vpc;
23551 #undef FLD
23552 }
23553
23554 /* mmulhu: mmulhu$pack $FRinti,$FRintj,$ACC40Sk */
23555
23556 static SEM_PC
23557 SEM_FN_NAME (frvbf,mmulhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23558 {
23559 #define FLD(f) abuf->fields.sfmt_cmmachs.f
23560   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23561   int UNUSED written = 0;
23562   IADDR UNUSED pc = abuf->addr;
23563   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23564
23565 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
23566 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
23567 frvbf_media_acc_not_aligned (current_cpu);
23568 } else {
23569 {
23570   UHI tmp_argihi;
23571   UHI tmp_argilo;
23572   UHI tmp_argjhi;
23573   UHI tmp_argjlo;
23574 {
23575   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23576   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23577   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23578   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23579 }
23580   {
23581     DI opval = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
23582     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23583     written |= (1 << 9);
23584     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23585   }
23586   {
23587     DI opval = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
23588     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23589     written |= (1 << 10);
23590     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23591   }
23592 }
23593 }
23594 }
23595
23596   abuf->written = written;
23597   return vpc;
23598 #undef FLD
23599 }
23600
23601 /* mmulxhs: mmulxhs$pack $FRinti,$FRintj,$ACC40Sk */
23602
23603 static SEM_PC
23604 SEM_FN_NAME (frvbf,mmulxhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23605 {
23606 #define FLD(f) abuf->fields.sfmt_cmmachs.f
23607   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23608   int UNUSED written = 0;
23609   IADDR UNUSED pc = abuf->addr;
23610   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23611
23612 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
23613 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
23614 frvbf_media_acc_not_aligned (current_cpu);
23615 } else {
23616 {
23617   HI tmp_argihi;
23618   HI tmp_argilo;
23619   HI tmp_argjhi;
23620   HI tmp_argjlo;
23621 {
23622   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23623   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23624   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23625   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23626 }
23627   {
23628     DI opval = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo));
23629     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23630     written |= (1 << 9);
23631     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23632   }
23633   {
23634     DI opval = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi));
23635     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23636     written |= (1 << 10);
23637     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23638   }
23639 }
23640 }
23641 }
23642
23643   abuf->written = written;
23644   return vpc;
23645 #undef FLD
23646 }
23647
23648 /* mmulxhu: mmulxhu$pack $FRinti,$FRintj,$ACC40Sk */
23649
23650 static SEM_PC
23651 SEM_FN_NAME (frvbf,mmulxhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23652 {
23653 #define FLD(f) abuf->fields.sfmt_cmmachs.f
23654   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23655   int UNUSED written = 0;
23656   IADDR UNUSED pc = abuf->addr;
23657   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23658
23659 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
23660 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
23661 frvbf_media_acc_not_aligned (current_cpu);
23662 } else {
23663 {
23664   UHI tmp_argihi;
23665   UHI tmp_argilo;
23666   UHI tmp_argjhi;
23667   UHI tmp_argjlo;
23668 {
23669   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23670   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23671   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23672   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23673 }
23674   {
23675     DI opval = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjlo));
23676     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23677     written |= (1 << 9);
23678     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23679   }
23680   {
23681     DI opval = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjhi));
23682     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23683     written |= (1 << 10);
23684     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23685   }
23686 }
23687 }
23688 }
23689
23690   abuf->written = written;
23691   return vpc;
23692 #undef FLD
23693 }
23694
23695 /* cmmulhs: cmmulhs$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
23696
23697 static SEM_PC
23698 SEM_FN_NAME (frvbf,cmmulhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23699 {
23700 #define FLD(f) abuf->fields.sfmt_cmmachs.f
23701   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23702   int UNUSED written = 0;
23703   IADDR UNUSED pc = abuf->addr;
23704   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23705
23706 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
23707 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
23708 frvbf_media_acc_not_aligned (current_cpu);
23709 } else {
23710 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
23711 {
23712   HI tmp_argihi;
23713   HI tmp_argilo;
23714   HI tmp_argjhi;
23715   HI tmp_argjlo;
23716 {
23717   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23718   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23719   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23720   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23721 }
23722   {
23723     DI opval = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
23724     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23725     written |= (1 << 11);
23726     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23727   }
23728   {
23729     DI opval = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
23730     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23731     written |= (1 << 12);
23732     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23733   }
23734 }
23735 }
23736 }
23737 }
23738
23739   abuf->written = written;
23740   return vpc;
23741 #undef FLD
23742 }
23743
23744 /* cmmulhu: cmmulhu$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
23745
23746 static SEM_PC
23747 SEM_FN_NAME (frvbf,cmmulhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23748 {
23749 #define FLD(f) abuf->fields.sfmt_cmmachs.f
23750   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23751   int UNUSED written = 0;
23752   IADDR UNUSED pc = abuf->addr;
23753   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23754
23755 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
23756 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
23757 frvbf_media_acc_not_aligned (current_cpu);
23758 } else {
23759 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
23760 {
23761   UHI tmp_argihi;
23762   UHI tmp_argilo;
23763   UHI tmp_argjhi;
23764   UHI tmp_argjlo;
23765 {
23766   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23767   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23768   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23769   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23770 }
23771   {
23772     DI opval = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
23773     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23774     written |= (1 << 11);
23775     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23776   }
23777   {
23778     DI opval = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
23779     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23780     written |= (1 << 12);
23781     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23782   }
23783 }
23784 }
23785 }
23786 }
23787
23788   abuf->written = written;
23789   return vpc;
23790 #undef FLD
23791 }
23792
23793 /* mqmulhs: mqmulhs$pack $FRintieven,$FRintjeven,$ACC40Sk */
23794
23795 static SEM_PC
23796 SEM_FN_NAME (frvbf,mqmulhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23797 {
23798 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
23799   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23800   int UNUSED written = 0;
23801   IADDR UNUSED pc = abuf->addr;
23802   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23803
23804 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
23805 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
23806 frvbf_media_acc_not_aligned (current_cpu);
23807 } else {
23808 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
23809 frvbf_media_register_not_aligned (current_cpu);
23810 } else {
23811 {
23812   HI tmp_argihi;
23813   HI tmp_argilo;
23814   HI tmp_argjhi;
23815   HI tmp_argjlo;
23816 {
23817   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23818   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23819   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23820   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23821 }
23822   {
23823     DI opval = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
23824     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23825     written |= (1 << 13);
23826     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23827   }
23828   {
23829     DI opval = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
23830     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23831     written |= (1 << 14);
23832     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23833   }
23834 {
23835   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23836   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23837   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23838   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23839 }
23840   {
23841     DI opval = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
23842     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
23843     written |= (1 << 15);
23844     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23845   }
23846   {
23847     DI opval = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
23848     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
23849     written |= (1 << 16);
23850     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23851   }
23852 }
23853 }
23854 }
23855 }
23856
23857   abuf->written = written;
23858   return vpc;
23859 #undef FLD
23860 }
23861
23862 /* mqmulhu: mqmulhu$pack $FRintieven,$FRintjeven,$ACC40Sk */
23863
23864 static SEM_PC
23865 SEM_FN_NAME (frvbf,mqmulhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23866 {
23867 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
23868   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23869   int UNUSED written = 0;
23870   IADDR UNUSED pc = abuf->addr;
23871   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23872
23873 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
23874 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
23875 frvbf_media_acc_not_aligned (current_cpu);
23876 } else {
23877 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
23878 frvbf_media_register_not_aligned (current_cpu);
23879 } else {
23880 {
23881   UHI tmp_argihi;
23882   UHI tmp_argilo;
23883   UHI tmp_argjhi;
23884   UHI tmp_argjlo;
23885 {
23886   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23887   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23888   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23889   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23890 }
23891   {
23892     DI opval = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
23893     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23894     written |= (1 << 13);
23895     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23896   }
23897   {
23898     DI opval = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
23899     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23900     written |= (1 << 14);
23901     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23902   }
23903 {
23904   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23905   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23906   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23907   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23908 }
23909   {
23910     DI opval = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
23911     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
23912     written |= (1 << 15);
23913     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23914   }
23915   {
23916     DI opval = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
23917     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
23918     written |= (1 << 16);
23919     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23920   }
23921 }
23922 }
23923 }
23924 }
23925
23926   abuf->written = written;
23927   return vpc;
23928 #undef FLD
23929 }
23930
23931 /* mqmulxhs: mqmulxhs$pack $FRintieven,$FRintjeven,$ACC40Sk */
23932
23933 static SEM_PC
23934 SEM_FN_NAME (frvbf,mqmulxhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23935 {
23936 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
23937   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23938   int UNUSED written = 0;
23939   IADDR UNUSED pc = abuf->addr;
23940   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23941
23942 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
23943 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
23944 frvbf_media_acc_not_aligned (current_cpu);
23945 } else {
23946 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
23947 frvbf_media_register_not_aligned (current_cpu);
23948 } else {
23949 {
23950   HI tmp_argihi;
23951   HI tmp_argilo;
23952   HI tmp_argjhi;
23953   HI tmp_argjlo;
23954 {
23955   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23956   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23957   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23958   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23959 }
23960   {
23961     DI opval = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo));
23962     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23963     written |= (1 << 13);
23964     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23965   }
23966   {
23967     DI opval = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi));
23968     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23969     written |= (1 << 14);
23970     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23971   }
23972 {
23973   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23974   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23975   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23976   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23977 }
23978   {
23979     DI opval = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo));
23980     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
23981     written |= (1 << 15);
23982     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23983   }
23984   {
23985     DI opval = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi));
23986     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
23987     written |= (1 << 16);
23988     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23989   }
23990 }
23991 }
23992 }
23993 }
23994
23995   abuf->written = written;
23996   return vpc;
23997 #undef FLD
23998 }
23999
24000 /* mqmulxhu: mqmulxhu$pack $FRintieven,$FRintjeven,$ACC40Sk */
24001
24002 static SEM_PC
24003 SEM_FN_NAME (frvbf,mqmulxhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
24004 {
24005 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
24006   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
24007   int UNUSED written = 0;
24008   IADDR UNUSED pc = abuf->addr;
24009   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
24010
24011 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
24012 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
24013 frvbf_media_acc_not_aligned (current_cpu);
24014 } else {
24015 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
24016 frvbf_media_register_not_aligned (current_cpu);
24017 } else {
24018 {
24019   UHI tmp_argihi;
24020   UHI tmp_argilo;
24021   UHI tmp_argjhi;
24022   UHI tmp_argjlo;
24023 {
24024   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24025   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24026   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24027   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24028 }
24029   {
24030     DI opval = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjlo));
24031     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24032     written |= (1 << 13);
24033     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24034   }
24035   {
24036     DI opval = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjhi));
24037     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24038     written |= (1 << 14);
24039     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24040   }
24041 {
24042   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24043   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24044   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24045   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24046 }
24047   {
24048     DI opval = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjlo));
24049     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
24050     written |= (1 << 15);
24051     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24052   }
24053   {
24054     DI opval = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjhi));
24055     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
24056     written |= (1 << 16);
24057     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24058   }
24059 }
24060 }
24061 }
24062 }
24063
24064   abuf->written = written;
24065   return vpc;
24066 #undef FLD
24067 }
24068
24069 /* cmqmulhs: cmqmulhs$pack $FRintieven,$FRintjeven,$ACC40Sk,$CCi,$cond */
24070
24071 static SEM_PC
24072 SEM_FN_NAME (frvbf,cmqmulhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
24073 {
24074 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
24075   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
24076   int UNUSED written = 0;
24077   IADDR UNUSED pc = abuf->addr;
24078   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
24079
24080 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
24081 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
24082 frvbf_media_acc_not_aligned (current_cpu);
24083 } else {
24084 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
24085 frvbf_media_register_not_aligned (current_cpu);
24086 } else {
24087 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
24088 {
24089   HI tmp_argihi;
24090   HI tmp_argilo;
24091   HI tmp_argjhi;
24092   HI tmp_argjlo;
24093 {
24094   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24095   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24096   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24097   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24098 }
24099   {
24100     DI opval = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
24101     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24102     written |= (1 << 15);
24103     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24104   }
24105   {
24106     DI opval = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
24107     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24108     written |= (1 << 16);
24109     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24110   }
24111 {
24112   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24113   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24114   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24115   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24116 }
24117   {
24118     DI opval = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
24119     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
24120     written |= (1 << 17);
24121     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24122   }
24123   {
24124     DI opval = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
24125     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
24126     written |= (1 << 18);
24127     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24128   }
24129 }
24130 }
24131 }
24132 }
24133 }
24134
24135   abuf->written = written;
24136   return vpc;
24137 #undef FLD
24138 }
24139
24140 /* cmqmulhu: cmqmulhu$pack $FRintieven,$FRintjeven,$ACC40Sk,$CCi,$cond */
24141
24142 static SEM_PC
24143 SEM_FN_NAME (frvbf,cmqmulhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
24144 {
24145 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
24146   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
24147   int UNUSED written = 0;
24148   IADDR UNUSED pc = abuf->addr;
24149   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
24150
24151 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
24152 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
24153 frvbf_media_acc_not_aligned (current_cpu);
24154 } else {
24155 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
24156 frvbf_media_register_not_aligned (current_cpu);
24157 } else {
24158 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
24159 {
24160   UHI tmp_argihi;
24161   UHI tmp_argilo;
24162   UHI tmp_argjhi;
24163   UHI tmp_argjlo;
24164 {
24165   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24166   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24167   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24168   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24169 }
24170   {
24171     DI opval = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
24172     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24173     written |= (1 << 15);
24174     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24175   }
24176   {
24177     DI opval = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
24178     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24179     written |= (1 << 16);
24180     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24181   }
24182 {
24183   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24184   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24185   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24186   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24187 }
24188   {
24189     DI opval = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
24190     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
24191     written |= (1 << 17);
24192     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24193   }
24194   {
24195     DI opval = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
24196     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
24197     written |= (1 << 18);
24198     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24199   }
24200 }
24201 }
24202 }
24203 }
24204 }
24205
24206   abuf->written = written;
24207   return vpc;
24208 #undef FLD
24209 }
24210
24211 /* mmachs: mmachs$pack $FRinti,$FRintj,$ACC40Sk */
24212
24213 static SEM_PC
24214 SEM_FN_NAME (frvbf,mmachs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
24215 {
24216 #define FLD(f) abuf->fields.sfmt_cmmachs.f
24217   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
24218   int UNUSED written = 0;
24219   IADDR UNUSED pc = abuf->addr;
24220   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
24221
24222 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
24223 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
24224 frvbf_media_acc_not_aligned (current_cpu);
24225 } else {
24226 {
24227   HI tmp_argihi;
24228   HI tmp_argilo;
24229   HI tmp_argjhi;
24230   HI tmp_argjlo;
24231 {
24232   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24233   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24234   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24235   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24236 }
24237 {
24238   DI tmp_tmp;
24239   tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Sk)), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi)));
24240 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24241 {
24242   {
24243     DI opval = MAKEDI (127, 0xffffffff);
24244     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24245     written |= (1 << 11);
24246     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24247   }
24248 frvbf_media_overflow (current_cpu, 8);
24249 }
24250 } else {
24251 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24252 {
24253   {
24254     DI opval = MAKEDI (0xffffff80, 0);
24255     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24256     written |= (1 << 11);
24257     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24258   }
24259 frvbf_media_overflow (current_cpu, 8);
24260 }
24261 } else {
24262   {
24263     DI opval = tmp_tmp;
24264     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24265     written |= (1 << 11);
24266     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24267   }
24268 }
24269 }
24270 }
24271 {
24272   DI tmp_tmp;
24273   tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (1))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo)));
24274 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24275 {
24276   {
24277     DI opval = MAKEDI (127, 0xffffffff);
24278     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24279     written |= (1 << 12);
24280     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24281   }
24282 frvbf_media_overflow (current_cpu, 4);
24283 }
24284 } else {
24285 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24286 {
24287   {
24288     DI opval = MAKEDI (0xffffff80, 0);
24289     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24290     written |= (1 << 12);
24291     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24292   }
24293 frvbf_media_overflow (current_cpu, 4);
24294 }
24295 } else {
24296   {
24297     DI opval = tmp_tmp;
24298     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24299     written |= (1 << 12);
24300     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24301   }
24302 }
24303 }
24304 }
24305 }
24306 }
24307 }
24308
24309   abuf->written = written;
24310   return vpc;
24311 #undef FLD
24312 }
24313
24314 /* mmachu: mmachu$pack $FRinti,$FRintj,$ACC40Uk */
24315
24316 static SEM_PC
24317 SEM_FN_NAME (frvbf,mmachu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
24318 {
24319 #define FLD(f) abuf->fields.sfmt_cmmachu.f
24320   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
24321   int UNUSED written = 0;
24322   IADDR UNUSED pc = abuf->addr;
24323   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
24324
24325 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Uk))) {
24326 if (ANDSI (FLD (f_ACC40Uk), SUBSI (2, 1))) {
24327 frvbf_media_acc_not_aligned (current_cpu);
24328 } else {
24329 {
24330   UHI tmp_argihi;
24331   UHI tmp_argilo;
24332   UHI tmp_argjhi;
24333   UHI tmp_argjlo;
24334 {
24335   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24336   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24337   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24338   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24339 }
24340 {
24341   DI tmp_tmp;
24342   tmp_tmp = ADDDI (GET_H_ACC40U (FLD (f_ACC40Uk)), MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi)));
24343 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
24344 {
24345   {
24346     UDI opval = MAKEDI (255, 0xffffffff);
24347     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24348     written |= (1 << 11);
24349     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24350   }
24351 frvbf_media_overflow (current_cpu, 8);
24352 }
24353 } else {
24354 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
24355 {
24356   {
24357     UDI opval = MAKEDI (0, 0);
24358     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24359     written |= (1 << 11);
24360     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24361   }
24362 frvbf_media_overflow (current_cpu, 8);
24363 }
24364 } else {
24365   {
24366     UDI opval = tmp_tmp;
24367     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24368     written |= (1 << 11);
24369     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24370   }
24371 }
24372 }
24373 }
24374 {
24375   DI tmp_tmp;
24376   tmp_tmp = ADDDI (GET_H_ACC40U (((FLD (f_ACC40Uk)) + (1))), MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo)));
24377 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
24378 {
24379   {
24380     UDI opval = MAKEDI (255, 0xffffffff);
24381     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
24382     written |= (1 << 12);
24383     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24384   }
24385 frvbf_media_overflow (current_cpu, 4);
24386 }
24387 } else {
24388 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
24389 {
24390   {
24391     UDI opval = MAKEDI (0, 0);
24392     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
24393     written |= (1 << 12);
24394     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24395   }
24396 frvbf_media_overflow (current_cpu, 4);
24397 }
24398 } else {
24399   {
24400     UDI opval = tmp_tmp;
24401     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
24402     written |= (1 << 12);
24403     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24404   }
24405 }
24406 }
24407 }
24408 }
24409 }
24410 }
24411
24412   abuf->written = written;
24413   return vpc;
24414 #undef FLD
24415 }
24416
24417 /* mmrdhs: mmrdhs$pack $FRinti,$FRintj,$ACC40Sk */
24418
24419 static SEM_PC
24420 SEM_FN_NAME (frvbf,mmrdhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
24421 {
24422 #define FLD(f) abuf->fields.sfmt_cmmachs.f
24423   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
24424   int UNUSED written = 0;
24425   IADDR UNUSED pc = abuf->addr;
24426   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
24427
24428 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
24429 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
24430 frvbf_media_acc_not_aligned (current_cpu);
24431 } else {
24432 {
24433   HI tmp_argihi;
24434   HI tmp_argilo;
24435   HI tmp_argjhi;
24436   HI tmp_argjlo;
24437 {
24438   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24439   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24440   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24441   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24442 }
24443 {
24444   DI tmp_tmp;
24445   tmp_tmp = SUBDI (GET_H_ACC40S (FLD (f_ACC40Sk)), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi)));
24446 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24447 {
24448   {
24449     DI opval = MAKEDI (127, 0xffffffff);
24450     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24451     written |= (1 << 11);
24452     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24453   }
24454 frvbf_media_overflow (current_cpu, 8);
24455 }
24456 } else {
24457 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24458 {
24459   {
24460     DI opval = MAKEDI (0xffffff80, 0);
24461     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24462     written |= (1 << 11);
24463     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24464   }
24465 frvbf_media_overflow (current_cpu, 8);
24466 }
24467 } else {
24468   {
24469     DI opval = tmp_tmp;
24470     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24471     written |= (1 << 11);
24472     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24473   }
24474 }
24475 }
24476 }
24477 {
24478   DI tmp_tmp;
24479   tmp_tmp = SUBDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (1))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo)));
24480 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24481 {
24482   {
24483     DI opval = MAKEDI (127, 0xffffffff);
24484     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24485     written |= (1 << 12);
24486     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24487   }
24488 frvbf_media_overflow (current_cpu, 4);
24489 }
24490 } else {
24491 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24492 {
24493   {
24494     DI opval = MAKEDI (0xffffff80, 0);
24495     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24496     written |= (1 << 12);
24497     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24498   }
24499 frvbf_media_overflow (current_cpu, 4);
24500 }
24501 } else {
24502   {
24503     DI opval = tmp_tmp;
24504     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24505     written |= (1 << 12);
24506     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24507   }
24508 }
24509 }
24510 }
24511 }
24512 }
24513 }
24514
24515   abuf->written = written;
24516   return vpc;
24517 #undef FLD
24518 }
24519
24520 /* mmrdhu: mmrdhu$pack $FRinti,$FRintj,$ACC40Uk */
24521
24522 static SEM_PC
24523 SEM_FN_NAME (frvbf,mmrdhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
24524 {
24525 #define FLD(f) abuf->fields.sfmt_cmmachu.f
24526   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
24527   int UNUSED written = 0;
24528   IADDR UNUSED pc = abuf->addr;
24529   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
24530
24531 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Uk))) {
24532 if (ANDSI (FLD (f_ACC40Uk), SUBSI (2, 1))) {
24533 frvbf_media_acc_not_aligned (current_cpu);
24534 } else {
24535 {
24536   UHI tmp_argihi;
24537   UHI tmp_argilo;
24538   UHI tmp_argjhi;
24539   UHI tmp_argjlo;
24540 {
24541   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24542   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24543   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24544   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24545 }
24546 {
24547   DI tmp_tmp;
24548   tmp_tmp = SUBDI (GET_H_ACC40U (FLD (f_ACC40Uk)), MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi)));
24549 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
24550 {
24551   {
24552     UDI opval = MAKEDI (255, 0xffffffff);
24553     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24554     written |= (1 << 11);
24555     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24556   }
24557 frvbf_media_overflow (current_cpu, 8);
24558 }
24559 } else {
24560 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
24561 {
24562   {
24563     UDI opval = MAKEDI (0, 0);
24564     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24565     written |= (1 << 11);
24566     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24567   }
24568 frvbf_media_overflow (current_cpu, 8);
24569 }
24570 } else {
24571   {
24572     UDI opval = tmp_tmp;
24573     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24574     written |= (1 << 11);
24575     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24576   }
24577 }
24578 }
24579 }
24580 {
24581   DI tmp_tmp;
24582   tmp_tmp = SUBDI (GET_H_ACC40U (((FLD (f_ACC40Uk)) + (1))), MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo)));
24583 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
24584 {
24585   {
24586     UDI opval = MAKEDI (255, 0xffffffff);
24587     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
24588     written |= (1 << 12);
24589     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24590   }
24591 frvbf_media_overflow (current_cpu, 4);
24592 }
24593 } else {
24594 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
24595 {
24596   {
24597     UDI opval = MAKEDI (0, 0);
24598     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
24599     written |= (1 << 12);
24600     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24601   }
24602 frvbf_media_overflow (current_cpu, 4);
24603 }
24604 } else {
24605   {
24606     UDI opval = tmp_tmp;
24607     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
24608     written |= (1 << 12);
24609     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24610   }
24611 }
24612 }
24613 }
24614 }
24615 }
24616 }
24617
24618   abuf->written = written;
24619   return vpc;
24620 #undef FLD
24621 }
24622
24623 /* cmmachs: cmmachs$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
24624
24625 static SEM_PC
24626 SEM_FN_NAME (frvbf,cmmachs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
24627 {
24628 #define FLD(f) abuf->fields.sfmt_cmmachs.f
24629   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
24630   int UNUSED written = 0;
24631   IADDR UNUSED pc = abuf->addr;
24632   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
24633
24634 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
24635 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
24636 frvbf_media_acc_not_aligned (current_cpu);
24637 } else {
24638 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
24639 {
24640   HI tmp_argihi;
24641   HI tmp_argilo;
24642   HI tmp_argjhi;
24643   HI tmp_argjlo;
24644 {
24645   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24646   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24647   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24648   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24649 }
24650 {
24651   DI tmp_tmp;
24652   tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Sk)), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi)));
24653 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24654 {
24655   {
24656     DI opval = MAKEDI (127, 0xffffffff);
24657     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24658     written |= (1 << 13);
24659     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24660   }
24661 frvbf_media_overflow (current_cpu, 8);
24662 }
24663 } else {
24664 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24665 {
24666   {
24667     DI opval = MAKEDI (0xffffff80, 0);
24668     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24669     written |= (1 << 13);
24670     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24671   }
24672 frvbf_media_overflow (current_cpu, 8);
24673 }
24674 } else {
24675   {
24676     DI opval = tmp_tmp;
24677     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24678     written |= (1 << 13);
24679     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24680   }
24681 }
24682 }
24683 }
24684 {
24685   DI tmp_tmp;
24686   tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (1))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo)));
24687 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24688 {
24689   {
24690     DI opval = MAKEDI (127, 0xffffffff);
24691     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24692     written |= (1 << 14);
24693     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24694   }
24695 frvbf_media_overflow (current_cpu, 4);
24696 }
24697 } else {
24698 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24699 {
24700   {
24701     DI opval = MAKEDI (0xffffff80, 0);
24702     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24703     written |= (1 << 14);
24704     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24705   }
24706 frvbf_media_overflow (current_cpu, 4);
24707 }
24708 } else {
24709   {
24710     DI opval = tmp_tmp;
24711     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24712     written |= (1 << 14);
24713     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24714   }
24715 }
24716 }
24717 }
24718 }
24719 }
24720 }
24721 }
24722
24723   abuf->written = written;
24724   return vpc;
24725 #undef FLD
24726 }
24727
24728 /* cmmachu: cmmachu$pack $FRinti,$FRintj,$ACC40Uk,$CCi,$cond */
24729
24730 static SEM_PC
24731 SEM_FN_NAME (frvbf,cmmachu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
24732 {
24733 #define FLD(f) abuf->fields.sfmt_cmmachu.f
24734   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
24735   int UNUSED written = 0;
24736   IADDR UNUSED pc = abuf->addr;
24737   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
24738
24739 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Uk))) {
24740 if (ANDSI (FLD (f_ACC40Uk), SUBSI (2, 1))) {
24741 frvbf_media_acc_not_aligned (current_cpu);
24742 } else {
24743 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
24744 {
24745   UHI tmp_argihi;
24746   UHI tmp_argilo;
24747   UHI tmp_argjhi;
24748   UHI tmp_argjlo;
24749 {
24750   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24751   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24752   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24753   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24754 }
24755 {
24756   DI tmp_tmp;
24757   tmp_tmp = ADDDI (GET_H_ACC40U (FLD (f_ACC40Uk)), MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi)));
24758 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
24759 {
24760   {
24761     UDI opval = MAKEDI (255, 0xffffffff);
24762     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24763     written |= (1 << 13);
24764     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24765   }
24766 frvbf_media_overflow (current_cpu, 8);
24767 }
24768 } else {
24769 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
24770 {
24771   {
24772     UDI opval = MAKEDI (0, 0);
24773     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24774     written |= (1 << 13);
24775     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24776   }
24777 frvbf_media_overflow (current_cpu, 8);
24778 }
24779 } else {
24780   {
24781     UDI opval = tmp_tmp;
24782     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24783     written |= (1 << 13);
24784     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24785   }
24786 }
24787 }
24788 }
24789 {
24790   DI tmp_tmp;
24791   tmp_tmp = ADDDI (GET_H_ACC40U (((FLD (f_ACC40Uk)) + (1))), MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo)));
24792 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
24793 {
24794   {
24795     UDI opval = MAKEDI (255, 0xffffffff);
24796     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
24797     written |= (1 << 14);
24798     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24799   }
24800 frvbf_media_overflow (current_cpu, 4);
24801 }
24802 } else {
24803 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
24804 {
24805   {
24806     UDI opval = MAKEDI (0, 0);
24807     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
24808     written |= (1 << 14);
24809     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24810   }
24811 frvbf_media_overflow (current_cpu, 4);
24812 }
24813 } else {
24814   {
24815     UDI opval = tmp_tmp;
24816     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
24817     written |= (1 << 14);
24818     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24819   }
24820 }
24821 }
24822 }
24823 }
24824 }
24825 }
24826 }
24827
24828   abuf->written = written;
24829   return vpc;
24830 #undef FLD
24831 }
24832
24833 /* mqmachs: mqmachs$pack $FRintieven,$FRintjeven,$ACC40Sk */
24834
24835 static SEM_PC
24836 SEM_FN_NAME (frvbf,mqmachs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
24837 {
24838 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
24839   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
24840   int UNUSED written = 0;
24841   IADDR UNUSED pc = abuf->addr;
24842   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
24843
24844 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
24845 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
24846 frvbf_media_acc_not_aligned (current_cpu);
24847 } else {
24848 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
24849 frvbf_media_register_not_aligned (current_cpu);
24850 } else {
24851 {
24852   HI tmp_argihi;
24853   HI tmp_argilo;
24854   HI tmp_argjhi;
24855   HI tmp_argjlo;
24856 {
24857   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24858   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24859   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24860   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24861 }
24862 {
24863   DI tmp_tmp;
24864   tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Sk)), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi)));
24865 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24866 {
24867   {
24868     DI opval = MAKEDI (127, 0xffffffff);
24869     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24870     written |= (1 << 17);
24871     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24872   }
24873 frvbf_media_overflow (current_cpu, 8);
24874 }
24875 } else {
24876 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24877 {
24878   {
24879     DI opval = MAKEDI (0xffffff80, 0);
24880     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24881     written |= (1 << 17);
24882     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24883   }
24884 frvbf_media_overflow (current_cpu, 8);
24885 }
24886 } else {
24887   {
24888     DI opval = tmp_tmp;
24889     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24890     written |= (1 << 17);
24891     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24892   }
24893 }
24894 }
24895 }
24896 {
24897   DI tmp_tmp;
24898   tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (1))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo)));
24899 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24900 {
24901   {
24902     DI opval = MAKEDI (127, 0xffffffff);
24903     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24904     written |= (1 << 18);
24905     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24906   }
24907 frvbf_media_overflow (current_cpu, 4);
24908 }
24909 } else {
24910 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24911 {
24912   {
24913     DI opval = MAKEDI (0xffffff80, 0);
24914     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24915     written |= (1 << 18);
24916     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24917   }
24918 frvbf_media_overflow (current_cpu, 4);
24919 }
24920 } else {
24921   {
24922     DI opval = tmp_tmp;
24923     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24924     written |= (1 << 18);
24925     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24926   }
24927 }
24928 }
24929 }
24930 {
24931   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24932   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24933   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24934   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24935 }
24936 {
24937   DI tmp_tmp;
24938   tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (2))), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi)));
24939 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24940 {
24941   {
24942     DI opval = MAKEDI (127, 0xffffffff);
24943     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
24944     written |= (1 << 19);
24945     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24946   }
24947 frvbf_media_overflow (current_cpu, 2);
24948 }
24949 } else {
24950 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24951 {
24952   {
24953     DI opval = MAKEDI (0xffffff80, 0);
24954     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
24955     written |= (1 << 19);
24956     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24957   }
24958 frvbf_media_overflow (current_cpu, 2);
24959 }
24960 } else {
24961   {
24962     DI opval = tmp_tmp;
24963     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
24964     written |= (1 << 19);
24965     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24966   }
24967 }
24968 }
24969 }
24970 {
24971   DI tmp_tmp;
24972   tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (3))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo)));
24973 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24974 {
24975   {
24976     DI opval = MAKEDI (127, 0xffffffff);
24977     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
24978     written |= (1 << 20);
24979     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24980   }
24981 frvbf_media_overflow (current_cpu, 1);
24982 }
24983 } else {
24984 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24985 {
24986   {
24987     DI opval = MAKEDI (0xffffff80, 0);
24988     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
24989     written |= (1 << 20);
24990     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24991   }
24992 frvbf_media_overflow (current_cpu, 1);
24993 }
24994 } else {
24995   {
24996     DI opval = tmp_tmp;
24997     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
24998     written |= (1 << 20);
24999     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25000   }
25001 }
25002 }
25003 }
25004 }
25005 }
25006 }
25007 }
25008
25009   abuf->written = written;
25010   return vpc;
25011 #undef FLD
25012 }
25013
25014 /* mqmachu: mqmachu$pack $FRintieven,$FRintjeven,$ACC40Uk */
25015
25016 static SEM_PC
25017 SEM_FN_NAME (frvbf,mqmachu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
25018 {
25019 #define FLD(f) abuf->fields.sfmt_cmqmachu.f
25020   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
25021   int UNUSED written = 0;
25022   IADDR UNUSED pc = abuf->addr;
25023   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
25024
25025 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Uk))) {
25026 if (ANDSI (FLD (f_ACC40Uk), SUBSI (4, 1))) {
25027 frvbf_media_acc_not_aligned (current_cpu);
25028 } else {
25029 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
25030 frvbf_media_register_not_aligned (current_cpu);
25031 } else {
25032 {
25033   UHI tmp_argihi;
25034   UHI tmp_argilo;
25035   UHI tmp_argjhi;
25036   UHI tmp_argjlo;
25037 {
25038   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25039   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25040   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25041   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25042 }
25043 {
25044   DI tmp_tmp;
25045   tmp_tmp = ADDDI (GET_H_ACC40U (FLD (f_ACC40Uk)), MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi)));
25046 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
25047 {
25048   {
25049     UDI opval = MAKEDI (255, 0xffffffff);
25050     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
25051     written |= (1 << 17);
25052     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25053   }
25054 frvbf_media_overflow (current_cpu, 8);
25055 }
25056 } else {
25057 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
25058 {
25059   {
25060     UDI opval = MAKEDI (0, 0);
25061     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
25062     written |= (1 << 17);
25063     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25064   }
25065 frvbf_media_overflow (current_cpu, 8);
25066 }
25067 } else {
25068   {
25069     UDI opval = tmp_tmp;
25070     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
25071     written |= (1 << 17);
25072     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25073   }
25074 }
25075 }
25076 }
25077 {
25078   DI tmp_tmp;
25079   tmp_tmp = ADDDI (GET_H_ACC40U (((FLD (f_ACC40Uk)) + (1))), MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo)));
25080 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
25081 {
25082   {
25083     UDI opval = MAKEDI (255, 0xffffffff);
25084     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
25085     written |= (1 << 18);
25086     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25087   }
25088 frvbf_media_overflow (current_cpu, 4);
25089 }
25090 } else {
25091 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
25092 {
25093   {
25094     UDI opval = MAKEDI (0, 0);
25095     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
25096     written |= (1 << 18);
25097     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25098   }
25099 frvbf_media_overflow (current_cpu, 4);
25100 }
25101 } else {
25102   {
25103     UDI opval = tmp_tmp;
25104     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
25105     written |= (1 << 18);
25106     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25107   }
25108 }
25109 }
25110 }
25111 {
25112   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25113   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25114   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25115   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25116 }
25117 {
25118   DI tmp_tmp;
25119   tmp_tmp = ADDDI (GET_H_ACC40U (((FLD (f_ACC40Uk)) + (2))), MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi)));
25120 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
25121 {
25122   {
25123     UDI opval = MAKEDI (255, 0xffffffff);
25124     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (2)), opval);
25125     written |= (1 << 19);
25126     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25127   }
25128 frvbf_media_overflow (current_cpu, 2);
25129 }
25130 } else {
25131 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
25132 {
25133   {
25134     UDI opval = MAKEDI (0, 0);
25135     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (2)), opval);
25136     written |= (1 << 19);
25137     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25138   }
25139 frvbf_media_overflow (current_cpu, 2);
25140 }
25141 } else {
25142   {
25143     UDI opval = tmp_tmp;
25144     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (2)), opval);
25145     written |= (1 << 19);
25146     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25147   }
25148 }
25149 }
25150 }
25151 {
25152   DI tmp_tmp;
25153   tmp_tmp = ADDDI (GET_H_ACC40U (((FLD (f_ACC40Uk)) + (3))), MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo)));
25154 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
25155 {
25156   {
25157     UDI opval = MAKEDI (255, 0xffffffff);
25158     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (3)), opval);
25159     written |= (1 << 20);
25160     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25161   }
25162 frvbf_media_overflow (current_cpu, 1);
25163 }
25164 } else {
25165 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
25166 {
25167   {
25168     UDI opval = MAKEDI (0, 0);
25169     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (3)), opval);
25170     written |= (1 << 20);
25171     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25172   }
25173 frvbf_media_overflow (current_cpu, 1);
25174 }
25175 } else {
25176   {
25177     UDI opval = tmp_tmp;
25178     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (3)), opval);
25179     written |= (1 << 20);
25180     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25181   }
25182 }
25183 }
25184 }
25185 }
25186 }
25187 }
25188 }
25189
25190   abuf->written = written;
25191   return vpc;
25192 #undef FLD
25193 }
25194
25195 /* cmqmachs: cmqmachs$pack $FRintieven,$FRintjeven,$ACC40Sk,$CCi,$cond */
25196
25197 static SEM_PC
25198 SEM_FN_NAME (frvbf,cmqmachs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
25199 {
25200 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
25201   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
25202   int UNUSED written = 0;
25203   IADDR UNUSED pc = abuf->addr;
25204   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
25205
25206 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
25207 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
25208 frvbf_media_acc_not_aligned (current_cpu);
25209 } else {
25210 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
25211 frvbf_media_register_not_aligned (current_cpu);
25212 } else {
25213 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
25214 {
25215   HI tmp_argihi;
25216   HI tmp_argilo;
25217   HI tmp_argjhi;
25218   HI tmp_argjlo;
25219 {
25220   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25221   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25222   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25223   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25224 }
25225 {
25226   DI tmp_tmp;
25227   tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Sk)), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi)));
25228 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25229 {
25230   {
25231     DI opval = MAKEDI (127, 0xffffffff);
25232     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25233     written |= (1 << 19);
25234     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25235   }
25236 frvbf_media_overflow (current_cpu, 8);
25237 }
25238 } else {
25239 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25240 {
25241   {
25242     DI opval = MAKEDI (0xffffff80, 0);
25243     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25244     written |= (1 << 19);
25245     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25246   }
25247 frvbf_media_overflow (current_cpu, 8);
25248 }
25249 } else {
25250   {
25251     DI opval = tmp_tmp;
25252     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25253     written |= (1 << 19);
25254     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25255   }
25256 }
25257 }
25258 }
25259 {
25260   DI tmp_tmp;
25261   tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (1))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo)));
25262 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25263 {
25264   {
25265     DI opval = MAKEDI (127, 0xffffffff);
25266     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
25267     written |= (1 << 20);
25268     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25269   }
25270 frvbf_media_overflow (current_cpu, 4);
25271 }
25272 } else {
25273 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25274 {
25275   {
25276     DI opval = MAKEDI (0xffffff80, 0);
25277     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
25278     written |= (1 << 20);
25279     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25280   }
25281 frvbf_media_overflow (current_cpu, 4);
25282 }
25283 } else {
25284   {
25285     DI opval = tmp_tmp;
25286     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
25287     written |= (1 << 20);
25288     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25289   }
25290 }
25291 }
25292 }
25293 {
25294   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25295   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25296   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25297   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25298 }
25299 {
25300   DI tmp_tmp;
25301   tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (2))), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi)));
25302 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25303 {
25304   {
25305     DI opval = MAKEDI (127, 0xffffffff);
25306     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
25307     written |= (1 << 21);
25308     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25309   }
25310 frvbf_media_overflow (current_cpu, 2);
25311 }
25312 } else {
25313 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25314 {
25315   {
25316     DI opval = MAKEDI (0xffffff80, 0);
25317     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
25318     written |= (1 << 21);
25319     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25320   }
25321 frvbf_media_overflow (current_cpu, 2);
25322 }
25323 } else {
25324   {
25325     DI opval = tmp_tmp;
25326     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
25327     written |= (1 << 21);
25328     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25329   }
25330 }
25331 }
25332 }
25333 {
25334   DI tmp_tmp;
25335   tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (3))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo)));
25336 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25337 {
25338   {
25339     DI opval = MAKEDI (127, 0xffffffff);
25340     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
25341     written |= (1 << 22);
25342     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25343   }
25344 frvbf_media_overflow (current_cpu, 1);
25345 }
25346 } else {
25347 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25348 {
25349   {
25350     DI opval = MAKEDI (0xffffff80, 0);
25351     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
25352     written |= (1 << 22);
25353     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25354   }
25355 frvbf_media_overflow (current_cpu, 1);
25356 }
25357 } else {
25358   {
25359     DI opval = tmp_tmp;
25360     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
25361     written |= (1 << 22);
25362     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25363   }
25364 }
25365 }
25366 }
25367 }
25368 }
25369 }
25370 }
25371 }
25372
25373   abuf->written = written;
25374   return vpc;
25375 #undef FLD
25376 }
25377
25378 /* cmqmachu: cmqmachu$pack $FRintieven,$FRintjeven,$ACC40Uk,$CCi,$cond */
25379
25380 static SEM_PC
25381 SEM_FN_NAME (frvbf,cmqmachu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
25382 {
25383 #define FLD(f) abuf->fields.sfmt_cmqmachu.f
25384   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
25385   int UNUSED written = 0;
25386   IADDR UNUSED pc = abuf->addr;
25387   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
25388
25389 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Uk))) {
25390 if (ANDSI (FLD (f_ACC40Uk), SUBSI (4, 1))) {
25391 frvbf_media_acc_not_aligned (current_cpu);
25392 } else {
25393 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
25394 frvbf_media_register_not_aligned (current_cpu);
25395 } else {
25396 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
25397 {
25398   UHI tmp_argihi;
25399   UHI tmp_argilo;
25400   UHI tmp_argjhi;
25401   UHI tmp_argjlo;
25402 {
25403   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25404   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25405   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25406   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25407 }
25408 {
25409   DI tmp_tmp;
25410   tmp_tmp = ADDDI (GET_H_ACC40U (FLD (f_ACC40Uk)), MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi)));
25411 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
25412 {
25413   {
25414     UDI opval = MAKEDI (255, 0xffffffff);
25415     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
25416     written |= (1 << 19);
25417     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25418   }
25419 frvbf_media_overflow (current_cpu, 8);
25420 }
25421 } else {
25422 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
25423 {
25424   {
25425     UDI opval = MAKEDI (0, 0);
25426     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
25427     written |= (1 << 19);
25428     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25429   }
25430 frvbf_media_overflow (current_cpu, 8);
25431 }
25432 } else {
25433   {
25434     UDI opval = tmp_tmp;
25435     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
25436     written |= (1 << 19);
25437     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25438   }
25439 }
25440 }
25441 }
25442 {
25443   DI tmp_tmp;
25444   tmp_tmp = ADDDI (GET_H_ACC40U (((FLD (f_ACC40Uk)) + (1))), MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo)));
25445 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
25446 {
25447   {
25448     UDI opval = MAKEDI (255, 0xffffffff);
25449     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
25450     written |= (1 << 20);
25451     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25452   }
25453 frvbf_media_overflow (current_cpu, 4);
25454 }
25455 } else {
25456 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
25457 {
25458   {
25459     UDI opval = MAKEDI (0, 0);
25460     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
25461     written |= (1 << 20);
25462     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25463   }
25464 frvbf_media_overflow (current_cpu, 4);
25465 }
25466 } else {
25467   {
25468     UDI opval = tmp_tmp;
25469     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
25470     written |= (1 << 20);
25471     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25472   }
25473 }
25474 }
25475 }
25476 {
25477   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25478   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25479   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25480   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25481 }
25482 {
25483   DI tmp_tmp;
25484   tmp_tmp = ADDDI (GET_H_ACC40U (((FLD (f_ACC40Uk)) + (2))), MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi)));
25485 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
25486 {
25487   {
25488     UDI opval = MAKEDI (255, 0xffffffff);
25489     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (2)), opval);
25490     written |= (1 << 21);
25491     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25492   }
25493 frvbf_media_overflow (current_cpu, 2);
25494 }
25495 } else {
25496 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
25497 {
25498   {
25499     UDI opval = MAKEDI (0, 0);
25500     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (2)), opval);
25501     written |= (1 << 21);
25502     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25503   }
25504 frvbf_media_overflow (current_cpu, 2);
25505 }
25506 } else {
25507   {
25508     UDI opval = tmp_tmp;
25509     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (2)), opval);
25510     written |= (1 << 21);
25511     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25512   }
25513 }
25514 }
25515 }
25516 {
25517   DI tmp_tmp;
25518   tmp_tmp = ADDDI (GET_H_ACC40U (((FLD (f_ACC40Uk)) + (3))), MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo)));
25519 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
25520 {
25521   {
25522     UDI opval = MAKEDI (255, 0xffffffff);
25523     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (3)), opval);
25524     written |= (1 << 22);
25525     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25526   }
25527 frvbf_media_overflow (current_cpu, 1);
25528 }
25529 } else {
25530 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
25531 {
25532   {
25533     UDI opval = MAKEDI (0, 0);
25534     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (3)), opval);
25535     written |= (1 << 22);
25536     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25537   }
25538 frvbf_media_overflow (current_cpu, 1);
25539 }
25540 } else {
25541   {
25542     UDI opval = tmp_tmp;
25543     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (3)), opval);
25544     written |= (1 << 22);
25545     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25546   }
25547 }
25548 }
25549 }
25550 }
25551 }
25552 }
25553 }
25554 }
25555
25556   abuf->written = written;
25557   return vpc;
25558 #undef FLD
25559 }
25560
25561 /* mqxmachs: mqxmachs$pack $FRintieven,$FRintjeven,$ACC40Sk */
25562
25563 static SEM_PC
25564 SEM_FN_NAME (frvbf,mqxmachs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
25565 {
25566 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
25567   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
25568   int UNUSED written = 0;
25569   IADDR UNUSED pc = abuf->addr;
25570   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
25571
25572 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
25573 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
25574 frvbf_media_acc_not_aligned (current_cpu);
25575 } else {
25576 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
25577 frvbf_media_register_not_aligned (current_cpu);
25578 } else {
25579 {
25580   HI tmp_argihi;
25581   HI tmp_argilo;
25582   HI tmp_argjhi;
25583   HI tmp_argjlo;
25584 {
25585   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25586   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25587   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25588   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25589 }
25590 {
25591   DI tmp_tmp;
25592   tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (2))), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi)));
25593 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25594 {
25595   {
25596     DI opval = MAKEDI (127, 0xffffffff);
25597     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
25598     written |= (1 << 19);
25599     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25600   }
25601 frvbf_media_overflow (current_cpu, 2);
25602 }
25603 } else {
25604 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25605 {
25606   {
25607     DI opval = MAKEDI (0xffffff80, 0);
25608     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
25609     written |= (1 << 19);
25610     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25611   }
25612 frvbf_media_overflow (current_cpu, 2);
25613 }
25614 } else {
25615   {
25616     DI opval = tmp_tmp;
25617     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
25618     written |= (1 << 19);
25619     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25620   }
25621 }
25622 }
25623 }
25624 {
25625   DI tmp_tmp;
25626   tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (3))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo)));
25627 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25628 {
25629   {
25630     DI opval = MAKEDI (127, 0xffffffff);
25631     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
25632     written |= (1 << 20);
25633     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25634   }
25635 frvbf_media_overflow (current_cpu, 1);
25636 }
25637 } else {
25638 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25639 {
25640   {
25641     DI opval = MAKEDI (0xffffff80, 0);
25642     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
25643     written |= (1 << 20);
25644     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25645   }
25646 frvbf_media_overflow (current_cpu, 1);
25647 }
25648 } else {
25649   {
25650     DI opval = tmp_tmp;
25651     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
25652     written |= (1 << 20);
25653     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25654   }
25655 }
25656 }
25657 }
25658 {
25659   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25660   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25661   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25662   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25663 }
25664 {
25665   DI tmp_tmp;
25666   tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Sk)), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi)));
25667 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25668 {
25669   {
25670     DI opval = MAKEDI (127, 0xffffffff);
25671     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25672     written |= (1 << 17);
25673     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25674   }
25675 frvbf_media_overflow (current_cpu, 8);
25676 }
25677 } else {
25678 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25679 {
25680   {
25681     DI opval = MAKEDI (0xffffff80, 0);
25682     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25683     written |= (1 << 17);
25684     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25685   }
25686 frvbf_media_overflow (current_cpu, 8);
25687 }
25688 } else {
25689   {
25690     DI opval = tmp_tmp;
25691     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25692     written |= (1 << 17);
25693     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25694   }
25695 }
25696 }
25697 }
25698 {
25699   DI tmp_tmp;
25700   tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (1))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo)));
25701 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25702 {
25703   {
25704     DI opval = MAKEDI (127, 0xffffffff);
25705     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
25706     written |= (1 << 18);
25707     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25708   }
25709 frvbf_media_overflow (current_cpu, 4);
25710 }
25711 } else {
25712 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25713 {
25714   {
25715     DI opval = MAKEDI (0xffffff80, 0);
25716     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
25717     written |= (1 << 18);
25718     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25719   }
25720 frvbf_media_overflow (current_cpu, 4);
25721 }
25722 } else {
25723   {
25724     DI opval = tmp_tmp;
25725     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
25726     written |= (1 << 18);
25727     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25728   }
25729 }
25730 }
25731 }
25732 }
25733 }
25734 }
25735 }
25736
25737   abuf->written = written;
25738   return vpc;
25739 #undef FLD
25740 }
25741
25742 /* mqxmacxhs: mqxmacxhs$pack $FRintieven,$FRintjeven,$ACC40Sk */
25743
25744 static SEM_PC
25745 SEM_FN_NAME (frvbf,mqxmacxhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
25746 {
25747 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
25748   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
25749   int UNUSED written = 0;
25750   IADDR UNUSED pc = abuf->addr;
25751   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
25752
25753 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
25754 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
25755 frvbf_media_acc_not_aligned (current_cpu);
25756 } else {
25757 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
25758 frvbf_media_register_not_aligned (current_cpu);
25759 } else {
25760 {
25761   HI tmp_argihi;
25762   HI tmp_argilo;
25763   HI tmp_argjhi;
25764   HI tmp_argjlo;
25765 {
25766   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25767   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25768   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25769   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25770 }
25771 {
25772   DI tmp_tmp;
25773   tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (2))), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo)));
25774 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25775 {
25776   {
25777     DI opval = MAKEDI (127, 0xffffffff);
25778     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
25779     written |= (1 << 19);
25780     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25781   }
25782 frvbf_media_overflow (current_cpu, 2);
25783 }
25784 } else {
25785 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25786 {
25787   {
25788     DI opval = MAKEDI (0xffffff80, 0);
25789     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
25790     written |= (1 << 19);
25791     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25792   }
25793 frvbf_media_overflow (current_cpu, 2);
25794 }
25795 } else {
25796   {
25797     DI opval = tmp_tmp;
25798     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
25799     written |= (1 << 19);
25800     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25801   }
25802 }
25803 }
25804 }
25805 {
25806   DI tmp_tmp;
25807   tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (3))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi)));
25808 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25809 {
25810   {
25811     DI opval = MAKEDI (127, 0xffffffff);
25812     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
25813     written |= (1 << 20);
25814     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25815   }
25816 frvbf_media_overflow (current_cpu, 1);
25817 }
25818 } else {
25819 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25820 {
25821   {
25822     DI opval = MAKEDI (0xffffff80, 0);
25823     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
25824     written |= (1 << 20);
25825     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25826   }
25827 frvbf_media_overflow (current_cpu, 1);
25828 }
25829 } else {
25830   {
25831     DI opval = tmp_tmp;
25832     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
25833     written |= (1 << 20);
25834     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25835   }
25836 }
25837 }
25838 }
25839 {
25840   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25841   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25842   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25843   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25844 }
25845 {
25846   DI tmp_tmp;
25847   tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Sk)), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo)));
25848 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25849 {
25850   {
25851     DI opval = MAKEDI (127, 0xffffffff);
25852     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25853     written |= (1 << 17);
25854     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25855   }
25856 frvbf_media_overflow (current_cpu, 8);
25857 }
25858 } else {
25859 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25860 {
25861   {
25862     DI opval = MAKEDI (0xffffff80, 0);
25863     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25864     written |= (1 << 17);
25865     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25866   }
25867 frvbf_media_overflow (current_cpu, 8);
25868 }
25869 } else {
25870   {
25871     DI opval = tmp_tmp;
25872     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25873     written |= (1 << 17);
25874     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25875   }
25876 }
25877 }
25878 }
25879 {
25880   DI tmp_tmp;
25881   tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (1))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi)));
25882 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25883 {
25884   {
25885     DI opval = MAKEDI (127, 0xffffffff);
25886     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
25887     written |= (1 << 18);
25888     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25889   }
25890 frvbf_media_overflow (current_cpu, 4);
25891 }
25892 } else {
25893 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25894 {
25895   {
25896     DI opval = MAKEDI (0xffffff80, 0);
25897     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
25898     written |= (1 << 18);
25899     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25900   }
25901 frvbf_media_overflow (current_cpu, 4);
25902 }
25903 } else {
25904   {
25905     DI opval = tmp_tmp;
25906     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
25907     written |= (1 << 18);
25908     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25909   }
25910 }
25911 }
25912 }
25913 }
25914 }
25915 }
25916 }
25917
25918   abuf->written = written;
25919   return vpc;
25920 #undef FLD
25921 }
25922
25923 /* mqmacxhs: mqmacxhs$pack $FRintieven,$FRintjeven,$ACC40Sk */
25924
25925 static SEM_PC
25926 SEM_FN_NAME (frvbf,mqmacxhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
25927 {
25928 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
25929   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
25930   int UNUSED written = 0;
25931   IADDR UNUSED pc = abuf->addr;
25932   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
25933
25934 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
25935 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
25936 frvbf_media_acc_not_aligned (current_cpu);
25937 } else {
25938 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
25939 frvbf_media_register_not_aligned (current_cpu);
25940 } else {
25941 {
25942   HI tmp_argihi;
25943   HI tmp_argilo;
25944   HI tmp_argjhi;
25945   HI tmp_argjlo;
25946 {
25947   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25948   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25949   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25950   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25951 }
25952 {
25953   DI tmp_tmp;
25954   tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Sk)), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo)));
25955 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25956 {
25957   {
25958     DI opval = MAKEDI (127, 0xffffffff);
25959     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25960     written |= (1 << 17);
25961     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25962   }
25963 frvbf_media_overflow (current_cpu, 8);
25964 }
25965 } else {
25966 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25967 {
25968   {
25969     DI opval = MAKEDI (0xffffff80, 0);
25970     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25971     written |= (1 << 17);
25972     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25973   }
25974 frvbf_media_overflow (current_cpu, 8);
25975 }
25976 } else {
25977   {
25978     DI opval = tmp_tmp;
25979     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25980     written |= (1 << 17);
25981     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25982   }
25983 }
25984 }
25985 }
25986 {
25987   DI tmp_tmp;
25988   tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (1))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi)));
25989 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25990 {
25991   {
25992     DI opval = MAKEDI (127, 0xffffffff);
25993     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
25994     written |= (1 << 18);
25995     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25996   }
25997 frvbf_media_overflow (current_cpu, 4);
25998 }
25999 } else {
26000 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
26001 {
26002   {
26003     DI opval = MAKEDI (0xffffff80, 0);
26004     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
26005     written |= (1 << 18);
26006     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26007   }
26008 frvbf_media_overflow (current_cpu, 4);
26009 }
26010 } else {
26011   {
26012     DI opval = tmp_tmp;
26013     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
26014     written |= (1 << 18);
26015     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26016   }
26017 }
26018 }
26019 }
26020 {
26021   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26022   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26023   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26024   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26025 }
26026 {
26027   DI tmp_tmp;
26028   tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (2))), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo)));
26029 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
26030 {
26031   {
26032     DI opval = MAKEDI (127, 0xffffffff);
26033     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
26034     written |= (1 << 19);
26035     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26036   }
26037 frvbf_media_overflow (current_cpu, 2);
26038 }
26039 } else {
26040 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
26041 {
26042   {
26043     DI opval = MAKEDI (0xffffff80, 0);
26044     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
26045     written |= (1 << 19);
26046     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26047   }
26048 frvbf_media_overflow (current_cpu, 2);
26049 }
26050 } else {
26051   {
26052     DI opval = tmp_tmp;
26053     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
26054     written |= (1 << 19);
26055     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26056   }
26057 }
26058 }
26059 }
26060 {
26061   DI tmp_tmp;
26062   tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (3))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi)));
26063 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
26064 {
26065   {
26066     DI opval = MAKEDI (127, 0xffffffff);
26067     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
26068     written |= (1 << 20);
26069     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26070   }
26071 frvbf_media_overflow (current_cpu, 1);
26072 }
26073 } else {
26074 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
26075 {
26076   {
26077     DI opval = MAKEDI (0xffffff80, 0);
26078     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
26079     written |= (1 << 20);
26080     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26081   }
26082 frvbf_media_overflow (current_cpu, 1);
26083 }
26084 } else {
26085   {
26086     DI opval = tmp_tmp;
26087     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
26088     written |= (1 << 20);
26089     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26090   }
26091 }
26092 }
26093 }
26094 }
26095 }
26096 }
26097 }
26098
26099   abuf->written = written;
26100   return vpc;
26101 #undef FLD
26102 }
26103
26104 /* mcpxrs: mcpxrs$pack $FRinti,$FRintj,$ACC40Sk */
26105
26106 static SEM_PC
26107 SEM_FN_NAME (frvbf,mcpxrs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26108 {
26109 #define FLD(f) abuf->fields.sfmt_cmmachs.f
26110   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26111   int UNUSED written = 0;
26112   IADDR UNUSED pc = abuf->addr;
26113   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26114
26115 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
26116 {
26117   HI tmp_argihi;
26118   HI tmp_argilo;
26119   HI tmp_argjhi;
26120   HI tmp_argjlo;
26121 {
26122   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26123   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26124   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26125   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26126 }
26127 {
26128   DI tmp_tmp1;
26129   DI tmp_tmp2;
26130   tmp_tmp1 = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
26131   tmp_tmp2 = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
26132   tmp_tmp1 = SUBDI (tmp_tmp1, tmp_tmp2);
26133 if (GTDI (tmp_tmp1, MAKEDI (127, 0xffffffff))) {
26134 {
26135   {
26136     DI opval = MAKEDI (127, 0xffffffff);
26137     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26138     written |= (1 << 9);
26139     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26140   }
26141 frvbf_media_overflow (current_cpu, 8);
26142 }
26143 } else {
26144 if (LTDI (tmp_tmp1, MAKEDI (0xffffff80, 0))) {
26145 {
26146   {
26147     DI opval = MAKEDI (0xffffff80, 0);
26148     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26149     written |= (1 << 9);
26150     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26151   }
26152 frvbf_media_overflow (current_cpu, 8);
26153 }
26154 } else {
26155   {
26156     DI opval = tmp_tmp1;
26157     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26158     written |= (1 << 9);
26159     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26160   }
26161 }
26162 }
26163 }
26164 }
26165 }
26166
26167   abuf->written = written;
26168   return vpc;
26169 #undef FLD
26170 }
26171
26172 /* mcpxru: mcpxru$pack $FRinti,$FRintj,$ACC40Sk */
26173
26174 static SEM_PC
26175 SEM_FN_NAME (frvbf,mcpxru) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26176 {
26177 #define FLD(f) abuf->fields.sfmt_cmmachs.f
26178   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26179   int UNUSED written = 0;
26180   IADDR UNUSED pc = abuf->addr;
26181   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26182
26183 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
26184 {
26185   UHI tmp_argihi;
26186   UHI tmp_argilo;
26187   UHI tmp_argjhi;
26188   UHI tmp_argjlo;
26189 {
26190   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26191   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26192   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26193   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26194 }
26195 {
26196   DI tmp_tmp1;
26197   DI tmp_tmp2;
26198   tmp_tmp1 = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
26199   tmp_tmp2 = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
26200   tmp_tmp1 = SUBDI (tmp_tmp1, tmp_tmp2);
26201 if (GTDI (tmp_tmp1, MAKEDI (255, 0xffffffff))) {
26202 {
26203   {
26204     DI opval = MAKEDI (255, 0xffffffff);
26205     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26206     written |= (1 << 9);
26207     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26208   }
26209 frvbf_media_overflow (current_cpu, 8);
26210 }
26211 } else {
26212 if (LTDI (tmp_tmp1, MAKEDI (0, 0))) {
26213 {
26214   {
26215     DI opval = MAKEDI (0, 0);
26216     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26217     written |= (1 << 9);
26218     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26219   }
26220 frvbf_media_overflow (current_cpu, 8);
26221 }
26222 } else {
26223   {
26224     DI opval = tmp_tmp1;
26225     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26226     written |= (1 << 9);
26227     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26228   }
26229 }
26230 }
26231 }
26232 }
26233 }
26234
26235   abuf->written = written;
26236   return vpc;
26237 #undef FLD
26238 }
26239
26240 /* mcpxis: mcpxis$pack $FRinti,$FRintj,$ACC40Sk */
26241
26242 static SEM_PC
26243 SEM_FN_NAME (frvbf,mcpxis) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26244 {
26245 #define FLD(f) abuf->fields.sfmt_cmmachs.f
26246   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26247   int UNUSED written = 0;
26248   IADDR UNUSED pc = abuf->addr;
26249   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26250
26251 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
26252 {
26253   HI tmp_argihi;
26254   HI tmp_argilo;
26255   HI tmp_argjhi;
26256   HI tmp_argjlo;
26257 {
26258   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26259   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26260   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26261   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26262 }
26263 {
26264   DI tmp_tmp1;
26265   DI tmp_tmp2;
26266   tmp_tmp1 = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo));
26267   tmp_tmp2 = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi));
26268   tmp_tmp1 = ADDDI (tmp_tmp1, tmp_tmp2);
26269 if (GTDI (tmp_tmp1, MAKEDI (127, 0xffffffff))) {
26270 {
26271   {
26272     DI opval = MAKEDI (127, 0xffffffff);
26273     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26274     written |= (1 << 9);
26275     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26276   }
26277 frvbf_media_overflow (current_cpu, 8);
26278 }
26279 } else {
26280 if (LTDI (tmp_tmp1, MAKEDI (0xffffff80, 0))) {
26281 {
26282   {
26283     DI opval = MAKEDI (0xffffff80, 0);
26284     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26285     written |= (1 << 9);
26286     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26287   }
26288 frvbf_media_overflow (current_cpu, 8);
26289 }
26290 } else {
26291   {
26292     DI opval = tmp_tmp1;
26293     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26294     written |= (1 << 9);
26295     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26296   }
26297 }
26298 }
26299 }
26300 }
26301 }
26302
26303   abuf->written = written;
26304   return vpc;
26305 #undef FLD
26306 }
26307
26308 /* mcpxiu: mcpxiu$pack $FRinti,$FRintj,$ACC40Sk */
26309
26310 static SEM_PC
26311 SEM_FN_NAME (frvbf,mcpxiu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26312 {
26313 #define FLD(f) abuf->fields.sfmt_cmmachs.f
26314   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26315   int UNUSED written = 0;
26316   IADDR UNUSED pc = abuf->addr;
26317   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26318
26319 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
26320 {
26321   UHI tmp_argihi;
26322   UHI tmp_argilo;
26323   UHI tmp_argjhi;
26324   UHI tmp_argjlo;
26325 {
26326   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26327   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26328   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26329   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26330 }
26331 {
26332   DI tmp_tmp1;
26333   DI tmp_tmp2;
26334   tmp_tmp1 = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjlo));
26335   tmp_tmp2 = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjhi));
26336   tmp_tmp1 = ADDDI (tmp_tmp1, tmp_tmp2);
26337 if (GTDI (tmp_tmp1, MAKEDI (255, 0xffffffff))) {
26338 {
26339   {
26340     DI opval = MAKEDI (255, 0xffffffff);
26341     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26342     written |= (1 << 9);
26343     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26344   }
26345 frvbf_media_overflow (current_cpu, 8);
26346 }
26347 } else {
26348 if (LTDI (tmp_tmp1, MAKEDI (0, 0))) {
26349 {
26350   {
26351     DI opval = MAKEDI (0, 0);
26352     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26353     written |= (1 << 9);
26354     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26355   }
26356 frvbf_media_overflow (current_cpu, 8);
26357 }
26358 } else {
26359   {
26360     DI opval = tmp_tmp1;
26361     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26362     written |= (1 << 9);
26363     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26364   }
26365 }
26366 }
26367 }
26368 }
26369 }
26370
26371   abuf->written = written;
26372   return vpc;
26373 #undef FLD
26374 }
26375
26376 /* cmcpxrs: cmcpxrs$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
26377
26378 static SEM_PC
26379 SEM_FN_NAME (frvbf,cmcpxrs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26380 {
26381 #define FLD(f) abuf->fields.sfmt_cmmachs.f
26382   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26383   int UNUSED written = 0;
26384   IADDR UNUSED pc = abuf->addr;
26385   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26386
26387 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
26388 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
26389 {
26390   HI tmp_argihi;
26391   HI tmp_argilo;
26392   HI tmp_argjhi;
26393   HI tmp_argjlo;
26394 {
26395   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26396   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26397   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26398   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26399 }
26400 {
26401   DI tmp_tmp1;
26402   DI tmp_tmp2;
26403   tmp_tmp1 = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
26404   tmp_tmp2 = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
26405   tmp_tmp1 = SUBDI (tmp_tmp1, tmp_tmp2);
26406 if (GTDI (tmp_tmp1, MAKEDI (127, 0xffffffff))) {
26407 {
26408   {
26409     DI opval = MAKEDI (127, 0xffffffff);
26410     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26411     written |= (1 << 11);
26412     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26413   }
26414 frvbf_media_overflow (current_cpu, 8);
26415 }
26416 } else {
26417 if (LTDI (tmp_tmp1, MAKEDI (0xffffff80, 0))) {
26418 {
26419   {
26420     DI opval = MAKEDI (0xffffff80, 0);
26421     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26422     written |= (1 << 11);
26423     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26424   }
26425 frvbf_media_overflow (current_cpu, 8);
26426 }
26427 } else {
26428   {
26429     DI opval = tmp_tmp1;
26430     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26431     written |= (1 << 11);
26432     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26433   }
26434 }
26435 }
26436 }
26437 }
26438 }
26439 }
26440
26441   abuf->written = written;
26442   return vpc;
26443 #undef FLD
26444 }
26445
26446 /* cmcpxru: cmcpxru$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
26447
26448 static SEM_PC
26449 SEM_FN_NAME (frvbf,cmcpxru) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26450 {
26451 #define FLD(f) abuf->fields.sfmt_cmmachs.f
26452   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26453   int UNUSED written = 0;
26454   IADDR UNUSED pc = abuf->addr;
26455   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26456
26457 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
26458 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
26459 {
26460   UHI tmp_argihi;
26461   UHI tmp_argilo;
26462   UHI tmp_argjhi;
26463   UHI tmp_argjlo;
26464 {
26465   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26466   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26467   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26468   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26469 }
26470 {
26471   DI tmp_tmp1;
26472   DI tmp_tmp2;
26473   tmp_tmp1 = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
26474   tmp_tmp2 = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
26475   tmp_tmp1 = SUBDI (tmp_tmp1, tmp_tmp2);
26476 if (GTDI (tmp_tmp1, MAKEDI (255, 0xffffffff))) {
26477 {
26478   {
26479     DI opval = MAKEDI (255, 0xffffffff);
26480     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26481     written |= (1 << 11);
26482     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26483   }
26484 frvbf_media_overflow (current_cpu, 8);
26485 }
26486 } else {
26487 if (LTDI (tmp_tmp1, MAKEDI (0, 0))) {
26488 {
26489   {
26490     DI opval = MAKEDI (0, 0);
26491     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26492     written |= (1 << 11);
26493     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26494   }
26495 frvbf_media_overflow (current_cpu, 8);
26496 }
26497 } else {
26498   {
26499     DI opval = tmp_tmp1;
26500     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26501     written |= (1 << 11);
26502     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26503   }
26504 }
26505 }
26506 }
26507 }
26508 }
26509 }
26510
26511   abuf->written = written;
26512   return vpc;
26513 #undef FLD
26514 }
26515
26516 /* cmcpxis: cmcpxis$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
26517
26518 static SEM_PC
26519 SEM_FN_NAME (frvbf,cmcpxis) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26520 {
26521 #define FLD(f) abuf->fields.sfmt_cmmachs.f
26522   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26523   int UNUSED written = 0;
26524   IADDR UNUSED pc = abuf->addr;
26525   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26526
26527 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
26528 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
26529 {
26530   HI tmp_argihi;
26531   HI tmp_argilo;
26532   HI tmp_argjhi;
26533   HI tmp_argjlo;
26534 {
26535   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26536   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26537   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26538   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26539 }
26540 {
26541   DI tmp_tmp1;
26542   DI tmp_tmp2;
26543   tmp_tmp1 = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo));
26544   tmp_tmp2 = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi));
26545   tmp_tmp1 = ADDDI (tmp_tmp1, tmp_tmp2);
26546 if (GTDI (tmp_tmp1, MAKEDI (127, 0xffffffff))) {
26547 {
26548   {
26549     DI opval = MAKEDI (127, 0xffffffff);
26550     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26551     written |= (1 << 11);
26552     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26553   }
26554 frvbf_media_overflow (current_cpu, 8);
26555 }
26556 } else {
26557 if (LTDI (tmp_tmp1, MAKEDI (0xffffff80, 0))) {
26558 {
26559   {
26560     DI opval = MAKEDI (0xffffff80, 0);
26561     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26562     written |= (1 << 11);
26563     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26564   }
26565 frvbf_media_overflow (current_cpu, 8);
26566 }
26567 } else {
26568   {
26569     DI opval = tmp_tmp1;
26570     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26571     written |= (1 << 11);
26572     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26573   }
26574 }
26575 }
26576 }
26577 }
26578 }
26579 }
26580
26581   abuf->written = written;
26582   return vpc;
26583 #undef FLD
26584 }
26585
26586 /* cmcpxiu: cmcpxiu$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
26587
26588 static SEM_PC
26589 SEM_FN_NAME (frvbf,cmcpxiu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26590 {
26591 #define FLD(f) abuf->fields.sfmt_cmmachs.f
26592   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26593   int UNUSED written = 0;
26594   IADDR UNUSED pc = abuf->addr;
26595   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26596
26597 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
26598 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
26599 {
26600   UHI tmp_argihi;
26601   UHI tmp_argilo;
26602   UHI tmp_argjhi;
26603   UHI tmp_argjlo;
26604 {
26605   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26606   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26607   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26608   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26609 }
26610 {
26611   DI tmp_tmp1;
26612   DI tmp_tmp2;
26613   tmp_tmp1 = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjlo));
26614   tmp_tmp2 = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjhi));
26615   tmp_tmp1 = ADDDI (tmp_tmp1, tmp_tmp2);
26616 if (GTDI (tmp_tmp1, MAKEDI (255, 0xffffffff))) {
26617 {
26618   {
26619     DI opval = MAKEDI (255, 0xffffffff);
26620     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26621     written |= (1 << 11);
26622     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26623   }
26624 frvbf_media_overflow (current_cpu, 8);
26625 }
26626 } else {
26627 if (LTDI (tmp_tmp1, MAKEDI (0, 0))) {
26628 {
26629   {
26630     DI opval = MAKEDI (0, 0);
26631     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26632     written |= (1 << 11);
26633     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26634   }
26635 frvbf_media_overflow (current_cpu, 8);
26636 }
26637 } else {
26638   {
26639     DI opval = tmp_tmp1;
26640     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26641     written |= (1 << 11);
26642     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26643   }
26644 }
26645 }
26646 }
26647 }
26648 }
26649 }
26650
26651   abuf->written = written;
26652   return vpc;
26653 #undef FLD
26654 }
26655
26656 /* mqcpxrs: mqcpxrs$pack $FRintieven,$FRintjeven,$ACC40Sk */
26657
26658 static SEM_PC
26659 SEM_FN_NAME (frvbf,mqcpxrs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26660 {
26661 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
26662   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26663   int UNUSED written = 0;
26664   IADDR UNUSED pc = abuf->addr;
26665   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26666
26667 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
26668 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
26669 frvbf_media_acc_not_aligned (current_cpu);
26670 } else {
26671 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
26672 frvbf_media_register_not_aligned (current_cpu);
26673 } else {
26674 {
26675   HI tmp_argihi;
26676   HI tmp_argilo;
26677   HI tmp_argjhi;
26678   HI tmp_argjlo;
26679 {
26680   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26681   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26682   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26683   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26684 }
26685 {
26686   DI tmp_tmp1;
26687   DI tmp_tmp2;
26688   tmp_tmp1 = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
26689   tmp_tmp2 = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
26690   tmp_tmp1 = SUBDI (tmp_tmp1, tmp_tmp2);
26691 if (GTDI (tmp_tmp1, MAKEDI (127, 0xffffffff))) {
26692 {
26693   {
26694     DI opval = MAKEDI (127, 0xffffffff);
26695     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26696     written |= (1 << 13);
26697     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26698   }
26699 frvbf_media_overflow (current_cpu, 8);
26700 }
26701 } else {
26702 if (LTDI (tmp_tmp1, MAKEDI (0xffffff80, 0))) {
26703 {
26704   {
26705     DI opval = MAKEDI (0xffffff80, 0);
26706     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26707     written |= (1 << 13);
26708     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26709   }
26710 frvbf_media_overflow (current_cpu, 8);
26711 }
26712 } else {
26713   {
26714     DI opval = tmp_tmp1;
26715     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26716     written |= (1 << 13);
26717     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26718   }
26719 }
26720 }
26721 }
26722 {
26723   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26724   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26725   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26726   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26727 }
26728 {
26729   DI tmp_tmp1;
26730   DI tmp_tmp2;
26731   tmp_tmp1 = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
26732   tmp_tmp2 = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
26733   tmp_tmp1 = SUBDI (tmp_tmp1, tmp_tmp2);
26734 if (GTDI (tmp_tmp1, MAKEDI (127, 0xffffffff))) {
26735 {
26736   {
26737     DI opval = MAKEDI (127, 0xffffffff);
26738     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
26739     written |= (1 << 14);
26740     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26741   }
26742 frvbf_media_overflow (current_cpu, 4);
26743 }
26744 } else {
26745 if (LTDI (tmp_tmp1, MAKEDI (0xffffff80, 0))) {
26746 {
26747   {
26748     DI opval = MAKEDI (0xffffff80, 0);
26749     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
26750     written |= (1 << 14);
26751     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26752   }
26753 frvbf_media_overflow (current_cpu, 4);
26754 }
26755 } else {
26756   {
26757     DI opval = tmp_tmp1;
26758     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
26759     written |= (1 << 14);
26760     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26761   }
26762 }
26763 }
26764 }
26765 }
26766 }
26767 }
26768 }
26769
26770   abuf->written = written;
26771   return vpc;
26772 #undef FLD
26773 }
26774
26775 /* mqcpxru: mqcpxru$pack $FRintieven,$FRintjeven,$ACC40Sk */
26776
26777 static SEM_PC
26778 SEM_FN_NAME (frvbf,mqcpxru) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26779 {
26780 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
26781   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26782   int UNUSED written = 0;
26783   IADDR UNUSED pc = abuf->addr;
26784   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26785
26786 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
26787 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
26788 frvbf_media_acc_not_aligned (current_cpu);
26789 } else {
26790 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
26791 frvbf_media_register_not_aligned (current_cpu);
26792 } else {
26793 {
26794   UHI tmp_argihi;
26795   UHI tmp_argilo;
26796   UHI tmp_argjhi;
26797   UHI tmp_argjlo;
26798 {
26799   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26800   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26801   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26802   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26803 }
26804 {
26805   DI tmp_tmp1;
26806   DI tmp_tmp2;
26807   tmp_tmp1 = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
26808   tmp_tmp2 = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
26809   tmp_tmp1 = SUBDI (tmp_tmp1, tmp_tmp2);
26810 if (GTDI (tmp_tmp1, MAKEDI (255, 0xffffffff))) {
26811 {
26812   {
26813     DI opval = MAKEDI (255, 0xffffffff);
26814     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26815     written |= (1 << 13);
26816     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26817   }
26818 frvbf_media_overflow (current_cpu, 8);
26819 }
26820 } else {
26821 if (LTDI (tmp_tmp1, MAKEDI (0, 0))) {
26822 {
26823   {
26824     DI opval = MAKEDI (0, 0);
26825     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26826     written |= (1 << 13);
26827     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26828   }
26829 frvbf_media_overflow (current_cpu, 8);
26830 }
26831 } else {
26832   {
26833     DI opval = tmp_tmp1;
26834     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26835     written |= (1 << 13);
26836     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26837   }
26838 }
26839 }
26840 }
26841 {
26842   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26843   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26844   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26845   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26846 }
26847 {
26848   DI tmp_tmp1;
26849   DI tmp_tmp2;
26850   tmp_tmp1 = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
26851   tmp_tmp2 = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
26852   tmp_tmp1 = SUBDI (tmp_tmp1, tmp_tmp2);
26853 if (GTDI (tmp_tmp1, MAKEDI (255, 0xffffffff))) {
26854 {
26855   {
26856     DI opval = MAKEDI (255, 0xffffffff);
26857     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
26858     written |= (1 << 14);
26859     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26860   }
26861 frvbf_media_overflow (current_cpu, 4);
26862 }
26863 } else {
26864 if (LTDI (tmp_tmp1, MAKEDI (0, 0))) {
26865 {
26866   {
26867     DI opval = MAKEDI (0, 0);
26868     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
26869     written |= (1 << 14);
26870     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26871   }
26872 frvbf_media_overflow (current_cpu, 4);
26873 }
26874 } else {
26875   {
26876     DI opval = tmp_tmp1;
26877     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
26878     written |= (1 << 14);
26879     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26880   }
26881 }
26882 }
26883 }
26884 }
26885 }
26886 }
26887 }
26888
26889   abuf->written = written;
26890   return vpc;
26891 #undef FLD
26892 }
26893
26894 /* mqcpxis: mqcpxis$pack $FRintieven,$FRintjeven,$ACC40Sk */
26895
26896 static SEM_PC
26897 SEM_FN_NAME (frvbf,mqcpxis) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26898 {
26899 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
26900   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26901   int UNUSED written = 0;
26902   IADDR UNUSED pc = abuf->addr;
26903   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26904
26905 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
26906 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
26907 frvbf_media_acc_not_aligned (current_cpu);
26908 } else {
26909 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
26910 frvbf_media_register_not_aligned (current_cpu);
26911 } else {
26912 {
26913   HI tmp_argihi;
26914   HI tmp_argilo;
26915   HI tmp_argjhi;
26916   HI tmp_argjlo;
26917 {
26918   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26919   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26920   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26921   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26922 }
26923 {
26924   DI tmp_tmp1;
26925   DI tmp_tmp2;
26926   tmp_tmp1 = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo));
26927   tmp_tmp2 = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi));
26928   tmp_tmp1 = ADDDI (tmp_tmp1, tmp_tmp2);
26929 if (GTDI (tmp_tmp1, MAKEDI (127, 0xffffffff))) {
26930 {
26931   {
26932     DI opval = MAKEDI (127, 0xffffffff);
26933     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26934     written |= (1 << 13);
26935     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26936   }
26937 frvbf_media_overflow (current_cpu, 8);
26938 }
26939 } else {
26940 if (LTDI (tmp_tmp1, MAKEDI (0xffffff80, 0))) {
26941 {
26942   {
26943     DI opval = MAKEDI (0xffffff80, 0);
26944     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26945     written |= (1 << 13);
26946     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26947   }
26948 frvbf_media_overflow (current_cpu, 8);
26949 }
26950 } else {
26951   {
26952     DI opval = tmp_tmp1;
26953     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26954     written |= (1 << 13);
26955     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26956   }
26957 }
26958 }
26959 }
26960 {
26961   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26962   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26963   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26964   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26965 }
26966 {
26967   DI tmp_tmp1;
26968   DI tmp_tmp2;
26969   tmp_tmp1 = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo));
26970   tmp_tmp2 = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi));
26971   tmp_tmp1 = ADDDI (tmp_tmp1, tmp_tmp2);
26972 if (GTDI (tmp_tmp1, MAKEDI (127, 0xffffffff))) {
26973 {
26974   {
26975     DI opval = MAKEDI (127, 0xffffffff);
26976     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
26977     written |= (1 << 14);
26978     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26979   }
26980 frvbf_media_overflow (current_cpu, 4);
26981 }
26982 } else {
26983 if (LTDI (tmp_tmp1, MAKEDI (0xffffff80, 0))) {
26984 {
26985   {
26986     DI opval = MAKEDI (0xffffff80, 0);
26987     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
26988     written |= (1 << 14);
26989     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26990   }
26991 frvbf_media_overflow (current_cpu, 4);
26992 }
26993 } else {
26994   {
26995     DI opval = tmp_tmp1;
26996     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
26997     written |= (1 << 14);
26998     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26999   }
27000 }
27001 }
27002 }
27003 }
27004 }
27005 }
27006 }
27007
27008   abuf->written = written;
27009   return vpc;
27010 #undef FLD
27011 }
27012
27013 /* mqcpxiu: mqcpxiu$pack $FRintieven,$FRintjeven,$ACC40Sk */
27014
27015 static SEM_PC
27016 SEM_FN_NAME (frvbf,mqcpxiu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27017 {
27018 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
27019   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27020   int UNUSED written = 0;
27021   IADDR UNUSED pc = abuf->addr;
27022   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27023
27024 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
27025 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
27026 frvbf_media_acc_not_aligned (current_cpu);
27027 } else {
27028 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
27029 frvbf_media_register_not_aligned (current_cpu);
27030 } else {
27031 {
27032   UHI tmp_argihi;
27033   UHI tmp_argilo;
27034   UHI tmp_argjhi;
27035   UHI tmp_argjlo;
27036 {
27037   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
27038   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
27039   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
27040   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
27041 }
27042 {
27043   DI tmp_tmp1;
27044   DI tmp_tmp2;
27045   tmp_tmp1 = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjlo));
27046   tmp_tmp2 = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjhi));
27047   tmp_tmp1 = ADDDI (tmp_tmp1, tmp_tmp2);
27048 if (GTDI (tmp_tmp1, MAKEDI (255, 0xffffffff))) {
27049 {
27050   {
27051     DI opval = MAKEDI (255, 0xffffffff);
27052     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
27053     written |= (1 << 13);
27054     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
27055   }
27056 frvbf_media_overflow (current_cpu, 8);
27057 }
27058 } else {
27059 if (LTDI (tmp_tmp1, MAKEDI (0, 0))) {
27060 {
27061   {
27062     DI opval = MAKEDI (0, 0);
27063     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
27064     written |= (1 << 13);
27065     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
27066   }
27067 frvbf_media_overflow (current_cpu, 8);
27068 }
27069 } else {
27070   {
27071     DI opval = tmp_tmp1;
27072     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
27073     written |= (1 << 13);
27074     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
27075   }
27076 }
27077 }
27078 }
27079 {
27080   tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
27081   tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
27082   tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
27083   tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
27084 }
27085 {
27086   DI tmp_tmp1;
27087   DI tmp_tmp2;
27088   tmp_tmp1 = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjlo));
27089   tmp_tmp2 = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjhi));
27090   tmp_tmp1 = ADDDI (tmp_tmp1, tmp_tmp2);
27091 if (GTDI (tmp_tmp1, MAKEDI (255, 0xffffffff))) {
27092 {
27093   {
27094     DI opval = MAKEDI (255, 0xffffffff);
27095     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
27096     written |= (1 << 14);
27097     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
27098   }
27099 frvbf_media_overflow (current_cpu, 4);
27100 }
27101 } else {
27102 if (LTDI (tmp_tmp1, MAKEDI (0, 0))) {
27103 {
27104   {
27105     DI opval = MAKEDI (0, 0);
27106     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
27107     written |= (1 << 14);
27108     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
27109   }
27110 frvbf_media_overflow (current_cpu, 4);
27111 }
27112 } else {
27113   {
27114     DI opval = tmp_tmp1;
27115     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
27116     written |= (1 << 14);
27117     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
27118   }
27119 }
27120 }
27121 }
27122 }
27123 }
27124 }
27125 }
27126
27127   abuf->written = written;
27128   return vpc;
27129 #undef FLD
27130 }
27131
27132 /* mexpdhw: mexpdhw$pack $FRinti,$u6,$FRintk */
27133
27134 static SEM_PC
27135 SEM_FN_NAME (frvbf,mexpdhw) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27136 {
27137 #define FLD(f) abuf->fields.sfmt_cmexpdhw.f
27138   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27139   int UNUSED written = 0;
27140   IADDR UNUSED pc = abuf->addr;
27141   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27142
27143 {
27144   UHI tmp_tmp;
27145 if (ANDSI (FLD (f_u6), 1)) {
27146   tmp_tmp = GET_H_FR_LO (((FLD (f_FRi)) + (0)));
27147 } else {
27148   tmp_tmp = GET_H_FR_HI (((FLD (f_FRi)) + (0)));
27149 }
27150   {
27151     UHI opval = tmp_tmp;
27152     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
27153     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27154   }
27155   {
27156     UHI opval = tmp_tmp;
27157     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
27158     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27159   }
27160 }
27161
27162   return vpc;
27163 #undef FLD
27164 }
27165
27166 /* cmexpdhw: cmexpdhw$pack $FRinti,$u6,$FRintk,$CCi,$cond */
27167
27168 static SEM_PC
27169 SEM_FN_NAME (frvbf,cmexpdhw) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27170 {
27171 #define FLD(f) abuf->fields.sfmt_cmexpdhw.f
27172   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27173   int UNUSED written = 0;
27174   IADDR UNUSED pc = abuf->addr;
27175   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27176
27177 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
27178 {
27179   UHI tmp_tmp;
27180 if (ANDSI (FLD (f_u6), 1)) {
27181   tmp_tmp = GET_H_FR_LO (((FLD (f_FRi)) + (0)));
27182 } else {
27183   tmp_tmp = GET_H_FR_HI (((FLD (f_FRi)) + (0)));
27184 }
27185   {
27186     UHI opval = tmp_tmp;
27187     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
27188     written |= (1 << 7);
27189     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27190   }
27191   {
27192     UHI opval = tmp_tmp;
27193     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
27194     written |= (1 << 8);
27195     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27196   }
27197 }
27198 }
27199
27200   abuf->written = written;
27201   return vpc;
27202 #undef FLD
27203 }
27204
27205 /* mexpdhd: mexpdhd$pack $FRinti,$u6,$FRintkeven */
27206
27207 static SEM_PC
27208 SEM_FN_NAME (frvbf,mexpdhd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27209 {
27210 #define FLD(f) abuf->fields.sfmt_cmexpdhd.f
27211   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27212   int UNUSED written = 0;
27213   IADDR UNUSED pc = abuf->addr;
27214   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27215
27216 if (ANDSI (FLD (f_FRk), SUBSI (2, 1))) {
27217 frvbf_media_register_not_aligned (current_cpu);
27218 } else {
27219 {
27220   UHI tmp_tmp;
27221   {
27222     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27223     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27224     written |= (1 << 6);
27225     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27226   }
27227 if (ANDSI (FLD (f_u6), 1)) {
27228   tmp_tmp = GET_H_FR_LO (((FLD (f_FRi)) + (0)));
27229 } else {
27230   tmp_tmp = GET_H_FR_HI (((FLD (f_FRi)) + (0)));
27231 }
27232   {
27233     UHI opval = tmp_tmp;
27234     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
27235     written |= (1 << 7);
27236     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27237   }
27238   {
27239     UHI opval = tmp_tmp;
27240     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
27241     written |= (1 << 9);
27242     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27243   }
27244   {
27245     UHI opval = tmp_tmp;
27246     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
27247     written |= (1 << 8);
27248     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27249   }
27250   {
27251     UHI opval = tmp_tmp;
27252     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
27253     written |= (1 << 10);
27254     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27255   }
27256 }
27257 }
27258
27259   abuf->written = written;
27260   return vpc;
27261 #undef FLD
27262 }
27263
27264 /* cmexpdhd: cmexpdhd$pack $FRinti,$u6,$FRintkeven,$CCi,$cond */
27265
27266 static SEM_PC
27267 SEM_FN_NAME (frvbf,cmexpdhd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27268 {
27269 #define FLD(f) abuf->fields.sfmt_cmexpdhd.f
27270   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27271   int UNUSED written = 0;
27272   IADDR UNUSED pc = abuf->addr;
27273   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27274
27275 if (ANDSI (FLD (f_FRk), SUBSI (2, 1))) {
27276 frvbf_media_register_not_aligned (current_cpu);
27277 } else {
27278 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
27279 {
27280   UHI tmp_tmp;
27281   {
27282     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27283     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27284     written |= (1 << 8);
27285     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27286   }
27287 if (ANDSI (FLD (f_u6), 1)) {
27288   tmp_tmp = GET_H_FR_LO (((FLD (f_FRi)) + (0)));
27289 } else {
27290   tmp_tmp = GET_H_FR_HI (((FLD (f_FRi)) + (0)));
27291 }
27292   {
27293     UHI opval = tmp_tmp;
27294     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
27295     written |= (1 << 9);
27296     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27297   }
27298   {
27299     UHI opval = tmp_tmp;
27300     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
27301     written |= (1 << 11);
27302     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27303   }
27304   {
27305     UHI opval = tmp_tmp;
27306     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
27307     written |= (1 << 10);
27308     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27309   }
27310   {
27311     UHI opval = tmp_tmp;
27312     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
27313     written |= (1 << 12);
27314     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27315   }
27316 }
27317 }
27318 }
27319
27320   abuf->written = written;
27321   return vpc;
27322 #undef FLD
27323 }
27324
27325 /* mpackh: mpackh$pack $FRinti,$FRintj,$FRintk */
27326
27327 static SEM_PC
27328 SEM_FN_NAME (frvbf,mpackh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27329 {
27330 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
27331   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27332   int UNUSED written = 0;
27333   IADDR UNUSED pc = abuf->addr;
27334   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27335
27336 {
27337   {
27338     UHI opval = GET_H_FR_LO (((FLD (f_FRi)) + (0)));
27339     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
27340     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27341   }
27342   {
27343     UHI opval = GET_H_FR_LO (((FLD (f_FRj)) + (0)));
27344     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
27345     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27346   }
27347 }
27348
27349   return vpc;
27350 #undef FLD
27351 }
27352
27353 /* mdpackh: mdpackh$pack $FRintieven,$FRintjeven,$FRintkeven */
27354
27355 static SEM_PC
27356 SEM_FN_NAME (frvbf,mdpackh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27357 {
27358 #define FLD(f) abuf->fields.sfmt_mdpackh.f
27359   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27360   int UNUSED written = 0;
27361   IADDR UNUSED pc = abuf->addr;
27362   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27363
27364 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
27365 frvbf_media_register_not_aligned (current_cpu);
27366 } else {
27367 {
27368   {
27369     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRi)));
27370     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRi), opval);
27371     written |= (1 << 10);
27372     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27373   }
27374   {
27375     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRj)));
27376     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRj), opval);
27377     written |= (1 << 11);
27378     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27379   }
27380   {
27381     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27382     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27383     written |= (1 << 12);
27384     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27385   }
27386 {
27387   {
27388     UHI opval = GET_H_FR_LO (((FLD (f_FRi)) + (0)));
27389     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
27390     written |= (1 << 13);
27391     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27392   }
27393   {
27394     UHI opval = GET_H_FR_LO (((FLD (f_FRj)) + (0)));
27395     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
27396     written |= (1 << 15);
27397     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27398   }
27399 }
27400 {
27401   {
27402     UHI opval = GET_H_FR_LO (((FLD (f_FRi)) + (1)));
27403     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
27404     written |= (1 << 14);
27405     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27406   }
27407   {
27408     UHI opval = GET_H_FR_LO (((FLD (f_FRj)) + (1)));
27409     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
27410     written |= (1 << 16);
27411     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27412   }
27413 }
27414 }
27415 }
27416
27417   abuf->written = written;
27418   return vpc;
27419 #undef FLD
27420 }
27421
27422 /* munpackh: munpackh$pack $FRinti,$FRintkeven */
27423
27424 static SEM_PC
27425 SEM_FN_NAME (frvbf,munpackh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27426 {
27427 #define FLD(f) abuf->fields.sfmt_munpackh.f
27428   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27429   int UNUSED written = 0;
27430   IADDR UNUSED pc = abuf->addr;
27431   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27432
27433 if (ANDSI (FLD (f_FRk), SUBSI (2, 1))) {
27434 frvbf_media_register_not_aligned (current_cpu);
27435 } else {
27436 {
27437   {
27438     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRi)));
27439     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRi), opval);
27440     written |= (1 << 6);
27441     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27442   }
27443   {
27444     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27445     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27446     written |= (1 << 7);
27447     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27448   }
27449 {
27450   {
27451     UHI opval = GET_H_FR_HI (((FLD (f_FRi)) + (0)));
27452     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
27453     written |= (1 << 8);
27454     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27455   }
27456   {
27457     UHI opval = GET_H_FR_HI (((FLD (f_FRi)) + (0)));
27458     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
27459     written |= (1 << 10);
27460     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27461   }
27462   {
27463     UHI opval = GET_H_FR_LO (((FLD (f_FRi)) + (0)));
27464     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (ADDSI (0, 1))), opval);
27465     written |= (1 << 9);
27466     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27467   }
27468   {
27469     UHI opval = GET_H_FR_LO (((FLD (f_FRi)) + (0)));
27470     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (ADDSI (0, 1))), opval);
27471     written |= (1 << 11);
27472     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27473   }
27474 }
27475 }
27476 }
27477
27478   abuf->written = written;
27479   return vpc;
27480 #undef FLD
27481 }
27482
27483 /* mdunpackh: mdunpackh$pack $FRintieven,$FRintk */
27484
27485 static SEM_PC
27486 SEM_FN_NAME (frvbf,mdunpackh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27487 {
27488 #define FLD(f) abuf->fields.sfmt_mdunpackh.f
27489   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27490   int UNUSED written = 0;
27491   IADDR UNUSED pc = abuf->addr;
27492   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27493
27494 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (4, 1)))) {
27495 frvbf_media_register_not_aligned (current_cpu);
27496 } else {
27497 {
27498   {
27499     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRi)));
27500     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRi), opval);
27501     written |= (1 << 8);
27502     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27503   }
27504   {
27505     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27506     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27507     written |= (1 << 9);
27508     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27509   }
27510 {
27511   {
27512     UHI opval = GET_H_FR_HI (((FLD (f_FRi)) + (0)));
27513     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
27514     written |= (1 << 10);
27515     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27516   }
27517   {
27518     UHI opval = GET_H_FR_HI (((FLD (f_FRi)) + (0)));
27519     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
27520     written |= (1 << 14);
27521     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27522   }
27523   {
27524     UHI opval = GET_H_FR_LO (((FLD (f_FRi)) + (0)));
27525     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (ADDSI (0, 1))), opval);
27526     written |= (1 << 12);
27527     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27528   }
27529   {
27530     UHI opval = GET_H_FR_LO (((FLD (f_FRi)) + (0)));
27531     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (ADDSI (0, 1))), opval);
27532     written |= (1 << 16);
27533     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27534   }
27535 }
27536 {
27537   {
27538     UHI opval = GET_H_FR_HI (((FLD (f_FRi)) + (1)));
27539     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (2)), opval);
27540     written |= (1 << 11);
27541     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27542   }
27543   {
27544     UHI opval = GET_H_FR_HI (((FLD (f_FRi)) + (1)));
27545     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (2)), opval);
27546     written |= (1 << 15);
27547     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27548   }
27549   {
27550     UHI opval = GET_H_FR_LO (((FLD (f_FRi)) + (1)));
27551     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (ADDSI (2, 1))), opval);
27552     written |= (1 << 13);
27553     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27554   }
27555   {
27556     UHI opval = GET_H_FR_LO (((FLD (f_FRi)) + (1)));
27557     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (ADDSI (2, 1))), opval);
27558     written |= (1 << 17);
27559     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27560   }
27561 }
27562 }
27563 }
27564
27565   abuf->written = written;
27566   return vpc;
27567 #undef FLD
27568 }
27569
27570 /* mbtoh: mbtoh$pack $FRintj,$FRintkeven */
27571
27572 static SEM_PC
27573 SEM_FN_NAME (frvbf,mbtoh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27574 {
27575 #define FLD(f) abuf->fields.sfmt_cmbtoh.f
27576   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27577   int UNUSED written = 0;
27578   IADDR UNUSED pc = abuf->addr;
27579   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27580
27581 {
27582   {
27583     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRj)));
27584     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRj), opval);
27585     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27586   }
27587   {
27588     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27589     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27590     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27591   }
27592 if (ANDSI (FLD (f_FRk), SUBSI (2, 1))) {
27593 frvbf_media_register_not_aligned (current_cpu);
27594 } else {
27595 {
27596   {
27597     UHI opval = GET_H_FR_3 (((FLD (f_FRj)) + (0)));
27598     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
27599     written |= (1 << 10);
27600     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27601   }
27602   {
27603     UHI opval = GET_H_FR_2 (((FLD (f_FRj)) + (0)));
27604     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
27605     written |= (1 << 12);
27606     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27607   }
27608   {
27609     UHI opval = GET_H_FR_1 (((FLD (f_FRj)) + (0)));
27610     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
27611     written |= (1 << 11);
27612     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27613   }
27614   {
27615     UHI opval = GET_H_FR_0 (((FLD (f_FRj)) + (0)));
27616     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
27617     written |= (1 << 13);
27618     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27619   }
27620 }
27621 }
27622 }
27623
27624   abuf->written = written;
27625   return vpc;
27626 #undef FLD
27627 }
27628
27629 /* cmbtoh: cmbtoh$pack $FRintj,$FRintkeven,$CCi,$cond */
27630
27631 static SEM_PC
27632 SEM_FN_NAME (frvbf,cmbtoh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27633 {
27634 #define FLD(f) abuf->fields.sfmt_cmbtoh.f
27635   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27636   int UNUSED written = 0;
27637   IADDR UNUSED pc = abuf->addr;
27638   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27639
27640 {
27641   {
27642     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRj)));
27643     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRj), opval);
27644     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27645   }
27646   {
27647     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27648     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27649     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27650   }
27651 if (ANDSI (FLD (f_FRk), SUBSI (2, 1))) {
27652 frvbf_media_register_not_aligned (current_cpu);
27653 } else {
27654 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
27655 {
27656   {
27657     UHI opval = GET_H_FR_3 (((FLD (f_FRj)) + (0)));
27658     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
27659     written |= (1 << 12);
27660     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27661   }
27662   {
27663     UHI opval = GET_H_FR_2 (((FLD (f_FRj)) + (0)));
27664     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
27665     written |= (1 << 14);
27666     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27667   }
27668   {
27669     UHI opval = GET_H_FR_1 (((FLD (f_FRj)) + (0)));
27670     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
27671     written |= (1 << 13);
27672     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27673   }
27674   {
27675     UHI opval = GET_H_FR_0 (((FLD (f_FRj)) + (0)));
27676     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
27677     written |= (1 << 15);
27678     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27679   }
27680 }
27681 }
27682 }
27683 }
27684
27685   abuf->written = written;
27686   return vpc;
27687 #undef FLD
27688 }
27689
27690 /* mhtob: mhtob$pack $FRintjeven,$FRintk */
27691
27692 static SEM_PC
27693 SEM_FN_NAME (frvbf,mhtob) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27694 {
27695 #define FLD(f) abuf->fields.sfmt_cmhtob.f
27696   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27697   int UNUSED written = 0;
27698   IADDR UNUSED pc = abuf->addr;
27699   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27700
27701 {
27702   {
27703     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRj)));
27704     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRj), opval);
27705     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27706   }
27707   {
27708     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27709     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27710     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27711   }
27712 if (ANDSI (FLD (f_FRj), SUBSI (2, 1))) {
27713 frvbf_media_register_not_aligned (current_cpu);
27714 } else {
27715 {
27716   {
27717     UHI opval = GET_H_FR_HI (((FLD (f_FRj)) + (0)));
27718     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_3_set, ((FLD (f_FRk)) + (0)), opval);
27719     written |= (1 << 13);
27720     TRACE_RESULT (current_cpu, abuf, "fr_3", 'x', opval);
27721   }
27722   {
27723     UHI opval = GET_H_FR_LO (((FLD (f_FRj)) + (0)));
27724     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_2_set, ((FLD (f_FRk)) + (0)), opval);
27725     written |= (1 << 12);
27726     TRACE_RESULT (current_cpu, abuf, "fr_2", 'x', opval);
27727   }
27728   {
27729     UHI opval = GET_H_FR_HI (((FLD (f_FRj)) + (1)));
27730     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_1_set, ((FLD (f_FRk)) + (0)), opval);
27731     written |= (1 << 11);
27732     TRACE_RESULT (current_cpu, abuf, "fr_1", 'x', opval);
27733   }
27734   {
27735     UHI opval = GET_H_FR_LO (((FLD (f_FRj)) + (1)));
27736     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_0_set, ((FLD (f_FRk)) + (0)), opval);
27737     written |= (1 << 10);
27738     TRACE_RESULT (current_cpu, abuf, "fr_0", 'x', opval);
27739   }
27740 }
27741 }
27742 }
27743
27744   abuf->written = written;
27745   return vpc;
27746 #undef FLD
27747 }
27748
27749 /* cmhtob: cmhtob$pack $FRintjeven,$FRintk,$CCi,$cond */
27750
27751 static SEM_PC
27752 SEM_FN_NAME (frvbf,cmhtob) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27753 {
27754 #define FLD(f) abuf->fields.sfmt_cmhtob.f
27755   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27756   int UNUSED written = 0;
27757   IADDR UNUSED pc = abuf->addr;
27758   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27759
27760 {
27761   {
27762     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRj)));
27763     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRj), opval);
27764     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27765   }
27766   {
27767     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27768     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27769     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27770   }
27771 if (ANDSI (FLD (f_FRj), SUBSI (2, 1))) {
27772 frvbf_media_register_not_aligned (current_cpu);
27773 } else {
27774 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
27775 {
27776   {
27777     UHI opval = GET_H_FR_HI (((FLD (f_FRj)) + (0)));
27778     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_3_set, ((FLD (f_FRk)) + (0)), opval);
27779     written |= (1 << 15);
27780     TRACE_RESULT (current_cpu, abuf, "fr_3", 'x', opval);
27781   }
27782   {
27783     UHI opval = GET_H_FR_LO (((FLD (f_FRj)) + (0)));
27784     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_2_set, ((FLD (f_FRk)) + (0)), opval);
27785     written |= (1 << 14);
27786     TRACE_RESULT (current_cpu, abuf, "fr_2", 'x', opval);
27787   }
27788   {
27789     UHI opval = GET_H_FR_HI (((FLD (f_FRj)) + (1)));
27790     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_1_set, ((FLD (f_FRk)) + (0)), opval);
27791     written |= (1 << 13);
27792     TRACE_RESULT (current_cpu, abuf, "fr_1", 'x', opval);
27793   }
27794   {
27795     UHI opval = GET_H_FR_LO (((FLD (f_FRj)) + (1)));
27796     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_0_set, ((FLD (f_FRk)) + (0)), opval);
27797     written |= (1 << 12);
27798     TRACE_RESULT (current_cpu, abuf, "fr_0", 'x', opval);
27799   }
27800 }
27801 }
27802 }
27803 }
27804
27805   abuf->written = written;
27806   return vpc;
27807 #undef FLD
27808 }
27809
27810 /* mbtohe: mbtohe$pack $FRintj,$FRintk */
27811
27812 static SEM_PC
27813 SEM_FN_NAME (frvbf,mbtohe) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27814 {
27815 #define FLD(f) abuf->fields.sfmt_cmbtohe.f
27816   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27817   int UNUSED written = 0;
27818   IADDR UNUSED pc = abuf->addr;
27819   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27820
27821 {
27822   {
27823     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRj)));
27824     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRj), opval);
27825     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27826   }
27827   {
27828     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27829     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27830     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27831   }
27832 if (ANDSI (FLD (f_FRk), SUBSI (4, 1))) {
27833 frvbf_media_register_not_aligned (current_cpu);
27834 } else {
27835 {
27836   {
27837     UHI opval = GET_H_FR_3 (((FLD (f_FRj)) + (0)));
27838     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
27839     written |= (1 << 10);
27840     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27841   }
27842   {
27843     UHI opval = GET_H_FR_3 (((FLD (f_FRj)) + (0)));
27844     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
27845     written |= (1 << 14);
27846     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27847   }
27848   {
27849     UHI opval = GET_H_FR_2 (((FLD (f_FRj)) + (0)));
27850     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
27851     written |= (1 << 11);
27852     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27853   }
27854   {
27855     UHI opval = GET_H_FR_2 (((FLD (f_FRj)) + (0)));
27856     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
27857     written |= (1 << 15);
27858     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27859   }
27860   {
27861     UHI opval = GET_H_FR_1 (((FLD (f_FRj)) + (0)));
27862     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (2)), opval);
27863     written |= (1 << 12);
27864     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27865   }
27866   {
27867     UHI opval = GET_H_FR_1 (((FLD (f_FRj)) + (0)));
27868     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (2)), opval);
27869     written |= (1 << 16);
27870     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27871   }
27872   {
27873     UHI opval = GET_H_FR_0 (((FLD (f_FRj)) + (0)));
27874     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (3)), opval);
27875     written |= (1 << 13);
27876     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27877   }
27878   {
27879     UHI opval = GET_H_FR_0 (((FLD (f_FRj)) + (0)));
27880     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (3)), opval);
27881     written |= (1 << 17);
27882     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27883   }
27884 }
27885 }
27886 }
27887
27888   abuf->written = written;
27889   return vpc;
27890 #undef FLD
27891 }
27892
27893 /* cmbtohe: cmbtohe$pack $FRintj,$FRintk,$CCi,$cond */
27894
27895 static SEM_PC
27896 SEM_FN_NAME (frvbf,cmbtohe) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27897 {
27898 #define FLD(f) abuf->fields.sfmt_cmbtohe.f
27899   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27900   int UNUSED written = 0;
27901   IADDR UNUSED pc = abuf->addr;
27902   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27903
27904 {
27905   {
27906     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRj)));
27907     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRj), opval);
27908     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27909   }
27910   {
27911     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27912     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27913     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27914   }
27915 if (ANDSI (FLD (f_FRk), SUBSI (4, 1))) {
27916 frvbf_media_register_not_aligned (current_cpu);
27917 } else {
27918 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
27919 {
27920   {
27921     UHI opval = GET_H_FR_3 (((FLD (f_FRj)) + (0)));
27922     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
27923     written |= (1 << 12);
27924     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27925   }
27926   {
27927     UHI opval = GET_H_FR_3 (((FLD (f_FRj)) + (0)));
27928     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
27929     written |= (1 << 16);
27930     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27931   }
27932   {
27933     UHI opval = GET_H_FR_2 (((FLD (f_FRj)) + (0)));
27934     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
27935     written |= (1 << 13);
27936     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27937   }
27938   {
27939     UHI opval = GET_H_FR_2 (((FLD (f_FRj)) + (0)));
27940     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
27941     written |= (1 << 17);
27942     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27943   }
27944   {
27945     UHI opval = GET_H_FR_1 (((FLD (f_FRj)) + (0)));
27946     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (2)), opval);
27947     written |= (1 << 14);
27948     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27949   }
27950   {
27951     UHI opval = GET_H_FR_1 (((FLD (f_FRj)) + (0)));
27952     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (2)), opval);
27953     written |= (1 << 18);
27954     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27955   }
27956   {
27957     UHI opval = GET_H_FR_0 (((FLD (f_FRj)) + (0)));
27958     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (3)), opval);
27959     written |= (1 << 15);
27960     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27961   }
27962   {
27963     UHI opval = GET_H_FR_0 (((FLD (f_FRj)) + (0)));
27964     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (3)), opval);
27965     written |= (1 << 19);
27966     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27967   }
27968 }
27969 }
27970 }
27971 }
27972
27973   abuf->written = written;
27974   return vpc;
27975 #undef FLD
27976 }
27977
27978 /* mnop: mnop$pack */
27979
27980 static SEM_PC
27981 SEM_FN_NAME (frvbf,mnop) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27982 {
27983 #define FLD(f) abuf->fields.fmt_empty.f
27984   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27985   int UNUSED written = 0;
27986   IADDR UNUSED pc = abuf->addr;
27987   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27988
27989 ((void) 0); /*nop*/
27990
27991   return vpc;
27992 #undef FLD
27993 }
27994
27995 /* mclracc-0: mclracc$pack $ACC40Sk,$A0 */
27996
27997 static SEM_PC
27998 SEM_FN_NAME (frvbf,mclracc_0) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27999 {
28000 #define FLD(f) abuf->fields.sfmt_mdasaccs.f
28001   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
28002   int UNUSED written = 0;
28003   IADDR UNUSED pc = abuf->addr;
28004   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
28005
28006 frvbf_clear_accumulators (current_cpu, FLD (f_ACC40Sk), 0);
28007
28008   return vpc;
28009 #undef FLD
28010 }
28011
28012 /* mclracc-1: mclracc$pack $ACC40Sk,$A1 */
28013
28014 static SEM_PC
28015 SEM_FN_NAME (frvbf,mclracc_1) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
28016 {
28017 #define FLD(f) abuf->fields.sfmt_mdasaccs.f
28018   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
28019   int UNUSED written = 0;
28020   IADDR UNUSED pc = abuf->addr;
28021   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
28022
28023 frvbf_clear_accumulators (current_cpu, FLD (f_ACC40Sk), 1);
28024
28025   return vpc;
28026 #undef FLD
28027 }
28028
28029 /* mrdacc: mrdacc$pack $ACC40Si,$FRintk */
28030
28031 static SEM_PC
28032 SEM_FN_NAME (frvbf,mrdacc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
28033 {
28034 #define FLD(f) abuf->fields.sfmt_mcuti.f
28035   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
28036   int UNUSED written = 0;
28037   IADDR UNUSED pc = abuf->addr;
28038   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
28039
28040   {
28041     SI opval = GET_H_ACC40S (FLD (f_ACC40Si));
28042     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
28043     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
28044   }
28045
28046   return vpc;
28047 #undef FLD
28048 }
28049
28050 /* mrdaccg: mrdaccg$pack $ACCGi,$FRintk */
28051
28052 static SEM_PC
28053 SEM_FN_NAME (frvbf,mrdaccg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
28054 {
28055 #define FLD(f) abuf->fields.sfmt_mrdaccg.f
28056   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
28057   int UNUSED written = 0;
28058   IADDR UNUSED pc = abuf->addr;
28059   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
28060
28061   {
28062     SI opval = GET_H_ACCG (FLD (f_ACCGi));
28063     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
28064     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
28065   }
28066
28067   return vpc;
28068 #undef FLD
28069 }
28070
28071 /* mwtacc: mwtacc$pack $FRinti,$ACC40Sk */
28072
28073 static SEM_PC
28074 SEM_FN_NAME (frvbf,mwtacc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
28075 {
28076 #define FLD(f) abuf->fields.sfmt_cmmachs.f
28077   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
28078   int UNUSED written = 0;
28079   IADDR UNUSED pc = abuf->addr;
28080   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
28081
28082   {
28083     DI opval = ORDI (ANDDI (GET_H_ACC40S (FLD (f_ACC40Sk)), MAKEDI (0xffffffff, 0)), GET_H_FR_INT (FLD (f_FRi)));
28084     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
28085     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
28086   }
28087
28088   return vpc;
28089 #undef FLD
28090 }
28091
28092 /* mwtaccg: mwtaccg$pack $FRinti,$ACCGk */
28093
28094 static SEM_PC
28095 SEM_FN_NAME (frvbf,mwtaccg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
28096 {
28097 #define FLD(f) abuf->fields.sfmt_mwtaccg.f
28098   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
28099   int UNUSED written = 0;
28100   IADDR UNUSED pc = abuf->addr;
28101   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
28102
28103 {
28104 frv_ref_SI (GET_H_ACCG (FLD (f_ACCGk)));
28105   {
28106     USI opval = GET_H_FR_INT (FLD (f_FRi));
28107     sim_queue_fn_si_write (current_cpu, frvbf_h_accg_set, FLD (f_ACCGk), opval);
28108     TRACE_RESULT (current_cpu, abuf, "accg", 'x', opval);
28109   }
28110 }
28111
28112   return vpc;
28113 #undef FLD
28114 }
28115
28116 /* mcop1: mcop1$pack $FRi,$FRj,$FRk */
28117
28118 static SEM_PC
28119 SEM_FN_NAME (frvbf,mcop1) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
28120 {
28121 #define FLD(f) abuf->fields.fmt_empty.f
28122   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
28123   int UNUSED written = 0;
28124   IADDR UNUSED pc = abuf->addr;
28125   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
28126
28127 frvbf_media_cop (current_cpu, 1);
28128
28129   return vpc;
28130 #undef FLD
28131 }
28132
28133 /* mcop2: mcop2$pack $FRi,$FRj,$FRk */
28134
28135 static SEM_PC
28136 SEM_FN_NAME (frvbf,mcop2) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
28137 {
28138 #define FLD(f) abuf->fields.fmt_empty.f
28139   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
28140   int UNUSED written = 0;
28141   IADDR UNUSED pc = abuf->addr;
28142   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
28143
28144 frvbf_media_cop (current_cpu, 2);
28145
28146   return vpc;
28147 #undef FLD
28148 }
28149
28150 /* fnop: fnop$pack */
28151
28152 static SEM_PC
28153 SEM_FN_NAME (frvbf,fnop) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
28154 {
28155 #define FLD(f) abuf->fields.fmt_empty.f
28156   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
28157   int UNUSED written = 0;
28158   IADDR UNUSED pc = abuf->addr;
28159   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
28160
28161 ((void) 0); /*nop*/
28162
28163   return vpc;
28164 #undef FLD
28165 }
28166
28167 /* Table of all semantic fns.  */
28168
28169 static const struct sem_fn_desc sem_fns[] = {
28170   { FRVBF_INSN_X_INVALID, SEM_FN_NAME (frvbf,x_invalid) },
28171   { FRVBF_INSN_X_AFTER, SEM_FN_NAME (frvbf,x_after) },
28172   { FRVBF_INSN_X_BEFORE, SEM_FN_NAME (frvbf,x_before) },
28173   { FRVBF_INSN_X_CTI_CHAIN, SEM_FN_NAME (frvbf,x_cti_chain) },
28174   { FRVBF_INSN_X_CHAIN, SEM_FN_NAME (frvbf,x_chain) },
28175   { FRVBF_INSN_X_BEGIN, SEM_FN_NAME (frvbf,x_begin) },
28176   { FRVBF_INSN_ADD, SEM_FN_NAME (frvbf,add) },
28177   { FRVBF_INSN_SUB, SEM_FN_NAME (frvbf,sub) },
28178   { FRVBF_INSN_AND, SEM_FN_NAME (frvbf,and) },
28179   { FRVBF_INSN_OR, SEM_FN_NAME (frvbf,or) },
28180   { FRVBF_INSN_XOR, SEM_FN_NAME (frvbf,xor) },
28181   { FRVBF_INSN_NOT, SEM_FN_NAME (frvbf,not) },
28182   { FRVBF_INSN_SDIV, SEM_FN_NAME (frvbf,sdiv) },
28183   { FRVBF_INSN_NSDIV, SEM_FN_NAME (frvbf,nsdiv) },
28184   { FRVBF_INSN_UDIV, SEM_FN_NAME (frvbf,udiv) },
28185   { FRVBF_INSN_NUDIV, SEM_FN_NAME (frvbf,nudiv) },
28186   { FRVBF_INSN_SMUL, SEM_FN_NAME (frvbf,smul) },
28187   { FRVBF_INSN_UMUL, SEM_FN_NAME (frvbf,umul) },
28188   { FRVBF_INSN_SMU, SEM_FN_NAME (frvbf,smu) },
28189   { FRVBF_INSN_SMASS, SEM_FN_NAME (frvbf,smass) },
28190   { FRVBF_INSN_SMSSS, SEM_FN_NAME (frvbf,smsss) },
28191   { FRVBF_INSN_SLL, SEM_FN_NAME (frvbf,sll) },
28192   { FRVBF_INSN_SRL, SEM_FN_NAME (frvbf,srl) },
28193   { FRVBF_INSN_SRA, SEM_FN_NAME (frvbf,sra) },
28194   { FRVBF_INSN_SLASS, SEM_FN_NAME (frvbf,slass) },
28195   { FRVBF_INSN_SCUTSS, SEM_FN_NAME (frvbf,scutss) },
28196   { FRVBF_INSN_SCAN, SEM_FN_NAME (frvbf,scan) },
28197   { FRVBF_INSN_CADD, SEM_FN_NAME (frvbf,cadd) },
28198   { FRVBF_INSN_CSUB, SEM_FN_NAME (frvbf,csub) },
28199   { FRVBF_INSN_CAND, SEM_FN_NAME (frvbf,cand) },
28200   { FRVBF_INSN_COR, SEM_FN_NAME (frvbf,cor) },
28201   { FRVBF_INSN_CXOR, SEM_FN_NAME (frvbf,cxor) },
28202   { FRVBF_INSN_CNOT, SEM_FN_NAME (frvbf,cnot) },
28203   { FRVBF_INSN_CSMUL, SEM_FN_NAME (frvbf,csmul) },
28204   { FRVBF_INSN_CSDIV, SEM_FN_NAME (frvbf,csdiv) },
28205   { FRVBF_INSN_CUDIV, SEM_FN_NAME (frvbf,cudiv) },
28206   { FRVBF_INSN_CSLL, SEM_FN_NAME (frvbf,csll) },
28207   { FRVBF_INSN_CSRL, SEM_FN_NAME (frvbf,csrl) },
28208   { FRVBF_INSN_CSRA, SEM_FN_NAME (frvbf,csra) },
28209   { FRVBF_INSN_CSCAN, SEM_FN_NAME (frvbf,cscan) },
28210   { FRVBF_INSN_ADDCC, SEM_FN_NAME (frvbf,addcc) },
28211   { FRVBF_INSN_SUBCC, SEM_FN_NAME (frvbf,subcc) },
28212   { FRVBF_INSN_ANDCC, SEM_FN_NAME (frvbf,andcc) },
28213   { FRVBF_INSN_ORCC, SEM_FN_NAME (frvbf,orcc) },
28214   { FRVBF_INSN_XORCC, SEM_FN_NAME (frvbf,xorcc) },
28215   { FRVBF_INSN_SLLCC, SEM_FN_NAME (frvbf,sllcc) },
28216   { FRVBF_INSN_SRLCC, SEM_FN_NAME (frvbf,srlcc) },
28217   { FRVBF_INSN_SRACC, SEM_FN_NAME (frvbf,sracc) },
28218   { FRVBF_INSN_SMULCC, SEM_FN_NAME (frvbf,smulcc) },
28219   { FRVBF_INSN_UMULCC, SEM_FN_NAME (frvbf,umulcc) },
28220   { FRVBF_INSN_CADDCC, SEM_FN_NAME (frvbf,caddcc) },
28221   { FRVBF_INSN_CSUBCC, SEM_FN_NAME (frvbf,csubcc) },
28222   { FRVBF_INSN_CSMULCC, SEM_FN_NAME (frvbf,csmulcc) },
28223   { FRVBF_INSN_CANDCC, SEM_FN_NAME (frvbf,candcc) },
28224   { FRVBF_INSN_CORCC, SEM_FN_NAME (frvbf,corcc) },
28225   { FRVBF_INSN_CXORCC, SEM_FN_NAME (frvbf,cxorcc) },
28226   { FRVBF_INSN_CSLLCC, SEM_FN_NAME (frvbf,csllcc) },
28227   { FRVBF_INSN_CSRLCC, SEM_FN_NAME (frvbf,csrlcc) },
28228   { FRVBF_INSN_CSRACC, SEM_FN_NAME (frvbf,csracc) },
28229   { FRVBF_INSN_ADDX, SEM_FN_NAME (frvbf,addx) },
28230   { FRVBF_INSN_SUBX, SEM_FN_NAME (frvbf,subx) },
28231   { FRVBF_INSN_ADDXCC, SEM_FN_NAME (frvbf,addxcc) },
28232   { FRVBF_INSN_SUBXCC, SEM_FN_NAME (frvbf,subxcc) },
28233   { FRVBF_INSN_ADDSS, SEM_FN_NAME (frvbf,addss) },
28234   { FRVBF_INSN_SUBSS, SEM_FN_NAME (frvbf,subss) },
28235   { FRVBF_INSN_ADDI, SEM_FN_NAME (frvbf,addi) },
28236   { FRVBF_INSN_SUBI, SEM_FN_NAME (frvbf,subi) },
28237   { FRVBF_INSN_ANDI, SEM_FN_NAME (frvbf,andi) },
28238   { FRVBF_INSN_ORI, SEM_FN_NAME (frvbf,ori) },
28239   { FRVBF_INSN_XORI, SEM_FN_NAME (frvbf,xori) },
28240   { FRVBF_INSN_SDIVI, SEM_FN_NAME (frvbf,sdivi) },
28241   { FRVBF_INSN_NSDIVI, SEM_FN_NAME (frvbf,nsdivi) },
28242   { FRVBF_INSN_UDIVI, SEM_FN_NAME (frvbf,udivi) },
28243   { FRVBF_INSN_NUDIVI, SEM_FN_NAME (frvbf,nudivi) },
28244   { FRVBF_INSN_SMULI, SEM_FN_NAME (frvbf,smuli) },
28245   { FRVBF_INSN_UMULI, SEM_FN_NAME (frvbf,umuli) },
28246   { FRVBF_INSN_SLLI, SEM_FN_NAME (frvbf,slli) },
28247   { FRVBF_INSN_SRLI, SEM_FN_NAME (frvbf,srli) },
28248   { FRVBF_INSN_SRAI, SEM_FN_NAME (frvbf,srai) },
28249   { FRVBF_INSN_SCANI, SEM_FN_NAME (frvbf,scani) },
28250   { FRVBF_INSN_ADDICC, SEM_FN_NAME (frvbf,addicc) },
28251   { FRVBF_INSN_SUBICC, SEM_FN_NAME (frvbf,subicc) },
28252   { FRVBF_INSN_ANDICC, SEM_FN_NAME (frvbf,andicc) },
28253   { FRVBF_INSN_ORICC, SEM_FN_NAME (frvbf,oricc) },
28254   { FRVBF_INSN_XORICC, SEM_FN_NAME (frvbf,xoricc) },
28255   { FRVBF_INSN_SMULICC, SEM_FN_NAME (frvbf,smulicc) },
28256   { FRVBF_INSN_UMULICC, SEM_FN_NAME (frvbf,umulicc) },
28257   { FRVBF_INSN_SLLICC, SEM_FN_NAME (frvbf,sllicc) },
28258   { FRVBF_INSN_SRLICC, SEM_FN_NAME (frvbf,srlicc) },
28259   { FRVBF_INSN_SRAICC, SEM_FN_NAME (frvbf,sraicc) },
28260   { FRVBF_INSN_ADDXI, SEM_FN_NAME (frvbf,addxi) },
28261   { FRVBF_INSN_SUBXI, SEM_FN_NAME (frvbf,subxi) },
28262   { FRVBF_INSN_ADDXICC, SEM_FN_NAME (frvbf,addxicc) },
28263   { FRVBF_INSN_SUBXICC, SEM_FN_NAME (frvbf,subxicc) },
28264   { FRVBF_INSN_CMPB, SEM_FN_NAME (frvbf,cmpb) },
28265   { FRVBF_INSN_CMPBA, SEM_FN_NAME (frvbf,cmpba) },
28266   { FRVBF_INSN_SETLO, SEM_FN_NAME (frvbf,setlo) },
28267   { FRVBF_INSN_SETHI, SEM_FN_NAME (frvbf,sethi) },
28268   { FRVBF_INSN_SETLOS, SEM_FN_NAME (frvbf,setlos) },
28269   { FRVBF_INSN_LDSB, SEM_FN_NAME (frvbf,ldsb) },
28270   { FRVBF_INSN_LDUB, SEM_FN_NAME (frvbf,ldub) },
28271   { FRVBF_INSN_LDSH, SEM_FN_NAME (frvbf,ldsh) },
28272   { FRVBF_INSN_LDUH, SEM_FN_NAME (frvbf,lduh) },
28273   { FRVBF_INSN_LD, SEM_FN_NAME (frvbf,ld) },
28274   { FRVBF_INSN_LDBF, SEM_FN_NAME (frvbf,ldbf) },
28275   { FRVBF_INSN_LDHF, SEM_FN_NAME (frvbf,ldhf) },
28276   { FRVBF_INSN_LDF, SEM_FN_NAME (frvbf,ldf) },
28277   { FRVBF_INSN_LDC, SEM_FN_NAME (frvbf,ldc) },
28278   { FRVBF_INSN_NLDSB, SEM_FN_NAME (frvbf,nldsb) },
28279   { FRVBF_INSN_NLDUB, SEM_FN_NAME (frvbf,nldub) },
28280   { FRVBF_INSN_NLDSH, SEM_FN_NAME (frvbf,nldsh) },
28281   { FRVBF_INSN_NLDUH, SEM_FN_NAME (frvbf,nlduh) },
28282   { FRVBF_INSN_NLD, SEM_FN_NAME (frvbf,nld) },
28283   { FRVBF_INSN_NLDBF, SEM_FN_NAME (frvbf,nldbf) },
28284   { FRVBF_INSN_NLDHF, SEM_FN_NAME (frvbf,nldhf) },
28285   { FRVBF_INSN_NLDF, SEM_FN_NAME (frvbf,nldf) },
28286   { FRVBF_INSN_LDD, SEM_FN_NAME (frvbf,ldd) },
28287   { FRVBF_INSN_LDDF, SEM_FN_NAME (frvbf,lddf) },
28288   { FRVBF_INSN_LDDC, SEM_FN_NAME (frvbf,lddc) },
28289   { FRVBF_INSN_NLDD, SEM_FN_NAME (frvbf,nldd) },
28290   { FRVBF_INSN_NLDDF, SEM_FN_NAME (frvbf,nlddf) },
28291   { FRVBF_INSN_LDQ, SEM_FN_NAME (frvbf,ldq) },
28292   { FRVBF_INSN_LDQF, SEM_FN_NAME (frvbf,ldqf) },
28293   { FRVBF_INSN_LDQC, SEM_FN_NAME (frvbf,ldqc) },
28294   { FRVBF_INSN_NLDQ, SEM_FN_NAME (frvbf,nldq) },
28295   { FRVBF_INSN_NLDQF, SEM_FN_NAME (frvbf,nldqf) },
28296   { FRVBF_INSN_LDSBU, SEM_FN_NAME (frvbf,ldsbu) },
28297   { FRVBF_INSN_LDUBU, SEM_FN_NAME (frvbf,ldubu) },
28298   { FRVBF_INSN_LDSHU, SEM_FN_NAME (frvbf,ldshu) },
28299   { FRVBF_INSN_LDUHU, SEM_FN_NAME (frvbf,lduhu) },
28300   { FRVBF_INSN_LDU, SEM_FN_NAME (frvbf,ldu) },
28301   { FRVBF_INSN_NLDSBU, SEM_FN_NAME (frvbf,nldsbu) },
28302   { FRVBF_INSN_NLDUBU, SEM_FN_NAME (frvbf,nldubu) },
28303   { FRVBF_INSN_NLDSHU, SEM_FN_NAME (frvbf,nldshu) },
28304   { FRVBF_INSN_NLDUHU, SEM_FN_NAME (frvbf,nlduhu) },
28305   { FRVBF_INSN_NLDU, SEM_FN_NAME (frvbf,nldu) },
28306   { FRVBF_INSN_LDBFU, SEM_FN_NAME (frvbf,ldbfu) },
28307   { FRVBF_INSN_LDHFU, SEM_FN_NAME (frvbf,ldhfu) },
28308   { FRVBF_INSN_LDFU, SEM_FN_NAME (frvbf,ldfu) },
28309   { FRVBF_INSN_LDCU, SEM_FN_NAME (frvbf,ldcu) },
28310   { FRVBF_INSN_NLDBFU, SEM_FN_NAME (frvbf,nldbfu) },
28311   { FRVBF_INSN_NLDHFU, SEM_FN_NAME (frvbf,nldhfu) },
28312   { FRVBF_INSN_NLDFU, SEM_FN_NAME (frvbf,nldfu) },
28313   { FRVBF_INSN_LDDU, SEM_FN_NAME (frvbf,lddu) },
28314   { FRVBF_INSN_NLDDU, SEM_FN_NAME (frvbf,nlddu) },
28315   { FRVBF_INSN_LDDFU, SEM_FN_NAME (frvbf,lddfu) },
28316   { FRVBF_INSN_LDDCU, SEM_FN_NAME (frvbf,lddcu) },
28317   { FRVBF_INSN_NLDDFU, SEM_FN_NAME (frvbf,nlddfu) },
28318   { FRVBF_INSN_LDQU, SEM_FN_NAME (frvbf,ldqu) },
28319   { FRVBF_INSN_NLDQU, SEM_FN_NAME (frvbf,nldqu) },
28320   { FRVBF_INSN_LDQFU, SEM_FN_NAME (frvbf,ldqfu) },
28321   { FRVBF_INSN_LDQCU, SEM_FN_NAME (frvbf,ldqcu) },
28322   { FRVBF_INSN_NLDQFU, SEM_FN_NAME (frvbf,nldqfu) },
28323   { FRVBF_INSN_LDSBI, SEM_FN_NAME (frvbf,ldsbi) },
28324   { FRVBF_INSN_LDSHI, SEM_FN_NAME (frvbf,ldshi) },
28325   { FRVBF_INSN_LDI, SEM_FN_NAME (frvbf,ldi) },
28326   { FRVBF_INSN_LDUBI, SEM_FN_NAME (frvbf,ldubi) },
28327   { FRVBF_INSN_LDUHI, SEM_FN_NAME (frvbf,lduhi) },
28328   { FRVBF_INSN_LDBFI, SEM_FN_NAME (frvbf,ldbfi) },
28329   { FRVBF_INSN_LDHFI, SEM_FN_NAME (frvbf,ldhfi) },
28330   { FRVBF_INSN_LDFI, SEM_FN_NAME (frvbf,ldfi) },
28331   { FRVBF_INSN_NLDSBI, SEM_FN_NAME (frvbf,nldsbi) },
28332   { FRVBF_INSN_NLDUBI, SEM_FN_NAME (frvbf,nldubi) },
28333   { FRVBF_INSN_NLDSHI, SEM_FN_NAME (frvbf,nldshi) },
28334   { FRVBF_INSN_NLDUHI, SEM_FN_NAME (frvbf,nlduhi) },
28335   { FRVBF_INSN_NLDI, SEM_FN_NAME (frvbf,nldi) },
28336   { FRVBF_INSN_NLDBFI, SEM_FN_NAME (frvbf,nldbfi) },
28337   { FRVBF_INSN_NLDHFI, SEM_FN_NAME (frvbf,nldhfi) },
28338   { FRVBF_INSN_NLDFI, SEM_FN_NAME (frvbf,nldfi) },
28339   { FRVBF_INSN_LDDI, SEM_FN_NAME (frvbf,lddi) },
28340   { FRVBF_INSN_LDDFI, SEM_FN_NAME (frvbf,lddfi) },
28341   { FRVBF_INSN_NLDDI, SEM_FN_NAME (frvbf,nlddi) },
28342   { FRVBF_INSN_NLDDFI, SEM_FN_NAME (frvbf,nlddfi) },
28343   { FRVBF_INSN_LDQI, SEM_FN_NAME (frvbf,ldqi) },
28344   { FRVBF_INSN_LDQFI, SEM_FN_NAME (frvbf,ldqfi) },
28345   { FRVBF_INSN_NLDQFI, SEM_FN_NAME (frvbf,nldqfi) },
28346   { FRVBF_INSN_STB, SEM_FN_NAME (frvbf,stb) },
28347   { FRVBF_INSN_STH, SEM_FN_NAME (frvbf,sth) },
28348   { FRVBF_INSN_ST, SEM_FN_NAME (frvbf,st) },
28349   { FRVBF_INSN_STBF, SEM_FN_NAME (frvbf,stbf) },
28350   { FRVBF_INSN_STHF, SEM_FN_NAME (frvbf,sthf) },
28351   { FRVBF_INSN_STF, SEM_FN_NAME (frvbf,stf) },
28352   { FRVBF_INSN_STC, SEM_FN_NAME (frvbf,stc) },
28353   { FRVBF_INSN_STD, SEM_FN_NAME (frvbf,std) },
28354   { FRVBF_INSN_STDF, SEM_FN_NAME (frvbf,stdf) },
28355   { FRVBF_INSN_STDC, SEM_FN_NAME (frvbf,stdc) },
28356   { FRVBF_INSN_STQ, SEM_FN_NAME (frvbf,stq) },
28357   { FRVBF_INSN_STQF, SEM_FN_NAME (frvbf,stqf) },
28358   { FRVBF_INSN_STQC, SEM_FN_NAME (frvbf,stqc) },
28359   { FRVBF_INSN_STBU, SEM_FN_NAME (frvbf,stbu) },
28360   { FRVBF_INSN_STHU, SEM_FN_NAME (frvbf,sthu) },
28361   { FRVBF_INSN_STU, SEM_FN_NAME (frvbf,stu) },
28362   { FRVBF_INSN_STBFU, SEM_FN_NAME (frvbf,stbfu) },
28363   { FRVBF_INSN_STHFU, SEM_FN_NAME (frvbf,sthfu) },
28364   { FRVBF_INSN_STFU, SEM_FN_NAME (frvbf,stfu) },
28365   { FRVBF_INSN_STCU, SEM_FN_NAME (frvbf,stcu) },
28366   { FRVBF_INSN_STDU, SEM_FN_NAME (frvbf,stdu) },
28367   { FRVBF_INSN_STDFU, SEM_FN_NAME (frvbf,stdfu) },
28368   { FRVBF_INSN_STDCU, SEM_FN_NAME (frvbf,stdcu) },
28369   { FRVBF_INSN_STQU, SEM_FN_NAME (frvbf,stqu) },
28370   { FRVBF_INSN_STQFU, SEM_FN_NAME (frvbf,stqfu) },
28371   { FRVBF_INSN_STQCU, SEM_FN_NAME (frvbf,stqcu) },
28372   { FRVBF_INSN_CLDSB, SEM_FN_NAME (frvbf,cldsb) },
28373   { FRVBF_INSN_CLDUB, SEM_FN_NAME (frvbf,cldub) },
28374   { FRVBF_INSN_CLDSH, SEM_FN_NAME (frvbf,cldsh) },
28375   { FRVBF_INSN_CLDUH, SEM_FN_NAME (frvbf,clduh) },
28376   { FRVBF_INSN_CLD, SEM_FN_NAME (frvbf,cld) },
28377   { FRVBF_INSN_CLDBF, SEM_FN_NAME (frvbf,cldbf) },
28378   { FRVBF_INSN_CLDHF, SEM_FN_NAME (frvbf,cldhf) },
28379   { FRVBF_INSN_CLDF, SEM_FN_NAME (frvbf,cldf) },
28380   { FRVBF_INSN_CLDD, SEM_FN_NAME (frvbf,cldd) },
28381   { FRVBF_INSN_CLDDF, SEM_FN_NAME (frvbf,clddf) },
28382   { FRVBF_INSN_CLDQ, SEM_FN_NAME (frvbf,cldq) },
28383   { FRVBF_INSN_CLDSBU, SEM_FN_NAME (frvbf,cldsbu) },
28384   { FRVBF_INSN_CLDUBU, SEM_FN_NAME (frvbf,cldubu) },
28385   { FRVBF_INSN_CLDSHU, SEM_FN_NAME (frvbf,cldshu) },
28386   { FRVBF_INSN_CLDUHU, SEM_FN_NAME (frvbf,clduhu) },
28387   { FRVBF_INSN_CLDU, SEM_FN_NAME (frvbf,cldu) },
28388   { FRVBF_INSN_CLDBFU, SEM_FN_NAME (frvbf,cldbfu) },
28389   { FRVBF_INSN_CLDHFU, SEM_FN_NAME (frvbf,cldhfu) },
28390   { FRVBF_INSN_CLDFU, SEM_FN_NAME (frvbf,cldfu) },
28391   { FRVBF_INSN_CLDDU, SEM_FN_NAME (frvbf,clddu) },
28392   { FRVBF_INSN_CLDDFU, SEM_FN_NAME (frvbf,clddfu) },
28393   { FRVBF_INSN_CLDQU, SEM_FN_NAME (frvbf,cldqu) },
28394   { FRVBF_INSN_CSTB, SEM_FN_NAME (frvbf,cstb) },
28395   { FRVBF_INSN_CSTH, SEM_FN_NAME (frvbf,csth) },
28396   { FRVBF_INSN_CST, SEM_FN_NAME (frvbf,cst) },
28397   { FRVBF_INSN_CSTBF, SEM_FN_NAME (frvbf,cstbf) },
28398   { FRVBF_INSN_CSTHF, SEM_FN_NAME (frvbf,csthf) },
28399   { FRVBF_INSN_CSTF, SEM_FN_NAME (frvbf,cstf) },
28400   { FRVBF_INSN_CSTD, SEM_FN_NAME (frvbf,cstd) },
28401   { FRVBF_INSN_CSTDF, SEM_FN_NAME (frvbf,cstdf) },
28402   { FRVBF_INSN_CSTQ, SEM_FN_NAME (frvbf,cstq) },
28403   { FRVBF_INSN_CSTBU, SEM_FN_NAME (frvbf,cstbu) },
28404   { FRVBF_INSN_CSTHU, SEM_FN_NAME (frvbf,csthu) },
28405   { FRVBF_INSN_CSTU, SEM_FN_NAME (frvbf,cstu) },
28406   { FRVBF_INSN_CSTBFU, SEM_FN_NAME (frvbf,cstbfu) },
28407   { FRVBF_INSN_CSTHFU, SEM_FN_NAME (frvbf,csthfu) },
28408   { FRVBF_INSN_CSTFU, SEM_FN_NAME (frvbf,cstfu) },
28409   { FRVBF_INSN_CSTDU, SEM_FN_NAME (frvbf,cstdu) },
28410   { FRVBF_INSN_CSTDFU, SEM_FN_NAME (frvbf,cstdfu) },
28411   { FRVBF_INSN_STBI, SEM_FN_NAME (frvbf,stbi) },
28412   { FRVBF_INSN_STHI, SEM_FN_NAME (frvbf,sthi) },
28413   { FRVBF_INSN_STI, SEM_FN_NAME (frvbf,sti) },
28414   { FRVBF_INSN_STBFI, SEM_FN_NAME (frvbf,stbfi) },
28415   { FRVBF_INSN_STHFI, SEM_FN_NAME (frvbf,sthfi) },
28416   { FRVBF_INSN_STFI, SEM_FN_NAME (frvbf,stfi) },
28417   { FRVBF_INSN_STDI, SEM_FN_NAME (frvbf,stdi) },
28418   { FRVBF_INSN_STDFI, SEM_FN_NAME (frvbf,stdfi) },
28419   { FRVBF_INSN_STQI, SEM_FN_NAME (frvbf,stqi) },
28420   { FRVBF_INSN_STQFI, SEM_FN_NAME (frvbf,stqfi) },
28421   { FRVBF_INSN_SWAP, SEM_FN_NAME (frvbf,swap) },
28422   { FRVBF_INSN_SWAPI, SEM_FN_NAME (frvbf,swapi) },
28423   { FRVBF_INSN_CSWAP, SEM_FN_NAME (frvbf,cswap) },
28424   { FRVBF_INSN_MOVGF, SEM_FN_NAME (frvbf,movgf) },
28425   { FRVBF_INSN_MOVFG, SEM_FN_NAME (frvbf,movfg) },
28426   { FRVBF_INSN_MOVGFD, SEM_FN_NAME (frvbf,movgfd) },
28427   { FRVBF_INSN_MOVFGD, SEM_FN_NAME (frvbf,movfgd) },
28428   { FRVBF_INSN_MOVGFQ, SEM_FN_NAME (frvbf,movgfq) },
28429   { FRVBF_INSN_MOVFGQ, SEM_FN_NAME (frvbf,movfgq) },
28430   { FRVBF_INSN_CMOVGF, SEM_FN_NAME (frvbf,cmovgf) },
28431   { FRVBF_INSN_CMOVFG, SEM_FN_NAME (frvbf,cmovfg) },
28432   { FRVBF_INSN_CMOVGFD, SEM_FN_NAME (frvbf,cmovgfd) },
28433   { FRVBF_INSN_CMOVFGD, SEM_FN_NAME (frvbf,cmovfgd) },
28434   { FRVBF_INSN_MOVGS, SEM_FN_NAME (frvbf,movgs) },
28435   { FRVBF_INSN_MOVSG, SEM_FN_NAME (frvbf,movsg) },
28436   { FRVBF_INSN_BRA, SEM_FN_NAME (frvbf,bra) },
28437   { FRVBF_INSN_BNO, SEM_FN_NAME (frvbf,bno) },
28438   { FRVBF_INSN_BEQ, SEM_FN_NAME (frvbf,beq) },
28439   { FRVBF_INSN_BNE, SEM_FN_NAME (frvbf,bne) },
28440   { FRVBF_INSN_BLE, SEM_FN_NAME (frvbf,ble) },
28441   { FRVBF_INSN_BGT, SEM_FN_NAME (frvbf,bgt) },
28442   { FRVBF_INSN_BLT, SEM_FN_NAME (frvbf,blt) },
28443   { FRVBF_INSN_BGE, SEM_FN_NAME (frvbf,bge) },
28444   { FRVBF_INSN_BLS, SEM_FN_NAME (frvbf,bls) },
28445   { FRVBF_INSN_BHI, SEM_FN_NAME (frvbf,bhi) },
28446   { FRVBF_INSN_BC, SEM_FN_NAME (frvbf,bc) },
28447   { FRVBF_INSN_BNC, SEM_FN_NAME (frvbf,bnc) },
28448   { FRVBF_INSN_BN, SEM_FN_NAME (frvbf,bn) },
28449   { FRVBF_INSN_BP, SEM_FN_NAME (frvbf,bp) },
28450   { FRVBF_INSN_BV, SEM_FN_NAME (frvbf,bv) },
28451   { FRVBF_INSN_BNV, SEM_FN_NAME (frvbf,bnv) },
28452   { FRVBF_INSN_FBRA, SEM_FN_NAME (frvbf,fbra) },
28453   { FRVBF_INSN_FBNO, SEM_FN_NAME (frvbf,fbno) },
28454   { FRVBF_INSN_FBNE, SEM_FN_NAME (frvbf,fbne) },
28455   { FRVBF_INSN_FBEQ, SEM_FN_NAME (frvbf,fbeq) },
28456   { FRVBF_INSN_FBLG, SEM_FN_NAME (frvbf,fblg) },
28457   { FRVBF_INSN_FBUE, SEM_FN_NAME (frvbf,fbue) },
28458   { FRVBF_INSN_FBUL, SEM_FN_NAME (frvbf,fbul) },
28459   { FRVBF_INSN_FBGE, SEM_FN_NAME (frvbf,fbge) },
28460   { FRVBF_INSN_FBLT, SEM_FN_NAME (frvbf,fblt) },
28461   { FRVBF_INSN_FBUGE, SEM_FN_NAME (frvbf,fbuge) },
28462   { FRVBF_INSN_FBUG, SEM_FN_NAME (frvbf,fbug) },
28463   { FRVBF_INSN_FBLE, SEM_FN_NAME (frvbf,fble) },
28464   { FRVBF_INSN_FBGT, SEM_FN_NAME (frvbf,fbgt) },
28465   { FRVBF_INSN_FBULE, SEM_FN_NAME (frvbf,fbule) },
28466   { FRVBF_INSN_FBU, SEM_FN_NAME (frvbf,fbu) },
28467   { FRVBF_INSN_FBO, SEM_FN_NAME (frvbf,fbo) },
28468   { FRVBF_INSN_BCTRLR, SEM_FN_NAME (frvbf,bctrlr) },
28469   { FRVBF_INSN_BRALR, SEM_FN_NAME (frvbf,bralr) },
28470   { FRVBF_INSN_BNOLR, SEM_FN_NAME (frvbf,bnolr) },
28471   { FRVBF_INSN_BEQLR, SEM_FN_NAME (frvbf,beqlr) },
28472   { FRVBF_INSN_BNELR, SEM_FN_NAME (frvbf,bnelr) },
28473   { FRVBF_INSN_BLELR, SEM_FN_NAME (frvbf,blelr) },
28474   { FRVBF_INSN_BGTLR, SEM_FN_NAME (frvbf,bgtlr) },
28475   { FRVBF_INSN_BLTLR, SEM_FN_NAME (frvbf,bltlr) },
28476   { FRVBF_INSN_BGELR, SEM_FN_NAME (frvbf,bgelr) },
28477   { FRVBF_INSN_BLSLR, SEM_FN_NAME (frvbf,blslr) },
28478   { FRVBF_INSN_BHILR, SEM_FN_NAME (frvbf,bhilr) },
28479   { FRVBF_INSN_BCLR, SEM_FN_NAME (frvbf,bclr) },
28480   { FRVBF_INSN_BNCLR, SEM_FN_NAME (frvbf,bnclr) },
28481   { FRVBF_INSN_BNLR, SEM_FN_NAME (frvbf,bnlr) },
28482   { FRVBF_INSN_BPLR, SEM_FN_NAME (frvbf,bplr) },
28483   { FRVBF_INSN_BVLR, SEM_FN_NAME (frvbf,bvlr) },
28484   { FRVBF_INSN_BNVLR, SEM_FN_NAME (frvbf,bnvlr) },
28485   { FRVBF_INSN_FBRALR, SEM_FN_NAME (frvbf,fbralr) },
28486   { FRVBF_INSN_FBNOLR, SEM_FN_NAME (frvbf,fbnolr) },
28487   { FRVBF_INSN_FBEQLR, SEM_FN_NAME (frvbf,fbeqlr) },
28488   { FRVBF_INSN_FBNELR, SEM_FN_NAME (frvbf,fbnelr) },
28489   { FRVBF_INSN_FBLGLR, SEM_FN_NAME (frvbf,fblglr) },
28490   { FRVBF_INSN_FBUELR, SEM_FN_NAME (frvbf,fbuelr) },
28491   { FRVBF_INSN_FBULLR, SEM_FN_NAME (frvbf,fbullr) },
28492   { FRVBF_INSN_FBGELR, SEM_FN_NAME (frvbf,fbgelr) },
28493   { FRVBF_INSN_FBLTLR, SEM_FN_NAME (frvbf,fbltlr) },
28494   { FRVBF_INSN_FBUGELR, SEM_FN_NAME (frvbf,fbugelr) },
28495   { FRVBF_INSN_FBUGLR, SEM_FN_NAME (frvbf,fbuglr) },
28496   { FRVBF_INSN_FBLELR, SEM_FN_NAME (frvbf,fblelr) },
28497   { FRVBF_INSN_FBGTLR, SEM_FN_NAME (frvbf,fbgtlr) },
28498   { FRVBF_INSN_FBULELR, SEM_FN_NAME (frvbf,fbulelr) },
28499   { FRVBF_INSN_FBULR, SEM_FN_NAME (frvbf,fbulr) },
28500   { FRVBF_INSN_FBOLR, SEM_FN_NAME (frvbf,fbolr) },
28501   { FRVBF_INSN_BCRALR, SEM_FN_NAME (frvbf,bcralr) },
28502   { FRVBF_INSN_BCNOLR, SEM_FN_NAME (frvbf,bcnolr) },
28503   { FRVBF_INSN_BCEQLR, SEM_FN_NAME (frvbf,bceqlr) },
28504   { FRVBF_INSN_BCNELR, SEM_FN_NAME (frvbf,bcnelr) },
28505   { FRVBF_INSN_BCLELR, SEM_FN_NAME (frvbf,bclelr) },
28506   { FRVBF_INSN_BCGTLR, SEM_FN_NAME (frvbf,bcgtlr) },
28507   { FRVBF_INSN_BCLTLR, SEM_FN_NAME (frvbf,bcltlr) },
28508   { FRVBF_INSN_BCGELR, SEM_FN_NAME (frvbf,bcgelr) },
28509   { FRVBF_INSN_BCLSLR, SEM_FN_NAME (frvbf,bclslr) },
28510   { FRVBF_INSN_BCHILR, SEM_FN_NAME (frvbf,bchilr) },
28511   { FRVBF_INSN_BCCLR, SEM_FN_NAME (frvbf,bcclr) },
28512   { FRVBF_INSN_BCNCLR, SEM_FN_NAME (frvbf,bcnclr) },
28513   { FRVBF_INSN_BCNLR, SEM_FN_NAME (frvbf,bcnlr) },
28514   { FRVBF_INSN_BCPLR, SEM_FN_NAME (frvbf,bcplr) },
28515   { FRVBF_INSN_BCVLR, SEM_FN_NAME (frvbf,bcvlr) },
28516   { FRVBF_INSN_BCNVLR, SEM_FN_NAME (frvbf,bcnvlr) },
28517   { FRVBF_INSN_FCBRALR, SEM_FN_NAME (frvbf,fcbralr) },
28518   { FRVBF_INSN_FCBNOLR, SEM_FN_NAME (frvbf,fcbnolr) },
28519   { FRVBF_INSN_FCBEQLR, SEM_FN_NAME (frvbf,fcbeqlr) },
28520   { FRVBF_INSN_FCBNELR, SEM_FN_NAME (frvbf,fcbnelr) },
28521   { FRVBF_INSN_FCBLGLR, SEM_FN_NAME (frvbf,fcblglr) },
28522   { FRVBF_INSN_FCBUELR, SEM_FN_NAME (frvbf,fcbuelr) },
28523   { FRVBF_INSN_FCBULLR, SEM_FN_NAME (frvbf,fcbullr) },
28524   { FRVBF_INSN_FCBGELR, SEM_FN_NAME (frvbf,fcbgelr) },
28525   { FRVBF_INSN_FCBLTLR, SEM_FN_NAME (frvbf,fcbltlr) },
28526   { FRVBF_INSN_FCBUGELR, SEM_FN_NAME (frvbf,fcbugelr) },
28527   { FRVBF_INSN_FCBUGLR, SEM_FN_NAME (frvbf,fcbuglr) },
28528   { FRVBF_INSN_FCBLELR, SEM_FN_NAME (frvbf,fcblelr) },
28529   { FRVBF_INSN_FCBGTLR, SEM_FN_NAME (frvbf,fcbgtlr) },
28530   { FRVBF_INSN_FCBULELR, SEM_FN_NAME (frvbf,fcbulelr) },
28531   { FRVBF_INSN_FCBULR, SEM_FN_NAME (frvbf,fcbulr) },
28532   { FRVBF_INSN_FCBOLR, SEM_FN_NAME (frvbf,fcbolr) },
28533   { FRVBF_INSN_JMPL, SEM_FN_NAME (frvbf,jmpl) },
28534   { FRVBF_INSN_CALLL, SEM_FN_NAME (frvbf,calll) },
28535   { FRVBF_INSN_JMPIL, SEM_FN_NAME (frvbf,jmpil) },
28536   { FRVBF_INSN_CALLIL, SEM_FN_NAME (frvbf,callil) },
28537   { FRVBF_INSN_CALL, SEM_FN_NAME (frvbf,call) },
28538   { FRVBF_INSN_RETT, SEM_FN_NAME (frvbf,rett) },
28539   { FRVBF_INSN_REI, SEM_FN_NAME (frvbf,rei) },
28540   { FRVBF_INSN_TRA, SEM_FN_NAME (frvbf,tra) },
28541   { FRVBF_INSN_TNO, SEM_FN_NAME (frvbf,tno) },
28542   { FRVBF_INSN_TEQ, SEM_FN_NAME (frvbf,teq) },
28543   { FRVBF_INSN_TNE, SEM_FN_NAME (frvbf,tne) },
28544   { FRVBF_INSN_TLE, SEM_FN_NAME (frvbf,tle) },
28545   { FRVBF_INSN_TGT, SEM_FN_NAME (frvbf,tgt) },
28546   { FRVBF_INSN_TLT, SEM_FN_NAME (frvbf,tlt) },
28547   { FRVBF_INSN_TGE, SEM_FN_NAME (frvbf,tge) },
28548   { FRVBF_INSN_TLS, SEM_FN_NAME (frvbf,tls) },
28549   { FRVBF_INSN_THI, SEM_FN_NAME (frvbf,thi) },
28550   { FRVBF_INSN_TC, SEM_FN_NAME (frvbf,tc) },
28551   { FRVBF_INSN_TNC, SEM_FN_NAME (frvbf,tnc) },
28552   { FRVBF_INSN_TN, SEM_FN_NAME (frvbf,tn) },
28553   { FRVBF_INSN_TP, SEM_FN_NAME (frvbf,tp) },
28554   { FRVBF_INSN_TV, SEM_FN_NAME (frvbf,tv) },
28555   { FRVBF_INSN_TNV, SEM_FN_NAME (frvbf,tnv) },
28556   { FRVBF_INSN_FTRA, SEM_FN_NAME (frvbf,ftra) },
28557   { FRVBF_INSN_FTNO, SEM_FN_NAME (frvbf,ftno) },
28558   { FRVBF_INSN_FTNE, SEM_FN_NAME (frvbf,ftne) },
28559   { FRVBF_INSN_FTEQ, SEM_FN_NAME (frvbf,fteq) },
28560   { FRVBF_INSN_FTLG, SEM_FN_NAME (frvbf,ftlg) },
28561   { FRVBF_INSN_FTUE, SEM_FN_NAME (frvbf,ftue) },
28562   { FRVBF_INSN_FTUL, SEM_FN_NAME (frvbf,ftul) },
28563   { FRVBF_INSN_FTGE, SEM_FN_NAME (frvbf,ftge) },
28564   { FRVBF_INSN_FTLT, SEM_FN_NAME (frvbf,ftlt) },
28565   { FRVBF_INSN_FTUGE, SEM_FN_NAME (frvbf,ftuge) },
28566   { FRVBF_INSN_FTUG, SEM_FN_NAME (frvbf,ftug) },
28567   { FRVBF_INSN_FTLE, SEM_FN_NAME (frvbf,ftle) },
28568   { FRVBF_INSN_FTGT, SEM_FN_NAME (frvbf,ftgt) },
28569   { FRVBF_INSN_FTULE, SEM_FN_NAME (frvbf,ftule) },
28570   { FRVBF_INSN_FTU, SEM_FN_NAME (frvbf,ftu) },
28571   { FRVBF_INSN_FTO, SEM_FN_NAME (frvbf,fto) },
28572   { FRVBF_INSN_TIRA, SEM_FN_NAME (frvbf,tira) },
28573   { FRVBF_INSN_TINO, SEM_FN_NAME (frvbf,tino) },
28574   { FRVBF_INSN_TIEQ, SEM_FN_NAME (frvbf,tieq) },
28575   { FRVBF_INSN_TINE, SEM_FN_NAME (frvbf,tine) },
28576   { FRVBF_INSN_TILE, SEM_FN_NAME (frvbf,tile) },
28577   { FRVBF_INSN_TIGT, SEM_FN_NAME (frvbf,tigt) },
28578   { FRVBF_INSN_TILT, SEM_FN_NAME (frvbf,tilt) },
28579   { FRVBF_INSN_TIGE, SEM_FN_NAME (frvbf,tige) },
28580   { FRVBF_INSN_TILS, SEM_FN_NAME (frvbf,tils) },
28581   { FRVBF_INSN_TIHI, SEM_FN_NAME (frvbf,tihi) },
28582   { FRVBF_INSN_TIC, SEM_FN_NAME (frvbf,tic) },
28583   { FRVBF_INSN_TINC, SEM_FN_NAME (frvbf,tinc) },
28584   { FRVBF_INSN_TIN, SEM_FN_NAME (frvbf,tin) },
28585   { FRVBF_INSN_TIP, SEM_FN_NAME (frvbf,tip) },
28586   { FRVBF_INSN_TIV, SEM_FN_NAME (frvbf,tiv) },
28587   { FRVBF_INSN_TINV, SEM_FN_NAME (frvbf,tinv) },
28588   { FRVBF_INSN_FTIRA, SEM_FN_NAME (frvbf,ftira) },
28589   { FRVBF_INSN_FTINO, SEM_FN_NAME (frvbf,ftino) },
28590   { FRVBF_INSN_FTINE, SEM_FN_NAME (frvbf,ftine) },
28591   { FRVBF_INSN_FTIEQ, SEM_FN_NAME (frvbf,ftieq) },
28592   { FRVBF_INSN_FTILG, SEM_FN_NAME (frvbf,ftilg) },
28593   { FRVBF_INSN_FTIUE, SEM_FN_NAME (frvbf,ftiue) },
28594   { FRVBF_INSN_FTIUL, SEM_FN_NAME (frvbf,ftiul) },
28595   { FRVBF_INSN_FTIGE, SEM_FN_NAME (frvbf,ftige) },
28596   { FRVBF_INSN_FTILT, SEM_FN_NAME (frvbf,ftilt) },
28597   { FRVBF_INSN_FTIUGE, SEM_FN_NAME (frvbf,ftiuge) },
28598   { FRVBF_INSN_FTIUG, SEM_FN_NAME (frvbf,ftiug) },
28599   { FRVBF_INSN_FTILE, SEM_FN_NAME (frvbf,ftile) },
28600   { FRVBF_INSN_FTIGT, SEM_FN_NAME (frvbf,ftigt) },
28601   { FRVBF_INSN_FTIULE, SEM_FN_NAME (frvbf,ftiule) },
28602   { FRVBF_INSN_FTIU, SEM_FN_NAME (frvbf,ftiu) },
28603   { FRVBF_INSN_FTIO, SEM_FN_NAME (frvbf,ftio) },
28604   { FRVBF_INSN_BREAK, SEM_FN_NAME (frvbf,break) },
28605   { FRVBF_INSN_MTRAP, SEM_FN_NAME (frvbf,mtrap) },
28606   { FRVBF_INSN_ANDCR, SEM_FN_NAME (frvbf,andcr) },
28607   { FRVBF_INSN_ORCR, SEM_FN_NAME (frvbf,orcr) },
28608   { FRVBF_INSN_XORCR, SEM_FN_NAME (frvbf,xorcr) },
28609   { FRVBF_INSN_NANDCR, SEM_FN_NAME (frvbf,nandcr) },
28610   { FRVBF_INSN_NORCR, SEM_FN_NAME (frvbf,norcr) },
28611   { FRVBF_INSN_ANDNCR, SEM_FN_NAME (frvbf,andncr) },
28612   { FRVBF_INSN_ORNCR, SEM_FN_NAME (frvbf,orncr) },
28613   { FRVBF_INSN_NANDNCR, SEM_FN_NAME (frvbf,nandncr) },
28614   { FRVBF_INSN_NORNCR, SEM_FN_NAME (frvbf,norncr) },
28615   { FRVBF_INSN_NOTCR, SEM_FN_NAME (frvbf,notcr) },
28616   { FRVBF_INSN_CKRA, SEM_FN_NAME (frvbf,ckra) },
28617   { FRVBF_INSN_CKNO, SEM_FN_NAME (frvbf,ckno) },
28618   { FRVBF_INSN_CKEQ, SEM_FN_NAME (frvbf,ckeq) },
28619   { FRVBF_INSN_CKNE, SEM_FN_NAME (frvbf,ckne) },
28620   { FRVBF_INSN_CKLE, SEM_FN_NAME (frvbf,ckle) },
28621   { FRVBF_INSN_CKGT, SEM_FN_NAME (frvbf,ckgt) },
28622   { FRVBF_INSN_CKLT, SEM_FN_NAME (frvbf,cklt) },
28623   { FRVBF_INSN_CKGE, SEM_FN_NAME (frvbf,ckge) },
28624   { FRVBF_INSN_CKLS, SEM_FN_NAME (frvbf,ckls) },
28625   { FRVBF_INSN_CKHI, SEM_FN_NAME (frvbf,ckhi) },
28626   { FRVBF_INSN_CKC, SEM_FN_NAME (frvbf,ckc) },
28627   { FRVBF_INSN_CKNC, SEM_FN_NAME (frvbf,cknc) },
28628   { FRVBF_INSN_CKN, SEM_FN_NAME (frvbf,ckn) },
28629   { FRVBF_INSN_CKP, SEM_FN_NAME (frvbf,ckp) },
28630   { FRVBF_INSN_CKV, SEM_FN_NAME (frvbf,ckv) },
28631   { FRVBF_INSN_CKNV, SEM_FN_NAME (frvbf,cknv) },
28632   { FRVBF_INSN_FCKRA, SEM_FN_NAME (frvbf,fckra) },
28633   { FRVBF_INSN_FCKNO, SEM_FN_NAME (frvbf,fckno) },
28634   { FRVBF_INSN_FCKNE, SEM_FN_NAME (frvbf,fckne) },
28635   { FRVBF_INSN_FCKEQ, SEM_FN_NAME (frvbf,fckeq) },
28636   { FRVBF_INSN_FCKLG, SEM_FN_NAME (frvbf,fcklg) },
28637   { FRVBF_INSN_FCKUE, SEM_FN_NAME (frvbf,fckue) },
28638   { FRVBF_INSN_FCKUL, SEM_FN_NAME (frvbf,fckul) },
28639   { FRVBF_INSN_FCKGE, SEM_FN_NAME (frvbf,fckge) },
28640   { FRVBF_INSN_FCKLT, SEM_FN_NAME (frvbf,fcklt) },
28641   { FRVBF_INSN_FCKUGE, SEM_FN_NAME (frvbf,fckuge) },
28642   { FRVBF_INSN_FCKUG, SEM_FN_NAME (frvbf,fckug) },
28643   { FRVBF_INSN_FCKLE, SEM_FN_NAME (frvbf,fckle) },
28644   { FRVBF_INSN_FCKGT, SEM_FN_NAME (frvbf,fckgt) },
28645   { FRVBF_INSN_FCKULE, SEM_FN_NAME (frvbf,fckule) },
28646   { FRVBF_INSN_FCKU, SEM_FN_NAME (frvbf,fcku) },
28647   { FRVBF_INSN_FCKO, SEM_FN_NAME (frvbf,fcko) },
28648   { FRVBF_INSN_CCKRA, SEM_FN_NAME (frvbf,cckra) },
28649   { FRVBF_INSN_CCKNO, SEM_FN_NAME (frvbf,cckno) },
28650   { FRVBF_INSN_CCKEQ, SEM_FN_NAME (frvbf,cckeq) },
28651   { FRVBF_INSN_CCKNE, SEM_FN_NAME (frvbf,cckne) },
28652   { FRVBF_INSN_CCKLE, SEM_FN_NAME (frvbf,cckle) },
28653   { FRVBF_INSN_CCKGT, SEM_FN_NAME (frvbf,cckgt) },
28654   { FRVBF_INSN_CCKLT, SEM_FN_NAME (frvbf,ccklt) },
28655   { FRVBF_INSN_CCKGE, SEM_FN_NAME (frvbf,cckge) },
28656   { FRVBF_INSN_CCKLS, SEM_FN_NAME (frvbf,cckls) },
28657   { FRVBF_INSN_CCKHI, SEM_FN_NAME (frvbf,cckhi) },
28658   { FRVBF_INSN_CCKC, SEM_FN_NAME (frvbf,cckc) },
28659   { FRVBF_INSN_CCKNC, SEM_FN_NAME (frvbf,ccknc) },
28660   { FRVBF_INSN_CCKN, SEM_FN_NAME (frvbf,cckn) },
28661   { FRVBF_INSN_CCKP, SEM_FN_NAME (frvbf,cckp) },
28662   { FRVBF_INSN_CCKV, SEM_FN_NAME (frvbf,cckv) },
28663   { FRVBF_INSN_CCKNV, SEM_FN_NAME (frvbf,ccknv) },
28664   { FRVBF_INSN_CFCKRA, SEM_FN_NAME (frvbf,cfckra) },
28665   { FRVBF_INSN_CFCKNO, SEM_FN_NAME (frvbf,cfckno) },
28666   { FRVBF_INSN_CFCKNE, SEM_FN_NAME (frvbf,cfckne) },
28667   { FRVBF_INSN_CFCKEQ, SEM_FN_NAME (frvbf,cfckeq) },
28668   { FRVBF_INSN_CFCKLG, SEM_FN_NAME (frvbf,cfcklg) },
28669   { FRVBF_INSN_CFCKUE, SEM_FN_NAME (frvbf,cfckue) },
28670   { FRVBF_INSN_CFCKUL, SEM_FN_NAME (frvbf,cfckul) },
28671   { FRVBF_INSN_CFCKGE, SEM_FN_NAME (frvbf,cfckge) },
28672   { FRVBF_INSN_CFCKLT, SEM_FN_NAME (frvbf,cfcklt) },
28673   { FRVBF_INSN_CFCKUGE, SEM_FN_NAME (frvbf,cfckuge) },
28674   { FRVBF_INSN_CFCKUG, SEM_FN_NAME (frvbf,cfckug) },
28675   { FRVBF_INSN_CFCKLE, SEM_FN_NAME (frvbf,cfckle) },
28676   { FRVBF_INSN_CFCKGT, SEM_FN_NAME (frvbf,cfckgt) },
28677   { FRVBF_INSN_CFCKULE, SEM_FN_NAME (frvbf,cfckule) },
28678   { FRVBF_INSN_CFCKU, SEM_FN_NAME (frvbf,cfcku) },
28679   { FRVBF_INSN_CFCKO, SEM_FN_NAME (frvbf,cfcko) },
28680   { FRVBF_INSN_CJMPL, SEM_FN_NAME (frvbf,cjmpl) },
28681   { FRVBF_INSN_CCALLL, SEM_FN_NAME (frvbf,ccalll) },
28682   { FRVBF_INSN_ICI, SEM_FN_NAME (frvbf,ici) },
28683   { FRVBF_INSN_DCI, SEM_FN_NAME (frvbf,dci) },
28684   { FRVBF_INSN_ICEI, SEM_FN_NAME (frvbf,icei) },
28685   { FRVBF_INSN_DCEI, SEM_FN_NAME (frvbf,dcei) },
28686   { FRVBF_INSN_DCF, SEM_FN_NAME (frvbf,dcf) },
28687   { FRVBF_INSN_DCEF, SEM_FN_NAME (frvbf,dcef) },
28688   { FRVBF_INSN_WITLB, SEM_FN_NAME (frvbf,witlb) },
28689   { FRVBF_INSN_WDTLB, SEM_FN_NAME (frvbf,wdtlb) },
28690   { FRVBF_INSN_ITLBI, SEM_FN_NAME (frvbf,itlbi) },
28691   { FRVBF_INSN_DTLBI, SEM_FN_NAME (frvbf,dtlbi) },
28692   { FRVBF_INSN_ICPL, SEM_FN_NAME (frvbf,icpl) },
28693   { FRVBF_INSN_DCPL, SEM_FN_NAME (frvbf,dcpl) },
28694   { FRVBF_INSN_ICUL, SEM_FN_NAME (frvbf,icul) },
28695   { FRVBF_INSN_DCUL, SEM_FN_NAME (frvbf,dcul) },
28696   { FRVBF_INSN_BAR, SEM_FN_NAME (frvbf,bar) },
28697   { FRVBF_INSN_MEMBAR, SEM_FN_NAME (frvbf,membar) },
28698   { FRVBF_INSN_LRAI, SEM_FN_NAME (frvbf,lrai) },
28699   { FRVBF_INSN_LRAD, SEM_FN_NAME (frvbf,lrad) },
28700   { FRVBF_INSN_TLBPR, SEM_FN_NAME (frvbf,tlbpr) },
28701   { FRVBF_INSN_COP1, SEM_FN_NAME (frvbf,cop1) },
28702   { FRVBF_INSN_COP2, SEM_FN_NAME (frvbf,cop2) },
28703   { FRVBF_INSN_CLRGR, SEM_FN_NAME (frvbf,clrgr) },
28704   { FRVBF_INSN_CLRFR, SEM_FN_NAME (frvbf,clrfr) },
28705   { FRVBF_INSN_CLRGA, SEM_FN_NAME (frvbf,clrga) },
28706   { FRVBF_INSN_CLRFA, SEM_FN_NAME (frvbf,clrfa) },
28707   { FRVBF_INSN_COMMITGR, SEM_FN_NAME (frvbf,commitgr) },
28708   { FRVBF_INSN_COMMITFR, SEM_FN_NAME (frvbf,commitfr) },
28709   { FRVBF_INSN_COMMITGA, SEM_FN_NAME (frvbf,commitga) },
28710   { FRVBF_INSN_COMMITFA, SEM_FN_NAME (frvbf,commitfa) },
28711   { FRVBF_INSN_FITOS, SEM_FN_NAME (frvbf,fitos) },
28712   { FRVBF_INSN_FSTOI, SEM_FN_NAME (frvbf,fstoi) },
28713   { FRVBF_INSN_FITOD, SEM_FN_NAME (frvbf,fitod) },
28714   { FRVBF_INSN_FDTOI, SEM_FN_NAME (frvbf,fdtoi) },
28715   { FRVBF_INSN_FDITOS, SEM_FN_NAME (frvbf,fditos) },
28716   { FRVBF_INSN_FDSTOI, SEM_FN_NAME (frvbf,fdstoi) },
28717   { FRVBF_INSN_NFDITOS, SEM_FN_NAME (frvbf,nfditos) },
28718   { FRVBF_INSN_NFDSTOI, SEM_FN_NAME (frvbf,nfdstoi) },
28719   { FRVBF_INSN_CFITOS, SEM_FN_NAME (frvbf,cfitos) },
28720   { FRVBF_INSN_CFSTOI, SEM_FN_NAME (frvbf,cfstoi) },
28721   { FRVBF_INSN_NFITOS, SEM_FN_NAME (frvbf,nfitos) },
28722   { FRVBF_INSN_NFSTOI, SEM_FN_NAME (frvbf,nfstoi) },
28723   { FRVBF_INSN_FMOVS, SEM_FN_NAME (frvbf,fmovs) },
28724   { FRVBF_INSN_FMOVD, SEM_FN_NAME (frvbf,fmovd) },
28725   { FRVBF_INSN_FDMOVS, SEM_FN_NAME (frvbf,fdmovs) },
28726   { FRVBF_INSN_CFMOVS, SEM_FN_NAME (frvbf,cfmovs) },
28727   { FRVBF_INSN_FNEGS, SEM_FN_NAME (frvbf,fnegs) },
28728   { FRVBF_INSN_FNEGD, SEM_FN_NAME (frvbf,fnegd) },
28729   { FRVBF_INSN_FDNEGS, SEM_FN_NAME (frvbf,fdnegs) },
28730   { FRVBF_INSN_CFNEGS, SEM_FN_NAME (frvbf,cfnegs) },
28731   { FRVBF_INSN_FABSS, SEM_FN_NAME (frvbf,fabss) },
28732   { FRVBF_INSN_FABSD, SEM_FN_NAME (frvbf,fabsd) },
28733   { FRVBF_INSN_FDABSS, SEM_FN_NAME (frvbf,fdabss) },
28734   { FRVBF_INSN_CFABSS, SEM_FN_NAME (frvbf,cfabss) },
28735   { FRVBF_INSN_FSQRTS, SEM_FN_NAME (frvbf,fsqrts) },
28736   { FRVBF_INSN_FDSQRTS, SEM_FN_NAME (frvbf,fdsqrts) },
28737   { FRVBF_INSN_NFDSQRTS, SEM_FN_NAME (frvbf,nfdsqrts) },
28738   { FRVBF_INSN_FSQRTD, SEM_FN_NAME (frvbf,fsqrtd) },
28739   { FRVBF_INSN_CFSQRTS, SEM_FN_NAME (frvbf,cfsqrts) },
28740   { FRVBF_INSN_NFSQRTS, SEM_FN_NAME (frvbf,nfsqrts) },
28741   { FRVBF_INSN_FADDS, SEM_FN_NAME (frvbf,fadds) },
28742   { FRVBF_INSN_FSUBS, SEM_FN_NAME (frvbf,fsubs) },
28743   { FRVBF_INSN_FMULS, SEM_FN_NAME (frvbf,fmuls) },
28744   { FRVBF_INSN_FDIVS, SEM_FN_NAME (frvbf,fdivs) },
28745   { FRVBF_INSN_FADDD, SEM_FN_NAME (frvbf,faddd) },
28746   { FRVBF_INSN_FSUBD, SEM_FN_NAME (frvbf,fsubd) },
28747   { FRVBF_INSN_FMULD, SEM_FN_NAME (frvbf,fmuld) },
28748   { FRVBF_INSN_FDIVD, SEM_FN_NAME (frvbf,fdivd) },
28749   { FRVBF_INSN_CFADDS, SEM_FN_NAME (frvbf,cfadds) },
28750   { FRVBF_INSN_CFSUBS, SEM_FN_NAME (frvbf,cfsubs) },
28751   { FRVBF_INSN_CFMULS, SEM_FN_NAME (frvbf,cfmuls) },
28752   { FRVBF_INSN_CFDIVS, SEM_FN_NAME (frvbf,cfdivs) },
28753   { FRVBF_INSN_NFADDS, SEM_FN_NAME (frvbf,nfadds) },
28754   { FRVBF_INSN_NFSUBS, SEM_FN_NAME (frvbf,nfsubs) },
28755   { FRVBF_INSN_NFMULS, SEM_FN_NAME (frvbf,nfmuls) },
28756   { FRVBF_INSN_NFDIVS, SEM_FN_NAME (frvbf,nfdivs) },
28757   { FRVBF_INSN_FCMPS, SEM_FN_NAME (frvbf,fcmps) },
28758   { FRVBF_INSN_FCMPD, SEM_FN_NAME (frvbf,fcmpd) },
28759   { FRVBF_INSN_CFCMPS, SEM_FN_NAME (frvbf,cfcmps) },
28760   { FRVBF_INSN_FDCMPS, SEM_FN_NAME (frvbf,fdcmps) },
28761   { FRVBF_INSN_FMADDS, SEM_FN_NAME (frvbf,fmadds) },
28762   { FRVBF_INSN_FMSUBS, SEM_FN_NAME (frvbf,fmsubs) },
28763   { FRVBF_INSN_FMADDD, SEM_FN_NAME (frvbf,fmaddd) },
28764   { FRVBF_INSN_FMSUBD, SEM_FN_NAME (frvbf,fmsubd) },
28765   { FRVBF_INSN_FDMADDS, SEM_FN_NAME (frvbf,fdmadds) },
28766   { FRVBF_INSN_NFDMADDS, SEM_FN_NAME (frvbf,nfdmadds) },
28767   { FRVBF_INSN_CFMADDS, SEM_FN_NAME (frvbf,cfmadds) },
28768   { FRVBF_INSN_CFMSUBS, SEM_FN_NAME (frvbf,cfmsubs) },
28769   { FRVBF_INSN_NFMADDS, SEM_FN_NAME (frvbf,nfmadds) },
28770   { FRVBF_INSN_NFMSUBS, SEM_FN_NAME (frvbf,nfmsubs) },
28771   { FRVBF_INSN_FMAS, SEM_FN_NAME (frvbf,fmas) },
28772   { FRVBF_INSN_FMSS, SEM_FN_NAME (frvbf,fmss) },
28773   { FRVBF_INSN_FDMAS, SEM_FN_NAME (frvbf,fdmas) },
28774   { FRVBF_INSN_FDMSS, SEM_FN_NAME (frvbf,fdmss) },
28775   { FRVBF_INSN_NFDMAS, SEM_FN_NAME (frvbf,nfdmas) },
28776   { FRVBF_INSN_NFDMSS, SEM_FN_NAME (frvbf,nfdmss) },
28777   { FRVBF_INSN_CFMAS, SEM_FN_NAME (frvbf,cfmas) },
28778   { FRVBF_INSN_CFMSS, SEM_FN_NAME (frvbf,cfmss) },
28779   { FRVBF_INSN_FMAD, SEM_FN_NAME (frvbf,fmad) },
28780   { FRVBF_INSN_FMSD, SEM_FN_NAME (frvbf,fmsd) },
28781   { FRVBF_INSN_NFMAS, SEM_FN_NAME (frvbf,nfmas) },
28782   { FRVBF_INSN_NFMSS, SEM_FN_NAME (frvbf,nfmss) },
28783   { FRVBF_INSN_FDADDS, SEM_FN_NAME (frvbf,fdadds) },
28784   { FRVBF_INSN_FDSUBS, SEM_FN_NAME (frvbf,fdsubs) },
28785   { FRVBF_INSN_FDMULS, SEM_FN_NAME (frvbf,fdmuls) },
28786   { FRVBF_INSN_FDDIVS, SEM_FN_NAME (frvbf,fddivs) },
28787   { FRVBF_INSN_FDSADS, SEM_FN_NAME (frvbf,fdsads) },
28788   { FRVBF_INSN_FDMULCS, SEM_FN_NAME (frvbf,fdmulcs) },
28789   { FRVBF_INSN_NFDMULCS, SEM_FN_NAME (frvbf,nfdmulcs) },
28790   { FRVBF_INSN_NFDADDS, SEM_FN_NAME (frvbf,nfdadds) },
28791   { FRVBF_INSN_NFDSUBS, SEM_FN_NAME (frvbf,nfdsubs) },
28792   { FRVBF_INSN_NFDMULS, SEM_FN_NAME (frvbf,nfdmuls) },
28793   { FRVBF_INSN_NFDDIVS, SEM_FN_NAME (frvbf,nfddivs) },
28794   { FRVBF_INSN_NFDSADS, SEM_FN_NAME (frvbf,nfdsads) },
28795   { FRVBF_INSN_NFDCMPS, SEM_FN_NAME (frvbf,nfdcmps) },
28796   { FRVBF_INSN_MHSETLOS, SEM_FN_NAME (frvbf,mhsetlos) },
28797   { FRVBF_INSN_MHSETHIS, SEM_FN_NAME (frvbf,mhsethis) },
28798   { FRVBF_INSN_MHDSETS, SEM_FN_NAME (frvbf,mhdsets) },
28799   { FRVBF_INSN_MHSETLOH, SEM_FN_NAME (frvbf,mhsetloh) },
28800   { FRVBF_INSN_MHSETHIH, SEM_FN_NAME (frvbf,mhsethih) },
28801   { FRVBF_INSN_MHDSETH, SEM_FN_NAME (frvbf,mhdseth) },
28802   { FRVBF_INSN_MAND, SEM_FN_NAME (frvbf,mand) },
28803   { FRVBF_INSN_MOR, SEM_FN_NAME (frvbf,mor) },
28804   { FRVBF_INSN_MXOR, SEM_FN_NAME (frvbf,mxor) },
28805   { FRVBF_INSN_CMAND, SEM_FN_NAME (frvbf,cmand) },
28806   { FRVBF_INSN_CMOR, SEM_FN_NAME (frvbf,cmor) },
28807   { FRVBF_INSN_CMXOR, SEM_FN_NAME (frvbf,cmxor) },
28808   { FRVBF_INSN_MNOT, SEM_FN_NAME (frvbf,mnot) },
28809   { FRVBF_INSN_CMNOT, SEM_FN_NAME (frvbf,cmnot) },
28810   { FRVBF_INSN_MROTLI, SEM_FN_NAME (frvbf,mrotli) },
28811   { FRVBF_INSN_MROTRI, SEM_FN_NAME (frvbf,mrotri) },
28812   { FRVBF_INSN_MWCUT, SEM_FN_NAME (frvbf,mwcut) },
28813   { FRVBF_INSN_MWCUTI, SEM_FN_NAME (frvbf,mwcuti) },
28814   { FRVBF_INSN_MCUT, SEM_FN_NAME (frvbf,mcut) },
28815   { FRVBF_INSN_MCUTI, SEM_FN_NAME (frvbf,mcuti) },
28816   { FRVBF_INSN_MCUTSS, SEM_FN_NAME (frvbf,mcutss) },
28817   { FRVBF_INSN_MCUTSSI, SEM_FN_NAME (frvbf,mcutssi) },
28818   { FRVBF_INSN_MDCUTSSI, SEM_FN_NAME (frvbf,mdcutssi) },
28819   { FRVBF_INSN_MAVEH, SEM_FN_NAME (frvbf,maveh) },
28820   { FRVBF_INSN_MSLLHI, SEM_FN_NAME (frvbf,msllhi) },
28821   { FRVBF_INSN_MSRLHI, SEM_FN_NAME (frvbf,msrlhi) },
28822   { FRVBF_INSN_MSRAHI, SEM_FN_NAME (frvbf,msrahi) },
28823   { FRVBF_INSN_MDROTLI, SEM_FN_NAME (frvbf,mdrotli) },
28824   { FRVBF_INSN_MCPLHI, SEM_FN_NAME (frvbf,mcplhi) },
28825   { FRVBF_INSN_MCPLI, SEM_FN_NAME (frvbf,mcpli) },
28826   { FRVBF_INSN_MSATHS, SEM_FN_NAME (frvbf,msaths) },
28827   { FRVBF_INSN_MQSATHS, SEM_FN_NAME (frvbf,mqsaths) },
28828   { FRVBF_INSN_MSATHU, SEM_FN_NAME (frvbf,msathu) },
28829   { FRVBF_INSN_MCMPSH, SEM_FN_NAME (frvbf,mcmpsh) },
28830   { FRVBF_INSN_MCMPUH, SEM_FN_NAME (frvbf,mcmpuh) },
28831   { FRVBF_INSN_MABSHS, SEM_FN_NAME (frvbf,mabshs) },
28832   { FRVBF_INSN_MADDHSS, SEM_FN_NAME (frvbf,maddhss) },
28833   { FRVBF_INSN_MADDHUS, SEM_FN_NAME (frvbf,maddhus) },
28834   { FRVBF_INSN_MSUBHSS, SEM_FN_NAME (frvbf,msubhss) },
28835   { FRVBF_INSN_MSUBHUS, SEM_FN_NAME (frvbf,msubhus) },
28836   { FRVBF_INSN_CMADDHSS, SEM_FN_NAME (frvbf,cmaddhss) },
28837   { FRVBF_INSN_CMADDHUS, SEM_FN_NAME (frvbf,cmaddhus) },
28838   { FRVBF_INSN_CMSUBHSS, SEM_FN_NAME (frvbf,cmsubhss) },
28839   { FRVBF_INSN_CMSUBHUS, SEM_FN_NAME (frvbf,cmsubhus) },
28840   { FRVBF_INSN_MQADDHSS, SEM_FN_NAME (frvbf,mqaddhss) },
28841   { FRVBF_INSN_MQADDHUS, SEM_FN_NAME (frvbf,mqaddhus) },
28842   { FRVBF_INSN_MQSUBHSS, SEM_FN_NAME (frvbf,mqsubhss) },
28843   { FRVBF_INSN_MQSUBHUS, SEM_FN_NAME (frvbf,mqsubhus) },
28844   { FRVBF_INSN_CMQADDHSS, SEM_FN_NAME (frvbf,cmqaddhss) },
28845   { FRVBF_INSN_CMQADDHUS, SEM_FN_NAME (frvbf,cmqaddhus) },
28846   { FRVBF_INSN_CMQSUBHSS, SEM_FN_NAME (frvbf,cmqsubhss) },
28847   { FRVBF_INSN_CMQSUBHUS, SEM_FN_NAME (frvbf,cmqsubhus) },
28848   { FRVBF_INSN_MQLCLRHS, SEM_FN_NAME (frvbf,mqlclrhs) },
28849   { FRVBF_INSN_MQLMTHS, SEM_FN_NAME (frvbf,mqlmths) },
28850   { FRVBF_INSN_MQSLLHI, SEM_FN_NAME (frvbf,mqsllhi) },
28851   { FRVBF_INSN_MQSRAHI, SEM_FN_NAME (frvbf,mqsrahi) },
28852   { FRVBF_INSN_MADDACCS, SEM_FN_NAME (frvbf,maddaccs) },
28853   { FRVBF_INSN_MSUBACCS, SEM_FN_NAME (frvbf,msubaccs) },
28854   { FRVBF_INSN_MDADDACCS, SEM_FN_NAME (frvbf,mdaddaccs) },
28855   { FRVBF_INSN_MDSUBACCS, SEM_FN_NAME (frvbf,mdsubaccs) },
28856   { FRVBF_INSN_MASACCS, SEM_FN_NAME (frvbf,masaccs) },
28857   { FRVBF_INSN_MDASACCS, SEM_FN_NAME (frvbf,mdasaccs) },
28858   { FRVBF_INSN_MMULHS, SEM_FN_NAME (frvbf,mmulhs) },
28859   { FRVBF_INSN_MMULHU, SEM_FN_NAME (frvbf,mmulhu) },
28860   { FRVBF_INSN_MMULXHS, SEM_FN_NAME (frvbf,mmulxhs) },
28861   { FRVBF_INSN_MMULXHU, SEM_FN_NAME (frvbf,mmulxhu) },
28862   { FRVBF_INSN_CMMULHS, SEM_FN_NAME (frvbf,cmmulhs) },
28863   { FRVBF_INSN_CMMULHU, SEM_FN_NAME (frvbf,cmmulhu) },
28864   { FRVBF_INSN_MQMULHS, SEM_FN_NAME (frvbf,mqmulhs) },
28865   { FRVBF_INSN_MQMULHU, SEM_FN_NAME (frvbf,mqmulhu) },
28866   { FRVBF_INSN_MQMULXHS, SEM_FN_NAME (frvbf,mqmulxhs) },
28867   { FRVBF_INSN_MQMULXHU, SEM_FN_NAME (frvbf,mqmulxhu) },
28868   { FRVBF_INSN_CMQMULHS, SEM_FN_NAME (frvbf,cmqmulhs) },
28869   { FRVBF_INSN_CMQMULHU, SEM_FN_NAME (frvbf,cmqmulhu) },
28870   { FRVBF_INSN_MMACHS, SEM_FN_NAME (frvbf,mmachs) },
28871   { FRVBF_INSN_MMACHU, SEM_FN_NAME (frvbf,mmachu) },
28872   { FRVBF_INSN_MMRDHS, SEM_FN_NAME (frvbf,mmrdhs) },
28873   { FRVBF_INSN_MMRDHU, SEM_FN_NAME (frvbf,mmrdhu) },
28874   { FRVBF_INSN_CMMACHS, SEM_FN_NAME (frvbf,cmmachs) },
28875   { FRVBF_INSN_CMMACHU, SEM_FN_NAME (frvbf,cmmachu) },
28876   { FRVBF_INSN_MQMACHS, SEM_FN_NAME (frvbf,mqmachs) },
28877   { FRVBF_INSN_MQMACHU, SEM_FN_NAME (frvbf,mqmachu) },
28878   { FRVBF_INSN_CMQMACHS, SEM_FN_NAME (frvbf,cmqmachs) },
28879   { FRVBF_INSN_CMQMACHU, SEM_FN_NAME (frvbf,cmqmachu) },
28880   { FRVBF_INSN_MQXMACHS, SEM_FN_NAME (frvbf,mqxmachs) },
28881   { FRVBF_INSN_MQXMACXHS, SEM_FN_NAME (frvbf,mqxmacxhs) },
28882   { FRVBF_INSN_MQMACXHS, SEM_FN_NAME (frvbf,mqmacxhs) },
28883   { FRVBF_INSN_MCPXRS, SEM_FN_NAME (frvbf,mcpxrs) },
28884   { FRVBF_INSN_MCPXRU, SEM_FN_NAME (frvbf,mcpxru) },
28885   { FRVBF_INSN_MCPXIS, SEM_FN_NAME (frvbf,mcpxis) },
28886   { FRVBF_INSN_MCPXIU, SEM_FN_NAME (frvbf,mcpxiu) },
28887   { FRVBF_INSN_CMCPXRS, SEM_FN_NAME (frvbf,cmcpxrs) },
28888   { FRVBF_INSN_CMCPXRU, SEM_FN_NAME (frvbf,cmcpxru) },
28889   { FRVBF_INSN_CMCPXIS, SEM_FN_NAME (frvbf,cmcpxis) },
28890   { FRVBF_INSN_CMCPXIU, SEM_FN_NAME (frvbf,cmcpxiu) },
28891   { FRVBF_INSN_MQCPXRS, SEM_FN_NAME (frvbf,mqcpxrs) },
28892   { FRVBF_INSN_MQCPXRU, SEM_FN_NAME (frvbf,mqcpxru) },
28893   { FRVBF_INSN_MQCPXIS, SEM_FN_NAME (frvbf,mqcpxis) },
28894   { FRVBF_INSN_MQCPXIU, SEM_FN_NAME (frvbf,mqcpxiu) },
28895   { FRVBF_INSN_MEXPDHW, SEM_FN_NAME (frvbf,mexpdhw) },
28896   { FRVBF_INSN_CMEXPDHW, SEM_FN_NAME (frvbf,cmexpdhw) },
28897   { FRVBF_INSN_MEXPDHD, SEM_FN_NAME (frvbf,mexpdhd) },
28898   { FRVBF_INSN_CMEXPDHD, SEM_FN_NAME (frvbf,cmexpdhd) },
28899   { FRVBF_INSN_MPACKH, SEM_FN_NAME (frvbf,mpackh) },
28900   { FRVBF_INSN_MDPACKH, SEM_FN_NAME (frvbf,mdpackh) },
28901   { FRVBF_INSN_MUNPACKH, SEM_FN_NAME (frvbf,munpackh) },
28902   { FRVBF_INSN_MDUNPACKH, SEM_FN_NAME (frvbf,mdunpackh) },
28903   { FRVBF_INSN_MBTOH, SEM_FN_NAME (frvbf,mbtoh) },
28904   { FRVBF_INSN_CMBTOH, SEM_FN_NAME (frvbf,cmbtoh) },
28905   { FRVBF_INSN_MHTOB, SEM_FN_NAME (frvbf,mhtob) },
28906   { FRVBF_INSN_CMHTOB, SEM_FN_NAME (frvbf,cmhtob) },
28907   { FRVBF_INSN_MBTOHE, SEM_FN_NAME (frvbf,mbtohe) },
28908   { FRVBF_INSN_CMBTOHE, SEM_FN_NAME (frvbf,cmbtohe) },
28909   { FRVBF_INSN_MNOP, SEM_FN_NAME (frvbf,mnop) },
28910   { FRVBF_INSN_MCLRACC_0, SEM_FN_NAME (frvbf,mclracc_0) },
28911   { FRVBF_INSN_MCLRACC_1, SEM_FN_NAME (frvbf,mclracc_1) },
28912   { FRVBF_INSN_MRDACC, SEM_FN_NAME (frvbf,mrdacc) },
28913   { FRVBF_INSN_MRDACCG, SEM_FN_NAME (frvbf,mrdaccg) },
28914   { FRVBF_INSN_MWTACC, SEM_FN_NAME (frvbf,mwtacc) },
28915   { FRVBF_INSN_MWTACCG, SEM_FN_NAME (frvbf,mwtaccg) },
28916   { FRVBF_INSN_MCOP1, SEM_FN_NAME (frvbf,mcop1) },
28917   { FRVBF_INSN_MCOP2, SEM_FN_NAME (frvbf,mcop2) },
28918   { FRVBF_INSN_FNOP, SEM_FN_NAME (frvbf,fnop) },
28919   { 0, 0 }
28920 };
28921
28922 /* Add the semantic fns to IDESC_TABLE.  */
28923
28924 void
28925 SEM_FN_NAME (frvbf,init_idesc_table) (SIM_CPU *current_cpu)
28926 {
28927   IDESC *idesc_table = CPU_IDESC (current_cpu);
28928   const struct sem_fn_desc *sf;
28929   int mach_num = MACH_NUM (CPU_MACH (current_cpu));
28930
28931   for (sf = &sem_fns[0]; sf->fn != 0; ++sf)
28932     {
28933       const CGEN_INSN *insn = idesc_table[sf->index].idata;
28934       int valid_p = (CGEN_INSN_VIRTUAL_P (insn)
28935                      || CGEN_INSN_MACH_HAS_P (insn, mach_num));
28936 #if FAST_P
28937       if (valid_p)
28938         idesc_table[sf->index].sem_fast = sf->fn;
28939       else
28940         idesc_table[sf->index].sem_fast = SEM_FN_NAME (frvbf,x_invalid);
28941 #else
28942       if (valid_p)
28943         idesc_table[sf->index].sem_full = sf->fn;
28944       else
28945         idesc_table[sf->index].sem_full = SEM_FN_NAME (frvbf,x_invalid);
28946 #endif
28947     }
28948 }
28949