9211cc8c467aceeeb15c02d1367497418730a46a
[platform/upstream/gdb.git] / sim / frv / sem.c
1 /* Simulator instruction semantics for frvbf.
2
3 THIS FILE IS MACHINE GENERATED WITH CGEN.
4
5 Copyright 1996-2014 Free Software Foundation, Inc.
6
7 This file is part of the GNU simulators.
8
9    This file 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, or (at your option)
12    any later version.
13
14    It is distributed in the hope that it will be useful, but WITHOUT
15    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
16    or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
17    License for more details.
18
19    You should have received a copy of the GNU General Public License along
20    with this program; if not, 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 #define GET_ATTR(cpu, num, attr) CGEN_ATTR_VALUE (NULL, abuf->idesc->attrs, CGEN_INSN_##attr)
33
34 /* This is used so that we can compile two copies of the semantic code,
35    one with full feature support and one without that runs fast(er).
36    FAST_P, when desired, is defined on the command line, -DFAST_P=1.  */
37 #if FAST_P
38 #define SEM_FN_NAME(cpu,fn) XCONCAT3 (cpu,_semf_,fn)
39 #undef TRACE_RESULT
40 #define TRACE_RESULT(cpu, abuf, name, type, val)
41 #else
42 #define SEM_FN_NAME(cpu,fn) XCONCAT3 (cpu,_sem_,fn)
43 #endif
44
45 /* x-invalid: --invalid-- */
46
47 static SEM_PC
48 SEM_FN_NAME (frvbf,x_invalid) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
49 {
50 #define FLD(f) abuf->fields.sfmt_empty.f
51   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
52   int UNUSED written = 0;
53   IADDR UNUSED pc = abuf->addr;
54   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 0);
55
56   {
57     /* Update the recorded pc in the cpu state struct.
58        Only necessary for WITH_SCACHE case, but to avoid the
59        conditional compilation ....  */
60     SET_H_PC (pc);
61     /* Virtual insns have zero size.  Overwrite vpc with address of next insn
62        using the default-insn-bitsize spec.  When executing insns in parallel
63        we may want to queue the fault and continue execution.  */
64     vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
65     vpc = sim_engine_invalid_insn (current_cpu, pc, vpc);
66   }
67
68   return vpc;
69 #undef FLD
70 }
71
72 /* x-after: --after-- */
73
74 static SEM_PC
75 SEM_FN_NAME (frvbf,x_after) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
76 {
77 #define FLD(f) abuf->fields.sfmt_empty.f
78   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
79   int UNUSED written = 0;
80   IADDR UNUSED pc = abuf->addr;
81   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 0);
82
83   {
84 #if WITH_SCACHE_PBB_FRVBF
85     frvbf_pbb_after (current_cpu, sem_arg);
86 #endif
87   }
88
89   return vpc;
90 #undef FLD
91 }
92
93 /* x-before: --before-- */
94
95 static SEM_PC
96 SEM_FN_NAME (frvbf,x_before) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
97 {
98 #define FLD(f) abuf->fields.sfmt_empty.f
99   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
100   int UNUSED written = 0;
101   IADDR UNUSED pc = abuf->addr;
102   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 0);
103
104   {
105 #if WITH_SCACHE_PBB_FRVBF
106     frvbf_pbb_before (current_cpu, sem_arg);
107 #endif
108   }
109
110   return vpc;
111 #undef FLD
112 }
113
114 /* x-cti-chain: --cti-chain-- */
115
116 static SEM_PC
117 SEM_FN_NAME (frvbf,x_cti_chain) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
118 {
119 #define FLD(f) abuf->fields.sfmt_empty.f
120   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
121   int UNUSED written = 0;
122   IADDR UNUSED pc = abuf->addr;
123   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 0);
124
125   {
126 #if WITH_SCACHE_PBB_FRVBF
127 #ifdef DEFINE_SWITCH
128     vpc = frvbf_pbb_cti_chain (current_cpu, sem_arg,
129                                pbb_br_type, pbb_br_npc);
130     BREAK (sem);
131 #else
132     /* FIXME: Allow provision of explicit ifmt spec in insn spec.  */
133     vpc = frvbf_pbb_cti_chain (current_cpu, sem_arg,
134                                CPU_PBB_BR_TYPE (current_cpu),
135                                CPU_PBB_BR_NPC (current_cpu));
136 #endif
137 #endif
138   }
139
140   return vpc;
141 #undef FLD
142 }
143
144 /* x-chain: --chain-- */
145
146 static SEM_PC
147 SEM_FN_NAME (frvbf,x_chain) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
148 {
149 #define FLD(f) abuf->fields.sfmt_empty.f
150   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
151   int UNUSED written = 0;
152   IADDR UNUSED pc = abuf->addr;
153   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 0);
154
155   {
156 #if WITH_SCACHE_PBB_FRVBF
157     vpc = frvbf_pbb_chain (current_cpu, sem_arg);
158 #ifdef DEFINE_SWITCH
159     BREAK (sem);
160 #endif
161 #endif
162   }
163
164   return vpc;
165 #undef FLD
166 }
167
168 /* x-begin: --begin-- */
169
170 static SEM_PC
171 SEM_FN_NAME (frvbf,x_begin) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
172 {
173 #define FLD(f) abuf->fields.sfmt_empty.f
174   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
175   int UNUSED written = 0;
176   IADDR UNUSED pc = abuf->addr;
177   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 0);
178
179   {
180 #if WITH_SCACHE_PBB_FRVBF
181 #if defined DEFINE_SWITCH || defined FAST_P
182     /* In the switch case FAST_P is a constant, allowing several optimizations
183        in any called inline functions.  */
184     vpc = frvbf_pbb_begin (current_cpu, FAST_P);
185 #else
186 #if 0 /* cgen engine can't handle dynamic fast/full switching yet.  */
187     vpc = frvbf_pbb_begin (current_cpu, STATE_RUN_FAST_P (CPU_STATE (current_cpu)));
188 #else
189     vpc = frvbf_pbb_begin (current_cpu, 0);
190 #endif
191 #endif
192 #endif
193   }
194
195   return vpc;
196 #undef FLD
197 }
198
199 /* add: add$pack $GRi,$GRj,$GRk */
200
201 static SEM_PC
202 SEM_FN_NAME (frvbf,add) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
203 {
204 #define FLD(f) abuf->fields.sfmt_addcc.f
205   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
206   int UNUSED written = 0;
207   IADDR UNUSED pc = abuf->addr;
208   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
209
210   {
211     SI opval = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
212     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
213     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
214   }
215
216   return vpc;
217 #undef FLD
218 }
219
220 /* sub: sub$pack $GRi,$GRj,$GRk */
221
222 static SEM_PC
223 SEM_FN_NAME (frvbf,sub) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
224 {
225 #define FLD(f) abuf->fields.sfmt_addcc.f
226   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
227   int UNUSED written = 0;
228   IADDR UNUSED pc = abuf->addr;
229   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
230
231   {
232     SI opval = SUBSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
233     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
234     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
235   }
236
237   return vpc;
238 #undef FLD
239 }
240
241 /* and: and$pack $GRi,$GRj,$GRk */
242
243 static SEM_PC
244 SEM_FN_NAME (frvbf,and) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
245 {
246 #define FLD(f) abuf->fields.sfmt_addcc.f
247   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
248   int UNUSED written = 0;
249   IADDR UNUSED pc = abuf->addr;
250   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
251
252   {
253     SI opval = ANDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
254     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
255     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
256   }
257
258   return vpc;
259 #undef FLD
260 }
261
262 /* or: or$pack $GRi,$GRj,$GRk */
263
264 static SEM_PC
265 SEM_FN_NAME (frvbf,or) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
266 {
267 #define FLD(f) abuf->fields.sfmt_addcc.f
268   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
269   int UNUSED written = 0;
270   IADDR UNUSED pc = abuf->addr;
271   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
272
273   {
274     SI opval = ORSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
275     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
276     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
277   }
278
279   return vpc;
280 #undef FLD
281 }
282
283 /* xor: xor$pack $GRi,$GRj,$GRk */
284
285 static SEM_PC
286 SEM_FN_NAME (frvbf,xor) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
287 {
288 #define FLD(f) abuf->fields.sfmt_addcc.f
289   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
290   int UNUSED written = 0;
291   IADDR UNUSED pc = abuf->addr;
292   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
293
294   {
295     SI opval = XORSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
296     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
297     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
298   }
299
300   return vpc;
301 #undef FLD
302 }
303
304 /* not: not$pack $GRj,$GRk */
305
306 static SEM_PC
307 SEM_FN_NAME (frvbf,not) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
308 {
309 #define FLD(f) abuf->fields.sfmt_scutss.f
310   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
311   int UNUSED written = 0;
312   IADDR UNUSED pc = abuf->addr;
313   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
314
315   {
316     SI opval = INVSI (GET_H_GR (FLD (f_GRj)));
317     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
318     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
319   }
320
321   return vpc;
322 #undef FLD
323 }
324
325 /* sdiv: sdiv$pack $GRi,$GRj,$GRk */
326
327 static SEM_PC
328 SEM_FN_NAME (frvbf,sdiv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
329 {
330 #define FLD(f) abuf->fields.sfmt_addcc.f
331   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
332   int UNUSED written = 0;
333   IADDR UNUSED pc = abuf->addr;
334   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
335
336 {
337 frvbf_signed_integer_divide (current_cpu, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), FLD (f_GRk), 0);
338 ; /*clobber*/
339 }
340
341   return vpc;
342 #undef FLD
343 }
344
345 /* nsdiv: nsdiv$pack $GRi,$GRj,$GRk */
346
347 static SEM_PC
348 SEM_FN_NAME (frvbf,nsdiv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
349 {
350 #define FLD(f) abuf->fields.sfmt_addcc.f
351   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
352   int UNUSED written = 0;
353   IADDR UNUSED pc = abuf->addr;
354   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
355
356 {
357 frvbf_signed_integer_divide (current_cpu, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), FLD (f_GRk), 1);
358 ; /*clobber*/
359 }
360
361   return vpc;
362 #undef FLD
363 }
364
365 /* udiv: udiv$pack $GRi,$GRj,$GRk */
366
367 static SEM_PC
368 SEM_FN_NAME (frvbf,udiv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
369 {
370 #define FLD(f) abuf->fields.sfmt_addcc.f
371   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
372   int UNUSED written = 0;
373   IADDR UNUSED pc = abuf->addr;
374   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
375
376 {
377 frvbf_unsigned_integer_divide (current_cpu, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), FLD (f_GRk), 0);
378 ; /*clobber*/
379 }
380
381   return vpc;
382 #undef FLD
383 }
384
385 /* nudiv: nudiv$pack $GRi,$GRj,$GRk */
386
387 static SEM_PC
388 SEM_FN_NAME (frvbf,nudiv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
389 {
390 #define FLD(f) abuf->fields.sfmt_addcc.f
391   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
392   int UNUSED written = 0;
393   IADDR UNUSED pc = abuf->addr;
394   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
395
396 {
397 frvbf_unsigned_integer_divide (current_cpu, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), FLD (f_GRk), 1);
398 ; /*clobber*/
399 }
400
401   return vpc;
402 #undef FLD
403 }
404
405 /* smul: smul$pack $GRi,$GRj,$GRdoublek */
406
407 static SEM_PC
408 SEM_FN_NAME (frvbf,smul) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
409 {
410 #define FLD(f) abuf->fields.sfmt_smulcc.f
411   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
412   int UNUSED written = 0;
413   IADDR UNUSED pc = abuf->addr;
414   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
415
416   {
417     DI opval = MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi))), EXTSIDI (GET_H_GR (FLD (f_GRj))));
418     sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
419     TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
420   }
421
422   return vpc;
423 #undef FLD
424 }
425
426 /* umul: umul$pack $GRi,$GRj,$GRdoublek */
427
428 static SEM_PC
429 SEM_FN_NAME (frvbf,umul) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
430 {
431 #define FLD(f) abuf->fields.sfmt_smulcc.f
432   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
433   int UNUSED written = 0;
434   IADDR UNUSED pc = abuf->addr;
435   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
436
437   {
438     DI opval = MULDI (ZEXTSIDI (GET_H_GR (FLD (f_GRi))), ZEXTSIDI (GET_H_GR (FLD (f_GRj))));
439     sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
440     TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
441   }
442
443   return vpc;
444 #undef FLD
445 }
446
447 /* smu: smu$pack $GRi,$GRj */
448
449 static SEM_PC
450 SEM_FN_NAME (frvbf,smu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
451 {
452 #define FLD(f) abuf->fields.sfmt_smass.f
453   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
454   int UNUSED written = 0;
455   IADDR UNUSED pc = abuf->addr;
456   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
457
458   {
459     DI opval = MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi))), EXTSIDI (GET_H_GR (FLD (f_GRj))));
460     sim_queue_fn_di_write (current_cpu, frvbf_h_iacc0_set, ((UINT) 0), opval);
461     TRACE_RESULT (current_cpu, abuf, "iacc0", 'D', opval);
462   }
463
464   return vpc;
465 #undef FLD
466 }
467
468 /* smass: smass$pack $GRi,$GRj */
469
470 static SEM_PC
471 SEM_FN_NAME (frvbf,smass) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
472 {
473 #define FLD(f) abuf->fields.sfmt_smass.f
474   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
475   int UNUSED written = 0;
476   IADDR UNUSED pc = abuf->addr;
477   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
478
479   {
480     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 (MAKEDI (2147483647, 0xffffffff), 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 (MAKEDI (0x80000000, 0), 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))))));
481     sim_queue_fn_di_write (current_cpu, frvbf_h_iacc0_set, ((UINT) 0), opval);
482     TRACE_RESULT (current_cpu, abuf, "iacc0", 'D', opval);
483   }
484
485   return vpc;
486 #undef FLD
487 }
488
489 /* smsss: smsss$pack $GRi,$GRj */
490
491 static SEM_PC
492 SEM_FN_NAME (frvbf,smsss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
493 {
494 #define FLD(f) abuf->fields.sfmt_smass.f
495   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
496   int UNUSED written = 0;
497   IADDR UNUSED pc = abuf->addr;
498   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
499
500   {
501     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 (MAKEDI (2147483647, 0xffffffff), 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 (MAKEDI (0x80000000, 0), 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))))));
502     sim_queue_fn_di_write (current_cpu, frvbf_h_iacc0_set, ((UINT) 0), opval);
503     TRACE_RESULT (current_cpu, abuf, "iacc0", 'D', opval);
504   }
505
506   return vpc;
507 #undef FLD
508 }
509
510 /* sll: sll$pack $GRi,$GRj,$GRk */
511
512 static SEM_PC
513 SEM_FN_NAME (frvbf,sll) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
514 {
515 #define FLD(f) abuf->fields.sfmt_addcc.f
516   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
517   int UNUSED written = 0;
518   IADDR UNUSED pc = abuf->addr;
519   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
520
521   {
522     SI opval = SLLSI (GET_H_GR (FLD (f_GRi)), ANDSI (GET_H_GR (FLD (f_GRj)), 31));
523     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
524     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
525   }
526
527   return vpc;
528 #undef FLD
529 }
530
531 /* srl: srl$pack $GRi,$GRj,$GRk */
532
533 static SEM_PC
534 SEM_FN_NAME (frvbf,srl) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
535 {
536 #define FLD(f) abuf->fields.sfmt_addcc.f
537   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
538   int UNUSED written = 0;
539   IADDR UNUSED pc = abuf->addr;
540   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
541
542   {
543     SI opval = SRLSI (GET_H_GR (FLD (f_GRi)), ANDSI (GET_H_GR (FLD (f_GRj)), 31));
544     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
545     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
546   }
547
548   return vpc;
549 #undef FLD
550 }
551
552 /* sra: sra$pack $GRi,$GRj,$GRk */
553
554 static SEM_PC
555 SEM_FN_NAME (frvbf,sra) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
556 {
557 #define FLD(f) abuf->fields.sfmt_addcc.f
558   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
559   int UNUSED written = 0;
560   IADDR UNUSED pc = abuf->addr;
561   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
562
563   {
564     SI opval = SRASI (GET_H_GR (FLD (f_GRi)), ANDSI (GET_H_GR (FLD (f_GRj)), 31));
565     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
566     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
567   }
568
569   return vpc;
570 #undef FLD
571 }
572
573 /* slass: slass$pack $GRi,$GRj,$GRk */
574
575 static SEM_PC
576 SEM_FN_NAME (frvbf,slass) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
577 {
578 #define FLD(f) abuf->fields.sfmt_addcc.f
579   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
580   int UNUSED written = 0;
581   IADDR UNUSED pc = abuf->addr;
582   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
583
584   {
585     SI opval = frvbf_shift_left_arith_saturate (current_cpu, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
586     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
587     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
588   }
589
590   return vpc;
591 #undef FLD
592 }
593
594 /* scutss: scutss$pack $GRj,$GRk */
595
596 static SEM_PC
597 SEM_FN_NAME (frvbf,scutss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
598 {
599 #define FLD(f) abuf->fields.sfmt_scutss.f
600   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
601   int UNUSED written = 0;
602   IADDR UNUSED pc = abuf->addr;
603   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
604
605   {
606     SI opval = frvbf_iacc_cut (current_cpu, GET_H_IACC0 (((UINT) 0)), GET_H_GR (FLD (f_GRj)));
607     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
608     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
609   }
610
611   return vpc;
612 #undef FLD
613 }
614
615 /* scan: scan$pack $GRi,$GRj,$GRk */
616
617 static SEM_PC
618 SEM_FN_NAME (frvbf,scan) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
619 {
620 #define FLD(f) abuf->fields.sfmt_addcc.f
621   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
622   int UNUSED written = 0;
623   IADDR UNUSED pc = abuf->addr;
624   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
625
626 {
627   SI tmp_tmp1;
628   SI tmp_tmp2;
629   tmp_tmp1 = GET_H_GR (FLD (f_GRi));
630   tmp_tmp2 = SRASI (GET_H_GR (FLD (f_GRj)), 1);
631   {
632     SI opval = frvbf_scan_result (current_cpu, XORSI (tmp_tmp1, tmp_tmp2));
633     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
634     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
635   }
636 }
637
638   return vpc;
639 #undef FLD
640 }
641
642 /* cadd: cadd$pack $GRi,$GRj,$GRk,$CCi,$cond */
643
644 static SEM_PC
645 SEM_FN_NAME (frvbf,cadd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
646 {
647 #define FLD(f) abuf->fields.sfmt_cswap.f
648   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
649   int UNUSED written = 0;
650   IADDR UNUSED pc = abuf->addr;
651   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
652
653 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
654   {
655     SI opval = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
656     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
657     written |= (1 << 4);
658     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
659   }
660 }
661
662   abuf->written = written;
663   return vpc;
664 #undef FLD
665 }
666
667 /* csub: csub$pack $GRi,$GRj,$GRk,$CCi,$cond */
668
669 static SEM_PC
670 SEM_FN_NAME (frvbf,csub) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
671 {
672 #define FLD(f) abuf->fields.sfmt_cswap.f
673   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
674   int UNUSED written = 0;
675   IADDR UNUSED pc = abuf->addr;
676   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
677
678 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
679   {
680     SI opval = SUBSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
681     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
682     written |= (1 << 4);
683     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
684   }
685 }
686
687   abuf->written = written;
688   return vpc;
689 #undef FLD
690 }
691
692 /* cand: cand$pack $GRi,$GRj,$GRk,$CCi,$cond */
693
694 static SEM_PC
695 SEM_FN_NAME (frvbf,cand) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
696 {
697 #define FLD(f) abuf->fields.sfmt_cswap.f
698   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
699   int UNUSED written = 0;
700   IADDR UNUSED pc = abuf->addr;
701   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
702
703 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
704   {
705     SI opval = ANDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
706     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
707     written |= (1 << 4);
708     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
709   }
710 }
711
712   abuf->written = written;
713   return vpc;
714 #undef FLD
715 }
716
717 /* cor: cor$pack $GRi,$GRj,$GRk,$CCi,$cond */
718
719 static SEM_PC
720 SEM_FN_NAME (frvbf,cor) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
721 {
722 #define FLD(f) abuf->fields.sfmt_cswap.f
723   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
724   int UNUSED written = 0;
725   IADDR UNUSED pc = abuf->addr;
726   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
727
728 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
729   {
730     SI opval = ORSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
731     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
732     written |= (1 << 4);
733     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
734   }
735 }
736
737   abuf->written = written;
738   return vpc;
739 #undef FLD
740 }
741
742 /* cxor: cxor$pack $GRi,$GRj,$GRk,$CCi,$cond */
743
744 static SEM_PC
745 SEM_FN_NAME (frvbf,cxor) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
746 {
747 #define FLD(f) abuf->fields.sfmt_cswap.f
748   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
749   int UNUSED written = 0;
750   IADDR UNUSED pc = abuf->addr;
751   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
752
753 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
754   {
755     SI opval = XORSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
756     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
757     written |= (1 << 4);
758     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
759   }
760 }
761
762   abuf->written = written;
763   return vpc;
764 #undef FLD
765 }
766
767 /* cnot: cnot$pack $GRj,$GRk,$CCi,$cond */
768
769 static SEM_PC
770 SEM_FN_NAME (frvbf,cnot) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
771 {
772 #define FLD(f) abuf->fields.sfmt_cswap.f
773   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
774   int UNUSED written = 0;
775   IADDR UNUSED pc = abuf->addr;
776   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
777
778 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
779   {
780     SI opval = INVSI (GET_H_GR (FLD (f_GRj)));
781     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
782     written |= (1 << 3);
783     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
784   }
785 }
786
787   abuf->written = written;
788   return vpc;
789 #undef FLD
790 }
791
792 /* csmul: csmul$pack $GRi,$GRj,$GRdoublek,$CCi,$cond */
793
794 static SEM_PC
795 SEM_FN_NAME (frvbf,csmul) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
796 {
797 #define FLD(f) abuf->fields.sfmt_clddu.f
798   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
799   int UNUSED written = 0;
800   IADDR UNUSED pc = abuf->addr;
801   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
802
803 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
804   {
805     DI opval = MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi))), EXTSIDI (GET_H_GR (FLD (f_GRj))));
806     sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
807     written |= (1 << 4);
808     TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
809   }
810 }
811
812   abuf->written = written;
813   return vpc;
814 #undef FLD
815 }
816
817 /* csdiv: csdiv$pack $GRi,$GRj,$GRk,$CCi,$cond */
818
819 static SEM_PC
820 SEM_FN_NAME (frvbf,csdiv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
821 {
822 #define FLD(f) abuf->fields.sfmt_cswap.f
823   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
824   int UNUSED written = 0;
825   IADDR UNUSED pc = abuf->addr;
826   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
827
828 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
829 {
830 frvbf_signed_integer_divide (current_cpu, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), FLD (f_GRk), 0);
831 ; /*clobber*/
832 }
833 }
834
835   abuf->written = written;
836   return vpc;
837 #undef FLD
838 }
839
840 /* cudiv: cudiv$pack $GRi,$GRj,$GRk,$CCi,$cond */
841
842 static SEM_PC
843 SEM_FN_NAME (frvbf,cudiv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
844 {
845 #define FLD(f) abuf->fields.sfmt_cswap.f
846   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
847   int UNUSED written = 0;
848   IADDR UNUSED pc = abuf->addr;
849   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
850
851 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
852 {
853 frvbf_unsigned_integer_divide (current_cpu, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), FLD (f_GRk), 0);
854 ; /*clobber*/
855 }
856 }
857
858   abuf->written = written;
859   return vpc;
860 #undef FLD
861 }
862
863 /* csll: csll$pack $GRi,$GRj,$GRk,$CCi,$cond */
864
865 static SEM_PC
866 SEM_FN_NAME (frvbf,csll) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
867 {
868 #define FLD(f) abuf->fields.sfmt_cswap.f
869   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
870   int UNUSED written = 0;
871   IADDR UNUSED pc = abuf->addr;
872   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
873
874 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
875   {
876     SI opval = SLLSI (GET_H_GR (FLD (f_GRi)), ANDSI (GET_H_GR (FLD (f_GRj)), 31));
877     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
878     written |= (1 << 4);
879     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
880   }
881 }
882
883   abuf->written = written;
884   return vpc;
885 #undef FLD
886 }
887
888 /* csrl: csrl$pack $GRi,$GRj,$GRk,$CCi,$cond */
889
890 static SEM_PC
891 SEM_FN_NAME (frvbf,csrl) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
892 {
893 #define FLD(f) abuf->fields.sfmt_cswap.f
894   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
895   int UNUSED written = 0;
896   IADDR UNUSED pc = abuf->addr;
897   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
898
899 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
900   {
901     SI opval = SRLSI (GET_H_GR (FLD (f_GRi)), ANDSI (GET_H_GR (FLD (f_GRj)), 31));
902     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
903     written |= (1 << 4);
904     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
905   }
906 }
907
908   abuf->written = written;
909   return vpc;
910 #undef FLD
911 }
912
913 /* csra: csra$pack $GRi,$GRj,$GRk,$CCi,$cond */
914
915 static SEM_PC
916 SEM_FN_NAME (frvbf,csra) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
917 {
918 #define FLD(f) abuf->fields.sfmt_cswap.f
919   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
920   int UNUSED written = 0;
921   IADDR UNUSED pc = abuf->addr;
922   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
923
924 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
925   {
926     SI opval = SRASI (GET_H_GR (FLD (f_GRi)), ANDSI (GET_H_GR (FLD (f_GRj)), 31));
927     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
928     written |= (1 << 4);
929     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
930   }
931 }
932
933   abuf->written = written;
934   return vpc;
935 #undef FLD
936 }
937
938 /* cscan: cscan$pack $GRi,$GRj,$GRk,$CCi,$cond */
939
940 static SEM_PC
941 SEM_FN_NAME (frvbf,cscan) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
942 {
943 #define FLD(f) abuf->fields.sfmt_cswap.f
944   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
945   int UNUSED written = 0;
946   IADDR UNUSED pc = abuf->addr;
947   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
948
949 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
950 {
951   SI tmp_tmp1;
952   SI tmp_tmp2;
953   tmp_tmp1 = GET_H_GR (FLD (f_GRi));
954   tmp_tmp2 = SRASI (GET_H_GR (FLD (f_GRj)), 1);
955   {
956     SI opval = frvbf_scan_result (current_cpu, XORSI (tmp_tmp1, tmp_tmp2));
957     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
958     written |= (1 << 4);
959     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
960   }
961 }
962 }
963
964   abuf->written = written;
965   return vpc;
966 #undef FLD
967 }
968
969 /* addcc: addcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
970
971 static SEM_PC
972 SEM_FN_NAME (frvbf,addcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
973 {
974 #define FLD(f) abuf->fields.sfmt_addcc.f
975   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
976   int UNUSED written = 0;
977   IADDR UNUSED pc = abuf->addr;
978   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
979
980 {
981   BI tmp_tmp;
982   QI tmp_cc;
983   SI tmp_result;
984   tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
985   tmp_tmp = ADDOFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), 0);
986 if (EQBI (tmp_tmp, 0)) {
987   tmp_cc = ANDQI (tmp_cc, 13);
988 } else {
989   tmp_cc = ORQI (tmp_cc, 2);
990 }
991   tmp_tmp = ADDCFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), 0);
992 if (EQBI (tmp_tmp, 0)) {
993   tmp_cc = ANDQI (tmp_cc, 14);
994 } else {
995   tmp_cc = ORQI (tmp_cc, 1);
996 }
997   tmp_result = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
998 if (EQSI (tmp_result, 0)) {
999   tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
1000 } else {
1001 if (LTSI (tmp_result, 0)) {
1002   tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
1003 } else {
1004   tmp_cc = ANDQI (tmp_cc, 3);
1005 }
1006 }
1007   {
1008     SI opval = tmp_result;
1009     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1010     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1011   }
1012   {
1013     UQI opval = tmp_cc;
1014     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1015     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1016   }
1017 }
1018
1019   return vpc;
1020 #undef FLD
1021 }
1022
1023 /* subcc: subcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
1024
1025 static SEM_PC
1026 SEM_FN_NAME (frvbf,subcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1027 {
1028 #define FLD(f) abuf->fields.sfmt_addcc.f
1029   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1030   int UNUSED written = 0;
1031   IADDR UNUSED pc = abuf->addr;
1032   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1033
1034 {
1035   BI tmp_tmp;
1036   QI tmp_cc;
1037   SI tmp_result;
1038   tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
1039   tmp_tmp = SUBOFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), 0);
1040 if (EQBI (tmp_tmp, 0)) {
1041   tmp_cc = ANDQI (tmp_cc, 13);
1042 } else {
1043   tmp_cc = ORQI (tmp_cc, 2);
1044 }
1045   tmp_tmp = SUBCFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), 0);
1046 if (EQBI (tmp_tmp, 0)) {
1047   tmp_cc = ANDQI (tmp_cc, 14);
1048 } else {
1049   tmp_cc = ORQI (tmp_cc, 1);
1050 }
1051   tmp_result = SUBSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
1052 if (EQSI (tmp_result, 0)) {
1053   tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
1054 } else {
1055 if (LTSI (tmp_result, 0)) {
1056   tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
1057 } else {
1058   tmp_cc = ANDQI (tmp_cc, 3);
1059 }
1060 }
1061   {
1062     SI opval = tmp_result;
1063     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1064     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1065   }
1066   {
1067     UQI opval = tmp_cc;
1068     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1069     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1070   }
1071 }
1072
1073   return vpc;
1074 #undef FLD
1075 }
1076
1077 /* andcc: andcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
1078
1079 static SEM_PC
1080 SEM_FN_NAME (frvbf,andcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1081 {
1082 #define FLD(f) abuf->fields.sfmt_addcc.f
1083   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1084   int UNUSED written = 0;
1085   IADDR UNUSED pc = abuf->addr;
1086   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1087
1088 {
1089   SI tmp_tmp;
1090   tmp_tmp = ANDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
1091   {
1092     SI opval = tmp_tmp;
1093     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1094     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1095   }
1096 if (EQSI (tmp_tmp, 0)) {
1097   {
1098     UQI opval = ORQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 7), 4);
1099     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1100     written |= (1 << 4);
1101     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1102   }
1103 } else {
1104 if (LTSI (tmp_tmp, 0)) {
1105   {
1106     UQI opval = ORQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 11), 8);
1107     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1108     written |= (1 << 4);
1109     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1110   }
1111 } else {
1112   {
1113     UQI opval = ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 3);
1114     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1115     written |= (1 << 4);
1116     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1117   }
1118 }
1119 }
1120 }
1121
1122   abuf->written = written;
1123   return vpc;
1124 #undef FLD
1125 }
1126
1127 /* orcc: orcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
1128
1129 static SEM_PC
1130 SEM_FN_NAME (frvbf,orcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1131 {
1132 #define FLD(f) abuf->fields.sfmt_addcc.f
1133   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1134   int UNUSED written = 0;
1135   IADDR UNUSED pc = abuf->addr;
1136   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1137
1138 {
1139   SI tmp_tmp;
1140   tmp_tmp = ORSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
1141   {
1142     SI opval = tmp_tmp;
1143     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1144     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1145   }
1146 if (EQSI (tmp_tmp, 0)) {
1147   {
1148     UQI opval = ORQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 7), 4);
1149     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1150     written |= (1 << 4);
1151     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1152   }
1153 } else {
1154 if (LTSI (tmp_tmp, 0)) {
1155   {
1156     UQI opval = ORQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 11), 8);
1157     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1158     written |= (1 << 4);
1159     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1160   }
1161 } else {
1162   {
1163     UQI opval = ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 3);
1164     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1165     written |= (1 << 4);
1166     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1167   }
1168 }
1169 }
1170 }
1171
1172   abuf->written = written;
1173   return vpc;
1174 #undef FLD
1175 }
1176
1177 /* xorcc: xorcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
1178
1179 static SEM_PC
1180 SEM_FN_NAME (frvbf,xorcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1181 {
1182 #define FLD(f) abuf->fields.sfmt_addcc.f
1183   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1184   int UNUSED written = 0;
1185   IADDR UNUSED pc = abuf->addr;
1186   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1187
1188 {
1189   SI tmp_tmp;
1190   tmp_tmp = XORSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
1191   {
1192     SI opval = tmp_tmp;
1193     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1194     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1195   }
1196 if (EQSI (tmp_tmp, 0)) {
1197   {
1198     UQI opval = ORQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 7), 4);
1199     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1200     written |= (1 << 4);
1201     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1202   }
1203 } else {
1204 if (LTSI (tmp_tmp, 0)) {
1205   {
1206     UQI opval = ORQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 11), 8);
1207     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1208     written |= (1 << 4);
1209     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1210   }
1211 } else {
1212   {
1213     UQI opval = ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 3);
1214     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1215     written |= (1 << 4);
1216     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1217   }
1218 }
1219 }
1220 }
1221
1222   abuf->written = written;
1223   return vpc;
1224 #undef FLD
1225 }
1226
1227 /* sllcc: sllcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
1228
1229 static SEM_PC
1230 SEM_FN_NAME (frvbf,sllcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1231 {
1232 #define FLD(f) abuf->fields.sfmt_addcc.f
1233   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1234   int UNUSED written = 0;
1235   IADDR UNUSED pc = abuf->addr;
1236   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1237
1238 {
1239   SI tmp_shift;
1240   SI tmp_tmp;
1241   QI tmp_cc;
1242   tmp_shift = ANDSI (GET_H_GR (FLD (f_GRj)), 31);
1243   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)]));
1244   tmp_tmp = SLLSI (GET_H_GR (FLD (f_GRi)), tmp_shift);
1245   {
1246     SI opval = tmp_tmp;
1247     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1248     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1249   }
1250 if (EQSI (tmp_tmp, 0)) {
1251   tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
1252 } else {
1253 if (LTSI (tmp_tmp, 0)) {
1254   tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
1255 } else {
1256   tmp_cc = ANDQI (tmp_cc, 3);
1257 }
1258 }
1259   {
1260     UQI opval = tmp_cc;
1261     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1262     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1263   }
1264 }
1265
1266   return vpc;
1267 #undef FLD
1268 }
1269
1270 /* srlcc: srlcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
1271
1272 static SEM_PC
1273 SEM_FN_NAME (frvbf,srlcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1274 {
1275 #define FLD(f) abuf->fields.sfmt_addcc.f
1276   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1277   int UNUSED written = 0;
1278   IADDR UNUSED pc = abuf->addr;
1279   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1280
1281 {
1282   SI tmp_shift;
1283   SI tmp_tmp;
1284   QI tmp_cc;
1285   tmp_shift = ANDSI (GET_H_GR (FLD (f_GRj)), 31);
1286   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)]));
1287   tmp_tmp = SRLSI (GET_H_GR (FLD (f_GRi)), tmp_shift);
1288   {
1289     SI opval = tmp_tmp;
1290     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1291     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1292   }
1293 if (EQSI (tmp_tmp, 0)) {
1294   tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
1295 } else {
1296 if (LTSI (tmp_tmp, 0)) {
1297   tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
1298 } else {
1299   tmp_cc = ANDQI (tmp_cc, 3);
1300 }
1301 }
1302   {
1303     UQI opval = tmp_cc;
1304     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1305     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1306   }
1307 }
1308
1309   return vpc;
1310 #undef FLD
1311 }
1312
1313 /* sracc: sracc$pack $GRi,$GRj,$GRk,$ICCi_1 */
1314
1315 static SEM_PC
1316 SEM_FN_NAME (frvbf,sracc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1317 {
1318 #define FLD(f) abuf->fields.sfmt_addcc.f
1319   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1320   int UNUSED written = 0;
1321   IADDR UNUSED pc = abuf->addr;
1322   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1323
1324 {
1325   SI tmp_shift;
1326   SI tmp_tmp;
1327   QI tmp_cc;
1328   tmp_shift = ANDSI (GET_H_GR (FLD (f_GRj)), 31);
1329   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)]));
1330   tmp_tmp = SRASI (GET_H_GR (FLD (f_GRi)), tmp_shift);
1331   {
1332     SI opval = tmp_tmp;
1333     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1334     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1335   }
1336 if (EQSI (tmp_tmp, 0)) {
1337   tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
1338 } else {
1339 if (LTSI (tmp_tmp, 0)) {
1340   tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
1341 } else {
1342   tmp_cc = ANDQI (tmp_cc, 3);
1343 }
1344 }
1345   {
1346     UQI opval = tmp_cc;
1347     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1348     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1349   }
1350 }
1351
1352   return vpc;
1353 #undef FLD
1354 }
1355
1356 /* smulcc: smulcc$pack $GRi,$GRj,$GRdoublek,$ICCi_1 */
1357
1358 static SEM_PC
1359 SEM_FN_NAME (frvbf,smulcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1360 {
1361 #define FLD(f) abuf->fields.sfmt_smulcc.f
1362   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1363   int UNUSED written = 0;
1364   IADDR UNUSED pc = abuf->addr;
1365   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1366
1367 {
1368   DI tmp_tmp;
1369   QI tmp_cc;
1370   tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
1371   tmp_tmp = MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi))), EXTSIDI (GET_H_GR (FLD (f_GRj))));
1372 if (EQDI (SRLDI (tmp_tmp, 63), 0)) {
1373   tmp_cc = ANDQI (tmp_cc, 7);
1374 } else {
1375   tmp_cc = ORQI (tmp_cc, 8);
1376 }
1377 if (EQBI (EQDI (tmp_tmp, 0), 0)) {
1378   tmp_cc = ANDQI (tmp_cc, 11);
1379 } else {
1380   tmp_cc = ORQI (tmp_cc, 4);
1381 }
1382   {
1383     DI opval = tmp_tmp;
1384     sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
1385     TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
1386   }
1387   {
1388     UQI opval = tmp_cc;
1389     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1390     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1391   }
1392 }
1393
1394   return vpc;
1395 #undef FLD
1396 }
1397
1398 /* umulcc: umulcc$pack $GRi,$GRj,$GRdoublek,$ICCi_1 */
1399
1400 static SEM_PC
1401 SEM_FN_NAME (frvbf,umulcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1402 {
1403 #define FLD(f) abuf->fields.sfmt_smulcc.f
1404   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1405   int UNUSED written = 0;
1406   IADDR UNUSED pc = abuf->addr;
1407   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1408
1409 {
1410   DI tmp_tmp;
1411   QI tmp_cc;
1412   tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
1413   tmp_tmp = MULDI (ZEXTSIDI (GET_H_GR (FLD (f_GRi))), ZEXTSIDI (GET_H_GR (FLD (f_GRj))));
1414 if (EQDI (SRLDI (tmp_tmp, 63), 0)) {
1415   tmp_cc = ANDQI (tmp_cc, 7);
1416 } else {
1417   tmp_cc = ORQI (tmp_cc, 8);
1418 }
1419 if (EQBI (EQDI (tmp_tmp, 0), 0)) {
1420   tmp_cc = ANDQI (tmp_cc, 11);
1421 } else {
1422   tmp_cc = ORQI (tmp_cc, 4);
1423 }
1424   {
1425     DI opval = tmp_tmp;
1426     sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
1427     TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
1428   }
1429   {
1430     UQI opval = tmp_cc;
1431     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1432     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1433   }
1434 }
1435
1436   return vpc;
1437 #undef FLD
1438 }
1439
1440 /* caddcc: caddcc$pack $GRi,$GRj,$GRk,$CCi,$cond */
1441
1442 static SEM_PC
1443 SEM_FN_NAME (frvbf,caddcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1444 {
1445 #define FLD(f) abuf->fields.sfmt_caddcc.f
1446   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1447   int UNUSED written = 0;
1448   IADDR UNUSED pc = abuf->addr;
1449   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1450
1451 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
1452 {
1453   BI tmp_tmp;
1454   QI tmp_cc;
1455   SI tmp_result;
1456   tmp_cc = CPU (h_iccr[ANDSI (FLD (f_CCi), 3)]);
1457   tmp_tmp = ADDOFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), 0);
1458 if (EQBI (tmp_tmp, 0)) {
1459   tmp_cc = ANDQI (tmp_cc, 13);
1460 } else {
1461   tmp_cc = ORQI (tmp_cc, 2);
1462 }
1463   tmp_tmp = ADDCFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), 0);
1464 if (EQBI (tmp_tmp, 0)) {
1465   tmp_cc = ANDQI (tmp_cc, 14);
1466 } else {
1467   tmp_cc = ORQI (tmp_cc, 1);
1468 }
1469   tmp_result = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
1470 if (EQSI (tmp_result, 0)) {
1471   tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
1472 } else {
1473 if (LTSI (tmp_result, 0)) {
1474   tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
1475 } else {
1476   tmp_cc = ANDQI (tmp_cc, 3);
1477 }
1478 }
1479   {
1480     SI opval = tmp_result;
1481     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1482     written |= (1 << 6);
1483     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1484   }
1485   {
1486     UQI opval = tmp_cc;
1487     sim_queue_qi_write (current_cpu, & CPU (h_iccr[ANDSI (FLD (f_CCi), 3)]), opval);
1488     written |= (1 << 7);
1489     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1490   }
1491 }
1492 }
1493
1494   abuf->written = written;
1495   return vpc;
1496 #undef FLD
1497 }
1498
1499 /* csubcc: csubcc$pack $GRi,$GRj,$GRk,$CCi,$cond */
1500
1501 static SEM_PC
1502 SEM_FN_NAME (frvbf,csubcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1503 {
1504 #define FLD(f) abuf->fields.sfmt_caddcc.f
1505   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1506   int UNUSED written = 0;
1507   IADDR UNUSED pc = abuf->addr;
1508   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1509
1510 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
1511 {
1512   BI tmp_tmp;
1513   QI tmp_cc;
1514   SI tmp_result;
1515   tmp_cc = CPU (h_iccr[ANDSI (FLD (f_CCi), 3)]);
1516   tmp_tmp = SUBOFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), 0);
1517 if (EQBI (tmp_tmp, 0)) {
1518   tmp_cc = ANDQI (tmp_cc, 13);
1519 } else {
1520   tmp_cc = ORQI (tmp_cc, 2);
1521 }
1522   tmp_tmp = SUBCFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), 0);
1523 if (EQBI (tmp_tmp, 0)) {
1524   tmp_cc = ANDQI (tmp_cc, 14);
1525 } else {
1526   tmp_cc = ORQI (tmp_cc, 1);
1527 }
1528   tmp_result = SUBSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
1529 if (EQSI (tmp_result, 0)) {
1530   tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
1531 } else {
1532 if (LTSI (tmp_result, 0)) {
1533   tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
1534 } else {
1535   tmp_cc = ANDQI (tmp_cc, 3);
1536 }
1537 }
1538   {
1539     SI opval = tmp_result;
1540     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1541     written |= (1 << 6);
1542     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1543   }
1544   {
1545     UQI opval = tmp_cc;
1546     sim_queue_qi_write (current_cpu, & CPU (h_iccr[ANDSI (FLD (f_CCi), 3)]), opval);
1547     written |= (1 << 7);
1548     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1549   }
1550 }
1551 }
1552
1553   abuf->written = written;
1554   return vpc;
1555 #undef FLD
1556 }
1557
1558 /* csmulcc: csmulcc$pack $GRi,$GRj,$GRdoublek,$CCi,$cond */
1559
1560 static SEM_PC
1561 SEM_FN_NAME (frvbf,csmulcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1562 {
1563 #define FLD(f) abuf->fields.sfmt_csmulcc.f
1564   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1565   int UNUSED written = 0;
1566   IADDR UNUSED pc = abuf->addr;
1567   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1568
1569 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
1570 {
1571   DI tmp_tmp;
1572   QI tmp_cc;
1573   tmp_cc = CPU (h_iccr[ANDSI (FLD (f_CCi), 3)]);
1574   tmp_tmp = MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi))), EXTSIDI (GET_H_GR (FLD (f_GRj))));
1575 if (EQDI (SRLDI (tmp_tmp, 63), 0)) {
1576   tmp_cc = ANDQI (tmp_cc, 7);
1577 } else {
1578   tmp_cc = ORQI (tmp_cc, 8);
1579 }
1580 if (EQBI (EQDI (tmp_tmp, 0), 0)) {
1581   tmp_cc = ANDQI (tmp_cc, 11);
1582 } else {
1583   tmp_cc = ORQI (tmp_cc, 4);
1584 }
1585   {
1586     DI opval = tmp_tmp;
1587     sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
1588     written |= (1 << 6);
1589     TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
1590   }
1591   {
1592     UQI opval = tmp_cc;
1593     sim_queue_qi_write (current_cpu, & CPU (h_iccr[ANDSI (FLD (f_CCi), 3)]), opval);
1594     written |= (1 << 7);
1595     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1596   }
1597 }
1598 }
1599
1600   abuf->written = written;
1601   return vpc;
1602 #undef FLD
1603 }
1604
1605 /* candcc: candcc$pack $GRi,$GRj,$GRk,$CCi,$cond */
1606
1607 static SEM_PC
1608 SEM_FN_NAME (frvbf,candcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1609 {
1610 #define FLD(f) abuf->fields.sfmt_caddcc.f
1611   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1612   int UNUSED written = 0;
1613   IADDR UNUSED pc = abuf->addr;
1614   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1615
1616 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
1617 {
1618   SI tmp_tmp;
1619   tmp_tmp = ANDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
1620   {
1621     SI opval = tmp_tmp;
1622     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1623     written |= (1 << 6);
1624     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1625   }
1626 if (EQSI (tmp_tmp, 0)) {
1627   {
1628     UQI opval = ORQI (ANDQI (CPU (h_iccr[ANDSI (FLD (f_CCi), 3)]), 7), 4);
1629     sim_queue_qi_write (current_cpu, & CPU (h_iccr[ANDSI (FLD (f_CCi), 3)]), opval);
1630     written |= (1 << 7);
1631     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1632   }
1633 } else {
1634 if (LTSI (tmp_tmp, 0)) {
1635   {
1636     UQI opval = ORQI (ANDQI (CPU (h_iccr[ANDSI (FLD (f_CCi), 3)]), 11), 8);
1637     sim_queue_qi_write (current_cpu, & CPU (h_iccr[ANDSI (FLD (f_CCi), 3)]), opval);
1638     written |= (1 << 7);
1639     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1640   }
1641 } else {
1642   {
1643     UQI opval = ANDQI (CPU (h_iccr[ANDSI (FLD (f_CCi), 3)]), 3);
1644     sim_queue_qi_write (current_cpu, & CPU (h_iccr[ANDSI (FLD (f_CCi), 3)]), opval);
1645     written |= (1 << 7);
1646     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1647   }
1648 }
1649 }
1650 }
1651 }
1652
1653   abuf->written = written;
1654   return vpc;
1655 #undef FLD
1656 }
1657
1658 /* corcc: corcc$pack $GRi,$GRj,$GRk,$CCi,$cond */
1659
1660 static SEM_PC
1661 SEM_FN_NAME (frvbf,corcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1662 {
1663 #define FLD(f) abuf->fields.sfmt_caddcc.f
1664   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1665   int UNUSED written = 0;
1666   IADDR UNUSED pc = abuf->addr;
1667   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1668
1669 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
1670 {
1671   SI tmp_tmp;
1672   tmp_tmp = ORSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
1673   {
1674     SI opval = tmp_tmp;
1675     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1676     written |= (1 << 6);
1677     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1678   }
1679 if (EQSI (tmp_tmp, 0)) {
1680   {
1681     UQI opval = ORQI (ANDQI (CPU (h_iccr[ANDSI (FLD (f_CCi), 3)]), 7), 4);
1682     sim_queue_qi_write (current_cpu, & CPU (h_iccr[ANDSI (FLD (f_CCi), 3)]), opval);
1683     written |= (1 << 7);
1684     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1685   }
1686 } else {
1687 if (LTSI (tmp_tmp, 0)) {
1688   {
1689     UQI opval = ORQI (ANDQI (CPU (h_iccr[ANDSI (FLD (f_CCi), 3)]), 11), 8);
1690     sim_queue_qi_write (current_cpu, & CPU (h_iccr[ANDSI (FLD (f_CCi), 3)]), opval);
1691     written |= (1 << 7);
1692     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1693   }
1694 } else {
1695   {
1696     UQI opval = ANDQI (CPU (h_iccr[ANDSI (FLD (f_CCi), 3)]), 3);
1697     sim_queue_qi_write (current_cpu, & CPU (h_iccr[ANDSI (FLD (f_CCi), 3)]), opval);
1698     written |= (1 << 7);
1699     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1700   }
1701 }
1702 }
1703 }
1704 }
1705
1706   abuf->written = written;
1707   return vpc;
1708 #undef FLD
1709 }
1710
1711 /* cxorcc: cxorcc$pack $GRi,$GRj,$GRk,$CCi,$cond */
1712
1713 static SEM_PC
1714 SEM_FN_NAME (frvbf,cxorcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1715 {
1716 #define FLD(f) abuf->fields.sfmt_caddcc.f
1717   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1718   int UNUSED written = 0;
1719   IADDR UNUSED pc = abuf->addr;
1720   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1721
1722 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
1723 {
1724   SI tmp_tmp;
1725   tmp_tmp = XORSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
1726   {
1727     SI opval = tmp_tmp;
1728     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1729     written |= (1 << 6);
1730     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1731   }
1732 if (EQSI (tmp_tmp, 0)) {
1733   {
1734     UQI opval = ORQI (ANDQI (CPU (h_iccr[ANDSI (FLD (f_CCi), 3)]), 7), 4);
1735     sim_queue_qi_write (current_cpu, & CPU (h_iccr[ANDSI (FLD (f_CCi), 3)]), opval);
1736     written |= (1 << 7);
1737     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1738   }
1739 } else {
1740 if (LTSI (tmp_tmp, 0)) {
1741   {
1742     UQI opval = ORQI (ANDQI (CPU (h_iccr[ANDSI (FLD (f_CCi), 3)]), 11), 8);
1743     sim_queue_qi_write (current_cpu, & CPU (h_iccr[ANDSI (FLD (f_CCi), 3)]), opval);
1744     written |= (1 << 7);
1745     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1746   }
1747 } else {
1748   {
1749     UQI opval = ANDQI (CPU (h_iccr[ANDSI (FLD (f_CCi), 3)]), 3);
1750     sim_queue_qi_write (current_cpu, & CPU (h_iccr[ANDSI (FLD (f_CCi), 3)]), opval);
1751     written |= (1 << 7);
1752     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1753   }
1754 }
1755 }
1756 }
1757 }
1758
1759   abuf->written = written;
1760   return vpc;
1761 #undef FLD
1762 }
1763
1764 /* csllcc: csllcc$pack $GRi,$GRj,$GRk,$CCi,$cond */
1765
1766 static SEM_PC
1767 SEM_FN_NAME (frvbf,csllcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1768 {
1769 #define FLD(f) abuf->fields.sfmt_caddcc.f
1770   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1771   int UNUSED written = 0;
1772   IADDR UNUSED pc = abuf->addr;
1773   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1774
1775 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
1776 {
1777   SI tmp_shift;
1778   SI tmp_tmp;
1779   QI tmp_cc;
1780   tmp_shift = ANDSI (GET_H_GR (FLD (f_GRj)), 31);
1781   tmp_cc = frvbf_set_icc_for_shift_left (current_cpu, GET_H_GR (FLD (f_GRi)), tmp_shift, CPU (h_iccr[ANDSI (FLD (f_CCi), 3)]));
1782   tmp_tmp = SLLSI (GET_H_GR (FLD (f_GRi)), tmp_shift);
1783   {
1784     SI opval = tmp_tmp;
1785     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1786     written |= (1 << 6);
1787     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1788   }
1789 if (EQSI (tmp_tmp, 0)) {
1790   tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
1791 } else {
1792 if (LTSI (tmp_tmp, 0)) {
1793   tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
1794 } else {
1795   tmp_cc = ANDQI (tmp_cc, 3);
1796 }
1797 }
1798   {
1799     UQI opval = tmp_cc;
1800     sim_queue_qi_write (current_cpu, & CPU (h_iccr[ANDSI (FLD (f_CCi), 3)]), opval);
1801     written |= (1 << 7);
1802     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1803   }
1804 }
1805 }
1806
1807   abuf->written = written;
1808   return vpc;
1809 #undef FLD
1810 }
1811
1812 /* csrlcc: csrlcc$pack $GRi,$GRj,$GRk,$CCi,$cond */
1813
1814 static SEM_PC
1815 SEM_FN_NAME (frvbf,csrlcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1816 {
1817 #define FLD(f) abuf->fields.sfmt_caddcc.f
1818   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1819   int UNUSED written = 0;
1820   IADDR UNUSED pc = abuf->addr;
1821   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1822
1823 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
1824 {
1825   SI tmp_shift;
1826   SI tmp_tmp;
1827   QI tmp_cc;
1828   tmp_shift = ANDSI (GET_H_GR (FLD (f_GRj)), 31);
1829   tmp_cc = frvbf_set_icc_for_shift_right (current_cpu, GET_H_GR (FLD (f_GRi)), tmp_shift, CPU (h_iccr[ANDSI (FLD (f_CCi), 3)]));
1830   tmp_tmp = SRLSI (GET_H_GR (FLD (f_GRi)), tmp_shift);
1831   {
1832     SI opval = tmp_tmp;
1833     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1834     written |= (1 << 6);
1835     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1836   }
1837 if (EQSI (tmp_tmp, 0)) {
1838   tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
1839 } else {
1840 if (LTSI (tmp_tmp, 0)) {
1841   tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
1842 } else {
1843   tmp_cc = ANDQI (tmp_cc, 3);
1844 }
1845 }
1846   {
1847     UQI opval = tmp_cc;
1848     sim_queue_qi_write (current_cpu, & CPU (h_iccr[ANDSI (FLD (f_CCi), 3)]), opval);
1849     written |= (1 << 7);
1850     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1851   }
1852 }
1853 }
1854
1855   abuf->written = written;
1856   return vpc;
1857 #undef FLD
1858 }
1859
1860 /* csracc: csracc$pack $GRi,$GRj,$GRk,$CCi,$cond */
1861
1862 static SEM_PC
1863 SEM_FN_NAME (frvbf,csracc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1864 {
1865 #define FLD(f) abuf->fields.sfmt_caddcc.f
1866   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1867   int UNUSED written = 0;
1868   IADDR UNUSED pc = abuf->addr;
1869   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1870
1871 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
1872 {
1873   SI tmp_shift;
1874   SI tmp_tmp;
1875   QI tmp_cc;
1876   tmp_shift = ANDSI (GET_H_GR (FLD (f_GRj)), 31);
1877   tmp_cc = frvbf_set_icc_for_shift_right (current_cpu, GET_H_GR (FLD (f_GRi)), tmp_shift, CPU (h_iccr[ANDSI (FLD (f_CCi), 3)]));
1878   tmp_tmp = SRASI (GET_H_GR (FLD (f_GRi)), tmp_shift);
1879   {
1880     SI opval = tmp_tmp;
1881     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1882     written |= (1 << 6);
1883     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1884   }
1885 if (EQSI (tmp_tmp, 0)) {
1886   tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
1887 } else {
1888 if (LTSI (tmp_tmp, 0)) {
1889   tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
1890 } else {
1891   tmp_cc = ANDQI (tmp_cc, 3);
1892 }
1893 }
1894   {
1895     UQI opval = tmp_cc;
1896     sim_queue_qi_write (current_cpu, & CPU (h_iccr[ANDSI (FLD (f_CCi), 3)]), opval);
1897     written |= (1 << 7);
1898     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1899   }
1900 }
1901 }
1902
1903   abuf->written = written;
1904   return vpc;
1905 #undef FLD
1906 }
1907
1908 /* addx: addx$pack $GRi,$GRj,$GRk,$ICCi_1 */
1909
1910 static SEM_PC
1911 SEM_FN_NAME (frvbf,addx) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1912 {
1913 #define FLD(f) abuf->fields.sfmt_addcc.f
1914   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1915   int UNUSED written = 0;
1916   IADDR UNUSED pc = abuf->addr;
1917   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1918
1919   {
1920     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)));
1921     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1922     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1923   }
1924
1925   return vpc;
1926 #undef FLD
1927 }
1928
1929 /* subx: subx$pack $GRi,$GRj,$GRk,$ICCi_1 */
1930
1931 static SEM_PC
1932 SEM_FN_NAME (frvbf,subx) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1933 {
1934 #define FLD(f) abuf->fields.sfmt_addcc.f
1935   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1936   int UNUSED written = 0;
1937   IADDR UNUSED pc = abuf->addr;
1938   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1939
1940   {
1941     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)));
1942     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1943     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1944   }
1945
1946   return vpc;
1947 #undef FLD
1948 }
1949
1950 /* addxcc: addxcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
1951
1952 static SEM_PC
1953 SEM_FN_NAME (frvbf,addxcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1954 {
1955 #define FLD(f) abuf->fields.sfmt_addcc.f
1956   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1957   int UNUSED written = 0;
1958   IADDR UNUSED pc = abuf->addr;
1959   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1960
1961 {
1962   SI tmp_tmp;
1963   QI tmp_cc;
1964   tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
1965   tmp_tmp = ADDCSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), TRUNCQIBI (ANDQI (tmp_cc, 1)));
1966 if (EQBI (ADDOFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), TRUNCQIBI (ANDQI (tmp_cc, 1))), 0)) {
1967   tmp_cc = ANDQI (tmp_cc, 13);
1968 } else {
1969   tmp_cc = ORQI (tmp_cc, 2);
1970 }
1971 if (EQBI (ADDCFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), TRUNCQIBI (ANDQI (tmp_cc, 1))), 0)) {
1972   tmp_cc = ANDQI (tmp_cc, 14);
1973 } else {
1974   tmp_cc = ORQI (tmp_cc, 1);
1975 }
1976 if (EQSI (tmp_tmp, 0)) {
1977   tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
1978 } else {
1979 if (LTSI (tmp_tmp, 0)) {
1980   tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
1981 } else {
1982   tmp_cc = ANDQI (tmp_cc, 3);
1983 }
1984 }
1985   {
1986     SI opval = tmp_tmp;
1987     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1988     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1989   }
1990   {
1991     UQI opval = tmp_cc;
1992     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1993     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1994   }
1995 }
1996
1997   return vpc;
1998 #undef FLD
1999 }
2000
2001 /* subxcc: subxcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
2002
2003 static SEM_PC
2004 SEM_FN_NAME (frvbf,subxcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2005 {
2006 #define FLD(f) abuf->fields.sfmt_addcc.f
2007   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2008   int UNUSED written = 0;
2009   IADDR UNUSED pc = abuf->addr;
2010   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2011
2012 {
2013   SI tmp_tmp;
2014   QI tmp_cc;
2015   tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
2016   tmp_tmp = SUBCSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), TRUNCQIBI (ANDQI (tmp_cc, 1)));
2017 if (EQBI (SUBOFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), TRUNCQIBI (ANDQI (tmp_cc, 1))), 0)) {
2018   tmp_cc = ANDQI (tmp_cc, 13);
2019 } else {
2020   tmp_cc = ORQI (tmp_cc, 2);
2021 }
2022 if (EQBI (SUBCFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), TRUNCQIBI (ANDQI (tmp_cc, 1))), 0)) {
2023   tmp_cc = ANDQI (tmp_cc, 14);
2024 } else {
2025   tmp_cc = ORQI (tmp_cc, 1);
2026 }
2027 if (EQSI (tmp_tmp, 0)) {
2028   tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
2029 } else {
2030 if (LTSI (tmp_tmp, 0)) {
2031   tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
2032 } else {
2033   tmp_cc = ANDQI (tmp_cc, 3);
2034 }
2035 }
2036   {
2037     SI opval = tmp_tmp;
2038     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2039     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2040   }
2041   {
2042     UQI opval = tmp_cc;
2043     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2044     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2045   }
2046 }
2047
2048   return vpc;
2049 #undef FLD
2050 }
2051
2052 /* addss: addss$pack $GRi,$GRj,$GRk */
2053
2054 static SEM_PC
2055 SEM_FN_NAME (frvbf,addss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2056 {
2057 #define FLD(f) abuf->fields.sfmt_addcc.f
2058   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2059   int UNUSED written = 0;
2060   IADDR UNUSED pc = abuf->addr;
2061   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2062
2063 {
2064   {
2065     SI opval = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
2066     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2067     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2068   }
2069 if (ADDOFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), 0)) {
2070   {
2071     SI opval = (GTSI (GET_H_GR (FLD (f_GRi)), 0)) ? (2147483647) : (LTSI (GET_H_GR (FLD (f_GRi)), 0)) ? (0x80000000) : (0);
2072     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2073     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2074   }
2075 }
2076 }
2077
2078   return vpc;
2079 #undef FLD
2080 }
2081
2082 /* subss: subss$pack $GRi,$GRj,$GRk */
2083
2084 static SEM_PC
2085 SEM_FN_NAME (frvbf,subss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2086 {
2087 #define FLD(f) abuf->fields.sfmt_addcc.f
2088   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2089   int UNUSED written = 0;
2090   IADDR UNUSED pc = abuf->addr;
2091   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2092
2093 {
2094   {
2095     SI opval = SUBSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
2096     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2097     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2098   }
2099 if (SUBOFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), 0)) {
2100   {
2101     SI opval = (GTSI (GET_H_GR (FLD (f_GRi)), 0)) ? (2147483647) : (LTSI (GET_H_GR (FLD (f_GRi)), 0)) ? (0x80000000) : (0);
2102     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2103     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2104   }
2105 }
2106 }
2107
2108   return vpc;
2109 #undef FLD
2110 }
2111
2112 /* addi: addi$pack $GRi,$s12,$GRk */
2113
2114 static SEM_PC
2115 SEM_FN_NAME (frvbf,addi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2116 {
2117 #define FLD(f) abuf->fields.sfmt_swapi.f
2118   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2119   int UNUSED written = 0;
2120   IADDR UNUSED pc = abuf->addr;
2121   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2122
2123   {
2124     SI opval = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
2125     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2126     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2127   }
2128
2129   return vpc;
2130 #undef FLD
2131 }
2132
2133 /* subi: subi$pack $GRi,$s12,$GRk */
2134
2135 static SEM_PC
2136 SEM_FN_NAME (frvbf,subi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2137 {
2138 #define FLD(f) abuf->fields.sfmt_swapi.f
2139   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2140   int UNUSED written = 0;
2141   IADDR UNUSED pc = abuf->addr;
2142   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2143
2144   {
2145     SI opval = SUBSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
2146     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2147     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2148   }
2149
2150   return vpc;
2151 #undef FLD
2152 }
2153
2154 /* andi: andi$pack $GRi,$s12,$GRk */
2155
2156 static SEM_PC
2157 SEM_FN_NAME (frvbf,andi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2158 {
2159 #define FLD(f) abuf->fields.sfmt_swapi.f
2160   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2161   int UNUSED written = 0;
2162   IADDR UNUSED pc = abuf->addr;
2163   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2164
2165   {
2166     SI opval = ANDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
2167     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2168     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2169   }
2170
2171   return vpc;
2172 #undef FLD
2173 }
2174
2175 /* ori: ori$pack $GRi,$s12,$GRk */
2176
2177 static SEM_PC
2178 SEM_FN_NAME (frvbf,ori) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2179 {
2180 #define FLD(f) abuf->fields.sfmt_swapi.f
2181   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2182   int UNUSED written = 0;
2183   IADDR UNUSED pc = abuf->addr;
2184   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2185
2186   {
2187     SI opval = ORSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
2188     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2189     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2190   }
2191
2192   return vpc;
2193 #undef FLD
2194 }
2195
2196 /* xori: xori$pack $GRi,$s12,$GRk */
2197
2198 static SEM_PC
2199 SEM_FN_NAME (frvbf,xori) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2200 {
2201 #define FLD(f) abuf->fields.sfmt_swapi.f
2202   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2203   int UNUSED written = 0;
2204   IADDR UNUSED pc = abuf->addr;
2205   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2206
2207   {
2208     SI opval = XORSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
2209     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2210     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2211   }
2212
2213   return vpc;
2214 #undef FLD
2215 }
2216
2217 /* sdivi: sdivi$pack $GRi,$s12,$GRk */
2218
2219 static SEM_PC
2220 SEM_FN_NAME (frvbf,sdivi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2221 {
2222 #define FLD(f) abuf->fields.sfmt_swapi.f
2223   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2224   int UNUSED written = 0;
2225   IADDR UNUSED pc = abuf->addr;
2226   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2227
2228 {
2229 frvbf_signed_integer_divide (current_cpu, GET_H_GR (FLD (f_GRi)), FLD (f_d12), FLD (f_GRk), 0);
2230 ; /*clobber*/
2231 }
2232
2233   return vpc;
2234 #undef FLD
2235 }
2236
2237 /* nsdivi: nsdivi$pack $GRi,$s12,$GRk */
2238
2239 static SEM_PC
2240 SEM_FN_NAME (frvbf,nsdivi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2241 {
2242 #define FLD(f) abuf->fields.sfmt_swapi.f
2243   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2244   int UNUSED written = 0;
2245   IADDR UNUSED pc = abuf->addr;
2246   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2247
2248 {
2249 frvbf_signed_integer_divide (current_cpu, GET_H_GR (FLD (f_GRi)), FLD (f_d12), FLD (f_GRk), 1);
2250 ; /*clobber*/
2251 }
2252
2253   return vpc;
2254 #undef FLD
2255 }
2256
2257 /* udivi: udivi$pack $GRi,$s12,$GRk */
2258
2259 static SEM_PC
2260 SEM_FN_NAME (frvbf,udivi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2261 {
2262 #define FLD(f) abuf->fields.sfmt_swapi.f
2263   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2264   int UNUSED written = 0;
2265   IADDR UNUSED pc = abuf->addr;
2266   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2267
2268 {
2269 frvbf_unsigned_integer_divide (current_cpu, GET_H_GR (FLD (f_GRi)), FLD (f_d12), FLD (f_GRk), 0);
2270 ; /*clobber*/
2271 }
2272
2273   return vpc;
2274 #undef FLD
2275 }
2276
2277 /* nudivi: nudivi$pack $GRi,$s12,$GRk */
2278
2279 static SEM_PC
2280 SEM_FN_NAME (frvbf,nudivi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2281 {
2282 #define FLD(f) abuf->fields.sfmt_swapi.f
2283   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2284   int UNUSED written = 0;
2285   IADDR UNUSED pc = abuf->addr;
2286   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2287
2288 {
2289 frvbf_unsigned_integer_divide (current_cpu, GET_H_GR (FLD (f_GRi)), FLD (f_d12), FLD (f_GRk), 1);
2290 ; /*clobber*/
2291 }
2292
2293   return vpc;
2294 #undef FLD
2295 }
2296
2297 /* smuli: smuli$pack $GRi,$s12,$GRdoublek */
2298
2299 static SEM_PC
2300 SEM_FN_NAME (frvbf,smuli) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2301 {
2302 #define FLD(f) abuf->fields.sfmt_smuli.f
2303   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2304   int UNUSED written = 0;
2305   IADDR UNUSED pc = abuf->addr;
2306   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2307
2308   {
2309     DI opval = MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi))), EXTSIDI (FLD (f_d12)));
2310     sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
2311     TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
2312   }
2313
2314   return vpc;
2315 #undef FLD
2316 }
2317
2318 /* umuli: umuli$pack $GRi,$s12,$GRdoublek */
2319
2320 static SEM_PC
2321 SEM_FN_NAME (frvbf,umuli) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2322 {
2323 #define FLD(f) abuf->fields.sfmt_smuli.f
2324   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2325   int UNUSED written = 0;
2326   IADDR UNUSED pc = abuf->addr;
2327   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2328
2329   {
2330     DI opval = MULDI (ZEXTSIDI (GET_H_GR (FLD (f_GRi))), ZEXTSIDI (FLD (f_d12)));
2331     sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
2332     TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
2333   }
2334
2335   return vpc;
2336 #undef FLD
2337 }
2338
2339 /* slli: slli$pack $GRi,$s12,$GRk */
2340
2341 static SEM_PC
2342 SEM_FN_NAME (frvbf,slli) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2343 {
2344 #define FLD(f) abuf->fields.sfmt_swapi.f
2345   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2346   int UNUSED written = 0;
2347   IADDR UNUSED pc = abuf->addr;
2348   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2349
2350   {
2351     SI opval = SLLSI (GET_H_GR (FLD (f_GRi)), ANDSI (FLD (f_d12), 31));
2352     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2353     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2354   }
2355
2356   return vpc;
2357 #undef FLD
2358 }
2359
2360 /* srli: srli$pack $GRi,$s12,$GRk */
2361
2362 static SEM_PC
2363 SEM_FN_NAME (frvbf,srli) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2364 {
2365 #define FLD(f) abuf->fields.sfmt_swapi.f
2366   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2367   int UNUSED written = 0;
2368   IADDR UNUSED pc = abuf->addr;
2369   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2370
2371   {
2372     SI opval = SRLSI (GET_H_GR (FLD (f_GRi)), ANDSI (FLD (f_d12), 31));
2373     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2374     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2375   }
2376
2377   return vpc;
2378 #undef FLD
2379 }
2380
2381 /* srai: srai$pack $GRi,$s12,$GRk */
2382
2383 static SEM_PC
2384 SEM_FN_NAME (frvbf,srai) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2385 {
2386 #define FLD(f) abuf->fields.sfmt_swapi.f
2387   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2388   int UNUSED written = 0;
2389   IADDR UNUSED pc = abuf->addr;
2390   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2391
2392   {
2393     SI opval = SRASI (GET_H_GR (FLD (f_GRi)), ANDSI (FLD (f_d12), 31));
2394     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2395     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2396   }
2397
2398   return vpc;
2399 #undef FLD
2400 }
2401
2402 /* scani: scani$pack $GRi,$s12,$GRk */
2403
2404 static SEM_PC
2405 SEM_FN_NAME (frvbf,scani) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2406 {
2407 #define FLD(f) abuf->fields.sfmt_swapi.f
2408   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2409   int UNUSED written = 0;
2410   IADDR UNUSED pc = abuf->addr;
2411   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2412
2413 {
2414   SI tmp_tmp1;
2415   SI tmp_tmp2;
2416   tmp_tmp1 = GET_H_GR (FLD (f_GRi));
2417   tmp_tmp2 = SRASI (FLD (f_d12), 1);
2418   {
2419     SI opval = frvbf_scan_result (current_cpu, XORSI (tmp_tmp1, tmp_tmp2));
2420     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2421     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2422   }
2423 }
2424
2425   return vpc;
2426 #undef FLD
2427 }
2428
2429 /* addicc: addicc$pack $GRi,$s10,$GRk,$ICCi_1 */
2430
2431 static SEM_PC
2432 SEM_FN_NAME (frvbf,addicc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2433 {
2434 #define FLD(f) abuf->fields.sfmt_addicc.f
2435   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2436   int UNUSED written = 0;
2437   IADDR UNUSED pc = abuf->addr;
2438   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2439
2440 {
2441   BI tmp_tmp;
2442   QI tmp_cc;
2443   SI tmp_result;
2444   tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
2445   tmp_tmp = ADDOFSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), 0);
2446 if (EQBI (tmp_tmp, 0)) {
2447   tmp_cc = ANDQI (tmp_cc, 13);
2448 } else {
2449   tmp_cc = ORQI (tmp_cc, 2);
2450 }
2451   tmp_tmp = ADDCFSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), 0);
2452 if (EQBI (tmp_tmp, 0)) {
2453   tmp_cc = ANDQI (tmp_cc, 14);
2454 } else {
2455   tmp_cc = ORQI (tmp_cc, 1);
2456 }
2457   tmp_result = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10));
2458 if (EQSI (tmp_result, 0)) {
2459   tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
2460 } else {
2461 if (LTSI (tmp_result, 0)) {
2462   tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
2463 } else {
2464   tmp_cc = ANDQI (tmp_cc, 3);
2465 }
2466 }
2467   {
2468     SI opval = tmp_result;
2469     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2470     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2471   }
2472   {
2473     UQI opval = tmp_cc;
2474     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2475     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2476   }
2477 }
2478
2479   return vpc;
2480 #undef FLD
2481 }
2482
2483 /* subicc: subicc$pack $GRi,$s10,$GRk,$ICCi_1 */
2484
2485 static SEM_PC
2486 SEM_FN_NAME (frvbf,subicc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2487 {
2488 #define FLD(f) abuf->fields.sfmt_addicc.f
2489   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2490   int UNUSED written = 0;
2491   IADDR UNUSED pc = abuf->addr;
2492   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2493
2494 {
2495   BI tmp_tmp;
2496   QI tmp_cc;
2497   SI tmp_result;
2498   tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
2499   tmp_tmp = SUBOFSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), 0);
2500 if (EQBI (tmp_tmp, 0)) {
2501   tmp_cc = ANDQI (tmp_cc, 13);
2502 } else {
2503   tmp_cc = ORQI (tmp_cc, 2);
2504 }
2505   tmp_tmp = SUBCFSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), 0);
2506 if (EQBI (tmp_tmp, 0)) {
2507   tmp_cc = ANDQI (tmp_cc, 14);
2508 } else {
2509   tmp_cc = ORQI (tmp_cc, 1);
2510 }
2511   tmp_result = SUBSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10));
2512 if (EQSI (tmp_result, 0)) {
2513   tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
2514 } else {
2515 if (LTSI (tmp_result, 0)) {
2516   tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
2517 } else {
2518   tmp_cc = ANDQI (tmp_cc, 3);
2519 }
2520 }
2521   {
2522     SI opval = tmp_result;
2523     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2524     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2525   }
2526   {
2527     UQI opval = tmp_cc;
2528     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2529     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2530   }
2531 }
2532
2533   return vpc;
2534 #undef FLD
2535 }
2536
2537 /* andicc: andicc$pack $GRi,$s10,$GRk,$ICCi_1 */
2538
2539 static SEM_PC
2540 SEM_FN_NAME (frvbf,andicc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2541 {
2542 #define FLD(f) abuf->fields.sfmt_addicc.f
2543   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2544   int UNUSED written = 0;
2545   IADDR UNUSED pc = abuf->addr;
2546   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2547
2548 {
2549   SI tmp_tmp;
2550   tmp_tmp = ANDSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10));
2551   {
2552     SI opval = tmp_tmp;
2553     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2554     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2555   }
2556 if (EQSI (tmp_tmp, 0)) {
2557   {
2558     UQI opval = ORQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 7), 4);
2559     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2560     written |= (1 << 4);
2561     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2562   }
2563 } else {
2564 if (LTSI (tmp_tmp, 0)) {
2565   {
2566     UQI opval = ORQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 11), 8);
2567     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2568     written |= (1 << 4);
2569     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2570   }
2571 } else {
2572   {
2573     UQI opval = ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 3);
2574     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2575     written |= (1 << 4);
2576     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2577   }
2578 }
2579 }
2580 }
2581
2582   abuf->written = written;
2583   return vpc;
2584 #undef FLD
2585 }
2586
2587 /* oricc: oricc$pack $GRi,$s10,$GRk,$ICCi_1 */
2588
2589 static SEM_PC
2590 SEM_FN_NAME (frvbf,oricc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2591 {
2592 #define FLD(f) abuf->fields.sfmt_addicc.f
2593   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2594   int UNUSED written = 0;
2595   IADDR UNUSED pc = abuf->addr;
2596   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2597
2598 {
2599   SI tmp_tmp;
2600   tmp_tmp = ORSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10));
2601   {
2602     SI opval = tmp_tmp;
2603     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2604     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2605   }
2606 if (EQSI (tmp_tmp, 0)) {
2607   {
2608     UQI opval = ORQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 7), 4);
2609     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2610     written |= (1 << 4);
2611     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2612   }
2613 } else {
2614 if (LTSI (tmp_tmp, 0)) {
2615   {
2616     UQI opval = ORQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 11), 8);
2617     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2618     written |= (1 << 4);
2619     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2620   }
2621 } else {
2622   {
2623     UQI opval = ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 3);
2624     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2625     written |= (1 << 4);
2626     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2627   }
2628 }
2629 }
2630 }
2631
2632   abuf->written = written;
2633   return vpc;
2634 #undef FLD
2635 }
2636
2637 /* xoricc: xoricc$pack $GRi,$s10,$GRk,$ICCi_1 */
2638
2639 static SEM_PC
2640 SEM_FN_NAME (frvbf,xoricc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2641 {
2642 #define FLD(f) abuf->fields.sfmt_addicc.f
2643   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2644   int UNUSED written = 0;
2645   IADDR UNUSED pc = abuf->addr;
2646   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2647
2648 {
2649   SI tmp_tmp;
2650   tmp_tmp = XORSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10));
2651   {
2652     SI opval = tmp_tmp;
2653     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2654     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2655   }
2656 if (EQSI (tmp_tmp, 0)) {
2657   {
2658     UQI opval = ORQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 7), 4);
2659     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2660     written |= (1 << 4);
2661     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2662   }
2663 } else {
2664 if (LTSI (tmp_tmp, 0)) {
2665   {
2666     UQI opval = ORQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 11), 8);
2667     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2668     written |= (1 << 4);
2669     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2670   }
2671 } else {
2672   {
2673     UQI opval = ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 3);
2674     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2675     written |= (1 << 4);
2676     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2677   }
2678 }
2679 }
2680 }
2681
2682   abuf->written = written;
2683   return vpc;
2684 #undef FLD
2685 }
2686
2687 /* smulicc: smulicc$pack $GRi,$s10,$GRdoublek,$ICCi_1 */
2688
2689 static SEM_PC
2690 SEM_FN_NAME (frvbf,smulicc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2691 {
2692 #define FLD(f) abuf->fields.sfmt_smulicc.f
2693   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2694   int UNUSED written = 0;
2695   IADDR UNUSED pc = abuf->addr;
2696   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2697
2698 {
2699   DI tmp_tmp;
2700   QI tmp_cc;
2701   tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
2702   tmp_tmp = MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi))), EXTSIDI (FLD (f_s10)));
2703 if (EQDI (SRLDI (tmp_tmp, 63), 0)) {
2704   tmp_cc = ANDQI (tmp_cc, 7);
2705 } else {
2706   tmp_cc = ORQI (tmp_cc, 8);
2707 }
2708 if (EQBI (EQDI (tmp_tmp, 0), 0)) {
2709   tmp_cc = ANDQI (tmp_cc, 11);
2710 } else {
2711   tmp_cc = ORQI (tmp_cc, 4);
2712 }
2713   {
2714     DI opval = tmp_tmp;
2715     sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
2716     TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
2717   }
2718   {
2719     UQI opval = tmp_cc;
2720     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2721     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2722   }
2723 }
2724
2725   return vpc;
2726 #undef FLD
2727 }
2728
2729 /* umulicc: umulicc$pack $GRi,$s10,$GRdoublek,$ICCi_1 */
2730
2731 static SEM_PC
2732 SEM_FN_NAME (frvbf,umulicc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2733 {
2734 #define FLD(f) abuf->fields.sfmt_smulicc.f
2735   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2736   int UNUSED written = 0;
2737   IADDR UNUSED pc = abuf->addr;
2738   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2739
2740 {
2741   DI tmp_tmp;
2742   QI tmp_cc;
2743   tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
2744   tmp_tmp = MULDI (ZEXTSIDI (GET_H_GR (FLD (f_GRi))), ZEXTSIDI (FLD (f_s10)));
2745 if (EQDI (SRLDI (tmp_tmp, 63), 0)) {
2746   tmp_cc = ANDQI (tmp_cc, 7);
2747 } else {
2748   tmp_cc = ORQI (tmp_cc, 8);
2749 }
2750 if (EQBI (EQDI (tmp_tmp, 0), 0)) {
2751   tmp_cc = ANDQI (tmp_cc, 11);
2752 } else {
2753   tmp_cc = ORQI (tmp_cc, 4);
2754 }
2755   {
2756     DI opval = tmp_tmp;
2757     sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
2758     TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
2759   }
2760   {
2761     UQI opval = tmp_cc;
2762     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2763     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2764   }
2765 }
2766
2767   return vpc;
2768 #undef FLD
2769 }
2770
2771 /* sllicc: sllicc$pack $GRi,$s10,$GRk,$ICCi_1 */
2772
2773 static SEM_PC
2774 SEM_FN_NAME (frvbf,sllicc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2775 {
2776 #define FLD(f) abuf->fields.sfmt_addicc.f
2777   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2778   int UNUSED written = 0;
2779   IADDR UNUSED pc = abuf->addr;
2780   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2781
2782 {
2783   SI tmp_shift;
2784   SI tmp_tmp;
2785   QI tmp_cc;
2786   tmp_shift = ANDSI (FLD (f_s10), 31);
2787   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)]));
2788   tmp_tmp = SLLSI (GET_H_GR (FLD (f_GRi)), tmp_shift);
2789   {
2790     SI opval = tmp_tmp;
2791     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2792     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2793   }
2794 if (EQSI (tmp_tmp, 0)) {
2795   tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
2796 } else {
2797 if (LTSI (tmp_tmp, 0)) {
2798   tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
2799 } else {
2800   tmp_cc = ANDQI (tmp_cc, 3);
2801 }
2802 }
2803   {
2804     UQI opval = tmp_cc;
2805     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2806     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2807   }
2808 }
2809
2810   return vpc;
2811 #undef FLD
2812 }
2813
2814 /* srlicc: srlicc$pack $GRi,$s10,$GRk,$ICCi_1 */
2815
2816 static SEM_PC
2817 SEM_FN_NAME (frvbf,srlicc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2818 {
2819 #define FLD(f) abuf->fields.sfmt_addicc.f
2820   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2821   int UNUSED written = 0;
2822   IADDR UNUSED pc = abuf->addr;
2823   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2824
2825 {
2826   SI tmp_shift;
2827   SI tmp_tmp;
2828   QI tmp_cc;
2829   tmp_shift = ANDSI (FLD (f_s10), 31);
2830   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)]));
2831   tmp_tmp = SRLSI (GET_H_GR (FLD (f_GRi)), tmp_shift);
2832   {
2833     SI opval = tmp_tmp;
2834     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2835     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2836   }
2837 if (EQSI (tmp_tmp, 0)) {
2838   tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
2839 } else {
2840 if (LTSI (tmp_tmp, 0)) {
2841   tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
2842 } else {
2843   tmp_cc = ANDQI (tmp_cc, 3);
2844 }
2845 }
2846   {
2847     UQI opval = tmp_cc;
2848     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2849     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2850   }
2851 }
2852
2853   return vpc;
2854 #undef FLD
2855 }
2856
2857 /* sraicc: sraicc$pack $GRi,$s10,$GRk,$ICCi_1 */
2858
2859 static SEM_PC
2860 SEM_FN_NAME (frvbf,sraicc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2861 {
2862 #define FLD(f) abuf->fields.sfmt_addicc.f
2863   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2864   int UNUSED written = 0;
2865   IADDR UNUSED pc = abuf->addr;
2866   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2867
2868 {
2869   SI tmp_shift;
2870   SI tmp_tmp;
2871   QI tmp_cc;
2872   tmp_shift = ANDSI (FLD (f_s10), 31);
2873   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)]));
2874   tmp_tmp = SRASI (GET_H_GR (FLD (f_GRi)), tmp_shift);
2875   {
2876     SI opval = tmp_tmp;
2877     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2878     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2879   }
2880 if (EQSI (tmp_tmp, 0)) {
2881   tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
2882 } else {
2883 if (LTSI (tmp_tmp, 0)) {
2884   tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
2885 } else {
2886   tmp_cc = ANDQI (tmp_cc, 3);
2887 }
2888 }
2889   {
2890     UQI opval = tmp_cc;
2891     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2892     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2893   }
2894 }
2895
2896   return vpc;
2897 #undef FLD
2898 }
2899
2900 /* addxi: addxi$pack $GRi,$s10,$GRk,$ICCi_1 */
2901
2902 static SEM_PC
2903 SEM_FN_NAME (frvbf,addxi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2904 {
2905 #define FLD(f) abuf->fields.sfmt_addicc.f
2906   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2907   int UNUSED written = 0;
2908   IADDR UNUSED pc = abuf->addr;
2909   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2910
2911   {
2912     SI opval = ADDCSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 1)));
2913     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2914     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2915   }
2916
2917   return vpc;
2918 #undef FLD
2919 }
2920
2921 /* subxi: subxi$pack $GRi,$s10,$GRk,$ICCi_1 */
2922
2923 static SEM_PC
2924 SEM_FN_NAME (frvbf,subxi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2925 {
2926 #define FLD(f) abuf->fields.sfmt_addicc.f
2927   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2928   int UNUSED written = 0;
2929   IADDR UNUSED pc = abuf->addr;
2930   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2931
2932   {
2933     SI opval = SUBCSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 1)));
2934     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2935     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2936   }
2937
2938   return vpc;
2939 #undef FLD
2940 }
2941
2942 /* addxicc: addxicc$pack $GRi,$s10,$GRk,$ICCi_1 */
2943
2944 static SEM_PC
2945 SEM_FN_NAME (frvbf,addxicc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2946 {
2947 #define FLD(f) abuf->fields.sfmt_addicc.f
2948   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2949   int UNUSED written = 0;
2950   IADDR UNUSED pc = abuf->addr;
2951   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2952
2953 {
2954   SI tmp_tmp;
2955   QI tmp_cc;
2956   tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
2957   tmp_tmp = ADDCSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), TRUNCQIBI (ANDQI (tmp_cc, 1)));
2958 if (EQBI (ADDOFSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), TRUNCQIBI (ANDQI (tmp_cc, 1))), 0)) {
2959   tmp_cc = ANDQI (tmp_cc, 13);
2960 } else {
2961   tmp_cc = ORQI (tmp_cc, 2);
2962 }
2963 if (EQBI (ADDCFSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), TRUNCQIBI (ANDQI (tmp_cc, 1))), 0)) {
2964   tmp_cc = ANDQI (tmp_cc, 14);
2965 } else {
2966   tmp_cc = ORQI (tmp_cc, 1);
2967 }
2968 if (EQSI (tmp_tmp, 0)) {
2969   tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
2970 } else {
2971 if (LTSI (tmp_tmp, 0)) {
2972   tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
2973 } else {
2974   tmp_cc = ANDQI (tmp_cc, 3);
2975 }
2976 }
2977   {
2978     SI opval = tmp_tmp;
2979     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2980     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2981   }
2982   {
2983     UQI opval = tmp_cc;
2984     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2985     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2986   }
2987 }
2988
2989   return vpc;
2990 #undef FLD
2991 }
2992
2993 /* subxicc: subxicc$pack $GRi,$s10,$GRk,$ICCi_1 */
2994
2995 static SEM_PC
2996 SEM_FN_NAME (frvbf,subxicc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2997 {
2998 #define FLD(f) abuf->fields.sfmt_addicc.f
2999   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3000   int UNUSED written = 0;
3001   IADDR UNUSED pc = abuf->addr;
3002   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3003
3004 {
3005   SI tmp_tmp;
3006   QI tmp_cc;
3007   tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
3008   tmp_tmp = SUBCSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), TRUNCQIBI (ANDQI (tmp_cc, 1)));
3009 if (EQBI (SUBOFSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), TRUNCQIBI (ANDQI (tmp_cc, 1))), 0)) {
3010   tmp_cc = ANDQI (tmp_cc, 13);
3011 } else {
3012   tmp_cc = ORQI (tmp_cc, 2);
3013 }
3014 if (EQBI (SUBCFSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), TRUNCQIBI (ANDQI (tmp_cc, 1))), 0)) {
3015   tmp_cc = ANDQI (tmp_cc, 14);
3016 } else {
3017   tmp_cc = ORQI (tmp_cc, 1);
3018 }
3019 if (EQSI (tmp_tmp, 0)) {
3020   tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
3021 } else {
3022 if (LTSI (tmp_tmp, 0)) {
3023   tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
3024 } else {
3025   tmp_cc = ANDQI (tmp_cc, 3);
3026 }
3027 }
3028   {
3029     SI opval = tmp_tmp;
3030     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3031     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3032   }
3033   {
3034     UQI opval = tmp_cc;
3035     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
3036     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
3037   }
3038 }
3039
3040   return vpc;
3041 #undef FLD
3042 }
3043
3044 /* cmpb: cmpb$pack $GRi,$GRj,$ICCi_1 */
3045
3046 static SEM_PC
3047 SEM_FN_NAME (frvbf,cmpb) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3048 {
3049 #define FLD(f) abuf->fields.sfmt_smulcc.f
3050   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3051   int UNUSED written = 0;
3052   IADDR UNUSED pc = abuf->addr;
3053   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3054
3055 {
3056   QI tmp_cc;
3057 if (EQBI (EQSI (ANDSI (GET_H_GR (FLD (f_GRi)), 0xff000000), ANDSI (GET_H_GR (FLD (f_GRj)), 0xff000000)), 0)) {
3058   tmp_cc = ANDQI (tmp_cc, 7);
3059 } else {
3060   tmp_cc = ORQI (tmp_cc, 8);
3061 }
3062 if (EQBI (EQSI (ANDSI (GET_H_GR (FLD (f_GRi)), 16711680), ANDSI (GET_H_GR (FLD (f_GRj)), 16711680)), 0)) {
3063   tmp_cc = ANDQI (tmp_cc, 11);
3064 } else {
3065   tmp_cc = ORQI (tmp_cc, 4);
3066 }
3067 if (EQBI (EQSI (ANDSI (GET_H_GR (FLD (f_GRi)), 65280), ANDSI (GET_H_GR (FLD (f_GRj)), 65280)), 0)) {
3068   tmp_cc = ANDQI (tmp_cc, 13);
3069 } else {
3070   tmp_cc = ORQI (tmp_cc, 2);
3071 }
3072 if (EQBI (EQSI (ANDSI (GET_H_GR (FLD (f_GRi)), 255), ANDSI (GET_H_GR (FLD (f_GRj)), 255)), 0)) {
3073   tmp_cc = ANDQI (tmp_cc, 14);
3074 } else {
3075   tmp_cc = ORQI (tmp_cc, 1);
3076 }
3077   {
3078     UQI opval = tmp_cc;
3079     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
3080     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
3081   }
3082 }
3083
3084   return vpc;
3085 #undef FLD
3086 }
3087
3088 /* cmpba: cmpba$pack $GRi,$GRj,$ICCi_1 */
3089
3090 static SEM_PC
3091 SEM_FN_NAME (frvbf,cmpba) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3092 {
3093 #define FLD(f) abuf->fields.sfmt_smulcc.f
3094   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3095   int UNUSED written = 0;
3096   IADDR UNUSED pc = abuf->addr;
3097   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3098
3099 {
3100   QI tmp_cc;
3101   tmp_cc = 0;
3102 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)) {
3103   tmp_cc = ANDQI (tmp_cc, 14);
3104 } else {
3105   tmp_cc = ORQI (tmp_cc, 1);
3106 }
3107   {
3108     UQI opval = tmp_cc;
3109     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
3110     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
3111   }
3112 }
3113
3114   return vpc;
3115 #undef FLD
3116 }
3117
3118 /* setlo: setlo$pack $ulo16,$GRklo */
3119
3120 static SEM_PC
3121 SEM_FN_NAME (frvbf,setlo) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3122 {
3123 #define FLD(f) abuf->fields.sfmt_setlo.f
3124   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3125   int UNUSED written = 0;
3126   IADDR UNUSED pc = abuf->addr;
3127   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3128
3129   {
3130     UHI opval = FLD (f_u16);
3131     sim_queue_fn_hi_write (current_cpu, frvbf_h_gr_lo_set, FLD (f_GRk), opval);
3132     TRACE_RESULT (current_cpu, abuf, "gr_lo", 'x', opval);
3133   }
3134
3135   return vpc;
3136 #undef FLD
3137 }
3138
3139 /* sethi: sethi$pack $uhi16,$GRkhi */
3140
3141 static SEM_PC
3142 SEM_FN_NAME (frvbf,sethi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3143 {
3144 #define FLD(f) abuf->fields.sfmt_sethi.f
3145   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3146   int UNUSED written = 0;
3147   IADDR UNUSED pc = abuf->addr;
3148   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3149
3150   {
3151     UHI opval = FLD (f_u16);
3152     sim_queue_fn_hi_write (current_cpu, frvbf_h_gr_hi_set, FLD (f_GRk), opval);
3153     TRACE_RESULT (current_cpu, abuf, "gr_hi", 'x', opval);
3154   }
3155
3156   return vpc;
3157 #undef FLD
3158 }
3159
3160 /* setlos: setlos$pack $slo16,$GRk */
3161
3162 static SEM_PC
3163 SEM_FN_NAME (frvbf,setlos) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3164 {
3165 #define FLD(f) abuf->fields.sfmt_setlos.f
3166   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3167   int UNUSED written = 0;
3168   IADDR UNUSED pc = abuf->addr;
3169   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3170
3171   {
3172     SI opval = FLD (f_s16);
3173     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3174     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3175   }
3176
3177   return vpc;
3178 #undef FLD
3179 }
3180
3181 /* ldsb: ldsb$pack @($GRi,$GRj),$GRk */
3182
3183 static SEM_PC
3184 SEM_FN_NAME (frvbf,ldsb) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3185 {
3186 #define FLD(f) abuf->fields.sfmt_addcc.f
3187   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3188   int UNUSED written = 0;
3189   IADDR UNUSED pc = abuf->addr;
3190   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3191
3192   {
3193     SI opval = frvbf_read_mem_QI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3194     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3195     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3196   }
3197
3198   return vpc;
3199 #undef FLD
3200 }
3201
3202 /* ldub: ldub$pack @($GRi,$GRj),$GRk */
3203
3204 static SEM_PC
3205 SEM_FN_NAME (frvbf,ldub) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3206 {
3207 #define FLD(f) abuf->fields.sfmt_addcc.f
3208   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3209   int UNUSED written = 0;
3210   IADDR UNUSED pc = abuf->addr;
3211   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3212
3213   {
3214     SI opval = frvbf_read_mem_UQI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3215     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3216     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3217   }
3218
3219   return vpc;
3220 #undef FLD
3221 }
3222
3223 /* ldsh: ldsh$pack @($GRi,$GRj),$GRk */
3224
3225 static SEM_PC
3226 SEM_FN_NAME (frvbf,ldsh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3227 {
3228 #define FLD(f) abuf->fields.sfmt_addcc.f
3229   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3230   int UNUSED written = 0;
3231   IADDR UNUSED pc = abuf->addr;
3232   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3233
3234   {
3235     SI opval = frvbf_read_mem_HI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3236     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3237     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3238   }
3239
3240   return vpc;
3241 #undef FLD
3242 }
3243
3244 /* lduh: lduh$pack @($GRi,$GRj),$GRk */
3245
3246 static SEM_PC
3247 SEM_FN_NAME (frvbf,lduh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3248 {
3249 #define FLD(f) abuf->fields.sfmt_addcc.f
3250   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3251   int UNUSED written = 0;
3252   IADDR UNUSED pc = abuf->addr;
3253   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3254
3255   {
3256     SI opval = frvbf_read_mem_UHI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3257     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3258     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3259   }
3260
3261   return vpc;
3262 #undef FLD
3263 }
3264
3265 /* ld: ld$pack $ldann($GRi,$GRj),$GRk */
3266
3267 static SEM_PC
3268 SEM_FN_NAME (frvbf,ld) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3269 {
3270 #define FLD(f) abuf->fields.sfmt_addcc.f
3271   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3272   int UNUSED written = 0;
3273   IADDR UNUSED pc = abuf->addr;
3274   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3275
3276   {
3277     SI opval = frvbf_read_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3278     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3279     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3280   }
3281
3282   return vpc;
3283 #undef FLD
3284 }
3285
3286 /* ldbf: ldbf$pack @($GRi,$GRj),$FRintk */
3287
3288 static SEM_PC
3289 SEM_FN_NAME (frvbf,ldbf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3290 {
3291 #define FLD(f) abuf->fields.sfmt_cldbfu.f
3292   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3293   int UNUSED written = 0;
3294   IADDR UNUSED pc = abuf->addr;
3295   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3296
3297   {
3298     SI opval = frvbf_read_mem_UQI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3299     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
3300     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
3301   }
3302
3303   return vpc;
3304 #undef FLD
3305 }
3306
3307 /* ldhf: ldhf$pack @($GRi,$GRj),$FRintk */
3308
3309 static SEM_PC
3310 SEM_FN_NAME (frvbf,ldhf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3311 {
3312 #define FLD(f) abuf->fields.sfmt_cldbfu.f
3313   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3314   int UNUSED written = 0;
3315   IADDR UNUSED pc = abuf->addr;
3316   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3317
3318   {
3319     SI opval = frvbf_read_mem_UHI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3320     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
3321     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
3322   }
3323
3324   return vpc;
3325 #undef FLD
3326 }
3327
3328 /* ldf: ldf$pack @($GRi,$GRj),$FRintk */
3329
3330 static SEM_PC
3331 SEM_FN_NAME (frvbf,ldf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3332 {
3333 #define FLD(f) abuf->fields.sfmt_cldbfu.f
3334   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3335   int UNUSED written = 0;
3336   IADDR UNUSED pc = abuf->addr;
3337   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3338
3339   {
3340     SI opval = frvbf_read_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3341     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
3342     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
3343   }
3344
3345   return vpc;
3346 #undef FLD
3347 }
3348
3349 /* ldc: ldc$pack @($GRi,$GRj),$CPRk */
3350
3351 static SEM_PC
3352 SEM_FN_NAME (frvbf,ldc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3353 {
3354 #define FLD(f) abuf->fields.sfmt_ldcu.f
3355   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3356   int UNUSED written = 0;
3357   IADDR UNUSED pc = abuf->addr;
3358   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3359
3360   {
3361     SI opval = frvbf_read_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3362     sim_queue_si_write (current_cpu, & CPU (h_cpr[FLD (f_CPRk)]), opval);
3363     TRACE_RESULT (current_cpu, abuf, "cpr", 'x', opval);
3364   }
3365
3366   return vpc;
3367 #undef FLD
3368 }
3369
3370 /* nldsb: nldsb$pack @($GRi,$GRj),$GRk */
3371
3372 static SEM_PC
3373 SEM_FN_NAME (frvbf,nldsb) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3374 {
3375 #define FLD(f) abuf->fields.sfmt_addcc.f
3376   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3377   int UNUSED written = 0;
3378   IADDR UNUSED pc = abuf->addr;
3379   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3380
3381 {
3382   BI tmp_do_op;
3383   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 1, 0);
3384 if (tmp_do_op) {
3385   {
3386     SI opval = frvbf_read_mem_QI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3387     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3388     written |= (1 << 6);
3389     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3390   }
3391 }
3392 }
3393
3394   abuf->written = written;
3395   return vpc;
3396 #undef FLD
3397 }
3398
3399 /* nldub: nldub$pack @($GRi,$GRj),$GRk */
3400
3401 static SEM_PC
3402 SEM_FN_NAME (frvbf,nldub) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3403 {
3404 #define FLD(f) abuf->fields.sfmt_addcc.f
3405   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3406   int UNUSED written = 0;
3407   IADDR UNUSED pc = abuf->addr;
3408   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3409
3410 {
3411   BI tmp_do_op;
3412   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 0, 0);
3413 if (tmp_do_op) {
3414   {
3415     SI opval = frvbf_read_mem_UQI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3416     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3417     written |= (1 << 6);
3418     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3419   }
3420 }
3421 }
3422
3423   abuf->written = written;
3424   return vpc;
3425 #undef FLD
3426 }
3427
3428 /* nldsh: nldsh$pack @($GRi,$GRj),$GRk */
3429
3430 static SEM_PC
3431 SEM_FN_NAME (frvbf,nldsh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3432 {
3433 #define FLD(f) abuf->fields.sfmt_addcc.f
3434   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3435   int UNUSED written = 0;
3436   IADDR UNUSED pc = abuf->addr;
3437   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3438
3439 {
3440   BI tmp_do_op;
3441   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 3, 0);
3442 if (tmp_do_op) {
3443   {
3444     SI opval = frvbf_read_mem_HI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3445     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3446     written |= (1 << 6);
3447     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3448   }
3449 }
3450 }
3451
3452   abuf->written = written;
3453   return vpc;
3454 #undef FLD
3455 }
3456
3457 /* nlduh: nlduh$pack @($GRi,$GRj),$GRk */
3458
3459 static SEM_PC
3460 SEM_FN_NAME (frvbf,nlduh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3461 {
3462 #define FLD(f) abuf->fields.sfmt_addcc.f
3463   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3464   int UNUSED written = 0;
3465   IADDR UNUSED pc = abuf->addr;
3466   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3467
3468 {
3469   BI tmp_do_op;
3470   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 2, 0);
3471 if (tmp_do_op) {
3472   {
3473     SI opval = frvbf_read_mem_UHI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3474     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3475     written |= (1 << 6);
3476     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3477   }
3478 }
3479 }
3480
3481   abuf->written = written;
3482   return vpc;
3483 #undef FLD
3484 }
3485
3486 /* nld: nld$pack @($GRi,$GRj),$GRk */
3487
3488 static SEM_PC
3489 SEM_FN_NAME (frvbf,nld) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3490 {
3491 #define FLD(f) abuf->fields.sfmt_addcc.f
3492   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3493   int UNUSED written = 0;
3494   IADDR UNUSED pc = abuf->addr;
3495   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3496
3497 {
3498   BI tmp_do_op;
3499   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 4, 0);
3500 if (tmp_do_op) {
3501   {
3502     SI opval = frvbf_read_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3503     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3504     written |= (1 << 6);
3505     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3506   }
3507 }
3508 }
3509
3510   abuf->written = written;
3511   return vpc;
3512 #undef FLD
3513 }
3514
3515 /* nldbf: nldbf$pack @($GRi,$GRj),$FRintk */
3516
3517 static SEM_PC
3518 SEM_FN_NAME (frvbf,nldbf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3519 {
3520 #define FLD(f) abuf->fields.sfmt_cldbfu.f
3521   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3522   int UNUSED written = 0;
3523   IADDR UNUSED pc = abuf->addr;
3524   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3525
3526 {
3527   BI tmp_do_op;
3528   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_FRk), 0, 0, 1);
3529 if (tmp_do_op) {
3530   {
3531     SI opval = frvbf_read_mem_UQI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3532     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
3533     written |= (1 << 6);
3534     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
3535   }
3536 }
3537 }
3538
3539   abuf->written = written;
3540   return vpc;
3541 #undef FLD
3542 }
3543
3544 /* nldhf: nldhf$pack @($GRi,$GRj),$FRintk */
3545
3546 static SEM_PC
3547 SEM_FN_NAME (frvbf,nldhf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3548 {
3549 #define FLD(f) abuf->fields.sfmt_cldbfu.f
3550   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3551   int UNUSED written = 0;
3552   IADDR UNUSED pc = abuf->addr;
3553   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3554
3555 {
3556   BI tmp_do_op;
3557   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_FRk), 0, 2, 1);
3558 if (tmp_do_op) {
3559   {
3560     SI opval = frvbf_read_mem_UHI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3561     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
3562     written |= (1 << 6);
3563     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
3564   }
3565 }
3566 }
3567
3568   abuf->written = written;
3569   return vpc;
3570 #undef FLD
3571 }
3572
3573 /* nldf: nldf$pack @($GRi,$GRj),$FRintk */
3574
3575 static SEM_PC
3576 SEM_FN_NAME (frvbf,nldf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3577 {
3578 #define FLD(f) abuf->fields.sfmt_cldbfu.f
3579   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3580   int UNUSED written = 0;
3581   IADDR UNUSED pc = abuf->addr;
3582   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3583
3584 {
3585   BI tmp_do_op;
3586   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_FRk), 0, 4, 1);
3587 if (tmp_do_op) {
3588   {
3589     SI opval = frvbf_read_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3590     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
3591     written |= (1 << 6);
3592     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
3593   }
3594 }
3595 }
3596
3597   abuf->written = written;
3598   return vpc;
3599 #undef FLD
3600 }
3601
3602 /* ldd: ldd$pack $lddann($GRi,$GRj),$GRdoublek */
3603
3604 static SEM_PC
3605 SEM_FN_NAME (frvbf,ldd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3606 {
3607 #define FLD(f) abuf->fields.sfmt_smulcc.f
3608   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3609   int UNUSED written = 0;
3610   IADDR UNUSED pc = abuf->addr;
3611   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3612
3613 {
3614   SI tmp_address;
3615 if (NESI (FLD (f_GRk), 0)) {
3616 {
3617   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3618   {
3619     DI opval = frvbf_read_mem_DI (current_cpu, pc, tmp_address);
3620     sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
3621     written |= (1 << 4);
3622     TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
3623   }
3624 }
3625 }
3626 }
3627
3628   abuf->written = written;
3629   return vpc;
3630 #undef FLD
3631 }
3632
3633 /* lddf: lddf$pack @($GRi,$GRj),$FRdoublek */
3634
3635 static SEM_PC
3636 SEM_FN_NAME (frvbf,lddf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3637 {
3638 #define FLD(f) abuf->fields.sfmt_clddfu.f
3639   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3640   int UNUSED written = 0;
3641   IADDR UNUSED pc = abuf->addr;
3642   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3643
3644 {
3645   SI tmp_address;
3646 {
3647   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3648   {
3649     DF opval = frvbf_read_mem_DF (current_cpu, pc, tmp_address);
3650     sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
3651     TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
3652   }
3653 }
3654 }
3655
3656   return vpc;
3657 #undef FLD
3658 }
3659
3660 /* lddc: lddc$pack @($GRi,$GRj),$CPRdoublek */
3661
3662 static SEM_PC
3663 SEM_FN_NAME (frvbf,lddc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3664 {
3665 #define FLD(f) abuf->fields.sfmt_lddcu.f
3666   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3667   int UNUSED written = 0;
3668   IADDR UNUSED pc = abuf->addr;
3669   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3670
3671 {
3672   SI tmp_address;
3673 {
3674   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3675   {
3676     DI opval = frvbf_read_mem_DI (current_cpu, pc, tmp_address);
3677     sim_queue_fn_di_write (current_cpu, frvbf_h_cpr_double_set, FLD (f_CPRk), opval);
3678     TRACE_RESULT (current_cpu, abuf, "cpr_double", 'D', opval);
3679   }
3680 }
3681 }
3682
3683   return vpc;
3684 #undef FLD
3685 }
3686
3687 /* nldd: nldd$pack @($GRi,$GRj),$GRdoublek */
3688
3689 static SEM_PC
3690 SEM_FN_NAME (frvbf,nldd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3691 {
3692 #define FLD(f) abuf->fields.sfmt_smulcc.f
3693   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3694   int UNUSED written = 0;
3695   IADDR UNUSED pc = abuf->addr;
3696   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3697
3698 {
3699   SI tmp_address;
3700 {
3701   BI tmp_do_op;
3702   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 5, 0);
3703 if (tmp_do_op) {
3704 if (NESI (FLD (f_GRk), 0)) {
3705 {
3706   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3707   {
3708     DI opval = frvbf_read_mem_DI (current_cpu, pc, tmp_address);
3709     sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
3710     written |= (1 << 6);
3711     TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
3712   }
3713 }
3714 }
3715 }
3716 }
3717 }
3718
3719   abuf->written = written;
3720   return vpc;
3721 #undef FLD
3722 }
3723
3724 /* nlddf: nlddf$pack @($GRi,$GRj),$FRdoublek */
3725
3726 static SEM_PC
3727 SEM_FN_NAME (frvbf,nlddf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3728 {
3729 #define FLD(f) abuf->fields.sfmt_clddfu.f
3730   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3731   int UNUSED written = 0;
3732   IADDR UNUSED pc = abuf->addr;
3733   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3734
3735 {
3736   SI tmp_address;
3737 {
3738   BI tmp_do_op;
3739   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_FRk), 0, 5, 1);
3740 if (tmp_do_op) {
3741 {
3742   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3743   {
3744     DF opval = frvbf_read_mem_DF (current_cpu, pc, tmp_address);
3745     sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
3746     written |= (1 << 6);
3747     TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
3748   }
3749 }
3750 }
3751 }
3752 }
3753
3754   abuf->written = written;
3755   return vpc;
3756 #undef FLD
3757 }
3758
3759 /* ldq: ldq$pack @($GRi,$GRj),$GRk */
3760
3761 static SEM_PC
3762 SEM_FN_NAME (frvbf,ldq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3763 {
3764 #define FLD(f) abuf->fields.sfmt_smulcc.f
3765   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3766   int UNUSED written = 0;
3767   IADDR UNUSED pc = abuf->addr;
3768   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3769
3770 {
3771   SI tmp_address;
3772 {
3773   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3774 frvbf_load_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
3775 }
3776 }
3777
3778   return vpc;
3779 #undef FLD
3780 }
3781
3782 /* ldqf: ldqf$pack @($GRi,$GRj),$FRintk */
3783
3784 static SEM_PC
3785 SEM_FN_NAME (frvbf,ldqf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3786 {
3787 #define FLD(f) abuf->fields.sfmt_cstdfu.f
3788   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3789   int UNUSED written = 0;
3790   IADDR UNUSED pc = abuf->addr;
3791   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3792
3793 {
3794   SI tmp_address;
3795 {
3796   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3797 frvbf_load_quad_FRint (current_cpu, pc, tmp_address, FLD (f_FRk));
3798 }
3799 }
3800
3801   return vpc;
3802 #undef FLD
3803 }
3804
3805 /* ldqc: ldqc$pack @($GRi,$GRj),$CPRk */
3806
3807 static SEM_PC
3808 SEM_FN_NAME (frvbf,ldqc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3809 {
3810 #define FLD(f) abuf->fields.sfmt_stdcu.f
3811   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3812   int UNUSED written = 0;
3813   IADDR UNUSED pc = abuf->addr;
3814   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3815
3816 {
3817   SI tmp_address;
3818 {
3819   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3820 frvbf_load_quad_CPR (current_cpu, pc, tmp_address, FLD (f_CPRk));
3821 }
3822 }
3823
3824   return vpc;
3825 #undef FLD
3826 }
3827
3828 /* nldq: nldq$pack @($GRi,$GRj),$GRk */
3829
3830 static SEM_PC
3831 SEM_FN_NAME (frvbf,nldq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3832 {
3833 #define FLD(f) abuf->fields.sfmt_smulcc.f
3834   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3835   int UNUSED written = 0;
3836   IADDR UNUSED pc = abuf->addr;
3837   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3838
3839 {
3840   SI tmp_address;
3841 {
3842   BI tmp_do_op;
3843   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 6, 0);
3844 if (tmp_do_op) {
3845 {
3846   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3847 frvbf_load_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
3848 }
3849 }
3850 }
3851 }
3852
3853   return vpc;
3854 #undef FLD
3855 }
3856
3857 /* nldqf: nldqf$pack @($GRi,$GRj),$FRintk */
3858
3859 static SEM_PC
3860 SEM_FN_NAME (frvbf,nldqf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3861 {
3862 #define FLD(f) abuf->fields.sfmt_cstdfu.f
3863   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3864   int UNUSED written = 0;
3865   IADDR UNUSED pc = abuf->addr;
3866   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3867
3868 {
3869   SI tmp_address;
3870 {
3871   BI tmp_do_op;
3872   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_FRk), 0, 6, 1);
3873 if (tmp_do_op) {
3874 {
3875   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3876 frvbf_load_quad_FRint (current_cpu, pc, tmp_address, FLD (f_FRk));
3877 }
3878 }
3879 }
3880 }
3881
3882   return vpc;
3883 #undef FLD
3884 }
3885
3886 /* ldsbu: ldsbu$pack @($GRi,$GRj),$GRk */
3887
3888 static SEM_PC
3889 SEM_FN_NAME (frvbf,ldsbu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3890 {
3891 #define FLD(f) abuf->fields.sfmt_cldsbu.f
3892   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3893   int UNUSED written = 0;
3894   IADDR UNUSED pc = abuf->addr;
3895   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3896
3897 {
3898   USI tmp_address;
3899   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3900   {
3901     SI opval = frvbf_read_mem_QI (current_cpu, pc, tmp_address);
3902     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3903     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3904   }
3905 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
3906 {
3907   {
3908     SI opval = tmp_address;
3909     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
3910     written |= (1 << 5);
3911     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3912   }
3913 frvbf_force_update (current_cpu);
3914 }
3915 }
3916 }
3917
3918   abuf->written = written;
3919   return vpc;
3920 #undef FLD
3921 }
3922
3923 /* ldubu: ldubu$pack @($GRi,$GRj),$GRk */
3924
3925 static SEM_PC
3926 SEM_FN_NAME (frvbf,ldubu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3927 {
3928 #define FLD(f) abuf->fields.sfmt_cldsbu.f
3929   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3930   int UNUSED written = 0;
3931   IADDR UNUSED pc = abuf->addr;
3932   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3933
3934 {
3935   USI tmp_address;
3936   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3937   {
3938     SI opval = frvbf_read_mem_UQI (current_cpu, pc, tmp_address);
3939     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3940     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3941   }
3942 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
3943 {
3944   {
3945     SI opval = tmp_address;
3946     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
3947     written |= (1 << 5);
3948     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3949   }
3950 frvbf_force_update (current_cpu);
3951 }
3952 }
3953 }
3954
3955   abuf->written = written;
3956   return vpc;
3957 #undef FLD
3958 }
3959
3960 /* ldshu: ldshu$pack @($GRi,$GRj),$GRk */
3961
3962 static SEM_PC
3963 SEM_FN_NAME (frvbf,ldshu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3964 {
3965 #define FLD(f) abuf->fields.sfmt_cldsbu.f
3966   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3967   int UNUSED written = 0;
3968   IADDR UNUSED pc = abuf->addr;
3969   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3970
3971 {
3972   USI tmp_address;
3973   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3974   {
3975     SI opval = frvbf_read_mem_HI (current_cpu, pc, tmp_address);
3976     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3977     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3978   }
3979 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
3980 {
3981   {
3982     SI opval = tmp_address;
3983     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
3984     written |= (1 << 5);
3985     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3986   }
3987 frvbf_force_update (current_cpu);
3988 }
3989 }
3990 }
3991
3992   abuf->written = written;
3993   return vpc;
3994 #undef FLD
3995 }
3996
3997 /* lduhu: lduhu$pack @($GRi,$GRj),$GRk */
3998
3999 static SEM_PC
4000 SEM_FN_NAME (frvbf,lduhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4001 {
4002 #define FLD(f) abuf->fields.sfmt_cldsbu.f
4003   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4004   int UNUSED written = 0;
4005   IADDR UNUSED pc = abuf->addr;
4006   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4007
4008 {
4009   USI tmp_address;
4010   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4011   {
4012     SI opval = frvbf_read_mem_UHI (current_cpu, pc, tmp_address);
4013     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
4014     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4015   }
4016 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
4017 {
4018   {
4019     SI opval = tmp_address;
4020     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4021     written |= (1 << 5);
4022     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4023   }
4024 frvbf_force_update (current_cpu);
4025 }
4026 }
4027 }
4028
4029   abuf->written = written;
4030   return vpc;
4031 #undef FLD
4032 }
4033
4034 /* ldu: ldu$pack @($GRi,$GRj),$GRk */
4035
4036 static SEM_PC
4037 SEM_FN_NAME (frvbf,ldu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4038 {
4039 #define FLD(f) abuf->fields.sfmt_cldsbu.f
4040   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4041   int UNUSED written = 0;
4042   IADDR UNUSED pc = abuf->addr;
4043   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4044
4045 {
4046   USI tmp_address;
4047   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4048   {
4049     SI opval = frvbf_read_mem_SI (current_cpu, pc, tmp_address);
4050     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
4051     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4052   }
4053 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
4054 {
4055   {
4056     SI opval = tmp_address;
4057     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4058     written |= (1 << 5);
4059     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4060   }
4061 frvbf_force_update (current_cpu);
4062 }
4063 }
4064 }
4065
4066   abuf->written = written;
4067   return vpc;
4068 #undef FLD
4069 }
4070
4071 /* nldsbu: nldsbu$pack @($GRi,$GRj),$GRk */
4072
4073 static SEM_PC
4074 SEM_FN_NAME (frvbf,nldsbu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4075 {
4076 #define FLD(f) abuf->fields.sfmt_cldsbu.f
4077   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4078   int UNUSED written = 0;
4079   IADDR UNUSED pc = abuf->addr;
4080   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4081
4082 {
4083   BI tmp_do_op;
4084   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 1, 0);
4085 if (tmp_do_op) {
4086 {
4087   USI tmp_address;
4088   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4089   {
4090     SI opval = frvbf_read_mem_QI (current_cpu, pc, tmp_address);
4091     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
4092     written |= (1 << 7);
4093     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4094   }
4095 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
4096 {
4097   {
4098     SI opval = tmp_address;
4099     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4100     written |= (1 << 6);
4101     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4102   }
4103 frvbf_force_update (current_cpu);
4104 }
4105 }
4106 }
4107 }
4108 }
4109
4110   abuf->written = written;
4111   return vpc;
4112 #undef FLD
4113 }
4114
4115 /* nldubu: nldubu$pack @($GRi,$GRj),$GRk */
4116
4117 static SEM_PC
4118 SEM_FN_NAME (frvbf,nldubu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4119 {
4120 #define FLD(f) abuf->fields.sfmt_cldsbu.f
4121   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4122   int UNUSED written = 0;
4123   IADDR UNUSED pc = abuf->addr;
4124   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4125
4126 {
4127   BI tmp_do_op;
4128   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 0, 0);
4129 if (tmp_do_op) {
4130 {
4131   USI tmp_address;
4132   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4133   {
4134     SI opval = frvbf_read_mem_UQI (current_cpu, pc, tmp_address);
4135     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
4136     written |= (1 << 7);
4137     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4138   }
4139 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
4140 {
4141   {
4142     SI opval = tmp_address;
4143     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4144     written |= (1 << 6);
4145     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4146   }
4147 frvbf_force_update (current_cpu);
4148 }
4149 }
4150 }
4151 }
4152 }
4153
4154   abuf->written = written;
4155   return vpc;
4156 #undef FLD
4157 }
4158
4159 /* nldshu: nldshu$pack @($GRi,$GRj),$GRk */
4160
4161 static SEM_PC
4162 SEM_FN_NAME (frvbf,nldshu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4163 {
4164 #define FLD(f) abuf->fields.sfmt_cldsbu.f
4165   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4166   int UNUSED written = 0;
4167   IADDR UNUSED pc = abuf->addr;
4168   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4169
4170 {
4171   BI tmp_do_op;
4172   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 3, 0);
4173 if (tmp_do_op) {
4174 {
4175   USI tmp_address;
4176   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4177   {
4178     SI opval = frvbf_read_mem_HI (current_cpu, pc, tmp_address);
4179     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
4180     written |= (1 << 7);
4181     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4182   }
4183 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
4184 {
4185   {
4186     SI opval = tmp_address;
4187     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4188     written |= (1 << 6);
4189     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4190   }
4191 frvbf_force_update (current_cpu);
4192 }
4193 }
4194 }
4195 }
4196 }
4197
4198   abuf->written = written;
4199   return vpc;
4200 #undef FLD
4201 }
4202
4203 /* nlduhu: nlduhu$pack @($GRi,$GRj),$GRk */
4204
4205 static SEM_PC
4206 SEM_FN_NAME (frvbf,nlduhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4207 {
4208 #define FLD(f) abuf->fields.sfmt_cldsbu.f
4209   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4210   int UNUSED written = 0;
4211   IADDR UNUSED pc = abuf->addr;
4212   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4213
4214 {
4215   BI tmp_do_op;
4216   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 2, 0);
4217 if (tmp_do_op) {
4218 {
4219   USI tmp_address;
4220   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4221   {
4222     SI opval = frvbf_read_mem_UHI (current_cpu, pc, tmp_address);
4223     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
4224     written |= (1 << 7);
4225     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4226   }
4227 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
4228 {
4229   {
4230     SI opval = tmp_address;
4231     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4232     written |= (1 << 6);
4233     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4234   }
4235 frvbf_force_update (current_cpu);
4236 }
4237 }
4238 }
4239 }
4240 }
4241
4242   abuf->written = written;
4243   return vpc;
4244 #undef FLD
4245 }
4246
4247 /* nldu: nldu$pack @($GRi,$GRj),$GRk */
4248
4249 static SEM_PC
4250 SEM_FN_NAME (frvbf,nldu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4251 {
4252 #define FLD(f) abuf->fields.sfmt_cldsbu.f
4253   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4254   int UNUSED written = 0;
4255   IADDR UNUSED pc = abuf->addr;
4256   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4257
4258 {
4259   BI tmp_do_op;
4260   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 4, 0);
4261 if (tmp_do_op) {
4262 {
4263   USI tmp_address;
4264   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4265   {
4266     SI opval = frvbf_read_mem_SI (current_cpu, pc, tmp_address);
4267     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
4268     written |= (1 << 7);
4269     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4270   }
4271 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
4272 {
4273   {
4274     SI opval = tmp_address;
4275     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4276     written |= (1 << 6);
4277     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4278   }
4279 frvbf_force_update (current_cpu);
4280 }
4281 }
4282 }
4283 }
4284 }
4285
4286   abuf->written = written;
4287   return vpc;
4288 #undef FLD
4289 }
4290
4291 /* ldbfu: ldbfu$pack @($GRi,$GRj),$FRintk */
4292
4293 static SEM_PC
4294 SEM_FN_NAME (frvbf,ldbfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4295 {
4296 #define FLD(f) abuf->fields.sfmt_cldbfu.f
4297   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4298   int UNUSED written = 0;
4299   IADDR UNUSED pc = abuf->addr;
4300   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4301
4302 {
4303   USI tmp_address;
4304   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4305   {
4306     SI opval = frvbf_read_mem_UQI (current_cpu, pc, tmp_address);
4307     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
4308     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
4309   }
4310   {
4311     SI opval = tmp_address;
4312     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4313     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4314   }
4315 frvbf_force_update (current_cpu);
4316 }
4317
4318   return vpc;
4319 #undef FLD
4320 }
4321
4322 /* ldhfu: ldhfu$pack @($GRi,$GRj),$FRintk */
4323
4324 static SEM_PC
4325 SEM_FN_NAME (frvbf,ldhfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4326 {
4327 #define FLD(f) abuf->fields.sfmt_cldbfu.f
4328   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4329   int UNUSED written = 0;
4330   IADDR UNUSED pc = abuf->addr;
4331   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4332
4333 {
4334   USI tmp_address;
4335   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4336   {
4337     SI opval = frvbf_read_mem_UHI (current_cpu, pc, tmp_address);
4338     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
4339     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
4340   }
4341   {
4342     SI opval = tmp_address;
4343     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4344     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4345   }
4346 frvbf_force_update (current_cpu);
4347 }
4348
4349   return vpc;
4350 #undef FLD
4351 }
4352
4353 /* ldfu: ldfu$pack @($GRi,$GRj),$FRintk */
4354
4355 static SEM_PC
4356 SEM_FN_NAME (frvbf,ldfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4357 {
4358 #define FLD(f) abuf->fields.sfmt_cldbfu.f
4359   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4360   int UNUSED written = 0;
4361   IADDR UNUSED pc = abuf->addr;
4362   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4363
4364 {
4365   USI tmp_address;
4366   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4367   {
4368     SI opval = frvbf_read_mem_SI (current_cpu, pc, tmp_address);
4369     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
4370     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
4371   }
4372   {
4373     SI opval = tmp_address;
4374     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4375     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4376   }
4377 frvbf_force_update (current_cpu);
4378 }
4379
4380   return vpc;
4381 #undef FLD
4382 }
4383
4384 /* ldcu: ldcu$pack @($GRi,$GRj),$CPRk */
4385
4386 static SEM_PC
4387 SEM_FN_NAME (frvbf,ldcu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4388 {
4389 #define FLD(f) abuf->fields.sfmt_ldcu.f
4390   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4391   int UNUSED written = 0;
4392   IADDR UNUSED pc = abuf->addr;
4393   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4394
4395 {
4396   USI tmp_address;
4397   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4398   {
4399     SI opval = frvbf_read_mem_SI (current_cpu, pc, tmp_address);
4400     sim_queue_si_write (current_cpu, & CPU (h_cpr[FLD (f_CPRk)]), opval);
4401     TRACE_RESULT (current_cpu, abuf, "cpr", 'x', opval);
4402   }
4403   {
4404     SI opval = tmp_address;
4405     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4406     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4407   }
4408 frvbf_force_update (current_cpu);
4409 }
4410
4411   return vpc;
4412 #undef FLD
4413 }
4414
4415 /* nldbfu: nldbfu$pack @($GRi,$GRj),$FRintk */
4416
4417 static SEM_PC
4418 SEM_FN_NAME (frvbf,nldbfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4419 {
4420 #define FLD(f) abuf->fields.sfmt_cldbfu.f
4421   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4422   int UNUSED written = 0;
4423   IADDR UNUSED pc = abuf->addr;
4424   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4425
4426 {
4427   BI tmp_do_op;
4428   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_FRk), 0, 0, 1);
4429 if (tmp_do_op) {
4430 {
4431   USI tmp_address;
4432   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4433   {
4434     SI opval = frvbf_read_mem_UQI (current_cpu, pc, tmp_address);
4435     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
4436     written |= (1 << 6);
4437     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
4438   }
4439   {
4440     SI opval = tmp_address;
4441     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4442     written |= (1 << 7);
4443     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4444   }
4445 frvbf_force_update (current_cpu);
4446 }
4447 }
4448 }
4449
4450   abuf->written = written;
4451   return vpc;
4452 #undef FLD
4453 }
4454
4455 /* nldhfu: nldhfu$pack @($GRi,$GRj),$FRintk */
4456
4457 static SEM_PC
4458 SEM_FN_NAME (frvbf,nldhfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4459 {
4460 #define FLD(f) abuf->fields.sfmt_cldbfu.f
4461   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4462   int UNUSED written = 0;
4463   IADDR UNUSED pc = abuf->addr;
4464   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4465
4466 {
4467   BI tmp_do_op;
4468   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_FRk), 0, 2, 1);
4469 if (tmp_do_op) {
4470 {
4471   USI tmp_address;
4472   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4473   {
4474     SI opval = frvbf_read_mem_UHI (current_cpu, pc, tmp_address);
4475     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
4476     written |= (1 << 6);
4477     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
4478   }
4479   {
4480     SI opval = tmp_address;
4481     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4482     written |= (1 << 7);
4483     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4484   }
4485 frvbf_force_update (current_cpu);
4486 }
4487 }
4488 }
4489
4490   abuf->written = written;
4491   return vpc;
4492 #undef FLD
4493 }
4494
4495 /* nldfu: nldfu$pack @($GRi,$GRj),$FRintk */
4496
4497 static SEM_PC
4498 SEM_FN_NAME (frvbf,nldfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4499 {
4500 #define FLD(f) abuf->fields.sfmt_cldbfu.f
4501   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4502   int UNUSED written = 0;
4503   IADDR UNUSED pc = abuf->addr;
4504   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4505
4506 {
4507   BI tmp_do_op;
4508   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_FRk), 0, 4, 1);
4509 if (tmp_do_op) {
4510 {
4511   USI tmp_address;
4512   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4513   {
4514     SI opval = frvbf_read_mem_SI (current_cpu, pc, tmp_address);
4515     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
4516     written |= (1 << 6);
4517     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
4518   }
4519   {
4520     SI opval = tmp_address;
4521     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4522     written |= (1 << 7);
4523     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4524   }
4525 frvbf_force_update (current_cpu);
4526 }
4527 }
4528 }
4529
4530   abuf->written = written;
4531   return vpc;
4532 #undef FLD
4533 }
4534
4535 /* lddu: lddu$pack @($GRi,$GRj),$GRdoublek */
4536
4537 static SEM_PC
4538 SEM_FN_NAME (frvbf,lddu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4539 {
4540 #define FLD(f) abuf->fields.sfmt_clddu.f
4541   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4542   int UNUSED written = 0;
4543   IADDR UNUSED pc = abuf->addr;
4544   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4545
4546 {
4547   SI tmp_address;
4548 if (NESI (FLD (f_GRk), 0)) {
4549 {
4550   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4551   {
4552     DI opval = frvbf_read_mem_DI (current_cpu, pc, tmp_address);
4553     sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
4554     written |= (1 << 5);
4555     TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
4556   }
4557 }
4558 }
4559 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
4560 {
4561   {
4562     SI opval = tmp_address;
4563     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4564     written |= (1 << 6);
4565     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4566   }
4567 frvbf_force_update (current_cpu);
4568 }
4569 }
4570 }
4571
4572   abuf->written = written;
4573   return vpc;
4574 #undef FLD
4575 }
4576
4577 /* nlddu: nlddu$pack @($GRi,$GRj),$GRdoublek */
4578
4579 static SEM_PC
4580 SEM_FN_NAME (frvbf,nlddu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4581 {
4582 #define FLD(f) abuf->fields.sfmt_clddu.f
4583   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4584   int UNUSED written = 0;
4585   IADDR UNUSED pc = abuf->addr;
4586   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4587
4588 {
4589   BI tmp_do_op;
4590   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 5, 0);
4591 if (tmp_do_op) {
4592 {
4593   SI tmp_address;
4594 if (NESI (FLD (f_GRk), 0)) {
4595 {
4596   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4597   {
4598     DI opval = frvbf_read_mem_DI (current_cpu, pc, tmp_address);
4599     sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
4600     written |= (1 << 6);
4601     TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
4602   }
4603 }
4604 }
4605 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
4606 {
4607   {
4608     SI opval = tmp_address;
4609     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4610     written |= (1 << 7);
4611     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4612   }
4613 frvbf_force_update (current_cpu);
4614 }
4615 }
4616 }
4617 }
4618 }
4619
4620   abuf->written = written;
4621   return vpc;
4622 #undef FLD
4623 }
4624
4625 /* lddfu: lddfu$pack @($GRi,$GRj),$FRdoublek */
4626
4627 static SEM_PC
4628 SEM_FN_NAME (frvbf,lddfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4629 {
4630 #define FLD(f) abuf->fields.sfmt_clddfu.f
4631   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4632   int UNUSED written = 0;
4633   IADDR UNUSED pc = abuf->addr;
4634   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4635
4636 {
4637   SI tmp_address;
4638 {
4639   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4640   {
4641     DF opval = frvbf_read_mem_DF (current_cpu, pc, tmp_address);
4642     sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
4643     TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
4644   }
4645 }
4646   {
4647     SI opval = tmp_address;
4648     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4649     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4650   }
4651 frvbf_force_update (current_cpu);
4652 }
4653
4654   return vpc;
4655 #undef FLD
4656 }
4657
4658 /* lddcu: lddcu$pack @($GRi,$GRj),$CPRdoublek */
4659
4660 static SEM_PC
4661 SEM_FN_NAME (frvbf,lddcu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4662 {
4663 #define FLD(f) abuf->fields.sfmt_lddcu.f
4664   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4665   int UNUSED written = 0;
4666   IADDR UNUSED pc = abuf->addr;
4667   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4668
4669 {
4670   SI tmp_address;
4671 {
4672   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4673   {
4674     DI opval = frvbf_read_mem_DI (current_cpu, pc, tmp_address);
4675     sim_queue_fn_di_write (current_cpu, frvbf_h_cpr_double_set, FLD (f_CPRk), opval);
4676     TRACE_RESULT (current_cpu, abuf, "cpr_double", 'D', opval);
4677   }
4678 }
4679   {
4680     SI opval = tmp_address;
4681     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4682     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4683   }
4684 frvbf_force_update (current_cpu);
4685 }
4686
4687   return vpc;
4688 #undef FLD
4689 }
4690
4691 /* nlddfu: nlddfu$pack @($GRi,$GRj),$FRdoublek */
4692
4693 static SEM_PC
4694 SEM_FN_NAME (frvbf,nlddfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4695 {
4696 #define FLD(f) abuf->fields.sfmt_clddfu.f
4697   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4698   int UNUSED written = 0;
4699   IADDR UNUSED pc = abuf->addr;
4700   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4701
4702 {
4703   BI tmp_do_op;
4704   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_FRk), 0, 5, 1);
4705 if (tmp_do_op) {
4706 {
4707   SI tmp_address;
4708 {
4709   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4710   {
4711     DF opval = frvbf_read_mem_DF (current_cpu, pc, tmp_address);
4712     sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
4713     written |= (1 << 6);
4714     TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
4715   }
4716 }
4717   {
4718     SI opval = tmp_address;
4719     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4720     written |= (1 << 7);
4721     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4722   }
4723 frvbf_force_update (current_cpu);
4724 }
4725 }
4726 }
4727
4728   abuf->written = written;
4729   return vpc;
4730 #undef FLD
4731 }
4732
4733 /* ldqu: ldqu$pack @($GRi,$GRj),$GRk */
4734
4735 static SEM_PC
4736 SEM_FN_NAME (frvbf,ldqu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4737 {
4738 #define FLD(f) abuf->fields.sfmt_cstdu.f
4739   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4740   int UNUSED written = 0;
4741   IADDR UNUSED pc = abuf->addr;
4742   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4743
4744 {
4745   SI tmp_address;
4746 {
4747   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4748 frvbf_load_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
4749 }
4750 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
4751 {
4752   {
4753     SI opval = tmp_address;
4754     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4755     written |= (1 << 5);
4756     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4757   }
4758 frvbf_force_update (current_cpu);
4759 }
4760 }
4761 }
4762
4763   abuf->written = written;
4764   return vpc;
4765 #undef FLD
4766 }
4767
4768 /* nldqu: nldqu$pack @($GRi,$GRj),$GRk */
4769
4770 static SEM_PC
4771 SEM_FN_NAME (frvbf,nldqu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4772 {
4773 #define FLD(f) abuf->fields.sfmt_cstdu.f
4774   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4775   int UNUSED written = 0;
4776   IADDR UNUSED pc = abuf->addr;
4777   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4778
4779 {
4780   BI tmp_do_op;
4781   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 6, 0);
4782 if (tmp_do_op) {
4783 {
4784   SI tmp_address;
4785 {
4786   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4787 frvbf_load_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
4788 }
4789 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
4790 {
4791   {
4792     SI opval = tmp_address;
4793     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4794     written |= (1 << 6);
4795     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4796   }
4797 frvbf_force_update (current_cpu);
4798 }
4799 }
4800 }
4801 }
4802 }
4803
4804   abuf->written = written;
4805   return vpc;
4806 #undef FLD
4807 }
4808
4809 /* ldqfu: ldqfu$pack @($GRi,$GRj),$FRintk */
4810
4811 static SEM_PC
4812 SEM_FN_NAME (frvbf,ldqfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4813 {
4814 #define FLD(f) abuf->fields.sfmt_cstdfu.f
4815   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4816   int UNUSED written = 0;
4817   IADDR UNUSED pc = abuf->addr;
4818   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4819
4820 {
4821   SI tmp_address;
4822 {
4823   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4824 frvbf_load_quad_FRint (current_cpu, pc, tmp_address, FLD (f_FRk));
4825 }
4826   {
4827     SI opval = tmp_address;
4828     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4829     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4830   }
4831 frvbf_force_update (current_cpu);
4832 }
4833
4834   return vpc;
4835 #undef FLD
4836 }
4837
4838 /* ldqcu: ldqcu$pack @($GRi,$GRj),$CPRk */
4839
4840 static SEM_PC
4841 SEM_FN_NAME (frvbf,ldqcu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4842 {
4843 #define FLD(f) abuf->fields.sfmt_stdcu.f
4844   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4845   int UNUSED written = 0;
4846   IADDR UNUSED pc = abuf->addr;
4847   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4848
4849 {
4850   SI tmp_address;
4851 {
4852   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4853 frvbf_load_quad_CPR (current_cpu, pc, tmp_address, FLD (f_CPRk));
4854 }
4855   {
4856     SI opval = tmp_address;
4857     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4858     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4859   }
4860 frvbf_force_update (current_cpu);
4861 }
4862
4863   return vpc;
4864 #undef FLD
4865 }
4866
4867 /* nldqfu: nldqfu$pack @($GRi,$GRj),$FRintk */
4868
4869 static SEM_PC
4870 SEM_FN_NAME (frvbf,nldqfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4871 {
4872 #define FLD(f) abuf->fields.sfmt_cstdfu.f
4873   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4874   int UNUSED written = 0;
4875   IADDR UNUSED pc = abuf->addr;
4876   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4877
4878 {
4879   BI tmp_do_op;
4880   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_FRk), 0, 6, 1);
4881 if (tmp_do_op) {
4882 {
4883   SI tmp_address;
4884 {
4885   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4886 frvbf_load_quad_FRint (current_cpu, pc, tmp_address, FLD (f_FRk));
4887 }
4888   {
4889     SI opval = tmp_address;
4890     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4891     written |= (1 << 6);
4892     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4893   }
4894 frvbf_force_update (current_cpu);
4895 }
4896 }
4897 }
4898
4899   abuf->written = written;
4900   return vpc;
4901 #undef FLD
4902 }
4903
4904 /* ldsbi: ldsbi$pack @($GRi,$d12),$GRk */
4905
4906 static SEM_PC
4907 SEM_FN_NAME (frvbf,ldsbi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4908 {
4909 #define FLD(f) abuf->fields.sfmt_swapi.f
4910   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4911   int UNUSED written = 0;
4912   IADDR UNUSED pc = abuf->addr;
4913   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4914
4915   {
4916     SI opval = frvbf_read_mem_QI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
4917     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
4918     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4919   }
4920
4921   return vpc;
4922 #undef FLD
4923 }
4924
4925 /* ldshi: ldshi$pack @($GRi,$d12),$GRk */
4926
4927 static SEM_PC
4928 SEM_FN_NAME (frvbf,ldshi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4929 {
4930 #define FLD(f) abuf->fields.sfmt_swapi.f
4931   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4932   int UNUSED written = 0;
4933   IADDR UNUSED pc = abuf->addr;
4934   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4935
4936   {
4937     SI opval = frvbf_read_mem_HI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
4938     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
4939     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4940   }
4941
4942   return vpc;
4943 #undef FLD
4944 }
4945
4946 /* ldi: ldi$pack @($GRi,$d12),$GRk */
4947
4948 static SEM_PC
4949 SEM_FN_NAME (frvbf,ldi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4950 {
4951 #define FLD(f) abuf->fields.sfmt_swapi.f
4952   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4953   int UNUSED written = 0;
4954   IADDR UNUSED pc = abuf->addr;
4955   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4956
4957   {
4958     SI opval = frvbf_read_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
4959     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
4960     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4961   }
4962
4963   return vpc;
4964 #undef FLD
4965 }
4966
4967 /* ldubi: ldubi$pack @($GRi,$d12),$GRk */
4968
4969 static SEM_PC
4970 SEM_FN_NAME (frvbf,ldubi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4971 {
4972 #define FLD(f) abuf->fields.sfmt_swapi.f
4973   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4974   int UNUSED written = 0;
4975   IADDR UNUSED pc = abuf->addr;
4976   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4977
4978   {
4979     SI opval = frvbf_read_mem_UQI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
4980     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
4981     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4982   }
4983
4984   return vpc;
4985 #undef FLD
4986 }
4987
4988 /* lduhi: lduhi$pack @($GRi,$d12),$GRk */
4989
4990 static SEM_PC
4991 SEM_FN_NAME (frvbf,lduhi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4992 {
4993 #define FLD(f) abuf->fields.sfmt_swapi.f
4994   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4995   int UNUSED written = 0;
4996   IADDR UNUSED pc = abuf->addr;
4997   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4998
4999   {
5000     SI opval = frvbf_read_mem_UHI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
5001     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
5002     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5003   }
5004
5005   return vpc;
5006 #undef FLD
5007 }
5008
5009 /* ldbfi: ldbfi$pack @($GRi,$d12),$FRintk */
5010
5011 static SEM_PC
5012 SEM_FN_NAME (frvbf,ldbfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5013 {
5014 #define FLD(f) abuf->fields.sfmt_ldbfi.f
5015   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5016   int UNUSED written = 0;
5017   IADDR UNUSED pc = abuf->addr;
5018   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5019
5020   {
5021     SI opval = frvbf_read_mem_UQI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
5022     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
5023     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
5024   }
5025
5026   return vpc;
5027 #undef FLD
5028 }
5029
5030 /* ldhfi: ldhfi$pack @($GRi,$d12),$FRintk */
5031
5032 static SEM_PC
5033 SEM_FN_NAME (frvbf,ldhfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5034 {
5035 #define FLD(f) abuf->fields.sfmt_ldbfi.f
5036   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5037   int UNUSED written = 0;
5038   IADDR UNUSED pc = abuf->addr;
5039   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5040
5041   {
5042     SI opval = frvbf_read_mem_UHI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
5043     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
5044     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
5045   }
5046
5047   return vpc;
5048 #undef FLD
5049 }
5050
5051 /* ldfi: ldfi$pack @($GRi,$d12),$FRintk */
5052
5053 static SEM_PC
5054 SEM_FN_NAME (frvbf,ldfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5055 {
5056 #define FLD(f) abuf->fields.sfmt_ldbfi.f
5057   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5058   int UNUSED written = 0;
5059   IADDR UNUSED pc = abuf->addr;
5060   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5061
5062   {
5063     SI opval = frvbf_read_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
5064     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
5065     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
5066   }
5067
5068   return vpc;
5069 #undef FLD
5070 }
5071
5072 /* nldsbi: nldsbi$pack @($GRi,$d12),$GRk */
5073
5074 static SEM_PC
5075 SEM_FN_NAME (frvbf,nldsbi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5076 {
5077 #define FLD(f) abuf->fields.sfmt_swapi.f
5078   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5079   int UNUSED written = 0;
5080   IADDR UNUSED pc = abuf->addr;
5081   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5082
5083 {
5084   BI tmp_do_op;
5085   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), -1, FLD (f_GRk), FLD (f_d12), 1, 0);
5086 if (tmp_do_op) {
5087   {
5088     SI opval = frvbf_read_mem_QI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
5089     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
5090     written |= (1 << 5);
5091     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5092   }
5093 }
5094 }
5095
5096   abuf->written = written;
5097   return vpc;
5098 #undef FLD
5099 }
5100
5101 /* nldubi: nldubi$pack @($GRi,$d12),$GRk */
5102
5103 static SEM_PC
5104 SEM_FN_NAME (frvbf,nldubi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5105 {
5106 #define FLD(f) abuf->fields.sfmt_swapi.f
5107   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5108   int UNUSED written = 0;
5109   IADDR UNUSED pc = abuf->addr;
5110   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5111
5112 {
5113   BI tmp_do_op;
5114   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), -1, FLD (f_GRk), FLD (f_d12), 0, 0);
5115 if (tmp_do_op) {
5116   {
5117     SI opval = frvbf_read_mem_UQI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
5118     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
5119     written |= (1 << 5);
5120     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5121   }
5122 }
5123 }
5124
5125   abuf->written = written;
5126   return vpc;
5127 #undef FLD
5128 }
5129
5130 /* nldshi: nldshi$pack @($GRi,$d12),$GRk */
5131
5132 static SEM_PC
5133 SEM_FN_NAME (frvbf,nldshi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5134 {
5135 #define FLD(f) abuf->fields.sfmt_swapi.f
5136   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5137   int UNUSED written = 0;
5138   IADDR UNUSED pc = abuf->addr;
5139   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5140
5141 {
5142   BI tmp_do_op;
5143   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), -1, FLD (f_GRk), FLD (f_d12), 3, 0);
5144 if (tmp_do_op) {
5145   {
5146     SI opval = frvbf_read_mem_HI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
5147     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
5148     written |= (1 << 5);
5149     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5150   }
5151 }
5152 }
5153
5154   abuf->written = written;
5155   return vpc;
5156 #undef FLD
5157 }
5158
5159 /* nlduhi: nlduhi$pack @($GRi,$d12),$GRk */
5160
5161 static SEM_PC
5162 SEM_FN_NAME (frvbf,nlduhi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5163 {
5164 #define FLD(f) abuf->fields.sfmt_swapi.f
5165   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5166   int UNUSED written = 0;
5167   IADDR UNUSED pc = abuf->addr;
5168   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5169
5170 {
5171   BI tmp_do_op;
5172   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), -1, FLD (f_GRk), FLD (f_d12), 2, 0);
5173 if (tmp_do_op) {
5174   {
5175     SI opval = frvbf_read_mem_UHI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
5176     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
5177     written |= (1 << 5);
5178     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5179   }
5180 }
5181 }
5182
5183   abuf->written = written;
5184   return vpc;
5185 #undef FLD
5186 }
5187
5188 /* nldi: nldi$pack @($GRi,$d12),$GRk */
5189
5190 static SEM_PC
5191 SEM_FN_NAME (frvbf,nldi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5192 {
5193 #define FLD(f) abuf->fields.sfmt_swapi.f
5194   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5195   int UNUSED written = 0;
5196   IADDR UNUSED pc = abuf->addr;
5197   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5198
5199 {
5200   BI tmp_do_op;
5201   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), -1, FLD (f_GRk), FLD (f_d12), 4, 0);
5202 if (tmp_do_op) {
5203   {
5204     SI opval = frvbf_read_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
5205     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
5206     written |= (1 << 5);
5207     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5208   }
5209 }
5210 }
5211
5212   abuf->written = written;
5213   return vpc;
5214 #undef FLD
5215 }
5216
5217 /* nldbfi: nldbfi$pack @($GRi,$d12),$FRintk */
5218
5219 static SEM_PC
5220 SEM_FN_NAME (frvbf,nldbfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5221 {
5222 #define FLD(f) abuf->fields.sfmt_ldbfi.f
5223   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5224   int UNUSED written = 0;
5225   IADDR UNUSED pc = abuf->addr;
5226   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5227
5228 {
5229   BI tmp_do_op;
5230   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), -1, FLD (f_FRk), FLD (f_d12), 0, 1);
5231 if (tmp_do_op) {
5232   {
5233     SI opval = frvbf_read_mem_UQI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
5234     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
5235     written |= (1 << 5);
5236     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
5237   }
5238 }
5239 }
5240
5241   abuf->written = written;
5242   return vpc;
5243 #undef FLD
5244 }
5245
5246 /* nldhfi: nldhfi$pack @($GRi,$d12),$FRintk */
5247
5248 static SEM_PC
5249 SEM_FN_NAME (frvbf,nldhfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5250 {
5251 #define FLD(f) abuf->fields.sfmt_ldbfi.f
5252   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5253   int UNUSED written = 0;
5254   IADDR UNUSED pc = abuf->addr;
5255   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5256
5257 {
5258   BI tmp_do_op;
5259   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), -1, FLD (f_FRk), FLD (f_d12), 2, 1);
5260 if (tmp_do_op) {
5261   {
5262     SI opval = frvbf_read_mem_UHI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
5263     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
5264     written |= (1 << 5);
5265     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
5266   }
5267 }
5268 }
5269
5270   abuf->written = written;
5271   return vpc;
5272 #undef FLD
5273 }
5274
5275 /* nldfi: nldfi$pack @($GRi,$d12),$FRintk */
5276
5277 static SEM_PC
5278 SEM_FN_NAME (frvbf,nldfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5279 {
5280 #define FLD(f) abuf->fields.sfmt_ldbfi.f
5281   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5282   int UNUSED written = 0;
5283   IADDR UNUSED pc = abuf->addr;
5284   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5285
5286 {
5287   BI tmp_do_op;
5288   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), -1, FLD (f_FRk), FLD (f_d12), 4, 1);
5289 if (tmp_do_op) {
5290   {
5291     SI opval = frvbf_read_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
5292     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
5293     written |= (1 << 5);
5294     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
5295   }
5296 }
5297 }
5298
5299   abuf->written = written;
5300   return vpc;
5301 #undef FLD
5302 }
5303
5304 /* lddi: lddi$pack @($GRi,$d12),$GRdoublek */
5305
5306 static SEM_PC
5307 SEM_FN_NAME (frvbf,lddi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5308 {
5309 #define FLD(f) abuf->fields.sfmt_smuli.f
5310   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5311   int UNUSED written = 0;
5312   IADDR UNUSED pc = abuf->addr;
5313   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5314
5315 {
5316   SI tmp_address;
5317 if (NESI (FLD (f_GRk), 0)) {
5318 {
5319   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
5320   {
5321     DI opval = frvbf_read_mem_DI (current_cpu, pc, tmp_address);
5322     sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
5323     written |= (1 << 4);
5324     TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
5325   }
5326 }
5327 }
5328 }
5329
5330   abuf->written = written;
5331   return vpc;
5332 #undef FLD
5333 }
5334
5335 /* lddfi: lddfi$pack @($GRi,$d12),$FRdoublek */
5336
5337 static SEM_PC
5338 SEM_FN_NAME (frvbf,lddfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5339 {
5340 #define FLD(f) abuf->fields.sfmt_lddfi.f
5341   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5342   int UNUSED written = 0;
5343   IADDR UNUSED pc = abuf->addr;
5344   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5345
5346 {
5347   SI tmp_address;
5348 {
5349   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
5350   {
5351     DF opval = frvbf_read_mem_DF (current_cpu, pc, tmp_address);
5352     sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
5353     TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
5354   }
5355 }
5356 }
5357
5358   return vpc;
5359 #undef FLD
5360 }
5361
5362 /* nlddi: nlddi$pack @($GRi,$d12),$GRdoublek */
5363
5364 static SEM_PC
5365 SEM_FN_NAME (frvbf,nlddi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5366 {
5367 #define FLD(f) abuf->fields.sfmt_smuli.f
5368   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5369   int UNUSED written = 0;
5370   IADDR UNUSED pc = abuf->addr;
5371   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5372
5373 {
5374   SI tmp_address;
5375 {
5376   BI tmp_do_op;
5377   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), -1, FLD (f_GRk), FLD (f_d12), 5, 0);
5378 if (tmp_do_op) {
5379 if (NESI (FLD (f_GRk), 0)) {
5380 {
5381   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
5382   {
5383     DI opval = frvbf_read_mem_DI (current_cpu, pc, tmp_address);
5384     sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
5385     written |= (1 << 5);
5386     TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
5387   }
5388 }
5389 }
5390 }
5391 }
5392 }
5393
5394   abuf->written = written;
5395   return vpc;
5396 #undef FLD
5397 }
5398
5399 /* nlddfi: nlddfi$pack @($GRi,$d12),$FRdoublek */
5400
5401 static SEM_PC
5402 SEM_FN_NAME (frvbf,nlddfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5403 {
5404 #define FLD(f) abuf->fields.sfmt_lddfi.f
5405   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5406   int UNUSED written = 0;
5407   IADDR UNUSED pc = abuf->addr;
5408   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5409
5410 {
5411   SI tmp_address;
5412 {
5413   BI tmp_do_op;
5414   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), -1, FLD (f_FRk), FLD (f_d12), 5, 1);
5415 if (tmp_do_op) {
5416 {
5417   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
5418   {
5419     DF opval = frvbf_read_mem_DF (current_cpu, pc, tmp_address);
5420     sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
5421     written |= (1 << 5);
5422     TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
5423   }
5424 }
5425 }
5426 }
5427 }
5428
5429   abuf->written = written;
5430   return vpc;
5431 #undef FLD
5432 }
5433
5434 /* ldqi: ldqi$pack @($GRi,$d12),$GRk */
5435
5436 static SEM_PC
5437 SEM_FN_NAME (frvbf,ldqi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5438 {
5439 #define FLD(f) abuf->fields.sfmt_stdi.f
5440   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5441   int UNUSED written = 0;
5442   IADDR UNUSED pc = abuf->addr;
5443   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5444
5445 {
5446   SI tmp_address;
5447 {
5448   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
5449 frvbf_load_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
5450 }
5451 }
5452
5453   return vpc;
5454 #undef FLD
5455 }
5456
5457 /* ldqfi: ldqfi$pack @($GRi,$d12),$FRintk */
5458
5459 static SEM_PC
5460 SEM_FN_NAME (frvbf,ldqfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5461 {
5462 #define FLD(f) abuf->fields.sfmt_stdfi.f
5463   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5464   int UNUSED written = 0;
5465   IADDR UNUSED pc = abuf->addr;
5466   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5467
5468 {
5469   SI tmp_address;
5470 {
5471   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
5472 frvbf_load_quad_FRint (current_cpu, pc, tmp_address, FLD (f_FRk));
5473 }
5474 }
5475
5476   return vpc;
5477 #undef FLD
5478 }
5479
5480 /* nldqfi: nldqfi$pack @($GRi,$d12),$FRintk */
5481
5482 static SEM_PC
5483 SEM_FN_NAME (frvbf,nldqfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5484 {
5485 #define FLD(f) abuf->fields.sfmt_stdfi.f
5486   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5487   int UNUSED written = 0;
5488   IADDR UNUSED pc = abuf->addr;
5489   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5490
5491 {
5492   SI tmp_address;
5493 {
5494   BI tmp_do_op;
5495   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), -1, FLD (f_FRk), FLD (f_d12), 6, 1);
5496 if (tmp_do_op) {
5497 {
5498   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
5499 frvbf_load_quad_FRint (current_cpu, pc, tmp_address, FLD (f_FRk));
5500 }
5501 }
5502 }
5503 }
5504
5505   return vpc;
5506 #undef FLD
5507 }
5508
5509 /* stb: stb$pack $GRk,@($GRi,$GRj) */
5510
5511 static SEM_PC
5512 SEM_FN_NAME (frvbf,stb) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5513 {
5514 #define FLD(f) abuf->fields.sfmt_cswap.f
5515   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5516   int UNUSED written = 0;
5517   IADDR UNUSED pc = abuf->addr;
5518   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5519
5520 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)));
5521
5522   return vpc;
5523 #undef FLD
5524 }
5525
5526 /* sth: sth$pack $GRk,@($GRi,$GRj) */
5527
5528 static SEM_PC
5529 SEM_FN_NAME (frvbf,sth) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5530 {
5531 #define FLD(f) abuf->fields.sfmt_cswap.f
5532   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5533   int UNUSED written = 0;
5534   IADDR UNUSED pc = abuf->addr;
5535   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5536
5537 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)));
5538
5539   return vpc;
5540 #undef FLD
5541 }
5542
5543 /* st: st$pack $GRk,@($GRi,$GRj) */
5544
5545 static SEM_PC
5546 SEM_FN_NAME (frvbf,st) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5547 {
5548 #define FLD(f) abuf->fields.sfmt_cswap.f
5549   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5550   int UNUSED written = 0;
5551   IADDR UNUSED pc = abuf->addr;
5552   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5553
5554 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)));
5555
5556   return vpc;
5557 #undef FLD
5558 }
5559
5560 /* stbf: stbf$pack $FRintk,@($GRi,$GRj) */
5561
5562 static SEM_PC
5563 SEM_FN_NAME (frvbf,stbf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5564 {
5565 #define FLD(f) abuf->fields.sfmt_cstbfu.f
5566   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5567   int UNUSED written = 0;
5568   IADDR UNUSED pc = abuf->addr;
5569   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5570
5571 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)));
5572
5573   return vpc;
5574 #undef FLD
5575 }
5576
5577 /* sthf: sthf$pack $FRintk,@($GRi,$GRj) */
5578
5579 static SEM_PC
5580 SEM_FN_NAME (frvbf,sthf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5581 {
5582 #define FLD(f) abuf->fields.sfmt_cstbfu.f
5583   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5584   int UNUSED written = 0;
5585   IADDR UNUSED pc = abuf->addr;
5586   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5587
5588 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)));
5589
5590   return vpc;
5591 #undef FLD
5592 }
5593
5594 /* stf: stf$pack $FRintk,@($GRi,$GRj) */
5595
5596 static SEM_PC
5597 SEM_FN_NAME (frvbf,stf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5598 {
5599 #define FLD(f) abuf->fields.sfmt_cstbfu.f
5600   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5601   int UNUSED written = 0;
5602   IADDR UNUSED pc = abuf->addr;
5603   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5604
5605 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)));
5606
5607   return vpc;
5608 #undef FLD
5609 }
5610
5611 /* stc: stc$pack $CPRk,@($GRi,$GRj) */
5612
5613 static SEM_PC
5614 SEM_FN_NAME (frvbf,stc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5615 {
5616 #define FLD(f) abuf->fields.sfmt_stcu.f
5617   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5618   int UNUSED written = 0;
5619   IADDR UNUSED pc = abuf->addr;
5620   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5621
5622 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)]));
5623
5624   return vpc;
5625 #undef FLD
5626 }
5627
5628 /* std: std$pack $GRdoublek,@($GRi,$GRj) */
5629
5630 static SEM_PC
5631 SEM_FN_NAME (frvbf,std) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5632 {
5633 #define FLD(f) abuf->fields.sfmt_cstdu.f
5634   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5635   int UNUSED written = 0;
5636   IADDR UNUSED pc = abuf->addr;
5637   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5638
5639 {
5640   SI tmp_address;
5641 {
5642   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5643 frvbf_write_mem_DI (current_cpu, pc, tmp_address, GET_H_GR_DOUBLE (FLD (f_GRk)));
5644 }
5645 }
5646
5647   return vpc;
5648 #undef FLD
5649 }
5650
5651 /* stdf: stdf$pack $FRdoublek,@($GRi,$GRj) */
5652
5653 static SEM_PC
5654 SEM_FN_NAME (frvbf,stdf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5655 {
5656 #define FLD(f) abuf->fields.sfmt_cstdfu.f
5657   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5658   int UNUSED written = 0;
5659   IADDR UNUSED pc = abuf->addr;
5660   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5661
5662 {
5663   SI tmp_address;
5664 {
5665   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5666 frvbf_write_mem_DF (current_cpu, pc, tmp_address, GET_H_FR_DOUBLE (FLD (f_FRk)));
5667 }
5668 }
5669
5670   return vpc;
5671 #undef FLD
5672 }
5673
5674 /* stdc: stdc$pack $CPRdoublek,@($GRi,$GRj) */
5675
5676 static SEM_PC
5677 SEM_FN_NAME (frvbf,stdc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5678 {
5679 #define FLD(f) abuf->fields.sfmt_stdcu.f
5680   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5681   int UNUSED written = 0;
5682   IADDR UNUSED pc = abuf->addr;
5683   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5684
5685 {
5686   SI tmp_address;
5687 {
5688   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5689 frvbf_write_mem_DI (current_cpu, pc, tmp_address, GET_H_CPR_DOUBLE (FLD (f_CPRk)));
5690 }
5691 }
5692
5693   return vpc;
5694 #undef FLD
5695 }
5696
5697 /* stq: stq$pack $GRk,@($GRi,$GRj) */
5698
5699 static SEM_PC
5700 SEM_FN_NAME (frvbf,stq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5701 {
5702 #define FLD(f) abuf->fields.sfmt_smulcc.f
5703   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5704   int UNUSED written = 0;
5705   IADDR UNUSED pc = abuf->addr;
5706   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5707
5708 {
5709   SI tmp_address;
5710 {
5711   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5712 frvbf_store_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
5713 }
5714 }
5715
5716   return vpc;
5717 #undef FLD
5718 }
5719
5720 /* stqf: stqf$pack $FRintk,@($GRi,$GRj) */
5721
5722 static SEM_PC
5723 SEM_FN_NAME (frvbf,stqf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5724 {
5725 #define FLD(f) abuf->fields.sfmt_cstdfu.f
5726   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5727   int UNUSED written = 0;
5728   IADDR UNUSED pc = abuf->addr;
5729   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5730
5731 {
5732   SI tmp_address;
5733 {
5734   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5735 frvbf_store_quad_FRint (current_cpu, pc, tmp_address, FLD (f_FRk));
5736 }
5737 }
5738
5739   return vpc;
5740 #undef FLD
5741 }
5742
5743 /* stqc: stqc$pack $CPRk,@($GRi,$GRj) */
5744
5745 static SEM_PC
5746 SEM_FN_NAME (frvbf,stqc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5747 {
5748 #define FLD(f) abuf->fields.sfmt_stdcu.f
5749   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5750   int UNUSED written = 0;
5751   IADDR UNUSED pc = abuf->addr;
5752   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5753
5754 {
5755   SI tmp_address;
5756 {
5757   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5758 frvbf_store_quad_CPR (current_cpu, pc, tmp_address, FLD (f_CPRk));
5759 }
5760 }
5761
5762   return vpc;
5763 #undef FLD
5764 }
5765
5766 /* stbu: stbu$pack $GRk,@($GRi,$GRj) */
5767
5768 static SEM_PC
5769 SEM_FN_NAME (frvbf,stbu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5770 {
5771 #define FLD(f) abuf->fields.sfmt_cstbu.f
5772   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5773   int UNUSED written = 0;
5774   IADDR UNUSED pc = abuf->addr;
5775   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5776
5777 {
5778   USI tmp_address;
5779   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5780 frvbf_write_mem_QI (current_cpu, pc, tmp_address, GET_H_GR (FLD (f_GRk)));
5781   {
5782     SI opval = tmp_address;
5783     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
5784     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5785   }
5786 }
5787
5788   return vpc;
5789 #undef FLD
5790 }
5791
5792 /* sthu: sthu$pack $GRk,@($GRi,$GRj) */
5793
5794 static SEM_PC
5795 SEM_FN_NAME (frvbf,sthu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5796 {
5797 #define FLD(f) abuf->fields.sfmt_cstbu.f
5798   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5799   int UNUSED written = 0;
5800   IADDR UNUSED pc = abuf->addr;
5801   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5802
5803 {
5804   USI tmp_address;
5805   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5806 frvbf_write_mem_HI (current_cpu, pc, tmp_address, GET_H_GR (FLD (f_GRk)));
5807   {
5808     SI opval = tmp_address;
5809     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
5810     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5811   }
5812 }
5813
5814   return vpc;
5815 #undef FLD
5816 }
5817
5818 /* stu: stu$pack $GRk,@($GRi,$GRj) */
5819
5820 static SEM_PC
5821 SEM_FN_NAME (frvbf,stu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5822 {
5823 #define FLD(f) abuf->fields.sfmt_cstbu.f
5824   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5825   int UNUSED written = 0;
5826   IADDR UNUSED pc = abuf->addr;
5827   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5828
5829 {
5830   USI tmp_address;
5831   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5832 frvbf_write_mem_WI (current_cpu, pc, tmp_address, GET_H_GR (FLD (f_GRk)));
5833   {
5834     SI opval = tmp_address;
5835     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
5836     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5837   }
5838 }
5839
5840   return vpc;
5841 #undef FLD
5842 }
5843
5844 /* stbfu: stbfu$pack $FRintk,@($GRi,$GRj) */
5845
5846 static SEM_PC
5847 SEM_FN_NAME (frvbf,stbfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5848 {
5849 #define FLD(f) abuf->fields.sfmt_cstbfu.f
5850   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5851   int UNUSED written = 0;
5852   IADDR UNUSED pc = abuf->addr;
5853   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5854
5855 {
5856   USI tmp_address;
5857   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5858 frvbf_write_mem_QI (current_cpu, pc, tmp_address, GET_H_FR_INT (FLD (f_FRk)));
5859   {
5860     SI opval = tmp_address;
5861     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
5862     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5863   }
5864 }
5865
5866   return vpc;
5867 #undef FLD
5868 }
5869
5870 /* sthfu: sthfu$pack $FRintk,@($GRi,$GRj) */
5871
5872 static SEM_PC
5873 SEM_FN_NAME (frvbf,sthfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5874 {
5875 #define FLD(f) abuf->fields.sfmt_cstbfu.f
5876   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5877   int UNUSED written = 0;
5878   IADDR UNUSED pc = abuf->addr;
5879   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5880
5881 {
5882   USI tmp_address;
5883   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5884 frvbf_write_mem_HI (current_cpu, pc, tmp_address, GET_H_FR_INT (FLD (f_FRk)));
5885   {
5886     SI opval = tmp_address;
5887     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
5888     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5889   }
5890 }
5891
5892   return vpc;
5893 #undef FLD
5894 }
5895
5896 /* stfu: stfu$pack $FRintk,@($GRi,$GRj) */
5897
5898 static SEM_PC
5899 SEM_FN_NAME (frvbf,stfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5900 {
5901 #define FLD(f) abuf->fields.sfmt_cstbfu.f
5902   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5903   int UNUSED written = 0;
5904   IADDR UNUSED pc = abuf->addr;
5905   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5906
5907 {
5908   USI tmp_address;
5909   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5910 frvbf_write_mem_SI (current_cpu, pc, tmp_address, GET_H_FR_INT (FLD (f_FRk)));
5911   {
5912     SI opval = tmp_address;
5913     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
5914     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5915   }
5916 }
5917
5918   return vpc;
5919 #undef FLD
5920 }
5921
5922 /* stcu: stcu$pack $CPRk,@($GRi,$GRj) */
5923
5924 static SEM_PC
5925 SEM_FN_NAME (frvbf,stcu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5926 {
5927 #define FLD(f) abuf->fields.sfmt_stcu.f
5928   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5929   int UNUSED written = 0;
5930   IADDR UNUSED pc = abuf->addr;
5931   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5932
5933 {
5934   USI tmp_address;
5935   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5936 frvbf_write_mem_SI (current_cpu, pc, tmp_address, CPU (h_cpr[FLD (f_CPRk)]));
5937   {
5938     SI opval = tmp_address;
5939     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
5940     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5941   }
5942 }
5943
5944   return vpc;
5945 #undef FLD
5946 }
5947
5948 /* stdu: stdu$pack $GRdoublek,@($GRi,$GRj) */
5949
5950 static SEM_PC
5951 SEM_FN_NAME (frvbf,stdu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5952 {
5953 #define FLD(f) abuf->fields.sfmt_cstdu.f
5954   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5955   int UNUSED written = 0;
5956   IADDR UNUSED pc = abuf->addr;
5957   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5958
5959 {
5960   SI tmp_address;
5961 {
5962   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5963 frvbf_write_mem_DI (current_cpu, pc, tmp_address, GET_H_GR_DOUBLE (FLD (f_GRk)));
5964 }
5965   {
5966     SI opval = tmp_address;
5967     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
5968     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5969   }
5970 }
5971
5972   return vpc;
5973 #undef FLD
5974 }
5975
5976 /* stdfu: stdfu$pack $FRdoublek,@($GRi,$GRj) */
5977
5978 static SEM_PC
5979 SEM_FN_NAME (frvbf,stdfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5980 {
5981 #define FLD(f) abuf->fields.sfmt_cstdfu.f
5982   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5983   int UNUSED written = 0;
5984   IADDR UNUSED pc = abuf->addr;
5985   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5986
5987 {
5988   SI tmp_address;
5989 {
5990   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5991 frvbf_write_mem_DF (current_cpu, pc, tmp_address, GET_H_FR_DOUBLE (FLD (f_FRk)));
5992 }
5993   {
5994     SI opval = tmp_address;
5995     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
5996     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5997   }
5998 }
5999
6000   return vpc;
6001 #undef FLD
6002 }
6003
6004 /* stdcu: stdcu$pack $CPRdoublek,@($GRi,$GRj) */
6005
6006 static SEM_PC
6007 SEM_FN_NAME (frvbf,stdcu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6008 {
6009 #define FLD(f) abuf->fields.sfmt_stdcu.f
6010   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6011   int UNUSED written = 0;
6012   IADDR UNUSED pc = abuf->addr;
6013   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6014
6015 {
6016   SI tmp_address;
6017 {
6018   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6019 frvbf_write_mem_DI (current_cpu, pc, tmp_address, GET_H_CPR_DOUBLE (FLD (f_CPRk)));
6020 }
6021   {
6022     SI opval = tmp_address;
6023     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6024     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6025   }
6026 }
6027
6028   return vpc;
6029 #undef FLD
6030 }
6031
6032 /* stqu: stqu$pack $GRk,@($GRi,$GRj) */
6033
6034 static SEM_PC
6035 SEM_FN_NAME (frvbf,stqu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6036 {
6037 #define FLD(f) abuf->fields.sfmt_cstdu.f
6038   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6039   int UNUSED written = 0;
6040   IADDR UNUSED pc = abuf->addr;
6041   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6042
6043 {
6044   SI tmp_address;
6045 {
6046   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6047 frvbf_store_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
6048 }
6049   {
6050     SI opval = tmp_address;
6051     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6052     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6053   }
6054 }
6055
6056   return vpc;
6057 #undef FLD
6058 }
6059
6060 /* stqfu: stqfu$pack $FRintk,@($GRi,$GRj) */
6061
6062 static SEM_PC
6063 SEM_FN_NAME (frvbf,stqfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6064 {
6065 #define FLD(f) abuf->fields.sfmt_cstdfu.f
6066   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6067   int UNUSED written = 0;
6068   IADDR UNUSED pc = abuf->addr;
6069   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6070
6071 {
6072   SI tmp_address;
6073 {
6074   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6075 frvbf_store_quad_FRint (current_cpu, pc, tmp_address, FLD (f_FRk));
6076 }
6077   {
6078     SI opval = tmp_address;
6079     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6080     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6081   }
6082 }
6083
6084   return vpc;
6085 #undef FLD
6086 }
6087
6088 /* stqcu: stqcu$pack $CPRk,@($GRi,$GRj) */
6089
6090 static SEM_PC
6091 SEM_FN_NAME (frvbf,stqcu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6092 {
6093 #define FLD(f) abuf->fields.sfmt_stdcu.f
6094   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6095   int UNUSED written = 0;
6096   IADDR UNUSED pc = abuf->addr;
6097   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6098
6099 {
6100   SI tmp_address;
6101 {
6102   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6103 frvbf_store_quad_CPR (current_cpu, pc, tmp_address, FLD (f_CPRk));
6104 }
6105   {
6106     SI opval = tmp_address;
6107     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6108     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6109   }
6110 }
6111
6112   return vpc;
6113 #undef FLD
6114 }
6115
6116 /* cldsb: cldsb$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6117
6118 static SEM_PC
6119 SEM_FN_NAME (frvbf,cldsb) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6120 {
6121 #define FLD(f) abuf->fields.sfmt_cswap.f
6122   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6123   int UNUSED written = 0;
6124   IADDR UNUSED pc = abuf->addr;
6125   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6126
6127 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6128   {
6129     SI opval = frvbf_read_mem_QI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
6130     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
6131     written |= (1 << 5);
6132     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6133   }
6134 }
6135
6136   abuf->written = written;
6137   return vpc;
6138 #undef FLD
6139 }
6140
6141 /* cldub: cldub$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6142
6143 static SEM_PC
6144 SEM_FN_NAME (frvbf,cldub) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6145 {
6146 #define FLD(f) abuf->fields.sfmt_cswap.f
6147   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6148   int UNUSED written = 0;
6149   IADDR UNUSED pc = abuf->addr;
6150   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6151
6152 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6153   {
6154     SI opval = frvbf_read_mem_UQI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
6155     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
6156     written |= (1 << 5);
6157     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6158   }
6159 }
6160
6161   abuf->written = written;
6162   return vpc;
6163 #undef FLD
6164 }
6165
6166 /* cldsh: cldsh$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6167
6168 static SEM_PC
6169 SEM_FN_NAME (frvbf,cldsh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6170 {
6171 #define FLD(f) abuf->fields.sfmt_cswap.f
6172   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6173   int UNUSED written = 0;
6174   IADDR UNUSED pc = abuf->addr;
6175   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6176
6177 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6178   {
6179     SI opval = frvbf_read_mem_HI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
6180     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
6181     written |= (1 << 5);
6182     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6183   }
6184 }
6185
6186   abuf->written = written;
6187   return vpc;
6188 #undef FLD
6189 }
6190
6191 /* clduh: clduh$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6192
6193 static SEM_PC
6194 SEM_FN_NAME (frvbf,clduh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6195 {
6196 #define FLD(f) abuf->fields.sfmt_cswap.f
6197   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6198   int UNUSED written = 0;
6199   IADDR UNUSED pc = abuf->addr;
6200   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6201
6202 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6203   {
6204     SI opval = frvbf_read_mem_UHI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
6205     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
6206     written |= (1 << 5);
6207     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6208   }
6209 }
6210
6211   abuf->written = written;
6212   return vpc;
6213 #undef FLD
6214 }
6215
6216 /* cld: cld$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6217
6218 static SEM_PC
6219 SEM_FN_NAME (frvbf,cld) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6220 {
6221 #define FLD(f) abuf->fields.sfmt_cswap.f
6222   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6223   int UNUSED written = 0;
6224   IADDR UNUSED pc = abuf->addr;
6225   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6226
6227 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6228   {
6229     SI opval = frvbf_read_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
6230     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
6231     written |= (1 << 5);
6232     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6233   }
6234 }
6235
6236   abuf->written = written;
6237   return vpc;
6238 #undef FLD
6239 }
6240
6241 /* cldbf: cldbf$pack @($GRi,$GRj),$FRintk,$CCi,$cond */
6242
6243 static SEM_PC
6244 SEM_FN_NAME (frvbf,cldbf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6245 {
6246 #define FLD(f) abuf->fields.sfmt_cldbfu.f
6247   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6248   int UNUSED written = 0;
6249   IADDR UNUSED pc = abuf->addr;
6250   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6251
6252 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6253   {
6254     SI opval = frvbf_read_mem_UQI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
6255     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
6256     written |= (1 << 5);
6257     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
6258   }
6259 }
6260
6261   abuf->written = written;
6262   return vpc;
6263 #undef FLD
6264 }
6265
6266 /* cldhf: cldhf$pack @($GRi,$GRj),$FRintk,$CCi,$cond */
6267
6268 static SEM_PC
6269 SEM_FN_NAME (frvbf,cldhf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6270 {
6271 #define FLD(f) abuf->fields.sfmt_cldbfu.f
6272   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6273   int UNUSED written = 0;
6274   IADDR UNUSED pc = abuf->addr;
6275   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6276
6277 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6278   {
6279     SI opval = frvbf_read_mem_UHI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
6280     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
6281     written |= (1 << 5);
6282     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
6283   }
6284 }
6285
6286   abuf->written = written;
6287   return vpc;
6288 #undef FLD
6289 }
6290
6291 /* cldf: cldf$pack @($GRi,$GRj),$FRintk,$CCi,$cond */
6292
6293 static SEM_PC
6294 SEM_FN_NAME (frvbf,cldf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6295 {
6296 #define FLD(f) abuf->fields.sfmt_cldbfu.f
6297   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6298   int UNUSED written = 0;
6299   IADDR UNUSED pc = abuf->addr;
6300   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6301
6302 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6303   {
6304     SI opval = frvbf_read_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
6305     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
6306     written |= (1 << 5);
6307     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
6308   }
6309 }
6310
6311   abuf->written = written;
6312   return vpc;
6313 #undef FLD
6314 }
6315
6316 /* cldd: cldd$pack @($GRi,$GRj),$GRdoublek,$CCi,$cond */
6317
6318 static SEM_PC
6319 SEM_FN_NAME (frvbf,cldd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6320 {
6321 #define FLD(f) abuf->fields.sfmt_clddu.f
6322   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6323   int UNUSED written = 0;
6324   IADDR UNUSED pc = abuf->addr;
6325   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6326
6327 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6328 {
6329   SI tmp_address;
6330 if (NESI (FLD (f_GRk), 0)) {
6331 {
6332   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6333   {
6334     DI opval = frvbf_read_mem_DI (current_cpu, pc, tmp_address);
6335     sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
6336     written |= (1 << 6);
6337     TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
6338   }
6339 }
6340 }
6341 }
6342 }
6343
6344   abuf->written = written;
6345   return vpc;
6346 #undef FLD
6347 }
6348
6349 /* clddf: clddf$pack @($GRi,$GRj),$FRdoublek,$CCi,$cond */
6350
6351 static SEM_PC
6352 SEM_FN_NAME (frvbf,clddf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6353 {
6354 #define FLD(f) abuf->fields.sfmt_clddfu.f
6355   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6356   int UNUSED written = 0;
6357   IADDR UNUSED pc = abuf->addr;
6358   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6359
6360 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6361 {
6362   SI tmp_address;
6363 {
6364   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6365   {
6366     DF opval = frvbf_read_mem_DF (current_cpu, pc, tmp_address);
6367     sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
6368     written |= (1 << 5);
6369     TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
6370   }
6371 }
6372 }
6373 }
6374
6375   abuf->written = written;
6376   return vpc;
6377 #undef FLD
6378 }
6379
6380 /* cldq: cldq$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6381
6382 static SEM_PC
6383 SEM_FN_NAME (frvbf,cldq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6384 {
6385 #define FLD(f) abuf->fields.sfmt_cswap.f
6386   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6387   int UNUSED written = 0;
6388   IADDR UNUSED pc = abuf->addr;
6389   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6390
6391 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6392 {
6393   SI tmp_address;
6394 {
6395   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6396 frvbf_load_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
6397 }
6398 }
6399 }
6400
6401   return vpc;
6402 #undef FLD
6403 }
6404
6405 /* cldsbu: cldsbu$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6406
6407 static SEM_PC
6408 SEM_FN_NAME (frvbf,cldsbu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6409 {
6410 #define FLD(f) abuf->fields.sfmt_cldsbu.f
6411   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6412   int UNUSED written = 0;
6413   IADDR UNUSED pc = abuf->addr;
6414   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6415
6416 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6417 {
6418   SI tmp_address;
6419   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6420   {
6421     SI opval = frvbf_read_mem_QI (current_cpu, pc, tmp_address);
6422     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
6423     written |= (1 << 8);
6424     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6425   }
6426 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
6427   {
6428     SI opval = tmp_address;
6429     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6430     written |= (1 << 7);
6431     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6432   }
6433 }
6434 }
6435 }
6436
6437   abuf->written = written;
6438   return vpc;
6439 #undef FLD
6440 }
6441
6442 /* cldubu: cldubu$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6443
6444 static SEM_PC
6445 SEM_FN_NAME (frvbf,cldubu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6446 {
6447 #define FLD(f) abuf->fields.sfmt_cldsbu.f
6448   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6449   int UNUSED written = 0;
6450   IADDR UNUSED pc = abuf->addr;
6451   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6452
6453 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6454 {
6455   SI tmp_address;
6456   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6457   {
6458     SI opval = frvbf_read_mem_UQI (current_cpu, pc, tmp_address);
6459     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
6460     written |= (1 << 8);
6461     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6462   }
6463 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
6464   {
6465     SI opval = tmp_address;
6466     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6467     written |= (1 << 7);
6468     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6469   }
6470 }
6471 }
6472 }
6473
6474   abuf->written = written;
6475   return vpc;
6476 #undef FLD
6477 }
6478
6479 /* cldshu: cldshu$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6480
6481 static SEM_PC
6482 SEM_FN_NAME (frvbf,cldshu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6483 {
6484 #define FLD(f) abuf->fields.sfmt_cldsbu.f
6485   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6486   int UNUSED written = 0;
6487   IADDR UNUSED pc = abuf->addr;
6488   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6489
6490 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6491 {
6492   SI tmp_address;
6493   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6494   {
6495     SI opval = frvbf_read_mem_HI (current_cpu, pc, tmp_address);
6496     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
6497     written |= (1 << 8);
6498     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6499   }
6500 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
6501   {
6502     SI opval = tmp_address;
6503     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6504     written |= (1 << 7);
6505     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6506   }
6507 }
6508 }
6509 }
6510
6511   abuf->written = written;
6512   return vpc;
6513 #undef FLD
6514 }
6515
6516 /* clduhu: clduhu$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6517
6518 static SEM_PC
6519 SEM_FN_NAME (frvbf,clduhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6520 {
6521 #define FLD(f) abuf->fields.sfmt_cldsbu.f
6522   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6523   int UNUSED written = 0;
6524   IADDR UNUSED pc = abuf->addr;
6525   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6526
6527 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6528 {
6529   SI tmp_address;
6530   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6531   {
6532     SI opval = frvbf_read_mem_UHI (current_cpu, pc, tmp_address);
6533     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
6534     written |= (1 << 8);
6535     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6536   }
6537 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
6538   {
6539     SI opval = tmp_address;
6540     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6541     written |= (1 << 7);
6542     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6543   }
6544 }
6545 }
6546 }
6547
6548   abuf->written = written;
6549   return vpc;
6550 #undef FLD
6551 }
6552
6553 /* cldu: cldu$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6554
6555 static SEM_PC
6556 SEM_FN_NAME (frvbf,cldu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6557 {
6558 #define FLD(f) abuf->fields.sfmt_cldsbu.f
6559   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6560   int UNUSED written = 0;
6561   IADDR UNUSED pc = abuf->addr;
6562   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6563
6564 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6565 {
6566   SI tmp_address;
6567   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6568   {
6569     SI opval = frvbf_read_mem_SI (current_cpu, pc, tmp_address);
6570     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
6571     written |= (1 << 8);
6572     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6573   }
6574 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
6575   {
6576     SI opval = tmp_address;
6577     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6578     written |= (1 << 7);
6579     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6580   }
6581 }
6582 }
6583 }
6584
6585   abuf->written = written;
6586   return vpc;
6587 #undef FLD
6588 }
6589
6590 /* cldbfu: cldbfu$pack @($GRi,$GRj),$FRintk,$CCi,$cond */
6591
6592 static SEM_PC
6593 SEM_FN_NAME (frvbf,cldbfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6594 {
6595 #define FLD(f) abuf->fields.sfmt_cldbfu.f
6596   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6597   int UNUSED written = 0;
6598   IADDR UNUSED pc = abuf->addr;
6599   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6600
6601 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6602 {
6603   SI tmp_address;
6604   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6605   {
6606     SI opval = frvbf_read_mem_UQI (current_cpu, pc, tmp_address);
6607     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
6608     written |= (1 << 5);
6609     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
6610   }
6611   {
6612     SI opval = tmp_address;
6613     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6614     written |= (1 << 6);
6615     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6616   }
6617 }
6618 }
6619
6620   abuf->written = written;
6621   return vpc;
6622 #undef FLD
6623 }
6624
6625 /* cldhfu: cldhfu$pack @($GRi,$GRj),$FRintk,$CCi,$cond */
6626
6627 static SEM_PC
6628 SEM_FN_NAME (frvbf,cldhfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6629 {
6630 #define FLD(f) abuf->fields.sfmt_cldbfu.f
6631   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6632   int UNUSED written = 0;
6633   IADDR UNUSED pc = abuf->addr;
6634   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6635
6636 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6637 {
6638   SI tmp_address;
6639   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6640   {
6641     SI opval = frvbf_read_mem_UHI (current_cpu, pc, tmp_address);
6642     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
6643     written |= (1 << 5);
6644     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
6645   }
6646   {
6647     SI opval = tmp_address;
6648     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6649     written |= (1 << 6);
6650     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6651   }
6652 }
6653 }
6654
6655   abuf->written = written;
6656   return vpc;
6657 #undef FLD
6658 }
6659
6660 /* cldfu: cldfu$pack @($GRi,$GRj),$FRintk,$CCi,$cond */
6661
6662 static SEM_PC
6663 SEM_FN_NAME (frvbf,cldfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6664 {
6665 #define FLD(f) abuf->fields.sfmt_cldbfu.f
6666   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6667   int UNUSED written = 0;
6668   IADDR UNUSED pc = abuf->addr;
6669   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6670
6671 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6672 {
6673   SI tmp_address;
6674   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6675   {
6676     SI opval = frvbf_read_mem_SI (current_cpu, pc, tmp_address);
6677     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
6678     written |= (1 << 5);
6679     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
6680   }
6681   {
6682     SI opval = tmp_address;
6683     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6684     written |= (1 << 6);
6685     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6686   }
6687 }
6688 }
6689
6690   abuf->written = written;
6691   return vpc;
6692 #undef FLD
6693 }
6694
6695 /* clddu: clddu$pack @($GRi,$GRj),$GRdoublek,$CCi,$cond */
6696
6697 static SEM_PC
6698 SEM_FN_NAME (frvbf,clddu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6699 {
6700 #define FLD(f) abuf->fields.sfmt_clddu.f
6701   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6702   int UNUSED written = 0;
6703   IADDR UNUSED pc = abuf->addr;
6704   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6705
6706 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6707 {
6708   SI tmp_address;
6709 if (NESI (FLD (f_GRk), 0)) {
6710 {
6711   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6712   {
6713     DI opval = frvbf_read_mem_DI (current_cpu, pc, tmp_address);
6714     sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
6715     written |= (1 << 7);
6716     TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
6717   }
6718 }
6719 }
6720 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
6721   {
6722     SI opval = tmp_address;
6723     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6724     written |= (1 << 8);
6725     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6726   }
6727 }
6728 }
6729 }
6730
6731   abuf->written = written;
6732   return vpc;
6733 #undef FLD
6734 }
6735
6736 /* clddfu: clddfu$pack @($GRi,$GRj),$FRdoublek,$CCi,$cond */
6737
6738 static SEM_PC
6739 SEM_FN_NAME (frvbf,clddfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6740 {
6741 #define FLD(f) abuf->fields.sfmt_clddfu.f
6742   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6743   int UNUSED written = 0;
6744   IADDR UNUSED pc = abuf->addr;
6745   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6746
6747 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6748 {
6749   SI tmp_address;
6750 {
6751   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6752   {
6753     DF opval = frvbf_read_mem_DF (current_cpu, pc, tmp_address);
6754     sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
6755     written |= (1 << 5);
6756     TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
6757   }
6758 }
6759   {
6760     SI opval = tmp_address;
6761     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6762     written |= (1 << 6);
6763     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6764   }
6765 }
6766 }
6767
6768   abuf->written = written;
6769   return vpc;
6770 #undef FLD
6771 }
6772
6773 /* cldqu: cldqu$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6774
6775 static SEM_PC
6776 SEM_FN_NAME (frvbf,cldqu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6777 {
6778 #define FLD(f) abuf->fields.sfmt_cstdu.f
6779   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6780   int UNUSED written = 0;
6781   IADDR UNUSED pc = abuf->addr;
6782   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6783
6784 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6785 {
6786   SI tmp_address;
6787 {
6788   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6789 frvbf_load_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
6790 }
6791 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
6792   {
6793     SI opval = tmp_address;
6794     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6795     written |= (1 << 7);
6796     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6797   }
6798 }
6799 }
6800 }
6801
6802   abuf->written = written;
6803   return vpc;
6804 #undef FLD
6805 }
6806
6807 /* cstb: cstb$pack $GRk,@($GRi,$GRj),$CCi,$cond */
6808
6809 static SEM_PC
6810 SEM_FN_NAME (frvbf,cstb) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6811 {
6812 #define FLD(f) abuf->fields.sfmt_cswap.f
6813   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6814   int UNUSED written = 0;
6815   IADDR UNUSED pc = abuf->addr;
6816   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6817
6818 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6819 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)));
6820 }
6821
6822   return vpc;
6823 #undef FLD
6824 }
6825
6826 /* csth: csth$pack $GRk,@($GRi,$GRj),$CCi,$cond */
6827
6828 static SEM_PC
6829 SEM_FN_NAME (frvbf,csth) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6830 {
6831 #define FLD(f) abuf->fields.sfmt_cswap.f
6832   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6833   int UNUSED written = 0;
6834   IADDR UNUSED pc = abuf->addr;
6835   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6836
6837 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6838 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)));
6839 }
6840
6841   return vpc;
6842 #undef FLD
6843 }
6844
6845 /* cst: cst$pack $GRk,@($GRi,$GRj),$CCi,$cond */
6846
6847 static SEM_PC
6848 SEM_FN_NAME (frvbf,cst) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6849 {
6850 #define FLD(f) abuf->fields.sfmt_cswap.f
6851   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6852   int UNUSED written = 0;
6853   IADDR UNUSED pc = abuf->addr;
6854   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6855
6856 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6857 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)));
6858 }
6859
6860   return vpc;
6861 #undef FLD
6862 }
6863
6864 /* cstbf: cstbf$pack $FRintk,@($GRi,$GRj),$CCi,$cond */
6865
6866 static SEM_PC
6867 SEM_FN_NAME (frvbf,cstbf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6868 {
6869 #define FLD(f) abuf->fields.sfmt_cstbfu.f
6870   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6871   int UNUSED written = 0;
6872   IADDR UNUSED pc = abuf->addr;
6873   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6874
6875 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6876 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)));
6877 }
6878
6879   return vpc;
6880 #undef FLD
6881 }
6882
6883 /* csthf: csthf$pack $FRintk,@($GRi,$GRj),$CCi,$cond */
6884
6885 static SEM_PC
6886 SEM_FN_NAME (frvbf,csthf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6887 {
6888 #define FLD(f) abuf->fields.sfmt_cstbfu.f
6889   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6890   int UNUSED written = 0;
6891   IADDR UNUSED pc = abuf->addr;
6892   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6893
6894 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6895 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)));
6896 }
6897
6898   return vpc;
6899 #undef FLD
6900 }
6901
6902 /* cstf: cstf$pack $FRintk,@($GRi,$GRj),$CCi,$cond */
6903
6904 static SEM_PC
6905 SEM_FN_NAME (frvbf,cstf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6906 {
6907 #define FLD(f) abuf->fields.sfmt_cstbfu.f
6908   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6909   int UNUSED written = 0;
6910   IADDR UNUSED pc = abuf->addr;
6911   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6912
6913 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6914 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)));
6915 }
6916
6917   return vpc;
6918 #undef FLD
6919 }
6920
6921 /* cstd: cstd$pack $GRdoublek,@($GRi,$GRj),$CCi,$cond */
6922
6923 static SEM_PC
6924 SEM_FN_NAME (frvbf,cstd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6925 {
6926 #define FLD(f) abuf->fields.sfmt_cstdu.f
6927   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6928   int UNUSED written = 0;
6929   IADDR UNUSED pc = abuf->addr;
6930   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6931
6932 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6933 {
6934   SI tmp_address;
6935 {
6936   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6937 frvbf_write_mem_DI (current_cpu, pc, tmp_address, GET_H_GR_DOUBLE (FLD (f_GRk)));
6938 }
6939 }
6940 }
6941
6942   return vpc;
6943 #undef FLD
6944 }
6945
6946 /* cstdf: cstdf$pack $FRdoublek,@($GRi,$GRj),$CCi,$cond */
6947
6948 static SEM_PC
6949 SEM_FN_NAME (frvbf,cstdf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6950 {
6951 #define FLD(f) abuf->fields.sfmt_cstdfu.f
6952   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6953   int UNUSED written = 0;
6954   IADDR UNUSED pc = abuf->addr;
6955   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6956
6957 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6958 {
6959   SI tmp_address;
6960 {
6961   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6962 frvbf_write_mem_DF (current_cpu, pc, tmp_address, GET_H_FR_DOUBLE (FLD (f_FRk)));
6963 }
6964 }
6965 }
6966
6967   return vpc;
6968 #undef FLD
6969 }
6970
6971 /* cstq: cstq$pack $GRk,@($GRi,$GRj),$CCi,$cond */
6972
6973 static SEM_PC
6974 SEM_FN_NAME (frvbf,cstq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6975 {
6976 #define FLD(f) abuf->fields.sfmt_cswap.f
6977   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6978   int UNUSED written = 0;
6979   IADDR UNUSED pc = abuf->addr;
6980   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6981
6982 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6983 {
6984   SI tmp_address;
6985 {
6986   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6987 frvbf_store_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
6988 }
6989 }
6990 }
6991
6992   return vpc;
6993 #undef FLD
6994 }
6995
6996 /* cstbu: cstbu$pack $GRk,@($GRi,$GRj),$CCi,$cond */
6997
6998 static SEM_PC
6999 SEM_FN_NAME (frvbf,cstbu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7000 {
7001 #define FLD(f) abuf->fields.sfmt_cstbu.f
7002   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7003   int UNUSED written = 0;
7004   IADDR UNUSED pc = abuf->addr;
7005   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7006
7007 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7008 {
7009   SI tmp_address;
7010   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7011 frvbf_write_mem_QI (current_cpu, pc, tmp_address, GET_H_GR (FLD (f_GRk)));
7012   {
7013     SI opval = tmp_address;
7014     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
7015     written |= (1 << 6);
7016     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7017   }
7018 }
7019 }
7020
7021   abuf->written = written;
7022   return vpc;
7023 #undef FLD
7024 }
7025
7026 /* csthu: csthu$pack $GRk,@($GRi,$GRj),$CCi,$cond */
7027
7028 static SEM_PC
7029 SEM_FN_NAME (frvbf,csthu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7030 {
7031 #define FLD(f) abuf->fields.sfmt_cstbu.f
7032   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7033   int UNUSED written = 0;
7034   IADDR UNUSED pc = abuf->addr;
7035   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7036
7037 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7038 {
7039   SI tmp_address;
7040   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7041 frvbf_write_mem_HI (current_cpu, pc, tmp_address, GET_H_GR (FLD (f_GRk)));
7042   {
7043     SI opval = tmp_address;
7044     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
7045     written |= (1 << 6);
7046     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7047   }
7048 }
7049 }
7050
7051   abuf->written = written;
7052   return vpc;
7053 #undef FLD
7054 }
7055
7056 /* cstu: cstu$pack $GRk,@($GRi,$GRj),$CCi,$cond */
7057
7058 static SEM_PC
7059 SEM_FN_NAME (frvbf,cstu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7060 {
7061 #define FLD(f) abuf->fields.sfmt_cstbu.f
7062   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7063   int UNUSED written = 0;
7064   IADDR UNUSED pc = abuf->addr;
7065   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7066
7067 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7068 {
7069   SI tmp_address;
7070   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7071 frvbf_write_mem_SI (current_cpu, pc, tmp_address, GET_H_GR (FLD (f_GRk)));
7072   {
7073     SI opval = tmp_address;
7074     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
7075     written |= (1 << 6);
7076     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7077   }
7078 }
7079 }
7080
7081   abuf->written = written;
7082   return vpc;
7083 #undef FLD
7084 }
7085
7086 /* cstbfu: cstbfu$pack $FRintk,@($GRi,$GRj),$CCi,$cond */
7087
7088 static SEM_PC
7089 SEM_FN_NAME (frvbf,cstbfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7090 {
7091 #define FLD(f) abuf->fields.sfmt_cstbfu.f
7092   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7093   int UNUSED written = 0;
7094   IADDR UNUSED pc = abuf->addr;
7095   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7096
7097 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7098 {
7099   SI tmp_address;
7100   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7101 frvbf_write_mem_QI (current_cpu, pc, tmp_address, GET_H_FR_INT (FLD (f_FRk)));
7102   {
7103     SI opval = tmp_address;
7104     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
7105     written |= (1 << 6);
7106     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7107   }
7108 }
7109 }
7110
7111   abuf->written = written;
7112   return vpc;
7113 #undef FLD
7114 }
7115
7116 /* csthfu: csthfu$pack $FRintk,@($GRi,$GRj),$CCi,$cond */
7117
7118 static SEM_PC
7119 SEM_FN_NAME (frvbf,csthfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7120 {
7121 #define FLD(f) abuf->fields.sfmt_cstbfu.f
7122   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7123   int UNUSED written = 0;
7124   IADDR UNUSED pc = abuf->addr;
7125   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7126
7127 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7128 {
7129   SI tmp_address;
7130   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7131 frvbf_write_mem_HI (current_cpu, pc, tmp_address, GET_H_FR_INT (FLD (f_FRk)));
7132   {
7133     SI opval = tmp_address;
7134     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
7135     written |= (1 << 6);
7136     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7137   }
7138 }
7139 }
7140
7141   abuf->written = written;
7142   return vpc;
7143 #undef FLD
7144 }
7145
7146 /* cstfu: cstfu$pack $FRintk,@($GRi,$GRj),$CCi,$cond */
7147
7148 static SEM_PC
7149 SEM_FN_NAME (frvbf,cstfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7150 {
7151 #define FLD(f) abuf->fields.sfmt_cstbfu.f
7152   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7153   int UNUSED written = 0;
7154   IADDR UNUSED pc = abuf->addr;
7155   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7156
7157 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7158 {
7159   SI tmp_address;
7160   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7161 frvbf_write_mem_SI (current_cpu, pc, tmp_address, GET_H_FR_INT (FLD (f_FRk)));
7162   {
7163     SI opval = tmp_address;
7164     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
7165     written |= (1 << 6);
7166     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7167   }
7168 }
7169 }
7170
7171   abuf->written = written;
7172   return vpc;
7173 #undef FLD
7174 }
7175
7176 /* cstdu: cstdu$pack $GRdoublek,@($GRi,$GRj),$CCi,$cond */
7177
7178 static SEM_PC
7179 SEM_FN_NAME (frvbf,cstdu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7180 {
7181 #define FLD(f) abuf->fields.sfmt_cstdu.f
7182   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7183   int UNUSED written = 0;
7184   IADDR UNUSED pc = abuf->addr;
7185   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7186
7187 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7188 {
7189   SI tmp_address;
7190 {
7191   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7192 frvbf_write_mem_DI (current_cpu, pc, tmp_address, GET_H_GR_DOUBLE (FLD (f_GRk)));
7193 }
7194   {
7195     SI opval = tmp_address;
7196     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
7197     written |= (1 << 6);
7198     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7199   }
7200 }
7201 }
7202
7203   abuf->written = written;
7204   return vpc;
7205 #undef FLD
7206 }
7207
7208 /* cstdfu: cstdfu$pack $FRdoublek,@($GRi,$GRj),$CCi,$cond */
7209
7210 static SEM_PC
7211 SEM_FN_NAME (frvbf,cstdfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7212 {
7213 #define FLD(f) abuf->fields.sfmt_cstdfu.f
7214   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7215   int UNUSED written = 0;
7216   IADDR UNUSED pc = abuf->addr;
7217   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7218
7219 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7220 {
7221   SI tmp_address;
7222 {
7223   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7224 frvbf_write_mem_DF (current_cpu, pc, tmp_address, GET_H_FR_DOUBLE (FLD (f_FRk)));
7225 }
7226   {
7227     SI opval = tmp_address;
7228     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
7229     written |= (1 << 6);
7230     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7231   }
7232 }
7233 }
7234
7235   abuf->written = written;
7236   return vpc;
7237 #undef FLD
7238 }
7239
7240 /* stbi: stbi$pack $GRk,@($GRi,$d12) */
7241
7242 static SEM_PC
7243 SEM_FN_NAME (frvbf,stbi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7244 {
7245 #define FLD(f) abuf->fields.sfmt_swapi.f
7246   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7247   int UNUSED written = 0;
7248   IADDR UNUSED pc = abuf->addr;
7249   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7250
7251 frvbf_write_mem_QI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)), GET_H_GR (FLD (f_GRk)));
7252
7253   return vpc;
7254 #undef FLD
7255 }
7256
7257 /* sthi: sthi$pack $GRk,@($GRi,$d12) */
7258
7259 static SEM_PC
7260 SEM_FN_NAME (frvbf,sthi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7261 {
7262 #define FLD(f) abuf->fields.sfmt_swapi.f
7263   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7264   int UNUSED written = 0;
7265   IADDR UNUSED pc = abuf->addr;
7266   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7267
7268 frvbf_write_mem_HI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)), GET_H_GR (FLD (f_GRk)));
7269
7270   return vpc;
7271 #undef FLD
7272 }
7273
7274 /* sti: sti$pack $GRk,@($GRi,$d12) */
7275
7276 static SEM_PC
7277 SEM_FN_NAME (frvbf,sti) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7278 {
7279 #define FLD(f) abuf->fields.sfmt_swapi.f
7280   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7281   int UNUSED written = 0;
7282   IADDR UNUSED pc = abuf->addr;
7283   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7284
7285 frvbf_write_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)), GET_H_GR (FLD (f_GRk)));
7286
7287   return vpc;
7288 #undef FLD
7289 }
7290
7291 /* stbfi: stbfi$pack $FRintk,@($GRi,$d12) */
7292
7293 static SEM_PC
7294 SEM_FN_NAME (frvbf,stbfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7295 {
7296 #define FLD(f) abuf->fields.sfmt_stbfi.f
7297   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7298   int UNUSED written = 0;
7299   IADDR UNUSED pc = abuf->addr;
7300   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7301
7302 frvbf_write_mem_QI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)), GET_H_FR_INT (FLD (f_FRk)));
7303
7304   return vpc;
7305 #undef FLD
7306 }
7307
7308 /* sthfi: sthfi$pack $FRintk,@($GRi,$d12) */
7309
7310 static SEM_PC
7311 SEM_FN_NAME (frvbf,sthfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7312 {
7313 #define FLD(f) abuf->fields.sfmt_stbfi.f
7314   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7315   int UNUSED written = 0;
7316   IADDR UNUSED pc = abuf->addr;
7317   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7318
7319 frvbf_write_mem_HI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)), GET_H_FR_INT (FLD (f_FRk)));
7320
7321   return vpc;
7322 #undef FLD
7323 }
7324
7325 /* stfi: stfi$pack $FRintk,@($GRi,$d12) */
7326
7327 static SEM_PC
7328 SEM_FN_NAME (frvbf,stfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7329 {
7330 #define FLD(f) abuf->fields.sfmt_stbfi.f
7331   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7332   int UNUSED written = 0;
7333   IADDR UNUSED pc = abuf->addr;
7334   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7335
7336 frvbf_write_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)), GET_H_FR_INT (FLD (f_FRk)));
7337
7338   return vpc;
7339 #undef FLD
7340 }
7341
7342 /* stdi: stdi$pack $GRdoublek,@($GRi,$d12) */
7343
7344 static SEM_PC
7345 SEM_FN_NAME (frvbf,stdi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7346 {
7347 #define FLD(f) abuf->fields.sfmt_stdi.f
7348   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7349   int UNUSED written = 0;
7350   IADDR UNUSED pc = abuf->addr;
7351   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7352
7353 {
7354   SI tmp_address;
7355 {
7356   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
7357 frvbf_write_mem_DI (current_cpu, pc, tmp_address, GET_H_GR_DOUBLE (FLD (f_GRk)));
7358 }
7359 }
7360
7361   return vpc;
7362 #undef FLD
7363 }
7364
7365 /* stdfi: stdfi$pack $FRdoublek,@($GRi,$d12) */
7366
7367 static SEM_PC
7368 SEM_FN_NAME (frvbf,stdfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7369 {
7370 #define FLD(f) abuf->fields.sfmt_stdfi.f
7371   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7372   int UNUSED written = 0;
7373   IADDR UNUSED pc = abuf->addr;
7374   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7375
7376 {
7377   SI tmp_address;
7378 {
7379   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
7380 frvbf_write_mem_DF (current_cpu, pc, tmp_address, GET_H_FR_DOUBLE (FLD (f_FRk)));
7381 }
7382 }
7383
7384   return vpc;
7385 #undef FLD
7386 }
7387
7388 /* stqi: stqi$pack $GRk,@($GRi,$d12) */
7389
7390 static SEM_PC
7391 SEM_FN_NAME (frvbf,stqi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7392 {
7393 #define FLD(f) abuf->fields.sfmt_stdi.f
7394   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7395   int UNUSED written = 0;
7396   IADDR UNUSED pc = abuf->addr;
7397   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7398
7399 {
7400   SI tmp_address;
7401 {
7402   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
7403 frvbf_store_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
7404 }
7405 }
7406
7407   return vpc;
7408 #undef FLD
7409 }
7410
7411 /* stqfi: stqfi$pack $FRintk,@($GRi,$d12) */
7412
7413 static SEM_PC
7414 SEM_FN_NAME (frvbf,stqfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7415 {
7416 #define FLD(f) abuf->fields.sfmt_stdfi.f
7417   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7418   int UNUSED written = 0;
7419   IADDR UNUSED pc = abuf->addr;
7420   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7421
7422 {
7423   SI tmp_address;
7424 {
7425   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
7426 frvbf_store_quad_FRint (current_cpu, pc, tmp_address, FLD (f_FRk));
7427 }
7428 }
7429
7430   return vpc;
7431 #undef FLD
7432 }
7433
7434 /* swap: swap$pack @($GRi,$GRj),$GRk */
7435
7436 static SEM_PC
7437 SEM_FN_NAME (frvbf,swap) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7438 {
7439 #define FLD(f) abuf->fields.sfmt_cswap.f
7440   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7441   int UNUSED written = 0;
7442   IADDR UNUSED pc = abuf->addr;
7443   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7444
7445 {
7446   SI tmp_tmp;
7447   SI tmp_address;
7448   tmp_tmp = GET_H_GR (FLD (f_GRk));
7449   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7450 frvbf_check_swap_address (current_cpu, tmp_address);
7451   {
7452     SI opval = frvbf_read_mem_WI (current_cpu, pc, tmp_address);
7453     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
7454     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7455   }
7456 frvbf_write_mem_WI (current_cpu, pc, tmp_address, tmp_tmp);
7457 }
7458
7459   return vpc;
7460 #undef FLD
7461 }
7462
7463 /* swapi: swapi$pack @($GRi,$d12),$GRk */
7464
7465 static SEM_PC
7466 SEM_FN_NAME (frvbf,swapi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7467 {
7468 #define FLD(f) abuf->fields.sfmt_swapi.f
7469   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7470   int UNUSED written = 0;
7471   IADDR UNUSED pc = abuf->addr;
7472   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7473
7474 {
7475   SI tmp_tmp;
7476   SI tmp_address;
7477   tmp_tmp = GET_H_GR (FLD (f_GRk));
7478   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
7479 frvbf_check_swap_address (current_cpu, tmp_address);
7480   {
7481     SI opval = frvbf_read_mem_WI (current_cpu, pc, tmp_address);
7482     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
7483     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7484   }
7485 frvbf_write_mem_WI (current_cpu, pc, tmp_address, tmp_tmp);
7486 }
7487
7488   return vpc;
7489 #undef FLD
7490 }
7491
7492 /* cswap: cswap$pack @($GRi,$GRj),$GRk,$CCi,$cond */
7493
7494 static SEM_PC
7495 SEM_FN_NAME (frvbf,cswap) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7496 {
7497 #define FLD(f) abuf->fields.sfmt_cswap.f
7498   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7499   int UNUSED written = 0;
7500   IADDR UNUSED pc = abuf->addr;
7501   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7502
7503 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7504 {
7505   SI tmp_tmp;
7506   SI tmp_address;
7507   tmp_tmp = GET_H_GR (FLD (f_GRk));
7508   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7509 frvbf_check_swap_address (current_cpu, tmp_address);
7510   {
7511     SI opval = frvbf_read_mem_WI (current_cpu, pc, tmp_address);
7512     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
7513     written |= (1 << 6);
7514     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7515   }
7516 frvbf_write_mem_WI (current_cpu, pc, tmp_address, tmp_tmp);
7517 }
7518 }
7519
7520   abuf->written = written;
7521   return vpc;
7522 #undef FLD
7523 }
7524
7525 /* movgf: movgf$pack $GRj,$FRintk */
7526
7527 static SEM_PC
7528 SEM_FN_NAME (frvbf,movgf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7529 {
7530 #define FLD(f) abuf->fields.sfmt_cmovgfd.f
7531   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7532   int UNUSED written = 0;
7533   IADDR UNUSED pc = abuf->addr;
7534   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7535
7536   {
7537     SI opval = GET_H_GR (FLD (f_GRj));
7538     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
7539     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7540   }
7541
7542   return vpc;
7543 #undef FLD
7544 }
7545
7546 /* movfg: movfg$pack $FRintk,$GRj */
7547
7548 static SEM_PC
7549 SEM_FN_NAME (frvbf,movfg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7550 {
7551 #define FLD(f) abuf->fields.sfmt_cmovfgd.f
7552   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7553   int UNUSED written = 0;
7554   IADDR UNUSED pc = abuf->addr;
7555   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7556
7557   {
7558     SI opval = GET_H_FR_INT (FLD (f_FRk));
7559     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRj), opval);
7560     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7561   }
7562
7563   return vpc;
7564 #undef FLD
7565 }
7566
7567 /* movgfd: movgfd$pack $GRj,$FRintk */
7568
7569 static SEM_PC
7570 SEM_FN_NAME (frvbf,movgfd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7571 {
7572 #define FLD(f) abuf->fields.sfmt_cmovgfd.f
7573   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7574   int UNUSED written = 0;
7575   IADDR UNUSED pc = abuf->addr;
7576   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7577
7578 if (EQSI (FLD (f_GRj), 0)) {
7579 {
7580   {
7581     SI opval = 0;
7582     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
7583     written |= (1 << 4);
7584     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7585   }
7586   {
7587     USI opval = 0;
7588     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ADDSI (FLD (f_FRk), 1), opval);
7589     written |= (1 << 5);
7590     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7591   }
7592 }
7593 } else {
7594 {
7595   {
7596     SI opval = GET_H_GR (FLD (f_GRj));
7597     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
7598     written |= (1 << 4);
7599     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7600   }
7601   {
7602     USI opval = GET_H_GR (ADDSI (FLD (f_GRj), 1));
7603     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ADDSI (FLD (f_FRk), 1), opval);
7604     written |= (1 << 5);
7605     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7606   }
7607 }
7608 }
7609
7610   abuf->written = written;
7611   return vpc;
7612 #undef FLD
7613 }
7614
7615 /* movfgd: movfgd$pack $FRintk,$GRj */
7616
7617 static SEM_PC
7618 SEM_FN_NAME (frvbf,movfgd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7619 {
7620 #define FLD(f) abuf->fields.sfmt_cmovfgd.f
7621   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7622   int UNUSED written = 0;
7623   IADDR UNUSED pc = abuf->addr;
7624   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7625
7626 if (NESI (FLD (f_GRj), 0)) {
7627 {
7628   {
7629     SI opval = GET_H_FR_INT (FLD (f_FRk));
7630     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRj), opval);
7631     written |= (1 << 4);
7632     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7633   }
7634   {
7635     USI opval = GET_H_FR_INT (ADDSI (FLD (f_FRk), 1));
7636     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, ADDSI (FLD (f_GRj), 1), opval);
7637     written |= (1 << 5);
7638     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7639   }
7640 }
7641 }
7642
7643   abuf->written = written;
7644   return vpc;
7645 #undef FLD
7646 }
7647
7648 /* movgfq: movgfq$pack $GRj,$FRintk */
7649
7650 static SEM_PC
7651 SEM_FN_NAME (frvbf,movgfq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7652 {
7653 #define FLD(f) abuf->fields.sfmt_movgfq.f
7654   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7655   int UNUSED written = 0;
7656   IADDR UNUSED pc = abuf->addr;
7657   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7658
7659 if (EQSI (FLD (f_GRj), 0)) {
7660 {
7661   {
7662     SI opval = 0;
7663     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
7664     written |= (1 << 6);
7665     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7666   }
7667   {
7668     USI opval = 0;
7669     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ADDSI (FLD (f_FRk), 1), opval);
7670     written |= (1 << 7);
7671     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7672   }
7673   {
7674     USI opval = 0;
7675     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ADDSI (FLD (f_FRk), 2), opval);
7676     written |= (1 << 8);
7677     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7678   }
7679   {
7680     USI opval = 0;
7681     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ADDSI (FLD (f_FRk), 3), opval);
7682     written |= (1 << 9);
7683     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7684   }
7685 }
7686 } else {
7687 {
7688   {
7689     SI opval = GET_H_GR (FLD (f_GRj));
7690     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
7691     written |= (1 << 6);
7692     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7693   }
7694   {
7695     USI opval = GET_H_GR (ADDSI (FLD (f_GRj), 1));
7696     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ADDSI (FLD (f_FRk), 1), opval);
7697     written |= (1 << 7);
7698     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7699   }
7700   {
7701     USI opval = GET_H_GR (ADDSI (FLD (f_GRj), 2));
7702     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ADDSI (FLD (f_FRk), 2), opval);
7703     written |= (1 << 8);
7704     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7705   }
7706   {
7707     USI opval = GET_H_GR (ADDSI (FLD (f_GRj), 3));
7708     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ADDSI (FLD (f_FRk), 3), opval);
7709     written |= (1 << 9);
7710     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7711   }
7712 }
7713 }
7714
7715   abuf->written = written;
7716   return vpc;
7717 #undef FLD
7718 }
7719
7720 /* movfgq: movfgq$pack $FRintk,$GRj */
7721
7722 static SEM_PC
7723 SEM_FN_NAME (frvbf,movfgq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7724 {
7725 #define FLD(f) abuf->fields.sfmt_movfgq.f
7726   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7727   int UNUSED written = 0;
7728   IADDR UNUSED pc = abuf->addr;
7729   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7730
7731 if (NESI (FLD (f_GRj), 0)) {
7732 {
7733   {
7734     SI opval = GET_H_FR_INT (FLD (f_FRk));
7735     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRj), opval);
7736     written |= (1 << 6);
7737     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7738   }
7739   {
7740     USI opval = GET_H_FR_INT (ADDSI (FLD (f_FRk), 1));
7741     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, ADDSI (FLD (f_GRj), 1), opval);
7742     written |= (1 << 7);
7743     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7744   }
7745   {
7746     USI opval = GET_H_FR_INT (ADDSI (FLD (f_FRk), 2));
7747     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, ADDSI (FLD (f_GRj), 2), opval);
7748     written |= (1 << 8);
7749     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7750   }
7751   {
7752     USI opval = GET_H_FR_INT (ADDSI (FLD (f_FRk), 3));
7753     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, ADDSI (FLD (f_GRj), 3), opval);
7754     written |= (1 << 9);
7755     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7756   }
7757 }
7758 }
7759
7760   abuf->written = written;
7761   return vpc;
7762 #undef FLD
7763 }
7764
7765 /* cmovgf: cmovgf$pack $GRj,$FRintk,$CCi,$cond */
7766
7767 static SEM_PC
7768 SEM_FN_NAME (frvbf,cmovgf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7769 {
7770 #define FLD(f) abuf->fields.sfmt_cmovgfd.f
7771   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7772   int UNUSED written = 0;
7773   IADDR UNUSED pc = abuf->addr;
7774   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7775
7776 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7777   {
7778     SI opval = GET_H_GR (FLD (f_GRj));
7779     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
7780     written |= (1 << 3);
7781     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7782   }
7783 }
7784
7785   abuf->written = written;
7786   return vpc;
7787 #undef FLD
7788 }
7789
7790 /* cmovfg: cmovfg$pack $FRintk,$GRj,$CCi,$cond */
7791
7792 static SEM_PC
7793 SEM_FN_NAME (frvbf,cmovfg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7794 {
7795 #define FLD(f) abuf->fields.sfmt_cmovfgd.f
7796   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7797   int UNUSED written = 0;
7798   IADDR UNUSED pc = abuf->addr;
7799   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7800
7801 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7802   {
7803     SI opval = GET_H_FR_INT (FLD (f_FRk));
7804     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRj), opval);
7805     written |= (1 << 3);
7806     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7807   }
7808 }
7809
7810   abuf->written = written;
7811   return vpc;
7812 #undef FLD
7813 }
7814
7815 /* cmovgfd: cmovgfd$pack $GRj,$FRintk,$CCi,$cond */
7816
7817 static SEM_PC
7818 SEM_FN_NAME (frvbf,cmovgfd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7819 {
7820 #define FLD(f) abuf->fields.sfmt_cmovgfd.f
7821   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7822   int UNUSED written = 0;
7823   IADDR UNUSED pc = abuf->addr;
7824   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7825
7826 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7827 if (EQSI (FLD (f_GRj), 0)) {
7828 {
7829   {
7830     SI opval = 0;
7831     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
7832     written |= (1 << 6);
7833     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7834   }
7835   {
7836     USI opval = 0;
7837     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ADDSI (FLD (f_FRk), 1), opval);
7838     written |= (1 << 7);
7839     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7840   }
7841 }
7842 } else {
7843 {
7844   {
7845     SI opval = GET_H_GR (FLD (f_GRj));
7846     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
7847     written |= (1 << 6);
7848     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7849   }
7850   {
7851     USI opval = GET_H_GR (ADDSI (FLD (f_GRj), 1));
7852     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ADDSI (FLD (f_FRk), 1), opval);
7853     written |= (1 << 7);
7854     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7855   }
7856 }
7857 }
7858 }
7859
7860   abuf->written = written;
7861   return vpc;
7862 #undef FLD
7863 }
7864
7865 /* cmovfgd: cmovfgd$pack $FRintk,$GRj,$CCi,$cond */
7866
7867 static SEM_PC
7868 SEM_FN_NAME (frvbf,cmovfgd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7869 {
7870 #define FLD(f) abuf->fields.sfmt_cmovfgd.f
7871   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7872   int UNUSED written = 0;
7873   IADDR UNUSED pc = abuf->addr;
7874   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7875
7876 if (ANDIF (NESI (FLD (f_GRj), 0), EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2)))) {
7877 {
7878   {
7879     SI opval = GET_H_FR_INT (FLD (f_FRk));
7880     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRj), opval);
7881     written |= (1 << 6);
7882     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7883   }
7884   {
7885     USI opval = GET_H_FR_INT (ADDSI (FLD (f_FRk), 1));
7886     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, ADDSI (FLD (f_GRj), 1), opval);
7887     written |= (1 << 7);
7888     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7889   }
7890 }
7891 }
7892
7893   abuf->written = written;
7894   return vpc;
7895 #undef FLD
7896 }
7897
7898 /* movgs: movgs$pack $GRj,$spr */
7899
7900 static SEM_PC
7901 SEM_FN_NAME (frvbf,movgs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7902 {
7903 #define FLD(f) abuf->fields.sfmt_movgs.f
7904   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7905   int UNUSED written = 0;
7906   IADDR UNUSED pc = abuf->addr;
7907   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7908
7909   {
7910     USI opval = GET_H_GR (FLD (f_GRj));
7911     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, FLD (f_spr), opval);
7912     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
7913   }
7914
7915   return vpc;
7916 #undef FLD
7917 }
7918
7919 /* movsg: movsg$pack $spr,$GRj */
7920
7921 static SEM_PC
7922 SEM_FN_NAME (frvbf,movsg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7923 {
7924 #define FLD(f) abuf->fields.sfmt_movsg.f
7925   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7926   int UNUSED written = 0;
7927   IADDR UNUSED pc = abuf->addr;
7928   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7929
7930   {
7931     SI opval = GET_H_SPR (FLD (f_spr));
7932     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRj), opval);
7933     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7934   }
7935
7936   return vpc;
7937 #undef FLD
7938 }
7939
7940 /* bra: bra$pack $hint_taken$label16 */
7941
7942 static SEM_PC
7943 SEM_FN_NAME (frvbf,bra) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7944 {
7945 #define FLD(f) abuf->fields.sfmt_fbne.f
7946   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7947   int UNUSED written = 0;
7948   IADDR UNUSED pc = abuf->addr;
7949   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7950
7951 {
7952 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
7953   {
7954     USI opval = FLD (i_label16);
7955     sim_queue_pc_write (current_cpu, opval);
7956     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
7957   }
7958 }
7959
7960   return vpc;
7961 #undef FLD
7962 }
7963
7964 /* bno: bno$pack$hint_not_taken */
7965
7966 static SEM_PC
7967 SEM_FN_NAME (frvbf,bno) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7968 {
7969 #define FLD(f) abuf->fields.sfmt_fbne.f
7970   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7971   int UNUSED written = 0;
7972   IADDR UNUSED pc = abuf->addr;
7973   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7974
7975 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
7976
7977   return vpc;
7978 #undef FLD
7979 }
7980
7981 /* beq: beq$pack $ICCi_2,$hint,$label16 */
7982
7983 static SEM_PC
7984 SEM_FN_NAME (frvbf,beq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7985 {
7986 #define FLD(f) abuf->fields.sfmt_beq.f
7987   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7988   int UNUSED written = 0;
7989   IADDR UNUSED pc = abuf->addr;
7990   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7991
7992 {
7993 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
7994 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2))) {
7995   {
7996     USI opval = FLD (i_label16);
7997     sim_queue_pc_write (current_cpu, opval);
7998     written |= (1 << 3);
7999     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8000   }
8001 }
8002 }
8003
8004   abuf->written = written;
8005   return vpc;
8006 #undef FLD
8007 }
8008
8009 /* bne: bne$pack $ICCi_2,$hint,$label16 */
8010
8011 static SEM_PC
8012 SEM_FN_NAME (frvbf,bne) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8013 {
8014 #define FLD(f) abuf->fields.sfmt_beq.f
8015   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8016   int UNUSED written = 0;
8017   IADDR UNUSED pc = abuf->addr;
8018   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8019
8020 {
8021 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8022 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)))) {
8023   {
8024     USI opval = FLD (i_label16);
8025     sim_queue_pc_write (current_cpu, opval);
8026     written |= (1 << 3);
8027     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8028   }
8029 }
8030 }
8031
8032   abuf->written = written;
8033   return vpc;
8034 #undef FLD
8035 }
8036
8037 /* ble: ble$pack $ICCi_2,$hint,$label16 */
8038
8039 static SEM_PC
8040 SEM_FN_NAME (frvbf,ble) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8041 {
8042 #define FLD(f) abuf->fields.sfmt_beq.f
8043   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8044   int UNUSED written = 0;
8045   IADDR UNUSED pc = abuf->addr;
8046   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8047
8048 {
8049 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8050 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))))) {
8051   {
8052     USI opval = FLD (i_label16);
8053     sim_queue_pc_write (current_cpu, opval);
8054     written |= (1 << 3);
8055     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8056   }
8057 }
8058 }
8059
8060   abuf->written = written;
8061   return vpc;
8062 #undef FLD
8063 }
8064
8065 /* bgt: bgt$pack $ICCi_2,$hint,$label16 */
8066
8067 static SEM_PC
8068 SEM_FN_NAME (frvbf,bgt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8069 {
8070 #define FLD(f) abuf->fields.sfmt_beq.f
8071   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8072   int UNUSED written = 0;
8073   IADDR UNUSED pc = abuf->addr;
8074   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8075
8076 {
8077 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8078 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)))))) {
8079   {
8080     USI opval = FLD (i_label16);
8081     sim_queue_pc_write (current_cpu, opval);
8082     written |= (1 << 3);
8083     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8084   }
8085 }
8086 }
8087
8088   abuf->written = written;
8089   return vpc;
8090 #undef FLD
8091 }
8092
8093 /* blt: blt$pack $ICCi_2,$hint,$label16 */
8094
8095 static SEM_PC
8096 SEM_FN_NAME (frvbf,blt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8097 {
8098 #define FLD(f) abuf->fields.sfmt_beq.f
8099   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8100   int UNUSED written = 0;
8101   IADDR UNUSED pc = abuf->addr;
8102   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8103
8104 {
8105 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8106 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)))) {
8107   {
8108     USI opval = FLD (i_label16);
8109     sim_queue_pc_write (current_cpu, opval);
8110     written |= (1 << 3);
8111     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8112   }
8113 }
8114 }
8115
8116   abuf->written = written;
8117   return vpc;
8118 #undef FLD
8119 }
8120
8121 /* bge: bge$pack $ICCi_2,$hint,$label16 */
8122
8123 static SEM_PC
8124 SEM_FN_NAME (frvbf,bge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8125 {
8126 #define FLD(f) abuf->fields.sfmt_beq.f
8127   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8128   int UNUSED written = 0;
8129   IADDR UNUSED pc = abuf->addr;
8130   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8131
8132 {
8133 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8134 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))))) {
8135   {
8136     USI opval = FLD (i_label16);
8137     sim_queue_pc_write (current_cpu, opval);
8138     written |= (1 << 3);
8139     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8140   }
8141 }
8142 }
8143
8144   abuf->written = written;
8145   return vpc;
8146 #undef FLD
8147 }
8148
8149 /* bls: bls$pack $ICCi_2,$hint,$label16 */
8150
8151 static SEM_PC
8152 SEM_FN_NAME (frvbf,bls) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8153 {
8154 #define FLD(f) abuf->fields.sfmt_beq.f
8155   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8156   int UNUSED written = 0;
8157   IADDR UNUSED pc = abuf->addr;
8158   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8159
8160 {
8161 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8162 if (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)))) {
8163   {
8164     USI opval = FLD (i_label16);
8165     sim_queue_pc_write (current_cpu, opval);
8166     written |= (1 << 3);
8167     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8168   }
8169 }
8170 }
8171
8172   abuf->written = written;
8173   return vpc;
8174 #undef FLD
8175 }
8176
8177 /* bhi: bhi$pack $ICCi_2,$hint,$label16 */
8178
8179 static SEM_PC
8180 SEM_FN_NAME (frvbf,bhi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8181 {
8182 #define FLD(f) abuf->fields.sfmt_beq.f
8183   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8184   int UNUSED written = 0;
8185   IADDR UNUSED pc = abuf->addr;
8186   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8187
8188 {
8189 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8190 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))))) {
8191   {
8192     USI opval = FLD (i_label16);
8193     sim_queue_pc_write (current_cpu, opval);
8194     written |= (1 << 3);
8195     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8196   }
8197 }
8198 }
8199
8200   abuf->written = written;
8201   return vpc;
8202 #undef FLD
8203 }
8204
8205 /* bc: bc$pack $ICCi_2,$hint,$label16 */
8206
8207 static SEM_PC
8208 SEM_FN_NAME (frvbf,bc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8209 {
8210 #define FLD(f) abuf->fields.sfmt_beq.f
8211   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8212   int UNUSED written = 0;
8213   IADDR UNUSED pc = abuf->addr;
8214   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8215
8216 {
8217 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8218 if (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1))) {
8219   {
8220     USI opval = FLD (i_label16);
8221     sim_queue_pc_write (current_cpu, opval);
8222     written |= (1 << 3);
8223     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8224   }
8225 }
8226 }
8227
8228   abuf->written = written;
8229   return vpc;
8230 #undef FLD
8231 }
8232
8233 /* bnc: bnc$pack $ICCi_2,$hint,$label16 */
8234
8235 static SEM_PC
8236 SEM_FN_NAME (frvbf,bnc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8237 {
8238 #define FLD(f) abuf->fields.sfmt_beq.f
8239   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8240   int UNUSED written = 0;
8241   IADDR UNUSED pc = abuf->addr;
8242   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8243
8244 {
8245 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8246 if (NOTBI (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)))) {
8247   {
8248     USI opval = FLD (i_label16);
8249     sim_queue_pc_write (current_cpu, opval);
8250     written |= (1 << 3);
8251     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8252   }
8253 }
8254 }
8255
8256   abuf->written = written;
8257   return vpc;
8258 #undef FLD
8259 }
8260
8261 /* bn: bn$pack $ICCi_2,$hint,$label16 */
8262
8263 static SEM_PC
8264 SEM_FN_NAME (frvbf,bn) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8265 {
8266 #define FLD(f) abuf->fields.sfmt_beq.f
8267   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8268   int UNUSED written = 0;
8269   IADDR UNUSED pc = abuf->addr;
8270   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8271
8272 {
8273 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8274 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3))) {
8275   {
8276     USI opval = FLD (i_label16);
8277     sim_queue_pc_write (current_cpu, opval);
8278     written |= (1 << 3);
8279     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8280   }
8281 }
8282 }
8283
8284   abuf->written = written;
8285   return vpc;
8286 #undef FLD
8287 }
8288
8289 /* bp: bp$pack $ICCi_2,$hint,$label16 */
8290
8291 static SEM_PC
8292 SEM_FN_NAME (frvbf,bp) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8293 {
8294 #define FLD(f) abuf->fields.sfmt_beq.f
8295   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8296   int UNUSED written = 0;
8297   IADDR UNUSED pc = abuf->addr;
8298   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8299
8300 {
8301 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8302 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3)))) {
8303   {
8304     USI opval = FLD (i_label16);
8305     sim_queue_pc_write (current_cpu, opval);
8306     written |= (1 << 3);
8307     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8308   }
8309 }
8310 }
8311
8312   abuf->written = written;
8313   return vpc;
8314 #undef FLD
8315 }
8316
8317 /* bv: bv$pack $ICCi_2,$hint,$label16 */
8318
8319 static SEM_PC
8320 SEM_FN_NAME (frvbf,bv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8321 {
8322 #define FLD(f) abuf->fields.sfmt_beq.f
8323   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8324   int UNUSED written = 0;
8325   IADDR UNUSED pc = abuf->addr;
8326   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8327
8328 {
8329 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8330 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1))) {
8331   {
8332     USI opval = FLD (i_label16);
8333     sim_queue_pc_write (current_cpu, opval);
8334     written |= (1 << 3);
8335     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8336   }
8337 }
8338 }
8339
8340   abuf->written = written;
8341   return vpc;
8342 #undef FLD
8343 }
8344
8345 /* bnv: bnv$pack $ICCi_2,$hint,$label16 */
8346
8347 static SEM_PC
8348 SEM_FN_NAME (frvbf,bnv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8349 {
8350 #define FLD(f) abuf->fields.sfmt_beq.f
8351   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8352   int UNUSED written = 0;
8353   IADDR UNUSED pc = abuf->addr;
8354   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8355
8356 {
8357 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8358 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1)))) {
8359   {
8360     USI opval = FLD (i_label16);
8361     sim_queue_pc_write (current_cpu, opval);
8362     written |= (1 << 3);
8363     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8364   }
8365 }
8366 }
8367
8368   abuf->written = written;
8369   return vpc;
8370 #undef FLD
8371 }
8372
8373 /* fbra: fbra$pack $hint_taken$label16 */
8374
8375 static SEM_PC
8376 SEM_FN_NAME (frvbf,fbra) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8377 {
8378 #define FLD(f) abuf->fields.sfmt_fbne.f
8379   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8380   int UNUSED written = 0;
8381   IADDR UNUSED pc = abuf->addr;
8382   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8383
8384 {
8385 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8386   {
8387     USI opval = FLD (i_label16);
8388     sim_queue_pc_write (current_cpu, opval);
8389     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8390   }
8391 }
8392
8393   return vpc;
8394 #undef FLD
8395 }
8396
8397 /* fbno: fbno$pack$hint_not_taken */
8398
8399 static SEM_PC
8400 SEM_FN_NAME (frvbf,fbno) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8401 {
8402 #define FLD(f) abuf->fields.sfmt_fbne.f
8403   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8404   int UNUSED written = 0;
8405   IADDR UNUSED pc = abuf->addr;
8406   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8407
8408 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8409
8410   return vpc;
8411 #undef FLD
8412 }
8413
8414 /* fbne: fbne$pack $FCCi_2,$hint,$label16 */
8415
8416 static SEM_PC
8417 SEM_FN_NAME (frvbf,fbne) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8418 {
8419 #define FLD(f) abuf->fields.sfmt_fbne.f
8420   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8421   int UNUSED written = 0;
8422   IADDR UNUSED pc = abuf->addr;
8423   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8424
8425 {
8426 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8427 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))))) {
8428   {
8429     USI opval = FLD (i_label16);
8430     sim_queue_pc_write (current_cpu, opval);
8431     written |= (1 << 3);
8432     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8433   }
8434 }
8435 }
8436
8437   abuf->written = written;
8438   return vpc;
8439 #undef FLD
8440 }
8441
8442 /* fbeq: fbeq$pack $FCCi_2,$hint,$label16 */
8443
8444 static SEM_PC
8445 SEM_FN_NAME (frvbf,fbeq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8446 {
8447 #define FLD(f) abuf->fields.sfmt_fbne.f
8448   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8449   int UNUSED written = 0;
8450   IADDR UNUSED pc = abuf->addr;
8451   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8452
8453 {
8454 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8455 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3))) {
8456   {
8457     USI opval = FLD (i_label16);
8458     sim_queue_pc_write (current_cpu, opval);
8459     written |= (1 << 3);
8460     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8461   }
8462 }
8463 }
8464
8465   abuf->written = written;
8466   return vpc;
8467 #undef FLD
8468 }
8469
8470 /* fblg: fblg$pack $FCCi_2,$hint,$label16 */
8471
8472 static SEM_PC
8473 SEM_FN_NAME (frvbf,fblg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8474 {
8475 #define FLD(f) abuf->fields.sfmt_fbne.f
8476   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8477   int UNUSED written = 0;
8478   IADDR UNUSED pc = abuf->addr;
8479   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8480
8481 {
8482 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8483 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)))) {
8484   {
8485     USI opval = FLD (i_label16);
8486     sim_queue_pc_write (current_cpu, opval);
8487     written |= (1 << 3);
8488     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8489   }
8490 }
8491 }
8492
8493   abuf->written = written;
8494   return vpc;
8495 #undef FLD
8496 }
8497
8498 /* fbue: fbue$pack $FCCi_2,$hint,$label16 */
8499
8500 static SEM_PC
8501 SEM_FN_NAME (frvbf,fbue) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8502 {
8503 #define FLD(f) abuf->fields.sfmt_fbne.f
8504   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8505   int UNUSED written = 0;
8506   IADDR UNUSED pc = abuf->addr;
8507   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8508
8509 {
8510 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8511 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
8512   {
8513     USI opval = FLD (i_label16);
8514     sim_queue_pc_write (current_cpu, opval);
8515     written |= (1 << 3);
8516     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8517   }
8518 }
8519 }
8520
8521   abuf->written = written;
8522   return vpc;
8523 #undef FLD
8524 }
8525
8526 /* fbul: fbul$pack $FCCi_2,$hint,$label16 */
8527
8528 static SEM_PC
8529 SEM_FN_NAME (frvbf,fbul) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8530 {
8531 #define FLD(f) abuf->fields.sfmt_fbne.f
8532   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8533   int UNUSED written = 0;
8534   IADDR UNUSED pc = abuf->addr;
8535   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8536
8537 {
8538 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8539 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
8540   {
8541     USI opval = FLD (i_label16);
8542     sim_queue_pc_write (current_cpu, opval);
8543     written |= (1 << 3);
8544     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8545   }
8546 }
8547 }
8548
8549   abuf->written = written;
8550   return vpc;
8551 #undef FLD
8552 }
8553
8554 /* fbge: fbge$pack $FCCi_2,$hint,$label16 */
8555
8556 static SEM_PC
8557 SEM_FN_NAME (frvbf,fbge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8558 {
8559 #define FLD(f) abuf->fields.sfmt_fbne.f
8560   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8561   int UNUSED written = 0;
8562   IADDR UNUSED pc = abuf->addr;
8563   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8564
8565 {
8566 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8567 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)))) {
8568   {
8569     USI opval = FLD (i_label16);
8570     sim_queue_pc_write (current_cpu, opval);
8571     written |= (1 << 3);
8572     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8573   }
8574 }
8575 }
8576
8577   abuf->written = written;
8578   return vpc;
8579 #undef FLD
8580 }
8581
8582 /* fblt: fblt$pack $FCCi_2,$hint,$label16 */
8583
8584 static SEM_PC
8585 SEM_FN_NAME (frvbf,fblt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8586 {
8587 #define FLD(f) abuf->fields.sfmt_fbne.f
8588   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8589   int UNUSED written = 0;
8590   IADDR UNUSED pc = abuf->addr;
8591   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8592
8593 {
8594 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8595 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2))) {
8596   {
8597     USI opval = FLD (i_label16);
8598     sim_queue_pc_write (current_cpu, opval);
8599     written |= (1 << 3);
8600     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8601   }
8602 }
8603 }
8604
8605   abuf->written = written;
8606   return vpc;
8607 #undef FLD
8608 }
8609
8610 /* fbuge: fbuge$pack $FCCi_2,$hint,$label16 */
8611
8612 static SEM_PC
8613 SEM_FN_NAME (frvbf,fbuge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8614 {
8615 #define FLD(f) abuf->fields.sfmt_fbne.f
8616   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8617   int UNUSED written = 0;
8618   IADDR UNUSED pc = abuf->addr;
8619   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8620
8621 {
8622 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8623 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))))) {
8624   {
8625     USI opval = FLD (i_label16);
8626     sim_queue_pc_write (current_cpu, opval);
8627     written |= (1 << 3);
8628     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8629   }
8630 }
8631 }
8632
8633   abuf->written = written;
8634   return vpc;
8635 #undef FLD
8636 }
8637
8638 /* fbug: fbug$pack $FCCi_2,$hint,$label16 */
8639
8640 static SEM_PC
8641 SEM_FN_NAME (frvbf,fbug) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8642 {
8643 #define FLD(f) abuf->fields.sfmt_fbne.f
8644   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8645   int UNUSED written = 0;
8646   IADDR UNUSED pc = abuf->addr;
8647   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8648
8649 {
8650 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8651 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
8652   {
8653     USI opval = FLD (i_label16);
8654     sim_queue_pc_write (current_cpu, opval);
8655     written |= (1 << 3);
8656     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8657   }
8658 }
8659 }
8660
8661   abuf->written = written;
8662   return vpc;
8663 #undef FLD
8664 }
8665
8666 /* fble: fble$pack $FCCi_2,$hint,$label16 */
8667
8668 static SEM_PC
8669 SEM_FN_NAME (frvbf,fble) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8670 {
8671 #define FLD(f) abuf->fields.sfmt_fbne.f
8672   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8673   int UNUSED written = 0;
8674   IADDR UNUSED pc = abuf->addr;
8675   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8676
8677 {
8678 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8679 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)))) {
8680   {
8681     USI opval = FLD (i_label16);
8682     sim_queue_pc_write (current_cpu, opval);
8683     written |= (1 << 3);
8684     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8685   }
8686 }
8687 }
8688
8689   abuf->written = written;
8690   return vpc;
8691 #undef FLD
8692 }
8693
8694 /* fbgt: fbgt$pack $FCCi_2,$hint,$label16 */
8695
8696 static SEM_PC
8697 SEM_FN_NAME (frvbf,fbgt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8698 {
8699 #define FLD(f) abuf->fields.sfmt_fbne.f
8700   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8701   int UNUSED written = 0;
8702   IADDR UNUSED pc = abuf->addr;
8703   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8704
8705 {
8706 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8707 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1))) {
8708   {
8709     USI opval = FLD (i_label16);
8710     sim_queue_pc_write (current_cpu, opval);
8711     written |= (1 << 3);
8712     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8713   }
8714 }
8715 }
8716
8717   abuf->written = written;
8718   return vpc;
8719 #undef FLD
8720 }
8721
8722 /* fbule: fbule$pack $FCCi_2,$hint,$label16 */
8723
8724 static SEM_PC
8725 SEM_FN_NAME (frvbf,fbule) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8726 {
8727 #define FLD(f) abuf->fields.sfmt_fbne.f
8728   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8729   int UNUSED written = 0;
8730   IADDR UNUSED pc = abuf->addr;
8731   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8732
8733 {
8734 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8735 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))))) {
8736   {
8737     USI opval = FLD (i_label16);
8738     sim_queue_pc_write (current_cpu, opval);
8739     written |= (1 << 3);
8740     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8741   }
8742 }
8743 }
8744
8745   abuf->written = written;
8746   return vpc;
8747 #undef FLD
8748 }
8749
8750 /* fbu: fbu$pack $FCCi_2,$hint,$label16 */
8751
8752 static SEM_PC
8753 SEM_FN_NAME (frvbf,fbu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8754 {
8755 #define FLD(f) abuf->fields.sfmt_fbne.f
8756   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8757   int UNUSED written = 0;
8758   IADDR UNUSED pc = abuf->addr;
8759   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8760
8761 {
8762 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8763 if (TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1))) {
8764   {
8765     USI opval = FLD (i_label16);
8766     sim_queue_pc_write (current_cpu, opval);
8767     written |= (1 << 3);
8768     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8769   }
8770 }
8771 }
8772
8773   abuf->written = written;
8774   return vpc;
8775 #undef FLD
8776 }
8777
8778 /* fbo: fbo$pack $FCCi_2,$hint,$label16 */
8779
8780 static SEM_PC
8781 SEM_FN_NAME (frvbf,fbo) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8782 {
8783 #define FLD(f) abuf->fields.sfmt_fbne.f
8784   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8785   int UNUSED written = 0;
8786   IADDR UNUSED pc = abuf->addr;
8787   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8788
8789 {
8790 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8791 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))))) {
8792   {
8793     USI opval = FLD (i_label16);
8794     sim_queue_pc_write (current_cpu, opval);
8795     written |= (1 << 3);
8796     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8797   }
8798 }
8799 }
8800
8801   abuf->written = written;
8802   return vpc;
8803 #undef FLD
8804 }
8805
8806 /* bctrlr: bctrlr$pack $ccond,$hint */
8807
8808 static SEM_PC
8809 SEM_FN_NAME (frvbf,bctrlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8810 {
8811 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
8812   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8813   int UNUSED written = 0;
8814   IADDR UNUSED pc = abuf->addr;
8815   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8816
8817 {
8818 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
8819 {
8820   SI tmp_tmp;
8821   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
8822   {
8823     USI opval = tmp_tmp;
8824     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
8825     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
8826   }
8827 if (EQSI (FLD (f_ccond), 0)) {
8828 if (NESI (tmp_tmp, 0)) {
8829   {
8830     USI opval = GET_H_SPR (((UINT) 272));
8831     sim_queue_pc_write (current_cpu, opval);
8832     written |= (1 << 5);
8833     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8834   }
8835 }
8836 } else {
8837 if (EQSI (tmp_tmp, 0)) {
8838   {
8839     USI opval = GET_H_SPR (((UINT) 272));
8840     sim_queue_pc_write (current_cpu, opval);
8841     written |= (1 << 5);
8842     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8843   }
8844 }
8845 }
8846 }
8847 }
8848
8849   abuf->written = written;
8850   return vpc;
8851 #undef FLD
8852 }
8853
8854 /* bralr: bralr$pack$hint_taken */
8855
8856 static SEM_PC
8857 SEM_FN_NAME (frvbf,bralr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8858 {
8859 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
8860   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8861   int UNUSED written = 0;
8862   IADDR UNUSED pc = abuf->addr;
8863   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8864
8865 {
8866 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
8867   {
8868     USI opval = GET_H_SPR (((UINT) 272));
8869     sim_queue_pc_write (current_cpu, opval);
8870     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8871   }
8872 }
8873
8874   return vpc;
8875 #undef FLD
8876 }
8877
8878 /* bnolr: bnolr$pack$hint_not_taken */
8879
8880 static SEM_PC
8881 SEM_FN_NAME (frvbf,bnolr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8882 {
8883 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
8884   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8885   int UNUSED written = 0;
8886   IADDR UNUSED pc = abuf->addr;
8887   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8888
8889 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
8890
8891   return vpc;
8892 #undef FLD
8893 }
8894
8895 /* beqlr: beqlr$pack $ICCi_2,$hint */
8896
8897 static SEM_PC
8898 SEM_FN_NAME (frvbf,beqlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8899 {
8900 #define FLD(f) abuf->fields.sfmt_bceqlr.f
8901   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8902   int UNUSED written = 0;
8903   IADDR UNUSED pc = abuf->addr;
8904   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8905
8906 {
8907 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
8908 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2))) {
8909   {
8910     USI opval = GET_H_SPR (((UINT) 272));
8911     sim_queue_pc_write (current_cpu, opval);
8912     written |= (1 << 3);
8913     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8914   }
8915 }
8916 }
8917
8918   abuf->written = written;
8919   return vpc;
8920 #undef FLD
8921 }
8922
8923 /* bnelr: bnelr$pack $ICCi_2,$hint */
8924
8925 static SEM_PC
8926 SEM_FN_NAME (frvbf,bnelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8927 {
8928 #define FLD(f) abuf->fields.sfmt_bceqlr.f
8929   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8930   int UNUSED written = 0;
8931   IADDR UNUSED pc = abuf->addr;
8932   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8933
8934 {
8935 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
8936 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)))) {
8937   {
8938     USI opval = GET_H_SPR (((UINT) 272));
8939     sim_queue_pc_write (current_cpu, opval);
8940     written |= (1 << 3);
8941     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8942   }
8943 }
8944 }
8945
8946   abuf->written = written;
8947   return vpc;
8948 #undef FLD
8949 }
8950
8951 /* blelr: blelr$pack $ICCi_2,$hint */
8952
8953 static SEM_PC
8954 SEM_FN_NAME (frvbf,blelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8955 {
8956 #define FLD(f) abuf->fields.sfmt_bceqlr.f
8957   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8958   int UNUSED written = 0;
8959   IADDR UNUSED pc = abuf->addr;
8960   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8961
8962 {
8963 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
8964 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))))) {
8965   {
8966     USI opval = GET_H_SPR (((UINT) 272));
8967     sim_queue_pc_write (current_cpu, opval);
8968     written |= (1 << 3);
8969     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8970   }
8971 }
8972 }
8973
8974   abuf->written = written;
8975   return vpc;
8976 #undef FLD
8977 }
8978
8979 /* bgtlr: bgtlr$pack $ICCi_2,$hint */
8980
8981 static SEM_PC
8982 SEM_FN_NAME (frvbf,bgtlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8983 {
8984 #define FLD(f) abuf->fields.sfmt_bceqlr.f
8985   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8986   int UNUSED written = 0;
8987   IADDR UNUSED pc = abuf->addr;
8988   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8989
8990 {
8991 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
8992 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)))))) {
8993   {
8994     USI opval = GET_H_SPR (((UINT) 272));
8995     sim_queue_pc_write (current_cpu, opval);
8996     written |= (1 << 3);
8997     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8998   }
8999 }
9000 }
9001
9002   abuf->written = written;
9003   return vpc;
9004 #undef FLD
9005 }
9006
9007 /* bltlr: bltlr$pack $ICCi_2,$hint */
9008
9009 static SEM_PC
9010 SEM_FN_NAME (frvbf,bltlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9011 {
9012 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9013   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9014   int UNUSED written = 0;
9015   IADDR UNUSED pc = abuf->addr;
9016   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9017
9018 {
9019 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9020 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)))) {
9021   {
9022     USI opval = GET_H_SPR (((UINT) 272));
9023     sim_queue_pc_write (current_cpu, opval);
9024     written |= (1 << 3);
9025     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9026   }
9027 }
9028 }
9029
9030   abuf->written = written;
9031   return vpc;
9032 #undef FLD
9033 }
9034
9035 /* bgelr: bgelr$pack $ICCi_2,$hint */
9036
9037 static SEM_PC
9038 SEM_FN_NAME (frvbf,bgelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9039 {
9040 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9041   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9042   int UNUSED written = 0;
9043   IADDR UNUSED pc = abuf->addr;
9044   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9045
9046 {
9047 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9048 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))))) {
9049   {
9050     USI opval = GET_H_SPR (((UINT) 272));
9051     sim_queue_pc_write (current_cpu, opval);
9052     written |= (1 << 3);
9053     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9054   }
9055 }
9056 }
9057
9058   abuf->written = written;
9059   return vpc;
9060 #undef FLD
9061 }
9062
9063 /* blslr: blslr$pack $ICCi_2,$hint */
9064
9065 static SEM_PC
9066 SEM_FN_NAME (frvbf,blslr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9067 {
9068 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9069   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9070   int UNUSED written = 0;
9071   IADDR UNUSED pc = abuf->addr;
9072   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9073
9074 {
9075 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9076 if (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)))) {
9077   {
9078     USI opval = GET_H_SPR (((UINT) 272));
9079     sim_queue_pc_write (current_cpu, opval);
9080     written |= (1 << 3);
9081     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9082   }
9083 }
9084 }
9085
9086   abuf->written = written;
9087   return vpc;
9088 #undef FLD
9089 }
9090
9091 /* bhilr: bhilr$pack $ICCi_2,$hint */
9092
9093 static SEM_PC
9094 SEM_FN_NAME (frvbf,bhilr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9095 {
9096 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9097   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9098   int UNUSED written = 0;
9099   IADDR UNUSED pc = abuf->addr;
9100   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9101
9102 {
9103 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9104 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))))) {
9105   {
9106     USI opval = GET_H_SPR (((UINT) 272));
9107     sim_queue_pc_write (current_cpu, opval);
9108     written |= (1 << 3);
9109     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9110   }
9111 }
9112 }
9113
9114   abuf->written = written;
9115   return vpc;
9116 #undef FLD
9117 }
9118
9119 /* bclr: bclr$pack $ICCi_2,$hint */
9120
9121 static SEM_PC
9122 SEM_FN_NAME (frvbf,bclr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9123 {
9124 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9125   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9126   int UNUSED written = 0;
9127   IADDR UNUSED pc = abuf->addr;
9128   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9129
9130 {
9131 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9132 if (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1))) {
9133   {
9134     USI opval = GET_H_SPR (((UINT) 272));
9135     sim_queue_pc_write (current_cpu, opval);
9136     written |= (1 << 3);
9137     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9138   }
9139 }
9140 }
9141
9142   abuf->written = written;
9143   return vpc;
9144 #undef FLD
9145 }
9146
9147 /* bnclr: bnclr$pack $ICCi_2,$hint */
9148
9149 static SEM_PC
9150 SEM_FN_NAME (frvbf,bnclr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9151 {
9152 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9153   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9154   int UNUSED written = 0;
9155   IADDR UNUSED pc = abuf->addr;
9156   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9157
9158 {
9159 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9160 if (NOTBI (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)))) {
9161   {
9162     USI opval = GET_H_SPR (((UINT) 272));
9163     sim_queue_pc_write (current_cpu, opval);
9164     written |= (1 << 3);
9165     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9166   }
9167 }
9168 }
9169
9170   abuf->written = written;
9171   return vpc;
9172 #undef FLD
9173 }
9174
9175 /* bnlr: bnlr$pack $ICCi_2,$hint */
9176
9177 static SEM_PC
9178 SEM_FN_NAME (frvbf,bnlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9179 {
9180 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9181   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9182   int UNUSED written = 0;
9183   IADDR UNUSED pc = abuf->addr;
9184   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9185
9186 {
9187 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9188 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3))) {
9189   {
9190     USI opval = GET_H_SPR (((UINT) 272));
9191     sim_queue_pc_write (current_cpu, opval);
9192     written |= (1 << 3);
9193     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9194   }
9195 }
9196 }
9197
9198   abuf->written = written;
9199   return vpc;
9200 #undef FLD
9201 }
9202
9203 /* bplr: bplr$pack $ICCi_2,$hint */
9204
9205 static SEM_PC
9206 SEM_FN_NAME (frvbf,bplr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9207 {
9208 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9209   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9210   int UNUSED written = 0;
9211   IADDR UNUSED pc = abuf->addr;
9212   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9213
9214 {
9215 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9216 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3)))) {
9217   {
9218     USI opval = GET_H_SPR (((UINT) 272));
9219     sim_queue_pc_write (current_cpu, opval);
9220     written |= (1 << 3);
9221     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9222   }
9223 }
9224 }
9225
9226   abuf->written = written;
9227   return vpc;
9228 #undef FLD
9229 }
9230
9231 /* bvlr: bvlr$pack $ICCi_2,$hint */
9232
9233 static SEM_PC
9234 SEM_FN_NAME (frvbf,bvlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9235 {
9236 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9237   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9238   int UNUSED written = 0;
9239   IADDR UNUSED pc = abuf->addr;
9240   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9241
9242 {
9243 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9244 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1))) {
9245   {
9246     USI opval = GET_H_SPR (((UINT) 272));
9247     sim_queue_pc_write (current_cpu, opval);
9248     written |= (1 << 3);
9249     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9250   }
9251 }
9252 }
9253
9254   abuf->written = written;
9255   return vpc;
9256 #undef FLD
9257 }
9258
9259 /* bnvlr: bnvlr$pack $ICCi_2,$hint */
9260
9261 static SEM_PC
9262 SEM_FN_NAME (frvbf,bnvlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9263 {
9264 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9265   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9266   int UNUSED written = 0;
9267   IADDR UNUSED pc = abuf->addr;
9268   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9269
9270 {
9271 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9272 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1)))) {
9273   {
9274     USI opval = GET_H_SPR (((UINT) 272));
9275     sim_queue_pc_write (current_cpu, opval);
9276     written |= (1 << 3);
9277     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9278   }
9279 }
9280 }
9281
9282   abuf->written = written;
9283   return vpc;
9284 #undef FLD
9285 }
9286
9287 /* fbralr: fbralr$pack$hint_taken */
9288
9289 static SEM_PC
9290 SEM_FN_NAME (frvbf,fbralr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9291 {
9292 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9293   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9294   int UNUSED written = 0;
9295   IADDR UNUSED pc = abuf->addr;
9296   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9297
9298 {
9299 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9300   {
9301     USI opval = GET_H_SPR (((UINT) 272));
9302     sim_queue_pc_write (current_cpu, opval);
9303     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9304   }
9305 }
9306
9307   return vpc;
9308 #undef FLD
9309 }
9310
9311 /* fbnolr: fbnolr$pack$hint_not_taken */
9312
9313 static SEM_PC
9314 SEM_FN_NAME (frvbf,fbnolr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9315 {
9316 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9317   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9318   int UNUSED written = 0;
9319   IADDR UNUSED pc = abuf->addr;
9320   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9321
9322 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9323
9324   return vpc;
9325 #undef FLD
9326 }
9327
9328 /* fbeqlr: fbeqlr$pack $FCCi_2,$hint */
9329
9330 static SEM_PC
9331 SEM_FN_NAME (frvbf,fbeqlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9332 {
9333 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9334   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9335   int UNUSED written = 0;
9336   IADDR UNUSED pc = abuf->addr;
9337   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9338
9339 {
9340 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9341 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3))) {
9342   {
9343     USI opval = GET_H_SPR (((UINT) 272));
9344     sim_queue_pc_write (current_cpu, opval);
9345     written |= (1 << 3);
9346     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9347   }
9348 }
9349 }
9350
9351   abuf->written = written;
9352   return vpc;
9353 #undef FLD
9354 }
9355
9356 /* fbnelr: fbnelr$pack $FCCi_2,$hint */
9357
9358 static SEM_PC
9359 SEM_FN_NAME (frvbf,fbnelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9360 {
9361 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9362   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9363   int UNUSED written = 0;
9364   IADDR UNUSED pc = abuf->addr;
9365   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9366
9367 {
9368 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9369 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))))) {
9370   {
9371     USI opval = GET_H_SPR (((UINT) 272));
9372     sim_queue_pc_write (current_cpu, opval);
9373     written |= (1 << 3);
9374     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9375   }
9376 }
9377 }
9378
9379   abuf->written = written;
9380   return vpc;
9381 #undef FLD
9382 }
9383
9384 /* fblglr: fblglr$pack $FCCi_2,$hint */
9385
9386 static SEM_PC
9387 SEM_FN_NAME (frvbf,fblglr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9388 {
9389 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9390   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9391   int UNUSED written = 0;
9392   IADDR UNUSED pc = abuf->addr;
9393   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9394
9395 {
9396 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9397 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)))) {
9398   {
9399     USI opval = GET_H_SPR (((UINT) 272));
9400     sim_queue_pc_write (current_cpu, opval);
9401     written |= (1 << 3);
9402     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9403   }
9404 }
9405 }
9406
9407   abuf->written = written;
9408   return vpc;
9409 #undef FLD
9410 }
9411
9412 /* fbuelr: fbuelr$pack $FCCi_2,$hint */
9413
9414 static SEM_PC
9415 SEM_FN_NAME (frvbf,fbuelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9416 {
9417 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9418   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9419   int UNUSED written = 0;
9420   IADDR UNUSED pc = abuf->addr;
9421   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9422
9423 {
9424 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9425 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
9426   {
9427     USI opval = GET_H_SPR (((UINT) 272));
9428     sim_queue_pc_write (current_cpu, opval);
9429     written |= (1 << 3);
9430     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9431   }
9432 }
9433 }
9434
9435   abuf->written = written;
9436   return vpc;
9437 #undef FLD
9438 }
9439
9440 /* fbullr: fbullr$pack $FCCi_2,$hint */
9441
9442 static SEM_PC
9443 SEM_FN_NAME (frvbf,fbullr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9444 {
9445 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9446   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9447   int UNUSED written = 0;
9448   IADDR UNUSED pc = abuf->addr;
9449   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9450
9451 {
9452 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9453 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
9454   {
9455     USI opval = GET_H_SPR (((UINT) 272));
9456     sim_queue_pc_write (current_cpu, opval);
9457     written |= (1 << 3);
9458     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9459   }
9460 }
9461 }
9462
9463   abuf->written = written;
9464   return vpc;
9465 #undef FLD
9466 }
9467
9468 /* fbgelr: fbgelr$pack $FCCi_2,$hint */
9469
9470 static SEM_PC
9471 SEM_FN_NAME (frvbf,fbgelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9472 {
9473 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9474   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9475   int UNUSED written = 0;
9476   IADDR UNUSED pc = abuf->addr;
9477   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9478
9479 {
9480 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9481 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)))) {
9482   {
9483     USI opval = GET_H_SPR (((UINT) 272));
9484     sim_queue_pc_write (current_cpu, opval);
9485     written |= (1 << 3);
9486     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9487   }
9488 }
9489 }
9490
9491   abuf->written = written;
9492   return vpc;
9493 #undef FLD
9494 }
9495
9496 /* fbltlr: fbltlr$pack $FCCi_2,$hint */
9497
9498 static SEM_PC
9499 SEM_FN_NAME (frvbf,fbltlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9500 {
9501 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9502   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9503   int UNUSED written = 0;
9504   IADDR UNUSED pc = abuf->addr;
9505   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9506
9507 {
9508 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9509 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2))) {
9510   {
9511     USI opval = GET_H_SPR (((UINT) 272));
9512     sim_queue_pc_write (current_cpu, opval);
9513     written |= (1 << 3);
9514     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9515   }
9516 }
9517 }
9518
9519   abuf->written = written;
9520   return vpc;
9521 #undef FLD
9522 }
9523
9524 /* fbugelr: fbugelr$pack $FCCi_2,$hint */
9525
9526 static SEM_PC
9527 SEM_FN_NAME (frvbf,fbugelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9528 {
9529 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9530   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9531   int UNUSED written = 0;
9532   IADDR UNUSED pc = abuf->addr;
9533   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9534
9535 {
9536 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9537 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))))) {
9538   {
9539     USI opval = GET_H_SPR (((UINT) 272));
9540     sim_queue_pc_write (current_cpu, opval);
9541     written |= (1 << 3);
9542     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9543   }
9544 }
9545 }
9546
9547   abuf->written = written;
9548   return vpc;
9549 #undef FLD
9550 }
9551
9552 /* fbuglr: fbuglr$pack $FCCi_2,$hint */
9553
9554 static SEM_PC
9555 SEM_FN_NAME (frvbf,fbuglr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9556 {
9557 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9558   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9559   int UNUSED written = 0;
9560   IADDR UNUSED pc = abuf->addr;
9561   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9562
9563 {
9564 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9565 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
9566   {
9567     USI opval = GET_H_SPR (((UINT) 272));
9568     sim_queue_pc_write (current_cpu, opval);
9569     written |= (1 << 3);
9570     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9571   }
9572 }
9573 }
9574
9575   abuf->written = written;
9576   return vpc;
9577 #undef FLD
9578 }
9579
9580 /* fblelr: fblelr$pack $FCCi_2,$hint */
9581
9582 static SEM_PC
9583 SEM_FN_NAME (frvbf,fblelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9584 {
9585 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9586   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9587   int UNUSED written = 0;
9588   IADDR UNUSED pc = abuf->addr;
9589   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9590
9591 {
9592 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9593 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)))) {
9594   {
9595     USI opval = GET_H_SPR (((UINT) 272));
9596     sim_queue_pc_write (current_cpu, opval);
9597     written |= (1 << 3);
9598     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9599   }
9600 }
9601 }
9602
9603   abuf->written = written;
9604   return vpc;
9605 #undef FLD
9606 }
9607
9608 /* fbgtlr: fbgtlr$pack $FCCi_2,$hint */
9609
9610 static SEM_PC
9611 SEM_FN_NAME (frvbf,fbgtlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9612 {
9613 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9614   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9615   int UNUSED written = 0;
9616   IADDR UNUSED pc = abuf->addr;
9617   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9618
9619 {
9620 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9621 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1))) {
9622   {
9623     USI opval = GET_H_SPR (((UINT) 272));
9624     sim_queue_pc_write (current_cpu, opval);
9625     written |= (1 << 3);
9626     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9627   }
9628 }
9629 }
9630
9631   abuf->written = written;
9632   return vpc;
9633 #undef FLD
9634 }
9635
9636 /* fbulelr: fbulelr$pack $FCCi_2,$hint */
9637
9638 static SEM_PC
9639 SEM_FN_NAME (frvbf,fbulelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9640 {
9641 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9642   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9643   int UNUSED written = 0;
9644   IADDR UNUSED pc = abuf->addr;
9645   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9646
9647 {
9648 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9649 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))))) {
9650   {
9651     USI opval = GET_H_SPR (((UINT) 272));
9652     sim_queue_pc_write (current_cpu, opval);
9653     written |= (1 << 3);
9654     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9655   }
9656 }
9657 }
9658
9659   abuf->written = written;
9660   return vpc;
9661 #undef FLD
9662 }
9663
9664 /* fbulr: fbulr$pack $FCCi_2,$hint */
9665
9666 static SEM_PC
9667 SEM_FN_NAME (frvbf,fbulr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9668 {
9669 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9670   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9671   int UNUSED written = 0;
9672   IADDR UNUSED pc = abuf->addr;
9673   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9674
9675 {
9676 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9677 if (TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1))) {
9678   {
9679     USI opval = GET_H_SPR (((UINT) 272));
9680     sim_queue_pc_write (current_cpu, opval);
9681     written |= (1 << 3);
9682     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9683   }
9684 }
9685 }
9686
9687   abuf->written = written;
9688   return vpc;
9689 #undef FLD
9690 }
9691
9692 /* fbolr: fbolr$pack $FCCi_2,$hint */
9693
9694 static SEM_PC
9695 SEM_FN_NAME (frvbf,fbolr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9696 {
9697 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9698   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9699   int UNUSED written = 0;
9700   IADDR UNUSED pc = abuf->addr;
9701   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9702
9703 {
9704 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9705 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))))) {
9706   {
9707     USI opval = GET_H_SPR (((UINT) 272));
9708     sim_queue_pc_write (current_cpu, opval);
9709     written |= (1 << 3);
9710     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9711   }
9712 }
9713 }
9714
9715   abuf->written = written;
9716   return vpc;
9717 #undef FLD
9718 }
9719
9720 /* bcralr: bcralr$pack $ccond$hint_taken */
9721
9722 static SEM_PC
9723 SEM_FN_NAME (frvbf,bcralr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9724 {
9725 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9726   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9727   int UNUSED written = 0;
9728   IADDR UNUSED pc = abuf->addr;
9729   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9730
9731 {
9732 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9733 {
9734   SI tmp_tmp;
9735   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
9736   {
9737     USI opval = tmp_tmp;
9738     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
9739     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
9740   }
9741 if (EQSI (FLD (f_ccond), 0)) {
9742 if (NESI (tmp_tmp, 0)) {
9743   {
9744     USI opval = GET_H_SPR (((UINT) 272));
9745     sim_queue_pc_write (current_cpu, opval);
9746     written |= (1 << 5);
9747     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9748   }
9749 }
9750 } else {
9751 if (EQSI (tmp_tmp, 0)) {
9752   {
9753     USI opval = GET_H_SPR (((UINT) 272));
9754     sim_queue_pc_write (current_cpu, opval);
9755     written |= (1 << 5);
9756     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9757   }
9758 }
9759 }
9760 }
9761 }
9762
9763   abuf->written = written;
9764   return vpc;
9765 #undef FLD
9766 }
9767
9768 /* bcnolr: bcnolr$pack$hint_not_taken */
9769
9770 static SEM_PC
9771 SEM_FN_NAME (frvbf,bcnolr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9772 {
9773 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9774   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9775   int UNUSED written = 0;
9776   IADDR UNUSED pc = abuf->addr;
9777   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9778
9779 {
9780 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9781 {
9782   SI tmp_tmp;
9783   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
9784   {
9785     USI opval = tmp_tmp;
9786     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
9787     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
9788   }
9789 ((void) 0); /*nop*/
9790 }
9791 }
9792
9793   return vpc;
9794 #undef FLD
9795 }
9796
9797 /* bceqlr: bceqlr$pack $ICCi_2,$ccond,$hint */
9798
9799 static SEM_PC
9800 SEM_FN_NAME (frvbf,bceqlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9801 {
9802 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9803   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9804   int UNUSED written = 0;
9805   IADDR UNUSED pc = abuf->addr;
9806   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9807
9808 {
9809 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9810 {
9811   SI tmp_tmp;
9812   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
9813   {
9814     USI opval = tmp_tmp;
9815     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
9816     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
9817   }
9818 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2))) {
9819 if (EQSI (FLD (f_ccond), 0)) {
9820 if (NESI (tmp_tmp, 0)) {
9821   {
9822     USI opval = GET_H_SPR (((UINT) 272));
9823     sim_queue_pc_write (current_cpu, opval);
9824     written |= (1 << 6);
9825     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9826   }
9827 }
9828 } else {
9829 if (EQSI (tmp_tmp, 0)) {
9830   {
9831     USI opval = GET_H_SPR (((UINT) 272));
9832     sim_queue_pc_write (current_cpu, opval);
9833     written |= (1 << 6);
9834     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9835   }
9836 }
9837 }
9838 }
9839 }
9840 }
9841
9842   abuf->written = written;
9843   return vpc;
9844 #undef FLD
9845 }
9846
9847 /* bcnelr: bcnelr$pack $ICCi_2,$ccond,$hint */
9848
9849 static SEM_PC
9850 SEM_FN_NAME (frvbf,bcnelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9851 {
9852 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9853   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9854   int UNUSED written = 0;
9855   IADDR UNUSED pc = abuf->addr;
9856   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9857
9858 {
9859 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9860 {
9861   SI tmp_tmp;
9862   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
9863   {
9864     USI opval = tmp_tmp;
9865     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
9866     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
9867   }
9868 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)))) {
9869 if (EQSI (FLD (f_ccond), 0)) {
9870 if (NESI (tmp_tmp, 0)) {
9871   {
9872     USI opval = GET_H_SPR (((UINT) 272));
9873     sim_queue_pc_write (current_cpu, opval);
9874     written |= (1 << 6);
9875     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9876   }
9877 }
9878 } else {
9879 if (EQSI (tmp_tmp, 0)) {
9880   {
9881     USI opval = GET_H_SPR (((UINT) 272));
9882     sim_queue_pc_write (current_cpu, opval);
9883     written |= (1 << 6);
9884     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9885   }
9886 }
9887 }
9888 }
9889 }
9890 }
9891
9892   abuf->written = written;
9893   return vpc;
9894 #undef FLD
9895 }
9896
9897 /* bclelr: bclelr$pack $ICCi_2,$ccond,$hint */
9898
9899 static SEM_PC
9900 SEM_FN_NAME (frvbf,bclelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9901 {
9902 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9903   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9904   int UNUSED written = 0;
9905   IADDR UNUSED pc = abuf->addr;
9906   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9907
9908 {
9909 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9910 {
9911   SI tmp_tmp;
9912   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
9913   {
9914     USI opval = tmp_tmp;
9915     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
9916     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
9917   }
9918 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))))) {
9919 if (EQSI (FLD (f_ccond), 0)) {
9920 if (NESI (tmp_tmp, 0)) {
9921   {
9922     USI opval = GET_H_SPR (((UINT) 272));
9923     sim_queue_pc_write (current_cpu, opval);
9924     written |= (1 << 6);
9925     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9926   }
9927 }
9928 } else {
9929 if (EQSI (tmp_tmp, 0)) {
9930   {
9931     USI opval = GET_H_SPR (((UINT) 272));
9932     sim_queue_pc_write (current_cpu, opval);
9933     written |= (1 << 6);
9934     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9935   }
9936 }
9937 }
9938 }
9939 }
9940 }
9941
9942   abuf->written = written;
9943   return vpc;
9944 #undef FLD
9945 }
9946
9947 /* bcgtlr: bcgtlr$pack $ICCi_2,$ccond,$hint */
9948
9949 static SEM_PC
9950 SEM_FN_NAME (frvbf,bcgtlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9951 {
9952 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9953   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9954   int UNUSED written = 0;
9955   IADDR UNUSED pc = abuf->addr;
9956   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9957
9958 {
9959 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9960 {
9961   SI tmp_tmp;
9962   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
9963   {
9964     USI opval = tmp_tmp;
9965     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
9966     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
9967   }
9968 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)))))) {
9969 if (EQSI (FLD (f_ccond), 0)) {
9970 if (NESI (tmp_tmp, 0)) {
9971   {
9972     USI opval = GET_H_SPR (((UINT) 272));
9973     sim_queue_pc_write (current_cpu, opval);
9974     written |= (1 << 6);
9975     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9976   }
9977 }
9978 } else {
9979 if (EQSI (tmp_tmp, 0)) {
9980   {
9981     USI opval = GET_H_SPR (((UINT) 272));
9982     sim_queue_pc_write (current_cpu, opval);
9983     written |= (1 << 6);
9984     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9985   }
9986 }
9987 }
9988 }
9989 }
9990 }
9991
9992   abuf->written = written;
9993   return vpc;
9994 #undef FLD
9995 }
9996
9997 /* bcltlr: bcltlr$pack $ICCi_2,$ccond,$hint */
9998
9999 static SEM_PC
10000 SEM_FN_NAME (frvbf,bcltlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10001 {
10002 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10003   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10004   int UNUSED written = 0;
10005   IADDR UNUSED pc = abuf->addr;
10006   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10007
10008 {
10009 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10010 {
10011   SI tmp_tmp;
10012   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10013   {
10014     USI opval = tmp_tmp;
10015     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10016     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10017   }
10018 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)))) {
10019 if (EQSI (FLD (f_ccond), 0)) {
10020 if (NESI (tmp_tmp, 0)) {
10021   {
10022     USI opval = GET_H_SPR (((UINT) 272));
10023     sim_queue_pc_write (current_cpu, opval);
10024     written |= (1 << 6);
10025     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10026   }
10027 }
10028 } else {
10029 if (EQSI (tmp_tmp, 0)) {
10030   {
10031     USI opval = GET_H_SPR (((UINT) 272));
10032     sim_queue_pc_write (current_cpu, opval);
10033     written |= (1 << 6);
10034     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10035   }
10036 }
10037 }
10038 }
10039 }
10040 }
10041
10042   abuf->written = written;
10043   return vpc;
10044 #undef FLD
10045 }
10046
10047 /* bcgelr: bcgelr$pack $ICCi_2,$ccond,$hint */
10048
10049 static SEM_PC
10050 SEM_FN_NAME (frvbf,bcgelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10051 {
10052 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10053   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10054   int UNUSED written = 0;
10055   IADDR UNUSED pc = abuf->addr;
10056   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10057
10058 {
10059 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10060 {
10061   SI tmp_tmp;
10062   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10063   {
10064     USI opval = tmp_tmp;
10065     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10066     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10067   }
10068 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))))) {
10069 if (EQSI (FLD (f_ccond), 0)) {
10070 if (NESI (tmp_tmp, 0)) {
10071   {
10072     USI opval = GET_H_SPR (((UINT) 272));
10073     sim_queue_pc_write (current_cpu, opval);
10074     written |= (1 << 6);
10075     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10076   }
10077 }
10078 } else {
10079 if (EQSI (tmp_tmp, 0)) {
10080   {
10081     USI opval = GET_H_SPR (((UINT) 272));
10082     sim_queue_pc_write (current_cpu, opval);
10083     written |= (1 << 6);
10084     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10085   }
10086 }
10087 }
10088 }
10089 }
10090 }
10091
10092   abuf->written = written;
10093   return vpc;
10094 #undef FLD
10095 }
10096
10097 /* bclslr: bclslr$pack $ICCi_2,$ccond,$hint */
10098
10099 static SEM_PC
10100 SEM_FN_NAME (frvbf,bclslr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10101 {
10102 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10103   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10104   int UNUSED written = 0;
10105   IADDR UNUSED pc = abuf->addr;
10106   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10107
10108 {
10109 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10110 {
10111   SI tmp_tmp;
10112   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10113   {
10114     USI opval = tmp_tmp;
10115     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10116     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10117   }
10118 if (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)))) {
10119 if (EQSI (FLD (f_ccond), 0)) {
10120 if (NESI (tmp_tmp, 0)) {
10121   {
10122     USI opval = GET_H_SPR (((UINT) 272));
10123     sim_queue_pc_write (current_cpu, opval);
10124     written |= (1 << 6);
10125     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10126   }
10127 }
10128 } else {
10129 if (EQSI (tmp_tmp, 0)) {
10130   {
10131     USI opval = GET_H_SPR (((UINT) 272));
10132     sim_queue_pc_write (current_cpu, opval);
10133     written |= (1 << 6);
10134     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10135   }
10136 }
10137 }
10138 }
10139 }
10140 }
10141
10142   abuf->written = written;
10143   return vpc;
10144 #undef FLD
10145 }
10146
10147 /* bchilr: bchilr$pack $ICCi_2,$ccond,$hint */
10148
10149 static SEM_PC
10150 SEM_FN_NAME (frvbf,bchilr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10151 {
10152 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10153   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10154   int UNUSED written = 0;
10155   IADDR UNUSED pc = abuf->addr;
10156   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10157
10158 {
10159 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10160 {
10161   SI tmp_tmp;
10162   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10163   {
10164     USI opval = tmp_tmp;
10165     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10166     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10167   }
10168 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))))) {
10169 if (EQSI (FLD (f_ccond), 0)) {
10170 if (NESI (tmp_tmp, 0)) {
10171   {
10172     USI opval = GET_H_SPR (((UINT) 272));
10173     sim_queue_pc_write (current_cpu, opval);
10174     written |= (1 << 6);
10175     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10176   }
10177 }
10178 } else {
10179 if (EQSI (tmp_tmp, 0)) {
10180   {
10181     USI opval = GET_H_SPR (((UINT) 272));
10182     sim_queue_pc_write (current_cpu, opval);
10183     written |= (1 << 6);
10184     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10185   }
10186 }
10187 }
10188 }
10189 }
10190 }
10191
10192   abuf->written = written;
10193   return vpc;
10194 #undef FLD
10195 }
10196
10197 /* bcclr: bcclr$pack $ICCi_2,$ccond,$hint */
10198
10199 static SEM_PC
10200 SEM_FN_NAME (frvbf,bcclr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10201 {
10202 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10203   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10204   int UNUSED written = 0;
10205   IADDR UNUSED pc = abuf->addr;
10206   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10207
10208 {
10209 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10210 {
10211   SI tmp_tmp;
10212   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10213   {
10214     USI opval = tmp_tmp;
10215     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10216     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10217   }
10218 if (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1))) {
10219 if (EQSI (FLD (f_ccond), 0)) {
10220 if (NESI (tmp_tmp, 0)) {
10221   {
10222     USI opval = GET_H_SPR (((UINT) 272));
10223     sim_queue_pc_write (current_cpu, opval);
10224     written |= (1 << 6);
10225     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10226   }
10227 }
10228 } else {
10229 if (EQSI (tmp_tmp, 0)) {
10230   {
10231     USI opval = GET_H_SPR (((UINT) 272));
10232     sim_queue_pc_write (current_cpu, opval);
10233     written |= (1 << 6);
10234     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10235   }
10236 }
10237 }
10238 }
10239 }
10240 }
10241
10242   abuf->written = written;
10243   return vpc;
10244 #undef FLD
10245 }
10246
10247 /* bcnclr: bcnclr$pack $ICCi_2,$ccond,$hint */
10248
10249 static SEM_PC
10250 SEM_FN_NAME (frvbf,bcnclr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10251 {
10252 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10253   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10254   int UNUSED written = 0;
10255   IADDR UNUSED pc = abuf->addr;
10256   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10257
10258 {
10259 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10260 {
10261   SI tmp_tmp;
10262   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10263   {
10264     USI opval = tmp_tmp;
10265     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10266     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10267   }
10268 if (NOTBI (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)))) {
10269 if (EQSI (FLD (f_ccond), 0)) {
10270 if (NESI (tmp_tmp, 0)) {
10271   {
10272     USI opval = GET_H_SPR (((UINT) 272));
10273     sim_queue_pc_write (current_cpu, opval);
10274     written |= (1 << 6);
10275     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10276   }
10277 }
10278 } else {
10279 if (EQSI (tmp_tmp, 0)) {
10280   {
10281     USI opval = GET_H_SPR (((UINT) 272));
10282     sim_queue_pc_write (current_cpu, opval);
10283     written |= (1 << 6);
10284     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10285   }
10286 }
10287 }
10288 }
10289 }
10290 }
10291
10292   abuf->written = written;
10293   return vpc;
10294 #undef FLD
10295 }
10296
10297 /* bcnlr: bcnlr$pack $ICCi_2,$ccond,$hint */
10298
10299 static SEM_PC
10300 SEM_FN_NAME (frvbf,bcnlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10301 {
10302 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10303   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10304   int UNUSED written = 0;
10305   IADDR UNUSED pc = abuf->addr;
10306   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10307
10308 {
10309 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10310 {
10311   SI tmp_tmp;
10312   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10313   {
10314     USI opval = tmp_tmp;
10315     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10316     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10317   }
10318 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3))) {
10319 if (EQSI (FLD (f_ccond), 0)) {
10320 if (NESI (tmp_tmp, 0)) {
10321   {
10322     USI opval = GET_H_SPR (((UINT) 272));
10323     sim_queue_pc_write (current_cpu, opval);
10324     written |= (1 << 6);
10325     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10326   }
10327 }
10328 } else {
10329 if (EQSI (tmp_tmp, 0)) {
10330   {
10331     USI opval = GET_H_SPR (((UINT) 272));
10332     sim_queue_pc_write (current_cpu, opval);
10333     written |= (1 << 6);
10334     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10335   }
10336 }
10337 }
10338 }
10339 }
10340 }
10341
10342   abuf->written = written;
10343   return vpc;
10344 #undef FLD
10345 }
10346
10347 /* bcplr: bcplr$pack $ICCi_2,$ccond,$hint */
10348
10349 static SEM_PC
10350 SEM_FN_NAME (frvbf,bcplr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10351 {
10352 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10353   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10354   int UNUSED written = 0;
10355   IADDR UNUSED pc = abuf->addr;
10356   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10357
10358 {
10359 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10360 {
10361   SI tmp_tmp;
10362   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10363   {
10364     USI opval = tmp_tmp;
10365     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10366     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10367   }
10368 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3)))) {
10369 if (EQSI (FLD (f_ccond), 0)) {
10370 if (NESI (tmp_tmp, 0)) {
10371   {
10372     USI opval = GET_H_SPR (((UINT) 272));
10373     sim_queue_pc_write (current_cpu, opval);
10374     written |= (1 << 6);
10375     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10376   }
10377 }
10378 } else {
10379 if (EQSI (tmp_tmp, 0)) {
10380   {
10381     USI opval = GET_H_SPR (((UINT) 272));
10382     sim_queue_pc_write (current_cpu, opval);
10383     written |= (1 << 6);
10384     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10385   }
10386 }
10387 }
10388 }
10389 }
10390 }
10391
10392   abuf->written = written;
10393   return vpc;
10394 #undef FLD
10395 }
10396
10397 /* bcvlr: bcvlr$pack $ICCi_2,$ccond,$hint */
10398
10399 static SEM_PC
10400 SEM_FN_NAME (frvbf,bcvlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10401 {
10402 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10403   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10404   int UNUSED written = 0;
10405   IADDR UNUSED pc = abuf->addr;
10406   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10407
10408 {
10409 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10410 {
10411   SI tmp_tmp;
10412   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10413   {
10414     USI opval = tmp_tmp;
10415     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10416     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10417   }
10418 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1))) {
10419 if (EQSI (FLD (f_ccond), 0)) {
10420 if (NESI (tmp_tmp, 0)) {
10421   {
10422     USI opval = GET_H_SPR (((UINT) 272));
10423     sim_queue_pc_write (current_cpu, opval);
10424     written |= (1 << 6);
10425     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10426   }
10427 }
10428 } else {
10429 if (EQSI (tmp_tmp, 0)) {
10430   {
10431     USI opval = GET_H_SPR (((UINT) 272));
10432     sim_queue_pc_write (current_cpu, opval);
10433     written |= (1 << 6);
10434     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10435   }
10436 }
10437 }
10438 }
10439 }
10440 }
10441
10442   abuf->written = written;
10443   return vpc;
10444 #undef FLD
10445 }
10446
10447 /* bcnvlr: bcnvlr$pack $ICCi_2,$ccond,$hint */
10448
10449 static SEM_PC
10450 SEM_FN_NAME (frvbf,bcnvlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10451 {
10452 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10453   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10454   int UNUSED written = 0;
10455   IADDR UNUSED pc = abuf->addr;
10456   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10457
10458 {
10459 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10460 {
10461   SI tmp_tmp;
10462   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10463   {
10464     USI opval = tmp_tmp;
10465     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10466     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10467   }
10468 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1)))) {
10469 if (EQSI (FLD (f_ccond), 0)) {
10470 if (NESI (tmp_tmp, 0)) {
10471   {
10472     USI opval = GET_H_SPR (((UINT) 272));
10473     sim_queue_pc_write (current_cpu, opval);
10474     written |= (1 << 6);
10475     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10476   }
10477 }
10478 } else {
10479 if (EQSI (tmp_tmp, 0)) {
10480   {
10481     USI opval = GET_H_SPR (((UINT) 272));
10482     sim_queue_pc_write (current_cpu, opval);
10483     written |= (1 << 6);
10484     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10485   }
10486 }
10487 }
10488 }
10489 }
10490 }
10491
10492   abuf->written = written;
10493   return vpc;
10494 #undef FLD
10495 }
10496
10497 /* fcbralr: fcbralr$pack $ccond$hint_taken */
10498
10499 static SEM_PC
10500 SEM_FN_NAME (frvbf,fcbralr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10501 {
10502 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10503   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10504   int UNUSED written = 0;
10505   IADDR UNUSED pc = abuf->addr;
10506   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10507
10508 {
10509 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10510 {
10511   SI tmp_tmp;
10512   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10513   {
10514     USI opval = tmp_tmp;
10515     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10516     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10517   }
10518 if (EQSI (FLD (f_ccond), 0)) {
10519 if (NESI (tmp_tmp, 0)) {
10520   {
10521     USI opval = GET_H_SPR (((UINT) 272));
10522     sim_queue_pc_write (current_cpu, opval);
10523     written |= (1 << 5);
10524     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10525   }
10526 }
10527 } else {
10528 if (EQSI (tmp_tmp, 0)) {
10529   {
10530     USI opval = GET_H_SPR (((UINT) 272));
10531     sim_queue_pc_write (current_cpu, opval);
10532     written |= (1 << 5);
10533     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10534   }
10535 }
10536 }
10537 }
10538 }
10539
10540   abuf->written = written;
10541   return vpc;
10542 #undef FLD
10543 }
10544
10545 /* fcbnolr: fcbnolr$pack$hint_not_taken */
10546
10547 static SEM_PC
10548 SEM_FN_NAME (frvbf,fcbnolr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10549 {
10550 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10551   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10552   int UNUSED written = 0;
10553   IADDR UNUSED pc = abuf->addr;
10554   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10555
10556 {
10557 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10558 {
10559   SI tmp_tmp;
10560   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10561   {
10562     USI opval = tmp_tmp;
10563     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10564     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10565   }
10566 ((void) 0); /*nop*/
10567 }
10568 }
10569
10570   return vpc;
10571 #undef FLD
10572 }
10573
10574 /* fcbeqlr: fcbeqlr$pack $FCCi_2,$ccond,$hint */
10575
10576 static SEM_PC
10577 SEM_FN_NAME (frvbf,fcbeqlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10578 {
10579 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10580   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10581   int UNUSED written = 0;
10582   IADDR UNUSED pc = abuf->addr;
10583   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10584
10585 {
10586 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10587 {
10588   SI tmp_tmp;
10589   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10590   {
10591     USI opval = tmp_tmp;
10592     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10593     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10594   }
10595 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3))) {
10596 if (EQSI (FLD (f_ccond), 0)) {
10597 if (NESI (tmp_tmp, 0)) {
10598   {
10599     USI opval = GET_H_SPR (((UINT) 272));
10600     sim_queue_pc_write (current_cpu, opval);
10601     written |= (1 << 6);
10602     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10603   }
10604 }
10605 } else {
10606 if (EQSI (tmp_tmp, 0)) {
10607   {
10608     USI opval = GET_H_SPR (((UINT) 272));
10609     sim_queue_pc_write (current_cpu, opval);
10610     written |= (1 << 6);
10611     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10612   }
10613 }
10614 }
10615 }
10616 }
10617 }
10618
10619   abuf->written = written;
10620   return vpc;
10621 #undef FLD
10622 }
10623
10624 /* fcbnelr: fcbnelr$pack $FCCi_2,$ccond,$hint */
10625
10626 static SEM_PC
10627 SEM_FN_NAME (frvbf,fcbnelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10628 {
10629 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10630   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10631   int UNUSED written = 0;
10632   IADDR UNUSED pc = abuf->addr;
10633   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10634
10635 {
10636 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10637 {
10638   SI tmp_tmp;
10639   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10640   {
10641     USI opval = tmp_tmp;
10642     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10643     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10644   }
10645 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))))) {
10646 if (EQSI (FLD (f_ccond), 0)) {
10647 if (NESI (tmp_tmp, 0)) {
10648   {
10649     USI opval = GET_H_SPR (((UINT) 272));
10650     sim_queue_pc_write (current_cpu, opval);
10651     written |= (1 << 6);
10652     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10653   }
10654 }
10655 } else {
10656 if (EQSI (tmp_tmp, 0)) {
10657   {
10658     USI opval = GET_H_SPR (((UINT) 272));
10659     sim_queue_pc_write (current_cpu, opval);
10660     written |= (1 << 6);
10661     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10662   }
10663 }
10664 }
10665 }
10666 }
10667 }
10668
10669   abuf->written = written;
10670   return vpc;
10671 #undef FLD
10672 }
10673
10674 /* fcblglr: fcblglr$pack $FCCi_2,$ccond,$hint */
10675
10676 static SEM_PC
10677 SEM_FN_NAME (frvbf,fcblglr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10678 {
10679 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10680   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10681   int UNUSED written = 0;
10682   IADDR UNUSED pc = abuf->addr;
10683   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10684
10685 {
10686 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10687 {
10688   SI tmp_tmp;
10689   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10690   {
10691     USI opval = tmp_tmp;
10692     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10693     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10694   }
10695 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)))) {
10696 if (EQSI (FLD (f_ccond), 0)) {
10697 if (NESI (tmp_tmp, 0)) {
10698   {
10699     USI opval = GET_H_SPR (((UINT) 272));
10700     sim_queue_pc_write (current_cpu, opval);
10701     written |= (1 << 6);
10702     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10703   }
10704 }
10705 } else {
10706 if (EQSI (tmp_tmp, 0)) {
10707   {
10708     USI opval = GET_H_SPR (((UINT) 272));
10709     sim_queue_pc_write (current_cpu, opval);
10710     written |= (1 << 6);
10711     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10712   }
10713 }
10714 }
10715 }
10716 }
10717 }
10718
10719   abuf->written = written;
10720   return vpc;
10721 #undef FLD
10722 }
10723
10724 /* fcbuelr: fcbuelr$pack $FCCi_2,$ccond,$hint */
10725
10726 static SEM_PC
10727 SEM_FN_NAME (frvbf,fcbuelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10728 {
10729 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10730   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10731   int UNUSED written = 0;
10732   IADDR UNUSED pc = abuf->addr;
10733   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10734
10735 {
10736 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10737 {
10738   SI tmp_tmp;
10739   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10740   {
10741     USI opval = tmp_tmp;
10742     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10743     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10744   }
10745 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
10746 if (EQSI (FLD (f_ccond), 0)) {
10747 if (NESI (tmp_tmp, 0)) {
10748   {
10749     USI opval = GET_H_SPR (((UINT) 272));
10750     sim_queue_pc_write (current_cpu, opval);
10751     written |= (1 << 6);
10752     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10753   }
10754 }
10755 } else {
10756 if (EQSI (tmp_tmp, 0)) {
10757   {
10758     USI opval = GET_H_SPR (((UINT) 272));
10759     sim_queue_pc_write (current_cpu, opval);
10760     written |= (1 << 6);
10761     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10762   }
10763 }
10764 }
10765 }
10766 }
10767 }
10768
10769   abuf->written = written;
10770   return vpc;
10771 #undef FLD
10772 }
10773
10774 /* fcbullr: fcbullr$pack $FCCi_2,$ccond,$hint */
10775
10776 static SEM_PC
10777 SEM_FN_NAME (frvbf,fcbullr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10778 {
10779 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10780   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10781   int UNUSED written = 0;
10782   IADDR UNUSED pc = abuf->addr;
10783   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10784
10785 {
10786 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10787 {
10788   SI tmp_tmp;
10789   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10790   {
10791     USI opval = tmp_tmp;
10792     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10793     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10794   }
10795 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
10796 if (EQSI (FLD (f_ccond), 0)) {
10797 if (NESI (tmp_tmp, 0)) {
10798   {
10799     USI opval = GET_H_SPR (((UINT) 272));
10800     sim_queue_pc_write (current_cpu, opval);
10801     written |= (1 << 6);
10802     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10803   }
10804 }
10805 } else {
10806 if (EQSI (tmp_tmp, 0)) {
10807   {
10808     USI opval = GET_H_SPR (((UINT) 272));
10809     sim_queue_pc_write (current_cpu, opval);
10810     written |= (1 << 6);
10811     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10812   }
10813 }
10814 }
10815 }
10816 }
10817 }
10818
10819   abuf->written = written;
10820   return vpc;
10821 #undef FLD
10822 }
10823
10824 /* fcbgelr: fcbgelr$pack $FCCi_2,$ccond,$hint */
10825
10826 static SEM_PC
10827 SEM_FN_NAME (frvbf,fcbgelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10828 {
10829 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10830   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10831   int UNUSED written = 0;
10832   IADDR UNUSED pc = abuf->addr;
10833   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10834
10835 {
10836 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10837 {
10838   SI tmp_tmp;
10839   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10840   {
10841     USI opval = tmp_tmp;
10842     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10843     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10844   }
10845 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)))) {
10846 if (EQSI (FLD (f_ccond), 0)) {
10847 if (NESI (tmp_tmp, 0)) {
10848   {
10849     USI opval = GET_H_SPR (((UINT) 272));
10850     sim_queue_pc_write (current_cpu, opval);
10851     written |= (1 << 6);
10852     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10853   }
10854 }
10855 } else {
10856 if (EQSI (tmp_tmp, 0)) {
10857   {
10858     USI opval = GET_H_SPR (((UINT) 272));
10859     sim_queue_pc_write (current_cpu, opval);
10860     written |= (1 << 6);
10861     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10862   }
10863 }
10864 }
10865 }
10866 }
10867 }
10868
10869   abuf->written = written;
10870   return vpc;
10871 #undef FLD
10872 }
10873
10874 /* fcbltlr: fcbltlr$pack $FCCi_2,$ccond,$hint */
10875
10876 static SEM_PC
10877 SEM_FN_NAME (frvbf,fcbltlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10878 {
10879 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10880   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10881   int UNUSED written = 0;
10882   IADDR UNUSED pc = abuf->addr;
10883   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10884
10885 {
10886 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10887 {
10888   SI tmp_tmp;
10889   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10890   {
10891     USI opval = tmp_tmp;
10892     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10893     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10894   }
10895 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2))) {
10896 if (EQSI (FLD (f_ccond), 0)) {
10897 if (NESI (tmp_tmp, 0)) {
10898   {
10899     USI opval = GET_H_SPR (((UINT) 272));
10900     sim_queue_pc_write (current_cpu, opval);
10901     written |= (1 << 6);
10902     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10903   }
10904 }
10905 } else {
10906 if (EQSI (tmp_tmp, 0)) {
10907   {
10908     USI opval = GET_H_SPR (((UINT) 272));
10909     sim_queue_pc_write (current_cpu, opval);
10910     written |= (1 << 6);
10911     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10912   }
10913 }
10914 }
10915 }
10916 }
10917 }
10918
10919   abuf->written = written;
10920   return vpc;
10921 #undef FLD
10922 }
10923
10924 /* fcbugelr: fcbugelr$pack $FCCi_2,$ccond,$hint */
10925
10926 static SEM_PC
10927 SEM_FN_NAME (frvbf,fcbugelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10928 {
10929 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10930   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10931   int UNUSED written = 0;
10932   IADDR UNUSED pc = abuf->addr;
10933   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10934
10935 {
10936 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10937 {
10938   SI tmp_tmp;
10939   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10940   {
10941     USI opval = tmp_tmp;
10942     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10943     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10944   }
10945 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))))) {
10946 if (EQSI (FLD (f_ccond), 0)) {
10947 if (NESI (tmp_tmp, 0)) {
10948   {
10949     USI opval = GET_H_SPR (((UINT) 272));
10950     sim_queue_pc_write (current_cpu, opval);
10951     written |= (1 << 6);
10952     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10953   }
10954 }
10955 } else {
10956 if (EQSI (tmp_tmp, 0)) {
10957   {
10958     USI opval = GET_H_SPR (((UINT) 272));
10959     sim_queue_pc_write (current_cpu, opval);
10960     written |= (1 << 6);
10961     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10962   }
10963 }
10964 }
10965 }
10966 }
10967 }
10968
10969   abuf->written = written;
10970   return vpc;
10971 #undef FLD
10972 }
10973
10974 /* fcbuglr: fcbuglr$pack $FCCi_2,$ccond,$hint */
10975
10976 static SEM_PC
10977 SEM_FN_NAME (frvbf,fcbuglr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10978 {
10979 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10980   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10981   int UNUSED written = 0;
10982   IADDR UNUSED pc = abuf->addr;
10983   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10984
10985 {
10986 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10987 {
10988   SI tmp_tmp;
10989   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10990   {
10991     USI opval = tmp_tmp;
10992     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10993     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10994   }
10995 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
10996 if (EQSI (FLD (f_ccond), 0)) {
10997 if (NESI (tmp_tmp, 0)) {
10998   {
10999     USI opval = GET_H_SPR (((UINT) 272));
11000     sim_queue_pc_write (current_cpu, opval);
11001     written |= (1 << 6);
11002     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11003   }
11004 }
11005 } else {
11006 if (EQSI (tmp_tmp, 0)) {
11007   {
11008     USI opval = GET_H_SPR (((UINT) 272));
11009     sim_queue_pc_write (current_cpu, opval);
11010     written |= (1 << 6);
11011     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11012   }
11013 }
11014 }
11015 }
11016 }
11017 }
11018
11019   abuf->written = written;
11020   return vpc;
11021 #undef FLD
11022 }
11023
11024 /* fcblelr: fcblelr$pack $FCCi_2,$ccond,$hint */
11025
11026 static SEM_PC
11027 SEM_FN_NAME (frvbf,fcblelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11028 {
11029 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
11030   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11031   int UNUSED written = 0;
11032   IADDR UNUSED pc = abuf->addr;
11033   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11034
11035 {
11036 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
11037 {
11038   SI tmp_tmp;
11039   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
11040   {
11041     USI opval = tmp_tmp;
11042     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
11043     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
11044   }
11045 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)))) {
11046 if (EQSI (FLD (f_ccond), 0)) {
11047 if (NESI (tmp_tmp, 0)) {
11048   {
11049     USI opval = GET_H_SPR (((UINT) 272));
11050     sim_queue_pc_write (current_cpu, opval);
11051     written |= (1 << 6);
11052     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11053   }
11054 }
11055 } else {
11056 if (EQSI (tmp_tmp, 0)) {
11057   {
11058     USI opval = GET_H_SPR (((UINT) 272));
11059     sim_queue_pc_write (current_cpu, opval);
11060     written |= (1 << 6);
11061     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11062   }
11063 }
11064 }
11065 }
11066 }
11067 }
11068
11069   abuf->written = written;
11070   return vpc;
11071 #undef FLD
11072 }
11073
11074 /* fcbgtlr: fcbgtlr$pack $FCCi_2,$ccond,$hint */
11075
11076 static SEM_PC
11077 SEM_FN_NAME (frvbf,fcbgtlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11078 {
11079 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
11080   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11081   int UNUSED written = 0;
11082   IADDR UNUSED pc = abuf->addr;
11083   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11084
11085 {
11086 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
11087 {
11088   SI tmp_tmp;
11089   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
11090   {
11091     USI opval = tmp_tmp;
11092     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
11093     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
11094   }
11095 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1))) {
11096 if (EQSI (FLD (f_ccond), 0)) {
11097 if (NESI (tmp_tmp, 0)) {
11098   {
11099     USI opval = GET_H_SPR (((UINT) 272));
11100     sim_queue_pc_write (current_cpu, opval);
11101     written |= (1 << 6);
11102     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11103   }
11104 }
11105 } else {
11106 if (EQSI (tmp_tmp, 0)) {
11107   {
11108     USI opval = GET_H_SPR (((UINT) 272));
11109     sim_queue_pc_write (current_cpu, opval);
11110     written |= (1 << 6);
11111     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11112   }
11113 }
11114 }
11115 }
11116 }
11117 }
11118
11119   abuf->written = written;
11120   return vpc;
11121 #undef FLD
11122 }
11123
11124 /* fcbulelr: fcbulelr$pack $FCCi_2,$ccond,$hint */
11125
11126 static SEM_PC
11127 SEM_FN_NAME (frvbf,fcbulelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11128 {
11129 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
11130   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11131   int UNUSED written = 0;
11132   IADDR UNUSED pc = abuf->addr;
11133   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11134
11135 {
11136 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
11137 {
11138   SI tmp_tmp;
11139   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
11140   {
11141     USI opval = tmp_tmp;
11142     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
11143     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
11144   }
11145 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))))) {
11146 if (EQSI (FLD (f_ccond), 0)) {
11147 if (NESI (tmp_tmp, 0)) {
11148   {
11149     USI opval = GET_H_SPR (((UINT) 272));
11150     sim_queue_pc_write (current_cpu, opval);
11151     written |= (1 << 6);
11152     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11153   }
11154 }
11155 } else {
11156 if (EQSI (tmp_tmp, 0)) {
11157   {
11158     USI opval = GET_H_SPR (((UINT) 272));
11159     sim_queue_pc_write (current_cpu, opval);
11160     written |= (1 << 6);
11161     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11162   }
11163 }
11164 }
11165 }
11166 }
11167 }
11168
11169   abuf->written = written;
11170   return vpc;
11171 #undef FLD
11172 }
11173
11174 /* fcbulr: fcbulr$pack $FCCi_2,$ccond,$hint */
11175
11176 static SEM_PC
11177 SEM_FN_NAME (frvbf,fcbulr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11178 {
11179 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
11180   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11181   int UNUSED written = 0;
11182   IADDR UNUSED pc = abuf->addr;
11183   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11184
11185 {
11186 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
11187 {
11188   SI tmp_tmp;
11189   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
11190   {
11191     USI opval = tmp_tmp;
11192     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
11193     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
11194   }
11195 if (TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1))) {
11196 if (EQSI (FLD (f_ccond), 0)) {
11197 if (NESI (tmp_tmp, 0)) {
11198   {
11199     USI opval = GET_H_SPR (((UINT) 272));
11200     sim_queue_pc_write (current_cpu, opval);
11201     written |= (1 << 6);
11202     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11203   }
11204 }
11205 } else {
11206 if (EQSI (tmp_tmp, 0)) {
11207   {
11208     USI opval = GET_H_SPR (((UINT) 272));
11209     sim_queue_pc_write (current_cpu, opval);
11210     written |= (1 << 6);
11211     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11212   }
11213 }
11214 }
11215 }
11216 }
11217 }
11218
11219   abuf->written = written;
11220   return vpc;
11221 #undef FLD
11222 }
11223
11224 /* fcbolr: fcbolr$pack $FCCi_2,$ccond,$hint */
11225
11226 static SEM_PC
11227 SEM_FN_NAME (frvbf,fcbolr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11228 {
11229 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
11230   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11231   int UNUSED written = 0;
11232   IADDR UNUSED pc = abuf->addr;
11233   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11234
11235 {
11236 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
11237 {
11238   SI tmp_tmp;
11239   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
11240   {
11241     USI opval = tmp_tmp;
11242     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
11243     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
11244   }
11245 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))))) {
11246 if (EQSI (FLD (f_ccond), 0)) {
11247 if (NESI (tmp_tmp, 0)) {
11248   {
11249     USI opval = GET_H_SPR (((UINT) 272));
11250     sim_queue_pc_write (current_cpu, opval);
11251     written |= (1 << 6);
11252     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11253   }
11254 }
11255 } else {
11256 if (EQSI (tmp_tmp, 0)) {
11257   {
11258     USI opval = GET_H_SPR (((UINT) 272));
11259     sim_queue_pc_write (current_cpu, opval);
11260     written |= (1 << 6);
11261     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11262   }
11263 }
11264 }
11265 }
11266 }
11267 }
11268
11269   abuf->written = written;
11270   return vpc;
11271 #undef FLD
11272 }
11273
11274 /* jmpl: jmpl$pack @($GRi,$GRj) */
11275
11276 static SEM_PC
11277 SEM_FN_NAME (frvbf,jmpl) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11278 {
11279 #define FLD(f) abuf->fields.sfmt_cjmpl.f
11280   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11281   int UNUSED written = 0;
11282   IADDR UNUSED pc = abuf->addr;
11283   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11284
11285 {
11286 if (EQSI (FLD (f_LI), 1)) {
11287 frvbf_set_write_next_vliw_addr_to_LR (current_cpu, 1);
11288 }
11289   {
11290     USI opval = ANDSI (ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), 0xfffffffc);
11291     sim_queue_pc_write (current_cpu, opval);
11292     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11293   }
11294 frvbf_model_branch (current_cpu, pc, 2);
11295 }
11296
11297   return vpc;
11298 #undef FLD
11299 }
11300
11301 /* calll: calll$pack $callann($GRi,$GRj) */
11302
11303 static SEM_PC
11304 SEM_FN_NAME (frvbf,calll) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11305 {
11306 #define FLD(f) abuf->fields.sfmt_cjmpl.f
11307   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11308   int UNUSED written = 0;
11309   IADDR UNUSED pc = abuf->addr;
11310   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11311
11312 {
11313 if (EQSI (FLD (f_LI), 1)) {
11314 frvbf_set_write_next_vliw_addr_to_LR (current_cpu, 1);
11315 }
11316   {
11317     USI opval = ANDSI (ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), 0xfffffffc);
11318     sim_queue_pc_write (current_cpu, opval);
11319     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11320   }
11321 frvbf_model_branch (current_cpu, pc, 2);
11322 }
11323
11324   return vpc;
11325 #undef FLD
11326 }
11327
11328 /* jmpil: jmpil$pack @($GRi,$s12) */
11329
11330 static SEM_PC
11331 SEM_FN_NAME (frvbf,jmpil) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11332 {
11333 #define FLD(f) abuf->fields.sfmt_jmpil.f
11334   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11335   int UNUSED written = 0;
11336   IADDR UNUSED pc = abuf->addr;
11337   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11338
11339 {
11340 if (EQSI (FLD (f_LI), 1)) {
11341 frvbf_set_write_next_vliw_addr_to_LR (current_cpu, 1);
11342 }
11343   {
11344     USI opval = ANDSI (ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)), 0xfffffffc);
11345     sim_queue_pc_write (current_cpu, opval);
11346     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11347   }
11348 frvbf_model_branch (current_cpu, pc, 2);
11349 }
11350
11351   return vpc;
11352 #undef FLD
11353 }
11354
11355 /* callil: callil$pack @($GRi,$s12) */
11356
11357 static SEM_PC
11358 SEM_FN_NAME (frvbf,callil) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11359 {
11360 #define FLD(f) abuf->fields.sfmt_jmpil.f
11361   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11362   int UNUSED written = 0;
11363   IADDR UNUSED pc = abuf->addr;
11364   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11365
11366 {
11367 if (EQSI (FLD (f_LI), 1)) {
11368 frvbf_set_write_next_vliw_addr_to_LR (current_cpu, 1);
11369 }
11370   {
11371     USI opval = ANDSI (ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)), 0xfffffffc);
11372     sim_queue_pc_write (current_cpu, opval);
11373     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11374   }
11375 frvbf_model_branch (current_cpu, pc, 2);
11376 }
11377
11378   return vpc;
11379 #undef FLD
11380 }
11381
11382 /* call: call$pack $label24 */
11383
11384 static SEM_PC
11385 SEM_FN_NAME (frvbf,call) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11386 {
11387 #define FLD(f) abuf->fields.sfmt_call.f
11388   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11389   int UNUSED written = 0;
11390   IADDR UNUSED pc = abuf->addr;
11391   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11392
11393 {
11394 frvbf_set_write_next_vliw_addr_to_LR (current_cpu, 1);
11395   {
11396     USI opval = FLD (i_label24);
11397     sim_queue_pc_write (current_cpu, opval);
11398     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11399   }
11400 frvbf_model_branch (current_cpu, pc, 2);
11401 }
11402
11403   return vpc;
11404 #undef FLD
11405 }
11406
11407 /* rett: rett$pack $debug */
11408
11409 static SEM_PC
11410 SEM_FN_NAME (frvbf,rett) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11411 {
11412 #define FLD(f) abuf->fields.sfmt_rett.f
11413   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11414   int UNUSED written = 0;
11415   IADDR UNUSED pc = abuf->addr;
11416   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11417
11418 {
11419   {
11420     USI opval = frv_rett (current_cpu, pc, FLD (f_debug));
11421     sim_queue_pc_write (current_cpu, opval);
11422     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11423   }
11424 frvbf_model_branch (current_cpu, pc, 2);
11425 }
11426
11427   return vpc;
11428 #undef FLD
11429 }
11430
11431 /* rei: rei$pack $eir */
11432
11433 static SEM_PC
11434 SEM_FN_NAME (frvbf,rei) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11435 {
11436 #define FLD(f) abuf->fields.sfmt_empty.f
11437   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11438   int UNUSED written = 0;
11439   IADDR UNUSED pc = abuf->addr;
11440   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11441
11442 ((void) 0); /*nop*/
11443
11444   return vpc;
11445 #undef FLD
11446 }
11447
11448 /* tra: tra$pack $GRi,$GRj */
11449
11450 static SEM_PC
11451 SEM_FN_NAME (frvbf,tra) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11452 {
11453 #define FLD(f) abuf->fields.sfmt_ftne.f
11454   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11455   int UNUSED written = 0;
11456   IADDR UNUSED pc = abuf->addr;
11457   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11458
11459 {
11460 ; /*clobber*/
11461 ; /*clobber*/
11462 ; /*clobber*/
11463 ; /*clobber*/
11464 if (NEBI (CPU (h_psr_esr), 0)) {
11465 {
11466 ; /*clobber*/
11467 ; /*clobber*/
11468 ; /*clobber*/
11469 ; /*clobber*/
11470 }
11471 }
11472 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11473 }
11474
11475   abuf->written = written;
11476   return vpc;
11477 #undef FLD
11478 }
11479
11480 /* tno: tno$pack */
11481
11482 static SEM_PC
11483 SEM_FN_NAME (frvbf,tno) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11484 {
11485 #define FLD(f) abuf->fields.sfmt_empty.f
11486   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11487   int UNUSED written = 0;
11488   IADDR UNUSED pc = abuf->addr;
11489   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11490
11491 ((void) 0); /*nop*/
11492
11493   return vpc;
11494 #undef FLD
11495 }
11496
11497 /* teq: teq$pack $ICCi_2,$GRi,$GRj */
11498
11499 static SEM_PC
11500 SEM_FN_NAME (frvbf,teq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11501 {
11502 #define FLD(f) abuf->fields.sfmt_teq.f
11503   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11504   int UNUSED written = 0;
11505   IADDR UNUSED pc = abuf->addr;
11506   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11507
11508 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2))) {
11509 {
11510 ; /*clobber*/
11511 ; /*clobber*/
11512 ; /*clobber*/
11513 ; /*clobber*/
11514 if (NEBI (CPU (h_psr_esr), 0)) {
11515 {
11516 ; /*clobber*/
11517 ; /*clobber*/
11518 ; /*clobber*/
11519 ; /*clobber*/
11520 }
11521 }
11522 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11523 }
11524 }
11525
11526   abuf->written = written;
11527   return vpc;
11528 #undef FLD
11529 }
11530
11531 /* tne: tne$pack $ICCi_2,$GRi,$GRj */
11532
11533 static SEM_PC
11534 SEM_FN_NAME (frvbf,tne) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11535 {
11536 #define FLD(f) abuf->fields.sfmt_teq.f
11537   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11538   int UNUSED written = 0;
11539   IADDR UNUSED pc = abuf->addr;
11540   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11541
11542 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)))) {
11543 {
11544 ; /*clobber*/
11545 ; /*clobber*/
11546 ; /*clobber*/
11547 ; /*clobber*/
11548 if (NEBI (CPU (h_psr_esr), 0)) {
11549 {
11550 ; /*clobber*/
11551 ; /*clobber*/
11552 ; /*clobber*/
11553 ; /*clobber*/
11554 }
11555 }
11556 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11557 }
11558 }
11559
11560   abuf->written = written;
11561   return vpc;
11562 #undef FLD
11563 }
11564
11565 /* tle: tle$pack $ICCi_2,$GRi,$GRj */
11566
11567 static SEM_PC
11568 SEM_FN_NAME (frvbf,tle) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11569 {
11570 #define FLD(f) abuf->fields.sfmt_teq.f
11571   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11572   int UNUSED written = 0;
11573   IADDR UNUSED pc = abuf->addr;
11574   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11575
11576 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))))) {
11577 {
11578 ; /*clobber*/
11579 ; /*clobber*/
11580 ; /*clobber*/
11581 ; /*clobber*/
11582 if (NEBI (CPU (h_psr_esr), 0)) {
11583 {
11584 ; /*clobber*/
11585 ; /*clobber*/
11586 ; /*clobber*/
11587 ; /*clobber*/
11588 }
11589 }
11590 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11591 }
11592 }
11593
11594   abuf->written = written;
11595   return vpc;
11596 #undef FLD
11597 }
11598
11599 /* tgt: tgt$pack $ICCi_2,$GRi,$GRj */
11600
11601 static SEM_PC
11602 SEM_FN_NAME (frvbf,tgt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11603 {
11604 #define FLD(f) abuf->fields.sfmt_teq.f
11605   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11606   int UNUSED written = 0;
11607   IADDR UNUSED pc = abuf->addr;
11608   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11609
11610 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)))))) {
11611 {
11612 ; /*clobber*/
11613 ; /*clobber*/
11614 ; /*clobber*/
11615 ; /*clobber*/
11616 if (NEBI (CPU (h_psr_esr), 0)) {
11617 {
11618 ; /*clobber*/
11619 ; /*clobber*/
11620 ; /*clobber*/
11621 ; /*clobber*/
11622 }
11623 }
11624 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11625 }
11626 }
11627
11628   abuf->written = written;
11629   return vpc;
11630 #undef FLD
11631 }
11632
11633 /* tlt: tlt$pack $ICCi_2,$GRi,$GRj */
11634
11635 static SEM_PC
11636 SEM_FN_NAME (frvbf,tlt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11637 {
11638 #define FLD(f) abuf->fields.sfmt_teq.f
11639   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11640   int UNUSED written = 0;
11641   IADDR UNUSED pc = abuf->addr;
11642   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11643
11644 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)))) {
11645 {
11646 ; /*clobber*/
11647 ; /*clobber*/
11648 ; /*clobber*/
11649 ; /*clobber*/
11650 if (NEBI (CPU (h_psr_esr), 0)) {
11651 {
11652 ; /*clobber*/
11653 ; /*clobber*/
11654 ; /*clobber*/
11655 ; /*clobber*/
11656 }
11657 }
11658 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11659 }
11660 }
11661
11662   abuf->written = written;
11663   return vpc;
11664 #undef FLD
11665 }
11666
11667 /* tge: tge$pack $ICCi_2,$GRi,$GRj */
11668
11669 static SEM_PC
11670 SEM_FN_NAME (frvbf,tge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11671 {
11672 #define FLD(f) abuf->fields.sfmt_teq.f
11673   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11674   int UNUSED written = 0;
11675   IADDR UNUSED pc = abuf->addr;
11676   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11677
11678 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))))) {
11679 {
11680 ; /*clobber*/
11681 ; /*clobber*/
11682 ; /*clobber*/
11683 ; /*clobber*/
11684 if (NEBI (CPU (h_psr_esr), 0)) {
11685 {
11686 ; /*clobber*/
11687 ; /*clobber*/
11688 ; /*clobber*/
11689 ; /*clobber*/
11690 }
11691 }
11692 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11693 }
11694 }
11695
11696   abuf->written = written;
11697   return vpc;
11698 #undef FLD
11699 }
11700
11701 /* tls: tls$pack $ICCi_2,$GRi,$GRj */
11702
11703 static SEM_PC
11704 SEM_FN_NAME (frvbf,tls) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11705 {
11706 #define FLD(f) abuf->fields.sfmt_teq.f
11707   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11708   int UNUSED written = 0;
11709   IADDR UNUSED pc = abuf->addr;
11710   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11711
11712 if (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)))) {
11713 {
11714 ; /*clobber*/
11715 ; /*clobber*/
11716 ; /*clobber*/
11717 ; /*clobber*/
11718 if (NEBI (CPU (h_psr_esr), 0)) {
11719 {
11720 ; /*clobber*/
11721 ; /*clobber*/
11722 ; /*clobber*/
11723 ; /*clobber*/
11724 }
11725 }
11726 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11727 }
11728 }
11729
11730   abuf->written = written;
11731   return vpc;
11732 #undef FLD
11733 }
11734
11735 /* thi: thi$pack $ICCi_2,$GRi,$GRj */
11736
11737 static SEM_PC
11738 SEM_FN_NAME (frvbf,thi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11739 {
11740 #define FLD(f) abuf->fields.sfmt_teq.f
11741   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11742   int UNUSED written = 0;
11743   IADDR UNUSED pc = abuf->addr;
11744   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11745
11746 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))))) {
11747 {
11748 ; /*clobber*/
11749 ; /*clobber*/
11750 ; /*clobber*/
11751 ; /*clobber*/
11752 if (NEBI (CPU (h_psr_esr), 0)) {
11753 {
11754 ; /*clobber*/
11755 ; /*clobber*/
11756 ; /*clobber*/
11757 ; /*clobber*/
11758 }
11759 }
11760 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11761 }
11762 }
11763
11764   abuf->written = written;
11765   return vpc;
11766 #undef FLD
11767 }
11768
11769 /* tc: tc$pack $ICCi_2,$GRi,$GRj */
11770
11771 static SEM_PC
11772 SEM_FN_NAME (frvbf,tc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11773 {
11774 #define FLD(f) abuf->fields.sfmt_teq.f
11775   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11776   int UNUSED written = 0;
11777   IADDR UNUSED pc = abuf->addr;
11778   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11779
11780 if (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1))) {
11781 {
11782 ; /*clobber*/
11783 ; /*clobber*/
11784 ; /*clobber*/
11785 ; /*clobber*/
11786 if (NEBI (CPU (h_psr_esr), 0)) {
11787 {
11788 ; /*clobber*/
11789 ; /*clobber*/
11790 ; /*clobber*/
11791 ; /*clobber*/
11792 }
11793 }
11794 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11795 }
11796 }
11797
11798   abuf->written = written;
11799   return vpc;
11800 #undef FLD
11801 }
11802
11803 /* tnc: tnc$pack $ICCi_2,$GRi,$GRj */
11804
11805 static SEM_PC
11806 SEM_FN_NAME (frvbf,tnc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11807 {
11808 #define FLD(f) abuf->fields.sfmt_teq.f
11809   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11810   int UNUSED written = 0;
11811   IADDR UNUSED pc = abuf->addr;
11812   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11813
11814 if (NOTBI (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)))) {
11815 {
11816 ; /*clobber*/
11817 ; /*clobber*/
11818 ; /*clobber*/
11819 ; /*clobber*/
11820 if (NEBI (CPU (h_psr_esr), 0)) {
11821 {
11822 ; /*clobber*/
11823 ; /*clobber*/
11824 ; /*clobber*/
11825 ; /*clobber*/
11826 }
11827 }
11828 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11829 }
11830 }
11831
11832   abuf->written = written;
11833   return vpc;
11834 #undef FLD
11835 }
11836
11837 /* tn: tn$pack $ICCi_2,$GRi,$GRj */
11838
11839 static SEM_PC
11840 SEM_FN_NAME (frvbf,tn) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11841 {
11842 #define FLD(f) abuf->fields.sfmt_teq.f
11843   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11844   int UNUSED written = 0;
11845   IADDR UNUSED pc = abuf->addr;
11846   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11847
11848 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3))) {
11849 {
11850 ; /*clobber*/
11851 ; /*clobber*/
11852 ; /*clobber*/
11853 ; /*clobber*/
11854 if (NEBI (CPU (h_psr_esr), 0)) {
11855 {
11856 ; /*clobber*/
11857 ; /*clobber*/
11858 ; /*clobber*/
11859 ; /*clobber*/
11860 }
11861 }
11862 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11863 }
11864 }
11865
11866   abuf->written = written;
11867   return vpc;
11868 #undef FLD
11869 }
11870
11871 /* tp: tp$pack $ICCi_2,$GRi,$GRj */
11872
11873 static SEM_PC
11874 SEM_FN_NAME (frvbf,tp) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11875 {
11876 #define FLD(f) abuf->fields.sfmt_teq.f
11877   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11878   int UNUSED written = 0;
11879   IADDR UNUSED pc = abuf->addr;
11880   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11881
11882 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3)))) {
11883 {
11884 ; /*clobber*/
11885 ; /*clobber*/
11886 ; /*clobber*/
11887 ; /*clobber*/
11888 if (NEBI (CPU (h_psr_esr), 0)) {
11889 {
11890 ; /*clobber*/
11891 ; /*clobber*/
11892 ; /*clobber*/
11893 ; /*clobber*/
11894 }
11895 }
11896 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11897 }
11898 }
11899
11900   abuf->written = written;
11901   return vpc;
11902 #undef FLD
11903 }
11904
11905 /* tv: tv$pack $ICCi_2,$GRi,$GRj */
11906
11907 static SEM_PC
11908 SEM_FN_NAME (frvbf,tv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11909 {
11910 #define FLD(f) abuf->fields.sfmt_teq.f
11911   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11912   int UNUSED written = 0;
11913   IADDR UNUSED pc = abuf->addr;
11914   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11915
11916 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1))) {
11917 {
11918 ; /*clobber*/
11919 ; /*clobber*/
11920 ; /*clobber*/
11921 ; /*clobber*/
11922 if (NEBI (CPU (h_psr_esr), 0)) {
11923 {
11924 ; /*clobber*/
11925 ; /*clobber*/
11926 ; /*clobber*/
11927 ; /*clobber*/
11928 }
11929 }
11930 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11931 }
11932 }
11933
11934   abuf->written = written;
11935   return vpc;
11936 #undef FLD
11937 }
11938
11939 /* tnv: tnv$pack $ICCi_2,$GRi,$GRj */
11940
11941 static SEM_PC
11942 SEM_FN_NAME (frvbf,tnv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11943 {
11944 #define FLD(f) abuf->fields.sfmt_teq.f
11945   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11946   int UNUSED written = 0;
11947   IADDR UNUSED pc = abuf->addr;
11948   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11949
11950 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1)))) {
11951 {
11952 ; /*clobber*/
11953 ; /*clobber*/
11954 ; /*clobber*/
11955 ; /*clobber*/
11956 if (NEBI (CPU (h_psr_esr), 0)) {
11957 {
11958 ; /*clobber*/
11959 ; /*clobber*/
11960 ; /*clobber*/
11961 ; /*clobber*/
11962 }
11963 }
11964 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11965 }
11966 }
11967
11968   abuf->written = written;
11969   return vpc;
11970 #undef FLD
11971 }
11972
11973 /* ftra: ftra$pack $GRi,$GRj */
11974
11975 static SEM_PC
11976 SEM_FN_NAME (frvbf,ftra) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11977 {
11978 #define FLD(f) abuf->fields.sfmt_ftne.f
11979   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11980   int UNUSED written = 0;
11981   IADDR UNUSED pc = abuf->addr;
11982   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11983
11984 {
11985 ; /*clobber*/
11986 ; /*clobber*/
11987 ; /*clobber*/
11988 ; /*clobber*/
11989 if (NEBI (CPU (h_psr_esr), 0)) {
11990 {
11991 ; /*clobber*/
11992 ; /*clobber*/
11993 ; /*clobber*/
11994 ; /*clobber*/
11995 }
11996 }
11997 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11998 }
11999
12000   abuf->written = written;
12001   return vpc;
12002 #undef FLD
12003 }
12004
12005 /* ftno: ftno$pack */
12006
12007 static SEM_PC
12008 SEM_FN_NAME (frvbf,ftno) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12009 {
12010 #define FLD(f) abuf->fields.sfmt_empty.f
12011   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12012   int UNUSED written = 0;
12013   IADDR UNUSED pc = abuf->addr;
12014   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12015
12016 ((void) 0); /*nop*/
12017
12018   return vpc;
12019 #undef FLD
12020 }
12021
12022 /* ftne: ftne$pack $FCCi_2,$GRi,$GRj */
12023
12024 static SEM_PC
12025 SEM_FN_NAME (frvbf,ftne) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12026 {
12027 #define FLD(f) abuf->fields.sfmt_ftne.f
12028   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12029   int UNUSED written = 0;
12030   IADDR UNUSED pc = abuf->addr;
12031   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12032
12033 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))))) {
12034 {
12035 ; /*clobber*/
12036 ; /*clobber*/
12037 ; /*clobber*/
12038 ; /*clobber*/
12039 if (NEBI (CPU (h_psr_esr), 0)) {
12040 {
12041 ; /*clobber*/
12042 ; /*clobber*/
12043 ; /*clobber*/
12044 ; /*clobber*/
12045 }
12046 }
12047 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12048 }
12049 }
12050
12051   abuf->written = written;
12052   return vpc;
12053 #undef FLD
12054 }
12055
12056 /* fteq: fteq$pack $FCCi_2,$GRi,$GRj */
12057
12058 static SEM_PC
12059 SEM_FN_NAME (frvbf,fteq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12060 {
12061 #define FLD(f) abuf->fields.sfmt_ftne.f
12062   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12063   int UNUSED written = 0;
12064   IADDR UNUSED pc = abuf->addr;
12065   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12066
12067 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3))) {
12068 {
12069 ; /*clobber*/
12070 ; /*clobber*/
12071 ; /*clobber*/
12072 ; /*clobber*/
12073 if (NEBI (CPU (h_psr_esr), 0)) {
12074 {
12075 ; /*clobber*/
12076 ; /*clobber*/
12077 ; /*clobber*/
12078 ; /*clobber*/
12079 }
12080 }
12081 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12082 }
12083 }
12084
12085   abuf->written = written;
12086   return vpc;
12087 #undef FLD
12088 }
12089
12090 /* ftlg: ftlg$pack $FCCi_2,$GRi,$GRj */
12091
12092 static SEM_PC
12093 SEM_FN_NAME (frvbf,ftlg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12094 {
12095 #define FLD(f) abuf->fields.sfmt_ftne.f
12096   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12097   int UNUSED written = 0;
12098   IADDR UNUSED pc = abuf->addr;
12099   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12100
12101 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)))) {
12102 {
12103 ; /*clobber*/
12104 ; /*clobber*/
12105 ; /*clobber*/
12106 ; /*clobber*/
12107 if (NEBI (CPU (h_psr_esr), 0)) {
12108 {
12109 ; /*clobber*/
12110 ; /*clobber*/
12111 ; /*clobber*/
12112 ; /*clobber*/
12113 }
12114 }
12115 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12116 }
12117 }
12118
12119   abuf->written = written;
12120   return vpc;
12121 #undef FLD
12122 }
12123
12124 /* ftue: ftue$pack $FCCi_2,$GRi,$GRj */
12125
12126 static SEM_PC
12127 SEM_FN_NAME (frvbf,ftue) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12128 {
12129 #define FLD(f) abuf->fields.sfmt_ftne.f
12130   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12131   int UNUSED written = 0;
12132   IADDR UNUSED pc = abuf->addr;
12133   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12134
12135 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
12136 {
12137 ; /*clobber*/
12138 ; /*clobber*/
12139 ; /*clobber*/
12140 ; /*clobber*/
12141 if (NEBI (CPU (h_psr_esr), 0)) {
12142 {
12143 ; /*clobber*/
12144 ; /*clobber*/
12145 ; /*clobber*/
12146 ; /*clobber*/
12147 }
12148 }
12149 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12150 }
12151 }
12152
12153   abuf->written = written;
12154   return vpc;
12155 #undef FLD
12156 }
12157
12158 /* ftul: ftul$pack $FCCi_2,$GRi,$GRj */
12159
12160 static SEM_PC
12161 SEM_FN_NAME (frvbf,ftul) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12162 {
12163 #define FLD(f) abuf->fields.sfmt_ftne.f
12164   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12165   int UNUSED written = 0;
12166   IADDR UNUSED pc = abuf->addr;
12167   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12168
12169 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
12170 {
12171 ; /*clobber*/
12172 ; /*clobber*/
12173 ; /*clobber*/
12174 ; /*clobber*/
12175 if (NEBI (CPU (h_psr_esr), 0)) {
12176 {
12177 ; /*clobber*/
12178 ; /*clobber*/
12179 ; /*clobber*/
12180 ; /*clobber*/
12181 }
12182 }
12183 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12184 }
12185 }
12186
12187   abuf->written = written;
12188   return vpc;
12189 #undef FLD
12190 }
12191
12192 /* ftge: ftge$pack $FCCi_2,$GRi,$GRj */
12193
12194 static SEM_PC
12195 SEM_FN_NAME (frvbf,ftge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12196 {
12197 #define FLD(f) abuf->fields.sfmt_ftne.f
12198   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12199   int UNUSED written = 0;
12200   IADDR UNUSED pc = abuf->addr;
12201   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12202
12203 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)))) {
12204 {
12205 ; /*clobber*/
12206 ; /*clobber*/
12207 ; /*clobber*/
12208 ; /*clobber*/
12209 if (NEBI (CPU (h_psr_esr), 0)) {
12210 {
12211 ; /*clobber*/
12212 ; /*clobber*/
12213 ; /*clobber*/
12214 ; /*clobber*/
12215 }
12216 }
12217 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12218 }
12219 }
12220
12221   abuf->written = written;
12222   return vpc;
12223 #undef FLD
12224 }
12225
12226 /* ftlt: ftlt$pack $FCCi_2,$GRi,$GRj */
12227
12228 static SEM_PC
12229 SEM_FN_NAME (frvbf,ftlt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12230 {
12231 #define FLD(f) abuf->fields.sfmt_ftne.f
12232   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12233   int UNUSED written = 0;
12234   IADDR UNUSED pc = abuf->addr;
12235   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12236
12237 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2))) {
12238 {
12239 ; /*clobber*/
12240 ; /*clobber*/
12241 ; /*clobber*/
12242 ; /*clobber*/
12243 if (NEBI (CPU (h_psr_esr), 0)) {
12244 {
12245 ; /*clobber*/
12246 ; /*clobber*/
12247 ; /*clobber*/
12248 ; /*clobber*/
12249 }
12250 }
12251 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12252 }
12253 }
12254
12255   abuf->written = written;
12256   return vpc;
12257 #undef FLD
12258 }
12259
12260 /* ftuge: ftuge$pack $FCCi_2,$GRi,$GRj */
12261
12262 static SEM_PC
12263 SEM_FN_NAME (frvbf,ftuge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12264 {
12265 #define FLD(f) abuf->fields.sfmt_ftne.f
12266   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12267   int UNUSED written = 0;
12268   IADDR UNUSED pc = abuf->addr;
12269   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12270
12271 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))))) {
12272 {
12273 ; /*clobber*/
12274 ; /*clobber*/
12275 ; /*clobber*/
12276 ; /*clobber*/
12277 if (NEBI (CPU (h_psr_esr), 0)) {
12278 {
12279 ; /*clobber*/
12280 ; /*clobber*/
12281 ; /*clobber*/
12282 ; /*clobber*/
12283 }
12284 }
12285 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12286 }
12287 }
12288
12289   abuf->written = written;
12290   return vpc;
12291 #undef FLD
12292 }
12293
12294 /* ftug: ftug$pack $FCCi_2,$GRi,$GRj */
12295
12296 static SEM_PC
12297 SEM_FN_NAME (frvbf,ftug) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12298 {
12299 #define FLD(f) abuf->fields.sfmt_ftne.f
12300   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12301   int UNUSED written = 0;
12302   IADDR UNUSED pc = abuf->addr;
12303   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12304
12305 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
12306 {
12307 ; /*clobber*/
12308 ; /*clobber*/
12309 ; /*clobber*/
12310 ; /*clobber*/
12311 if (NEBI (CPU (h_psr_esr), 0)) {
12312 {
12313 ; /*clobber*/
12314 ; /*clobber*/
12315 ; /*clobber*/
12316 ; /*clobber*/
12317 }
12318 }
12319 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12320 }
12321 }
12322
12323   abuf->written = written;
12324   return vpc;
12325 #undef FLD
12326 }
12327
12328 /* ftle: ftle$pack $FCCi_2,$GRi,$GRj */
12329
12330 static SEM_PC
12331 SEM_FN_NAME (frvbf,ftle) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12332 {
12333 #define FLD(f) abuf->fields.sfmt_ftne.f
12334   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12335   int UNUSED written = 0;
12336   IADDR UNUSED pc = abuf->addr;
12337   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12338
12339 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)))) {
12340 {
12341 ; /*clobber*/
12342 ; /*clobber*/
12343 ; /*clobber*/
12344 ; /*clobber*/
12345 if (NEBI (CPU (h_psr_esr), 0)) {
12346 {
12347 ; /*clobber*/
12348 ; /*clobber*/
12349 ; /*clobber*/
12350 ; /*clobber*/
12351 }
12352 }
12353 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12354 }
12355 }
12356
12357   abuf->written = written;
12358   return vpc;
12359 #undef FLD
12360 }
12361
12362 /* ftgt: ftgt$pack $FCCi_2,$GRi,$GRj */
12363
12364 static SEM_PC
12365 SEM_FN_NAME (frvbf,ftgt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12366 {
12367 #define FLD(f) abuf->fields.sfmt_ftne.f
12368   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12369   int UNUSED written = 0;
12370   IADDR UNUSED pc = abuf->addr;
12371   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12372
12373 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1))) {
12374 {
12375 ; /*clobber*/
12376 ; /*clobber*/
12377 ; /*clobber*/
12378 ; /*clobber*/
12379 if (NEBI (CPU (h_psr_esr), 0)) {
12380 {
12381 ; /*clobber*/
12382 ; /*clobber*/
12383 ; /*clobber*/
12384 ; /*clobber*/
12385 }
12386 }
12387 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12388 }
12389 }
12390
12391   abuf->written = written;
12392   return vpc;
12393 #undef FLD
12394 }
12395
12396 /* ftule: ftule$pack $FCCi_2,$GRi,$GRj */
12397
12398 static SEM_PC
12399 SEM_FN_NAME (frvbf,ftule) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12400 {
12401 #define FLD(f) abuf->fields.sfmt_ftne.f
12402   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12403   int UNUSED written = 0;
12404   IADDR UNUSED pc = abuf->addr;
12405   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12406
12407 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))))) {
12408 {
12409 ; /*clobber*/
12410 ; /*clobber*/
12411 ; /*clobber*/
12412 ; /*clobber*/
12413 if (NEBI (CPU (h_psr_esr), 0)) {
12414 {
12415 ; /*clobber*/
12416 ; /*clobber*/
12417 ; /*clobber*/
12418 ; /*clobber*/
12419 }
12420 }
12421 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12422 }
12423 }
12424
12425   abuf->written = written;
12426   return vpc;
12427 #undef FLD
12428 }
12429
12430 /* ftu: ftu$pack $FCCi_2,$GRi,$GRj */
12431
12432 static SEM_PC
12433 SEM_FN_NAME (frvbf,ftu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12434 {
12435 #define FLD(f) abuf->fields.sfmt_ftne.f
12436   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12437   int UNUSED written = 0;
12438   IADDR UNUSED pc = abuf->addr;
12439   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12440
12441 if (TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1))) {
12442 {
12443 ; /*clobber*/
12444 ; /*clobber*/
12445 ; /*clobber*/
12446 ; /*clobber*/
12447 if (NEBI (CPU (h_psr_esr), 0)) {
12448 {
12449 ; /*clobber*/
12450 ; /*clobber*/
12451 ; /*clobber*/
12452 ; /*clobber*/
12453 }
12454 }
12455 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12456 }
12457 }
12458
12459   abuf->written = written;
12460   return vpc;
12461 #undef FLD
12462 }
12463
12464 /* fto: fto$pack $FCCi_2,$GRi,$GRj */
12465
12466 static SEM_PC
12467 SEM_FN_NAME (frvbf,fto) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12468 {
12469 #define FLD(f) abuf->fields.sfmt_ftne.f
12470   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12471   int UNUSED written = 0;
12472   IADDR UNUSED pc = abuf->addr;
12473   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12474
12475 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))))) {
12476 {
12477 ; /*clobber*/
12478 ; /*clobber*/
12479 ; /*clobber*/
12480 ; /*clobber*/
12481 if (NEBI (CPU (h_psr_esr), 0)) {
12482 {
12483 ; /*clobber*/
12484 ; /*clobber*/
12485 ; /*clobber*/
12486 ; /*clobber*/
12487 }
12488 }
12489 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12490 }
12491 }
12492
12493   abuf->written = written;
12494   return vpc;
12495 #undef FLD
12496 }
12497
12498 /* tira: tira$pack $GRi,$s12 */
12499
12500 static SEM_PC
12501 SEM_FN_NAME (frvbf,tira) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12502 {
12503 #define FLD(f) abuf->fields.sfmt_ftine.f
12504   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12505   int UNUSED written = 0;
12506   IADDR UNUSED pc = abuf->addr;
12507   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12508
12509 {
12510 ; /*clobber*/
12511 ; /*clobber*/
12512 ; /*clobber*/
12513 ; /*clobber*/
12514 if (NEBI (CPU (h_psr_esr), 0)) {
12515 {
12516 ; /*clobber*/
12517 ; /*clobber*/
12518 ; /*clobber*/
12519 ; /*clobber*/
12520 }
12521 }
12522 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12523 }
12524
12525   abuf->written = written;
12526   return vpc;
12527 #undef FLD
12528 }
12529
12530 /* tino: tino$pack */
12531
12532 static SEM_PC
12533 SEM_FN_NAME (frvbf,tino) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12534 {
12535 #define FLD(f) abuf->fields.sfmt_empty.f
12536   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12537   int UNUSED written = 0;
12538   IADDR UNUSED pc = abuf->addr;
12539   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12540
12541 ((void) 0); /*nop*/
12542
12543   return vpc;
12544 #undef FLD
12545 }
12546
12547 /* tieq: tieq$pack $ICCi_2,$GRi,$s12 */
12548
12549 static SEM_PC
12550 SEM_FN_NAME (frvbf,tieq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12551 {
12552 #define FLD(f) abuf->fields.sfmt_tieq.f
12553   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12554   int UNUSED written = 0;
12555   IADDR UNUSED pc = abuf->addr;
12556   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12557
12558 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2))) {
12559 {
12560 ; /*clobber*/
12561 ; /*clobber*/
12562 ; /*clobber*/
12563 ; /*clobber*/
12564 if (NEBI (CPU (h_psr_esr), 0)) {
12565 {
12566 ; /*clobber*/
12567 ; /*clobber*/
12568 ; /*clobber*/
12569 ; /*clobber*/
12570 }
12571 }
12572 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12573 }
12574 }
12575
12576   abuf->written = written;
12577   return vpc;
12578 #undef FLD
12579 }
12580
12581 /* tine: tine$pack $ICCi_2,$GRi,$s12 */
12582
12583 static SEM_PC
12584 SEM_FN_NAME (frvbf,tine) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12585 {
12586 #define FLD(f) abuf->fields.sfmt_tieq.f
12587   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12588   int UNUSED written = 0;
12589   IADDR UNUSED pc = abuf->addr;
12590   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12591
12592 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)))) {
12593 {
12594 ; /*clobber*/
12595 ; /*clobber*/
12596 ; /*clobber*/
12597 ; /*clobber*/
12598 if (NEBI (CPU (h_psr_esr), 0)) {
12599 {
12600 ; /*clobber*/
12601 ; /*clobber*/
12602 ; /*clobber*/
12603 ; /*clobber*/
12604 }
12605 }
12606 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12607 }
12608 }
12609
12610   abuf->written = written;
12611   return vpc;
12612 #undef FLD
12613 }
12614
12615 /* tile: tile$pack $ICCi_2,$GRi,$s12 */
12616
12617 static SEM_PC
12618 SEM_FN_NAME (frvbf,tile) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12619 {
12620 #define FLD(f) abuf->fields.sfmt_tieq.f
12621   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12622   int UNUSED written = 0;
12623   IADDR UNUSED pc = abuf->addr;
12624   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12625
12626 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))))) {
12627 {
12628 ; /*clobber*/
12629 ; /*clobber*/
12630 ; /*clobber*/
12631 ; /*clobber*/
12632 if (NEBI (CPU (h_psr_esr), 0)) {
12633 {
12634 ; /*clobber*/
12635 ; /*clobber*/
12636 ; /*clobber*/
12637 ; /*clobber*/
12638 }
12639 }
12640 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12641 }
12642 }
12643
12644   abuf->written = written;
12645   return vpc;
12646 #undef FLD
12647 }
12648
12649 /* tigt: tigt$pack $ICCi_2,$GRi,$s12 */
12650
12651 static SEM_PC
12652 SEM_FN_NAME (frvbf,tigt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12653 {
12654 #define FLD(f) abuf->fields.sfmt_tieq.f
12655   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12656   int UNUSED written = 0;
12657   IADDR UNUSED pc = abuf->addr;
12658   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12659
12660 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)))))) {
12661 {
12662 ; /*clobber*/
12663 ; /*clobber*/
12664 ; /*clobber*/
12665 ; /*clobber*/
12666 if (NEBI (CPU (h_psr_esr), 0)) {
12667 {
12668 ; /*clobber*/
12669 ; /*clobber*/
12670 ; /*clobber*/
12671 ; /*clobber*/
12672 }
12673 }
12674 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12675 }
12676 }
12677
12678   abuf->written = written;
12679   return vpc;
12680 #undef FLD
12681 }
12682
12683 /* tilt: tilt$pack $ICCi_2,$GRi,$s12 */
12684
12685 static SEM_PC
12686 SEM_FN_NAME (frvbf,tilt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12687 {
12688 #define FLD(f) abuf->fields.sfmt_tieq.f
12689   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12690   int UNUSED written = 0;
12691   IADDR UNUSED pc = abuf->addr;
12692   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12693
12694 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)))) {
12695 {
12696 ; /*clobber*/
12697 ; /*clobber*/
12698 ; /*clobber*/
12699 ; /*clobber*/
12700 if (NEBI (CPU (h_psr_esr), 0)) {
12701 {
12702 ; /*clobber*/
12703 ; /*clobber*/
12704 ; /*clobber*/
12705 ; /*clobber*/
12706 }
12707 }
12708 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12709 }
12710 }
12711
12712   abuf->written = written;
12713   return vpc;
12714 #undef FLD
12715 }
12716
12717 /* tige: tige$pack $ICCi_2,$GRi,$s12 */
12718
12719 static SEM_PC
12720 SEM_FN_NAME (frvbf,tige) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12721 {
12722 #define FLD(f) abuf->fields.sfmt_tieq.f
12723   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12724   int UNUSED written = 0;
12725   IADDR UNUSED pc = abuf->addr;
12726   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12727
12728 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))))) {
12729 {
12730 ; /*clobber*/
12731 ; /*clobber*/
12732 ; /*clobber*/
12733 ; /*clobber*/
12734 if (NEBI (CPU (h_psr_esr), 0)) {
12735 {
12736 ; /*clobber*/
12737 ; /*clobber*/
12738 ; /*clobber*/
12739 ; /*clobber*/
12740 }
12741 }
12742 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12743 }
12744 }
12745
12746   abuf->written = written;
12747   return vpc;
12748 #undef FLD
12749 }
12750
12751 /* tils: tils$pack $ICCi_2,$GRi,$s12 */
12752
12753 static SEM_PC
12754 SEM_FN_NAME (frvbf,tils) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12755 {
12756 #define FLD(f) abuf->fields.sfmt_tieq.f
12757   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12758   int UNUSED written = 0;
12759   IADDR UNUSED pc = abuf->addr;
12760   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12761
12762 if (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)))) {
12763 {
12764 ; /*clobber*/
12765 ; /*clobber*/
12766 ; /*clobber*/
12767 ; /*clobber*/
12768 if (NEBI (CPU (h_psr_esr), 0)) {
12769 {
12770 ; /*clobber*/
12771 ; /*clobber*/
12772 ; /*clobber*/
12773 ; /*clobber*/
12774 }
12775 }
12776 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12777 }
12778 }
12779
12780   abuf->written = written;
12781   return vpc;
12782 #undef FLD
12783 }
12784
12785 /* tihi: tihi$pack $ICCi_2,$GRi,$s12 */
12786
12787 static SEM_PC
12788 SEM_FN_NAME (frvbf,tihi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12789 {
12790 #define FLD(f) abuf->fields.sfmt_tieq.f
12791   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12792   int UNUSED written = 0;
12793   IADDR UNUSED pc = abuf->addr;
12794   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12795
12796 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))))) {
12797 {
12798 ; /*clobber*/
12799 ; /*clobber*/
12800 ; /*clobber*/
12801 ; /*clobber*/
12802 if (NEBI (CPU (h_psr_esr), 0)) {
12803 {
12804 ; /*clobber*/
12805 ; /*clobber*/
12806 ; /*clobber*/
12807 ; /*clobber*/
12808 }
12809 }
12810 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12811 }
12812 }
12813
12814   abuf->written = written;
12815   return vpc;
12816 #undef FLD
12817 }
12818
12819 /* tic: tic$pack $ICCi_2,$GRi,$s12 */
12820
12821 static SEM_PC
12822 SEM_FN_NAME (frvbf,tic) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12823 {
12824 #define FLD(f) abuf->fields.sfmt_tieq.f
12825   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12826   int UNUSED written = 0;
12827   IADDR UNUSED pc = abuf->addr;
12828   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12829
12830 if (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1))) {
12831 {
12832 ; /*clobber*/
12833 ; /*clobber*/
12834 ; /*clobber*/
12835 ; /*clobber*/
12836 if (NEBI (CPU (h_psr_esr), 0)) {
12837 {
12838 ; /*clobber*/
12839 ; /*clobber*/
12840 ; /*clobber*/
12841 ; /*clobber*/
12842 }
12843 }
12844 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12845 }
12846 }
12847
12848   abuf->written = written;
12849   return vpc;
12850 #undef FLD
12851 }
12852
12853 /* tinc: tinc$pack $ICCi_2,$GRi,$s12 */
12854
12855 static SEM_PC
12856 SEM_FN_NAME (frvbf,tinc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12857 {
12858 #define FLD(f) abuf->fields.sfmt_tieq.f
12859   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12860   int UNUSED written = 0;
12861   IADDR UNUSED pc = abuf->addr;
12862   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12863
12864 if (NOTBI (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)))) {
12865 {
12866 ; /*clobber*/
12867 ; /*clobber*/
12868 ; /*clobber*/
12869 ; /*clobber*/
12870 if (NEBI (CPU (h_psr_esr), 0)) {
12871 {
12872 ; /*clobber*/
12873 ; /*clobber*/
12874 ; /*clobber*/
12875 ; /*clobber*/
12876 }
12877 }
12878 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12879 }
12880 }
12881
12882   abuf->written = written;
12883   return vpc;
12884 #undef FLD
12885 }
12886
12887 /* tin: tin$pack $ICCi_2,$GRi,$s12 */
12888
12889 static SEM_PC
12890 SEM_FN_NAME (frvbf,tin) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12891 {
12892 #define FLD(f) abuf->fields.sfmt_tieq.f
12893   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12894   int UNUSED written = 0;
12895   IADDR UNUSED pc = abuf->addr;
12896   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12897
12898 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3))) {
12899 {
12900 ; /*clobber*/
12901 ; /*clobber*/
12902 ; /*clobber*/
12903 ; /*clobber*/
12904 if (NEBI (CPU (h_psr_esr), 0)) {
12905 {
12906 ; /*clobber*/
12907 ; /*clobber*/
12908 ; /*clobber*/
12909 ; /*clobber*/
12910 }
12911 }
12912 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12913 }
12914 }
12915
12916   abuf->written = written;
12917   return vpc;
12918 #undef FLD
12919 }
12920
12921 /* tip: tip$pack $ICCi_2,$GRi,$s12 */
12922
12923 static SEM_PC
12924 SEM_FN_NAME (frvbf,tip) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12925 {
12926 #define FLD(f) abuf->fields.sfmt_tieq.f
12927   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12928   int UNUSED written = 0;
12929   IADDR UNUSED pc = abuf->addr;
12930   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12931
12932 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3)))) {
12933 {
12934 ; /*clobber*/
12935 ; /*clobber*/
12936 ; /*clobber*/
12937 ; /*clobber*/
12938 if (NEBI (CPU (h_psr_esr), 0)) {
12939 {
12940 ; /*clobber*/
12941 ; /*clobber*/
12942 ; /*clobber*/
12943 ; /*clobber*/
12944 }
12945 }
12946 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12947 }
12948 }
12949
12950   abuf->written = written;
12951   return vpc;
12952 #undef FLD
12953 }
12954
12955 /* tiv: tiv$pack $ICCi_2,$GRi,$s12 */
12956
12957 static SEM_PC
12958 SEM_FN_NAME (frvbf,tiv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12959 {
12960 #define FLD(f) abuf->fields.sfmt_tieq.f
12961   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12962   int UNUSED written = 0;
12963   IADDR UNUSED pc = abuf->addr;
12964   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12965
12966 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1))) {
12967 {
12968 ; /*clobber*/
12969 ; /*clobber*/
12970 ; /*clobber*/
12971 ; /*clobber*/
12972 if (NEBI (CPU (h_psr_esr), 0)) {
12973 {
12974 ; /*clobber*/
12975 ; /*clobber*/
12976 ; /*clobber*/
12977 ; /*clobber*/
12978 }
12979 }
12980 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12981 }
12982 }
12983
12984   abuf->written = written;
12985   return vpc;
12986 #undef FLD
12987 }
12988
12989 /* tinv: tinv$pack $ICCi_2,$GRi,$s12 */
12990
12991 static SEM_PC
12992 SEM_FN_NAME (frvbf,tinv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12993 {
12994 #define FLD(f) abuf->fields.sfmt_tieq.f
12995   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12996   int UNUSED written = 0;
12997   IADDR UNUSED pc = abuf->addr;
12998   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12999
13000 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1)))) {
13001 {
13002 ; /*clobber*/
13003 ; /*clobber*/
13004 ; /*clobber*/
13005 ; /*clobber*/
13006 if (NEBI (CPU (h_psr_esr), 0)) {
13007 {
13008 ; /*clobber*/
13009 ; /*clobber*/
13010 ; /*clobber*/
13011 ; /*clobber*/
13012 }
13013 }
13014 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13015 }
13016 }
13017
13018   abuf->written = written;
13019   return vpc;
13020 #undef FLD
13021 }
13022
13023 /* ftira: ftira$pack $GRi,$s12 */
13024
13025 static SEM_PC
13026 SEM_FN_NAME (frvbf,ftira) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13027 {
13028 #define FLD(f) abuf->fields.sfmt_ftine.f
13029   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13030   int UNUSED written = 0;
13031   IADDR UNUSED pc = abuf->addr;
13032   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13033
13034 {
13035 ; /*clobber*/
13036 ; /*clobber*/
13037 ; /*clobber*/
13038 ; /*clobber*/
13039 if (NEBI (CPU (h_psr_esr), 0)) {
13040 {
13041 ; /*clobber*/
13042 ; /*clobber*/
13043 ; /*clobber*/
13044 ; /*clobber*/
13045 }
13046 }
13047 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13048 }
13049
13050   abuf->written = written;
13051   return vpc;
13052 #undef FLD
13053 }
13054
13055 /* ftino: ftino$pack */
13056
13057 static SEM_PC
13058 SEM_FN_NAME (frvbf,ftino) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13059 {
13060 #define FLD(f) abuf->fields.sfmt_empty.f
13061   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13062   int UNUSED written = 0;
13063   IADDR UNUSED pc = abuf->addr;
13064   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13065
13066 ((void) 0); /*nop*/
13067
13068   return vpc;
13069 #undef FLD
13070 }
13071
13072 /* ftine: ftine$pack $FCCi_2,$GRi,$s12 */
13073
13074 static SEM_PC
13075 SEM_FN_NAME (frvbf,ftine) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13076 {
13077 #define FLD(f) abuf->fields.sfmt_ftine.f
13078   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13079   int UNUSED written = 0;
13080   IADDR UNUSED pc = abuf->addr;
13081   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13082
13083 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))))) {
13084 {
13085 ; /*clobber*/
13086 ; /*clobber*/
13087 ; /*clobber*/
13088 ; /*clobber*/
13089 if (NEBI (CPU (h_psr_esr), 0)) {
13090 {
13091 ; /*clobber*/
13092 ; /*clobber*/
13093 ; /*clobber*/
13094 ; /*clobber*/
13095 }
13096 }
13097 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13098 }
13099 }
13100
13101   abuf->written = written;
13102   return vpc;
13103 #undef FLD
13104 }
13105
13106 /* ftieq: ftieq$pack $FCCi_2,$GRi,$s12 */
13107
13108 static SEM_PC
13109 SEM_FN_NAME (frvbf,ftieq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13110 {
13111 #define FLD(f) abuf->fields.sfmt_ftine.f
13112   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13113   int UNUSED written = 0;
13114   IADDR UNUSED pc = abuf->addr;
13115   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13116
13117 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3))) {
13118 {
13119 ; /*clobber*/
13120 ; /*clobber*/
13121 ; /*clobber*/
13122 ; /*clobber*/
13123 if (NEBI (CPU (h_psr_esr), 0)) {
13124 {
13125 ; /*clobber*/
13126 ; /*clobber*/
13127 ; /*clobber*/
13128 ; /*clobber*/
13129 }
13130 }
13131 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13132 }
13133 }
13134
13135   abuf->written = written;
13136   return vpc;
13137 #undef FLD
13138 }
13139
13140 /* ftilg: ftilg$pack $FCCi_2,$GRi,$s12 */
13141
13142 static SEM_PC
13143 SEM_FN_NAME (frvbf,ftilg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13144 {
13145 #define FLD(f) abuf->fields.sfmt_ftine.f
13146   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13147   int UNUSED written = 0;
13148   IADDR UNUSED pc = abuf->addr;
13149   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13150
13151 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)))) {
13152 {
13153 ; /*clobber*/
13154 ; /*clobber*/
13155 ; /*clobber*/
13156 ; /*clobber*/
13157 if (NEBI (CPU (h_psr_esr), 0)) {
13158 {
13159 ; /*clobber*/
13160 ; /*clobber*/
13161 ; /*clobber*/
13162 ; /*clobber*/
13163 }
13164 }
13165 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13166 }
13167 }
13168
13169   abuf->written = written;
13170   return vpc;
13171 #undef FLD
13172 }
13173
13174 /* ftiue: ftiue$pack $FCCi_2,$GRi,$s12 */
13175
13176 static SEM_PC
13177 SEM_FN_NAME (frvbf,ftiue) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13178 {
13179 #define FLD(f) abuf->fields.sfmt_ftine.f
13180   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13181   int UNUSED written = 0;
13182   IADDR UNUSED pc = abuf->addr;
13183   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13184
13185 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
13186 {
13187 ; /*clobber*/
13188 ; /*clobber*/
13189 ; /*clobber*/
13190 ; /*clobber*/
13191 if (NEBI (CPU (h_psr_esr), 0)) {
13192 {
13193 ; /*clobber*/
13194 ; /*clobber*/
13195 ; /*clobber*/
13196 ; /*clobber*/
13197 }
13198 }
13199 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13200 }
13201 }
13202
13203   abuf->written = written;
13204   return vpc;
13205 #undef FLD
13206 }
13207
13208 /* ftiul: ftiul$pack $FCCi_2,$GRi,$s12 */
13209
13210 static SEM_PC
13211 SEM_FN_NAME (frvbf,ftiul) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13212 {
13213 #define FLD(f) abuf->fields.sfmt_ftine.f
13214   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13215   int UNUSED written = 0;
13216   IADDR UNUSED pc = abuf->addr;
13217   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13218
13219 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
13220 {
13221 ; /*clobber*/
13222 ; /*clobber*/
13223 ; /*clobber*/
13224 ; /*clobber*/
13225 if (NEBI (CPU (h_psr_esr), 0)) {
13226 {
13227 ; /*clobber*/
13228 ; /*clobber*/
13229 ; /*clobber*/
13230 ; /*clobber*/
13231 }
13232 }
13233 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13234 }
13235 }
13236
13237   abuf->written = written;
13238   return vpc;
13239 #undef FLD
13240 }
13241
13242 /* ftige: ftige$pack $FCCi_2,$GRi,$s12 */
13243
13244 static SEM_PC
13245 SEM_FN_NAME (frvbf,ftige) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13246 {
13247 #define FLD(f) abuf->fields.sfmt_ftine.f
13248   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13249   int UNUSED written = 0;
13250   IADDR UNUSED pc = abuf->addr;
13251   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13252
13253 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)))) {
13254 {
13255 ; /*clobber*/
13256 ; /*clobber*/
13257 ; /*clobber*/
13258 ; /*clobber*/
13259 if (NEBI (CPU (h_psr_esr), 0)) {
13260 {
13261 ; /*clobber*/
13262 ; /*clobber*/
13263 ; /*clobber*/
13264 ; /*clobber*/
13265 }
13266 }
13267 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13268 }
13269 }
13270
13271   abuf->written = written;
13272   return vpc;
13273 #undef FLD
13274 }
13275
13276 /* ftilt: ftilt$pack $FCCi_2,$GRi,$s12 */
13277
13278 static SEM_PC
13279 SEM_FN_NAME (frvbf,ftilt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13280 {
13281 #define FLD(f) abuf->fields.sfmt_ftine.f
13282   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13283   int UNUSED written = 0;
13284   IADDR UNUSED pc = abuf->addr;
13285   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13286
13287 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2))) {
13288 {
13289 ; /*clobber*/
13290 ; /*clobber*/
13291 ; /*clobber*/
13292 ; /*clobber*/
13293 if (NEBI (CPU (h_psr_esr), 0)) {
13294 {
13295 ; /*clobber*/
13296 ; /*clobber*/
13297 ; /*clobber*/
13298 ; /*clobber*/
13299 }
13300 }
13301 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13302 }
13303 }
13304
13305   abuf->written = written;
13306   return vpc;
13307 #undef FLD
13308 }
13309
13310 /* ftiuge: ftiuge$pack $FCCi_2,$GRi,$s12 */
13311
13312 static SEM_PC
13313 SEM_FN_NAME (frvbf,ftiuge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13314 {
13315 #define FLD(f) abuf->fields.sfmt_ftine.f
13316   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13317   int UNUSED written = 0;
13318   IADDR UNUSED pc = abuf->addr;
13319   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13320
13321 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))))) {
13322 {
13323 ; /*clobber*/
13324 ; /*clobber*/
13325 ; /*clobber*/
13326 ; /*clobber*/
13327 if (NEBI (CPU (h_psr_esr), 0)) {
13328 {
13329 ; /*clobber*/
13330 ; /*clobber*/
13331 ; /*clobber*/
13332 ; /*clobber*/
13333 }
13334 }
13335 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13336 }
13337 }
13338
13339   abuf->written = written;
13340   return vpc;
13341 #undef FLD
13342 }
13343
13344 /* ftiug: ftiug$pack $FCCi_2,$GRi,$s12 */
13345
13346 static SEM_PC
13347 SEM_FN_NAME (frvbf,ftiug) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13348 {
13349 #define FLD(f) abuf->fields.sfmt_ftine.f
13350   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13351   int UNUSED written = 0;
13352   IADDR UNUSED pc = abuf->addr;
13353   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13354
13355 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
13356 {
13357 ; /*clobber*/
13358 ; /*clobber*/
13359 ; /*clobber*/
13360 ; /*clobber*/
13361 if (NEBI (CPU (h_psr_esr), 0)) {
13362 {
13363 ; /*clobber*/
13364 ; /*clobber*/
13365 ; /*clobber*/
13366 ; /*clobber*/
13367 }
13368 }
13369 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13370 }
13371 }
13372
13373   abuf->written = written;
13374   return vpc;
13375 #undef FLD
13376 }
13377
13378 /* ftile: ftile$pack $FCCi_2,$GRi,$s12 */
13379
13380 static SEM_PC
13381 SEM_FN_NAME (frvbf,ftile) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13382 {
13383 #define FLD(f) abuf->fields.sfmt_ftine.f
13384   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13385   int UNUSED written = 0;
13386   IADDR UNUSED pc = abuf->addr;
13387   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13388
13389 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)))) {
13390 {
13391 ; /*clobber*/
13392 ; /*clobber*/
13393 ; /*clobber*/
13394 ; /*clobber*/
13395 if (NEBI (CPU (h_psr_esr), 0)) {
13396 {
13397 ; /*clobber*/
13398 ; /*clobber*/
13399 ; /*clobber*/
13400 ; /*clobber*/
13401 }
13402 }
13403 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13404 }
13405 }
13406
13407   abuf->written = written;
13408   return vpc;
13409 #undef FLD
13410 }
13411
13412 /* ftigt: ftigt$pack $FCCi_2,$GRi,$s12 */
13413
13414 static SEM_PC
13415 SEM_FN_NAME (frvbf,ftigt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13416 {
13417 #define FLD(f) abuf->fields.sfmt_ftine.f
13418   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13419   int UNUSED written = 0;
13420   IADDR UNUSED pc = abuf->addr;
13421   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13422
13423 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1))) {
13424 {
13425 ; /*clobber*/
13426 ; /*clobber*/
13427 ; /*clobber*/
13428 ; /*clobber*/
13429 if (NEBI (CPU (h_psr_esr), 0)) {
13430 {
13431 ; /*clobber*/
13432 ; /*clobber*/
13433 ; /*clobber*/
13434 ; /*clobber*/
13435 }
13436 }
13437 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13438 }
13439 }
13440
13441   abuf->written = written;
13442   return vpc;
13443 #undef FLD
13444 }
13445
13446 /* ftiule: ftiule$pack $FCCi_2,$GRi,$s12 */
13447
13448 static SEM_PC
13449 SEM_FN_NAME (frvbf,ftiule) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13450 {
13451 #define FLD(f) abuf->fields.sfmt_ftine.f
13452   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13453   int UNUSED written = 0;
13454   IADDR UNUSED pc = abuf->addr;
13455   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13456
13457 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))))) {
13458 {
13459 ; /*clobber*/
13460 ; /*clobber*/
13461 ; /*clobber*/
13462 ; /*clobber*/
13463 if (NEBI (CPU (h_psr_esr), 0)) {
13464 {
13465 ; /*clobber*/
13466 ; /*clobber*/
13467 ; /*clobber*/
13468 ; /*clobber*/
13469 }
13470 }
13471 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13472 }
13473 }
13474
13475   abuf->written = written;
13476   return vpc;
13477 #undef FLD
13478 }
13479
13480 /* ftiu: ftiu$pack $FCCi_2,$GRi,$s12 */
13481
13482 static SEM_PC
13483 SEM_FN_NAME (frvbf,ftiu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13484 {
13485 #define FLD(f) abuf->fields.sfmt_ftine.f
13486   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13487   int UNUSED written = 0;
13488   IADDR UNUSED pc = abuf->addr;
13489   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13490
13491 if (TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1))) {
13492 {
13493 ; /*clobber*/
13494 ; /*clobber*/
13495 ; /*clobber*/
13496 ; /*clobber*/
13497 if (NEBI (CPU (h_psr_esr), 0)) {
13498 {
13499 ; /*clobber*/
13500 ; /*clobber*/
13501 ; /*clobber*/
13502 ; /*clobber*/
13503 }
13504 }
13505 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13506 }
13507 }
13508
13509   abuf->written = written;
13510   return vpc;
13511 #undef FLD
13512 }
13513
13514 /* ftio: ftio$pack $FCCi_2,$GRi,$s12 */
13515
13516 static SEM_PC
13517 SEM_FN_NAME (frvbf,ftio) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13518 {
13519 #define FLD(f) abuf->fields.sfmt_ftine.f
13520   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13521   int UNUSED written = 0;
13522   IADDR UNUSED pc = abuf->addr;
13523   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13524
13525 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))))) {
13526 {
13527 ; /*clobber*/
13528 ; /*clobber*/
13529 ; /*clobber*/
13530 ; /*clobber*/
13531 if (NEBI (CPU (h_psr_esr), 0)) {
13532 {
13533 ; /*clobber*/
13534 ; /*clobber*/
13535 ; /*clobber*/
13536 ; /*clobber*/
13537 }
13538 }
13539 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13540 }
13541 }
13542
13543   abuf->written = written;
13544   return vpc;
13545 #undef FLD
13546 }
13547
13548 /* break: break$pack */
13549
13550 static SEM_PC
13551 SEM_FN_NAME (frvbf,break) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13552 {
13553 #define FLD(f) abuf->fields.sfmt_break.f
13554   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13555   int UNUSED written = 0;
13556   IADDR UNUSED pc = abuf->addr;
13557   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13558
13559 {
13560 ; /*clobber*/
13561 ; /*clobber*/
13562 ; /*clobber*/
13563 ; /*clobber*/
13564 ; /*clobber*/
13565 ; /*clobber*/
13566 frv_break (current_cpu);
13567 }
13568
13569   return vpc;
13570 #undef FLD
13571 }
13572
13573 /* mtrap: mtrap$pack */
13574
13575 static SEM_PC
13576 SEM_FN_NAME (frvbf,mtrap) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13577 {
13578 #define FLD(f) abuf->fields.sfmt_empty.f
13579   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13580   int UNUSED written = 0;
13581   IADDR UNUSED pc = abuf->addr;
13582   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13583
13584 frv_mtrap (current_cpu);
13585
13586   return vpc;
13587 #undef FLD
13588 }
13589
13590 /* andcr: andcr$pack $CRi,$CRj,$CRk */
13591
13592 static SEM_PC
13593 SEM_FN_NAME (frvbf,andcr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13594 {
13595 #define FLD(f) abuf->fields.sfmt_andcr.f
13596   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13597   int UNUSED written = 0;
13598   IADDR UNUSED pc = abuf->addr;
13599   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13600
13601   {
13602     UQI opval = frvbf_cr_logic (current_cpu, 0, CPU (h_cccr[FLD (f_CRi)]), CPU (h_cccr[FLD (f_CRj)]));
13603     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRk)]), opval);
13604     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13605   }
13606
13607   return vpc;
13608 #undef FLD
13609 }
13610
13611 /* orcr: orcr$pack $CRi,$CRj,$CRk */
13612
13613 static SEM_PC
13614 SEM_FN_NAME (frvbf,orcr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13615 {
13616 #define FLD(f) abuf->fields.sfmt_andcr.f
13617   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13618   int UNUSED written = 0;
13619   IADDR UNUSED pc = abuf->addr;
13620   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13621
13622   {
13623     UQI opval = frvbf_cr_logic (current_cpu, 1, CPU (h_cccr[FLD (f_CRi)]), CPU (h_cccr[FLD (f_CRj)]));
13624     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRk)]), opval);
13625     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13626   }
13627
13628   return vpc;
13629 #undef FLD
13630 }
13631
13632 /* xorcr: xorcr$pack $CRi,$CRj,$CRk */
13633
13634 static SEM_PC
13635 SEM_FN_NAME (frvbf,xorcr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13636 {
13637 #define FLD(f) abuf->fields.sfmt_andcr.f
13638   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13639   int UNUSED written = 0;
13640   IADDR UNUSED pc = abuf->addr;
13641   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13642
13643   {
13644     UQI opval = frvbf_cr_logic (current_cpu, 2, CPU (h_cccr[FLD (f_CRi)]), CPU (h_cccr[FLD (f_CRj)]));
13645     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRk)]), opval);
13646     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13647   }
13648
13649   return vpc;
13650 #undef FLD
13651 }
13652
13653 /* nandcr: nandcr$pack $CRi,$CRj,$CRk */
13654
13655 static SEM_PC
13656 SEM_FN_NAME (frvbf,nandcr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13657 {
13658 #define FLD(f) abuf->fields.sfmt_andcr.f
13659   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13660   int UNUSED written = 0;
13661   IADDR UNUSED pc = abuf->addr;
13662   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13663
13664   {
13665     UQI opval = frvbf_cr_logic (current_cpu, 3, CPU (h_cccr[FLD (f_CRi)]), CPU (h_cccr[FLD (f_CRj)]));
13666     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRk)]), opval);
13667     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13668   }
13669
13670   return vpc;
13671 #undef FLD
13672 }
13673
13674 /* norcr: norcr$pack $CRi,$CRj,$CRk */
13675
13676 static SEM_PC
13677 SEM_FN_NAME (frvbf,norcr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13678 {
13679 #define FLD(f) abuf->fields.sfmt_andcr.f
13680   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13681   int UNUSED written = 0;
13682   IADDR UNUSED pc = abuf->addr;
13683   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13684
13685   {
13686     UQI opval = frvbf_cr_logic (current_cpu, 4, CPU (h_cccr[FLD (f_CRi)]), CPU (h_cccr[FLD (f_CRj)]));
13687     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRk)]), opval);
13688     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13689   }
13690
13691   return vpc;
13692 #undef FLD
13693 }
13694
13695 /* andncr: andncr$pack $CRi,$CRj,$CRk */
13696
13697 static SEM_PC
13698 SEM_FN_NAME (frvbf,andncr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13699 {
13700 #define FLD(f) abuf->fields.sfmt_andcr.f
13701   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13702   int UNUSED written = 0;
13703   IADDR UNUSED pc = abuf->addr;
13704   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13705
13706   {
13707     UQI opval = frvbf_cr_logic (current_cpu, 5, CPU (h_cccr[FLD (f_CRi)]), CPU (h_cccr[FLD (f_CRj)]));
13708     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRk)]), opval);
13709     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13710   }
13711
13712   return vpc;
13713 #undef FLD
13714 }
13715
13716 /* orncr: orncr$pack $CRi,$CRj,$CRk */
13717
13718 static SEM_PC
13719 SEM_FN_NAME (frvbf,orncr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13720 {
13721 #define FLD(f) abuf->fields.sfmt_andcr.f
13722   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13723   int UNUSED written = 0;
13724   IADDR UNUSED pc = abuf->addr;
13725   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13726
13727   {
13728     UQI opval = frvbf_cr_logic (current_cpu, 6, CPU (h_cccr[FLD (f_CRi)]), CPU (h_cccr[FLD (f_CRj)]));
13729     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRk)]), opval);
13730     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13731   }
13732
13733   return vpc;
13734 #undef FLD
13735 }
13736
13737 /* nandncr: nandncr$pack $CRi,$CRj,$CRk */
13738
13739 static SEM_PC
13740 SEM_FN_NAME (frvbf,nandncr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13741 {
13742 #define FLD(f) abuf->fields.sfmt_andcr.f
13743   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13744   int UNUSED written = 0;
13745   IADDR UNUSED pc = abuf->addr;
13746   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13747
13748   {
13749     UQI opval = frvbf_cr_logic (current_cpu, 7, CPU (h_cccr[FLD (f_CRi)]), CPU (h_cccr[FLD (f_CRj)]));
13750     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRk)]), opval);
13751     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13752   }
13753
13754   return vpc;
13755 #undef FLD
13756 }
13757
13758 /* norncr: norncr$pack $CRi,$CRj,$CRk */
13759
13760 static SEM_PC
13761 SEM_FN_NAME (frvbf,norncr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13762 {
13763 #define FLD(f) abuf->fields.sfmt_andcr.f
13764   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13765   int UNUSED written = 0;
13766   IADDR UNUSED pc = abuf->addr;
13767   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13768
13769   {
13770     UQI opval = frvbf_cr_logic (current_cpu, 8, CPU (h_cccr[FLD (f_CRi)]), CPU (h_cccr[FLD (f_CRj)]));
13771     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRk)]), opval);
13772     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13773   }
13774
13775   return vpc;
13776 #undef FLD
13777 }
13778
13779 /* notcr: notcr$pack $CRj,$CRk */
13780
13781 static SEM_PC
13782 SEM_FN_NAME (frvbf,notcr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13783 {
13784 #define FLD(f) abuf->fields.sfmt_andcr.f
13785   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13786   int UNUSED written = 0;
13787   IADDR UNUSED pc = abuf->addr;
13788   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13789
13790   {
13791     UQI opval = XORQI (CPU (h_cccr[FLD (f_CRj)]), 1);
13792     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRk)]), opval);
13793     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13794   }
13795
13796   return vpc;
13797 #undef FLD
13798 }
13799
13800 /* ckra: ckra$pack $CRj_int */
13801
13802 static SEM_PC
13803 SEM_FN_NAME (frvbf,ckra) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13804 {
13805 #define FLD(f) abuf->fields.sfmt_cckeq.f
13806   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13807   int UNUSED written = 0;
13808   IADDR UNUSED pc = abuf->addr;
13809   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13810
13811   {
13812     UQI opval = 3;
13813     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
13814     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13815   }
13816
13817   return vpc;
13818 #undef FLD
13819 }
13820
13821 /* ckno: ckno$pack $CRj_int */
13822
13823 static SEM_PC
13824 SEM_FN_NAME (frvbf,ckno) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13825 {
13826 #define FLD(f) abuf->fields.sfmt_cckeq.f
13827   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13828   int UNUSED written = 0;
13829   IADDR UNUSED pc = abuf->addr;
13830   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13831
13832   {
13833     UQI opval = 2;
13834     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
13835     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13836   }
13837
13838   return vpc;
13839 #undef FLD
13840 }
13841
13842 /* ckeq: ckeq$pack $ICCi_3,$CRj_int */
13843
13844 static SEM_PC
13845 SEM_FN_NAME (frvbf,ckeq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13846 {
13847 #define FLD(f) abuf->fields.sfmt_cckeq.f
13848   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13849   int UNUSED written = 0;
13850   IADDR UNUSED pc = abuf->addr;
13851   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13852
13853 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 4), 2))) {
13854   {
13855     UQI opval = 3;
13856     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
13857     written |= (1 << 1);
13858     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13859   }
13860 } else {
13861   {
13862     UQI opval = 2;
13863     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
13864     written |= (1 << 1);
13865     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13866   }
13867 }
13868
13869   abuf->written = written;
13870   return vpc;
13871 #undef FLD
13872 }
13873
13874 /* ckne: ckne$pack $ICCi_3,$CRj_int */
13875
13876 static SEM_PC
13877 SEM_FN_NAME (frvbf,ckne) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13878 {
13879 #define FLD(f) abuf->fields.sfmt_cckeq.f
13880   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13881   int UNUSED written = 0;
13882   IADDR UNUSED pc = abuf->addr;
13883   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13884
13885 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 4), 2)))) {
13886   {
13887     UQI opval = 3;
13888     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
13889     written |= (1 << 1);
13890     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13891   }
13892 } else {
13893   {
13894     UQI opval = 2;
13895     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
13896     written |= (1 << 1);
13897     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13898   }
13899 }
13900
13901   abuf->written = written;
13902   return vpc;
13903 #undef FLD
13904 }
13905
13906 /* ckle: ckle$pack $ICCi_3,$CRj_int */
13907
13908 static SEM_PC
13909 SEM_FN_NAME (frvbf,ckle) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13910 {
13911 #define FLD(f) abuf->fields.sfmt_cckeq.f
13912   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13913   int UNUSED written = 0;
13914   IADDR UNUSED pc = abuf->addr;
13915   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13916
13917 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))))) {
13918   {
13919     UQI opval = 3;
13920     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
13921     written |= (1 << 1);
13922     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13923   }
13924 } else {
13925   {
13926     UQI opval = 2;
13927     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
13928     written |= (1 << 1);
13929     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13930   }
13931 }
13932
13933   abuf->written = written;
13934   return vpc;
13935 #undef FLD
13936 }
13937
13938 /* ckgt: ckgt$pack $ICCi_3,$CRj_int */
13939
13940 static SEM_PC
13941 SEM_FN_NAME (frvbf,ckgt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13942 {
13943 #define FLD(f) abuf->fields.sfmt_cckeq.f
13944   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13945   int UNUSED written = 0;
13946   IADDR UNUSED pc = abuf->addr;
13947   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13948
13949 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)))))) {
13950   {
13951     UQI opval = 3;
13952     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
13953     written |= (1 << 1);
13954     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13955   }
13956 } else {
13957   {
13958     UQI opval = 2;
13959     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
13960     written |= (1 << 1);
13961     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13962   }
13963 }
13964
13965   abuf->written = written;
13966   return vpc;
13967 #undef FLD
13968 }
13969
13970 /* cklt: cklt$pack $ICCi_3,$CRj_int */
13971
13972 static SEM_PC
13973 SEM_FN_NAME (frvbf,cklt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13974 {
13975 #define FLD(f) abuf->fields.sfmt_cckeq.f
13976   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13977   int UNUSED written = 0;
13978   IADDR UNUSED pc = abuf->addr;
13979   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13980
13981 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)))) {
13982   {
13983     UQI opval = 3;
13984     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
13985     written |= (1 << 1);
13986     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13987   }
13988 } else {
13989   {
13990     UQI opval = 2;
13991     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
13992     written |= (1 << 1);
13993     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13994   }
13995 }
13996
13997   abuf->written = written;
13998   return vpc;
13999 #undef FLD
14000 }
14001
14002 /* ckge: ckge$pack $ICCi_3,$CRj_int */
14003
14004 static SEM_PC
14005 SEM_FN_NAME (frvbf,ckge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14006 {
14007 #define FLD(f) abuf->fields.sfmt_cckeq.f
14008   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14009   int UNUSED written = 0;
14010   IADDR UNUSED pc = abuf->addr;
14011   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14012
14013 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))))) {
14014   {
14015     UQI opval = 3;
14016     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14017     written |= (1 << 1);
14018     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14019   }
14020 } else {
14021   {
14022     UQI opval = 2;
14023     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14024     written |= (1 << 1);
14025     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14026   }
14027 }
14028
14029   abuf->written = written;
14030   return vpc;
14031 #undef FLD
14032 }
14033
14034 /* ckls: ckls$pack $ICCi_3,$CRj_int */
14035
14036 static SEM_PC
14037 SEM_FN_NAME (frvbf,ckls) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14038 {
14039 #define FLD(f) abuf->fields.sfmt_cckeq.f
14040   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14041   int UNUSED written = 0;
14042   IADDR UNUSED pc = abuf->addr;
14043   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14044
14045 if (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 4), 2)))) {
14046   {
14047     UQI opval = 3;
14048     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14049     written |= (1 << 1);
14050     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14051   }
14052 } else {
14053   {
14054     UQI opval = 2;
14055     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14056     written |= (1 << 1);
14057     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14058   }
14059 }
14060
14061   abuf->written = written;
14062   return vpc;
14063 #undef FLD
14064 }
14065
14066 /* ckhi: ckhi$pack $ICCi_3,$CRj_int */
14067
14068 static SEM_PC
14069 SEM_FN_NAME (frvbf,ckhi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14070 {
14071 #define FLD(f) abuf->fields.sfmt_cckeq.f
14072   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14073   int UNUSED written = 0;
14074   IADDR UNUSED pc = abuf->addr;
14075   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14076
14077 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))))) {
14078   {
14079     UQI opval = 3;
14080     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14081     written |= (1 << 1);
14082     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14083   }
14084 } else {
14085   {
14086     UQI opval = 2;
14087     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14088     written |= (1 << 1);
14089     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14090   }
14091 }
14092
14093   abuf->written = written;
14094   return vpc;
14095 #undef FLD
14096 }
14097
14098 /* ckc: ckc$pack $ICCi_3,$CRj_int */
14099
14100 static SEM_PC
14101 SEM_FN_NAME (frvbf,ckc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14102 {
14103 #define FLD(f) abuf->fields.sfmt_cckeq.f
14104   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14105   int UNUSED written = 0;
14106   IADDR UNUSED pc = abuf->addr;
14107   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14108
14109 if (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 1))) {
14110   {
14111     UQI opval = 3;
14112     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14113     written |= (1 << 1);
14114     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14115   }
14116 } else {
14117   {
14118     UQI opval = 2;
14119     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14120     written |= (1 << 1);
14121     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14122   }
14123 }
14124
14125   abuf->written = written;
14126   return vpc;
14127 #undef FLD
14128 }
14129
14130 /* cknc: cknc$pack $ICCi_3,$CRj_int */
14131
14132 static SEM_PC
14133 SEM_FN_NAME (frvbf,cknc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14134 {
14135 #define FLD(f) abuf->fields.sfmt_cckeq.f
14136   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14137   int UNUSED written = 0;
14138   IADDR UNUSED pc = abuf->addr;
14139   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14140
14141 if (NOTBI (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 1)))) {
14142   {
14143     UQI opval = 3;
14144     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14145     written |= (1 << 1);
14146     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14147   }
14148 } else {
14149   {
14150     UQI opval = 2;
14151     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14152     written |= (1 << 1);
14153     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14154   }
14155 }
14156
14157   abuf->written = written;
14158   return vpc;
14159 #undef FLD
14160 }
14161
14162 /* ckn: ckn$pack $ICCi_3,$CRj_int */
14163
14164 static SEM_PC
14165 SEM_FN_NAME (frvbf,ckn) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14166 {
14167 #define FLD(f) abuf->fields.sfmt_cckeq.f
14168   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14169   int UNUSED written = 0;
14170   IADDR UNUSED pc = abuf->addr;
14171   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14172
14173 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 8), 3))) {
14174   {
14175     UQI opval = 3;
14176     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14177     written |= (1 << 1);
14178     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14179   }
14180 } else {
14181   {
14182     UQI opval = 2;
14183     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14184     written |= (1 << 1);
14185     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14186   }
14187 }
14188
14189   abuf->written = written;
14190   return vpc;
14191 #undef FLD
14192 }
14193
14194 /* ckp: ckp$pack $ICCi_3,$CRj_int */
14195
14196 static SEM_PC
14197 SEM_FN_NAME (frvbf,ckp) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14198 {
14199 #define FLD(f) abuf->fields.sfmt_cckeq.f
14200   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14201   int UNUSED written = 0;
14202   IADDR UNUSED pc = abuf->addr;
14203   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14204
14205 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 8), 3)))) {
14206   {
14207     UQI opval = 3;
14208     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14209     written |= (1 << 1);
14210     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14211   }
14212 } else {
14213   {
14214     UQI opval = 2;
14215     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14216     written |= (1 << 1);
14217     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14218   }
14219 }
14220
14221   abuf->written = written;
14222   return vpc;
14223 #undef FLD
14224 }
14225
14226 /* ckv: ckv$pack $ICCi_3,$CRj_int */
14227
14228 static SEM_PC
14229 SEM_FN_NAME (frvbf,ckv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14230 {
14231 #define FLD(f) abuf->fields.sfmt_cckeq.f
14232   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14233   int UNUSED written = 0;
14234   IADDR UNUSED pc = abuf->addr;
14235   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14236
14237 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 2), 1))) {
14238   {
14239     UQI opval = 3;
14240     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14241     written |= (1 << 1);
14242     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14243   }
14244 } else {
14245   {
14246     UQI opval = 2;
14247     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14248     written |= (1 << 1);
14249     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14250   }
14251 }
14252
14253   abuf->written = written;
14254   return vpc;
14255 #undef FLD
14256 }
14257
14258 /* cknv: cknv$pack $ICCi_3,$CRj_int */
14259
14260 static SEM_PC
14261 SEM_FN_NAME (frvbf,cknv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14262 {
14263 #define FLD(f) abuf->fields.sfmt_cckeq.f
14264   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14265   int UNUSED written = 0;
14266   IADDR UNUSED pc = abuf->addr;
14267   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14268
14269 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 2), 1)))) {
14270   {
14271     UQI opval = 3;
14272     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14273     written |= (1 << 1);
14274     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14275   }
14276 } else {
14277   {
14278     UQI opval = 2;
14279     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14280     written |= (1 << 1);
14281     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14282   }
14283 }
14284
14285   abuf->written = written;
14286   return vpc;
14287 #undef FLD
14288 }
14289
14290 /* fckra: fckra$pack $CRj_float */
14291
14292 static SEM_PC
14293 SEM_FN_NAME (frvbf,fckra) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14294 {
14295 #define FLD(f) abuf->fields.sfmt_cfckne.f
14296   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14297   int UNUSED written = 0;
14298   IADDR UNUSED pc = abuf->addr;
14299   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14300
14301   {
14302     UQI opval = 3;
14303     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14304     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14305   }
14306
14307   return vpc;
14308 #undef FLD
14309 }
14310
14311 /* fckno: fckno$pack $CRj_float */
14312
14313 static SEM_PC
14314 SEM_FN_NAME (frvbf,fckno) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14315 {
14316 #define FLD(f) abuf->fields.sfmt_cfckne.f
14317   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14318   int UNUSED written = 0;
14319   IADDR UNUSED pc = abuf->addr;
14320   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14321
14322   {
14323     UQI opval = 2;
14324     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14325     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14326   }
14327
14328   return vpc;
14329 #undef FLD
14330 }
14331
14332 /* fckne: fckne$pack $FCCi_3,$CRj_float */
14333
14334 static SEM_PC
14335 SEM_FN_NAME (frvbf,fckne) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14336 {
14337 #define FLD(f) abuf->fields.sfmt_cfckne.f
14338   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14339   int UNUSED written = 0;
14340   IADDR UNUSED pc = abuf->addr;
14341   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14342
14343 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))))) {
14344   {
14345     UQI opval = 3;
14346     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14347     written |= (1 << 1);
14348     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14349   }
14350 } else {
14351   {
14352     UQI opval = 2;
14353     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14354     written |= (1 << 1);
14355     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14356   }
14357 }
14358
14359   abuf->written = written;
14360   return vpc;
14361 #undef FLD
14362 }
14363
14364 /* fckeq: fckeq$pack $FCCi_3,$CRj_float */
14365
14366 static SEM_PC
14367 SEM_FN_NAME (frvbf,fckeq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14368 {
14369 #define FLD(f) abuf->fields.sfmt_cfckne.f
14370   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14371   int UNUSED written = 0;
14372   IADDR UNUSED pc = abuf->addr;
14373   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14374
14375 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 8), 3))) {
14376   {
14377     UQI opval = 3;
14378     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14379     written |= (1 << 1);
14380     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14381   }
14382 } else {
14383   {
14384     UQI opval = 2;
14385     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14386     written |= (1 << 1);
14387     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14388   }
14389 }
14390
14391   abuf->written = written;
14392   return vpc;
14393 #undef FLD
14394 }
14395
14396 /* fcklg: fcklg$pack $FCCi_3,$CRj_float */
14397
14398 static SEM_PC
14399 SEM_FN_NAME (frvbf,fcklg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14400 {
14401 #define FLD(f) abuf->fields.sfmt_cfckne.f
14402   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14403   int UNUSED written = 0;
14404   IADDR UNUSED pc = abuf->addr;
14405   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14406
14407 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)))) {
14408   {
14409     UQI opval = 3;
14410     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14411     written |= (1 << 1);
14412     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14413   }
14414 } else {
14415   {
14416     UQI opval = 2;
14417     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14418     written |= (1 << 1);
14419     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14420   }
14421 }
14422
14423   abuf->written = written;
14424   return vpc;
14425 #undef FLD
14426 }
14427
14428 /* fckue: fckue$pack $FCCi_3,$CRj_float */
14429
14430 static SEM_PC
14431 SEM_FN_NAME (frvbf,fckue) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14432 {
14433 #define FLD(f) abuf->fields.sfmt_cfckne.f
14434   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14435   int UNUSED written = 0;
14436   IADDR UNUSED pc = abuf->addr;
14437   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14438
14439 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 8), 3)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 1)))) {
14440   {
14441     UQI opval = 3;
14442     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14443     written |= (1 << 1);
14444     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14445   }
14446 } else {
14447   {
14448     UQI opval = 2;
14449     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14450     written |= (1 << 1);
14451     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14452   }
14453 }
14454
14455   abuf->written = written;
14456   return vpc;
14457 #undef FLD
14458 }
14459
14460 /* fckul: fckul$pack $FCCi_3,$CRj_float */
14461
14462 static SEM_PC
14463 SEM_FN_NAME (frvbf,fckul) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14464 {
14465 #define FLD(f) abuf->fields.sfmt_cfckne.f
14466   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14467   int UNUSED written = 0;
14468   IADDR UNUSED pc = abuf->addr;
14469   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14470
14471 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 4), 2)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 1)))) {
14472   {
14473     UQI opval = 3;
14474     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14475     written |= (1 << 1);
14476     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14477   }
14478 } else {
14479   {
14480     UQI opval = 2;
14481     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14482     written |= (1 << 1);
14483     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14484   }
14485 }
14486
14487   abuf->written = written;
14488   return vpc;
14489 #undef FLD
14490 }
14491
14492 /* fckge: fckge$pack $FCCi_3,$CRj_float */
14493
14494 static SEM_PC
14495 SEM_FN_NAME (frvbf,fckge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14496 {
14497 #define FLD(f) abuf->fields.sfmt_cfckne.f
14498   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14499   int UNUSED written = 0;
14500   IADDR UNUSED pc = abuf->addr;
14501   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14502
14503 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)))) {
14504   {
14505     UQI opval = 3;
14506     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14507     written |= (1 << 1);
14508     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14509   }
14510 } else {
14511   {
14512     UQI opval = 2;
14513     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14514     written |= (1 << 1);
14515     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14516   }
14517 }
14518
14519   abuf->written = written;
14520   return vpc;
14521 #undef FLD
14522 }
14523
14524 /* fcklt: fcklt$pack $FCCi_3,$CRj_float */
14525
14526 static SEM_PC
14527 SEM_FN_NAME (frvbf,fcklt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14528 {
14529 #define FLD(f) abuf->fields.sfmt_cfckne.f
14530   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14531   int UNUSED written = 0;
14532   IADDR UNUSED pc = abuf->addr;
14533   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14534
14535 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 4), 2))) {
14536   {
14537     UQI opval = 3;
14538     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14539     written |= (1 << 1);
14540     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14541   }
14542 } else {
14543   {
14544     UQI opval = 2;
14545     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14546     written |= (1 << 1);
14547     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14548   }
14549 }
14550
14551   abuf->written = written;
14552   return vpc;
14553 #undef FLD
14554 }
14555
14556 /* fckuge: fckuge$pack $FCCi_3,$CRj_float */
14557
14558 static SEM_PC
14559 SEM_FN_NAME (frvbf,fckuge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14560 {
14561 #define FLD(f) abuf->fields.sfmt_cfckne.f
14562   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14563   int UNUSED written = 0;
14564   IADDR UNUSED pc = abuf->addr;
14565   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14566
14567 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))))) {
14568   {
14569     UQI opval = 3;
14570     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14571     written |= (1 << 1);
14572     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14573   }
14574 } else {
14575   {
14576     UQI opval = 2;
14577     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14578     written |= (1 << 1);
14579     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14580   }
14581 }
14582
14583   abuf->written = written;
14584   return vpc;
14585 #undef FLD
14586 }
14587
14588 /* fckug: fckug$pack $FCCi_3,$CRj_float */
14589
14590 static SEM_PC
14591 SEM_FN_NAME (frvbf,fckug) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14592 {
14593 #define FLD(f) abuf->fields.sfmt_cfckne.f
14594   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14595   int UNUSED written = 0;
14596   IADDR UNUSED pc = abuf->addr;
14597   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14598
14599 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 1)))) {
14600   {
14601     UQI opval = 3;
14602     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14603     written |= (1 << 1);
14604     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14605   }
14606 } else {
14607   {
14608     UQI opval = 2;
14609     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14610     written |= (1 << 1);
14611     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14612   }
14613 }
14614
14615   abuf->written = written;
14616   return vpc;
14617 #undef FLD
14618 }
14619
14620 /* fckle: fckle$pack $FCCi_3,$CRj_float */
14621
14622 static SEM_PC
14623 SEM_FN_NAME (frvbf,fckle) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14624 {
14625 #define FLD(f) abuf->fields.sfmt_cfckne.f
14626   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14627   int UNUSED written = 0;
14628   IADDR UNUSED pc = abuf->addr;
14629   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14630
14631 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)))) {
14632   {
14633     UQI opval = 3;
14634     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14635     written |= (1 << 1);
14636     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14637   }
14638 } else {
14639   {
14640     UQI opval = 2;
14641     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14642     written |= (1 << 1);
14643     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14644   }
14645 }
14646
14647   abuf->written = written;
14648   return vpc;
14649 #undef FLD
14650 }
14651
14652 /* fckgt: fckgt$pack $FCCi_3,$CRj_float */
14653
14654 static SEM_PC
14655 SEM_FN_NAME (frvbf,fckgt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14656 {
14657 #define FLD(f) abuf->fields.sfmt_cfckne.f
14658   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14659   int UNUSED written = 0;
14660   IADDR UNUSED pc = abuf->addr;
14661   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14662
14663 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 2), 1))) {
14664   {
14665     UQI opval = 3;
14666     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14667     written |= (1 << 1);
14668     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14669   }
14670 } else {
14671   {
14672     UQI opval = 2;
14673     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14674     written |= (1 << 1);
14675     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14676   }
14677 }
14678
14679   abuf->written = written;
14680   return vpc;
14681 #undef FLD
14682 }
14683
14684 /* fckule: fckule$pack $FCCi_3,$CRj_float */
14685
14686 static SEM_PC
14687 SEM_FN_NAME (frvbf,fckule) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14688 {
14689 #define FLD(f) abuf->fields.sfmt_cfckne.f
14690   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14691   int UNUSED written = 0;
14692   IADDR UNUSED pc = abuf->addr;
14693   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14694
14695 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))))) {
14696   {
14697     UQI opval = 3;
14698     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14699     written |= (1 << 1);
14700     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14701   }
14702 } else {
14703   {
14704     UQI opval = 2;
14705     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14706     written |= (1 << 1);
14707     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14708   }
14709 }
14710
14711   abuf->written = written;
14712   return vpc;
14713 #undef FLD
14714 }
14715
14716 /* fcku: fcku$pack $FCCi_3,$CRj_float */
14717
14718 static SEM_PC
14719 SEM_FN_NAME (frvbf,fcku) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14720 {
14721 #define FLD(f) abuf->fields.sfmt_cfckne.f
14722   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14723   int UNUSED written = 0;
14724   IADDR UNUSED pc = abuf->addr;
14725   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14726
14727 if (TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 1))) {
14728   {
14729     UQI opval = 3;
14730     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14731     written |= (1 << 1);
14732     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14733   }
14734 } else {
14735   {
14736     UQI opval = 2;
14737     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14738     written |= (1 << 1);
14739     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14740   }
14741 }
14742
14743   abuf->written = written;
14744   return vpc;
14745 #undef FLD
14746 }
14747
14748 /* fcko: fcko$pack $FCCi_3,$CRj_float */
14749
14750 static SEM_PC
14751 SEM_FN_NAME (frvbf,fcko) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14752 {
14753 #define FLD(f) abuf->fields.sfmt_cfckne.f
14754   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14755   int UNUSED written = 0;
14756   IADDR UNUSED pc = abuf->addr;
14757   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14758
14759 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))))) {
14760   {
14761     UQI opval = 3;
14762     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14763     written |= (1 << 1);
14764     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14765   }
14766 } else {
14767   {
14768     UQI opval = 2;
14769     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14770     written |= (1 << 1);
14771     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14772   }
14773 }
14774
14775   abuf->written = written;
14776   return vpc;
14777 #undef FLD
14778 }
14779
14780 /* cckra: cckra$pack $CRj_int,$CCi,$cond */
14781
14782 static SEM_PC
14783 SEM_FN_NAME (frvbf,cckra) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14784 {
14785 #define FLD(f) abuf->fields.sfmt_cckeq.f
14786   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14787   int UNUSED written = 0;
14788   IADDR UNUSED pc = abuf->addr;
14789   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14790
14791 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
14792   {
14793     UQI opval = 3;
14794     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14795     written |= (1 << 2);
14796     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14797   }
14798 } else {
14799   {
14800     UQI opval = 0;
14801     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14802     written |= (1 << 2);
14803     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14804   }
14805 }
14806
14807   abuf->written = written;
14808   return vpc;
14809 #undef FLD
14810 }
14811
14812 /* cckno: cckno$pack $CRj_int,$CCi,$cond */
14813
14814 static SEM_PC
14815 SEM_FN_NAME (frvbf,cckno) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14816 {
14817 #define FLD(f) abuf->fields.sfmt_cckeq.f
14818   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14819   int UNUSED written = 0;
14820   IADDR UNUSED pc = abuf->addr;
14821   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14822
14823 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
14824   {
14825     UQI opval = 2;
14826     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14827     written |= (1 << 2);
14828     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14829   }
14830 } else {
14831   {
14832     UQI opval = 0;
14833     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14834     written |= (1 << 2);
14835     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14836   }
14837 }
14838
14839   abuf->written = written;
14840   return vpc;
14841 #undef FLD
14842 }
14843
14844 /* cckeq: cckeq$pack $ICCi_3,$CRj_int,$CCi,$cond */
14845
14846 static SEM_PC
14847 SEM_FN_NAME (frvbf,cckeq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14848 {
14849 #define FLD(f) abuf->fields.sfmt_cckeq.f
14850   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14851   int UNUSED written = 0;
14852   IADDR UNUSED pc = abuf->addr;
14853   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14854
14855 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
14856 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 4), 2))) {
14857   {
14858     UQI opval = 3;
14859     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14860     written |= (1 << 3);
14861     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14862   }
14863 } else {
14864   {
14865     UQI opval = 2;
14866     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14867     written |= (1 << 3);
14868     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14869   }
14870 }
14871 } else {
14872   {
14873     UQI opval = 0;
14874     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14875     written |= (1 << 3);
14876     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14877   }
14878 }
14879
14880   abuf->written = written;
14881   return vpc;
14882 #undef FLD
14883 }
14884
14885 /* cckne: cckne$pack $ICCi_3,$CRj_int,$CCi,$cond */
14886
14887 static SEM_PC
14888 SEM_FN_NAME (frvbf,cckne) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14889 {
14890 #define FLD(f) abuf->fields.sfmt_cckeq.f
14891   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14892   int UNUSED written = 0;
14893   IADDR UNUSED pc = abuf->addr;
14894   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14895
14896 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
14897 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 4), 2)))) {
14898   {
14899     UQI opval = 3;
14900     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14901     written |= (1 << 3);
14902     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14903   }
14904 } else {
14905   {
14906     UQI opval = 2;
14907     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14908     written |= (1 << 3);
14909     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14910   }
14911 }
14912 } else {
14913   {
14914     UQI opval = 0;
14915     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14916     written |= (1 << 3);
14917     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14918   }
14919 }
14920
14921   abuf->written = written;
14922   return vpc;
14923 #undef FLD
14924 }
14925
14926 /* cckle: cckle$pack $ICCi_3,$CRj_int,$CCi,$cond */
14927
14928 static SEM_PC
14929 SEM_FN_NAME (frvbf,cckle) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14930 {
14931 #define FLD(f) abuf->fields.sfmt_cckeq.f
14932   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14933   int UNUSED written = 0;
14934   IADDR UNUSED pc = abuf->addr;
14935   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14936
14937 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
14938 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))))) {
14939   {
14940     UQI opval = 3;
14941     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14942     written |= (1 << 3);
14943     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14944   }
14945 } else {
14946   {
14947     UQI opval = 2;
14948     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14949     written |= (1 << 3);
14950     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14951   }
14952 }
14953 } else {
14954   {
14955     UQI opval = 0;
14956     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14957     written |= (1 << 3);
14958     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14959   }
14960 }
14961
14962   abuf->written = written;
14963   return vpc;
14964 #undef FLD
14965 }
14966
14967 /* cckgt: cckgt$pack $ICCi_3,$CRj_int,$CCi,$cond */
14968
14969 static SEM_PC
14970 SEM_FN_NAME (frvbf,cckgt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14971 {
14972 #define FLD(f) abuf->fields.sfmt_cckeq.f
14973   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14974   int UNUSED written = 0;
14975   IADDR UNUSED pc = abuf->addr;
14976   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14977
14978 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
14979 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)))))) {
14980   {
14981     UQI opval = 3;
14982     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14983     written |= (1 << 3);
14984     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14985   }
14986 } else {
14987   {
14988     UQI opval = 2;
14989     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14990     written |= (1 << 3);
14991     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14992   }
14993 }
14994 } else {
14995   {
14996     UQI opval = 0;
14997     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14998     written |= (1 << 3);
14999     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15000   }
15001 }
15002
15003   abuf->written = written;
15004   return vpc;
15005 #undef FLD
15006 }
15007
15008 /* ccklt: ccklt$pack $ICCi_3,$CRj_int,$CCi,$cond */
15009
15010 static SEM_PC
15011 SEM_FN_NAME (frvbf,ccklt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15012 {
15013 #define FLD(f) abuf->fields.sfmt_cckeq.f
15014   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15015   int UNUSED written = 0;
15016   IADDR UNUSED pc = abuf->addr;
15017   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15018
15019 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15020 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)))) {
15021   {
15022     UQI opval = 3;
15023     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15024     written |= (1 << 3);
15025     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15026   }
15027 } else {
15028   {
15029     UQI opval = 2;
15030     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15031     written |= (1 << 3);
15032     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15033   }
15034 }
15035 } else {
15036   {
15037     UQI opval = 0;
15038     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15039     written |= (1 << 3);
15040     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15041   }
15042 }
15043
15044   abuf->written = written;
15045   return vpc;
15046 #undef FLD
15047 }
15048
15049 /* cckge: cckge$pack $ICCi_3,$CRj_int,$CCi,$cond */
15050
15051 static SEM_PC
15052 SEM_FN_NAME (frvbf,cckge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15053 {
15054 #define FLD(f) abuf->fields.sfmt_cckeq.f
15055   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15056   int UNUSED written = 0;
15057   IADDR UNUSED pc = abuf->addr;
15058   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15059
15060 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15061 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))))) {
15062   {
15063     UQI opval = 3;
15064     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15065     written |= (1 << 3);
15066     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15067   }
15068 } else {
15069   {
15070     UQI opval = 2;
15071     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15072     written |= (1 << 3);
15073     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15074   }
15075 }
15076 } else {
15077   {
15078     UQI opval = 0;
15079     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15080     written |= (1 << 3);
15081     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15082   }
15083 }
15084
15085   abuf->written = written;
15086   return vpc;
15087 #undef FLD
15088 }
15089
15090 /* cckls: cckls$pack $ICCi_3,$CRj_int,$CCi,$cond */
15091
15092 static SEM_PC
15093 SEM_FN_NAME (frvbf,cckls) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15094 {
15095 #define FLD(f) abuf->fields.sfmt_cckeq.f
15096   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15097   int UNUSED written = 0;
15098   IADDR UNUSED pc = abuf->addr;
15099   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15100
15101 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15102 if (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 4), 2)))) {
15103   {
15104     UQI opval = 3;
15105     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15106     written |= (1 << 3);
15107     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15108   }
15109 } else {
15110   {
15111     UQI opval = 2;
15112     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15113     written |= (1 << 3);
15114     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15115   }
15116 }
15117 } else {
15118   {
15119     UQI opval = 0;
15120     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15121     written |= (1 << 3);
15122     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15123   }
15124 }
15125
15126   abuf->written = written;
15127   return vpc;
15128 #undef FLD
15129 }
15130
15131 /* cckhi: cckhi$pack $ICCi_3,$CRj_int,$CCi,$cond */
15132
15133 static SEM_PC
15134 SEM_FN_NAME (frvbf,cckhi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15135 {
15136 #define FLD(f) abuf->fields.sfmt_cckeq.f
15137   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15138   int UNUSED written = 0;
15139   IADDR UNUSED pc = abuf->addr;
15140   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15141
15142 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15143 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))))) {
15144   {
15145     UQI opval = 3;
15146     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15147     written |= (1 << 3);
15148     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15149   }
15150 } else {
15151   {
15152     UQI opval = 2;
15153     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15154     written |= (1 << 3);
15155     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15156   }
15157 }
15158 } else {
15159   {
15160     UQI opval = 0;
15161     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15162     written |= (1 << 3);
15163     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15164   }
15165 }
15166
15167   abuf->written = written;
15168   return vpc;
15169 #undef FLD
15170 }
15171
15172 /* cckc: cckc$pack $ICCi_3,$CRj_int,$CCi,$cond */
15173
15174 static SEM_PC
15175 SEM_FN_NAME (frvbf,cckc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15176 {
15177 #define FLD(f) abuf->fields.sfmt_cckeq.f
15178   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15179   int UNUSED written = 0;
15180   IADDR UNUSED pc = abuf->addr;
15181   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15182
15183 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15184 if (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 1))) {
15185   {
15186     UQI opval = 3;
15187     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15188     written |= (1 << 3);
15189     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15190   }
15191 } else {
15192   {
15193     UQI opval = 2;
15194     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15195     written |= (1 << 3);
15196     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15197   }
15198 }
15199 } else {
15200   {
15201     UQI opval = 0;
15202     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15203     written |= (1 << 3);
15204     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15205   }
15206 }
15207
15208   abuf->written = written;
15209   return vpc;
15210 #undef FLD
15211 }
15212
15213 /* ccknc: ccknc$pack $ICCi_3,$CRj_int,$CCi,$cond */
15214
15215 static SEM_PC
15216 SEM_FN_NAME (frvbf,ccknc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15217 {
15218 #define FLD(f) abuf->fields.sfmt_cckeq.f
15219   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15220   int UNUSED written = 0;
15221   IADDR UNUSED pc = abuf->addr;
15222   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15223
15224 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15225 if (NOTBI (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 1)))) {
15226   {
15227     UQI opval = 3;
15228     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15229     written |= (1 << 3);
15230     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15231   }
15232 } else {
15233   {
15234     UQI opval = 2;
15235     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15236     written |= (1 << 3);
15237     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15238   }
15239 }
15240 } else {
15241   {
15242     UQI opval = 0;
15243     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15244     written |= (1 << 3);
15245     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15246   }
15247 }
15248
15249   abuf->written = written;
15250   return vpc;
15251 #undef FLD
15252 }
15253
15254 /* cckn: cckn$pack $ICCi_3,$CRj_int,$CCi,$cond */
15255
15256 static SEM_PC
15257 SEM_FN_NAME (frvbf,cckn) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15258 {
15259 #define FLD(f) abuf->fields.sfmt_cckeq.f
15260   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15261   int UNUSED written = 0;
15262   IADDR UNUSED pc = abuf->addr;
15263   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15264
15265 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15266 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 8), 3))) {
15267   {
15268     UQI opval = 3;
15269     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15270     written |= (1 << 3);
15271     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15272   }
15273 } else {
15274   {
15275     UQI opval = 2;
15276     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15277     written |= (1 << 3);
15278     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15279   }
15280 }
15281 } else {
15282   {
15283     UQI opval = 0;
15284     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15285     written |= (1 << 3);
15286     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15287   }
15288 }
15289
15290   abuf->written = written;
15291   return vpc;
15292 #undef FLD
15293 }
15294
15295 /* cckp: cckp$pack $ICCi_3,$CRj_int,$CCi,$cond */
15296
15297 static SEM_PC
15298 SEM_FN_NAME (frvbf,cckp) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15299 {
15300 #define FLD(f) abuf->fields.sfmt_cckeq.f
15301   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15302   int UNUSED written = 0;
15303   IADDR UNUSED pc = abuf->addr;
15304   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15305
15306 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15307 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 8), 3)))) {
15308   {
15309     UQI opval = 3;
15310     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15311     written |= (1 << 3);
15312     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15313   }
15314 } else {
15315   {
15316     UQI opval = 2;
15317     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15318     written |= (1 << 3);
15319     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15320   }
15321 }
15322 } else {
15323   {
15324     UQI opval = 0;
15325     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15326     written |= (1 << 3);
15327     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15328   }
15329 }
15330
15331   abuf->written = written;
15332   return vpc;
15333 #undef FLD
15334 }
15335
15336 /* cckv: cckv$pack $ICCi_3,$CRj_int,$CCi,$cond */
15337
15338 static SEM_PC
15339 SEM_FN_NAME (frvbf,cckv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15340 {
15341 #define FLD(f) abuf->fields.sfmt_cckeq.f
15342   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15343   int UNUSED written = 0;
15344   IADDR UNUSED pc = abuf->addr;
15345   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15346
15347 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15348 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 2), 1))) {
15349   {
15350     UQI opval = 3;
15351     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15352     written |= (1 << 3);
15353     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15354   }
15355 } else {
15356   {
15357     UQI opval = 2;
15358     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15359     written |= (1 << 3);
15360     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15361   }
15362 }
15363 } else {
15364   {
15365     UQI opval = 0;
15366     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15367     written |= (1 << 3);
15368     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15369   }
15370 }
15371
15372   abuf->written = written;
15373   return vpc;
15374 #undef FLD
15375 }
15376
15377 /* ccknv: ccknv$pack $ICCi_3,$CRj_int,$CCi,$cond */
15378
15379 static SEM_PC
15380 SEM_FN_NAME (frvbf,ccknv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15381 {
15382 #define FLD(f) abuf->fields.sfmt_cckeq.f
15383   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15384   int UNUSED written = 0;
15385   IADDR UNUSED pc = abuf->addr;
15386   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15387
15388 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15389 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 2), 1)))) {
15390   {
15391     UQI opval = 3;
15392     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15393     written |= (1 << 3);
15394     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15395   }
15396 } else {
15397   {
15398     UQI opval = 2;
15399     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15400     written |= (1 << 3);
15401     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15402   }
15403 }
15404 } else {
15405   {
15406     UQI opval = 0;
15407     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15408     written |= (1 << 3);
15409     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15410   }
15411 }
15412
15413   abuf->written = written;
15414   return vpc;
15415 #undef FLD
15416 }
15417
15418 /* cfckra: cfckra$pack $CRj_float,$CCi,$cond */
15419
15420 static SEM_PC
15421 SEM_FN_NAME (frvbf,cfckra) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15422 {
15423 #define FLD(f) abuf->fields.sfmt_cfckne.f
15424   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15425   int UNUSED written = 0;
15426   IADDR UNUSED pc = abuf->addr;
15427   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15428
15429 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15430   {
15431     UQI opval = 3;
15432     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15433     written |= (1 << 2);
15434     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15435   }
15436 } else {
15437   {
15438     UQI opval = 0;
15439     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15440     written |= (1 << 2);
15441     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15442   }
15443 }
15444
15445   abuf->written = written;
15446   return vpc;
15447 #undef FLD
15448 }
15449
15450 /* cfckno: cfckno$pack $CRj_float,$CCi,$cond */
15451
15452 static SEM_PC
15453 SEM_FN_NAME (frvbf,cfckno) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15454 {
15455 #define FLD(f) abuf->fields.sfmt_cfckne.f
15456   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15457   int UNUSED written = 0;
15458   IADDR UNUSED pc = abuf->addr;
15459   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15460
15461 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15462   {
15463     UQI opval = 2;
15464     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15465     written |= (1 << 2);
15466     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15467   }
15468 } else {
15469   {
15470     UQI opval = 0;
15471     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15472     written |= (1 << 2);
15473     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15474   }
15475 }
15476
15477   abuf->written = written;
15478   return vpc;
15479 #undef FLD
15480 }
15481
15482 /* cfckne: cfckne$pack $FCCi_3,$CRj_float,$CCi,$cond */
15483
15484 static SEM_PC
15485 SEM_FN_NAME (frvbf,cfckne) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15486 {
15487 #define FLD(f) abuf->fields.sfmt_cfckne.f
15488   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15489   int UNUSED written = 0;
15490   IADDR UNUSED pc = abuf->addr;
15491   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15492
15493 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15494 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))))) {
15495   {
15496     UQI opval = 3;
15497     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15498     written |= (1 << 3);
15499     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15500   }
15501 } else {
15502   {
15503     UQI opval = 2;
15504     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15505     written |= (1 << 3);
15506     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15507   }
15508 }
15509 } else {
15510   {
15511     UQI opval = 0;
15512     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15513     written |= (1 << 3);
15514     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15515   }
15516 }
15517
15518   abuf->written = written;
15519   return vpc;
15520 #undef FLD
15521 }
15522
15523 /* cfckeq: cfckeq$pack $FCCi_3,$CRj_float,$CCi,$cond */
15524
15525 static SEM_PC
15526 SEM_FN_NAME (frvbf,cfckeq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15527 {
15528 #define FLD(f) abuf->fields.sfmt_cfckne.f
15529   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15530   int UNUSED written = 0;
15531   IADDR UNUSED pc = abuf->addr;
15532   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15533
15534 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15535 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 8), 3))) {
15536   {
15537     UQI opval = 3;
15538     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15539     written |= (1 << 3);
15540     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15541   }
15542 } else {
15543   {
15544     UQI opval = 2;
15545     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15546     written |= (1 << 3);
15547     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15548   }
15549 }
15550 } else {
15551   {
15552     UQI opval = 0;
15553     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15554     written |= (1 << 3);
15555     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15556   }
15557 }
15558
15559   abuf->written = written;
15560   return vpc;
15561 #undef FLD
15562 }
15563
15564 /* cfcklg: cfcklg$pack $FCCi_3,$CRj_float,$CCi,$cond */
15565
15566 static SEM_PC
15567 SEM_FN_NAME (frvbf,cfcklg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15568 {
15569 #define FLD(f) abuf->fields.sfmt_cfckne.f
15570   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15571   int UNUSED written = 0;
15572   IADDR UNUSED pc = abuf->addr;
15573   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15574
15575 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15576 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)))) {
15577   {
15578     UQI opval = 3;
15579     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15580     written |= (1 << 3);
15581     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15582   }
15583 } else {
15584   {
15585     UQI opval = 2;
15586     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15587     written |= (1 << 3);
15588     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15589   }
15590 }
15591 } else {
15592   {
15593     UQI opval = 0;
15594     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15595     written |= (1 << 3);
15596     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15597   }
15598 }
15599
15600   abuf->written = written;
15601   return vpc;
15602 #undef FLD
15603 }
15604
15605 /* cfckue: cfckue$pack $FCCi_3,$CRj_float,$CCi,$cond */
15606
15607 static SEM_PC
15608 SEM_FN_NAME (frvbf,cfckue) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15609 {
15610 #define FLD(f) abuf->fields.sfmt_cfckne.f
15611   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15612   int UNUSED written = 0;
15613   IADDR UNUSED pc = abuf->addr;
15614   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15615
15616 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15617 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 8), 3)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 1)))) {
15618   {
15619     UQI opval = 3;
15620     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15621     written |= (1 << 3);
15622     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15623   }
15624 } else {
15625   {
15626     UQI opval = 2;
15627     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15628     written |= (1 << 3);
15629     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15630   }
15631 }
15632 } else {
15633   {
15634     UQI opval = 0;
15635     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15636     written |= (1 << 3);
15637     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15638   }
15639 }
15640
15641   abuf->written = written;
15642   return vpc;
15643 #undef FLD
15644 }
15645
15646 /* cfckul: cfckul$pack $FCCi_3,$CRj_float,$CCi,$cond */
15647
15648 static SEM_PC
15649 SEM_FN_NAME (frvbf,cfckul) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15650 {
15651 #define FLD(f) abuf->fields.sfmt_cfckne.f
15652   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15653   int UNUSED written = 0;
15654   IADDR UNUSED pc = abuf->addr;
15655   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15656
15657 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15658 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 4), 2)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 1)))) {
15659   {
15660     UQI opval = 3;
15661     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15662     written |= (1 << 3);
15663     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15664   }
15665 } else {
15666   {
15667     UQI opval = 2;
15668     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15669     written |= (1 << 3);
15670     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15671   }
15672 }
15673 } else {
15674   {
15675     UQI opval = 0;
15676     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15677     written |= (1 << 3);
15678     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15679   }
15680 }
15681
15682   abuf->written = written;
15683   return vpc;
15684 #undef FLD
15685 }
15686
15687 /* cfckge: cfckge$pack $FCCi_3,$CRj_float,$CCi,$cond */
15688
15689 static SEM_PC
15690 SEM_FN_NAME (frvbf,cfckge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15691 {
15692 #define FLD(f) abuf->fields.sfmt_cfckne.f
15693   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15694   int UNUSED written = 0;
15695   IADDR UNUSED pc = abuf->addr;
15696   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15697
15698 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15699 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)))) {
15700   {
15701     UQI opval = 3;
15702     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15703     written |= (1 << 3);
15704     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15705   }
15706 } else {
15707   {
15708     UQI opval = 2;
15709     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15710     written |= (1 << 3);
15711     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15712   }
15713 }
15714 } else {
15715   {
15716     UQI opval = 0;
15717     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15718     written |= (1 << 3);
15719     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15720   }
15721 }
15722
15723   abuf->written = written;
15724   return vpc;
15725 #undef FLD
15726 }
15727
15728 /* cfcklt: cfcklt$pack $FCCi_3,$CRj_float,$CCi,$cond */
15729
15730 static SEM_PC
15731 SEM_FN_NAME (frvbf,cfcklt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15732 {
15733 #define FLD(f) abuf->fields.sfmt_cfckne.f
15734   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15735   int UNUSED written = 0;
15736   IADDR UNUSED pc = abuf->addr;
15737   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15738
15739 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15740 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 4), 2))) {
15741   {
15742     UQI opval = 3;
15743     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15744     written |= (1 << 3);
15745     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15746   }
15747 } else {
15748   {
15749     UQI opval = 2;
15750     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15751     written |= (1 << 3);
15752     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15753   }
15754 }
15755 } else {
15756   {
15757     UQI opval = 0;
15758     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15759     written |= (1 << 3);
15760     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15761   }
15762 }
15763
15764   abuf->written = written;
15765   return vpc;
15766 #undef FLD
15767 }
15768
15769 /* cfckuge: cfckuge$pack $FCCi_3,$CRj_float,$CCi,$cond */
15770
15771 static SEM_PC
15772 SEM_FN_NAME (frvbf,cfckuge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15773 {
15774 #define FLD(f) abuf->fields.sfmt_cfckne.f
15775   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15776   int UNUSED written = 0;
15777   IADDR UNUSED pc = abuf->addr;
15778   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15779
15780 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15781 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))))) {
15782   {
15783     UQI opval = 3;
15784     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15785     written |= (1 << 3);
15786     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15787   }
15788 } else {
15789   {
15790     UQI opval = 2;
15791     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15792     written |= (1 << 3);
15793     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15794   }
15795 }
15796 } else {
15797   {
15798     UQI opval = 0;
15799     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15800     written |= (1 << 3);
15801     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15802   }
15803 }
15804
15805   abuf->written = written;
15806   return vpc;
15807 #undef FLD
15808 }
15809
15810 /* cfckug: cfckug$pack $FCCi_3,$CRj_float,$CCi,$cond */
15811
15812 static SEM_PC
15813 SEM_FN_NAME (frvbf,cfckug) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15814 {
15815 #define FLD(f) abuf->fields.sfmt_cfckne.f
15816   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15817   int UNUSED written = 0;
15818   IADDR UNUSED pc = abuf->addr;
15819   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15820
15821 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15822 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 1)))) {
15823   {
15824     UQI opval = 3;
15825     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15826     written |= (1 << 3);
15827     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15828   }
15829 } else {
15830   {
15831     UQI opval = 2;
15832     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15833     written |= (1 << 3);
15834     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15835   }
15836 }
15837 } else {
15838   {
15839     UQI opval = 0;
15840     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15841     written |= (1 << 3);
15842     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15843   }
15844 }
15845
15846   abuf->written = written;
15847   return vpc;
15848 #undef FLD
15849 }
15850
15851 /* cfckle: cfckle$pack $FCCi_3,$CRj_float,$CCi,$cond */
15852
15853 static SEM_PC
15854 SEM_FN_NAME (frvbf,cfckle) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15855 {
15856 #define FLD(f) abuf->fields.sfmt_cfckne.f
15857   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15858   int UNUSED written = 0;
15859   IADDR UNUSED pc = abuf->addr;
15860   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15861
15862 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15863 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)))) {
15864   {
15865     UQI opval = 3;
15866     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15867     written |= (1 << 3);
15868     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15869   }
15870 } else {
15871   {
15872     UQI opval = 2;
15873     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15874     written |= (1 << 3);
15875     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15876   }
15877 }
15878 } else {
15879   {
15880     UQI opval = 0;
15881     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15882     written |= (1 << 3);
15883     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15884   }
15885 }
15886
15887   abuf->written = written;
15888   return vpc;
15889 #undef FLD
15890 }
15891
15892 /* cfckgt: cfckgt$pack $FCCi_3,$CRj_float,$CCi,$cond */
15893
15894 static SEM_PC
15895 SEM_FN_NAME (frvbf,cfckgt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15896 {
15897 #define FLD(f) abuf->fields.sfmt_cfckne.f
15898   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15899   int UNUSED written = 0;
15900   IADDR UNUSED pc = abuf->addr;
15901   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15902
15903 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15904 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 2), 1))) {
15905   {
15906     UQI opval = 3;
15907     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15908     written |= (1 << 3);
15909     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15910   }
15911 } else {
15912   {
15913     UQI opval = 2;
15914     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15915     written |= (1 << 3);
15916     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15917   }
15918 }
15919 } else {
15920   {
15921     UQI opval = 0;
15922     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15923     written |= (1 << 3);
15924     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15925   }
15926 }
15927
15928   abuf->written = written;
15929   return vpc;
15930 #undef FLD
15931 }
15932
15933 /* cfckule: cfckule$pack $FCCi_3,$CRj_float,$CCi,$cond */
15934
15935 static SEM_PC
15936 SEM_FN_NAME (frvbf,cfckule) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15937 {
15938 #define FLD(f) abuf->fields.sfmt_cfckne.f
15939   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15940   int UNUSED written = 0;
15941   IADDR UNUSED pc = abuf->addr;
15942   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15943
15944 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15945 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))))) {
15946   {
15947     UQI opval = 3;
15948     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15949     written |= (1 << 3);
15950     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15951   }
15952 } else {
15953   {
15954     UQI opval = 2;
15955     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15956     written |= (1 << 3);
15957     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15958   }
15959 }
15960 } else {
15961   {
15962     UQI opval = 0;
15963     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15964     written |= (1 << 3);
15965     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15966   }
15967 }
15968
15969   abuf->written = written;
15970   return vpc;
15971 #undef FLD
15972 }
15973
15974 /* cfcku: cfcku$pack $FCCi_3,$CRj_float,$CCi,$cond */
15975
15976 static SEM_PC
15977 SEM_FN_NAME (frvbf,cfcku) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15978 {
15979 #define FLD(f) abuf->fields.sfmt_cfckne.f
15980   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15981   int UNUSED written = 0;
15982   IADDR UNUSED pc = abuf->addr;
15983   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15984
15985 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15986 if (TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 1))) {
15987   {
15988     UQI opval = 3;
15989     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15990     written |= (1 << 3);
15991     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15992   }
15993 } else {
15994   {
15995     UQI opval = 2;
15996     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15997     written |= (1 << 3);
15998     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15999   }
16000 }
16001 } else {
16002   {
16003     UQI opval = 0;
16004     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
16005     written |= (1 << 3);
16006     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
16007   }
16008 }
16009
16010   abuf->written = written;
16011   return vpc;
16012 #undef FLD
16013 }
16014
16015 /* cfcko: cfcko$pack $FCCi_3,$CRj_float,$CCi,$cond */
16016
16017 static SEM_PC
16018 SEM_FN_NAME (frvbf,cfcko) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16019 {
16020 #define FLD(f) abuf->fields.sfmt_cfckne.f
16021   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16022   int UNUSED written = 0;
16023   IADDR UNUSED pc = abuf->addr;
16024   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16025
16026 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
16027 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))))) {
16028   {
16029     UQI opval = 3;
16030     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
16031     written |= (1 << 3);
16032     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
16033   }
16034 } else {
16035   {
16036     UQI opval = 2;
16037     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
16038     written |= (1 << 3);
16039     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
16040   }
16041 }
16042 } else {
16043   {
16044     UQI opval = 0;
16045     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
16046     written |= (1 << 3);
16047     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
16048   }
16049 }
16050
16051   abuf->written = written;
16052   return vpc;
16053 #undef FLD
16054 }
16055
16056 /* cjmpl: cjmpl$pack @($GRi,$GRj),$CCi,$cond */
16057
16058 static SEM_PC
16059 SEM_FN_NAME (frvbf,cjmpl) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16060 {
16061 #define FLD(f) abuf->fields.sfmt_cjmpl.f
16062   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16063   int UNUSED written = 0;
16064   IADDR UNUSED pc = abuf->addr;
16065   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16066
16067 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
16068 {
16069 if (EQSI (FLD (f_LI), 1)) {
16070 frvbf_set_write_next_vliw_addr_to_LR (current_cpu, 1);
16071 }
16072   {
16073     USI opval = ANDSI (ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), 0xfffffffc);
16074     sim_queue_pc_write (current_cpu, opval);
16075     written |= (1 << 6);
16076     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
16077   }
16078 frvbf_model_branch (current_cpu, pc, 2);
16079 }
16080 }
16081
16082   abuf->written = written;
16083   return vpc;
16084 #undef FLD
16085 }
16086
16087 /* ccalll: ccalll$pack @($GRi,$GRj),$CCi,$cond */
16088
16089 static SEM_PC
16090 SEM_FN_NAME (frvbf,ccalll) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16091 {
16092 #define FLD(f) abuf->fields.sfmt_cjmpl.f
16093   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16094   int UNUSED written = 0;
16095   IADDR UNUSED pc = abuf->addr;
16096   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16097
16098 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
16099 {
16100 if (EQSI (FLD (f_LI), 1)) {
16101 frvbf_set_write_next_vliw_addr_to_LR (current_cpu, 1);
16102 }
16103   {
16104     USI opval = ANDSI (ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), 0xfffffffc);
16105     sim_queue_pc_write (current_cpu, opval);
16106     written |= (1 << 6);
16107     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
16108   }
16109 frvbf_model_branch (current_cpu, pc, 2);
16110 }
16111 }
16112
16113   abuf->written = written;
16114   return vpc;
16115 #undef FLD
16116 }
16117
16118 /* ici: ici$pack @($GRi,$GRj) */
16119
16120 static SEM_PC
16121 SEM_FN_NAME (frvbf,ici) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16122 {
16123 #define FLD(f) abuf->fields.sfmt_icpl.f
16124   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16125   int UNUSED written = 0;
16126   IADDR UNUSED pc = abuf->addr;
16127   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16128
16129 frvbf_insn_cache_invalidate (current_cpu, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), 0);
16130
16131   return vpc;
16132 #undef FLD
16133 }
16134
16135 /* dci: dci$pack @($GRi,$GRj) */
16136
16137 static SEM_PC
16138 SEM_FN_NAME (frvbf,dci) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16139 {
16140 #define FLD(f) abuf->fields.sfmt_icpl.f
16141   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16142   int UNUSED written = 0;
16143   IADDR UNUSED pc = abuf->addr;
16144   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16145
16146 frvbf_data_cache_invalidate (current_cpu, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), 0);
16147
16148   return vpc;
16149 #undef FLD
16150 }
16151
16152 /* icei: icei$pack @($GRi,$GRj),$ae */
16153
16154 static SEM_PC
16155 SEM_FN_NAME (frvbf,icei) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16156 {
16157 #define FLD(f) abuf->fields.sfmt_icei.f
16158   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16159   int UNUSED written = 0;
16160   IADDR UNUSED pc = abuf->addr;
16161   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16162
16163 if (EQSI (FLD (f_ae), 0)) {
16164 frvbf_insn_cache_invalidate (current_cpu, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), -1);
16165 } else {
16166 frvbf_insn_cache_invalidate (current_cpu, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), FLD (f_ae));
16167 }
16168
16169   return vpc;
16170 #undef FLD
16171 }
16172
16173 /* dcei: dcei$pack @($GRi,$GRj),$ae */
16174
16175 static SEM_PC
16176 SEM_FN_NAME (frvbf,dcei) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16177 {
16178 #define FLD(f) abuf->fields.sfmt_icei.f
16179   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16180   int UNUSED written = 0;
16181   IADDR UNUSED pc = abuf->addr;
16182   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16183
16184 if (EQSI (FLD (f_ae), 0)) {
16185 frvbf_data_cache_invalidate (current_cpu, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), -1);
16186 } else {
16187 frvbf_data_cache_invalidate (current_cpu, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), FLD (f_ae));
16188 }
16189
16190   return vpc;
16191 #undef FLD
16192 }
16193
16194 /* dcf: dcf$pack @($GRi,$GRj) */
16195
16196 static SEM_PC
16197 SEM_FN_NAME (frvbf,dcf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16198 {
16199 #define FLD(f) abuf->fields.sfmt_icpl.f
16200   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16201   int UNUSED written = 0;
16202   IADDR UNUSED pc = abuf->addr;
16203   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16204
16205 frvbf_data_cache_flush (current_cpu, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), 0);
16206
16207   return vpc;
16208 #undef FLD
16209 }
16210
16211 /* dcef: dcef$pack @($GRi,$GRj),$ae */
16212
16213 static SEM_PC
16214 SEM_FN_NAME (frvbf,dcef) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16215 {
16216 #define FLD(f) abuf->fields.sfmt_icei.f
16217   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16218   int UNUSED written = 0;
16219   IADDR UNUSED pc = abuf->addr;
16220   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16221
16222 if (EQSI (FLD (f_ae), 0)) {
16223 frvbf_data_cache_flush (current_cpu, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), -1);
16224 } else {
16225 frvbf_data_cache_flush (current_cpu, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), FLD (f_ae));
16226 }
16227
16228   return vpc;
16229 #undef FLD
16230 }
16231
16232 /* witlb: witlb$pack $GRk,@($GRi,$GRj) */
16233
16234 static SEM_PC
16235 SEM_FN_NAME (frvbf,witlb) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16236 {
16237 #define FLD(f) abuf->fields.sfmt_empty.f
16238   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16239   int UNUSED written = 0;
16240   IADDR UNUSED pc = abuf->addr;
16241   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16242
16243 ((void) 0); /*nop*/
16244
16245   return vpc;
16246 #undef FLD
16247 }
16248
16249 /* wdtlb: wdtlb$pack $GRk,@($GRi,$GRj) */
16250
16251 static SEM_PC
16252 SEM_FN_NAME (frvbf,wdtlb) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16253 {
16254 #define FLD(f) abuf->fields.sfmt_empty.f
16255   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16256   int UNUSED written = 0;
16257   IADDR UNUSED pc = abuf->addr;
16258   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16259
16260 ((void) 0); /*nop*/
16261
16262   return vpc;
16263 #undef FLD
16264 }
16265
16266 /* itlbi: itlbi$pack @($GRi,$GRj) */
16267
16268 static SEM_PC
16269 SEM_FN_NAME (frvbf,itlbi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16270 {
16271 #define FLD(f) abuf->fields.sfmt_empty.f
16272   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16273   int UNUSED written = 0;
16274   IADDR UNUSED pc = abuf->addr;
16275   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16276
16277 ((void) 0); /*nop*/
16278
16279   return vpc;
16280 #undef FLD
16281 }
16282
16283 /* dtlbi: dtlbi$pack @($GRi,$GRj) */
16284
16285 static SEM_PC
16286 SEM_FN_NAME (frvbf,dtlbi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16287 {
16288 #define FLD(f) abuf->fields.sfmt_empty.f
16289   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16290   int UNUSED written = 0;
16291   IADDR UNUSED pc = abuf->addr;
16292   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16293
16294 ((void) 0); /*nop*/
16295
16296   return vpc;
16297 #undef FLD
16298 }
16299
16300 /* icpl: icpl$pack $GRi,$GRj,$lock */
16301
16302 static SEM_PC
16303 SEM_FN_NAME (frvbf,icpl) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16304 {
16305 #define FLD(f) abuf->fields.sfmt_icpl.f
16306   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16307   int UNUSED written = 0;
16308   IADDR UNUSED pc = abuf->addr;
16309   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16310
16311 frvbf_insn_cache_preload (current_cpu, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), FLD (f_lock));
16312
16313   return vpc;
16314 #undef FLD
16315 }
16316
16317 /* dcpl: dcpl$pack $GRi,$GRj,$lock */
16318
16319 static SEM_PC
16320 SEM_FN_NAME (frvbf,dcpl) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16321 {
16322 #define FLD(f) abuf->fields.sfmt_icpl.f
16323   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16324   int UNUSED written = 0;
16325   IADDR UNUSED pc = abuf->addr;
16326   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16327
16328 frvbf_data_cache_preload (current_cpu, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), FLD (f_lock));
16329
16330   return vpc;
16331 #undef FLD
16332 }
16333
16334 /* icul: icul$pack $GRi */
16335
16336 static SEM_PC
16337 SEM_FN_NAME (frvbf,icul) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16338 {
16339 #define FLD(f) abuf->fields.sfmt_jmpil.f
16340   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16341   int UNUSED written = 0;
16342   IADDR UNUSED pc = abuf->addr;
16343   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16344
16345 frvbf_insn_cache_unlock (current_cpu, GET_H_GR (FLD (f_GRi)));
16346
16347   return vpc;
16348 #undef FLD
16349 }
16350
16351 /* dcul: dcul$pack $GRi */
16352
16353 static SEM_PC
16354 SEM_FN_NAME (frvbf,dcul) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16355 {
16356 #define FLD(f) abuf->fields.sfmt_jmpil.f
16357   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16358   int UNUSED written = 0;
16359   IADDR UNUSED pc = abuf->addr;
16360   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16361
16362 frvbf_data_cache_unlock (current_cpu, GET_H_GR (FLD (f_GRi)));
16363
16364   return vpc;
16365 #undef FLD
16366 }
16367
16368 /* bar: bar$pack */
16369
16370 static SEM_PC
16371 SEM_FN_NAME (frvbf,bar) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16372 {
16373 #define FLD(f) abuf->fields.sfmt_empty.f
16374   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16375   int UNUSED written = 0;
16376   IADDR UNUSED pc = abuf->addr;
16377   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16378
16379 ((void) 0); /*nop*/
16380
16381   return vpc;
16382 #undef FLD
16383 }
16384
16385 /* membar: membar$pack */
16386
16387 static SEM_PC
16388 SEM_FN_NAME (frvbf,membar) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16389 {
16390 #define FLD(f) abuf->fields.sfmt_empty.f
16391   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16392   int UNUSED written = 0;
16393   IADDR UNUSED pc = abuf->addr;
16394   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16395
16396 ((void) 0); /*nop*/
16397
16398   return vpc;
16399 #undef FLD
16400 }
16401
16402 /* lrai: lrai$pack $GRi,$GRk,$LRAE,$LRAD,$LRAS */
16403
16404 static SEM_PC
16405 SEM_FN_NAME (frvbf,lrai) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16406 {
16407 #define FLD(f) abuf->fields.sfmt_empty.f
16408   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16409   int UNUSED written = 0;
16410   IADDR UNUSED pc = abuf->addr;
16411   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16412
16413 ((void) 0); /*nop*/
16414
16415   return vpc;
16416 #undef FLD
16417 }
16418
16419 /* lrad: lrad$pack $GRi,$GRk,$LRAE,$LRAD,$LRAS */
16420
16421 static SEM_PC
16422 SEM_FN_NAME (frvbf,lrad) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16423 {
16424 #define FLD(f) abuf->fields.sfmt_empty.f
16425   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16426   int UNUSED written = 0;
16427   IADDR UNUSED pc = abuf->addr;
16428   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16429
16430 ((void) 0); /*nop*/
16431
16432   return vpc;
16433 #undef FLD
16434 }
16435
16436 /* tlbpr: tlbpr$pack $GRi,$GRj,$TLBPRopx,$TLBPRL */
16437
16438 static SEM_PC
16439 SEM_FN_NAME (frvbf,tlbpr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16440 {
16441 #define FLD(f) abuf->fields.sfmt_empty.f
16442   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16443   int UNUSED written = 0;
16444   IADDR UNUSED pc = abuf->addr;
16445   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16446
16447 ((void) 0); /*nop*/
16448
16449   return vpc;
16450 #undef FLD
16451 }
16452
16453 /* cop1: cop1$pack $s6_1,$CPRi,$CPRj,$CPRk */
16454
16455 static SEM_PC
16456 SEM_FN_NAME (frvbf,cop1) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16457 {
16458 #define FLD(f) abuf->fields.sfmt_empty.f
16459   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16460   int UNUSED written = 0;
16461   IADDR UNUSED pc = abuf->addr;
16462   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16463
16464 ((void) 0); /*nop*/
16465
16466   return vpc;
16467 #undef FLD
16468 }
16469
16470 /* cop2: cop2$pack $s6_1,$CPRi,$CPRj,$CPRk */
16471
16472 static SEM_PC
16473 SEM_FN_NAME (frvbf,cop2) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16474 {
16475 #define FLD(f) abuf->fields.sfmt_empty.f
16476   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16477   int UNUSED written = 0;
16478   IADDR UNUSED pc = abuf->addr;
16479   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16480
16481 ((void) 0); /*nop*/
16482
16483   return vpc;
16484 #undef FLD
16485 }
16486
16487 /* clrgr: clrgr$pack $GRk */
16488
16489 static SEM_PC
16490 SEM_FN_NAME (frvbf,clrgr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16491 {
16492 #define FLD(f) abuf->fields.sfmt_swapi.f
16493   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16494   int UNUSED written = 0;
16495   IADDR UNUSED pc = abuf->addr;
16496   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16497
16498 {
16499 frv_ref_SI (GET_H_GR (FLD (f_GRk)));
16500 frvbf_clear_ne_flags (current_cpu, FLD (f_GRk), 0);
16501 }
16502
16503   return vpc;
16504 #undef FLD
16505 }
16506
16507 /* clrfr: clrfr$pack $FRk */
16508
16509 static SEM_PC
16510 SEM_FN_NAME (frvbf,clrfr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16511 {
16512 #define FLD(f) abuf->fields.sfmt_cfmadds.f
16513   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16514   int UNUSED written = 0;
16515   IADDR UNUSED pc = abuf->addr;
16516   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16517
16518 {
16519 frv_ref_SI (GET_H_FR (FLD (f_FRk)));
16520 frvbf_clear_ne_flags (current_cpu, FLD (f_FRk), 1);
16521 }
16522
16523   return vpc;
16524 #undef FLD
16525 }
16526
16527 /* clrga: clrga$pack */
16528
16529 static SEM_PC
16530 SEM_FN_NAME (frvbf,clrga) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16531 {
16532 #define FLD(f) abuf->fields.sfmt_empty.f
16533   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16534   int UNUSED written = 0;
16535   IADDR UNUSED pc = abuf->addr;
16536   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16537
16538 frvbf_clear_ne_flags (current_cpu, -1, 0);
16539
16540   return vpc;
16541 #undef FLD
16542 }
16543
16544 /* clrfa: clrfa$pack */
16545
16546 static SEM_PC
16547 SEM_FN_NAME (frvbf,clrfa) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16548 {
16549 #define FLD(f) abuf->fields.sfmt_empty.f
16550   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16551   int UNUSED written = 0;
16552   IADDR UNUSED pc = abuf->addr;
16553   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16554
16555 frvbf_clear_ne_flags (current_cpu, -1, 1);
16556
16557   return vpc;
16558 #undef FLD
16559 }
16560
16561 /* commitgr: commitgr$pack $GRk */
16562
16563 static SEM_PC
16564 SEM_FN_NAME (frvbf,commitgr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16565 {
16566 #define FLD(f) abuf->fields.sfmt_setlos.f
16567   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16568   int UNUSED written = 0;
16569   IADDR UNUSED pc = abuf->addr;
16570   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16571
16572 frvbf_commit (current_cpu, FLD (f_GRk), 0);
16573
16574   return vpc;
16575 #undef FLD
16576 }
16577
16578 /* commitfr: commitfr$pack $FRk */
16579
16580 static SEM_PC
16581 SEM_FN_NAME (frvbf,commitfr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16582 {
16583 #define FLD(f) abuf->fields.sfmt_mhsethis.f
16584   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16585   int UNUSED written = 0;
16586   IADDR UNUSED pc = abuf->addr;
16587   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16588
16589 frvbf_commit (current_cpu, FLD (f_FRk), 1);
16590
16591   return vpc;
16592 #undef FLD
16593 }
16594
16595 /* commitga: commitga$pack */
16596
16597 static SEM_PC
16598 SEM_FN_NAME (frvbf,commitga) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16599 {
16600 #define FLD(f) abuf->fields.sfmt_empty.f
16601   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16602   int UNUSED written = 0;
16603   IADDR UNUSED pc = abuf->addr;
16604   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16605
16606 frvbf_commit (current_cpu, -1, 0);
16607
16608   return vpc;
16609 #undef FLD
16610 }
16611
16612 /* commitfa: commitfa$pack */
16613
16614 static SEM_PC
16615 SEM_FN_NAME (frvbf,commitfa) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16616 {
16617 #define FLD(f) abuf->fields.sfmt_empty.f
16618   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16619   int UNUSED written = 0;
16620   IADDR UNUSED pc = abuf->addr;
16621   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16622
16623 frvbf_commit (current_cpu, -1, 1);
16624
16625   return vpc;
16626 #undef FLD
16627 }
16628
16629 /* fitos: fitos$pack $FRintj,$FRk */
16630
16631 static SEM_PC
16632 SEM_FN_NAME (frvbf,fitos) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16633 {
16634 #define FLD(f) abuf->fields.sfmt_fditos.f
16635   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16636   int UNUSED written = 0;
16637   IADDR UNUSED pc = abuf->addr;
16638   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16639
16640   {
16641     SF opval = CGEN_CPU_FPU (current_cpu)->ops->floatsisf (CGEN_CPU_FPU (current_cpu), FPCONV_DEFAULT, GET_H_FR_INT (FLD (f_FRj)));
16642     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
16643     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
16644   }
16645
16646   return vpc;
16647 #undef FLD
16648 }
16649
16650 /* fstoi: fstoi$pack $FRj,$FRintk */
16651
16652 static SEM_PC
16653 SEM_FN_NAME (frvbf,fstoi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16654 {
16655 #define FLD(f) abuf->fields.sfmt_fdstoi.f
16656   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16657   int UNUSED written = 0;
16658   IADDR UNUSED pc = abuf->addr;
16659   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16660
16661   {
16662     SI opval = CGEN_CPU_FPU (current_cpu)->ops->fixsfsi (CGEN_CPU_FPU (current_cpu), FPCONV_DEFAULT, GET_H_FR (FLD (f_FRj)));
16663     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
16664     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
16665   }
16666
16667   return vpc;
16668 #undef FLD
16669 }
16670
16671 /* fitod: fitod$pack $FRintj,$FRdoublek */
16672
16673 static SEM_PC
16674 SEM_FN_NAME (frvbf,fitod) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16675 {
16676 #define FLD(f) abuf->fields.sfmt_fitod.f
16677   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16678   int UNUSED written = 0;
16679   IADDR UNUSED pc = abuf->addr;
16680   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16681
16682   {
16683     DF opval = CGEN_CPU_FPU (current_cpu)->ops->floatsidf (CGEN_CPU_FPU (current_cpu), FPCONV_DEFAULT, GET_H_FR_INT (FLD (f_FRj)));
16684     sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
16685     TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
16686   }
16687
16688   return vpc;
16689 #undef FLD
16690 }
16691
16692 /* fdtoi: fdtoi$pack $FRdoublej,$FRintk */
16693
16694 static SEM_PC
16695 SEM_FN_NAME (frvbf,fdtoi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16696 {
16697 #define FLD(f) abuf->fields.sfmt_fdtoi.f
16698   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16699   int UNUSED written = 0;
16700   IADDR UNUSED pc = abuf->addr;
16701   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16702
16703   {
16704     SI opval = CGEN_CPU_FPU (current_cpu)->ops->fixdfsi (CGEN_CPU_FPU (current_cpu), FPCONV_DEFAULT, GET_H_FR_DOUBLE (FLD (f_FRj)));
16705     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
16706     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
16707   }
16708
16709   return vpc;
16710 #undef FLD
16711 }
16712
16713 /* fditos: fditos$pack $FRintj,$FRk */
16714
16715 static SEM_PC
16716 SEM_FN_NAME (frvbf,fditos) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16717 {
16718 #define FLD(f) abuf->fields.sfmt_fditos.f
16719   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16720   int UNUSED written = 0;
16721   IADDR UNUSED pc = abuf->addr;
16722   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16723
16724 {
16725   {
16726     SF opval = CGEN_CPU_FPU (current_cpu)->ops->floatsisf (CGEN_CPU_FPU (current_cpu), FPCONV_DEFAULT, GET_H_FR_INT (FLD (f_FRj)));
16727     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
16728     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
16729   }
16730   {
16731     SF opval = CGEN_CPU_FPU (current_cpu)->ops->floatsisf (CGEN_CPU_FPU (current_cpu), FPCONV_DEFAULT, GET_H_FR_INT (ADDSI (FLD (f_FRj), 1)));
16732     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ADDSI (FLD (f_FRk), 1), opval);
16733     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
16734   }
16735 }
16736
16737   return vpc;
16738 #undef FLD
16739 }
16740
16741 /* fdstoi: fdstoi$pack $FRj,$FRintk */
16742
16743 static SEM_PC
16744 SEM_FN_NAME (frvbf,fdstoi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16745 {
16746 #define FLD(f) abuf->fields.sfmt_fdstoi.f
16747   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16748   int UNUSED written = 0;
16749   IADDR UNUSED pc = abuf->addr;
16750   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16751
16752 {
16753   {
16754     SI opval = CGEN_CPU_FPU (current_cpu)->ops->fixsfsi (CGEN_CPU_FPU (current_cpu), FPCONV_DEFAULT, GET_H_FR (FLD (f_FRj)));
16755     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
16756     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
16757   }
16758   {
16759     USI opval = CGEN_CPU_FPU (current_cpu)->ops->fixsfsi (CGEN_CPU_FPU (current_cpu), FPCONV_DEFAULT, GET_H_FR (ADDSI (FLD (f_FRj), 1)));
16760     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ADDSI (FLD (f_FRk), 1), opval);
16761     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
16762   }
16763 }
16764
16765   return vpc;
16766 #undef FLD
16767 }
16768
16769 /* nfditos: nfditos$pack $FRintj,$FRk */
16770
16771 static SEM_PC
16772 SEM_FN_NAME (frvbf,nfditos) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16773 {
16774 #define FLD(f) abuf->fields.sfmt_fditos.f
16775   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16776   int UNUSED written = 0;
16777   IADDR UNUSED pc = abuf->addr;
16778   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16779
16780 {
16781 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
16782   {
16783     SF opval = CGEN_CPU_FPU (current_cpu)->ops->floatsisf (CGEN_CPU_FPU (current_cpu), FPCONV_DEFAULT, GET_H_FR_INT (FLD (f_FRj)));
16784     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
16785     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
16786   }
16787 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
16788   {
16789     SF opval = CGEN_CPU_FPU (current_cpu)->ops->floatsisf (CGEN_CPU_FPU (current_cpu), FPCONV_DEFAULT, GET_H_FR_INT (ADDSI (FLD (f_FRj), 1)));
16790     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ADDSI (FLD (f_FRk), 1), opval);
16791     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
16792   }
16793 }
16794
16795   return vpc;
16796 #undef FLD
16797 }
16798
16799 /* nfdstoi: nfdstoi$pack $FRj,$FRintk */
16800
16801 static SEM_PC
16802 SEM_FN_NAME (frvbf,nfdstoi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16803 {
16804 #define FLD(f) abuf->fields.sfmt_fdstoi.f
16805   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16806   int UNUSED written = 0;
16807   IADDR UNUSED pc = abuf->addr;
16808   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16809
16810 {
16811 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
16812   {
16813     SI opval = CGEN_CPU_FPU (current_cpu)->ops->fixsfsi (CGEN_CPU_FPU (current_cpu), FPCONV_DEFAULT, GET_H_FR (FLD (f_FRj)));
16814     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
16815     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
16816   }
16817 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
16818   {
16819     USI opval = CGEN_CPU_FPU (current_cpu)->ops->fixsfsi (CGEN_CPU_FPU (current_cpu), FPCONV_DEFAULT, GET_H_FR (ADDSI (FLD (f_FRj), 1)));
16820     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ADDSI (FLD (f_FRk), 1), opval);
16821     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
16822   }
16823 }
16824
16825   return vpc;
16826 #undef FLD
16827 }
16828
16829 /* cfitos: cfitos$pack $FRintj,$FRk,$CCi,$cond */
16830
16831 static SEM_PC
16832 SEM_FN_NAME (frvbf,cfitos) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16833 {
16834 #define FLD(f) abuf->fields.sfmt_cfitos.f
16835   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16836   int UNUSED written = 0;
16837   IADDR UNUSED pc = abuf->addr;
16838   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16839
16840 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
16841   {
16842     SF opval = CGEN_CPU_FPU (current_cpu)->ops->floatsisf (CGEN_CPU_FPU (current_cpu), FPCONV_DEFAULT, GET_H_FR_INT (FLD (f_FRj)));
16843     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
16844     written |= (1 << 3);
16845     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
16846   }
16847 }
16848
16849   abuf->written = written;
16850   return vpc;
16851 #undef FLD
16852 }
16853
16854 /* cfstoi: cfstoi$pack $FRj,$FRintk,$CCi,$cond */
16855
16856 static SEM_PC
16857 SEM_FN_NAME (frvbf,cfstoi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16858 {
16859 #define FLD(f) abuf->fields.sfmt_cfstoi.f
16860   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16861   int UNUSED written = 0;
16862   IADDR UNUSED pc = abuf->addr;
16863   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16864
16865 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
16866   {
16867     SI opval = CGEN_CPU_FPU (current_cpu)->ops->fixsfsi (CGEN_CPU_FPU (current_cpu), FPCONV_DEFAULT, GET_H_FR (FLD (f_FRj)));
16868     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
16869     written |= (1 << 3);
16870     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
16871   }
16872 }
16873
16874   abuf->written = written;
16875   return vpc;
16876 #undef FLD
16877 }
16878
16879 /* nfitos: nfitos$pack $FRintj,$FRk */
16880
16881 static SEM_PC
16882 SEM_FN_NAME (frvbf,nfitos) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16883 {
16884 #define FLD(f) abuf->fields.sfmt_fditos.f
16885   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16886   int UNUSED written = 0;
16887   IADDR UNUSED pc = abuf->addr;
16888   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16889
16890 {
16891 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
16892   {
16893     SF opval = CGEN_CPU_FPU (current_cpu)->ops->floatsisf (CGEN_CPU_FPU (current_cpu), FPCONV_DEFAULT, GET_H_FR_INT (FLD (f_FRj)));
16894     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
16895     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
16896   }
16897 }
16898
16899   return vpc;
16900 #undef FLD
16901 }
16902
16903 /* nfstoi: nfstoi$pack $FRj,$FRintk */
16904
16905 static SEM_PC
16906 SEM_FN_NAME (frvbf,nfstoi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16907 {
16908 #define FLD(f) abuf->fields.sfmt_fdstoi.f
16909   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16910   int UNUSED written = 0;
16911   IADDR UNUSED pc = abuf->addr;
16912   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16913
16914 {
16915 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
16916   {
16917     SI opval = CGEN_CPU_FPU (current_cpu)->ops->fixsfsi (CGEN_CPU_FPU (current_cpu), FPCONV_DEFAULT, GET_H_FR (FLD (f_FRj)));
16918     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
16919     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
16920   }
16921 }
16922
16923   return vpc;
16924 #undef FLD
16925 }
16926
16927 /* fmovs: fmovs$pack $FRj,$FRk */
16928
16929 static SEM_PC
16930 SEM_FN_NAME (frvbf,fmovs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16931 {
16932 #define FLD(f) abuf->fields.sfmt_cfmadds.f
16933   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16934   int UNUSED written = 0;
16935   IADDR UNUSED pc = abuf->addr;
16936   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16937
16938   {
16939     SF opval = GET_H_FR (FLD (f_FRj));
16940     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
16941     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
16942   }
16943
16944   return vpc;
16945 #undef FLD
16946 }
16947
16948 /* fmovd: fmovd$pack $FRdoublej,$FRdoublek */
16949
16950 static SEM_PC
16951 SEM_FN_NAME (frvbf,fmovd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16952 {
16953 #define FLD(f) abuf->fields.sfmt_fmaddd.f
16954   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16955   int UNUSED written = 0;
16956   IADDR UNUSED pc = abuf->addr;
16957   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16958
16959   {
16960     DF opval = GET_H_FR_DOUBLE (FLD (f_FRj));
16961     sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
16962     TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
16963   }
16964
16965   return vpc;
16966 #undef FLD
16967 }
16968
16969 /* fdmovs: fdmovs$pack $FRj,$FRk */
16970
16971 static SEM_PC
16972 SEM_FN_NAME (frvbf,fdmovs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16973 {
16974 #define FLD(f) abuf->fields.sfmt_fdmadds.f
16975   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16976   int UNUSED written = 0;
16977   IADDR UNUSED pc = abuf->addr;
16978   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16979
16980 {
16981   {
16982     SF opval = GET_H_FR (FLD (f_FRj));
16983     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
16984     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
16985   }
16986   {
16987     SF opval = GET_H_FR (ADDSI (FLD (f_FRj), 1));
16988     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ADDSI (FLD (f_FRk), 1), opval);
16989     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
16990   }
16991 }
16992
16993   return vpc;
16994 #undef FLD
16995 }
16996
16997 /* cfmovs: cfmovs$pack $FRj,$FRk,$CCi,$cond */
16998
16999 static SEM_PC
17000 SEM_FN_NAME (frvbf,cfmovs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17001 {
17002 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17003   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17004   int UNUSED written = 0;
17005   IADDR UNUSED pc = abuf->addr;
17006   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17007
17008 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
17009   {
17010     SF opval = GET_H_FR (FLD (f_FRj));
17011     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17012     written |= (1 << 3);
17013     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17014   }
17015 }
17016
17017   abuf->written = written;
17018   return vpc;
17019 #undef FLD
17020 }
17021
17022 /* fnegs: fnegs$pack $FRj,$FRk */
17023
17024 static SEM_PC
17025 SEM_FN_NAME (frvbf,fnegs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17026 {
17027 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17028   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17029   int UNUSED written = 0;
17030   IADDR UNUSED pc = abuf->addr;
17031   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17032
17033   {
17034     SF opval = CGEN_CPU_FPU (current_cpu)->ops->negsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17035     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17036     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17037   }
17038
17039   return vpc;
17040 #undef FLD
17041 }
17042
17043 /* fnegd: fnegd$pack $FRdoublej,$FRdoublek */
17044
17045 static SEM_PC
17046 SEM_FN_NAME (frvbf,fnegd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17047 {
17048 #define FLD(f) abuf->fields.sfmt_fmaddd.f
17049   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17050   int UNUSED written = 0;
17051   IADDR UNUSED pc = abuf->addr;
17052   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17053
17054   {
17055     DF opval = CGEN_CPU_FPU (current_cpu)->ops->negdf (CGEN_CPU_FPU (current_cpu), GET_H_FR_DOUBLE (FLD (f_FRj)));
17056     sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
17057     TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
17058   }
17059
17060   return vpc;
17061 #undef FLD
17062 }
17063
17064 /* fdnegs: fdnegs$pack $FRj,$FRk */
17065
17066 static SEM_PC
17067 SEM_FN_NAME (frvbf,fdnegs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17068 {
17069 #define FLD(f) abuf->fields.sfmt_fdmadds.f
17070   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17071   int UNUSED written = 0;
17072   IADDR UNUSED pc = abuf->addr;
17073   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17074
17075 {
17076   {
17077     SF opval = CGEN_CPU_FPU (current_cpu)->ops->negsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17078     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17079     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17080   }
17081   {
17082     SF opval = CGEN_CPU_FPU (current_cpu)->ops->negsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (ADDSI (FLD (f_FRj), 1)));
17083     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ADDSI (FLD (f_FRk), 1), opval);
17084     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17085   }
17086 }
17087
17088   return vpc;
17089 #undef FLD
17090 }
17091
17092 /* cfnegs: cfnegs$pack $FRj,$FRk,$CCi,$cond */
17093
17094 static SEM_PC
17095 SEM_FN_NAME (frvbf,cfnegs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17096 {
17097 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17098   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17099   int UNUSED written = 0;
17100   IADDR UNUSED pc = abuf->addr;
17101   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17102
17103 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
17104   {
17105     SF opval = CGEN_CPU_FPU (current_cpu)->ops->negsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17106     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17107     written |= (1 << 3);
17108     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17109   }
17110 }
17111
17112   abuf->written = written;
17113   return vpc;
17114 #undef FLD
17115 }
17116
17117 /* fabss: fabss$pack $FRj,$FRk */
17118
17119 static SEM_PC
17120 SEM_FN_NAME (frvbf,fabss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17121 {
17122 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17123   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17124   int UNUSED written = 0;
17125   IADDR UNUSED pc = abuf->addr;
17126   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17127
17128   {
17129     SF opval = CGEN_CPU_FPU (current_cpu)->ops->abssf (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17130     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17131     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17132   }
17133
17134   return vpc;
17135 #undef FLD
17136 }
17137
17138 /* fabsd: fabsd$pack $FRdoublej,$FRdoublek */
17139
17140 static SEM_PC
17141 SEM_FN_NAME (frvbf,fabsd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17142 {
17143 #define FLD(f) abuf->fields.sfmt_fmaddd.f
17144   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17145   int UNUSED written = 0;
17146   IADDR UNUSED pc = abuf->addr;
17147   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17148
17149   {
17150     DF opval = CGEN_CPU_FPU (current_cpu)->ops->absdf (CGEN_CPU_FPU (current_cpu), GET_H_FR_DOUBLE (FLD (f_FRj)));
17151     sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
17152     TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
17153   }
17154
17155   return vpc;
17156 #undef FLD
17157 }
17158
17159 /* fdabss: fdabss$pack $FRj,$FRk */
17160
17161 static SEM_PC
17162 SEM_FN_NAME (frvbf,fdabss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17163 {
17164 #define FLD(f) abuf->fields.sfmt_fdmadds.f
17165   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17166   int UNUSED written = 0;
17167   IADDR UNUSED pc = abuf->addr;
17168   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17169
17170 {
17171   {
17172     SF opval = CGEN_CPU_FPU (current_cpu)->ops->abssf (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17173     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17174     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17175   }
17176   {
17177     SF opval = CGEN_CPU_FPU (current_cpu)->ops->abssf (CGEN_CPU_FPU (current_cpu), GET_H_FR (ADDSI (FLD (f_FRj), 1)));
17178     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ADDSI (FLD (f_FRk), 1), opval);
17179     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17180   }
17181 }
17182
17183   return vpc;
17184 #undef FLD
17185 }
17186
17187 /* cfabss: cfabss$pack $FRj,$FRk,$CCi,$cond */
17188
17189 static SEM_PC
17190 SEM_FN_NAME (frvbf,cfabss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17191 {
17192 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17193   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17194   int UNUSED written = 0;
17195   IADDR UNUSED pc = abuf->addr;
17196   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17197
17198 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
17199   {
17200     SF opval = CGEN_CPU_FPU (current_cpu)->ops->abssf (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17201     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17202     written |= (1 << 3);
17203     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17204   }
17205 }
17206
17207   abuf->written = written;
17208   return vpc;
17209 #undef FLD
17210 }
17211
17212 /* fsqrts: fsqrts$pack $FRj,$FRk */
17213
17214 static SEM_PC
17215 SEM_FN_NAME (frvbf,fsqrts) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17216 {
17217 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17218   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17219   int UNUSED written = 0;
17220   IADDR UNUSED pc = abuf->addr;
17221   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17222
17223   {
17224     SF opval = CGEN_CPU_FPU (current_cpu)->ops->sqrtsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17225     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17226     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17227   }
17228
17229   return vpc;
17230 #undef FLD
17231 }
17232
17233 /* fdsqrts: fdsqrts$pack $FRj,$FRk */
17234
17235 static SEM_PC
17236 SEM_FN_NAME (frvbf,fdsqrts) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17237 {
17238 #define FLD(f) abuf->fields.sfmt_fdmadds.f
17239   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17240   int UNUSED written = 0;
17241   IADDR UNUSED pc = abuf->addr;
17242   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17243
17244 {
17245   {
17246     SF opval = CGEN_CPU_FPU (current_cpu)->ops->sqrtsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17247     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17248     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17249   }
17250   {
17251     SF opval = CGEN_CPU_FPU (current_cpu)->ops->sqrtsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (ADDSI (FLD (f_FRj), 1)));
17252     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ADDSI (FLD (f_FRk), 1), opval);
17253     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17254   }
17255 }
17256
17257   return vpc;
17258 #undef FLD
17259 }
17260
17261 /* nfdsqrts: nfdsqrts$pack $FRj,$FRk */
17262
17263 static SEM_PC
17264 SEM_FN_NAME (frvbf,nfdsqrts) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17265 {
17266 #define FLD(f) abuf->fields.sfmt_fdmadds.f
17267   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17268   int UNUSED written = 0;
17269   IADDR UNUSED pc = abuf->addr;
17270   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17271
17272 {
17273 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
17274   {
17275     SF opval = CGEN_CPU_FPU (current_cpu)->ops->sqrtsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17276     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17277     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17278   }
17279 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
17280   {
17281     SF opval = CGEN_CPU_FPU (current_cpu)->ops->sqrtsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (ADDSI (FLD (f_FRj), 1)));
17282     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ADDSI (FLD (f_FRk), 1), opval);
17283     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17284   }
17285 }
17286
17287   return vpc;
17288 #undef FLD
17289 }
17290
17291 /* fsqrtd: fsqrtd$pack $FRdoublej,$FRdoublek */
17292
17293 static SEM_PC
17294 SEM_FN_NAME (frvbf,fsqrtd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17295 {
17296 #define FLD(f) abuf->fields.sfmt_fmaddd.f
17297   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17298   int UNUSED written = 0;
17299   IADDR UNUSED pc = abuf->addr;
17300   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17301
17302   {
17303     DF opval = CGEN_CPU_FPU (current_cpu)->ops->sqrtdf (CGEN_CPU_FPU (current_cpu), GET_H_FR_DOUBLE (FLD (f_FRj)));
17304     sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
17305     TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
17306   }
17307
17308   return vpc;
17309 #undef FLD
17310 }
17311
17312 /* cfsqrts: cfsqrts$pack $FRj,$FRk,$CCi,$cond */
17313
17314 static SEM_PC
17315 SEM_FN_NAME (frvbf,cfsqrts) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17316 {
17317 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17318   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17319   int UNUSED written = 0;
17320   IADDR UNUSED pc = abuf->addr;
17321   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17322
17323 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
17324   {
17325     SF opval = CGEN_CPU_FPU (current_cpu)->ops->sqrtsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17326     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17327     written |= (1 << 3);
17328     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17329   }
17330 }
17331
17332   abuf->written = written;
17333   return vpc;
17334 #undef FLD
17335 }
17336
17337 /* nfsqrts: nfsqrts$pack $FRj,$FRk */
17338
17339 static SEM_PC
17340 SEM_FN_NAME (frvbf,nfsqrts) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17341 {
17342 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17343   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17344   int UNUSED written = 0;
17345   IADDR UNUSED pc = abuf->addr;
17346   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17347
17348 {
17349 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
17350   {
17351     SF opval = CGEN_CPU_FPU (current_cpu)->ops->sqrtsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17352     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17353     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17354   }
17355 }
17356
17357   return vpc;
17358 #undef FLD
17359 }
17360
17361 /* fadds: fadds$pack $FRi,$FRj,$FRk */
17362
17363 static SEM_PC
17364 SEM_FN_NAME (frvbf,fadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17365 {
17366 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17367   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17368   int UNUSED written = 0;
17369   IADDR UNUSED pc = abuf->addr;
17370   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17371
17372   {
17373     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)));
17374     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17375     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17376   }
17377
17378   return vpc;
17379 #undef FLD
17380 }
17381
17382 /* fsubs: fsubs$pack $FRi,$FRj,$FRk */
17383
17384 static SEM_PC
17385 SEM_FN_NAME (frvbf,fsubs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17386 {
17387 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17388   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17389   int UNUSED written = 0;
17390   IADDR UNUSED pc = abuf->addr;
17391   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17392
17393   {
17394     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)));
17395     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17396     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17397   }
17398
17399   return vpc;
17400 #undef FLD
17401 }
17402
17403 /* fmuls: fmuls$pack $FRi,$FRj,$FRk */
17404
17405 static SEM_PC
17406 SEM_FN_NAME (frvbf,fmuls) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17407 {
17408 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17409   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17410   int UNUSED written = 0;
17411   IADDR UNUSED pc = abuf->addr;
17412   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17413
17414   {
17415     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)));
17416     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17417     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17418   }
17419
17420   return vpc;
17421 #undef FLD
17422 }
17423
17424 /* fdivs: fdivs$pack $FRi,$FRj,$FRk */
17425
17426 static SEM_PC
17427 SEM_FN_NAME (frvbf,fdivs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17428 {
17429 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17430   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17431   int UNUSED written = 0;
17432   IADDR UNUSED pc = abuf->addr;
17433   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17434
17435   {
17436     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)));
17437     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17438     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17439   }
17440
17441   return vpc;
17442 #undef FLD
17443 }
17444
17445 /* faddd: faddd$pack $FRdoublei,$FRdoublej,$FRdoublek */
17446
17447 static SEM_PC
17448 SEM_FN_NAME (frvbf,faddd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17449 {
17450 #define FLD(f) abuf->fields.sfmt_fmaddd.f
17451   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17452   int UNUSED written = 0;
17453   IADDR UNUSED pc = abuf->addr;
17454   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17455
17456   {
17457     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)));
17458     sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
17459     TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
17460   }
17461
17462   return vpc;
17463 #undef FLD
17464 }
17465
17466 /* fsubd: fsubd$pack $FRdoublei,$FRdoublej,$FRdoublek */
17467
17468 static SEM_PC
17469 SEM_FN_NAME (frvbf,fsubd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17470 {
17471 #define FLD(f) abuf->fields.sfmt_fmaddd.f
17472   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17473   int UNUSED written = 0;
17474   IADDR UNUSED pc = abuf->addr;
17475   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17476
17477   {
17478     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)));
17479     sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
17480     TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
17481   }
17482
17483   return vpc;
17484 #undef FLD
17485 }
17486
17487 /* fmuld: fmuld$pack $FRdoublei,$FRdoublej,$FRdoublek */
17488
17489 static SEM_PC
17490 SEM_FN_NAME (frvbf,fmuld) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17491 {
17492 #define FLD(f) abuf->fields.sfmt_fmaddd.f
17493   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17494   int UNUSED written = 0;
17495   IADDR UNUSED pc = abuf->addr;
17496   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17497
17498   {
17499     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)));
17500     sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
17501     TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
17502   }
17503
17504   return vpc;
17505 #undef FLD
17506 }
17507
17508 /* fdivd: fdivd$pack $FRdoublei,$FRdoublej,$FRdoublek */
17509
17510 static SEM_PC
17511 SEM_FN_NAME (frvbf,fdivd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17512 {
17513 #define FLD(f) abuf->fields.sfmt_fmaddd.f
17514   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17515   int UNUSED written = 0;
17516   IADDR UNUSED pc = abuf->addr;
17517   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17518
17519   {
17520     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)));
17521     sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
17522     TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
17523   }
17524
17525   return vpc;
17526 #undef FLD
17527 }
17528
17529 /* cfadds: cfadds$pack $FRi,$FRj,$FRk,$CCi,$cond */
17530
17531 static SEM_PC
17532 SEM_FN_NAME (frvbf,cfadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17533 {
17534 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17535   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17536   int UNUSED written = 0;
17537   IADDR UNUSED pc = abuf->addr;
17538   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17539
17540 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
17541   {
17542     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)));
17543     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17544     written |= (1 << 4);
17545     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17546   }
17547 }
17548
17549   abuf->written = written;
17550   return vpc;
17551 #undef FLD
17552 }
17553
17554 /* cfsubs: cfsubs$pack $FRi,$FRj,$FRk,$CCi,$cond */
17555
17556 static SEM_PC
17557 SEM_FN_NAME (frvbf,cfsubs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17558 {
17559 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17560   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17561   int UNUSED written = 0;
17562   IADDR UNUSED pc = abuf->addr;
17563   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17564
17565 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
17566   {
17567     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)));
17568     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17569     written |= (1 << 4);
17570     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17571   }
17572 }
17573
17574   abuf->written = written;
17575   return vpc;
17576 #undef FLD
17577 }
17578
17579 /* cfmuls: cfmuls$pack $FRi,$FRj,$FRk,$CCi,$cond */
17580
17581 static SEM_PC
17582 SEM_FN_NAME (frvbf,cfmuls) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17583 {
17584 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17585   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17586   int UNUSED written = 0;
17587   IADDR UNUSED pc = abuf->addr;
17588   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17589
17590 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
17591   {
17592     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)));
17593     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17594     written |= (1 << 4);
17595     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17596   }
17597 }
17598
17599   abuf->written = written;
17600   return vpc;
17601 #undef FLD
17602 }
17603
17604 /* cfdivs: cfdivs$pack $FRi,$FRj,$FRk,$CCi,$cond */
17605
17606 static SEM_PC
17607 SEM_FN_NAME (frvbf,cfdivs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17608 {
17609 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17610   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17611   int UNUSED written = 0;
17612   IADDR UNUSED pc = abuf->addr;
17613   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17614
17615 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
17616   {
17617     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)));
17618     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17619     written |= (1 << 4);
17620     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17621   }
17622 }
17623
17624   abuf->written = written;
17625   return vpc;
17626 #undef FLD
17627 }
17628
17629 /* nfadds: nfadds$pack $FRi,$FRj,$FRk */
17630
17631 static SEM_PC
17632 SEM_FN_NAME (frvbf,nfadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17633 {
17634 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17635   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17636   int UNUSED written = 0;
17637   IADDR UNUSED pc = abuf->addr;
17638   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17639
17640 {
17641 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
17642   {
17643     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)));
17644     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17645     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17646   }
17647 }
17648
17649   return vpc;
17650 #undef FLD
17651 }
17652
17653 /* nfsubs: nfsubs$pack $FRi,$FRj,$FRk */
17654
17655 static SEM_PC
17656 SEM_FN_NAME (frvbf,nfsubs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17657 {
17658 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17659   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17660   int UNUSED written = 0;
17661   IADDR UNUSED pc = abuf->addr;
17662   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17663
17664 {
17665 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
17666   {
17667     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)));
17668     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17669     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17670   }
17671 }
17672
17673   return vpc;
17674 #undef FLD
17675 }
17676
17677 /* nfmuls: nfmuls$pack $FRi,$FRj,$FRk */
17678
17679 static SEM_PC
17680 SEM_FN_NAME (frvbf,nfmuls) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17681 {
17682 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17683   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17684   int UNUSED written = 0;
17685   IADDR UNUSED pc = abuf->addr;
17686   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17687
17688 {
17689 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
17690   {
17691     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)));
17692     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17693     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17694   }
17695 }
17696
17697   return vpc;
17698 #undef FLD
17699 }
17700
17701 /* nfdivs: nfdivs$pack $FRi,$FRj,$FRk */
17702
17703 static SEM_PC
17704 SEM_FN_NAME (frvbf,nfdivs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17705 {
17706 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17707   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17708   int UNUSED written = 0;
17709   IADDR UNUSED pc = abuf->addr;
17710   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17711
17712 {
17713 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
17714   {
17715     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)));
17716     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17717     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17718   }
17719 }
17720
17721   return vpc;
17722 #undef FLD
17723 }
17724
17725 /* fcmps: fcmps$pack $FRi,$FRj,$FCCi_2 */
17726
17727 static SEM_PC
17728 SEM_FN_NAME (frvbf,fcmps) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17729 {
17730 #define FLD(f) abuf->fields.sfmt_cfcmps.f
17731   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17732   int UNUSED written = 0;
17733   IADDR UNUSED pc = abuf->addr;
17734   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17735
17736 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)))) {
17737   {
17738     UQI opval = 2;
17739     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17740     written |= (1 << 2);
17741     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17742   }
17743 } else {
17744 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)))) {
17745   {
17746     UQI opval = 8;
17747     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17748     written |= (1 << 2);
17749     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17750   }
17751 } else {
17752 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)))) {
17753   {
17754     UQI opval = 4;
17755     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17756     written |= (1 << 2);
17757     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17758   }
17759 } else {
17760   {
17761     UQI opval = 1;
17762     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17763     written |= (1 << 2);
17764     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17765   }
17766 }
17767 }
17768 }
17769
17770   abuf->written = written;
17771   return vpc;
17772 #undef FLD
17773 }
17774
17775 /* fcmpd: fcmpd$pack $FRdoublei,$FRdoublej,$FCCi_2 */
17776
17777 static SEM_PC
17778 SEM_FN_NAME (frvbf,fcmpd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17779 {
17780 #define FLD(f) abuf->fields.sfmt_fcmpd.f
17781   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17782   int UNUSED written = 0;
17783   IADDR UNUSED pc = abuf->addr;
17784   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17785
17786 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)))) {
17787   {
17788     UQI opval = 2;
17789     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17790     written |= (1 << 2);
17791     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17792   }
17793 } else {
17794 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)))) {
17795   {
17796     UQI opval = 8;
17797     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17798     written |= (1 << 2);
17799     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17800   }
17801 } else {
17802 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)))) {
17803   {
17804     UQI opval = 4;
17805     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17806     written |= (1 << 2);
17807     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17808   }
17809 } else {
17810   {
17811     UQI opval = 1;
17812     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17813     written |= (1 << 2);
17814     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17815   }
17816 }
17817 }
17818 }
17819
17820   abuf->written = written;
17821   return vpc;
17822 #undef FLD
17823 }
17824
17825 /* cfcmps: cfcmps$pack $FRi,$FRj,$FCCi_2,$CCi,$cond */
17826
17827 static SEM_PC
17828 SEM_FN_NAME (frvbf,cfcmps) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17829 {
17830 #define FLD(f) abuf->fields.sfmt_cfcmps.f
17831   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17832   int UNUSED written = 0;
17833   IADDR UNUSED pc = abuf->addr;
17834   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17835
17836 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
17837 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)))) {
17838   {
17839     UQI opval = 2;
17840     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17841     written |= (1 << 4);
17842     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17843   }
17844 } else {
17845 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)))) {
17846   {
17847     UQI opval = 8;
17848     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17849     written |= (1 << 4);
17850     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17851   }
17852 } else {
17853 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)))) {
17854   {
17855     UQI opval = 4;
17856     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17857     written |= (1 << 4);
17858     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17859   }
17860 } else {
17861   {
17862     UQI opval = 1;
17863     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17864     written |= (1 << 4);
17865     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17866   }
17867 }
17868 }
17869 }
17870 }
17871
17872   abuf->written = written;
17873   return vpc;
17874 #undef FLD
17875 }
17876
17877 /* fdcmps: fdcmps$pack $FRi,$FRj,$FCCi_2 */
17878
17879 static SEM_PC
17880 SEM_FN_NAME (frvbf,fdcmps) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17881 {
17882 #define FLD(f) abuf->fields.sfmt_nfdcmps.f
17883   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17884   int UNUSED written = 0;
17885   IADDR UNUSED pc = abuf->addr;
17886   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17887
17888 {
17889 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)))) {
17890   {
17891     UQI opval = 2;
17892     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17893     written |= (1 << 7);
17894     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17895   }
17896 } else {
17897 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)))) {
17898   {
17899     UQI opval = 8;
17900     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17901     written |= (1 << 7);
17902     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17903   }
17904 } else {
17905 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)))) {
17906   {
17907     UQI opval = 4;
17908     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17909     written |= (1 << 7);
17910     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17911   }
17912 } else {
17913   {
17914     UQI opval = 1;
17915     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17916     written |= (1 << 7);
17917     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17918   }
17919 }
17920 }
17921 }
17922 if (CGEN_CPU_FPU (current_cpu)->ops->gtsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (ADDSI (FLD (f_FRi), 1)), GET_H_FR (ADDSI (FLD (f_FRj), 1)))) {
17923   {
17924     UQI opval = 2;
17925     sim_queue_qi_write (current_cpu, & CPU (h_fccr[ADDSI (FLD (f_FCCi_2), 1)]), opval);
17926     written |= (1 << 8);
17927     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17928   }
17929 } else {
17930 if (CGEN_CPU_FPU (current_cpu)->ops->eqsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (ADDSI (FLD (f_FRi), 1)), GET_H_FR (ADDSI (FLD (f_FRj), 1)))) {
17931   {
17932     UQI opval = 8;
17933     sim_queue_qi_write (current_cpu, & CPU (h_fccr[ADDSI (FLD (f_FCCi_2), 1)]), opval);
17934     written |= (1 << 8);
17935     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17936   }
17937 } else {
17938 if (CGEN_CPU_FPU (current_cpu)->ops->ltsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (ADDSI (FLD (f_FRi), 1)), GET_H_FR (ADDSI (FLD (f_FRj), 1)))) {
17939   {
17940     UQI opval = 4;
17941     sim_queue_qi_write (current_cpu, & CPU (h_fccr[ADDSI (FLD (f_FCCi_2), 1)]), opval);
17942     written |= (1 << 8);
17943     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17944   }
17945 } else {
17946   {
17947     UQI opval = 1;
17948     sim_queue_qi_write (current_cpu, & CPU (h_fccr[ADDSI (FLD (f_FCCi_2), 1)]), opval);
17949     written |= (1 << 8);
17950     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17951   }
17952 }
17953 }
17954 }
17955 }
17956
17957   abuf->written = written;
17958   return vpc;
17959 #undef FLD
17960 }
17961
17962 /* fmadds: fmadds$pack $FRi,$FRj,$FRk */
17963
17964 static SEM_PC
17965 SEM_FN_NAME (frvbf,fmadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17966 {
17967 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17968   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17969   int UNUSED written = 0;
17970   IADDR UNUSED pc = abuf->addr;
17971   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17972
17973   {
17974     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)));
17975     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17976     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17977   }
17978
17979   return vpc;
17980 #undef FLD
17981 }
17982
17983 /* fmsubs: fmsubs$pack $FRi,$FRj,$FRk */
17984
17985 static SEM_PC
17986 SEM_FN_NAME (frvbf,fmsubs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17987 {
17988 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17989   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17990   int UNUSED written = 0;
17991   IADDR UNUSED pc = abuf->addr;
17992   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17993
17994   {
17995     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)));
17996     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17997     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17998   }
17999
18000   return vpc;
18001 #undef FLD
18002 }
18003
18004 /* fmaddd: fmaddd$pack $FRdoublei,$FRdoublej,$FRdoublek */
18005
18006 static SEM_PC
18007 SEM_FN_NAME (frvbf,fmaddd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18008 {
18009 #define FLD(f) abuf->fields.sfmt_fmaddd.f
18010   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18011   int UNUSED written = 0;
18012   IADDR UNUSED pc = abuf->addr;
18013   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18014
18015   {
18016     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)));
18017     sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
18018     TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
18019   }
18020
18021   return vpc;
18022 #undef FLD
18023 }
18024
18025 /* fmsubd: fmsubd$pack $FRdoublei,$FRdoublej,$FRdoublek */
18026
18027 static SEM_PC
18028 SEM_FN_NAME (frvbf,fmsubd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18029 {
18030 #define FLD(f) abuf->fields.sfmt_fmaddd.f
18031   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18032   int UNUSED written = 0;
18033   IADDR UNUSED pc = abuf->addr;
18034   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18035
18036   {
18037     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)));
18038     sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
18039     TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
18040   }
18041
18042   return vpc;
18043 #undef FLD
18044 }
18045
18046 /* fdmadds: fdmadds$pack $FRi,$FRj,$FRk */
18047
18048 static SEM_PC
18049 SEM_FN_NAME (frvbf,fdmadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18050 {
18051 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18052   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18053   int UNUSED written = 0;
18054   IADDR UNUSED pc = abuf->addr;
18055   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18056
18057 {
18058   {
18059     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)));
18060     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18061     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18062   }
18063   {
18064     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 (ADDSI (FLD (f_FRi), 1)), GET_H_FR (ADDSI (FLD (f_FRj), 1))), GET_H_FR (ADDSI (FLD (f_FRk), 1)));
18065     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ADDSI (FLD (f_FRk), 1), opval);
18066     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18067   }
18068 }
18069
18070   return vpc;
18071 #undef FLD
18072 }
18073
18074 /* nfdmadds: nfdmadds$pack $FRi,$FRj,$FRk */
18075
18076 static SEM_PC
18077 SEM_FN_NAME (frvbf,nfdmadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18078 {
18079 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18080   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18081   int UNUSED written = 0;
18082   IADDR UNUSED pc = abuf->addr;
18083   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18084
18085 {
18086 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18087   {
18088     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)));
18089     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18090     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18091   }
18092 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18093   {
18094     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 (ADDSI (FLD (f_FRi), 1)), GET_H_FR (ADDSI (FLD (f_FRj), 1))), GET_H_FR (ADDSI (FLD (f_FRk), 1)));
18095     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ADDSI (FLD (f_FRk), 1), opval);
18096     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18097   }
18098 }
18099
18100   return vpc;
18101 #undef FLD
18102 }
18103
18104 /* cfmadds: cfmadds$pack $FRi,$FRj,$FRk,$CCi,$cond */
18105
18106 static SEM_PC
18107 SEM_FN_NAME (frvbf,cfmadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18108 {
18109 #define FLD(f) abuf->fields.sfmt_cfmadds.f
18110   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18111   int UNUSED written = 0;
18112   IADDR UNUSED pc = abuf->addr;
18113   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18114
18115 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
18116   {
18117     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)));
18118     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18119     written |= (1 << 5);
18120     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18121   }
18122 }
18123
18124   abuf->written = written;
18125   return vpc;
18126 #undef FLD
18127 }
18128
18129 /* cfmsubs: cfmsubs$pack $FRi,$FRj,$FRk,$CCi,$cond */
18130
18131 static SEM_PC
18132 SEM_FN_NAME (frvbf,cfmsubs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18133 {
18134 #define FLD(f) abuf->fields.sfmt_cfmadds.f
18135   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18136   int UNUSED written = 0;
18137   IADDR UNUSED pc = abuf->addr;
18138   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18139
18140 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
18141   {
18142     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)));
18143     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18144     written |= (1 << 5);
18145     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18146   }
18147 }
18148
18149   abuf->written = written;
18150   return vpc;
18151 #undef FLD
18152 }
18153
18154 /* nfmadds: nfmadds$pack $FRi,$FRj,$FRk */
18155
18156 static SEM_PC
18157 SEM_FN_NAME (frvbf,nfmadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18158 {
18159 #define FLD(f) abuf->fields.sfmt_cfmadds.f
18160   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18161   int UNUSED written = 0;
18162   IADDR UNUSED pc = abuf->addr;
18163   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18164
18165 {
18166 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18167   {
18168     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)));
18169     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18170     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18171   }
18172 }
18173
18174   return vpc;
18175 #undef FLD
18176 }
18177
18178 /* nfmsubs: nfmsubs$pack $FRi,$FRj,$FRk */
18179
18180 static SEM_PC
18181 SEM_FN_NAME (frvbf,nfmsubs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18182 {
18183 #define FLD(f) abuf->fields.sfmt_cfmadds.f
18184   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18185   int UNUSED written = 0;
18186   IADDR UNUSED pc = abuf->addr;
18187   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18188
18189 {
18190 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18191   {
18192     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)));
18193     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18194     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18195   }
18196 }
18197
18198   return vpc;
18199 #undef FLD
18200 }
18201
18202 /* fmas: fmas$pack $FRi,$FRj,$FRk */
18203
18204 static SEM_PC
18205 SEM_FN_NAME (frvbf,fmas) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18206 {
18207 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18208   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18209   int UNUSED written = 0;
18210   IADDR UNUSED pc = abuf->addr;
18211   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18212
18213 {
18214   {
18215     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)));
18216     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18217     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18218   }
18219   {
18220     SF opval = CGEN_CPU_FPU (current_cpu)->ops->addsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (ADDSI (FLD (f_FRi), 1)), GET_H_FR (ADDSI (FLD (f_FRj), 1)));
18221     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ADDSI (FLD (f_FRk), 1), opval);
18222     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18223   }
18224 }
18225
18226   return vpc;
18227 #undef FLD
18228 }
18229
18230 /* fmss: fmss$pack $FRi,$FRj,$FRk */
18231
18232 static SEM_PC
18233 SEM_FN_NAME (frvbf,fmss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18234 {
18235 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18236   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18237   int UNUSED written = 0;
18238   IADDR UNUSED pc = abuf->addr;
18239   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18240
18241 {
18242   {
18243     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)));
18244     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18245     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18246   }
18247   {
18248     SF opval = CGEN_CPU_FPU (current_cpu)->ops->subsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (ADDSI (FLD (f_FRi), 1)), GET_H_FR (ADDSI (FLD (f_FRj), 1)));
18249     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ADDSI (FLD (f_FRk), 1), opval);
18250     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18251   }
18252 }
18253
18254   return vpc;
18255 #undef FLD
18256 }
18257
18258 /* fdmas: fdmas$pack $FRi,$FRj,$FRk */
18259
18260 static SEM_PC
18261 SEM_FN_NAME (frvbf,fdmas) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18262 {
18263 #define FLD(f) abuf->fields.sfmt_fdmas.f
18264   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18265   int UNUSED written = 0;
18266   IADDR UNUSED pc = abuf->addr;
18267   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18268
18269 {
18270   {
18271     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)));
18272     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18273     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18274   }
18275   {
18276     SF opval = CGEN_CPU_FPU (current_cpu)->ops->addsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (ADDSI (FLD (f_FRi), 1)), GET_H_FR (ADDSI (FLD (f_FRj), 1)));
18277     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ADDSI (FLD (f_FRk), 1), opval);
18278     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18279   }
18280   {
18281     SF opval = CGEN_CPU_FPU (current_cpu)->ops->mulsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (ADDSI (FLD (f_FRi), 2)), GET_H_FR (ADDSI (FLD (f_FRj), 2)));
18282     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ADDSI (FLD (f_FRk), 2), opval);
18283     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18284   }
18285   {
18286     SF opval = CGEN_CPU_FPU (current_cpu)->ops->addsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (ADDSI (FLD (f_FRi), 3)), GET_H_FR (ADDSI (FLD (f_FRj), 3)));
18287     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ADDSI (FLD (f_FRk), 3), opval);
18288     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18289   }
18290 }
18291
18292   return vpc;
18293 #undef FLD
18294 }
18295
18296 /* fdmss: fdmss$pack $FRi,$FRj,$FRk */
18297
18298 static SEM_PC
18299 SEM_FN_NAME (frvbf,fdmss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18300 {
18301 #define FLD(f) abuf->fields.sfmt_fdmas.f
18302   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18303   int UNUSED written = 0;
18304   IADDR UNUSED pc = abuf->addr;
18305   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18306
18307 {
18308   {
18309     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)));
18310     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18311     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18312   }
18313   {
18314     SF opval = CGEN_CPU_FPU (current_cpu)->ops->subsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (ADDSI (FLD (f_FRi), 1)), GET_H_FR (ADDSI (FLD (f_FRj), 1)));
18315     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ADDSI (FLD (f_FRk), 1), opval);
18316     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18317   }
18318   {
18319     SF opval = CGEN_CPU_FPU (current_cpu)->ops->mulsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (ADDSI (FLD (f_FRi), 2)), GET_H_FR (ADDSI (FLD (f_FRj), 2)));
18320     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ADDSI (FLD (f_FRk), 2), opval);
18321     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18322   }
18323   {
18324     SF opval = CGEN_CPU_FPU (current_cpu)->ops->subsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (ADDSI (FLD (f_FRi), 3)), GET_H_FR (ADDSI (FLD (f_FRj), 3)));
18325     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ADDSI (FLD (f_FRk), 3), opval);
18326     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18327   }
18328 }
18329
18330   return vpc;
18331 #undef FLD
18332 }
18333
18334 /* nfdmas: nfdmas$pack $FRi,$FRj,$FRk */
18335
18336 static SEM_PC
18337 SEM_FN_NAME (frvbf,nfdmas) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18338 {
18339 #define FLD(f) abuf->fields.sfmt_fdmas.f
18340   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18341   int UNUSED written = 0;
18342   IADDR UNUSED pc = abuf->addr;
18343   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18344
18345 {
18346 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18347 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18348 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 2));
18349 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 3));
18350   {
18351     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)));
18352     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18353     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18354   }
18355   {
18356     SF opval = CGEN_CPU_FPU (current_cpu)->ops->addsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (ADDSI (FLD (f_FRi), 1)), GET_H_FR (ADDSI (FLD (f_FRj), 1)));
18357     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ADDSI (FLD (f_FRk), 1), opval);
18358     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18359   }
18360   {
18361     SF opval = CGEN_CPU_FPU (current_cpu)->ops->mulsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (ADDSI (FLD (f_FRi), 2)), GET_H_FR (ADDSI (FLD (f_FRj), 2)));
18362     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ADDSI (FLD (f_FRk), 2), opval);
18363     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18364   }
18365   {
18366     SF opval = CGEN_CPU_FPU (current_cpu)->ops->addsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (ADDSI (FLD (f_FRi), 3)), GET_H_FR (ADDSI (FLD (f_FRj), 3)));
18367     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ADDSI (FLD (f_FRk), 3), opval);
18368     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18369   }
18370 }
18371
18372   return vpc;
18373 #undef FLD
18374 }
18375
18376 /* nfdmss: nfdmss$pack $FRi,$FRj,$FRk */
18377
18378 static SEM_PC
18379 SEM_FN_NAME (frvbf,nfdmss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18380 {
18381 #define FLD(f) abuf->fields.sfmt_fdmas.f
18382   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18383   int UNUSED written = 0;
18384   IADDR UNUSED pc = abuf->addr;
18385   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18386
18387 {
18388 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18389 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18390 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 2));
18391 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 3));
18392   {
18393     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)));
18394     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18395     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18396   }
18397   {
18398     SF opval = CGEN_CPU_FPU (current_cpu)->ops->subsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (ADDSI (FLD (f_FRi), 1)), GET_H_FR (ADDSI (FLD (f_FRj), 1)));
18399     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ADDSI (FLD (f_FRk), 1), opval);
18400     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18401   }
18402   {
18403     SF opval = CGEN_CPU_FPU (current_cpu)->ops->mulsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (ADDSI (FLD (f_FRi), 2)), GET_H_FR (ADDSI (FLD (f_FRj), 2)));
18404     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ADDSI (FLD (f_FRk), 2), opval);
18405     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18406   }
18407   {
18408     SF opval = CGEN_CPU_FPU (current_cpu)->ops->subsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (ADDSI (FLD (f_FRi), 3)), GET_H_FR (ADDSI (FLD (f_FRj), 3)));
18409     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ADDSI (FLD (f_FRk), 3), opval);
18410     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18411   }
18412 }
18413
18414   return vpc;
18415 #undef FLD
18416 }
18417
18418 /* cfmas: cfmas$pack $FRi,$FRj,$FRk,$CCi,$cond */
18419
18420 static SEM_PC
18421 SEM_FN_NAME (frvbf,cfmas) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18422 {
18423 #define FLD(f) abuf->fields.sfmt_cfmas.f
18424   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18425   int UNUSED written = 0;
18426   IADDR UNUSED pc = abuf->addr;
18427   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18428
18429 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
18430 {
18431   {
18432     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)));
18433     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18434     written |= (1 << 9);
18435     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18436   }
18437   {
18438     SF opval = CGEN_CPU_FPU (current_cpu)->ops->addsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (ADDSI (FLD (f_FRi), 1)), GET_H_FR (ADDSI (FLD (f_FRj), 1)));
18439     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ADDSI (FLD (f_FRk), 1), opval);
18440     written |= (1 << 10);
18441     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18442   }
18443 }
18444 }
18445
18446   abuf->written = written;
18447   return vpc;
18448 #undef FLD
18449 }
18450
18451 /* cfmss: cfmss$pack $FRi,$FRj,$FRk,$CCi,$cond */
18452
18453 static SEM_PC
18454 SEM_FN_NAME (frvbf,cfmss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18455 {
18456 #define FLD(f) abuf->fields.sfmt_cfmas.f
18457   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18458   int UNUSED written = 0;
18459   IADDR UNUSED pc = abuf->addr;
18460   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18461
18462 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
18463 {
18464   {
18465     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)));
18466     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18467     written |= (1 << 9);
18468     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18469   }
18470   {
18471     SF opval = CGEN_CPU_FPU (current_cpu)->ops->subsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (ADDSI (FLD (f_FRi), 1)), GET_H_FR (ADDSI (FLD (f_FRj), 1)));
18472     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ADDSI (FLD (f_FRk), 1), opval);
18473     written |= (1 << 10);
18474     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18475   }
18476 }
18477 }
18478
18479   abuf->written = written;
18480   return vpc;
18481 #undef FLD
18482 }
18483
18484 /* fmad: fmad$pack $FRi,$FRj,$FRk */
18485
18486 static SEM_PC
18487 SEM_FN_NAME (frvbf,fmad) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18488 {
18489 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18490   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18491   int UNUSED written = 0;
18492   IADDR UNUSED pc = abuf->addr;
18493   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18494
18495 {
18496   {
18497     SF opval = CGEN_CPU_FPU (current_cpu)->ops->ftruncdfsf (CGEN_CPU_FPU (current_cpu), FPCONV_DEFAULT, CGEN_CPU_FPU (current_cpu)->ops->muldf (CGEN_CPU_FPU (current_cpu), CGEN_CPU_FPU (current_cpu)->ops->fextsfdf (CGEN_CPU_FPU (current_cpu), FPCONV_DEFAULT, GET_H_FR (FLD (f_FRi))), CGEN_CPU_FPU (current_cpu)->ops->fextsfdf (CGEN_CPU_FPU (current_cpu), FPCONV_DEFAULT, GET_H_FR (FLD (f_FRj)))));
18498     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18499     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18500   }
18501   {
18502     SF opval = CGEN_CPU_FPU (current_cpu)->ops->ftruncdfsf (CGEN_CPU_FPU (current_cpu), FPCONV_DEFAULT, CGEN_CPU_FPU (current_cpu)->ops->adddf (CGEN_CPU_FPU (current_cpu), CGEN_CPU_FPU (current_cpu)->ops->fextsfdf (CGEN_CPU_FPU (current_cpu), FPCONV_DEFAULT, GET_H_FR (ADDSI (FLD (f_FRi), 1))), CGEN_CPU_FPU (current_cpu)->ops->fextsfdf (CGEN_CPU_FPU (current_cpu), FPCONV_DEFAULT, GET_H_FR (ADDSI (FLD (f_FRj), 1)))));
18503     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ADDSI (FLD (f_FRk), 1), opval);
18504     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18505   }
18506 }
18507
18508   return vpc;
18509 #undef FLD
18510 }
18511
18512 /* fmsd: fmsd$pack $FRi,$FRj,$FRk */
18513
18514 static SEM_PC
18515 SEM_FN_NAME (frvbf,fmsd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18516 {
18517 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18518   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18519   int UNUSED written = 0;
18520   IADDR UNUSED pc = abuf->addr;
18521   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18522
18523 {
18524   {
18525     SF opval = CGEN_CPU_FPU (current_cpu)->ops->ftruncdfsf (CGEN_CPU_FPU (current_cpu), FPCONV_DEFAULT, CGEN_CPU_FPU (current_cpu)->ops->muldf (CGEN_CPU_FPU (current_cpu), CGEN_CPU_FPU (current_cpu)->ops->fextsfdf (CGEN_CPU_FPU (current_cpu), FPCONV_DEFAULT, GET_H_FR (FLD (f_FRi))), CGEN_CPU_FPU (current_cpu)->ops->fextsfdf (CGEN_CPU_FPU (current_cpu), FPCONV_DEFAULT, GET_H_FR (FLD (f_FRj)))));
18526     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18527     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18528   }
18529   {
18530     SF opval = CGEN_CPU_FPU (current_cpu)->ops->ftruncdfsf (CGEN_CPU_FPU (current_cpu), FPCONV_DEFAULT, CGEN_CPU_FPU (current_cpu)->ops->subdf (CGEN_CPU_FPU (current_cpu), CGEN_CPU_FPU (current_cpu)->ops->fextsfdf (CGEN_CPU_FPU (current_cpu), FPCONV_DEFAULT, GET_H_FR (ADDSI (FLD (f_FRi), 1))), CGEN_CPU_FPU (current_cpu)->ops->fextsfdf (CGEN_CPU_FPU (current_cpu), FPCONV_DEFAULT, GET_H_FR (ADDSI (FLD (f_FRj), 1)))));
18531     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ADDSI (FLD (f_FRk), 1), opval);
18532     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18533   }
18534 }
18535
18536   return vpc;
18537 #undef FLD
18538 }
18539
18540 /* nfmas: nfmas$pack $FRi,$FRj,$FRk */
18541
18542 static SEM_PC
18543 SEM_FN_NAME (frvbf,nfmas) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18544 {
18545 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18546   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18547   int UNUSED written = 0;
18548   IADDR UNUSED pc = abuf->addr;
18549   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18550
18551 {
18552 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18553   {
18554     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)));
18555     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18556     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18557   }
18558 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18559   {
18560     SF opval = CGEN_CPU_FPU (current_cpu)->ops->addsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (ADDSI (FLD (f_FRi), 1)), GET_H_FR (ADDSI (FLD (f_FRj), 1)));
18561     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ADDSI (FLD (f_FRk), 1), opval);
18562     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18563   }
18564 }
18565
18566   return vpc;
18567 #undef FLD
18568 }
18569
18570 /* nfmss: nfmss$pack $FRi,$FRj,$FRk */
18571
18572 static SEM_PC
18573 SEM_FN_NAME (frvbf,nfmss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18574 {
18575 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18576   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18577   int UNUSED written = 0;
18578   IADDR UNUSED pc = abuf->addr;
18579   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18580
18581 {
18582 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18583   {
18584     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)));
18585     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18586     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18587   }
18588 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18589   {
18590     SF opval = CGEN_CPU_FPU (current_cpu)->ops->subsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (ADDSI (FLD (f_FRi), 1)), GET_H_FR (ADDSI (FLD (f_FRj), 1)));
18591     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ADDSI (FLD (f_FRk), 1), opval);
18592     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18593   }
18594 }
18595
18596   return vpc;
18597 #undef FLD
18598 }
18599
18600 /* fdadds: fdadds$pack $FRi,$FRj,$FRk */
18601
18602 static SEM_PC
18603 SEM_FN_NAME (frvbf,fdadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18604 {
18605 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18606   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18607   int UNUSED written = 0;
18608   IADDR UNUSED pc = abuf->addr;
18609   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18610
18611 {
18612   {
18613     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)));
18614     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18615     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18616   }
18617   {
18618     SF opval = CGEN_CPU_FPU (current_cpu)->ops->addsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (ADDSI (FLD (f_FRi), 1)), GET_H_FR (ADDSI (FLD (f_FRj), 1)));
18619     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ADDSI (FLD (f_FRk), 1), opval);
18620     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18621   }
18622 }
18623
18624   return vpc;
18625 #undef FLD
18626 }
18627
18628 /* fdsubs: fdsubs$pack $FRi,$FRj,$FRk */
18629
18630 static SEM_PC
18631 SEM_FN_NAME (frvbf,fdsubs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18632 {
18633 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18634   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18635   int UNUSED written = 0;
18636   IADDR UNUSED pc = abuf->addr;
18637   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18638
18639 {
18640   {
18641     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)));
18642     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18643     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18644   }
18645   {
18646     SF opval = CGEN_CPU_FPU (current_cpu)->ops->subsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (ADDSI (FLD (f_FRi), 1)), GET_H_FR (ADDSI (FLD (f_FRj), 1)));
18647     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ADDSI (FLD (f_FRk), 1), opval);
18648     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18649   }
18650 }
18651
18652   return vpc;
18653 #undef FLD
18654 }
18655
18656 /* fdmuls: fdmuls$pack $FRi,$FRj,$FRk */
18657
18658 static SEM_PC
18659 SEM_FN_NAME (frvbf,fdmuls) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18660 {
18661 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18662   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18663   int UNUSED written = 0;
18664   IADDR UNUSED pc = abuf->addr;
18665   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18666
18667 {
18668   {
18669     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)));
18670     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18671     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18672   }
18673   {
18674     SF opval = CGEN_CPU_FPU (current_cpu)->ops->mulsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (ADDSI (FLD (f_FRi), 1)), GET_H_FR (ADDSI (FLD (f_FRj), 1)));
18675     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ADDSI (FLD (f_FRk), 1), opval);
18676     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18677   }
18678 }
18679
18680   return vpc;
18681 #undef FLD
18682 }
18683
18684 /* fddivs: fddivs$pack $FRi,$FRj,$FRk */
18685
18686 static SEM_PC
18687 SEM_FN_NAME (frvbf,fddivs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18688 {
18689 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18690   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18691   int UNUSED written = 0;
18692   IADDR UNUSED pc = abuf->addr;
18693   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18694
18695 {
18696   {
18697     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)));
18698     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18699     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18700   }
18701   {
18702     SF opval = CGEN_CPU_FPU (current_cpu)->ops->divsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (ADDSI (FLD (f_FRi), 1)), GET_H_FR (ADDSI (FLD (f_FRj), 1)));
18703     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ADDSI (FLD (f_FRk), 1), opval);
18704     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18705   }
18706 }
18707
18708   return vpc;
18709 #undef FLD
18710 }
18711
18712 /* fdsads: fdsads$pack $FRi,$FRj,$FRk */
18713
18714 static SEM_PC
18715 SEM_FN_NAME (frvbf,fdsads) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18716 {
18717 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18718   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18719   int UNUSED written = 0;
18720   IADDR UNUSED pc = abuf->addr;
18721   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18722
18723 {
18724   {
18725     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)));
18726     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18727     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18728   }
18729   {
18730     SF opval = CGEN_CPU_FPU (current_cpu)->ops->subsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (ADDSI (FLD (f_FRi), 1)), GET_H_FR (ADDSI (FLD (f_FRj), 1)));
18731     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ADDSI (FLD (f_FRk), 1), opval);
18732     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18733   }
18734 }
18735
18736   return vpc;
18737 #undef FLD
18738 }
18739
18740 /* fdmulcs: fdmulcs$pack $FRi,$FRj,$FRk */
18741
18742 static SEM_PC
18743 SEM_FN_NAME (frvbf,fdmulcs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18744 {
18745 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18746   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18747   int UNUSED written = 0;
18748   IADDR UNUSED pc = abuf->addr;
18749   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18750
18751 {
18752   {
18753     SF opval = CGEN_CPU_FPU (current_cpu)->ops->mulsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (ADDSI (FLD (f_FRj), 1)));
18754     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18755     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18756   }
18757   {
18758     SF opval = CGEN_CPU_FPU (current_cpu)->ops->mulsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (ADDSI (FLD (f_FRi), 1)), GET_H_FR (FLD (f_FRj)));
18759     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ADDSI (FLD (f_FRk), 1), opval);
18760     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18761   }
18762 }
18763
18764   return vpc;
18765 #undef FLD
18766 }
18767
18768 /* nfdmulcs: nfdmulcs$pack $FRi,$FRj,$FRk */
18769
18770 static SEM_PC
18771 SEM_FN_NAME (frvbf,nfdmulcs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18772 {
18773 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18774   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18775   int UNUSED written = 0;
18776   IADDR UNUSED pc = abuf->addr;
18777   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18778
18779 {
18780 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18781   {
18782     SF opval = CGEN_CPU_FPU (current_cpu)->ops->mulsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (ADDSI (FLD (f_FRj), 1)));
18783     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18784     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18785   }
18786 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18787   {
18788     SF opval = CGEN_CPU_FPU (current_cpu)->ops->mulsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (ADDSI (FLD (f_FRi), 1)), GET_H_FR (FLD (f_FRj)));
18789     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ADDSI (FLD (f_FRk), 1), opval);
18790     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18791   }
18792 }
18793
18794   return vpc;
18795 #undef FLD
18796 }
18797
18798 /* nfdadds: nfdadds$pack $FRi,$FRj,$FRk */
18799
18800 static SEM_PC
18801 SEM_FN_NAME (frvbf,nfdadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18802 {
18803 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18804   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18805   int UNUSED written = 0;
18806   IADDR UNUSED pc = abuf->addr;
18807   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18808
18809 {
18810 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18811   {
18812     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)));
18813     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18814     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18815   }
18816 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18817   {
18818     SF opval = CGEN_CPU_FPU (current_cpu)->ops->addsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (ADDSI (FLD (f_FRi), 1)), GET_H_FR (ADDSI (FLD (f_FRj), 1)));
18819     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ADDSI (FLD (f_FRk), 1), opval);
18820     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18821   }
18822 }
18823
18824   return vpc;
18825 #undef FLD
18826 }
18827
18828 /* nfdsubs: nfdsubs$pack $FRi,$FRj,$FRk */
18829
18830 static SEM_PC
18831 SEM_FN_NAME (frvbf,nfdsubs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18832 {
18833 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18834   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18835   int UNUSED written = 0;
18836   IADDR UNUSED pc = abuf->addr;
18837   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18838
18839 {
18840 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18841   {
18842     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)));
18843     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18844     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18845   }
18846 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18847   {
18848     SF opval = CGEN_CPU_FPU (current_cpu)->ops->subsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (ADDSI (FLD (f_FRi), 1)), GET_H_FR (ADDSI (FLD (f_FRj), 1)));
18849     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ADDSI (FLD (f_FRk), 1), opval);
18850     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18851   }
18852 }
18853
18854   return vpc;
18855 #undef FLD
18856 }
18857
18858 /* nfdmuls: nfdmuls$pack $FRi,$FRj,$FRk */
18859
18860 static SEM_PC
18861 SEM_FN_NAME (frvbf,nfdmuls) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18862 {
18863 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18864   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18865   int UNUSED written = 0;
18866   IADDR UNUSED pc = abuf->addr;
18867   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18868
18869 {
18870 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18871   {
18872     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)));
18873     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18874     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18875   }
18876 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18877   {
18878     SF opval = CGEN_CPU_FPU (current_cpu)->ops->mulsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (ADDSI (FLD (f_FRi), 1)), GET_H_FR (ADDSI (FLD (f_FRj), 1)));
18879     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ADDSI (FLD (f_FRk), 1), opval);
18880     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18881   }
18882 }
18883
18884   return vpc;
18885 #undef FLD
18886 }
18887
18888 /* nfddivs: nfddivs$pack $FRi,$FRj,$FRk */
18889
18890 static SEM_PC
18891 SEM_FN_NAME (frvbf,nfddivs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18892 {
18893 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18894   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18895   int UNUSED written = 0;
18896   IADDR UNUSED pc = abuf->addr;
18897   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18898
18899 {
18900 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18901   {
18902     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)));
18903     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18904     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18905   }
18906 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18907   {
18908     SF opval = CGEN_CPU_FPU (current_cpu)->ops->divsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (ADDSI (FLD (f_FRi), 1)), GET_H_FR (ADDSI (FLD (f_FRj), 1)));
18909     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ADDSI (FLD (f_FRk), 1), opval);
18910     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18911   }
18912 }
18913
18914   return vpc;
18915 #undef FLD
18916 }
18917
18918 /* nfdsads: nfdsads$pack $FRi,$FRj,$FRk */
18919
18920 static SEM_PC
18921 SEM_FN_NAME (frvbf,nfdsads) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18922 {
18923 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18924   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18925   int UNUSED written = 0;
18926   IADDR UNUSED pc = abuf->addr;
18927   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18928
18929 {
18930 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18931   {
18932     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)));
18933     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18934     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18935   }
18936 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18937   {
18938     SF opval = CGEN_CPU_FPU (current_cpu)->ops->subsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (ADDSI (FLD (f_FRi), 1)), GET_H_FR (ADDSI (FLD (f_FRj), 1)));
18939     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ADDSI (FLD (f_FRk), 1), opval);
18940     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18941   }
18942 }
18943
18944   return vpc;
18945 #undef FLD
18946 }
18947
18948 /* nfdcmps: nfdcmps$pack $FRi,$FRj,$FCCi_2 */
18949
18950 static SEM_PC
18951 SEM_FN_NAME (frvbf,nfdcmps) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18952 {
18953 #define FLD(f) abuf->fields.sfmt_nfdcmps.f
18954   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18955   int UNUSED written = 0;
18956   IADDR UNUSED pc = abuf->addr;
18957   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18958
18959 {
18960 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18961 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)))) {
18962   {
18963     UQI opval = 2;
18964     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
18965     written |= (1 << 8);
18966     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
18967   }
18968 } else {
18969 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)))) {
18970   {
18971     UQI opval = 8;
18972     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
18973     written |= (1 << 8);
18974     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
18975   }
18976 } else {
18977 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)))) {
18978   {
18979     UQI opval = 4;
18980     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
18981     written |= (1 << 8);
18982     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
18983   }
18984 } else {
18985   {
18986     UQI opval = 1;
18987     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
18988     written |= (1 << 8);
18989     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
18990   }
18991 }
18992 }
18993 }
18994 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18995 if (CGEN_CPU_FPU (current_cpu)->ops->gtsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (ADDSI (FLD (f_FRi), 1)), GET_H_FR (ADDSI (FLD (f_FRj), 1)))) {
18996   {
18997     UQI opval = 2;
18998     sim_queue_qi_write (current_cpu, & CPU (h_fccr[ADDSI (FLD (f_FCCi_2), 1)]), opval);
18999     written |= (1 << 9);
19000     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
19001   }
19002 } else {
19003 if (CGEN_CPU_FPU (current_cpu)->ops->eqsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (ADDSI (FLD (f_FRi), 1)), GET_H_FR (ADDSI (FLD (f_FRj), 1)))) {
19004   {
19005     UQI opval = 8;
19006     sim_queue_qi_write (current_cpu, & CPU (h_fccr[ADDSI (FLD (f_FCCi_2), 1)]), opval);
19007     written |= (1 << 9);
19008     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
19009   }
19010 } else {
19011 if (CGEN_CPU_FPU (current_cpu)->ops->ltsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (ADDSI (FLD (f_FRi), 1)), GET_H_FR (ADDSI (FLD (f_FRj), 1)))) {
19012   {
19013     UQI opval = 4;
19014     sim_queue_qi_write (current_cpu, & CPU (h_fccr[ADDSI (FLD (f_FCCi_2), 1)]), opval);
19015     written |= (1 << 9);
19016     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
19017   }
19018 } else {
19019   {
19020     UQI opval = 1;
19021     sim_queue_qi_write (current_cpu, & CPU (h_fccr[ADDSI (FLD (f_FCCi_2), 1)]), opval);
19022     written |= (1 << 9);
19023     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
19024   }
19025 }
19026 }
19027 }
19028 }
19029
19030   abuf->written = written;
19031   return vpc;
19032 #undef FLD
19033 }
19034
19035 /* mhsetlos: mhsetlos$pack $u12,$FRklo */
19036
19037 static SEM_PC
19038 SEM_FN_NAME (frvbf,mhsetlos) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19039 {
19040 #define FLD(f) abuf->fields.sfmt_mhsetlos.f
19041   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19042   int UNUSED written = 0;
19043   IADDR UNUSED pc = abuf->addr;
19044   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19045
19046   {
19047     UHI opval = FLD (f_u12);
19048     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, FLD (f_FRk), opval);
19049     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19050   }
19051
19052   return vpc;
19053 #undef FLD
19054 }
19055
19056 /* mhsethis: mhsethis$pack $u12,$FRkhi */
19057
19058 static SEM_PC
19059 SEM_FN_NAME (frvbf,mhsethis) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19060 {
19061 #define FLD(f) abuf->fields.sfmt_mhsethis.f
19062   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19063   int UNUSED written = 0;
19064   IADDR UNUSED pc = abuf->addr;
19065   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19066
19067   {
19068     UHI opval = FLD (f_u12);
19069     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, FLD (f_FRk), opval);
19070     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19071   }
19072
19073   return vpc;
19074 #undef FLD
19075 }
19076
19077 /* mhdsets: mhdsets$pack $u12,$FRintk */
19078
19079 static SEM_PC
19080 SEM_FN_NAME (frvbf,mhdsets) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19081 {
19082 #define FLD(f) abuf->fields.sfmt_mhdsets.f
19083   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19084   int UNUSED written = 0;
19085   IADDR UNUSED pc = abuf->addr;
19086   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19087
19088 {
19089   {
19090     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
19091     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19092     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19093   }
19094   {
19095     UHI opval = FLD (f_u12);
19096     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
19097     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19098   }
19099   {
19100     UHI opval = FLD (f_u12);
19101     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
19102     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19103   }
19104 }
19105
19106   return vpc;
19107 #undef FLD
19108 }
19109
19110 /* mhsetloh: mhsetloh$pack $s5,$FRklo */
19111
19112 static SEM_PC
19113 SEM_FN_NAME (frvbf,mhsetloh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19114 {
19115 #define FLD(f) abuf->fields.sfmt_mhsetloh.f
19116   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19117   int UNUSED written = 0;
19118   IADDR UNUSED pc = abuf->addr;
19119   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19120
19121 {
19122   HI tmp_tmp;
19123   tmp_tmp = GET_H_FR_LO (FLD (f_FRk));
19124   tmp_tmp = ANDHI (tmp_tmp, 2047);
19125   tmp_tmp = ORHI (tmp_tmp, SLLSI (ANDSI (FLD (f_s5), 31), 11));
19126   {
19127     UHI opval = tmp_tmp;
19128     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, FLD (f_FRk), opval);
19129     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19130   }
19131 }
19132
19133   return vpc;
19134 #undef FLD
19135 }
19136
19137 /* mhsethih: mhsethih$pack $s5,$FRkhi */
19138
19139 static SEM_PC
19140 SEM_FN_NAME (frvbf,mhsethih) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19141 {
19142 #define FLD(f) abuf->fields.sfmt_mhsethih.f
19143   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19144   int UNUSED written = 0;
19145   IADDR UNUSED pc = abuf->addr;
19146   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19147
19148 {
19149   HI tmp_tmp;
19150   tmp_tmp = GET_H_FR_HI (FLD (f_FRk));
19151   tmp_tmp = ANDHI (tmp_tmp, 2047);
19152   tmp_tmp = ORHI (tmp_tmp, SLLSI (ANDSI (FLD (f_s5), 31), 11));
19153   {
19154     UHI opval = tmp_tmp;
19155     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, FLD (f_FRk), opval);
19156     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19157   }
19158 }
19159
19160   return vpc;
19161 #undef FLD
19162 }
19163
19164 /* mhdseth: mhdseth$pack $s5,$FRintk */
19165
19166 static SEM_PC
19167 SEM_FN_NAME (frvbf,mhdseth) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19168 {
19169 #define FLD(f) abuf->fields.sfmt_mhdseth.f
19170   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19171   int UNUSED written = 0;
19172   IADDR UNUSED pc = abuf->addr;
19173   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19174
19175 {
19176   {
19177     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
19178     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19179     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19180   }
19181 {
19182   HI tmp_tmp;
19183   tmp_tmp = GET_H_FR_HI (ADDSI (FLD (f_FRk), 0));
19184   tmp_tmp = ANDHI (tmp_tmp, 2047);
19185   tmp_tmp = ORHI (tmp_tmp, SLLSI (ANDSI (FLD (f_s5), 31), 11));
19186   {
19187     UHI opval = tmp_tmp;
19188     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
19189     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19190   }
19191 }
19192 {
19193   HI tmp_tmp;
19194   tmp_tmp = GET_H_FR_LO (ADDSI (FLD (f_FRk), 0));
19195   tmp_tmp = ANDHI (tmp_tmp, 2047);
19196   tmp_tmp = ORHI (tmp_tmp, SLLSI (ANDSI (FLD (f_s5), 31), 11));
19197   {
19198     UHI opval = tmp_tmp;
19199     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
19200     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19201   }
19202 }
19203 }
19204
19205   return vpc;
19206 #undef FLD
19207 }
19208
19209 /* mand: mand$pack $FRinti,$FRintj,$FRintk */
19210
19211 static SEM_PC
19212 SEM_FN_NAME (frvbf,mand) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19213 {
19214 #define FLD(f) abuf->fields.sfmt_mwcut.f
19215   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19216   int UNUSED written = 0;
19217   IADDR UNUSED pc = abuf->addr;
19218   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19219
19220   {
19221     SI opval = ANDSI (GET_H_FR_INT (FLD (f_FRi)), GET_H_FR_INT (FLD (f_FRj)));
19222     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19223     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19224   }
19225
19226   return vpc;
19227 #undef FLD
19228 }
19229
19230 /* mor: mor$pack $FRinti,$FRintj,$FRintk */
19231
19232 static SEM_PC
19233 SEM_FN_NAME (frvbf,mor) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19234 {
19235 #define FLD(f) abuf->fields.sfmt_mwcut.f
19236   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19237   int UNUSED written = 0;
19238   IADDR UNUSED pc = abuf->addr;
19239   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19240
19241   {
19242     SI opval = ORSI (GET_H_FR_INT (FLD (f_FRi)), GET_H_FR_INT (FLD (f_FRj)));
19243     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19244     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19245   }
19246
19247   return vpc;
19248 #undef FLD
19249 }
19250
19251 /* mxor: mxor$pack $FRinti,$FRintj,$FRintk */
19252
19253 static SEM_PC
19254 SEM_FN_NAME (frvbf,mxor) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19255 {
19256 #define FLD(f) abuf->fields.sfmt_mwcut.f
19257   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19258   int UNUSED written = 0;
19259   IADDR UNUSED pc = abuf->addr;
19260   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19261
19262   {
19263     SI opval = XORSI (GET_H_FR_INT (FLD (f_FRi)), GET_H_FR_INT (FLD (f_FRj)));
19264     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19265     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19266   }
19267
19268   return vpc;
19269 #undef FLD
19270 }
19271
19272 /* cmand: cmand$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
19273
19274 static SEM_PC
19275 SEM_FN_NAME (frvbf,cmand) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19276 {
19277 #define FLD(f) abuf->fields.sfmt_cmand.f
19278   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19279   int UNUSED written = 0;
19280   IADDR UNUSED pc = abuf->addr;
19281   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19282
19283 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
19284   {
19285     SI opval = ANDSI (GET_H_FR_INT (FLD (f_FRi)), GET_H_FR_INT (FLD (f_FRj)));
19286     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19287     written |= (1 << 4);
19288     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19289   }
19290 }
19291
19292   abuf->written = written;
19293   return vpc;
19294 #undef FLD
19295 }
19296
19297 /* cmor: cmor$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
19298
19299 static SEM_PC
19300 SEM_FN_NAME (frvbf,cmor) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19301 {
19302 #define FLD(f) abuf->fields.sfmt_cmand.f
19303   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19304   int UNUSED written = 0;
19305   IADDR UNUSED pc = abuf->addr;
19306   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19307
19308 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
19309   {
19310     SI opval = ORSI (GET_H_FR_INT (FLD (f_FRi)), GET_H_FR_INT (FLD (f_FRj)));
19311     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19312     written |= (1 << 4);
19313     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19314   }
19315 }
19316
19317   abuf->written = written;
19318   return vpc;
19319 #undef FLD
19320 }
19321
19322 /* cmxor: cmxor$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
19323
19324 static SEM_PC
19325 SEM_FN_NAME (frvbf,cmxor) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19326 {
19327 #define FLD(f) abuf->fields.sfmt_cmand.f
19328   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19329   int UNUSED written = 0;
19330   IADDR UNUSED pc = abuf->addr;
19331   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19332
19333 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
19334   {
19335     SI opval = XORSI (GET_H_FR_INT (FLD (f_FRi)), GET_H_FR_INT (FLD (f_FRj)));
19336     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19337     written |= (1 << 4);
19338     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19339   }
19340 }
19341
19342   abuf->written = written;
19343   return vpc;
19344 #undef FLD
19345 }
19346
19347 /* mnot: mnot$pack $FRintj,$FRintk */
19348
19349 static SEM_PC
19350 SEM_FN_NAME (frvbf,mnot) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19351 {
19352 #define FLD(f) abuf->fields.sfmt_mcut.f
19353   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19354   int UNUSED written = 0;
19355   IADDR UNUSED pc = abuf->addr;
19356   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19357
19358   {
19359     SI opval = INVSI (GET_H_FR_INT (FLD (f_FRj)));
19360     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19361     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19362   }
19363
19364   return vpc;
19365 #undef FLD
19366 }
19367
19368 /* cmnot: cmnot$pack $FRintj,$FRintk,$CCi,$cond */
19369
19370 static SEM_PC
19371 SEM_FN_NAME (frvbf,cmnot) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19372 {
19373 #define FLD(f) abuf->fields.sfmt_cmand.f
19374   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19375   int UNUSED written = 0;
19376   IADDR UNUSED pc = abuf->addr;
19377   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19378
19379 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
19380   {
19381     SI opval = INVSI (GET_H_FR_INT (FLD (f_FRj)));
19382     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19383     written |= (1 << 3);
19384     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19385   }
19386 }
19387
19388   abuf->written = written;
19389   return vpc;
19390 #undef FLD
19391 }
19392
19393 /* mrotli: mrotli$pack $FRinti,$u6,$FRintk */
19394
19395 static SEM_PC
19396 SEM_FN_NAME (frvbf,mrotli) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19397 {
19398 #define FLD(f) abuf->fields.sfmt_mwcuti.f
19399   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19400   int UNUSED written = 0;
19401   IADDR UNUSED pc = abuf->addr;
19402   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19403
19404   {
19405     SI opval = ROLSI (GET_H_FR_INT (FLD (f_FRi)), ANDSI (FLD (f_u6), 31));
19406     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19407     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19408   }
19409
19410   return vpc;
19411 #undef FLD
19412 }
19413
19414 /* mrotri: mrotri$pack $FRinti,$u6,$FRintk */
19415
19416 static SEM_PC
19417 SEM_FN_NAME (frvbf,mrotri) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19418 {
19419 #define FLD(f) abuf->fields.sfmt_mwcuti.f
19420   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19421   int UNUSED written = 0;
19422   IADDR UNUSED pc = abuf->addr;
19423   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19424
19425   {
19426     SI opval = RORSI (GET_H_FR_INT (FLD (f_FRi)), ANDSI (FLD (f_u6), 31));
19427     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19428     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19429   }
19430
19431   return vpc;
19432 #undef FLD
19433 }
19434
19435 /* mwcut: mwcut$pack $FRinti,$FRintj,$FRintk */
19436
19437 static SEM_PC
19438 SEM_FN_NAME (frvbf,mwcut) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19439 {
19440 #define FLD(f) abuf->fields.sfmt_mwcut.f
19441   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19442   int UNUSED written = 0;
19443   IADDR UNUSED pc = abuf->addr;
19444   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19445
19446   {
19447     SI opval = frvbf_cut (current_cpu, GET_H_FR_INT (FLD (f_FRi)), GET_H_FR_INT (ADDSI (FLD (f_FRi), 1)), GET_H_FR_INT (FLD (f_FRj)));
19448     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19449     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19450   }
19451
19452   return vpc;
19453 #undef FLD
19454 }
19455
19456 /* mwcuti: mwcuti$pack $FRinti,$u6,$FRintk */
19457
19458 static SEM_PC
19459 SEM_FN_NAME (frvbf,mwcuti) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19460 {
19461 #define FLD(f) abuf->fields.sfmt_mwcuti.f
19462   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19463   int UNUSED written = 0;
19464   IADDR UNUSED pc = abuf->addr;
19465   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19466
19467   {
19468     SI opval = frvbf_cut (current_cpu, GET_H_FR_INT (FLD (f_FRi)), GET_H_FR_INT (ADDSI (FLD (f_FRi), 1)), FLD (f_u6));
19469     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19470     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19471   }
19472
19473   return vpc;
19474 #undef FLD
19475 }
19476
19477 /* mcut: mcut$pack $ACC40Si,$FRintj,$FRintk */
19478
19479 static SEM_PC
19480 SEM_FN_NAME (frvbf,mcut) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19481 {
19482 #define FLD(f) abuf->fields.sfmt_mcut.f
19483   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19484   int UNUSED written = 0;
19485   IADDR UNUSED pc = abuf->addr;
19486   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19487
19488   {
19489     SI opval = frvbf_media_cut (current_cpu, GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_FR_INT (FLD (f_FRj)));
19490     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19491     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19492   }
19493
19494   return vpc;
19495 #undef FLD
19496 }
19497
19498 /* mcuti: mcuti$pack $ACC40Si,$s6,$FRintk */
19499
19500 static SEM_PC
19501 SEM_FN_NAME (frvbf,mcuti) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19502 {
19503 #define FLD(f) abuf->fields.sfmt_mcuti.f
19504   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19505   int UNUSED written = 0;
19506   IADDR UNUSED pc = abuf->addr;
19507   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19508
19509   {
19510     SI opval = frvbf_media_cut (current_cpu, GET_H_ACC40S (FLD (f_ACC40Si)), FLD (f_s6));
19511     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19512     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19513   }
19514
19515   return vpc;
19516 #undef FLD
19517 }
19518
19519 /* mcutss: mcutss$pack $ACC40Si,$FRintj,$FRintk */
19520
19521 static SEM_PC
19522 SEM_FN_NAME (frvbf,mcutss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19523 {
19524 #define FLD(f) abuf->fields.sfmt_mcut.f
19525   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19526   int UNUSED written = 0;
19527   IADDR UNUSED pc = abuf->addr;
19528   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19529
19530   {
19531     SI opval = frvbf_media_cut_ss (current_cpu, GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_FR_INT (FLD (f_FRj)));
19532     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19533     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19534   }
19535
19536   return vpc;
19537 #undef FLD
19538 }
19539
19540 /* mcutssi: mcutssi$pack $ACC40Si,$s6,$FRintk */
19541
19542 static SEM_PC
19543 SEM_FN_NAME (frvbf,mcutssi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19544 {
19545 #define FLD(f) abuf->fields.sfmt_mcuti.f
19546   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19547   int UNUSED written = 0;
19548   IADDR UNUSED pc = abuf->addr;
19549   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19550
19551   {
19552     SI opval = frvbf_media_cut_ss (current_cpu, GET_H_ACC40S (FLD (f_ACC40Si)), FLD (f_s6));
19553     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19554     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19555   }
19556
19557   return vpc;
19558 #undef FLD
19559 }
19560
19561 /* mdcutssi: mdcutssi$pack $ACC40Si,$s6,$FRintkeven */
19562
19563 static SEM_PC
19564 SEM_FN_NAME (frvbf,mdcutssi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19565 {
19566 #define FLD(f) abuf->fields.sfmt_mdcutssi.f
19567   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19568   int UNUSED written = 0;
19569   IADDR UNUSED pc = abuf->addr;
19570   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19571
19572 if (ANDSI (FLD (f_ACC40Si), SUBSI (2, 1))) {
19573 frvbf_media_acc_not_aligned (current_cpu);
19574 } else {
19575 if (ANDSI (FLD (f_FRk), SUBSI (2, 1))) {
19576 frvbf_media_register_not_aligned (current_cpu);
19577 } else {
19578 {
19579   {
19580     SI opval = frvbf_media_cut_ss (current_cpu, GET_H_ACC40S (FLD (f_ACC40Si)), FLD (f_s6));
19581     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19582     written |= (1 << 5);
19583     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19584   }
19585   {
19586     USI opval = frvbf_media_cut_ss (current_cpu, GET_H_ACC40S (ADDSI (FLD (f_ACC40Si), 1)), FLD (f_s6));
19587     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ADDSI (FLD (f_FRk), 1), opval);
19588     written |= (1 << 6);
19589     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19590   }
19591 }
19592 }
19593 }
19594
19595   abuf->written = written;
19596   return vpc;
19597 #undef FLD
19598 }
19599
19600 /* maveh: maveh$pack $FRinti,$FRintj,$FRintk */
19601
19602 static SEM_PC
19603 SEM_FN_NAME (frvbf,maveh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19604 {
19605 #define FLD(f) abuf->fields.sfmt_mwcut.f
19606   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19607   int UNUSED written = 0;
19608   IADDR UNUSED pc = abuf->addr;
19609   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19610
19611   {
19612     SI opval = frvbf_media_average (current_cpu, GET_H_FR_INT (FLD (f_FRi)), GET_H_FR_INT (FLD (f_FRj)));
19613     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19614     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19615   }
19616
19617   return vpc;
19618 #undef FLD
19619 }
19620
19621 /* msllhi: msllhi$pack $FRinti,$u6,$FRintk */
19622
19623 static SEM_PC
19624 SEM_FN_NAME (frvbf,msllhi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19625 {
19626 #define FLD(f) abuf->fields.sfmt_msllhi.f
19627   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19628   int UNUSED written = 0;
19629   IADDR UNUSED pc = abuf->addr;
19630   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19631
19632 {
19633   {
19634     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRi)));
19635     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRi), opval);
19636     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19637   }
19638   {
19639     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
19640     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19641     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19642   }
19643   {
19644     UHI opval = SLLHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), ANDSI (FLD (f_u6), 15));
19645     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
19646     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19647   }
19648   {
19649     UHI opval = SLLHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), ANDSI (FLD (f_u6), 15));
19650     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
19651     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19652   }
19653 }
19654
19655   return vpc;
19656 #undef FLD
19657 }
19658
19659 /* msrlhi: msrlhi$pack $FRinti,$u6,$FRintk */
19660
19661 static SEM_PC
19662 SEM_FN_NAME (frvbf,msrlhi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19663 {
19664 #define FLD(f) abuf->fields.sfmt_msllhi.f
19665   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19666   int UNUSED written = 0;
19667   IADDR UNUSED pc = abuf->addr;
19668   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19669
19670 {
19671   {
19672     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRi)));
19673     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRi), opval);
19674     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19675   }
19676   {
19677     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
19678     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19679     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19680   }
19681   {
19682     UHI opval = SRLHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), ANDSI (FLD (f_u6), 15));
19683     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
19684     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19685   }
19686   {
19687     UHI opval = SRLHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), ANDSI (FLD (f_u6), 15));
19688     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
19689     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19690   }
19691 }
19692
19693   return vpc;
19694 #undef FLD
19695 }
19696
19697 /* msrahi: msrahi$pack $FRinti,$u6,$FRintk */
19698
19699 static SEM_PC
19700 SEM_FN_NAME (frvbf,msrahi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19701 {
19702 #define FLD(f) abuf->fields.sfmt_msllhi.f
19703   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19704   int UNUSED written = 0;
19705   IADDR UNUSED pc = abuf->addr;
19706   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19707
19708 {
19709   {
19710     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRi)));
19711     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRi), opval);
19712     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19713   }
19714   {
19715     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
19716     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19717     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19718   }
19719   {
19720     UHI opval = SRAHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), ANDSI (FLD (f_u6), 15));
19721     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
19722     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19723   }
19724   {
19725     UHI opval = SRAHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), ANDSI (FLD (f_u6), 15));
19726     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
19727     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19728   }
19729 }
19730
19731   return vpc;
19732 #undef FLD
19733 }
19734
19735 /* mdrotli: mdrotli$pack $FRintieven,$s6,$FRintkeven */
19736
19737 static SEM_PC
19738 SEM_FN_NAME (frvbf,mdrotli) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19739 {
19740 #define FLD(f) abuf->fields.sfmt_mdrotli.f
19741   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19742   int UNUSED written = 0;
19743   IADDR UNUSED pc = abuf->addr;
19744   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19745
19746 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1)))) {
19747 frvbf_media_register_not_aligned (current_cpu);
19748 } else {
19749 {
19750   {
19751     SI opval = ROLSI (GET_H_FR_INT (FLD (f_FRi)), ANDSI (FLD (f_s6), 31));
19752     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19753     written |= (1 << 5);
19754     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19755   }
19756   {
19757     USI opval = ROLSI (GET_H_FR_INT (ADDSI (FLD (f_FRi), 1)), ANDSI (FLD (f_s6), 31));
19758     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ADDSI (FLD (f_FRk), 1), opval);
19759     written |= (1 << 6);
19760     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19761   }
19762 }
19763 }
19764
19765   abuf->written = written;
19766   return vpc;
19767 #undef FLD
19768 }
19769
19770 /* mcplhi: mcplhi$pack $FRinti,$u6,$FRintk */
19771
19772 static SEM_PC
19773 SEM_FN_NAME (frvbf,mcplhi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19774 {
19775 #define FLD(f) abuf->fields.sfmt_mcplhi.f
19776   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19777   int UNUSED written = 0;
19778   IADDR UNUSED pc = abuf->addr;
19779   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19780
19781 {
19782   HI tmp_arg1;
19783   HI tmp_arg2;
19784   HI tmp_shift;
19785   {
19786     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRi)));
19787     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRi), opval);
19788     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19789   }
19790   {
19791     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
19792     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19793     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19794   }
19795   tmp_shift = ANDSI (FLD (f_u6), 15);
19796   tmp_arg1 = SLLHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), tmp_shift);
19797 if (NEHI (tmp_shift, 0)) {
19798 {
19799   tmp_arg2 = GET_H_FR_HI (ADDSI (FLD (f_FRi), 1));
19800   tmp_arg2 = SRLHI (SLLHI (tmp_arg2, SUBSI (15, tmp_shift)), SUBSI (15, tmp_shift));
19801   tmp_arg1 = ORHI (tmp_arg1, tmp_arg2);
19802 }
19803 }
19804   {
19805     UHI opval = tmp_arg1;
19806     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
19807     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19808   }
19809 }
19810
19811   return vpc;
19812 #undef FLD
19813 }
19814
19815 /* mcpli: mcpli$pack $FRinti,$u6,$FRintk */
19816
19817 static SEM_PC
19818 SEM_FN_NAME (frvbf,mcpli) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19819 {
19820 #define FLD(f) abuf->fields.sfmt_mwcuti.f
19821   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19822   int UNUSED written = 0;
19823   IADDR UNUSED pc = abuf->addr;
19824   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19825
19826 {
19827   SI tmp_tmp;
19828   SI tmp_shift;
19829   tmp_shift = ANDSI (FLD (f_u6), 31);
19830   tmp_tmp = SLLSI (GET_H_FR_INT (FLD (f_FRi)), tmp_shift);
19831 if (NESI (tmp_shift, 0)) {
19832 {
19833   SI tmp_tmp1;
19834   tmp_tmp1 = SRLSI (SLLSI (GET_H_FR_INT (ADDSI (FLD (f_FRi), 1)), SUBSI (31, tmp_shift)), SUBSI (31, tmp_shift));
19835   tmp_tmp = ORSI (tmp_tmp, tmp_tmp1);
19836 }
19837 }
19838   {
19839     SI opval = tmp_tmp;
19840     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19841     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19842   }
19843 }
19844
19845   return vpc;
19846 #undef FLD
19847 }
19848
19849 /* msaths: msaths$pack $FRinti,$FRintj,$FRintk */
19850
19851 static SEM_PC
19852 SEM_FN_NAME (frvbf,msaths) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19853 {
19854 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
19855   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19856   int UNUSED written = 0;
19857   IADDR UNUSED pc = abuf->addr;
19858   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19859
19860 {
19861   HI tmp_argihi;
19862   HI tmp_argilo;
19863   HI tmp_argjhi;
19864   HI tmp_argjlo;
19865 {
19866   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
19867   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
19868   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
19869   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
19870 }
19871 if (GTHI (tmp_argihi, tmp_argjhi)) {
19872   {
19873     UHI opval = tmp_argjhi;
19874     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
19875     written |= (1 << 9);
19876     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19877   }
19878 } else {
19879 if (LTHI (tmp_argihi, INVHI (tmp_argjhi))) {
19880   {
19881     UHI opval = INVHI (tmp_argjhi);
19882     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
19883     written |= (1 << 9);
19884     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19885   }
19886 } else {
19887   {
19888     UHI opval = tmp_argihi;
19889     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
19890     written |= (1 << 9);
19891     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19892   }
19893 }
19894 }
19895 if (GTHI (tmp_argilo, tmp_argjlo)) {
19896   {
19897     UHI opval = tmp_argjlo;
19898     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
19899     written |= (1 << 10);
19900     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19901   }
19902 } else {
19903 if (LTHI (tmp_argilo, INVHI (tmp_argjlo))) {
19904   {
19905     UHI opval = INVHI (tmp_argjlo);
19906     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
19907     written |= (1 << 10);
19908     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19909   }
19910 } else {
19911   {
19912     UHI opval = tmp_argilo;
19913     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
19914     written |= (1 << 10);
19915     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19916   }
19917 }
19918 }
19919 }
19920
19921   abuf->written = written;
19922   return vpc;
19923 #undef FLD
19924 }
19925
19926 /* mqsaths: mqsaths$pack $FRintieven,$FRintjeven,$FRintkeven */
19927
19928 static SEM_PC
19929 SEM_FN_NAME (frvbf,mqsaths) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19930 {
19931 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
19932   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19933   int UNUSED written = 0;
19934   IADDR UNUSED pc = abuf->addr;
19935   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19936
19937 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
19938 frvbf_media_register_not_aligned (current_cpu);
19939 } else {
19940 {
19941   HI tmp_argihi;
19942   HI tmp_argilo;
19943   HI tmp_argjhi;
19944   HI tmp_argjlo;
19945   {
19946     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
19947     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19948     written |= (1 << 14);
19949     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19950   }
19951 {
19952   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
19953   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
19954   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
19955   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
19956 }
19957 if (GTHI (tmp_argihi, tmp_argjhi)) {
19958   {
19959     UHI opval = tmp_argjhi;
19960     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
19961     written |= (1 << 15);
19962     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19963   }
19964 } else {
19965 if (LTHI (tmp_argihi, INVHI (tmp_argjhi))) {
19966   {
19967     UHI opval = INVHI (tmp_argjhi);
19968     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
19969     written |= (1 << 15);
19970     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19971   }
19972 } else {
19973   {
19974     UHI opval = tmp_argihi;
19975     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
19976     written |= (1 << 15);
19977     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19978   }
19979 }
19980 }
19981 if (GTHI (tmp_argilo, tmp_argjlo)) {
19982   {
19983     UHI opval = tmp_argjlo;
19984     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
19985     written |= (1 << 17);
19986     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19987   }
19988 } else {
19989 if (LTHI (tmp_argilo, INVHI (tmp_argjlo))) {
19990   {
19991     UHI opval = INVHI (tmp_argjlo);
19992     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
19993     written |= (1 << 17);
19994     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19995   }
19996 } else {
19997   {
19998     UHI opval = tmp_argilo;
19999     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
20000     written |= (1 << 17);
20001     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20002   }
20003 }
20004 }
20005 {
20006   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20007   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20008   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20009   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20010 }
20011 if (GTHI (tmp_argihi, tmp_argjhi)) {
20012   {
20013     UHI opval = tmp_argjhi;
20014     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 1), opval);
20015     written |= (1 << 16);
20016     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20017   }
20018 } else {
20019 if (LTHI (tmp_argihi, INVHI (tmp_argjhi))) {
20020   {
20021     UHI opval = INVHI (tmp_argjhi);
20022     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 1), opval);
20023     written |= (1 << 16);
20024     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20025   }
20026 } else {
20027   {
20028     UHI opval = tmp_argihi;
20029     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 1), opval);
20030     written |= (1 << 16);
20031     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20032   }
20033 }
20034 }
20035 if (GTHI (tmp_argilo, tmp_argjlo)) {
20036   {
20037     UHI opval = tmp_argjlo;
20038     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 1), opval);
20039     written |= (1 << 18);
20040     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20041   }
20042 } else {
20043 if (LTHI (tmp_argilo, INVHI (tmp_argjlo))) {
20044   {
20045     UHI opval = INVHI (tmp_argjlo);
20046     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 1), opval);
20047     written |= (1 << 18);
20048     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20049   }
20050 } else {
20051   {
20052     UHI opval = tmp_argilo;
20053     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 1), opval);
20054     written |= (1 << 18);
20055     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20056   }
20057 }
20058 }
20059 }
20060 }
20061
20062   abuf->written = written;
20063   return vpc;
20064 #undef FLD
20065 }
20066
20067 /* msathu: msathu$pack $FRinti,$FRintj,$FRintk */
20068
20069 static SEM_PC
20070 SEM_FN_NAME (frvbf,msathu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20071 {
20072 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
20073   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20074   int UNUSED written = 0;
20075   IADDR UNUSED pc = abuf->addr;
20076   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20077
20078 {
20079   UHI tmp_argihi;
20080   UHI tmp_argilo;
20081   UHI tmp_argjhi;
20082   UHI tmp_argjlo;
20083 {
20084   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20085   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20086   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20087   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20088 }
20089 if (GTUHI (tmp_argihi, tmp_argjhi)) {
20090   {
20091     UHI opval = tmp_argjhi;
20092     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
20093     written |= (1 << 9);
20094     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20095   }
20096 } else {
20097   {
20098     UHI opval = tmp_argihi;
20099     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
20100     written |= (1 << 9);
20101     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20102   }
20103 }
20104 if (GTUHI (tmp_argilo, tmp_argjlo)) {
20105   {
20106     UHI opval = tmp_argjlo;
20107     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
20108     written |= (1 << 10);
20109     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20110   }
20111 } else {
20112   {
20113     UHI opval = tmp_argilo;
20114     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
20115     written |= (1 << 10);
20116     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20117   }
20118 }
20119 }
20120
20121   abuf->written = written;
20122   return vpc;
20123 #undef FLD
20124 }
20125
20126 /* mcmpsh: mcmpsh$pack $FRinti,$FRintj,$FCCk */
20127
20128 static SEM_PC
20129 SEM_FN_NAME (frvbf,mcmpsh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20130 {
20131 #define FLD(f) abuf->fields.sfmt_mcmpsh.f
20132   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20133   int UNUSED written = 0;
20134   IADDR UNUSED pc = abuf->addr;
20135   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20136
20137 if (ANDSI (FLD (f_FCCk), SUBSI (2, 1))) {
20138 frvbf_media_cr_not_aligned (current_cpu);
20139 } else {
20140 {
20141   HI tmp_argihi;
20142   HI tmp_argilo;
20143   HI tmp_argjhi;
20144   HI tmp_argjlo;
20145 {
20146   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20147   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20148   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20149   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20150 }
20151 if (GTHI (tmp_argihi, tmp_argjhi)) {
20152   {
20153     UQI opval = 2;
20154     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCk)]), opval);
20155     written |= (1 << 9);
20156     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20157   }
20158 } else {
20159 if (EQHI (tmp_argihi, tmp_argjhi)) {
20160   {
20161     UQI opval = 8;
20162     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCk)]), opval);
20163     written |= (1 << 9);
20164     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20165   }
20166 } else {
20167 if (LTHI (tmp_argihi, tmp_argjhi)) {
20168   {
20169     UQI opval = 4;
20170     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCk)]), opval);
20171     written |= (1 << 9);
20172     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20173   }
20174 } else {
20175   {
20176     UQI opval = 1;
20177     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCk)]), opval);
20178     written |= (1 << 9);
20179     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20180   }
20181 }
20182 }
20183 }
20184 if (GTHI (tmp_argilo, tmp_argjlo)) {
20185   {
20186     UQI opval = 2;
20187     sim_queue_qi_write (current_cpu, & CPU (h_fccr[ADDSI (FLD (f_FCCk), 1)]), opval);
20188     written |= (1 << 10);
20189     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20190   }
20191 } else {
20192 if (EQHI (tmp_argilo, tmp_argjlo)) {
20193   {
20194     UQI opval = 8;
20195     sim_queue_qi_write (current_cpu, & CPU (h_fccr[ADDSI (FLD (f_FCCk), 1)]), opval);
20196     written |= (1 << 10);
20197     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20198   }
20199 } else {
20200 if (LTHI (tmp_argilo, tmp_argjlo)) {
20201   {
20202     UQI opval = 4;
20203     sim_queue_qi_write (current_cpu, & CPU (h_fccr[ADDSI (FLD (f_FCCk), 1)]), opval);
20204     written |= (1 << 10);
20205     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20206   }
20207 } else {
20208   {
20209     UQI opval = 1;
20210     sim_queue_qi_write (current_cpu, & CPU (h_fccr[ADDSI (FLD (f_FCCk), 1)]), opval);
20211     written |= (1 << 10);
20212     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20213   }
20214 }
20215 }
20216 }
20217 }
20218 }
20219
20220   abuf->written = written;
20221   return vpc;
20222 #undef FLD
20223 }
20224
20225 /* mcmpuh: mcmpuh$pack $FRinti,$FRintj,$FCCk */
20226
20227 static SEM_PC
20228 SEM_FN_NAME (frvbf,mcmpuh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20229 {
20230 #define FLD(f) abuf->fields.sfmt_mcmpsh.f
20231   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20232   int UNUSED written = 0;
20233   IADDR UNUSED pc = abuf->addr;
20234   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20235
20236 if (ANDSI (FLD (f_FCCk), SUBSI (2, 1))) {
20237 frvbf_media_cr_not_aligned (current_cpu);
20238 } else {
20239 {
20240   UHI tmp_argihi;
20241   UHI tmp_argilo;
20242   UHI tmp_argjhi;
20243   UHI tmp_argjlo;
20244 {
20245   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20246   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20247   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20248   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20249 }
20250 if (GTUHI (tmp_argihi, tmp_argjhi)) {
20251   {
20252     UQI opval = 2;
20253     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCk)]), opval);
20254     written |= (1 << 9);
20255     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20256   }
20257 } else {
20258 if (EQHI (tmp_argihi, tmp_argjhi)) {
20259   {
20260     UQI opval = 8;
20261     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCk)]), opval);
20262     written |= (1 << 9);
20263     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20264   }
20265 } else {
20266 if (LTUHI (tmp_argihi, tmp_argjhi)) {
20267   {
20268     UQI opval = 4;
20269     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCk)]), opval);
20270     written |= (1 << 9);
20271     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20272   }
20273 } else {
20274   {
20275     UQI opval = 1;
20276     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCk)]), opval);
20277     written |= (1 << 9);
20278     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20279   }
20280 }
20281 }
20282 }
20283 if (GTUHI (tmp_argilo, tmp_argjlo)) {
20284   {
20285     UQI opval = 2;
20286     sim_queue_qi_write (current_cpu, & CPU (h_fccr[ADDSI (FLD (f_FCCk), 1)]), opval);
20287     written |= (1 << 10);
20288     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20289   }
20290 } else {
20291 if (EQHI (tmp_argilo, tmp_argjlo)) {
20292   {
20293     UQI opval = 8;
20294     sim_queue_qi_write (current_cpu, & CPU (h_fccr[ADDSI (FLD (f_FCCk), 1)]), opval);
20295     written |= (1 << 10);
20296     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20297   }
20298 } else {
20299 if (LTUHI (tmp_argilo, tmp_argjlo)) {
20300   {
20301     UQI opval = 4;
20302     sim_queue_qi_write (current_cpu, & CPU (h_fccr[ADDSI (FLD (f_FCCk), 1)]), opval);
20303     written |= (1 << 10);
20304     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20305   }
20306 } else {
20307   {
20308     UQI opval = 1;
20309     sim_queue_qi_write (current_cpu, & CPU (h_fccr[ADDSI (FLD (f_FCCk), 1)]), opval);
20310     written |= (1 << 10);
20311     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20312   }
20313 }
20314 }
20315 }
20316 }
20317 }
20318
20319   abuf->written = written;
20320   return vpc;
20321 #undef FLD
20322 }
20323
20324 /* mabshs: mabshs$pack $FRintj,$FRintk */
20325
20326 static SEM_PC
20327 SEM_FN_NAME (frvbf,mabshs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20328 {
20329 #define FLD(f) abuf->fields.sfmt_mabshs.f
20330   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20331   int UNUSED written = 0;
20332   IADDR UNUSED pc = abuf->addr;
20333   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20334
20335 {
20336   HI tmp_arghi;
20337   HI tmp_arglo;
20338   {
20339     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRj)));
20340     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRj), opval);
20341     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
20342   }
20343   {
20344     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
20345     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
20346     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
20347   }
20348   tmp_arghi = GET_H_FR_HI (ADDSI (FLD (f_FRj), 0));
20349   tmp_arglo = GET_H_FR_LO (ADDSI (FLD (f_FRj), 0));
20350 if (GTDI (ABSDI (EXTHIDI (tmp_arghi)), 32767)) {
20351 {
20352   {
20353     UHI opval = 32767;
20354     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
20355     written |= (1 << 8);
20356     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20357   }
20358 frvbf_media_overflow (current_cpu, 8);
20359 }
20360 } else {
20361 if (LTDI (ABSDI (EXTHIDI (tmp_arghi)), -32768)) {
20362 {
20363   {
20364     UHI opval = -32768;
20365     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
20366     written |= (1 << 8);
20367     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20368   }
20369 frvbf_media_overflow (current_cpu, 8);
20370 }
20371 } else {
20372   {
20373     UHI opval = ABSDI (EXTHIDI (tmp_arghi));
20374     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
20375     written |= (1 << 8);
20376     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20377   }
20378 }
20379 }
20380 if (GTDI (ABSDI (EXTHIDI (tmp_arglo)), 32767)) {
20381 {
20382   {
20383     UHI opval = 32767;
20384     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
20385     written |= (1 << 9);
20386     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20387   }
20388 frvbf_media_overflow (current_cpu, 4);
20389 }
20390 } else {
20391 if (LTDI (ABSDI (EXTHIDI (tmp_arglo)), -32768)) {
20392 {
20393   {
20394     UHI opval = -32768;
20395     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
20396     written |= (1 << 9);
20397     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20398   }
20399 frvbf_media_overflow (current_cpu, 4);
20400 }
20401 } else {
20402   {
20403     UHI opval = ABSDI (EXTHIDI (tmp_arglo));
20404     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
20405     written |= (1 << 9);
20406     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20407   }
20408 }
20409 }
20410 }
20411
20412   abuf->written = written;
20413   return vpc;
20414 #undef FLD
20415 }
20416
20417 /* maddhss: maddhss$pack $FRinti,$FRintj,$FRintk */
20418
20419 static SEM_PC
20420 SEM_FN_NAME (frvbf,maddhss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20421 {
20422 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
20423   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20424   int UNUSED written = 0;
20425   IADDR UNUSED pc = abuf->addr;
20426   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20427
20428 {
20429   HI tmp_argihi;
20430   HI tmp_argilo;
20431   HI tmp_argjhi;
20432   HI tmp_argjlo;
20433 {
20434   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20435   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20436   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20437   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20438 }
20439 {
20440   DI tmp_tmp;
20441   tmp_tmp = ADDDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
20442 if (GTDI (tmp_tmp, 32767)) {
20443 {
20444   {
20445     UHI opval = 32767;
20446     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
20447     written |= (1 << 9);
20448     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20449   }
20450 frvbf_media_overflow (current_cpu, 8);
20451 }
20452 } else {
20453 if (LTDI (tmp_tmp, -32768)) {
20454 {
20455   {
20456     UHI opval = -32768;
20457     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
20458     written |= (1 << 9);
20459     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20460   }
20461 frvbf_media_overflow (current_cpu, 8);
20462 }
20463 } else {
20464   {
20465     UHI opval = tmp_tmp;
20466     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
20467     written |= (1 << 9);
20468     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20469   }
20470 }
20471 }
20472 }
20473 {
20474   DI tmp_tmp;
20475   tmp_tmp = ADDDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
20476 if (GTDI (tmp_tmp, 32767)) {
20477 {
20478   {
20479     UHI opval = 32767;
20480     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
20481     written |= (1 << 10);
20482     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20483   }
20484 frvbf_media_overflow (current_cpu, 4);
20485 }
20486 } else {
20487 if (LTDI (tmp_tmp, -32768)) {
20488 {
20489   {
20490     UHI opval = -32768;
20491     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
20492     written |= (1 << 10);
20493     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20494   }
20495 frvbf_media_overflow (current_cpu, 4);
20496 }
20497 } else {
20498   {
20499     UHI opval = tmp_tmp;
20500     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
20501     written |= (1 << 10);
20502     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20503   }
20504 }
20505 }
20506 }
20507 }
20508
20509   abuf->written = written;
20510   return vpc;
20511 #undef FLD
20512 }
20513
20514 /* maddhus: maddhus$pack $FRinti,$FRintj,$FRintk */
20515
20516 static SEM_PC
20517 SEM_FN_NAME (frvbf,maddhus) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20518 {
20519 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
20520   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20521   int UNUSED written = 0;
20522   IADDR UNUSED pc = abuf->addr;
20523   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20524
20525 {
20526   UHI tmp_argihi;
20527   UHI tmp_argilo;
20528   UHI tmp_argjhi;
20529   UHI tmp_argjlo;
20530 {
20531   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20532   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20533   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20534   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20535 }
20536 {
20537   DI tmp_tmp;
20538   tmp_tmp = ADDDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
20539 if (GTDI (tmp_tmp, 65535)) {
20540 {
20541   {
20542     UHI opval = 65535;
20543     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
20544     written |= (1 << 9);
20545     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20546   }
20547 frvbf_media_overflow (current_cpu, 8);
20548 }
20549 } else {
20550 if (LTDI (tmp_tmp, 0)) {
20551 {
20552   {
20553     UHI opval = 0;
20554     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
20555     written |= (1 << 9);
20556     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20557   }
20558 frvbf_media_overflow (current_cpu, 8);
20559 }
20560 } else {
20561   {
20562     UHI opval = tmp_tmp;
20563     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
20564     written |= (1 << 9);
20565     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20566   }
20567 }
20568 }
20569 }
20570 {
20571   DI tmp_tmp;
20572   tmp_tmp = ADDDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
20573 if (GTDI (tmp_tmp, 65535)) {
20574 {
20575   {
20576     UHI opval = 65535;
20577     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
20578     written |= (1 << 10);
20579     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20580   }
20581 frvbf_media_overflow (current_cpu, 4);
20582 }
20583 } else {
20584 if (LTDI (tmp_tmp, 0)) {
20585 {
20586   {
20587     UHI opval = 0;
20588     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
20589     written |= (1 << 10);
20590     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20591   }
20592 frvbf_media_overflow (current_cpu, 4);
20593 }
20594 } else {
20595   {
20596     UHI opval = tmp_tmp;
20597     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
20598     written |= (1 << 10);
20599     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20600   }
20601 }
20602 }
20603 }
20604 }
20605
20606   abuf->written = written;
20607   return vpc;
20608 #undef FLD
20609 }
20610
20611 /* msubhss: msubhss$pack $FRinti,$FRintj,$FRintk */
20612
20613 static SEM_PC
20614 SEM_FN_NAME (frvbf,msubhss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20615 {
20616 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
20617   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20618   int UNUSED written = 0;
20619   IADDR UNUSED pc = abuf->addr;
20620   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20621
20622 {
20623   HI tmp_argihi;
20624   HI tmp_argilo;
20625   HI tmp_argjhi;
20626   HI tmp_argjlo;
20627 {
20628   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20629   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20630   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20631   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20632 }
20633 {
20634   DI tmp_tmp;
20635   tmp_tmp = SUBDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
20636 if (GTDI (tmp_tmp, 32767)) {
20637 {
20638   {
20639     UHI opval = 32767;
20640     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
20641     written |= (1 << 9);
20642     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20643   }
20644 frvbf_media_overflow (current_cpu, 8);
20645 }
20646 } else {
20647 if (LTDI (tmp_tmp, -32768)) {
20648 {
20649   {
20650     UHI opval = -32768;
20651     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
20652     written |= (1 << 9);
20653     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20654   }
20655 frvbf_media_overflow (current_cpu, 8);
20656 }
20657 } else {
20658   {
20659     UHI opval = tmp_tmp;
20660     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
20661     written |= (1 << 9);
20662     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20663   }
20664 }
20665 }
20666 }
20667 {
20668   DI tmp_tmp;
20669   tmp_tmp = SUBDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
20670 if (GTDI (tmp_tmp, 32767)) {
20671 {
20672   {
20673     UHI opval = 32767;
20674     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
20675     written |= (1 << 10);
20676     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20677   }
20678 frvbf_media_overflow (current_cpu, 4);
20679 }
20680 } else {
20681 if (LTDI (tmp_tmp, -32768)) {
20682 {
20683   {
20684     UHI opval = -32768;
20685     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
20686     written |= (1 << 10);
20687     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20688   }
20689 frvbf_media_overflow (current_cpu, 4);
20690 }
20691 } else {
20692   {
20693     UHI opval = tmp_tmp;
20694     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
20695     written |= (1 << 10);
20696     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20697   }
20698 }
20699 }
20700 }
20701 }
20702
20703   abuf->written = written;
20704   return vpc;
20705 #undef FLD
20706 }
20707
20708 /* msubhus: msubhus$pack $FRinti,$FRintj,$FRintk */
20709
20710 static SEM_PC
20711 SEM_FN_NAME (frvbf,msubhus) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20712 {
20713 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
20714   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20715   int UNUSED written = 0;
20716   IADDR UNUSED pc = abuf->addr;
20717   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20718
20719 {
20720   UHI tmp_argihi;
20721   UHI tmp_argilo;
20722   UHI tmp_argjhi;
20723   UHI tmp_argjlo;
20724 {
20725   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20726   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20727   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20728   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20729 }
20730 {
20731   DI tmp_tmp;
20732   tmp_tmp = SUBDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
20733 if (GTDI (tmp_tmp, 65535)) {
20734 {
20735   {
20736     UHI opval = 65535;
20737     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
20738     written |= (1 << 9);
20739     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20740   }
20741 frvbf_media_overflow (current_cpu, 8);
20742 }
20743 } else {
20744 if (LTDI (tmp_tmp, 0)) {
20745 {
20746   {
20747     UHI opval = 0;
20748     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
20749     written |= (1 << 9);
20750     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20751   }
20752 frvbf_media_overflow (current_cpu, 8);
20753 }
20754 } else {
20755   {
20756     UHI opval = tmp_tmp;
20757     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
20758     written |= (1 << 9);
20759     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20760   }
20761 }
20762 }
20763 }
20764 {
20765   DI tmp_tmp;
20766   tmp_tmp = SUBDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
20767 if (GTDI (tmp_tmp, 65535)) {
20768 {
20769   {
20770     UHI opval = 65535;
20771     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
20772     written |= (1 << 10);
20773     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20774   }
20775 frvbf_media_overflow (current_cpu, 4);
20776 }
20777 } else {
20778 if (LTDI (tmp_tmp, 0)) {
20779 {
20780   {
20781     UHI opval = 0;
20782     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
20783     written |= (1 << 10);
20784     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20785   }
20786 frvbf_media_overflow (current_cpu, 4);
20787 }
20788 } else {
20789   {
20790     UHI opval = tmp_tmp;
20791     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
20792     written |= (1 << 10);
20793     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20794   }
20795 }
20796 }
20797 }
20798 }
20799
20800   abuf->written = written;
20801   return vpc;
20802 #undef FLD
20803 }
20804
20805 /* cmaddhss: cmaddhss$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
20806
20807 static SEM_PC
20808 SEM_FN_NAME (frvbf,cmaddhss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20809 {
20810 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
20811   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20812   int UNUSED written = 0;
20813   IADDR UNUSED pc = abuf->addr;
20814   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20815
20816 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
20817 {
20818   HI tmp_argihi;
20819   HI tmp_argilo;
20820   HI tmp_argjhi;
20821   HI tmp_argjlo;
20822 {
20823   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20824   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20825   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20826   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20827 }
20828 {
20829   DI tmp_tmp;
20830   tmp_tmp = ADDDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
20831 if (GTDI (tmp_tmp, 32767)) {
20832 {
20833   {
20834     UHI opval = 32767;
20835     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
20836     written |= (1 << 11);
20837     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20838   }
20839 frvbf_media_overflow (current_cpu, 8);
20840 }
20841 } else {
20842 if (LTDI (tmp_tmp, -32768)) {
20843 {
20844   {
20845     UHI opval = -32768;
20846     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
20847     written |= (1 << 11);
20848     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20849   }
20850 frvbf_media_overflow (current_cpu, 8);
20851 }
20852 } else {
20853   {
20854     UHI opval = tmp_tmp;
20855     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
20856     written |= (1 << 11);
20857     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20858   }
20859 }
20860 }
20861 }
20862 {
20863   DI tmp_tmp;
20864   tmp_tmp = ADDDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
20865 if (GTDI (tmp_tmp, 32767)) {
20866 {
20867   {
20868     UHI opval = 32767;
20869     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
20870     written |= (1 << 12);
20871     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20872   }
20873 frvbf_media_overflow (current_cpu, 4);
20874 }
20875 } else {
20876 if (LTDI (tmp_tmp, -32768)) {
20877 {
20878   {
20879     UHI opval = -32768;
20880     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
20881     written |= (1 << 12);
20882     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20883   }
20884 frvbf_media_overflow (current_cpu, 4);
20885 }
20886 } else {
20887   {
20888     UHI opval = tmp_tmp;
20889     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
20890     written |= (1 << 12);
20891     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20892   }
20893 }
20894 }
20895 }
20896 }
20897 }
20898
20899   abuf->written = written;
20900   return vpc;
20901 #undef FLD
20902 }
20903
20904 /* cmaddhus: cmaddhus$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
20905
20906 static SEM_PC
20907 SEM_FN_NAME (frvbf,cmaddhus) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20908 {
20909 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
20910   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20911   int UNUSED written = 0;
20912   IADDR UNUSED pc = abuf->addr;
20913   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20914
20915 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
20916 {
20917   UHI tmp_argihi;
20918   UHI tmp_argilo;
20919   UHI tmp_argjhi;
20920   UHI tmp_argjlo;
20921 {
20922   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20923   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20924   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20925   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20926 }
20927 {
20928   DI tmp_tmp;
20929   tmp_tmp = ADDDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
20930 if (GTDI (tmp_tmp, 65535)) {
20931 {
20932   {
20933     UHI opval = 65535;
20934     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
20935     written |= (1 << 11);
20936     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20937   }
20938 frvbf_media_overflow (current_cpu, 8);
20939 }
20940 } else {
20941 if (LTDI (tmp_tmp, 0)) {
20942 {
20943   {
20944     UHI opval = 0;
20945     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
20946     written |= (1 << 11);
20947     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20948   }
20949 frvbf_media_overflow (current_cpu, 8);
20950 }
20951 } else {
20952   {
20953     UHI opval = tmp_tmp;
20954     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
20955     written |= (1 << 11);
20956     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20957   }
20958 }
20959 }
20960 }
20961 {
20962   DI tmp_tmp;
20963   tmp_tmp = ADDDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
20964 if (GTDI (tmp_tmp, 65535)) {
20965 {
20966   {
20967     UHI opval = 65535;
20968     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
20969     written |= (1 << 12);
20970     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20971   }
20972 frvbf_media_overflow (current_cpu, 4);
20973 }
20974 } else {
20975 if (LTDI (tmp_tmp, 0)) {
20976 {
20977   {
20978     UHI opval = 0;
20979     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
20980     written |= (1 << 12);
20981     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20982   }
20983 frvbf_media_overflow (current_cpu, 4);
20984 }
20985 } else {
20986   {
20987     UHI opval = tmp_tmp;
20988     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
20989     written |= (1 << 12);
20990     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20991   }
20992 }
20993 }
20994 }
20995 }
20996 }
20997
20998   abuf->written = written;
20999   return vpc;
21000 #undef FLD
21001 }
21002
21003 /* cmsubhss: cmsubhss$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
21004
21005 static SEM_PC
21006 SEM_FN_NAME (frvbf,cmsubhss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
21007 {
21008 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
21009   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
21010   int UNUSED written = 0;
21011   IADDR UNUSED pc = abuf->addr;
21012   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
21013
21014 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
21015 {
21016   HI tmp_argihi;
21017   HI tmp_argilo;
21018   HI tmp_argjhi;
21019   HI tmp_argjlo;
21020 {
21021   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21022   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21023   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21024   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21025 }
21026 {
21027   DI tmp_tmp;
21028   tmp_tmp = SUBDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
21029 if (GTDI (tmp_tmp, 32767)) {
21030 {
21031   {
21032     UHI opval = 32767;
21033     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
21034     written |= (1 << 11);
21035     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21036   }
21037 frvbf_media_overflow (current_cpu, 8);
21038 }
21039 } else {
21040 if (LTDI (tmp_tmp, -32768)) {
21041 {
21042   {
21043     UHI opval = -32768;
21044     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
21045     written |= (1 << 11);
21046     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21047   }
21048 frvbf_media_overflow (current_cpu, 8);
21049 }
21050 } else {
21051   {
21052     UHI opval = tmp_tmp;
21053     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
21054     written |= (1 << 11);
21055     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21056   }
21057 }
21058 }
21059 }
21060 {
21061   DI tmp_tmp;
21062   tmp_tmp = SUBDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
21063 if (GTDI (tmp_tmp, 32767)) {
21064 {
21065   {
21066     UHI opval = 32767;
21067     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
21068     written |= (1 << 12);
21069     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21070   }
21071 frvbf_media_overflow (current_cpu, 4);
21072 }
21073 } else {
21074 if (LTDI (tmp_tmp, -32768)) {
21075 {
21076   {
21077     UHI opval = -32768;
21078     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
21079     written |= (1 << 12);
21080     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21081   }
21082 frvbf_media_overflow (current_cpu, 4);
21083 }
21084 } else {
21085   {
21086     UHI opval = tmp_tmp;
21087     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
21088     written |= (1 << 12);
21089     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21090   }
21091 }
21092 }
21093 }
21094 }
21095 }
21096
21097   abuf->written = written;
21098   return vpc;
21099 #undef FLD
21100 }
21101
21102 /* cmsubhus: cmsubhus$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
21103
21104 static SEM_PC
21105 SEM_FN_NAME (frvbf,cmsubhus) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
21106 {
21107 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
21108   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
21109   int UNUSED written = 0;
21110   IADDR UNUSED pc = abuf->addr;
21111   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
21112
21113 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
21114 {
21115   UHI tmp_argihi;
21116   UHI tmp_argilo;
21117   UHI tmp_argjhi;
21118   UHI tmp_argjlo;
21119 {
21120   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21121   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21122   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21123   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21124 }
21125 {
21126   DI tmp_tmp;
21127   tmp_tmp = SUBDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
21128 if (GTDI (tmp_tmp, 65535)) {
21129 {
21130   {
21131     UHI opval = 65535;
21132     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
21133     written |= (1 << 11);
21134     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21135   }
21136 frvbf_media_overflow (current_cpu, 8);
21137 }
21138 } else {
21139 if (LTDI (tmp_tmp, 0)) {
21140 {
21141   {
21142     UHI opval = 0;
21143     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
21144     written |= (1 << 11);
21145     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21146   }
21147 frvbf_media_overflow (current_cpu, 8);
21148 }
21149 } else {
21150   {
21151     UHI opval = tmp_tmp;
21152     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
21153     written |= (1 << 11);
21154     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21155   }
21156 }
21157 }
21158 }
21159 {
21160   DI tmp_tmp;
21161   tmp_tmp = SUBDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
21162 if (GTDI (tmp_tmp, 65535)) {
21163 {
21164   {
21165     UHI opval = 65535;
21166     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
21167     written |= (1 << 12);
21168     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21169   }
21170 frvbf_media_overflow (current_cpu, 4);
21171 }
21172 } else {
21173 if (LTDI (tmp_tmp, 0)) {
21174 {
21175   {
21176     UHI opval = 0;
21177     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
21178     written |= (1 << 12);
21179     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21180   }
21181 frvbf_media_overflow (current_cpu, 4);
21182 }
21183 } else {
21184   {
21185     UHI opval = tmp_tmp;
21186     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
21187     written |= (1 << 12);
21188     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21189   }
21190 }
21191 }
21192 }
21193 }
21194 }
21195
21196   abuf->written = written;
21197   return vpc;
21198 #undef FLD
21199 }
21200
21201 /* mqaddhss: mqaddhss$pack $FRintieven,$FRintjeven,$FRintkeven */
21202
21203 static SEM_PC
21204 SEM_FN_NAME (frvbf,mqaddhss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
21205 {
21206 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
21207   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
21208   int UNUSED written = 0;
21209   IADDR UNUSED pc = abuf->addr;
21210   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
21211
21212 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
21213 frvbf_media_register_not_aligned (current_cpu);
21214 } else {
21215 {
21216   HI tmp_argihi;
21217   HI tmp_argilo;
21218   HI tmp_argjhi;
21219   HI tmp_argjlo;
21220   {
21221     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
21222     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
21223     written |= (1 << 14);
21224     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
21225   }
21226 {
21227   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21228   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21229   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21230   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21231 }
21232 {
21233   DI tmp_tmp;
21234   tmp_tmp = ADDDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
21235 if (GTDI (tmp_tmp, 32767)) {
21236 {
21237   {
21238     UHI opval = 32767;
21239     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
21240     written |= (1 << 15);
21241     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21242   }
21243 frvbf_media_overflow (current_cpu, 8);
21244 }
21245 } else {
21246 if (LTDI (tmp_tmp, -32768)) {
21247 {
21248   {
21249     UHI opval = -32768;
21250     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
21251     written |= (1 << 15);
21252     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21253   }
21254 frvbf_media_overflow (current_cpu, 8);
21255 }
21256 } else {
21257   {
21258     UHI opval = tmp_tmp;
21259     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
21260     written |= (1 << 15);
21261     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21262   }
21263 }
21264 }
21265 }
21266 {
21267   DI tmp_tmp;
21268   tmp_tmp = ADDDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
21269 if (GTDI (tmp_tmp, 32767)) {
21270 {
21271   {
21272     UHI opval = 32767;
21273     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
21274     written |= (1 << 17);
21275     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21276   }
21277 frvbf_media_overflow (current_cpu, 4);
21278 }
21279 } else {
21280 if (LTDI (tmp_tmp, -32768)) {
21281 {
21282   {
21283     UHI opval = -32768;
21284     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
21285     written |= (1 << 17);
21286     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21287   }
21288 frvbf_media_overflow (current_cpu, 4);
21289 }
21290 } else {
21291   {
21292     UHI opval = tmp_tmp;
21293     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
21294     written |= (1 << 17);
21295     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21296   }
21297 }
21298 }
21299 }
21300 {
21301   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21302   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21303   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21304   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21305 }
21306 {
21307   DI tmp_tmp;
21308   tmp_tmp = ADDDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
21309 if (GTDI (tmp_tmp, 32767)) {
21310 {
21311   {
21312     UHI opval = 32767;
21313     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 1), opval);
21314     written |= (1 << 16);
21315     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21316   }
21317 frvbf_media_overflow (current_cpu, 2);
21318 }
21319 } else {
21320 if (LTDI (tmp_tmp, -32768)) {
21321 {
21322   {
21323     UHI opval = -32768;
21324     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 1), opval);
21325     written |= (1 << 16);
21326     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21327   }
21328 frvbf_media_overflow (current_cpu, 2);
21329 }
21330 } else {
21331   {
21332     UHI opval = tmp_tmp;
21333     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 1), opval);
21334     written |= (1 << 16);
21335     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21336   }
21337 }
21338 }
21339 }
21340 {
21341   DI tmp_tmp;
21342   tmp_tmp = ADDDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
21343 if (GTDI (tmp_tmp, 32767)) {
21344 {
21345   {
21346     UHI opval = 32767;
21347     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 1), opval);
21348     written |= (1 << 18);
21349     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21350   }
21351 frvbf_media_overflow (current_cpu, 1);
21352 }
21353 } else {
21354 if (LTDI (tmp_tmp, -32768)) {
21355 {
21356   {
21357     UHI opval = -32768;
21358     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 1), opval);
21359     written |= (1 << 18);
21360     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21361   }
21362 frvbf_media_overflow (current_cpu, 1);
21363 }
21364 } else {
21365   {
21366     UHI opval = tmp_tmp;
21367     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 1), opval);
21368     written |= (1 << 18);
21369     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21370   }
21371 }
21372 }
21373 }
21374 }
21375 }
21376
21377   abuf->written = written;
21378   return vpc;
21379 #undef FLD
21380 }
21381
21382 /* mqaddhus: mqaddhus$pack $FRintieven,$FRintjeven,$FRintkeven */
21383
21384 static SEM_PC
21385 SEM_FN_NAME (frvbf,mqaddhus) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
21386 {
21387 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
21388   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
21389   int UNUSED written = 0;
21390   IADDR UNUSED pc = abuf->addr;
21391   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
21392
21393 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
21394 frvbf_media_register_not_aligned (current_cpu);
21395 } else {
21396 {
21397   UHI tmp_argihi;
21398   UHI tmp_argilo;
21399   UHI tmp_argjhi;
21400   UHI tmp_argjlo;
21401   {
21402     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
21403     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
21404     written |= (1 << 14);
21405     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
21406   }
21407 {
21408   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21409   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21410   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21411   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21412 }
21413 {
21414   DI tmp_tmp;
21415   tmp_tmp = ADDDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
21416 if (GTDI (tmp_tmp, 65535)) {
21417 {
21418   {
21419     UHI opval = 65535;
21420     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
21421     written |= (1 << 15);
21422     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21423   }
21424 frvbf_media_overflow (current_cpu, 8);
21425 }
21426 } else {
21427 if (LTDI (tmp_tmp, 0)) {
21428 {
21429   {
21430     UHI opval = 0;
21431     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
21432     written |= (1 << 15);
21433     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21434   }
21435 frvbf_media_overflow (current_cpu, 8);
21436 }
21437 } else {
21438   {
21439     UHI opval = tmp_tmp;
21440     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
21441     written |= (1 << 15);
21442     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21443   }
21444 }
21445 }
21446 }
21447 {
21448   DI tmp_tmp;
21449   tmp_tmp = ADDDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
21450 if (GTDI (tmp_tmp, 65535)) {
21451 {
21452   {
21453     UHI opval = 65535;
21454     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
21455     written |= (1 << 17);
21456     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21457   }
21458 frvbf_media_overflow (current_cpu, 4);
21459 }
21460 } else {
21461 if (LTDI (tmp_tmp, 0)) {
21462 {
21463   {
21464     UHI opval = 0;
21465     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
21466     written |= (1 << 17);
21467     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21468   }
21469 frvbf_media_overflow (current_cpu, 4);
21470 }
21471 } else {
21472   {
21473     UHI opval = tmp_tmp;
21474     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
21475     written |= (1 << 17);
21476     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21477   }
21478 }
21479 }
21480 }
21481 {
21482   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21483   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21484   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21485   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21486 }
21487 {
21488   DI tmp_tmp;
21489   tmp_tmp = ADDDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
21490 if (GTDI (tmp_tmp, 65535)) {
21491 {
21492   {
21493     UHI opval = 65535;
21494     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 1), opval);
21495     written |= (1 << 16);
21496     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21497   }
21498 frvbf_media_overflow (current_cpu, 2);
21499 }
21500 } else {
21501 if (LTDI (tmp_tmp, 0)) {
21502 {
21503   {
21504     UHI opval = 0;
21505     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 1), opval);
21506     written |= (1 << 16);
21507     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21508   }
21509 frvbf_media_overflow (current_cpu, 2);
21510 }
21511 } else {
21512   {
21513     UHI opval = tmp_tmp;
21514     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 1), opval);
21515     written |= (1 << 16);
21516     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21517   }
21518 }
21519 }
21520 }
21521 {
21522   DI tmp_tmp;
21523   tmp_tmp = ADDDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
21524 if (GTDI (tmp_tmp, 65535)) {
21525 {
21526   {
21527     UHI opval = 65535;
21528     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 1), opval);
21529     written |= (1 << 18);
21530     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21531   }
21532 frvbf_media_overflow (current_cpu, 1);
21533 }
21534 } else {
21535 if (LTDI (tmp_tmp, 0)) {
21536 {
21537   {
21538     UHI opval = 0;
21539     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 1), opval);
21540     written |= (1 << 18);
21541     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21542   }
21543 frvbf_media_overflow (current_cpu, 1);
21544 }
21545 } else {
21546   {
21547     UHI opval = tmp_tmp;
21548     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 1), opval);
21549     written |= (1 << 18);
21550     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21551   }
21552 }
21553 }
21554 }
21555 }
21556 }
21557
21558   abuf->written = written;
21559   return vpc;
21560 #undef FLD
21561 }
21562
21563 /* mqsubhss: mqsubhss$pack $FRintieven,$FRintjeven,$FRintkeven */
21564
21565 static SEM_PC
21566 SEM_FN_NAME (frvbf,mqsubhss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
21567 {
21568 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
21569   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
21570   int UNUSED written = 0;
21571   IADDR UNUSED pc = abuf->addr;
21572   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
21573
21574 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
21575 frvbf_media_register_not_aligned (current_cpu);
21576 } else {
21577 {
21578   HI tmp_argihi;
21579   HI tmp_argilo;
21580   HI tmp_argjhi;
21581   HI tmp_argjlo;
21582   {
21583     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
21584     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
21585     written |= (1 << 14);
21586     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
21587   }
21588 {
21589   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21590   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21591   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21592   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21593 }
21594 {
21595   DI tmp_tmp;
21596   tmp_tmp = SUBDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
21597 if (GTDI (tmp_tmp, 32767)) {
21598 {
21599   {
21600     UHI opval = 32767;
21601     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
21602     written |= (1 << 15);
21603     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21604   }
21605 frvbf_media_overflow (current_cpu, 8);
21606 }
21607 } else {
21608 if (LTDI (tmp_tmp, -32768)) {
21609 {
21610   {
21611     UHI opval = -32768;
21612     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
21613     written |= (1 << 15);
21614     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21615   }
21616 frvbf_media_overflow (current_cpu, 8);
21617 }
21618 } else {
21619   {
21620     UHI opval = tmp_tmp;
21621     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
21622     written |= (1 << 15);
21623     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21624   }
21625 }
21626 }
21627 }
21628 {
21629   DI tmp_tmp;
21630   tmp_tmp = SUBDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
21631 if (GTDI (tmp_tmp, 32767)) {
21632 {
21633   {
21634     UHI opval = 32767;
21635     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
21636     written |= (1 << 17);
21637     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21638   }
21639 frvbf_media_overflow (current_cpu, 4);
21640 }
21641 } else {
21642 if (LTDI (tmp_tmp, -32768)) {
21643 {
21644   {
21645     UHI opval = -32768;
21646     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
21647     written |= (1 << 17);
21648     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21649   }
21650 frvbf_media_overflow (current_cpu, 4);
21651 }
21652 } else {
21653   {
21654     UHI opval = tmp_tmp;
21655     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
21656     written |= (1 << 17);
21657     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21658   }
21659 }
21660 }
21661 }
21662 {
21663   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21664   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21665   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21666   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21667 }
21668 {
21669   DI tmp_tmp;
21670   tmp_tmp = SUBDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
21671 if (GTDI (tmp_tmp, 32767)) {
21672 {
21673   {
21674     UHI opval = 32767;
21675     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 1), opval);
21676     written |= (1 << 16);
21677     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21678   }
21679 frvbf_media_overflow (current_cpu, 2);
21680 }
21681 } else {
21682 if (LTDI (tmp_tmp, -32768)) {
21683 {
21684   {
21685     UHI opval = -32768;
21686     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 1), opval);
21687     written |= (1 << 16);
21688     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21689   }
21690 frvbf_media_overflow (current_cpu, 2);
21691 }
21692 } else {
21693   {
21694     UHI opval = tmp_tmp;
21695     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 1), opval);
21696     written |= (1 << 16);
21697     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21698   }
21699 }
21700 }
21701 }
21702 {
21703   DI tmp_tmp;
21704   tmp_tmp = SUBDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
21705 if (GTDI (tmp_tmp, 32767)) {
21706 {
21707   {
21708     UHI opval = 32767;
21709     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 1), opval);
21710     written |= (1 << 18);
21711     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21712   }
21713 frvbf_media_overflow (current_cpu, 1);
21714 }
21715 } else {
21716 if (LTDI (tmp_tmp, -32768)) {
21717 {
21718   {
21719     UHI opval = -32768;
21720     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 1), opval);
21721     written |= (1 << 18);
21722     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21723   }
21724 frvbf_media_overflow (current_cpu, 1);
21725 }
21726 } else {
21727   {
21728     UHI opval = tmp_tmp;
21729     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 1), opval);
21730     written |= (1 << 18);
21731     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21732   }
21733 }
21734 }
21735 }
21736 }
21737 }
21738
21739   abuf->written = written;
21740   return vpc;
21741 #undef FLD
21742 }
21743
21744 /* mqsubhus: mqsubhus$pack $FRintieven,$FRintjeven,$FRintkeven */
21745
21746 static SEM_PC
21747 SEM_FN_NAME (frvbf,mqsubhus) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
21748 {
21749 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
21750   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
21751   int UNUSED written = 0;
21752   IADDR UNUSED pc = abuf->addr;
21753   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
21754
21755 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
21756 frvbf_media_register_not_aligned (current_cpu);
21757 } else {
21758 {
21759   UHI tmp_argihi;
21760   UHI tmp_argilo;
21761   UHI tmp_argjhi;
21762   UHI tmp_argjlo;
21763   {
21764     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
21765     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
21766     written |= (1 << 14);
21767     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
21768   }
21769 {
21770   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21771   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21772   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21773   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21774 }
21775 {
21776   DI tmp_tmp;
21777   tmp_tmp = SUBDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
21778 if (GTDI (tmp_tmp, 65535)) {
21779 {
21780   {
21781     UHI opval = 65535;
21782     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
21783     written |= (1 << 15);
21784     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21785   }
21786 frvbf_media_overflow (current_cpu, 8);
21787 }
21788 } else {
21789 if (LTDI (tmp_tmp, 0)) {
21790 {
21791   {
21792     UHI opval = 0;
21793     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
21794     written |= (1 << 15);
21795     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21796   }
21797 frvbf_media_overflow (current_cpu, 8);
21798 }
21799 } else {
21800   {
21801     UHI opval = tmp_tmp;
21802     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
21803     written |= (1 << 15);
21804     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21805   }
21806 }
21807 }
21808 }
21809 {
21810   DI tmp_tmp;
21811   tmp_tmp = SUBDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
21812 if (GTDI (tmp_tmp, 65535)) {
21813 {
21814   {
21815     UHI opval = 65535;
21816     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
21817     written |= (1 << 17);
21818     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21819   }
21820 frvbf_media_overflow (current_cpu, 4);
21821 }
21822 } else {
21823 if (LTDI (tmp_tmp, 0)) {
21824 {
21825   {
21826     UHI opval = 0;
21827     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
21828     written |= (1 << 17);
21829     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21830   }
21831 frvbf_media_overflow (current_cpu, 4);
21832 }
21833 } else {
21834   {
21835     UHI opval = tmp_tmp;
21836     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
21837     written |= (1 << 17);
21838     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21839   }
21840 }
21841 }
21842 }
21843 {
21844   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21845   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21846   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21847   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21848 }
21849 {
21850   DI tmp_tmp;
21851   tmp_tmp = SUBDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
21852 if (GTDI (tmp_tmp, 65535)) {
21853 {
21854   {
21855     UHI opval = 65535;
21856     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 1), opval);
21857     written |= (1 << 16);
21858     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21859   }
21860 frvbf_media_overflow (current_cpu, 2);
21861 }
21862 } else {
21863 if (LTDI (tmp_tmp, 0)) {
21864 {
21865   {
21866     UHI opval = 0;
21867     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 1), opval);
21868     written |= (1 << 16);
21869     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21870   }
21871 frvbf_media_overflow (current_cpu, 2);
21872 }
21873 } else {
21874   {
21875     UHI opval = tmp_tmp;
21876     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 1), opval);
21877     written |= (1 << 16);
21878     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21879   }
21880 }
21881 }
21882 }
21883 {
21884   DI tmp_tmp;
21885   tmp_tmp = SUBDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
21886 if (GTDI (tmp_tmp, 65535)) {
21887 {
21888   {
21889     UHI opval = 65535;
21890     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 1), opval);
21891     written |= (1 << 18);
21892     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21893   }
21894 frvbf_media_overflow (current_cpu, 1);
21895 }
21896 } else {
21897 if (LTDI (tmp_tmp, 0)) {
21898 {
21899   {
21900     UHI opval = 0;
21901     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 1), opval);
21902     written |= (1 << 18);
21903     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21904   }
21905 frvbf_media_overflow (current_cpu, 1);
21906 }
21907 } else {
21908   {
21909     UHI opval = tmp_tmp;
21910     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 1), opval);
21911     written |= (1 << 18);
21912     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21913   }
21914 }
21915 }
21916 }
21917 }
21918 }
21919
21920   abuf->written = written;
21921   return vpc;
21922 #undef FLD
21923 }
21924
21925 /* cmqaddhss: cmqaddhss$pack $FRintieven,$FRintjeven,$FRintkeven,$CCi,$cond */
21926
21927 static SEM_PC
21928 SEM_FN_NAME (frvbf,cmqaddhss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
21929 {
21930 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
21931   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
21932   int UNUSED written = 0;
21933   IADDR UNUSED pc = abuf->addr;
21934   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
21935
21936 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
21937 frvbf_media_register_not_aligned (current_cpu);
21938 } else {
21939 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
21940 {
21941   HI tmp_argihi;
21942   HI tmp_argilo;
21943   HI tmp_argjhi;
21944   HI tmp_argjlo;
21945   {
21946     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
21947     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
21948     written |= (1 << 16);
21949     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
21950   }
21951 {
21952   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21953   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21954   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21955   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21956 }
21957 {
21958   DI tmp_tmp;
21959   tmp_tmp = ADDDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
21960 if (GTDI (tmp_tmp, 32767)) {
21961 {
21962   {
21963     UHI opval = 32767;
21964     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
21965     written |= (1 << 17);
21966     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21967   }
21968 frvbf_media_overflow (current_cpu, 8);
21969 }
21970 } else {
21971 if (LTDI (tmp_tmp, -32768)) {
21972 {
21973   {
21974     UHI opval = -32768;
21975     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
21976     written |= (1 << 17);
21977     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21978   }
21979 frvbf_media_overflow (current_cpu, 8);
21980 }
21981 } else {
21982   {
21983     UHI opval = tmp_tmp;
21984     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
21985     written |= (1 << 17);
21986     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21987   }
21988 }
21989 }
21990 }
21991 {
21992   DI tmp_tmp;
21993   tmp_tmp = ADDDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
21994 if (GTDI (tmp_tmp, 32767)) {
21995 {
21996   {
21997     UHI opval = 32767;
21998     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
21999     written |= (1 << 19);
22000     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22001   }
22002 frvbf_media_overflow (current_cpu, 4);
22003 }
22004 } else {
22005 if (LTDI (tmp_tmp, -32768)) {
22006 {
22007   {
22008     UHI opval = -32768;
22009     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
22010     written |= (1 << 19);
22011     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22012   }
22013 frvbf_media_overflow (current_cpu, 4);
22014 }
22015 } else {
22016   {
22017     UHI opval = tmp_tmp;
22018     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
22019     written |= (1 << 19);
22020     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22021   }
22022 }
22023 }
22024 }
22025 {
22026   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22027   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22028   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22029   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22030 }
22031 {
22032   DI tmp_tmp;
22033   tmp_tmp = ADDDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
22034 if (GTDI (tmp_tmp, 32767)) {
22035 {
22036   {
22037     UHI opval = 32767;
22038     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 1), opval);
22039     written |= (1 << 18);
22040     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22041   }
22042 frvbf_media_overflow (current_cpu, 2);
22043 }
22044 } else {
22045 if (LTDI (tmp_tmp, -32768)) {
22046 {
22047   {
22048     UHI opval = -32768;
22049     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 1), opval);
22050     written |= (1 << 18);
22051     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22052   }
22053 frvbf_media_overflow (current_cpu, 2);
22054 }
22055 } else {
22056   {
22057     UHI opval = tmp_tmp;
22058     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 1), opval);
22059     written |= (1 << 18);
22060     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22061   }
22062 }
22063 }
22064 }
22065 {
22066   DI tmp_tmp;
22067   tmp_tmp = ADDDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
22068 if (GTDI (tmp_tmp, 32767)) {
22069 {
22070   {
22071     UHI opval = 32767;
22072     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 1), opval);
22073     written |= (1 << 20);
22074     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22075   }
22076 frvbf_media_overflow (current_cpu, 1);
22077 }
22078 } else {
22079 if (LTDI (tmp_tmp, -32768)) {
22080 {
22081   {
22082     UHI opval = -32768;
22083     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 1), opval);
22084     written |= (1 << 20);
22085     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22086   }
22087 frvbf_media_overflow (current_cpu, 1);
22088 }
22089 } else {
22090   {
22091     UHI opval = tmp_tmp;
22092     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 1), opval);
22093     written |= (1 << 20);
22094     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22095   }
22096 }
22097 }
22098 }
22099 }
22100 }
22101 }
22102
22103   abuf->written = written;
22104   return vpc;
22105 #undef FLD
22106 }
22107
22108 /* cmqaddhus: cmqaddhus$pack $FRintieven,$FRintjeven,$FRintkeven,$CCi,$cond */
22109
22110 static SEM_PC
22111 SEM_FN_NAME (frvbf,cmqaddhus) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
22112 {
22113 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
22114   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
22115   int UNUSED written = 0;
22116   IADDR UNUSED pc = abuf->addr;
22117   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
22118
22119 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
22120 frvbf_media_register_not_aligned (current_cpu);
22121 } else {
22122 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
22123 {
22124   UHI tmp_argihi;
22125   UHI tmp_argilo;
22126   UHI tmp_argjhi;
22127   UHI tmp_argjlo;
22128   {
22129     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
22130     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
22131     written |= (1 << 16);
22132     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
22133   }
22134 {
22135   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22136   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22137   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22138   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22139 }
22140 {
22141   DI tmp_tmp;
22142   tmp_tmp = ADDDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
22143 if (GTDI (tmp_tmp, 65535)) {
22144 {
22145   {
22146     UHI opval = 65535;
22147     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
22148     written |= (1 << 17);
22149     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22150   }
22151 frvbf_media_overflow (current_cpu, 8);
22152 }
22153 } else {
22154 if (LTDI (tmp_tmp, 0)) {
22155 {
22156   {
22157     UHI opval = 0;
22158     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
22159     written |= (1 << 17);
22160     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22161   }
22162 frvbf_media_overflow (current_cpu, 8);
22163 }
22164 } else {
22165   {
22166     UHI opval = tmp_tmp;
22167     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
22168     written |= (1 << 17);
22169     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22170   }
22171 }
22172 }
22173 }
22174 {
22175   DI tmp_tmp;
22176   tmp_tmp = ADDDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
22177 if (GTDI (tmp_tmp, 65535)) {
22178 {
22179   {
22180     UHI opval = 65535;
22181     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
22182     written |= (1 << 19);
22183     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22184   }
22185 frvbf_media_overflow (current_cpu, 4);
22186 }
22187 } else {
22188 if (LTDI (tmp_tmp, 0)) {
22189 {
22190   {
22191     UHI opval = 0;
22192     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
22193     written |= (1 << 19);
22194     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22195   }
22196 frvbf_media_overflow (current_cpu, 4);
22197 }
22198 } else {
22199   {
22200     UHI opval = tmp_tmp;
22201     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
22202     written |= (1 << 19);
22203     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22204   }
22205 }
22206 }
22207 }
22208 {
22209   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22210   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22211   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22212   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22213 }
22214 {
22215   DI tmp_tmp;
22216   tmp_tmp = ADDDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
22217 if (GTDI (tmp_tmp, 65535)) {
22218 {
22219   {
22220     UHI opval = 65535;
22221     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 1), opval);
22222     written |= (1 << 18);
22223     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22224   }
22225 frvbf_media_overflow (current_cpu, 2);
22226 }
22227 } else {
22228 if (LTDI (tmp_tmp, 0)) {
22229 {
22230   {
22231     UHI opval = 0;
22232     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 1), opval);
22233     written |= (1 << 18);
22234     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22235   }
22236 frvbf_media_overflow (current_cpu, 2);
22237 }
22238 } else {
22239   {
22240     UHI opval = tmp_tmp;
22241     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 1), opval);
22242     written |= (1 << 18);
22243     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22244   }
22245 }
22246 }
22247 }
22248 {
22249   DI tmp_tmp;
22250   tmp_tmp = ADDDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
22251 if (GTDI (tmp_tmp, 65535)) {
22252 {
22253   {
22254     UHI opval = 65535;
22255     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 1), opval);
22256     written |= (1 << 20);
22257     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22258   }
22259 frvbf_media_overflow (current_cpu, 1);
22260 }
22261 } else {
22262 if (LTDI (tmp_tmp, 0)) {
22263 {
22264   {
22265     UHI opval = 0;
22266     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 1), opval);
22267     written |= (1 << 20);
22268     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22269   }
22270 frvbf_media_overflow (current_cpu, 1);
22271 }
22272 } else {
22273   {
22274     UHI opval = tmp_tmp;
22275     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 1), opval);
22276     written |= (1 << 20);
22277     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22278   }
22279 }
22280 }
22281 }
22282 }
22283 }
22284 }
22285
22286   abuf->written = written;
22287   return vpc;
22288 #undef FLD
22289 }
22290
22291 /* cmqsubhss: cmqsubhss$pack $FRintieven,$FRintjeven,$FRintkeven,$CCi,$cond */
22292
22293 static SEM_PC
22294 SEM_FN_NAME (frvbf,cmqsubhss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
22295 {
22296 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
22297   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
22298   int UNUSED written = 0;
22299   IADDR UNUSED pc = abuf->addr;
22300   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
22301
22302 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
22303 frvbf_media_register_not_aligned (current_cpu);
22304 } else {
22305 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
22306 {
22307   HI tmp_argihi;
22308   HI tmp_argilo;
22309   HI tmp_argjhi;
22310   HI tmp_argjlo;
22311   {
22312     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
22313     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
22314     written |= (1 << 16);
22315     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
22316   }
22317 {
22318   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22319   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22320   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22321   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22322 }
22323 {
22324   DI tmp_tmp;
22325   tmp_tmp = SUBDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
22326 if (GTDI (tmp_tmp, 32767)) {
22327 {
22328   {
22329     UHI opval = 32767;
22330     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
22331     written |= (1 << 17);
22332     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22333   }
22334 frvbf_media_overflow (current_cpu, 8);
22335 }
22336 } else {
22337 if (LTDI (tmp_tmp, -32768)) {
22338 {
22339   {
22340     UHI opval = -32768;
22341     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
22342     written |= (1 << 17);
22343     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22344   }
22345 frvbf_media_overflow (current_cpu, 8);
22346 }
22347 } else {
22348   {
22349     UHI opval = tmp_tmp;
22350     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
22351     written |= (1 << 17);
22352     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22353   }
22354 }
22355 }
22356 }
22357 {
22358   DI tmp_tmp;
22359   tmp_tmp = SUBDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
22360 if (GTDI (tmp_tmp, 32767)) {
22361 {
22362   {
22363     UHI opval = 32767;
22364     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
22365     written |= (1 << 19);
22366     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22367   }
22368 frvbf_media_overflow (current_cpu, 4);
22369 }
22370 } else {
22371 if (LTDI (tmp_tmp, -32768)) {
22372 {
22373   {
22374     UHI opval = -32768;
22375     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
22376     written |= (1 << 19);
22377     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22378   }
22379 frvbf_media_overflow (current_cpu, 4);
22380 }
22381 } else {
22382   {
22383     UHI opval = tmp_tmp;
22384     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
22385     written |= (1 << 19);
22386     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22387   }
22388 }
22389 }
22390 }
22391 {
22392   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22393   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22394   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22395   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22396 }
22397 {
22398   DI tmp_tmp;
22399   tmp_tmp = SUBDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
22400 if (GTDI (tmp_tmp, 32767)) {
22401 {
22402   {
22403     UHI opval = 32767;
22404     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 1), opval);
22405     written |= (1 << 18);
22406     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22407   }
22408 frvbf_media_overflow (current_cpu, 2);
22409 }
22410 } else {
22411 if (LTDI (tmp_tmp, -32768)) {
22412 {
22413   {
22414     UHI opval = -32768;
22415     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 1), opval);
22416     written |= (1 << 18);
22417     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22418   }
22419 frvbf_media_overflow (current_cpu, 2);
22420 }
22421 } else {
22422   {
22423     UHI opval = tmp_tmp;
22424     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 1), opval);
22425     written |= (1 << 18);
22426     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22427   }
22428 }
22429 }
22430 }
22431 {
22432   DI tmp_tmp;
22433   tmp_tmp = SUBDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
22434 if (GTDI (tmp_tmp, 32767)) {
22435 {
22436   {
22437     UHI opval = 32767;
22438     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 1), opval);
22439     written |= (1 << 20);
22440     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22441   }
22442 frvbf_media_overflow (current_cpu, 1);
22443 }
22444 } else {
22445 if (LTDI (tmp_tmp, -32768)) {
22446 {
22447   {
22448     UHI opval = -32768;
22449     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 1), opval);
22450     written |= (1 << 20);
22451     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22452   }
22453 frvbf_media_overflow (current_cpu, 1);
22454 }
22455 } else {
22456   {
22457     UHI opval = tmp_tmp;
22458     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 1), opval);
22459     written |= (1 << 20);
22460     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22461   }
22462 }
22463 }
22464 }
22465 }
22466 }
22467 }
22468
22469   abuf->written = written;
22470   return vpc;
22471 #undef FLD
22472 }
22473
22474 /* cmqsubhus: cmqsubhus$pack $FRintieven,$FRintjeven,$FRintkeven,$CCi,$cond */
22475
22476 static SEM_PC
22477 SEM_FN_NAME (frvbf,cmqsubhus) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
22478 {
22479 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
22480   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
22481   int UNUSED written = 0;
22482   IADDR UNUSED pc = abuf->addr;
22483   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
22484
22485 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
22486 frvbf_media_register_not_aligned (current_cpu);
22487 } else {
22488 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
22489 {
22490   UHI tmp_argihi;
22491   UHI tmp_argilo;
22492   UHI tmp_argjhi;
22493   UHI tmp_argjlo;
22494   {
22495     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
22496     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
22497     written |= (1 << 16);
22498     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
22499   }
22500 {
22501   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22502   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22503   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22504   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22505 }
22506 {
22507   DI tmp_tmp;
22508   tmp_tmp = SUBDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
22509 if (GTDI (tmp_tmp, 65535)) {
22510 {
22511   {
22512     UHI opval = 65535;
22513     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
22514     written |= (1 << 17);
22515     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22516   }
22517 frvbf_media_overflow (current_cpu, 8);
22518 }
22519 } else {
22520 if (LTDI (tmp_tmp, 0)) {
22521 {
22522   {
22523     UHI opval = 0;
22524     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
22525     written |= (1 << 17);
22526     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22527   }
22528 frvbf_media_overflow (current_cpu, 8);
22529 }
22530 } else {
22531   {
22532     UHI opval = tmp_tmp;
22533     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
22534     written |= (1 << 17);
22535     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22536   }
22537 }
22538 }
22539 }
22540 {
22541   DI tmp_tmp;
22542   tmp_tmp = SUBDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
22543 if (GTDI (tmp_tmp, 65535)) {
22544 {
22545   {
22546     UHI opval = 65535;
22547     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
22548     written |= (1 << 19);
22549     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22550   }
22551 frvbf_media_overflow (current_cpu, 4);
22552 }
22553 } else {
22554 if (LTDI (tmp_tmp, 0)) {
22555 {
22556   {
22557     UHI opval = 0;
22558     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
22559     written |= (1 << 19);
22560     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22561   }
22562 frvbf_media_overflow (current_cpu, 4);
22563 }
22564 } else {
22565   {
22566     UHI opval = tmp_tmp;
22567     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
22568     written |= (1 << 19);
22569     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22570   }
22571 }
22572 }
22573 }
22574 {
22575   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22576   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22577   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22578   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22579 }
22580 {
22581   DI tmp_tmp;
22582   tmp_tmp = SUBDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
22583 if (GTDI (tmp_tmp, 65535)) {
22584 {
22585   {
22586     UHI opval = 65535;
22587     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 1), opval);
22588     written |= (1 << 18);
22589     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22590   }
22591 frvbf_media_overflow (current_cpu, 2);
22592 }
22593 } else {
22594 if (LTDI (tmp_tmp, 0)) {
22595 {
22596   {
22597     UHI opval = 0;
22598     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 1), opval);
22599     written |= (1 << 18);
22600     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22601   }
22602 frvbf_media_overflow (current_cpu, 2);
22603 }
22604 } else {
22605   {
22606     UHI opval = tmp_tmp;
22607     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 1), opval);
22608     written |= (1 << 18);
22609     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22610   }
22611 }
22612 }
22613 }
22614 {
22615   DI tmp_tmp;
22616   tmp_tmp = SUBDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
22617 if (GTDI (tmp_tmp, 65535)) {
22618 {
22619   {
22620     UHI opval = 65535;
22621     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 1), opval);
22622     written |= (1 << 20);
22623     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22624   }
22625 frvbf_media_overflow (current_cpu, 1);
22626 }
22627 } else {
22628 if (LTDI (tmp_tmp, 0)) {
22629 {
22630   {
22631     UHI opval = 0;
22632     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 1), opval);
22633     written |= (1 << 20);
22634     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22635   }
22636 frvbf_media_overflow (current_cpu, 1);
22637 }
22638 } else {
22639   {
22640     UHI opval = tmp_tmp;
22641     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 1), opval);
22642     written |= (1 << 20);
22643     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22644   }
22645 }
22646 }
22647 }
22648 }
22649 }
22650 }
22651
22652   abuf->written = written;
22653   return vpc;
22654 #undef FLD
22655 }
22656
22657 /* mqlclrhs: mqlclrhs$pack $FRintieven,$FRintjeven,$FRintkeven */
22658
22659 static SEM_PC
22660 SEM_FN_NAME (frvbf,mqlclrhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
22661 {
22662 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
22663   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
22664   int UNUSED written = 0;
22665   IADDR UNUSED pc = abuf->addr;
22666   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
22667
22668 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
22669 frvbf_media_register_not_aligned (current_cpu);
22670 } else {
22671 {
22672   HI tmp_a1;
22673   HI tmp_a2;
22674   HI tmp_a3;
22675   HI tmp_a4;
22676   HI tmp_b1;
22677   HI tmp_b2;
22678   HI tmp_b3;
22679   HI tmp_b4;
22680   {
22681     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
22682     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
22683     written |= (1 << 14);
22684     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
22685   }
22686 {
22687   tmp_a1 = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22688   tmp_a2 = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22689   tmp_b1 = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22690   tmp_b2 = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22691 }
22692 {
22693   tmp_a3 = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22694   tmp_a4 = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22695   tmp_b3 = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22696   tmp_b4 = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22697 }
22698   {
22699     UHI opval = (LEUHI (ABSHI (tmp_a1), ABSHI (tmp_b1))) ? (0) : (LEHI (0, tmp_b1)) ? (tmp_a1) : (EQHI (tmp_a1, -32768)) ? (32767) : (NEGHI (tmp_a1));
22700     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
22701     written |= (1 << 15);
22702     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22703   }
22704   {
22705     UHI opval = (LEUHI (ABSHI (tmp_a2), ABSHI (tmp_b2))) ? (0) : (LEHI (0, tmp_b2)) ? (tmp_a2) : (EQHI (tmp_a2, -32768)) ? (32767) : (NEGHI (tmp_a2));
22706     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
22707     written |= (1 << 17);
22708     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22709   }
22710   {
22711     UHI opval = (LEUHI (ABSHI (tmp_a3), ABSHI (tmp_b3))) ? (0) : (LEHI (0, tmp_b3)) ? (tmp_a3) : (EQHI (tmp_a3, -32768)) ? (32767) : (NEGHI (tmp_a3));
22712     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 1), opval);
22713     written |= (1 << 16);
22714     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22715   }
22716   {
22717     UHI opval = (LEUHI (ABSHI (tmp_a4), ABSHI (tmp_b4))) ? (0) : (LEHI (0, tmp_b4)) ? (tmp_a4) : (EQHI (tmp_a4, -32768)) ? (32767) : (NEGHI (tmp_a4));
22718     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 1), opval);
22719     written |= (1 << 18);
22720     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22721   }
22722 }
22723 }
22724
22725   abuf->written = written;
22726   return vpc;
22727 #undef FLD
22728 }
22729
22730 /* mqlmths: mqlmths$pack $FRintieven,$FRintjeven,$FRintkeven */
22731
22732 static SEM_PC
22733 SEM_FN_NAME (frvbf,mqlmths) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
22734 {
22735 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
22736   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
22737   int UNUSED written = 0;
22738   IADDR UNUSED pc = abuf->addr;
22739   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
22740
22741 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
22742 frvbf_media_register_not_aligned (current_cpu);
22743 } else {
22744 {
22745   HI tmp_a1;
22746   HI tmp_a2;
22747   HI tmp_a3;
22748   HI tmp_a4;
22749   HI tmp_b1;
22750   HI tmp_b2;
22751   HI tmp_b3;
22752   HI tmp_b4;
22753   {
22754     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
22755     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
22756     written |= (1 << 14);
22757     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
22758   }
22759 {
22760   tmp_a1 = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22761   tmp_a2 = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22762   tmp_b1 = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22763   tmp_b2 = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22764 }
22765 {
22766   tmp_a3 = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22767   tmp_a4 = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22768   tmp_b3 = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22769   tmp_b4 = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22770 }
22771   {
22772     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));
22773     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
22774     written |= (1 << 15);
22775     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22776   }
22777   {
22778     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));
22779     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
22780     written |= (1 << 17);
22781     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22782   }
22783   {
22784     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));
22785     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 1), opval);
22786     written |= (1 << 16);
22787     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22788   }
22789   {
22790     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));
22791     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 1), opval);
22792     written |= (1 << 18);
22793     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22794   }
22795 }
22796 }
22797
22798   abuf->written = written;
22799   return vpc;
22800 #undef FLD
22801 }
22802
22803 /* mqsllhi: mqsllhi$pack $FRintieven,$u6,$FRintkeven */
22804
22805 static SEM_PC
22806 SEM_FN_NAME (frvbf,mqsllhi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
22807 {
22808 #define FLD(f) abuf->fields.sfmt_mqsllhi.f
22809   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
22810   int UNUSED written = 0;
22811   IADDR UNUSED pc = abuf->addr;
22812   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
22813
22814 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1)))) {
22815 frvbf_media_register_not_aligned (current_cpu);
22816 } else {
22817 {
22818   {
22819     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRi)));
22820     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRi), opval);
22821     written |= (1 << 9);
22822     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
22823   }
22824   {
22825     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
22826     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
22827     written |= (1 << 10);
22828     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
22829   }
22830   {
22831     UHI opval = SLLHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), ANDSI (FLD (f_u6), 15));
22832     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
22833     written |= (1 << 11);
22834     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22835   }
22836   {
22837     UHI opval = SLLHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), ANDSI (FLD (f_u6), 15));
22838     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
22839     written |= (1 << 13);
22840     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22841   }
22842   {
22843     UHI opval = SLLHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 1)), ANDSI (FLD (f_u6), 15));
22844     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 1), opval);
22845     written |= (1 << 12);
22846     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22847   }
22848   {
22849     UHI opval = SLLHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 1)), ANDSI (FLD (f_u6), 15));
22850     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 1), opval);
22851     written |= (1 << 14);
22852     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22853   }
22854 }
22855 }
22856
22857   abuf->written = written;
22858   return vpc;
22859 #undef FLD
22860 }
22861
22862 /* mqsrahi: mqsrahi$pack $FRintieven,$u6,$FRintkeven */
22863
22864 static SEM_PC
22865 SEM_FN_NAME (frvbf,mqsrahi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
22866 {
22867 #define FLD(f) abuf->fields.sfmt_mqsllhi.f
22868   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
22869   int UNUSED written = 0;
22870   IADDR UNUSED pc = abuf->addr;
22871   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
22872
22873 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1)))) {
22874 frvbf_media_register_not_aligned (current_cpu);
22875 } else {
22876 {
22877   {
22878     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRi)));
22879     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRi), opval);
22880     written |= (1 << 9);
22881     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
22882   }
22883   {
22884     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
22885     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
22886     written |= (1 << 10);
22887     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
22888   }
22889   {
22890     UHI opval = SRAHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), ANDSI (FLD (f_u6), 15));
22891     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
22892     written |= (1 << 11);
22893     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22894   }
22895   {
22896     UHI opval = SRAHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), ANDSI (FLD (f_u6), 15));
22897     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
22898     written |= (1 << 13);
22899     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22900   }
22901   {
22902     UHI opval = SRAHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 1)), ANDSI (FLD (f_u6), 15));
22903     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 1), opval);
22904     written |= (1 << 12);
22905     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22906   }
22907   {
22908     UHI opval = SRAHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 1)), ANDSI (FLD (f_u6), 15));
22909     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 1), opval);
22910     written |= (1 << 14);
22911     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22912   }
22913 }
22914 }
22915
22916   abuf->written = written;
22917   return vpc;
22918 #undef FLD
22919 }
22920
22921 /* maddaccs: maddaccs$pack $ACC40Si,$ACC40Sk */
22922
22923 static SEM_PC
22924 SEM_FN_NAME (frvbf,maddaccs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
22925 {
22926 #define FLD(f) abuf->fields.sfmt_mdasaccs.f
22927   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
22928   int UNUSED written = 0;
22929   IADDR UNUSED pc = abuf->addr;
22930   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
22931
22932 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Si))) {
22933 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
22934 if (ANDSI (FLD (f_ACC40Si), SUBSI (2, 1))) {
22935 frvbf_media_acc_not_aligned (current_cpu);
22936 } else {
22937 {
22938   DI tmp_tmp;
22939   tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_ACC40S (ADDSI (FLD (f_ACC40Si), 1)));
22940 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
22941 {
22942   {
22943     DI opval = MAKEDI (127, 0xffffffff);
22944     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
22945     written |= (1 << 4);
22946     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22947   }
22948 frvbf_media_overflow (current_cpu, 8);
22949 }
22950 } else {
22951 if (LTDI (tmp_tmp, INVDI (MAKEDI (127, 0xffffffff)))) {
22952 {
22953   {
22954     DI opval = INVDI (MAKEDI (127, 0xffffffff));
22955     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
22956     written |= (1 << 4);
22957     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22958   }
22959 frvbf_media_overflow (current_cpu, 8);
22960 }
22961 } else {
22962   {
22963     DI opval = tmp_tmp;
22964     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
22965     written |= (1 << 4);
22966     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22967   }
22968 }
22969 }
22970 }
22971 }
22972 }
22973 }
22974
22975   abuf->written = written;
22976   return vpc;
22977 #undef FLD
22978 }
22979
22980 /* msubaccs: msubaccs$pack $ACC40Si,$ACC40Sk */
22981
22982 static SEM_PC
22983 SEM_FN_NAME (frvbf,msubaccs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
22984 {
22985 #define FLD(f) abuf->fields.sfmt_mdasaccs.f
22986   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
22987   int UNUSED written = 0;
22988   IADDR UNUSED pc = abuf->addr;
22989   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
22990
22991 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Si))) {
22992 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
22993 if (ANDSI (FLD (f_ACC40Si), SUBSI (2, 1))) {
22994 frvbf_media_acc_not_aligned (current_cpu);
22995 } else {
22996 {
22997   DI tmp_tmp;
22998   tmp_tmp = SUBDI (GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_ACC40S (ADDSI (FLD (f_ACC40Si), 1)));
22999 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
23000 {
23001   {
23002     DI opval = MAKEDI (127, 0xffffffff);
23003     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23004     written |= (1 << 4);
23005     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23006   }
23007 frvbf_media_overflow (current_cpu, 8);
23008 }
23009 } else {
23010 if (LTDI (tmp_tmp, INVDI (MAKEDI (127, 0xffffffff)))) {
23011 {
23012   {
23013     DI opval = INVDI (MAKEDI (127, 0xffffffff));
23014     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23015     written |= (1 << 4);
23016     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23017   }
23018 frvbf_media_overflow (current_cpu, 8);
23019 }
23020 } else {
23021   {
23022     DI opval = tmp_tmp;
23023     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23024     written |= (1 << 4);
23025     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23026   }
23027 }
23028 }
23029 }
23030 }
23031 }
23032 }
23033
23034   abuf->written = written;
23035   return vpc;
23036 #undef FLD
23037 }
23038
23039 /* mdaddaccs: mdaddaccs$pack $ACC40Si,$ACC40Sk */
23040
23041 static SEM_PC
23042 SEM_FN_NAME (frvbf,mdaddaccs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23043 {
23044 #define FLD(f) abuf->fields.sfmt_mdasaccs.f
23045   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23046   int UNUSED written = 0;
23047   IADDR UNUSED pc = abuf->addr;
23048   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23049
23050 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Si))) {
23051 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
23052 if (ANDSI (FLD (f_ACC40Si), SUBSI (4, 1))) {
23053 frvbf_media_acc_not_aligned (current_cpu);
23054 } else {
23055 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
23056 frvbf_media_acc_not_aligned (current_cpu);
23057 } else {
23058 {
23059 {
23060   DI tmp_tmp;
23061   tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_ACC40S (ADDSI (FLD (f_ACC40Si), 1)));
23062 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
23063 {
23064   {
23065     DI opval = MAKEDI (127, 0xffffffff);
23066     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23067     written |= (1 << 6);
23068     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23069   }
23070 frvbf_media_overflow (current_cpu, 8);
23071 }
23072 } else {
23073 if (LTDI (tmp_tmp, INVDI (MAKEDI (127, 0xffffffff)))) {
23074 {
23075   {
23076     DI opval = INVDI (MAKEDI (127, 0xffffffff));
23077     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23078     written |= (1 << 6);
23079     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23080   }
23081 frvbf_media_overflow (current_cpu, 8);
23082 }
23083 } else {
23084   {
23085     DI opval = tmp_tmp;
23086     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23087     written |= (1 << 6);
23088     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23089   }
23090 }
23091 }
23092 }
23093 {
23094   DI tmp_tmp;
23095   tmp_tmp = ADDDI (GET_H_ACC40S (ADDSI (FLD (f_ACC40Si), 2)), GET_H_ACC40S (ADDSI (FLD (f_ACC40Si), 3)));
23096 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
23097 {
23098   {
23099     DI opval = MAKEDI (127, 0xffffffff);
23100     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
23101     written |= (1 << 7);
23102     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23103   }
23104 frvbf_media_overflow (current_cpu, 4);
23105 }
23106 } else {
23107 if (LTDI (tmp_tmp, INVDI (MAKEDI (127, 0xffffffff)))) {
23108 {
23109   {
23110     DI opval = INVDI (MAKEDI (127, 0xffffffff));
23111     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
23112     written |= (1 << 7);
23113     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23114   }
23115 frvbf_media_overflow (current_cpu, 4);
23116 }
23117 } else {
23118   {
23119     DI opval = tmp_tmp;
23120     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
23121     written |= (1 << 7);
23122     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23123   }
23124 }
23125 }
23126 }
23127 }
23128 }
23129 }
23130 }
23131 }
23132
23133   abuf->written = written;
23134   return vpc;
23135 #undef FLD
23136 }
23137
23138 /* mdsubaccs: mdsubaccs$pack $ACC40Si,$ACC40Sk */
23139
23140 static SEM_PC
23141 SEM_FN_NAME (frvbf,mdsubaccs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23142 {
23143 #define FLD(f) abuf->fields.sfmt_mdasaccs.f
23144   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23145   int UNUSED written = 0;
23146   IADDR UNUSED pc = abuf->addr;
23147   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23148
23149 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Si))) {
23150 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
23151 if (ANDSI (FLD (f_ACC40Si), SUBSI (4, 1))) {
23152 frvbf_media_acc_not_aligned (current_cpu);
23153 } else {
23154 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
23155 frvbf_media_acc_not_aligned (current_cpu);
23156 } else {
23157 {
23158 {
23159   DI tmp_tmp;
23160   tmp_tmp = SUBDI (GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_ACC40S (ADDSI (FLD (f_ACC40Si), 1)));
23161 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
23162 {
23163   {
23164     DI opval = MAKEDI (127, 0xffffffff);
23165     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23166     written |= (1 << 6);
23167     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23168   }
23169 frvbf_media_overflow (current_cpu, 8);
23170 }
23171 } else {
23172 if (LTDI (tmp_tmp, INVDI (MAKEDI (127, 0xffffffff)))) {
23173 {
23174   {
23175     DI opval = INVDI (MAKEDI (127, 0xffffffff));
23176     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23177     written |= (1 << 6);
23178     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23179   }
23180 frvbf_media_overflow (current_cpu, 8);
23181 }
23182 } else {
23183   {
23184     DI opval = tmp_tmp;
23185     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23186     written |= (1 << 6);
23187     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23188   }
23189 }
23190 }
23191 }
23192 {
23193   DI tmp_tmp;
23194   tmp_tmp = SUBDI (GET_H_ACC40S (ADDSI (FLD (f_ACC40Si), 2)), GET_H_ACC40S (ADDSI (FLD (f_ACC40Si), 3)));
23195 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
23196 {
23197   {
23198     DI opval = MAKEDI (127, 0xffffffff);
23199     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
23200     written |= (1 << 7);
23201     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23202   }
23203 frvbf_media_overflow (current_cpu, 4);
23204 }
23205 } else {
23206 if (LTDI (tmp_tmp, INVDI (MAKEDI (127, 0xffffffff)))) {
23207 {
23208   {
23209     DI opval = INVDI (MAKEDI (127, 0xffffffff));
23210     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
23211     written |= (1 << 7);
23212     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23213   }
23214 frvbf_media_overflow (current_cpu, 4);
23215 }
23216 } else {
23217   {
23218     DI opval = tmp_tmp;
23219     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
23220     written |= (1 << 7);
23221     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23222   }
23223 }
23224 }
23225 }
23226 }
23227 }
23228 }
23229 }
23230 }
23231
23232   abuf->written = written;
23233   return vpc;
23234 #undef FLD
23235 }
23236
23237 /* masaccs: masaccs$pack $ACC40Si,$ACC40Sk */
23238
23239 static SEM_PC
23240 SEM_FN_NAME (frvbf,masaccs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23241 {
23242 #define FLD(f) abuf->fields.sfmt_mdasaccs.f
23243   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23244   int UNUSED written = 0;
23245   IADDR UNUSED pc = abuf->addr;
23246   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23247
23248 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Si))) {
23249 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
23250 if (ANDSI (FLD (f_ACC40Si), SUBSI (2, 1))) {
23251 frvbf_media_acc_not_aligned (current_cpu);
23252 } else {
23253 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
23254 frvbf_media_acc_not_aligned (current_cpu);
23255 } else {
23256 {
23257 {
23258   DI tmp_tmp;
23259   tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_ACC40S (ADDSI (FLD (f_ACC40Si), 1)));
23260 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
23261 {
23262   {
23263     DI opval = MAKEDI (127, 0xffffffff);
23264     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23265     written |= (1 << 4);
23266     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23267   }
23268 frvbf_media_overflow (current_cpu, 8);
23269 }
23270 } else {
23271 if (LTDI (tmp_tmp, INVDI (MAKEDI (127, 0xffffffff)))) {
23272 {
23273   {
23274     DI opval = INVDI (MAKEDI (127, 0xffffffff));
23275     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23276     written |= (1 << 4);
23277     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23278   }
23279 frvbf_media_overflow (current_cpu, 8);
23280 }
23281 } else {
23282   {
23283     DI opval = tmp_tmp;
23284     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23285     written |= (1 << 4);
23286     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23287   }
23288 }
23289 }
23290 }
23291 {
23292   DI tmp_tmp;
23293   tmp_tmp = SUBDI (GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_ACC40S (ADDSI (FLD (f_ACC40Si), 1)));
23294 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
23295 {
23296   {
23297     DI opval = MAKEDI (127, 0xffffffff);
23298     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
23299     written |= (1 << 5);
23300     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23301   }
23302 frvbf_media_overflow (current_cpu, 4);
23303 }
23304 } else {
23305 if (LTDI (tmp_tmp, INVDI (MAKEDI (127, 0xffffffff)))) {
23306 {
23307   {
23308     DI opval = INVDI (MAKEDI (127, 0xffffffff));
23309     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
23310     written |= (1 << 5);
23311     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23312   }
23313 frvbf_media_overflow (current_cpu, 4);
23314 }
23315 } else {
23316   {
23317     DI opval = tmp_tmp;
23318     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
23319     written |= (1 << 5);
23320     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23321   }
23322 }
23323 }
23324 }
23325 }
23326 }
23327 }
23328 }
23329 }
23330
23331   abuf->written = written;
23332   return vpc;
23333 #undef FLD
23334 }
23335
23336 /* mdasaccs: mdasaccs$pack $ACC40Si,$ACC40Sk */
23337
23338 static SEM_PC
23339 SEM_FN_NAME (frvbf,mdasaccs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23340 {
23341 #define FLD(f) abuf->fields.sfmt_mdasaccs.f
23342   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23343   int UNUSED written = 0;
23344   IADDR UNUSED pc = abuf->addr;
23345   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23346
23347 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Si))) {
23348 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
23349 if (ANDSI (FLD (f_ACC40Si), SUBSI (4, 1))) {
23350 frvbf_media_acc_not_aligned (current_cpu);
23351 } else {
23352 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
23353 frvbf_media_acc_not_aligned (current_cpu);
23354 } else {
23355 {
23356 {
23357   DI tmp_tmp;
23358   tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_ACC40S (ADDSI (FLD (f_ACC40Si), 1)));
23359 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
23360 {
23361   {
23362     DI opval = MAKEDI (127, 0xffffffff);
23363     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23364     written |= (1 << 6);
23365     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23366   }
23367 frvbf_media_overflow (current_cpu, 8);
23368 }
23369 } else {
23370 if (LTDI (tmp_tmp, INVDI (MAKEDI (127, 0xffffffff)))) {
23371 {
23372   {
23373     DI opval = INVDI (MAKEDI (127, 0xffffffff));
23374     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23375     written |= (1 << 6);
23376     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23377   }
23378 frvbf_media_overflow (current_cpu, 8);
23379 }
23380 } else {
23381   {
23382     DI opval = tmp_tmp;
23383     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23384     written |= (1 << 6);
23385     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23386   }
23387 }
23388 }
23389 }
23390 {
23391   DI tmp_tmp;
23392   tmp_tmp = SUBDI (GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_ACC40S (ADDSI (FLD (f_ACC40Si), 1)));
23393 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
23394 {
23395   {
23396     DI opval = MAKEDI (127, 0xffffffff);
23397     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
23398     written |= (1 << 7);
23399     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23400   }
23401 frvbf_media_overflow (current_cpu, 4);
23402 }
23403 } else {
23404 if (LTDI (tmp_tmp, INVDI (MAKEDI (127, 0xffffffff)))) {
23405 {
23406   {
23407     DI opval = INVDI (MAKEDI (127, 0xffffffff));
23408     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
23409     written |= (1 << 7);
23410     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23411   }
23412 frvbf_media_overflow (current_cpu, 4);
23413 }
23414 } else {
23415   {
23416     DI opval = tmp_tmp;
23417     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
23418     written |= (1 << 7);
23419     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23420   }
23421 }
23422 }
23423 }
23424 {
23425   DI tmp_tmp;
23426   tmp_tmp = ADDDI (GET_H_ACC40S (ADDSI (FLD (f_ACC40Si), 2)), GET_H_ACC40S (ADDSI (FLD (f_ACC40Si), 3)));
23427 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
23428 {
23429   {
23430     DI opval = MAKEDI (127, 0xffffffff);
23431     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 2), opval);
23432     written |= (1 << 8);
23433     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23434   }
23435 frvbf_media_overflow (current_cpu, 2);
23436 }
23437 } else {
23438 if (LTDI (tmp_tmp, INVDI (MAKEDI (127, 0xffffffff)))) {
23439 {
23440   {
23441     DI opval = INVDI (MAKEDI (127, 0xffffffff));
23442     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 2), opval);
23443     written |= (1 << 8);
23444     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23445   }
23446 frvbf_media_overflow (current_cpu, 2);
23447 }
23448 } else {
23449   {
23450     DI opval = tmp_tmp;
23451     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 2), opval);
23452     written |= (1 << 8);
23453     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23454   }
23455 }
23456 }
23457 }
23458 {
23459   DI tmp_tmp;
23460   tmp_tmp = SUBDI (GET_H_ACC40S (ADDSI (FLD (f_ACC40Si), 2)), GET_H_ACC40S (ADDSI (FLD (f_ACC40Si), 3)));
23461 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
23462 {
23463   {
23464     DI opval = MAKEDI (127, 0xffffffff);
23465     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 3), opval);
23466     written |= (1 << 9);
23467     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23468   }
23469 frvbf_media_overflow (current_cpu, 1);
23470 }
23471 } else {
23472 if (LTDI (tmp_tmp, INVDI (MAKEDI (127, 0xffffffff)))) {
23473 {
23474   {
23475     DI opval = INVDI (MAKEDI (127, 0xffffffff));
23476     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 3), opval);
23477     written |= (1 << 9);
23478     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23479   }
23480 frvbf_media_overflow (current_cpu, 1);
23481 }
23482 } else {
23483   {
23484     DI opval = tmp_tmp;
23485     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 3), opval);
23486     written |= (1 << 9);
23487     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23488   }
23489 }
23490 }
23491 }
23492 }
23493 }
23494 }
23495 }
23496 }
23497
23498   abuf->written = written;
23499   return vpc;
23500 #undef FLD
23501 }
23502
23503 /* mmulhs: mmulhs$pack $FRinti,$FRintj,$ACC40Sk */
23504
23505 static SEM_PC
23506 SEM_FN_NAME (frvbf,mmulhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23507 {
23508 #define FLD(f) abuf->fields.sfmt_cmmachs.f
23509   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23510   int UNUSED written = 0;
23511   IADDR UNUSED pc = abuf->addr;
23512   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23513
23514 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
23515 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
23516 frvbf_media_acc_not_aligned (current_cpu);
23517 } else {
23518 {
23519   HI tmp_argihi;
23520   HI tmp_argilo;
23521   HI tmp_argjhi;
23522   HI tmp_argjlo;
23523 {
23524   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23525   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23526   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23527   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23528 }
23529   {
23530     DI opval = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
23531     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23532     written |= (1 << 9);
23533     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23534   }
23535   {
23536     DI opval = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
23537     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
23538     written |= (1 << 10);
23539     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23540   }
23541 }
23542 }
23543 }
23544
23545   abuf->written = written;
23546   return vpc;
23547 #undef FLD
23548 }
23549
23550 /* mmulhu: mmulhu$pack $FRinti,$FRintj,$ACC40Sk */
23551
23552 static SEM_PC
23553 SEM_FN_NAME (frvbf,mmulhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23554 {
23555 #define FLD(f) abuf->fields.sfmt_cmmachs.f
23556   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23557   int UNUSED written = 0;
23558   IADDR UNUSED pc = abuf->addr;
23559   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23560
23561 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
23562 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
23563 frvbf_media_acc_not_aligned (current_cpu);
23564 } else {
23565 {
23566   UHI tmp_argihi;
23567   UHI tmp_argilo;
23568   UHI tmp_argjhi;
23569   UHI tmp_argjlo;
23570 {
23571   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23572   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23573   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23574   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23575 }
23576   {
23577     DI opval = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
23578     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23579     written |= (1 << 9);
23580     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23581   }
23582   {
23583     DI opval = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
23584     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
23585     written |= (1 << 10);
23586     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23587   }
23588 }
23589 }
23590 }
23591
23592   abuf->written = written;
23593   return vpc;
23594 #undef FLD
23595 }
23596
23597 /* mmulxhs: mmulxhs$pack $FRinti,$FRintj,$ACC40Sk */
23598
23599 static SEM_PC
23600 SEM_FN_NAME (frvbf,mmulxhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23601 {
23602 #define FLD(f) abuf->fields.sfmt_cmmachs.f
23603   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23604   int UNUSED written = 0;
23605   IADDR UNUSED pc = abuf->addr;
23606   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23607
23608 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
23609 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
23610 frvbf_media_acc_not_aligned (current_cpu);
23611 } else {
23612 {
23613   HI tmp_argihi;
23614   HI tmp_argilo;
23615   HI tmp_argjhi;
23616   HI tmp_argjlo;
23617 {
23618   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23619   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23620   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23621   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23622 }
23623   {
23624     DI opval = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo));
23625     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23626     written |= (1 << 9);
23627     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23628   }
23629   {
23630     DI opval = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi));
23631     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
23632     written |= (1 << 10);
23633     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23634   }
23635 }
23636 }
23637 }
23638
23639   abuf->written = written;
23640   return vpc;
23641 #undef FLD
23642 }
23643
23644 /* mmulxhu: mmulxhu$pack $FRinti,$FRintj,$ACC40Sk */
23645
23646 static SEM_PC
23647 SEM_FN_NAME (frvbf,mmulxhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23648 {
23649 #define FLD(f) abuf->fields.sfmt_cmmachs.f
23650   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23651   int UNUSED written = 0;
23652   IADDR UNUSED pc = abuf->addr;
23653   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23654
23655 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
23656 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
23657 frvbf_media_acc_not_aligned (current_cpu);
23658 } else {
23659 {
23660   UHI tmp_argihi;
23661   UHI tmp_argilo;
23662   UHI tmp_argjhi;
23663   UHI tmp_argjlo;
23664 {
23665   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23666   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23667   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23668   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23669 }
23670   {
23671     DI opval = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjlo));
23672     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23673     written |= (1 << 9);
23674     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23675   }
23676   {
23677     DI opval = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjhi));
23678     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
23679     written |= (1 << 10);
23680     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23681   }
23682 }
23683 }
23684 }
23685
23686   abuf->written = written;
23687   return vpc;
23688 #undef FLD
23689 }
23690
23691 /* cmmulhs: cmmulhs$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
23692
23693 static SEM_PC
23694 SEM_FN_NAME (frvbf,cmmulhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23695 {
23696 #define FLD(f) abuf->fields.sfmt_cmmachs.f
23697   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23698   int UNUSED written = 0;
23699   IADDR UNUSED pc = abuf->addr;
23700   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23701
23702 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
23703 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
23704 frvbf_media_acc_not_aligned (current_cpu);
23705 } else {
23706 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
23707 {
23708   HI tmp_argihi;
23709   HI tmp_argilo;
23710   HI tmp_argjhi;
23711   HI tmp_argjlo;
23712 {
23713   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23714   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23715   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23716   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23717 }
23718   {
23719     DI opval = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
23720     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23721     written |= (1 << 11);
23722     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23723   }
23724   {
23725     DI opval = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
23726     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
23727     written |= (1 << 12);
23728     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23729   }
23730 }
23731 }
23732 }
23733 }
23734
23735   abuf->written = written;
23736   return vpc;
23737 #undef FLD
23738 }
23739
23740 /* cmmulhu: cmmulhu$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
23741
23742 static SEM_PC
23743 SEM_FN_NAME (frvbf,cmmulhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23744 {
23745 #define FLD(f) abuf->fields.sfmt_cmmachs.f
23746   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23747   int UNUSED written = 0;
23748   IADDR UNUSED pc = abuf->addr;
23749   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23750
23751 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
23752 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
23753 frvbf_media_acc_not_aligned (current_cpu);
23754 } else {
23755 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
23756 {
23757   UHI tmp_argihi;
23758   UHI tmp_argilo;
23759   UHI tmp_argjhi;
23760   UHI tmp_argjlo;
23761 {
23762   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23763   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23764   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23765   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23766 }
23767   {
23768     DI opval = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
23769     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23770     written |= (1 << 11);
23771     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23772   }
23773   {
23774     DI opval = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
23775     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
23776     written |= (1 << 12);
23777     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23778   }
23779 }
23780 }
23781 }
23782 }
23783
23784   abuf->written = written;
23785   return vpc;
23786 #undef FLD
23787 }
23788
23789 /* mqmulhs: mqmulhs$pack $FRintieven,$FRintjeven,$ACC40Sk */
23790
23791 static SEM_PC
23792 SEM_FN_NAME (frvbf,mqmulhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23793 {
23794 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
23795   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23796   int UNUSED written = 0;
23797   IADDR UNUSED pc = abuf->addr;
23798   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23799
23800 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
23801 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
23802 frvbf_media_acc_not_aligned (current_cpu);
23803 } else {
23804 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
23805 frvbf_media_register_not_aligned (current_cpu);
23806 } else {
23807 {
23808   HI tmp_argihi;
23809   HI tmp_argilo;
23810   HI tmp_argjhi;
23811   HI tmp_argjlo;
23812 {
23813   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23814   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23815   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23816   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23817 }
23818   {
23819     DI opval = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
23820     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23821     written |= (1 << 13);
23822     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23823   }
23824   {
23825     DI opval = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
23826     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
23827     written |= (1 << 14);
23828     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23829   }
23830 {
23831   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23832   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23833   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23834   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23835 }
23836   {
23837     DI opval = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
23838     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 2), opval);
23839     written |= (1 << 15);
23840     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23841   }
23842   {
23843     DI opval = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
23844     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 3), opval);
23845     written |= (1 << 16);
23846     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23847   }
23848 }
23849 }
23850 }
23851 }
23852
23853   abuf->written = written;
23854   return vpc;
23855 #undef FLD
23856 }
23857
23858 /* mqmulhu: mqmulhu$pack $FRintieven,$FRintjeven,$ACC40Sk */
23859
23860 static SEM_PC
23861 SEM_FN_NAME (frvbf,mqmulhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23862 {
23863 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
23864   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23865   int UNUSED written = 0;
23866   IADDR UNUSED pc = abuf->addr;
23867   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23868
23869 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
23870 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
23871 frvbf_media_acc_not_aligned (current_cpu);
23872 } else {
23873 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
23874 frvbf_media_register_not_aligned (current_cpu);
23875 } else {
23876 {
23877   UHI tmp_argihi;
23878   UHI tmp_argilo;
23879   UHI tmp_argjhi;
23880   UHI tmp_argjlo;
23881 {
23882   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23883   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23884   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23885   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23886 }
23887   {
23888     DI opval = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
23889     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23890     written |= (1 << 13);
23891     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23892   }
23893   {
23894     DI opval = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
23895     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
23896     written |= (1 << 14);
23897     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23898   }
23899 {
23900   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23901   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23902   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23903   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23904 }
23905   {
23906     DI opval = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
23907     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 2), opval);
23908     written |= (1 << 15);
23909     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23910   }
23911   {
23912     DI opval = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
23913     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 3), opval);
23914     written |= (1 << 16);
23915     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23916   }
23917 }
23918 }
23919 }
23920 }
23921
23922   abuf->written = written;
23923   return vpc;
23924 #undef FLD
23925 }
23926
23927 /* mqmulxhs: mqmulxhs$pack $FRintieven,$FRintjeven,$ACC40Sk */
23928
23929 static SEM_PC
23930 SEM_FN_NAME (frvbf,mqmulxhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23931 {
23932 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
23933   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23934   int UNUSED written = 0;
23935   IADDR UNUSED pc = abuf->addr;
23936   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23937
23938 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
23939 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
23940 frvbf_media_acc_not_aligned (current_cpu);
23941 } else {
23942 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
23943 frvbf_media_register_not_aligned (current_cpu);
23944 } else {
23945 {
23946   HI tmp_argihi;
23947   HI tmp_argilo;
23948   HI tmp_argjhi;
23949   HI tmp_argjlo;
23950 {
23951   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23952   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23953   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23954   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23955 }
23956   {
23957     DI opval = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo));
23958     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23959     written |= (1 << 13);
23960     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23961   }
23962   {
23963     DI opval = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi));
23964     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
23965     written |= (1 << 14);
23966     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23967   }
23968 {
23969   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23970   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23971   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23972   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23973 }
23974   {
23975     DI opval = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo));
23976     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 2), opval);
23977     written |= (1 << 15);
23978     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23979   }
23980   {
23981     DI opval = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi));
23982     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 3), opval);
23983     written |= (1 << 16);
23984     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23985   }
23986 }
23987 }
23988 }
23989 }
23990
23991   abuf->written = written;
23992   return vpc;
23993 #undef FLD
23994 }
23995
23996 /* mqmulxhu: mqmulxhu$pack $FRintieven,$FRintjeven,$ACC40Sk */
23997
23998 static SEM_PC
23999 SEM_FN_NAME (frvbf,mqmulxhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
24000 {
24001 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
24002   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
24003   int UNUSED written = 0;
24004   IADDR UNUSED pc = abuf->addr;
24005   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
24006
24007 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
24008 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
24009 frvbf_media_acc_not_aligned (current_cpu);
24010 } else {
24011 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
24012 frvbf_media_register_not_aligned (current_cpu);
24013 } else {
24014 {
24015   UHI tmp_argihi;
24016   UHI tmp_argilo;
24017   UHI tmp_argjhi;
24018   UHI tmp_argjlo;
24019 {
24020   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24021   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24022   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24023   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24024 }
24025   {
24026     DI opval = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjlo));
24027     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24028     written |= (1 << 13);
24029     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24030   }
24031   {
24032     DI opval = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjhi));
24033     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
24034     written |= (1 << 14);
24035     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24036   }
24037 {
24038   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24039   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24040   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24041   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24042 }
24043   {
24044     DI opval = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjlo));
24045     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 2), opval);
24046     written |= (1 << 15);
24047     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24048   }
24049   {
24050     DI opval = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjhi));
24051     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 3), opval);
24052     written |= (1 << 16);
24053     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24054   }
24055 }
24056 }
24057 }
24058 }
24059
24060   abuf->written = written;
24061   return vpc;
24062 #undef FLD
24063 }
24064
24065 /* cmqmulhs: cmqmulhs$pack $FRintieven,$FRintjeven,$ACC40Sk,$CCi,$cond */
24066
24067 static SEM_PC
24068 SEM_FN_NAME (frvbf,cmqmulhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
24069 {
24070 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
24071   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
24072   int UNUSED written = 0;
24073   IADDR UNUSED pc = abuf->addr;
24074   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
24075
24076 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
24077 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
24078 frvbf_media_acc_not_aligned (current_cpu);
24079 } else {
24080 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
24081 frvbf_media_register_not_aligned (current_cpu);
24082 } else {
24083 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
24084 {
24085   HI tmp_argihi;
24086   HI tmp_argilo;
24087   HI tmp_argjhi;
24088   HI tmp_argjlo;
24089 {
24090   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24091   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24092   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24093   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24094 }
24095   {
24096     DI opval = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
24097     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24098     written |= (1 << 15);
24099     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24100   }
24101   {
24102     DI opval = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
24103     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
24104     written |= (1 << 16);
24105     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24106   }
24107 {
24108   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24109   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24110   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24111   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24112 }
24113   {
24114     DI opval = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
24115     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 2), opval);
24116     written |= (1 << 17);
24117     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24118   }
24119   {
24120     DI opval = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
24121     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 3), opval);
24122     written |= (1 << 18);
24123     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24124   }
24125 }
24126 }
24127 }
24128 }
24129 }
24130
24131   abuf->written = written;
24132   return vpc;
24133 #undef FLD
24134 }
24135
24136 /* cmqmulhu: cmqmulhu$pack $FRintieven,$FRintjeven,$ACC40Sk,$CCi,$cond */
24137
24138 static SEM_PC
24139 SEM_FN_NAME (frvbf,cmqmulhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
24140 {
24141 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
24142   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
24143   int UNUSED written = 0;
24144   IADDR UNUSED pc = abuf->addr;
24145   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
24146
24147 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
24148 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
24149 frvbf_media_acc_not_aligned (current_cpu);
24150 } else {
24151 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
24152 frvbf_media_register_not_aligned (current_cpu);
24153 } else {
24154 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
24155 {
24156   UHI tmp_argihi;
24157   UHI tmp_argilo;
24158   UHI tmp_argjhi;
24159   UHI tmp_argjlo;
24160 {
24161   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24162   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24163   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24164   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24165 }
24166   {
24167     DI opval = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
24168     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24169     written |= (1 << 15);
24170     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24171   }
24172   {
24173     DI opval = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
24174     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
24175     written |= (1 << 16);
24176     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24177   }
24178 {
24179   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24180   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24181   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24182   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24183 }
24184   {
24185     DI opval = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
24186     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 2), opval);
24187     written |= (1 << 17);
24188     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24189   }
24190   {
24191     DI opval = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
24192     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 3), opval);
24193     written |= (1 << 18);
24194     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24195   }
24196 }
24197 }
24198 }
24199 }
24200 }
24201
24202   abuf->written = written;
24203   return vpc;
24204 #undef FLD
24205 }
24206
24207 /* mmachs: mmachs$pack $FRinti,$FRintj,$ACC40Sk */
24208
24209 static SEM_PC
24210 SEM_FN_NAME (frvbf,mmachs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
24211 {
24212 #define FLD(f) abuf->fields.sfmt_cmmachs.f
24213   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
24214   int UNUSED written = 0;
24215   IADDR UNUSED pc = abuf->addr;
24216   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
24217
24218 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
24219 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
24220 frvbf_media_acc_not_aligned (current_cpu);
24221 } else {
24222 {
24223   HI tmp_argihi;
24224   HI tmp_argilo;
24225   HI tmp_argjhi;
24226   HI tmp_argjlo;
24227 {
24228   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24229   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24230   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24231   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24232 }
24233 {
24234   DI tmp_tmp;
24235   tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Sk)), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi)));
24236 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24237 {
24238   {
24239     DI opval = MAKEDI (127, 0xffffffff);
24240     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24241     written |= (1 << 11);
24242     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24243   }
24244 frvbf_media_overflow (current_cpu, 8);
24245 }
24246 } else {
24247 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24248 {
24249   {
24250     DI opval = MAKEDI (0xffffff80, 0);
24251     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24252     written |= (1 << 11);
24253     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24254   }
24255 frvbf_media_overflow (current_cpu, 8);
24256 }
24257 } else {
24258   {
24259     DI opval = tmp_tmp;
24260     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24261     written |= (1 << 11);
24262     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24263   }
24264 }
24265 }
24266 }
24267 {
24268   DI tmp_tmp;
24269   tmp_tmp = ADDDI (GET_H_ACC40S (ADDSI (FLD (f_ACC40Sk), 1)), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo)));
24270 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24271 {
24272   {
24273     DI opval = MAKEDI (127, 0xffffffff);
24274     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
24275     written |= (1 << 12);
24276     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24277   }
24278 frvbf_media_overflow (current_cpu, 4);
24279 }
24280 } else {
24281 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24282 {
24283   {
24284     DI opval = MAKEDI (0xffffff80, 0);
24285     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
24286     written |= (1 << 12);
24287     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24288   }
24289 frvbf_media_overflow (current_cpu, 4);
24290 }
24291 } else {
24292   {
24293     DI opval = tmp_tmp;
24294     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
24295     written |= (1 << 12);
24296     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24297   }
24298 }
24299 }
24300 }
24301 }
24302 }
24303 }
24304
24305   abuf->written = written;
24306   return vpc;
24307 #undef FLD
24308 }
24309
24310 /* mmachu: mmachu$pack $FRinti,$FRintj,$ACC40Uk */
24311
24312 static SEM_PC
24313 SEM_FN_NAME (frvbf,mmachu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
24314 {
24315 #define FLD(f) abuf->fields.sfmt_cmmachu.f
24316   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
24317   int UNUSED written = 0;
24318   IADDR UNUSED pc = abuf->addr;
24319   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
24320
24321 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Uk))) {
24322 if (ANDSI (FLD (f_ACC40Uk), SUBSI (2, 1))) {
24323 frvbf_media_acc_not_aligned (current_cpu);
24324 } else {
24325 {
24326   UHI tmp_argihi;
24327   UHI tmp_argilo;
24328   UHI tmp_argjhi;
24329   UHI tmp_argjlo;
24330 {
24331   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24332   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24333   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24334   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24335 }
24336 {
24337   DI tmp_tmp;
24338   tmp_tmp = ADDDI (GET_H_ACC40U (FLD (f_ACC40Uk)), MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi)));
24339 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
24340 {
24341   {
24342     UDI opval = MAKEDI (255, 0xffffffff);
24343     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24344     written |= (1 << 11);
24345     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24346   }
24347 frvbf_media_overflow (current_cpu, 8);
24348 }
24349 } else {
24350 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
24351 {
24352   {
24353     UDI opval = MAKEDI (0, 0);
24354     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24355     written |= (1 << 11);
24356     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24357   }
24358 frvbf_media_overflow (current_cpu, 8);
24359 }
24360 } else {
24361   {
24362     UDI opval = tmp_tmp;
24363     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24364     written |= (1 << 11);
24365     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24366   }
24367 }
24368 }
24369 }
24370 {
24371   DI tmp_tmp;
24372   tmp_tmp = ADDDI (GET_H_ACC40U (ADDSI (FLD (f_ACC40Uk), 1)), MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo)));
24373 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
24374 {
24375   {
24376     UDI opval = MAKEDI (255, 0xffffffff);
24377     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ADDSI (FLD (f_ACC40Uk), 1), opval);
24378     written |= (1 << 12);
24379     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24380   }
24381 frvbf_media_overflow (current_cpu, 4);
24382 }
24383 } else {
24384 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
24385 {
24386   {
24387     UDI opval = MAKEDI (0, 0);
24388     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ADDSI (FLD (f_ACC40Uk), 1), opval);
24389     written |= (1 << 12);
24390     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24391   }
24392 frvbf_media_overflow (current_cpu, 4);
24393 }
24394 } else {
24395   {
24396     UDI opval = tmp_tmp;
24397     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ADDSI (FLD (f_ACC40Uk), 1), opval);
24398     written |= (1 << 12);
24399     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24400   }
24401 }
24402 }
24403 }
24404 }
24405 }
24406 }
24407
24408   abuf->written = written;
24409   return vpc;
24410 #undef FLD
24411 }
24412
24413 /* mmrdhs: mmrdhs$pack $FRinti,$FRintj,$ACC40Sk */
24414
24415 static SEM_PC
24416 SEM_FN_NAME (frvbf,mmrdhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
24417 {
24418 #define FLD(f) abuf->fields.sfmt_cmmachs.f
24419   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
24420   int UNUSED written = 0;
24421   IADDR UNUSED pc = abuf->addr;
24422   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
24423
24424 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
24425 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
24426 frvbf_media_acc_not_aligned (current_cpu);
24427 } else {
24428 {
24429   HI tmp_argihi;
24430   HI tmp_argilo;
24431   HI tmp_argjhi;
24432   HI tmp_argjlo;
24433 {
24434   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24435   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24436   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24437   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24438 }
24439 {
24440   DI tmp_tmp;
24441   tmp_tmp = SUBDI (GET_H_ACC40S (FLD (f_ACC40Sk)), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi)));
24442 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24443 {
24444   {
24445     DI opval = MAKEDI (127, 0xffffffff);
24446     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24447     written |= (1 << 11);
24448     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24449   }
24450 frvbf_media_overflow (current_cpu, 8);
24451 }
24452 } else {
24453 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24454 {
24455   {
24456     DI opval = MAKEDI (0xffffff80, 0);
24457     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24458     written |= (1 << 11);
24459     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24460   }
24461 frvbf_media_overflow (current_cpu, 8);
24462 }
24463 } else {
24464   {
24465     DI opval = tmp_tmp;
24466     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24467     written |= (1 << 11);
24468     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24469   }
24470 }
24471 }
24472 }
24473 {
24474   DI tmp_tmp;
24475   tmp_tmp = SUBDI (GET_H_ACC40S (ADDSI (FLD (f_ACC40Sk), 1)), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo)));
24476 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24477 {
24478   {
24479     DI opval = MAKEDI (127, 0xffffffff);
24480     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
24481     written |= (1 << 12);
24482     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24483   }
24484 frvbf_media_overflow (current_cpu, 4);
24485 }
24486 } else {
24487 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24488 {
24489   {
24490     DI opval = MAKEDI (0xffffff80, 0);
24491     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
24492     written |= (1 << 12);
24493     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24494   }
24495 frvbf_media_overflow (current_cpu, 4);
24496 }
24497 } else {
24498   {
24499     DI opval = tmp_tmp;
24500     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
24501     written |= (1 << 12);
24502     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24503   }
24504 }
24505 }
24506 }
24507 }
24508 }
24509 }
24510
24511   abuf->written = written;
24512   return vpc;
24513 #undef FLD
24514 }
24515
24516 /* mmrdhu: mmrdhu$pack $FRinti,$FRintj,$ACC40Uk */
24517
24518 static SEM_PC
24519 SEM_FN_NAME (frvbf,mmrdhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
24520 {
24521 #define FLD(f) abuf->fields.sfmt_cmmachu.f
24522   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
24523   int UNUSED written = 0;
24524   IADDR UNUSED pc = abuf->addr;
24525   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
24526
24527 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Uk))) {
24528 if (ANDSI (FLD (f_ACC40Uk), SUBSI (2, 1))) {
24529 frvbf_media_acc_not_aligned (current_cpu);
24530 } else {
24531 {
24532   UHI tmp_argihi;
24533   UHI tmp_argilo;
24534   UHI tmp_argjhi;
24535   UHI tmp_argjlo;
24536 {
24537   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24538   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24539   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24540   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24541 }
24542 {
24543   DI tmp_tmp;
24544   tmp_tmp = SUBDI (GET_H_ACC40U (FLD (f_ACC40Uk)), MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi)));
24545 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
24546 {
24547   {
24548     UDI opval = MAKEDI (255, 0xffffffff);
24549     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24550     written |= (1 << 11);
24551     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24552   }
24553 frvbf_media_overflow (current_cpu, 8);
24554 }
24555 } else {
24556 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
24557 {
24558   {
24559     UDI opval = MAKEDI (0, 0);
24560     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24561     written |= (1 << 11);
24562     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24563   }
24564 frvbf_media_overflow (current_cpu, 8);
24565 }
24566 } else {
24567   {
24568     UDI opval = tmp_tmp;
24569     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24570     written |= (1 << 11);
24571     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24572   }
24573 }
24574 }
24575 }
24576 {
24577   DI tmp_tmp;
24578   tmp_tmp = SUBDI (GET_H_ACC40U (ADDSI (FLD (f_ACC40Uk), 1)), MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo)));
24579 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
24580 {
24581   {
24582     UDI opval = MAKEDI (255, 0xffffffff);
24583     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ADDSI (FLD (f_ACC40Uk), 1), opval);
24584     written |= (1 << 12);
24585     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24586   }
24587 frvbf_media_overflow (current_cpu, 4);
24588 }
24589 } else {
24590 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
24591 {
24592   {
24593     UDI opval = MAKEDI (0, 0);
24594     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ADDSI (FLD (f_ACC40Uk), 1), opval);
24595     written |= (1 << 12);
24596     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24597   }
24598 frvbf_media_overflow (current_cpu, 4);
24599 }
24600 } else {
24601   {
24602     UDI opval = tmp_tmp;
24603     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ADDSI (FLD (f_ACC40Uk), 1), opval);
24604     written |= (1 << 12);
24605     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24606   }
24607 }
24608 }
24609 }
24610 }
24611 }
24612 }
24613
24614   abuf->written = written;
24615   return vpc;
24616 #undef FLD
24617 }
24618
24619 /* cmmachs: cmmachs$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
24620
24621 static SEM_PC
24622 SEM_FN_NAME (frvbf,cmmachs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
24623 {
24624 #define FLD(f) abuf->fields.sfmt_cmmachs.f
24625   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
24626   int UNUSED written = 0;
24627   IADDR UNUSED pc = abuf->addr;
24628   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
24629
24630 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
24631 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
24632 frvbf_media_acc_not_aligned (current_cpu);
24633 } else {
24634 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
24635 {
24636   HI tmp_argihi;
24637   HI tmp_argilo;
24638   HI tmp_argjhi;
24639   HI tmp_argjlo;
24640 {
24641   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24642   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24643   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24644   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24645 }
24646 {
24647   DI tmp_tmp;
24648   tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Sk)), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi)));
24649 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24650 {
24651   {
24652     DI opval = MAKEDI (127, 0xffffffff);
24653     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24654     written |= (1 << 13);
24655     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24656   }
24657 frvbf_media_overflow (current_cpu, 8);
24658 }
24659 } else {
24660 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24661 {
24662   {
24663     DI opval = MAKEDI (0xffffff80, 0);
24664     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24665     written |= (1 << 13);
24666     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24667   }
24668 frvbf_media_overflow (current_cpu, 8);
24669 }
24670 } else {
24671   {
24672     DI opval = tmp_tmp;
24673     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24674     written |= (1 << 13);
24675     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24676   }
24677 }
24678 }
24679 }
24680 {
24681   DI tmp_tmp;
24682   tmp_tmp = ADDDI (GET_H_ACC40S (ADDSI (FLD (f_ACC40Sk), 1)), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo)));
24683 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24684 {
24685   {
24686     DI opval = MAKEDI (127, 0xffffffff);
24687     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
24688     written |= (1 << 14);
24689     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24690   }
24691 frvbf_media_overflow (current_cpu, 4);
24692 }
24693 } else {
24694 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24695 {
24696   {
24697     DI opval = MAKEDI (0xffffff80, 0);
24698     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
24699     written |= (1 << 14);
24700     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24701   }
24702 frvbf_media_overflow (current_cpu, 4);
24703 }
24704 } else {
24705   {
24706     DI opval = tmp_tmp;
24707     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
24708     written |= (1 << 14);
24709     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24710   }
24711 }
24712 }
24713 }
24714 }
24715 }
24716 }
24717 }
24718
24719   abuf->written = written;
24720   return vpc;
24721 #undef FLD
24722 }
24723
24724 /* cmmachu: cmmachu$pack $FRinti,$FRintj,$ACC40Uk,$CCi,$cond */
24725
24726 static SEM_PC
24727 SEM_FN_NAME (frvbf,cmmachu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
24728 {
24729 #define FLD(f) abuf->fields.sfmt_cmmachu.f
24730   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
24731   int UNUSED written = 0;
24732   IADDR UNUSED pc = abuf->addr;
24733   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
24734
24735 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Uk))) {
24736 if (ANDSI (FLD (f_ACC40Uk), SUBSI (2, 1))) {
24737 frvbf_media_acc_not_aligned (current_cpu);
24738 } else {
24739 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
24740 {
24741   UHI tmp_argihi;
24742   UHI tmp_argilo;
24743   UHI tmp_argjhi;
24744   UHI tmp_argjlo;
24745 {
24746   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24747   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24748   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24749   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24750 }
24751 {
24752   DI tmp_tmp;
24753   tmp_tmp = ADDDI (GET_H_ACC40U (FLD (f_ACC40Uk)), MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi)));
24754 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
24755 {
24756   {
24757     UDI opval = MAKEDI (255, 0xffffffff);
24758     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24759     written |= (1 << 13);
24760     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24761   }
24762 frvbf_media_overflow (current_cpu, 8);
24763 }
24764 } else {
24765 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
24766 {
24767   {
24768     UDI opval = MAKEDI (0, 0);
24769     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24770     written |= (1 << 13);
24771     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24772   }
24773 frvbf_media_overflow (current_cpu, 8);
24774 }
24775 } else {
24776   {
24777     UDI opval = tmp_tmp;
24778     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24779     written |= (1 << 13);
24780     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24781   }
24782 }
24783 }
24784 }
24785 {
24786   DI tmp_tmp;
24787   tmp_tmp = ADDDI (GET_H_ACC40U (ADDSI (FLD (f_ACC40Uk), 1)), MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo)));
24788 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
24789 {
24790   {
24791     UDI opval = MAKEDI (255, 0xffffffff);
24792     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ADDSI (FLD (f_ACC40Uk), 1), opval);
24793     written |= (1 << 14);
24794     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24795   }
24796 frvbf_media_overflow (current_cpu, 4);
24797 }
24798 } else {
24799 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
24800 {
24801   {
24802     UDI opval = MAKEDI (0, 0);
24803     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ADDSI (FLD (f_ACC40Uk), 1), opval);
24804     written |= (1 << 14);
24805     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24806   }
24807 frvbf_media_overflow (current_cpu, 4);
24808 }
24809 } else {
24810   {
24811     UDI opval = tmp_tmp;
24812     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ADDSI (FLD (f_ACC40Uk), 1), opval);
24813     written |= (1 << 14);
24814     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24815   }
24816 }
24817 }
24818 }
24819 }
24820 }
24821 }
24822 }
24823
24824   abuf->written = written;
24825   return vpc;
24826 #undef FLD
24827 }
24828
24829 /* mqmachs: mqmachs$pack $FRintieven,$FRintjeven,$ACC40Sk */
24830
24831 static SEM_PC
24832 SEM_FN_NAME (frvbf,mqmachs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
24833 {
24834 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
24835   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
24836   int UNUSED written = 0;
24837   IADDR UNUSED pc = abuf->addr;
24838   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
24839
24840 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
24841 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
24842 frvbf_media_acc_not_aligned (current_cpu);
24843 } else {
24844 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
24845 frvbf_media_register_not_aligned (current_cpu);
24846 } else {
24847 {
24848   HI tmp_argihi;
24849   HI tmp_argilo;
24850   HI tmp_argjhi;
24851   HI tmp_argjlo;
24852 {
24853   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24854   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24855   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24856   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24857 }
24858 {
24859   DI tmp_tmp;
24860   tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Sk)), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi)));
24861 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24862 {
24863   {
24864     DI opval = MAKEDI (127, 0xffffffff);
24865     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24866     written |= (1 << 17);
24867     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24868   }
24869 frvbf_media_overflow (current_cpu, 8);
24870 }
24871 } else {
24872 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24873 {
24874   {
24875     DI opval = MAKEDI (0xffffff80, 0);
24876     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24877     written |= (1 << 17);
24878     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24879   }
24880 frvbf_media_overflow (current_cpu, 8);
24881 }
24882 } else {
24883   {
24884     DI opval = tmp_tmp;
24885     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24886     written |= (1 << 17);
24887     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24888   }
24889 }
24890 }
24891 }
24892 {
24893   DI tmp_tmp;
24894   tmp_tmp = ADDDI (GET_H_ACC40S (ADDSI (FLD (f_ACC40Sk), 1)), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo)));
24895 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24896 {
24897   {
24898     DI opval = MAKEDI (127, 0xffffffff);
24899     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
24900     written |= (1 << 18);
24901     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24902   }
24903 frvbf_media_overflow (current_cpu, 4);
24904 }
24905 } else {
24906 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24907 {
24908   {
24909     DI opval = MAKEDI (0xffffff80, 0);
24910     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
24911     written |= (1 << 18);
24912     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24913   }
24914 frvbf_media_overflow (current_cpu, 4);
24915 }
24916 } else {
24917   {
24918     DI opval = tmp_tmp;
24919     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
24920     written |= (1 << 18);
24921     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24922   }
24923 }
24924 }
24925 }
24926 {
24927   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24928   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24929   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24930   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24931 }
24932 {
24933   DI tmp_tmp;
24934   tmp_tmp = ADDDI (GET_H_ACC40S (ADDSI (FLD (f_ACC40Sk), 2)), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi)));
24935 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24936 {
24937   {
24938     DI opval = MAKEDI (127, 0xffffffff);
24939     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 2), opval);
24940     written |= (1 << 19);
24941     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24942   }
24943 frvbf_media_overflow (current_cpu, 2);
24944 }
24945 } else {
24946 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24947 {
24948   {
24949     DI opval = MAKEDI (0xffffff80, 0);
24950     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 2), opval);
24951     written |= (1 << 19);
24952     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24953   }
24954 frvbf_media_overflow (current_cpu, 2);
24955 }
24956 } else {
24957   {
24958     DI opval = tmp_tmp;
24959     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 2), opval);
24960     written |= (1 << 19);
24961     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24962   }
24963 }
24964 }
24965 }
24966 {
24967   DI tmp_tmp;
24968   tmp_tmp = ADDDI (GET_H_ACC40S (ADDSI (FLD (f_ACC40Sk), 3)), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo)));
24969 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24970 {
24971   {
24972     DI opval = MAKEDI (127, 0xffffffff);
24973     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 3), opval);
24974     written |= (1 << 20);
24975     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24976   }
24977 frvbf_media_overflow (current_cpu, 1);
24978 }
24979 } else {
24980 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24981 {
24982   {
24983     DI opval = MAKEDI (0xffffff80, 0);
24984     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 3), opval);
24985     written |= (1 << 20);
24986     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24987   }
24988 frvbf_media_overflow (current_cpu, 1);
24989 }
24990 } else {
24991   {
24992     DI opval = tmp_tmp;
24993     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 3), opval);
24994     written |= (1 << 20);
24995     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24996   }
24997 }
24998 }
24999 }
25000 }
25001 }
25002 }
25003 }
25004
25005   abuf->written = written;
25006   return vpc;
25007 #undef FLD
25008 }
25009
25010 /* mqmachu: mqmachu$pack $FRintieven,$FRintjeven,$ACC40Uk */
25011
25012 static SEM_PC
25013 SEM_FN_NAME (frvbf,mqmachu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
25014 {
25015 #define FLD(f) abuf->fields.sfmt_cmqmachu.f
25016   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
25017   int UNUSED written = 0;
25018   IADDR UNUSED pc = abuf->addr;
25019   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
25020
25021 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Uk))) {
25022 if (ANDSI (FLD (f_ACC40Uk), SUBSI (4, 1))) {
25023 frvbf_media_acc_not_aligned (current_cpu);
25024 } else {
25025 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
25026 frvbf_media_register_not_aligned (current_cpu);
25027 } else {
25028 {
25029   UHI tmp_argihi;
25030   UHI tmp_argilo;
25031   UHI tmp_argjhi;
25032   UHI tmp_argjlo;
25033 {
25034   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25035   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25036   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25037   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25038 }
25039 {
25040   DI tmp_tmp;
25041   tmp_tmp = ADDDI (GET_H_ACC40U (FLD (f_ACC40Uk)), MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi)));
25042 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
25043 {
25044   {
25045     UDI opval = MAKEDI (255, 0xffffffff);
25046     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
25047     written |= (1 << 17);
25048     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25049   }
25050 frvbf_media_overflow (current_cpu, 8);
25051 }
25052 } else {
25053 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
25054 {
25055   {
25056     UDI opval = MAKEDI (0, 0);
25057     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
25058     written |= (1 << 17);
25059     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25060   }
25061 frvbf_media_overflow (current_cpu, 8);
25062 }
25063 } else {
25064   {
25065     UDI opval = tmp_tmp;
25066     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
25067     written |= (1 << 17);
25068     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25069   }
25070 }
25071 }
25072 }
25073 {
25074   DI tmp_tmp;
25075   tmp_tmp = ADDDI (GET_H_ACC40U (ADDSI (FLD (f_ACC40Uk), 1)), MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo)));
25076 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
25077 {
25078   {
25079     UDI opval = MAKEDI (255, 0xffffffff);
25080     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ADDSI (FLD (f_ACC40Uk), 1), opval);
25081     written |= (1 << 18);
25082     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25083   }
25084 frvbf_media_overflow (current_cpu, 4);
25085 }
25086 } else {
25087 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
25088 {
25089   {
25090     UDI opval = MAKEDI (0, 0);
25091     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ADDSI (FLD (f_ACC40Uk), 1), opval);
25092     written |= (1 << 18);
25093     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25094   }
25095 frvbf_media_overflow (current_cpu, 4);
25096 }
25097 } else {
25098   {
25099     UDI opval = tmp_tmp;
25100     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ADDSI (FLD (f_ACC40Uk), 1), opval);
25101     written |= (1 << 18);
25102     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25103   }
25104 }
25105 }
25106 }
25107 {
25108   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25109   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25110   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25111   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25112 }
25113 {
25114   DI tmp_tmp;
25115   tmp_tmp = ADDDI (GET_H_ACC40U (ADDSI (FLD (f_ACC40Uk), 2)), MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi)));
25116 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
25117 {
25118   {
25119     UDI opval = MAKEDI (255, 0xffffffff);
25120     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ADDSI (FLD (f_ACC40Uk), 2), opval);
25121     written |= (1 << 19);
25122     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25123   }
25124 frvbf_media_overflow (current_cpu, 2);
25125 }
25126 } else {
25127 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
25128 {
25129   {
25130     UDI opval = MAKEDI (0, 0);
25131     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ADDSI (FLD (f_ACC40Uk), 2), opval);
25132     written |= (1 << 19);
25133     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25134   }
25135 frvbf_media_overflow (current_cpu, 2);
25136 }
25137 } else {
25138   {
25139     UDI opval = tmp_tmp;
25140     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ADDSI (FLD (f_ACC40Uk), 2), opval);
25141     written |= (1 << 19);
25142     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25143   }
25144 }
25145 }
25146 }
25147 {
25148   DI tmp_tmp;
25149   tmp_tmp = ADDDI (GET_H_ACC40U (ADDSI (FLD (f_ACC40Uk), 3)), MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo)));
25150 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
25151 {
25152   {
25153     UDI opval = MAKEDI (255, 0xffffffff);
25154     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ADDSI (FLD (f_ACC40Uk), 3), opval);
25155     written |= (1 << 20);
25156     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25157   }
25158 frvbf_media_overflow (current_cpu, 1);
25159 }
25160 } else {
25161 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
25162 {
25163   {
25164     UDI opval = MAKEDI (0, 0);
25165     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ADDSI (FLD (f_ACC40Uk), 3), opval);
25166     written |= (1 << 20);
25167     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25168   }
25169 frvbf_media_overflow (current_cpu, 1);
25170 }
25171 } else {
25172   {
25173     UDI opval = tmp_tmp;
25174     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ADDSI (FLD (f_ACC40Uk), 3), opval);
25175     written |= (1 << 20);
25176     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25177   }
25178 }
25179 }
25180 }
25181 }
25182 }
25183 }
25184 }
25185
25186   abuf->written = written;
25187   return vpc;
25188 #undef FLD
25189 }
25190
25191 /* cmqmachs: cmqmachs$pack $FRintieven,$FRintjeven,$ACC40Sk,$CCi,$cond */
25192
25193 static SEM_PC
25194 SEM_FN_NAME (frvbf,cmqmachs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
25195 {
25196 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
25197   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
25198   int UNUSED written = 0;
25199   IADDR UNUSED pc = abuf->addr;
25200   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
25201
25202 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
25203 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
25204 frvbf_media_acc_not_aligned (current_cpu);
25205 } else {
25206 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
25207 frvbf_media_register_not_aligned (current_cpu);
25208 } else {
25209 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
25210 {
25211   HI tmp_argihi;
25212   HI tmp_argilo;
25213   HI tmp_argjhi;
25214   HI tmp_argjlo;
25215 {
25216   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25217   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25218   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25219   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25220 }
25221 {
25222   DI tmp_tmp;
25223   tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Sk)), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi)));
25224 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25225 {
25226   {
25227     DI opval = MAKEDI (127, 0xffffffff);
25228     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25229     written |= (1 << 19);
25230     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25231   }
25232 frvbf_media_overflow (current_cpu, 8);
25233 }
25234 } else {
25235 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25236 {
25237   {
25238     DI opval = MAKEDI (0xffffff80, 0);
25239     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25240     written |= (1 << 19);
25241     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25242   }
25243 frvbf_media_overflow (current_cpu, 8);
25244 }
25245 } else {
25246   {
25247     DI opval = tmp_tmp;
25248     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25249     written |= (1 << 19);
25250     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25251   }
25252 }
25253 }
25254 }
25255 {
25256   DI tmp_tmp;
25257   tmp_tmp = ADDDI (GET_H_ACC40S (ADDSI (FLD (f_ACC40Sk), 1)), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo)));
25258 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25259 {
25260   {
25261     DI opval = MAKEDI (127, 0xffffffff);
25262     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
25263     written |= (1 << 20);
25264     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25265   }
25266 frvbf_media_overflow (current_cpu, 4);
25267 }
25268 } else {
25269 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25270 {
25271   {
25272     DI opval = MAKEDI (0xffffff80, 0);
25273     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
25274     written |= (1 << 20);
25275     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25276   }
25277 frvbf_media_overflow (current_cpu, 4);
25278 }
25279 } else {
25280   {
25281     DI opval = tmp_tmp;
25282     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
25283     written |= (1 << 20);
25284     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25285   }
25286 }
25287 }
25288 }
25289 {
25290   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25291   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25292   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25293   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25294 }
25295 {
25296   DI tmp_tmp;
25297   tmp_tmp = ADDDI (GET_H_ACC40S (ADDSI (FLD (f_ACC40Sk), 2)), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi)));
25298 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25299 {
25300   {
25301     DI opval = MAKEDI (127, 0xffffffff);
25302     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 2), opval);
25303     written |= (1 << 21);
25304     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25305   }
25306 frvbf_media_overflow (current_cpu, 2);
25307 }
25308 } else {
25309 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25310 {
25311   {
25312     DI opval = MAKEDI (0xffffff80, 0);
25313     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 2), opval);
25314     written |= (1 << 21);
25315     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25316   }
25317 frvbf_media_overflow (current_cpu, 2);
25318 }
25319 } else {
25320   {
25321     DI opval = tmp_tmp;
25322     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 2), opval);
25323     written |= (1 << 21);
25324     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25325   }
25326 }
25327 }
25328 }
25329 {
25330   DI tmp_tmp;
25331   tmp_tmp = ADDDI (GET_H_ACC40S (ADDSI (FLD (f_ACC40Sk), 3)), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo)));
25332 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25333 {
25334   {
25335     DI opval = MAKEDI (127, 0xffffffff);
25336     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 3), opval);
25337     written |= (1 << 22);
25338     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25339   }
25340 frvbf_media_overflow (current_cpu, 1);
25341 }
25342 } else {
25343 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25344 {
25345   {
25346     DI opval = MAKEDI (0xffffff80, 0);
25347     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 3), opval);
25348     written |= (1 << 22);
25349     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25350   }
25351 frvbf_media_overflow (current_cpu, 1);
25352 }
25353 } else {
25354   {
25355     DI opval = tmp_tmp;
25356     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 3), opval);
25357     written |= (1 << 22);
25358     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25359   }
25360 }
25361 }
25362 }
25363 }
25364 }
25365 }
25366 }
25367 }
25368
25369   abuf->written = written;
25370   return vpc;
25371 #undef FLD
25372 }
25373
25374 /* cmqmachu: cmqmachu$pack $FRintieven,$FRintjeven,$ACC40Uk,$CCi,$cond */
25375
25376 static SEM_PC
25377 SEM_FN_NAME (frvbf,cmqmachu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
25378 {
25379 #define FLD(f) abuf->fields.sfmt_cmqmachu.f
25380   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
25381   int UNUSED written = 0;
25382   IADDR UNUSED pc = abuf->addr;
25383   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
25384
25385 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Uk))) {
25386 if (ANDSI (FLD (f_ACC40Uk), SUBSI (4, 1))) {
25387 frvbf_media_acc_not_aligned (current_cpu);
25388 } else {
25389 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
25390 frvbf_media_register_not_aligned (current_cpu);
25391 } else {
25392 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
25393 {
25394   UHI tmp_argihi;
25395   UHI tmp_argilo;
25396   UHI tmp_argjhi;
25397   UHI tmp_argjlo;
25398 {
25399   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25400   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25401   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25402   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25403 }
25404 {
25405   DI tmp_tmp;
25406   tmp_tmp = ADDDI (GET_H_ACC40U (FLD (f_ACC40Uk)), MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi)));
25407 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
25408 {
25409   {
25410     UDI opval = MAKEDI (255, 0xffffffff);
25411     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
25412     written |= (1 << 19);
25413     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25414   }
25415 frvbf_media_overflow (current_cpu, 8);
25416 }
25417 } else {
25418 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
25419 {
25420   {
25421     UDI opval = MAKEDI (0, 0);
25422     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
25423     written |= (1 << 19);
25424     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25425   }
25426 frvbf_media_overflow (current_cpu, 8);
25427 }
25428 } else {
25429   {
25430     UDI opval = tmp_tmp;
25431     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
25432     written |= (1 << 19);
25433     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25434   }
25435 }
25436 }
25437 }
25438 {
25439   DI tmp_tmp;
25440   tmp_tmp = ADDDI (GET_H_ACC40U (ADDSI (FLD (f_ACC40Uk), 1)), MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo)));
25441 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
25442 {
25443   {
25444     UDI opval = MAKEDI (255, 0xffffffff);
25445     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ADDSI (FLD (f_ACC40Uk), 1), opval);
25446     written |= (1 << 20);
25447     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25448   }
25449 frvbf_media_overflow (current_cpu, 4);
25450 }
25451 } else {
25452 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
25453 {
25454   {
25455     UDI opval = MAKEDI (0, 0);
25456     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ADDSI (FLD (f_ACC40Uk), 1), opval);
25457     written |= (1 << 20);
25458     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25459   }
25460 frvbf_media_overflow (current_cpu, 4);
25461 }
25462 } else {
25463   {
25464     UDI opval = tmp_tmp;
25465     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ADDSI (FLD (f_ACC40Uk), 1), opval);
25466     written |= (1 << 20);
25467     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25468   }
25469 }
25470 }
25471 }
25472 {
25473   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25474   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25475   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25476   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25477 }
25478 {
25479   DI tmp_tmp;
25480   tmp_tmp = ADDDI (GET_H_ACC40U (ADDSI (FLD (f_ACC40Uk), 2)), MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi)));
25481 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
25482 {
25483   {
25484     UDI opval = MAKEDI (255, 0xffffffff);
25485     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ADDSI (FLD (f_ACC40Uk), 2), opval);
25486     written |= (1 << 21);
25487     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25488   }
25489 frvbf_media_overflow (current_cpu, 2);
25490 }
25491 } else {
25492 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
25493 {
25494   {
25495     UDI opval = MAKEDI (0, 0);
25496     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ADDSI (FLD (f_ACC40Uk), 2), opval);
25497     written |= (1 << 21);
25498     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25499   }
25500 frvbf_media_overflow (current_cpu, 2);
25501 }
25502 } else {
25503   {
25504     UDI opval = tmp_tmp;
25505     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ADDSI (FLD (f_ACC40Uk), 2), opval);
25506     written |= (1 << 21);
25507     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25508   }
25509 }
25510 }
25511 }
25512 {
25513   DI tmp_tmp;
25514   tmp_tmp = ADDDI (GET_H_ACC40U (ADDSI (FLD (f_ACC40Uk), 3)), MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo)));
25515 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
25516 {
25517   {
25518     UDI opval = MAKEDI (255, 0xffffffff);
25519     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ADDSI (FLD (f_ACC40Uk), 3), opval);
25520     written |= (1 << 22);
25521     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25522   }
25523 frvbf_media_overflow (current_cpu, 1);
25524 }
25525 } else {
25526 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
25527 {
25528   {
25529     UDI opval = MAKEDI (0, 0);
25530     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ADDSI (FLD (f_ACC40Uk), 3), opval);
25531     written |= (1 << 22);
25532     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25533   }
25534 frvbf_media_overflow (current_cpu, 1);
25535 }
25536 } else {
25537   {
25538     UDI opval = tmp_tmp;
25539     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ADDSI (FLD (f_ACC40Uk), 3), opval);
25540     written |= (1 << 22);
25541     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25542   }
25543 }
25544 }
25545 }
25546 }
25547 }
25548 }
25549 }
25550 }
25551
25552   abuf->written = written;
25553   return vpc;
25554 #undef FLD
25555 }
25556
25557 /* mqxmachs: mqxmachs$pack $FRintieven,$FRintjeven,$ACC40Sk */
25558
25559 static SEM_PC
25560 SEM_FN_NAME (frvbf,mqxmachs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
25561 {
25562 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
25563   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
25564   int UNUSED written = 0;
25565   IADDR UNUSED pc = abuf->addr;
25566   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
25567
25568 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
25569 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
25570 frvbf_media_acc_not_aligned (current_cpu);
25571 } else {
25572 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
25573 frvbf_media_register_not_aligned (current_cpu);
25574 } else {
25575 {
25576   HI tmp_argihi;
25577   HI tmp_argilo;
25578   HI tmp_argjhi;
25579   HI tmp_argjlo;
25580 {
25581   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25582   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25583   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25584   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25585 }
25586 {
25587   DI tmp_tmp;
25588   tmp_tmp = ADDDI (GET_H_ACC40S (ADDSI (FLD (f_ACC40Sk), 2)), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi)));
25589 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25590 {
25591   {
25592     DI opval = MAKEDI (127, 0xffffffff);
25593     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 2), opval);
25594     written |= (1 << 19);
25595     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25596   }
25597 frvbf_media_overflow (current_cpu, 2);
25598 }
25599 } else {
25600 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25601 {
25602   {
25603     DI opval = MAKEDI (0xffffff80, 0);
25604     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 2), opval);
25605     written |= (1 << 19);
25606     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25607   }
25608 frvbf_media_overflow (current_cpu, 2);
25609 }
25610 } else {
25611   {
25612     DI opval = tmp_tmp;
25613     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 2), opval);
25614     written |= (1 << 19);
25615     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25616   }
25617 }
25618 }
25619 }
25620 {
25621   DI tmp_tmp;
25622   tmp_tmp = ADDDI (GET_H_ACC40S (ADDSI (FLD (f_ACC40Sk), 3)), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo)));
25623 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25624 {
25625   {
25626     DI opval = MAKEDI (127, 0xffffffff);
25627     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 3), opval);
25628     written |= (1 << 20);
25629     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25630   }
25631 frvbf_media_overflow (current_cpu, 1);
25632 }
25633 } else {
25634 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25635 {
25636   {
25637     DI opval = MAKEDI (0xffffff80, 0);
25638     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 3), opval);
25639     written |= (1 << 20);
25640     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25641   }
25642 frvbf_media_overflow (current_cpu, 1);
25643 }
25644 } else {
25645   {
25646     DI opval = tmp_tmp;
25647     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 3), opval);
25648     written |= (1 << 20);
25649     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25650   }
25651 }
25652 }
25653 }
25654 {
25655   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25656   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25657   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25658   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25659 }
25660 {
25661   DI tmp_tmp;
25662   tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Sk)), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi)));
25663 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25664 {
25665   {
25666     DI opval = MAKEDI (127, 0xffffffff);
25667     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25668     written |= (1 << 17);
25669     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25670   }
25671 frvbf_media_overflow (current_cpu, 8);
25672 }
25673 } else {
25674 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25675 {
25676   {
25677     DI opval = MAKEDI (0xffffff80, 0);
25678     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25679     written |= (1 << 17);
25680     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25681   }
25682 frvbf_media_overflow (current_cpu, 8);
25683 }
25684 } else {
25685   {
25686     DI opval = tmp_tmp;
25687     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25688     written |= (1 << 17);
25689     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25690   }
25691 }
25692 }
25693 }
25694 {
25695   DI tmp_tmp;
25696   tmp_tmp = ADDDI (GET_H_ACC40S (ADDSI (FLD (f_ACC40Sk), 1)), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo)));
25697 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25698 {
25699   {
25700     DI opval = MAKEDI (127, 0xffffffff);
25701     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
25702     written |= (1 << 18);
25703     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25704   }
25705 frvbf_media_overflow (current_cpu, 4);
25706 }
25707 } else {
25708 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25709 {
25710   {
25711     DI opval = MAKEDI (0xffffff80, 0);
25712     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
25713     written |= (1 << 18);
25714     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25715   }
25716 frvbf_media_overflow (current_cpu, 4);
25717 }
25718 } else {
25719   {
25720     DI opval = tmp_tmp;
25721     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
25722     written |= (1 << 18);
25723     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25724   }
25725 }
25726 }
25727 }
25728 }
25729 }
25730 }
25731 }
25732
25733   abuf->written = written;
25734   return vpc;
25735 #undef FLD
25736 }
25737
25738 /* mqxmacxhs: mqxmacxhs$pack $FRintieven,$FRintjeven,$ACC40Sk */
25739
25740 static SEM_PC
25741 SEM_FN_NAME (frvbf,mqxmacxhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
25742 {
25743 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
25744   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
25745   int UNUSED written = 0;
25746   IADDR UNUSED pc = abuf->addr;
25747   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
25748
25749 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
25750 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
25751 frvbf_media_acc_not_aligned (current_cpu);
25752 } else {
25753 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
25754 frvbf_media_register_not_aligned (current_cpu);
25755 } else {
25756 {
25757   HI tmp_argihi;
25758   HI tmp_argilo;
25759   HI tmp_argjhi;
25760   HI tmp_argjlo;
25761 {
25762   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25763   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25764   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25765   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25766 }
25767 {
25768   DI tmp_tmp;
25769   tmp_tmp = ADDDI (GET_H_ACC40S (ADDSI (FLD (f_ACC40Sk), 2)), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo)));
25770 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25771 {
25772   {
25773     DI opval = MAKEDI (127, 0xffffffff);
25774     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 2), opval);
25775     written |= (1 << 19);
25776     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25777   }
25778 frvbf_media_overflow (current_cpu, 2);
25779 }
25780 } else {
25781 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25782 {
25783   {
25784     DI opval = MAKEDI (0xffffff80, 0);
25785     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 2), opval);
25786     written |= (1 << 19);
25787     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25788   }
25789 frvbf_media_overflow (current_cpu, 2);
25790 }
25791 } else {
25792   {
25793     DI opval = tmp_tmp;
25794     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 2), opval);
25795     written |= (1 << 19);
25796     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25797   }
25798 }
25799 }
25800 }
25801 {
25802   DI tmp_tmp;
25803   tmp_tmp = ADDDI (GET_H_ACC40S (ADDSI (FLD (f_ACC40Sk), 3)), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi)));
25804 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25805 {
25806   {
25807     DI opval = MAKEDI (127, 0xffffffff);
25808     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 3), opval);
25809     written |= (1 << 20);
25810     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25811   }
25812 frvbf_media_overflow (current_cpu, 1);
25813 }
25814 } else {
25815 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25816 {
25817   {
25818     DI opval = MAKEDI (0xffffff80, 0);
25819     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 3), opval);
25820     written |= (1 << 20);
25821     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25822   }
25823 frvbf_media_overflow (current_cpu, 1);
25824 }
25825 } else {
25826   {
25827     DI opval = tmp_tmp;
25828     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 3), opval);
25829     written |= (1 << 20);
25830     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25831   }
25832 }
25833 }
25834 }
25835 {
25836   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25837   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25838   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25839   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25840 }
25841 {
25842   DI tmp_tmp;
25843   tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Sk)), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo)));
25844 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25845 {
25846   {
25847     DI opval = MAKEDI (127, 0xffffffff);
25848     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25849     written |= (1 << 17);
25850     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25851   }
25852 frvbf_media_overflow (current_cpu, 8);
25853 }
25854 } else {
25855 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25856 {
25857   {
25858     DI opval = MAKEDI (0xffffff80, 0);
25859     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25860     written |= (1 << 17);
25861     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25862   }
25863 frvbf_media_overflow (current_cpu, 8);
25864 }
25865 } else {
25866   {
25867     DI opval = tmp_tmp;
25868     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25869     written |= (1 << 17);
25870     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25871   }
25872 }
25873 }
25874 }
25875 {
25876   DI tmp_tmp;
25877   tmp_tmp = ADDDI (GET_H_ACC40S (ADDSI (FLD (f_ACC40Sk), 1)), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi)));
25878 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25879 {
25880   {
25881     DI opval = MAKEDI (127, 0xffffffff);
25882     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
25883     written |= (1 << 18);
25884     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25885   }
25886 frvbf_media_overflow (current_cpu, 4);
25887 }
25888 } else {
25889 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25890 {
25891   {
25892     DI opval = MAKEDI (0xffffff80, 0);
25893     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
25894     written |= (1 << 18);
25895     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25896   }
25897 frvbf_media_overflow (current_cpu, 4);
25898 }
25899 } else {
25900   {
25901     DI opval = tmp_tmp;
25902     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
25903     written |= (1 << 18);
25904     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25905   }
25906 }
25907 }
25908 }
25909 }
25910 }
25911 }
25912 }
25913
25914   abuf->written = written;
25915   return vpc;
25916 #undef FLD
25917 }
25918
25919 /* mqmacxhs: mqmacxhs$pack $FRintieven,$FRintjeven,$ACC40Sk */
25920
25921 static SEM_PC
25922 SEM_FN_NAME (frvbf,mqmacxhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
25923 {
25924 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
25925   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
25926   int UNUSED written = 0;
25927   IADDR UNUSED pc = abuf->addr;
25928   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
25929
25930 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
25931 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
25932 frvbf_media_acc_not_aligned (current_cpu);
25933 } else {
25934 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
25935 frvbf_media_register_not_aligned (current_cpu);
25936 } else {
25937 {
25938   HI tmp_argihi;
25939   HI tmp_argilo;
25940   HI tmp_argjhi;
25941   HI tmp_argjlo;
25942 {
25943   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25944   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25945   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25946   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25947 }
25948 {
25949   DI tmp_tmp;
25950   tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Sk)), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo)));
25951 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25952 {
25953   {
25954     DI opval = MAKEDI (127, 0xffffffff);
25955     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25956     written |= (1 << 17);
25957     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25958   }
25959 frvbf_media_overflow (current_cpu, 8);
25960 }
25961 } else {
25962 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25963 {
25964   {
25965     DI opval = MAKEDI (0xffffff80, 0);
25966     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25967     written |= (1 << 17);
25968     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25969   }
25970 frvbf_media_overflow (current_cpu, 8);
25971 }
25972 } else {
25973   {
25974     DI opval = tmp_tmp;
25975     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25976     written |= (1 << 17);
25977     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25978   }
25979 }
25980 }
25981 }
25982 {
25983   DI tmp_tmp;
25984   tmp_tmp = ADDDI (GET_H_ACC40S (ADDSI (FLD (f_ACC40Sk), 1)), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi)));
25985 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25986 {
25987   {
25988     DI opval = MAKEDI (127, 0xffffffff);
25989     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
25990     written |= (1 << 18);
25991     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25992   }
25993 frvbf_media_overflow (current_cpu, 4);
25994 }
25995 } else {
25996 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25997 {
25998   {
25999     DI opval = MAKEDI (0xffffff80, 0);
26000     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
26001     written |= (1 << 18);
26002     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26003   }
26004 frvbf_media_overflow (current_cpu, 4);
26005 }
26006 } else {
26007   {
26008     DI opval = tmp_tmp;
26009     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
26010     written |= (1 << 18);
26011     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26012   }
26013 }
26014 }
26015 }
26016 {
26017   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26018   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26019   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26020   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26021 }
26022 {
26023   DI tmp_tmp;
26024   tmp_tmp = ADDDI (GET_H_ACC40S (ADDSI (FLD (f_ACC40Sk), 2)), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo)));
26025 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
26026 {
26027   {
26028     DI opval = MAKEDI (127, 0xffffffff);
26029     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 2), opval);
26030     written |= (1 << 19);
26031     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26032   }
26033 frvbf_media_overflow (current_cpu, 2);
26034 }
26035 } else {
26036 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
26037 {
26038   {
26039     DI opval = MAKEDI (0xffffff80, 0);
26040     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 2), opval);
26041     written |= (1 << 19);
26042     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26043   }
26044 frvbf_media_overflow (current_cpu, 2);
26045 }
26046 } else {
26047   {
26048     DI opval = tmp_tmp;
26049     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 2), opval);
26050     written |= (1 << 19);
26051     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26052   }
26053 }
26054 }
26055 }
26056 {
26057   DI tmp_tmp;
26058   tmp_tmp = ADDDI (GET_H_ACC40S (ADDSI (FLD (f_ACC40Sk), 3)), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi)));
26059 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
26060 {
26061   {
26062     DI opval = MAKEDI (127, 0xffffffff);
26063     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 3), opval);
26064     written |= (1 << 20);
26065     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26066   }
26067 frvbf_media_overflow (current_cpu, 1);
26068 }
26069 } else {
26070 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
26071 {
26072   {
26073     DI opval = MAKEDI (0xffffff80, 0);
26074     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 3), opval);
26075     written |= (1 << 20);
26076     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26077   }
26078 frvbf_media_overflow (current_cpu, 1);
26079 }
26080 } else {
26081   {
26082     DI opval = tmp_tmp;
26083     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 3), opval);
26084     written |= (1 << 20);
26085     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26086   }
26087 }
26088 }
26089 }
26090 }
26091 }
26092 }
26093 }
26094
26095   abuf->written = written;
26096   return vpc;
26097 #undef FLD
26098 }
26099
26100 /* mcpxrs: mcpxrs$pack $FRinti,$FRintj,$ACC40Sk */
26101
26102 static SEM_PC
26103 SEM_FN_NAME (frvbf,mcpxrs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26104 {
26105 #define FLD(f) abuf->fields.sfmt_cmmachs.f
26106   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26107   int UNUSED written = 0;
26108   IADDR UNUSED pc = abuf->addr;
26109   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26110
26111 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
26112 {
26113   HI tmp_argihi;
26114   HI tmp_argilo;
26115   HI tmp_argjhi;
26116   HI tmp_argjlo;
26117 {
26118   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26119   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26120   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26121   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26122 }
26123 {
26124   DI tmp_tmp1;
26125   DI tmp_tmp2;
26126   tmp_tmp1 = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
26127   tmp_tmp2 = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
26128   tmp_tmp1 = SUBDI (tmp_tmp1, tmp_tmp2);
26129 if (GTDI (tmp_tmp1, MAKEDI (127, 0xffffffff))) {
26130 {
26131   {
26132     DI opval = MAKEDI (127, 0xffffffff);
26133     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26134     written |= (1 << 9);
26135     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26136   }
26137 frvbf_media_overflow (current_cpu, 8);
26138 }
26139 } else {
26140 if (LTDI (tmp_tmp1, MAKEDI (0xffffff80, 0))) {
26141 {
26142   {
26143     DI opval = MAKEDI (0xffffff80, 0);
26144     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26145     written |= (1 << 9);
26146     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26147   }
26148 frvbf_media_overflow (current_cpu, 8);
26149 }
26150 } else {
26151   {
26152     DI opval = tmp_tmp1;
26153     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26154     written |= (1 << 9);
26155     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26156   }
26157 }
26158 }
26159 }
26160 }
26161 }
26162
26163   abuf->written = written;
26164   return vpc;
26165 #undef FLD
26166 }
26167
26168 /* mcpxru: mcpxru$pack $FRinti,$FRintj,$ACC40Sk */
26169
26170 static SEM_PC
26171 SEM_FN_NAME (frvbf,mcpxru) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26172 {
26173 #define FLD(f) abuf->fields.sfmt_cmmachs.f
26174   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26175   int UNUSED written = 0;
26176   IADDR UNUSED pc = abuf->addr;
26177   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26178
26179 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
26180 {
26181   UHI tmp_argihi;
26182   UHI tmp_argilo;
26183   UHI tmp_argjhi;
26184   UHI tmp_argjlo;
26185 {
26186   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26187   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26188   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26189   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26190 }
26191 {
26192   DI tmp_tmp1;
26193   DI tmp_tmp2;
26194   tmp_tmp1 = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
26195   tmp_tmp2 = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
26196   tmp_tmp1 = SUBDI (tmp_tmp1, tmp_tmp2);
26197 if (GTDI (tmp_tmp1, MAKEDI (255, 0xffffffff))) {
26198 {
26199   {
26200     DI opval = MAKEDI (255, 0xffffffff);
26201     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26202     written |= (1 << 9);
26203     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26204   }
26205 frvbf_media_overflow (current_cpu, 8);
26206 }
26207 } else {
26208 if (LTDI (tmp_tmp1, MAKEDI (0, 0))) {
26209 {
26210   {
26211     DI opval = MAKEDI (0, 0);
26212     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26213     written |= (1 << 9);
26214     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26215   }
26216 frvbf_media_overflow (current_cpu, 8);
26217 }
26218 } else {
26219   {
26220     DI opval = tmp_tmp1;
26221     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26222     written |= (1 << 9);
26223     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26224   }
26225 }
26226 }
26227 }
26228 }
26229 }
26230
26231   abuf->written = written;
26232   return vpc;
26233 #undef FLD
26234 }
26235
26236 /* mcpxis: mcpxis$pack $FRinti,$FRintj,$ACC40Sk */
26237
26238 static SEM_PC
26239 SEM_FN_NAME (frvbf,mcpxis) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26240 {
26241 #define FLD(f) abuf->fields.sfmt_cmmachs.f
26242   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26243   int UNUSED written = 0;
26244   IADDR UNUSED pc = abuf->addr;
26245   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26246
26247 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
26248 {
26249   HI tmp_argihi;
26250   HI tmp_argilo;
26251   HI tmp_argjhi;
26252   HI tmp_argjlo;
26253 {
26254   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26255   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26256   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26257   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26258 }
26259 {
26260   DI tmp_tmp1;
26261   DI tmp_tmp2;
26262   tmp_tmp1 = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo));
26263   tmp_tmp2 = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi));
26264   tmp_tmp1 = ADDDI (tmp_tmp1, tmp_tmp2);
26265 if (GTDI (tmp_tmp1, MAKEDI (127, 0xffffffff))) {
26266 {
26267   {
26268     DI opval = MAKEDI (127, 0xffffffff);
26269     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26270     written |= (1 << 9);
26271     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26272   }
26273 frvbf_media_overflow (current_cpu, 8);
26274 }
26275 } else {
26276 if (LTDI (tmp_tmp1, MAKEDI (0xffffff80, 0))) {
26277 {
26278   {
26279     DI opval = MAKEDI (0xffffff80, 0);
26280     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26281     written |= (1 << 9);
26282     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26283   }
26284 frvbf_media_overflow (current_cpu, 8);
26285 }
26286 } else {
26287   {
26288     DI opval = tmp_tmp1;
26289     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26290     written |= (1 << 9);
26291     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26292   }
26293 }
26294 }
26295 }
26296 }
26297 }
26298
26299   abuf->written = written;
26300   return vpc;
26301 #undef FLD
26302 }
26303
26304 /* mcpxiu: mcpxiu$pack $FRinti,$FRintj,$ACC40Sk */
26305
26306 static SEM_PC
26307 SEM_FN_NAME (frvbf,mcpxiu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26308 {
26309 #define FLD(f) abuf->fields.sfmt_cmmachs.f
26310   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26311   int UNUSED written = 0;
26312   IADDR UNUSED pc = abuf->addr;
26313   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26314
26315 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
26316 {
26317   UHI tmp_argihi;
26318   UHI tmp_argilo;
26319   UHI tmp_argjhi;
26320   UHI tmp_argjlo;
26321 {
26322   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26323   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26324   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26325   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26326 }
26327 {
26328   DI tmp_tmp1;
26329   DI tmp_tmp2;
26330   tmp_tmp1 = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjlo));
26331   tmp_tmp2 = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjhi));
26332   tmp_tmp1 = ADDDI (tmp_tmp1, tmp_tmp2);
26333 if (GTDI (tmp_tmp1, MAKEDI (255, 0xffffffff))) {
26334 {
26335   {
26336     DI opval = MAKEDI (255, 0xffffffff);
26337     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26338     written |= (1 << 9);
26339     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26340   }
26341 frvbf_media_overflow (current_cpu, 8);
26342 }
26343 } else {
26344 if (LTDI (tmp_tmp1, MAKEDI (0, 0))) {
26345 {
26346   {
26347     DI opval = MAKEDI (0, 0);
26348     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26349     written |= (1 << 9);
26350     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26351   }
26352 frvbf_media_overflow (current_cpu, 8);
26353 }
26354 } else {
26355   {
26356     DI opval = tmp_tmp1;
26357     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26358     written |= (1 << 9);
26359     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26360   }
26361 }
26362 }
26363 }
26364 }
26365 }
26366
26367   abuf->written = written;
26368   return vpc;
26369 #undef FLD
26370 }
26371
26372 /* cmcpxrs: cmcpxrs$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
26373
26374 static SEM_PC
26375 SEM_FN_NAME (frvbf,cmcpxrs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26376 {
26377 #define FLD(f) abuf->fields.sfmt_cmmachs.f
26378   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26379   int UNUSED written = 0;
26380   IADDR UNUSED pc = abuf->addr;
26381   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26382
26383 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
26384 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
26385 {
26386   HI tmp_argihi;
26387   HI tmp_argilo;
26388   HI tmp_argjhi;
26389   HI tmp_argjlo;
26390 {
26391   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26392   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26393   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26394   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26395 }
26396 {
26397   DI tmp_tmp1;
26398   DI tmp_tmp2;
26399   tmp_tmp1 = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
26400   tmp_tmp2 = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
26401   tmp_tmp1 = SUBDI (tmp_tmp1, tmp_tmp2);
26402 if (GTDI (tmp_tmp1, MAKEDI (127, 0xffffffff))) {
26403 {
26404   {
26405     DI opval = MAKEDI (127, 0xffffffff);
26406     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26407     written |= (1 << 11);
26408     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26409   }
26410 frvbf_media_overflow (current_cpu, 8);
26411 }
26412 } else {
26413 if (LTDI (tmp_tmp1, MAKEDI (0xffffff80, 0))) {
26414 {
26415   {
26416     DI opval = MAKEDI (0xffffff80, 0);
26417     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26418     written |= (1 << 11);
26419     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26420   }
26421 frvbf_media_overflow (current_cpu, 8);
26422 }
26423 } else {
26424   {
26425     DI opval = tmp_tmp1;
26426     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26427     written |= (1 << 11);
26428     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26429   }
26430 }
26431 }
26432 }
26433 }
26434 }
26435 }
26436
26437   abuf->written = written;
26438   return vpc;
26439 #undef FLD
26440 }
26441
26442 /* cmcpxru: cmcpxru$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
26443
26444 static SEM_PC
26445 SEM_FN_NAME (frvbf,cmcpxru) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26446 {
26447 #define FLD(f) abuf->fields.sfmt_cmmachs.f
26448   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26449   int UNUSED written = 0;
26450   IADDR UNUSED pc = abuf->addr;
26451   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26452
26453 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
26454 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
26455 {
26456   UHI tmp_argihi;
26457   UHI tmp_argilo;
26458   UHI tmp_argjhi;
26459   UHI tmp_argjlo;
26460 {
26461   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26462   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26463   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26464   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26465 }
26466 {
26467   DI tmp_tmp1;
26468   DI tmp_tmp2;
26469   tmp_tmp1 = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
26470   tmp_tmp2 = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
26471   tmp_tmp1 = SUBDI (tmp_tmp1, tmp_tmp2);
26472 if (GTDI (tmp_tmp1, MAKEDI (255, 0xffffffff))) {
26473 {
26474   {
26475     DI opval = MAKEDI (255, 0xffffffff);
26476     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26477     written |= (1 << 11);
26478     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26479   }
26480 frvbf_media_overflow (current_cpu, 8);
26481 }
26482 } else {
26483 if (LTDI (tmp_tmp1, MAKEDI (0, 0))) {
26484 {
26485   {
26486     DI opval = MAKEDI (0, 0);
26487     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26488     written |= (1 << 11);
26489     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26490   }
26491 frvbf_media_overflow (current_cpu, 8);
26492 }
26493 } else {
26494   {
26495     DI opval = tmp_tmp1;
26496     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26497     written |= (1 << 11);
26498     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26499   }
26500 }
26501 }
26502 }
26503 }
26504 }
26505 }
26506
26507   abuf->written = written;
26508   return vpc;
26509 #undef FLD
26510 }
26511
26512 /* cmcpxis: cmcpxis$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
26513
26514 static SEM_PC
26515 SEM_FN_NAME (frvbf,cmcpxis) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26516 {
26517 #define FLD(f) abuf->fields.sfmt_cmmachs.f
26518   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26519   int UNUSED written = 0;
26520   IADDR UNUSED pc = abuf->addr;
26521   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26522
26523 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
26524 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
26525 {
26526   HI tmp_argihi;
26527   HI tmp_argilo;
26528   HI tmp_argjhi;
26529   HI tmp_argjlo;
26530 {
26531   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26532   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26533   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26534   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26535 }
26536 {
26537   DI tmp_tmp1;
26538   DI tmp_tmp2;
26539   tmp_tmp1 = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo));
26540   tmp_tmp2 = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi));
26541   tmp_tmp1 = ADDDI (tmp_tmp1, tmp_tmp2);
26542 if (GTDI (tmp_tmp1, MAKEDI (127, 0xffffffff))) {
26543 {
26544   {
26545     DI opval = MAKEDI (127, 0xffffffff);
26546     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26547     written |= (1 << 11);
26548     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26549   }
26550 frvbf_media_overflow (current_cpu, 8);
26551 }
26552 } else {
26553 if (LTDI (tmp_tmp1, MAKEDI (0xffffff80, 0))) {
26554 {
26555   {
26556     DI opval = MAKEDI (0xffffff80, 0);
26557     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26558     written |= (1 << 11);
26559     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26560   }
26561 frvbf_media_overflow (current_cpu, 8);
26562 }
26563 } else {
26564   {
26565     DI opval = tmp_tmp1;
26566     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26567     written |= (1 << 11);
26568     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26569   }
26570 }
26571 }
26572 }
26573 }
26574 }
26575 }
26576
26577   abuf->written = written;
26578   return vpc;
26579 #undef FLD
26580 }
26581
26582 /* cmcpxiu: cmcpxiu$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
26583
26584 static SEM_PC
26585 SEM_FN_NAME (frvbf,cmcpxiu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26586 {
26587 #define FLD(f) abuf->fields.sfmt_cmmachs.f
26588   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26589   int UNUSED written = 0;
26590   IADDR UNUSED pc = abuf->addr;
26591   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26592
26593 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
26594 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
26595 {
26596   UHI tmp_argihi;
26597   UHI tmp_argilo;
26598   UHI tmp_argjhi;
26599   UHI tmp_argjlo;
26600 {
26601   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26602   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26603   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26604   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26605 }
26606 {
26607   DI tmp_tmp1;
26608   DI tmp_tmp2;
26609   tmp_tmp1 = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjlo));
26610   tmp_tmp2 = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjhi));
26611   tmp_tmp1 = ADDDI (tmp_tmp1, tmp_tmp2);
26612 if (GTDI (tmp_tmp1, MAKEDI (255, 0xffffffff))) {
26613 {
26614   {
26615     DI opval = MAKEDI (255, 0xffffffff);
26616     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26617     written |= (1 << 11);
26618     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26619   }
26620 frvbf_media_overflow (current_cpu, 8);
26621 }
26622 } else {
26623 if (LTDI (tmp_tmp1, MAKEDI (0, 0))) {
26624 {
26625   {
26626     DI opval = MAKEDI (0, 0);
26627     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26628     written |= (1 << 11);
26629     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26630   }
26631 frvbf_media_overflow (current_cpu, 8);
26632 }
26633 } else {
26634   {
26635     DI opval = tmp_tmp1;
26636     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26637     written |= (1 << 11);
26638     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26639   }
26640 }
26641 }
26642 }
26643 }
26644 }
26645 }
26646
26647   abuf->written = written;
26648   return vpc;
26649 #undef FLD
26650 }
26651
26652 /* mqcpxrs: mqcpxrs$pack $FRintieven,$FRintjeven,$ACC40Sk */
26653
26654 static SEM_PC
26655 SEM_FN_NAME (frvbf,mqcpxrs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26656 {
26657 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
26658   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26659   int UNUSED written = 0;
26660   IADDR UNUSED pc = abuf->addr;
26661   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26662
26663 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
26664 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
26665 frvbf_media_acc_not_aligned (current_cpu);
26666 } else {
26667 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
26668 frvbf_media_register_not_aligned (current_cpu);
26669 } else {
26670 {
26671   HI tmp_argihi;
26672   HI tmp_argilo;
26673   HI tmp_argjhi;
26674   HI tmp_argjlo;
26675 {
26676   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26677   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26678   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26679   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26680 }
26681 {
26682   DI tmp_tmp1;
26683   DI tmp_tmp2;
26684   tmp_tmp1 = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
26685   tmp_tmp2 = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
26686   tmp_tmp1 = SUBDI (tmp_tmp1, tmp_tmp2);
26687 if (GTDI (tmp_tmp1, MAKEDI (127, 0xffffffff))) {
26688 {
26689   {
26690     DI opval = MAKEDI (127, 0xffffffff);
26691     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26692     written |= (1 << 13);
26693     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26694   }
26695 frvbf_media_overflow (current_cpu, 8);
26696 }
26697 } else {
26698 if (LTDI (tmp_tmp1, MAKEDI (0xffffff80, 0))) {
26699 {
26700   {
26701     DI opval = MAKEDI (0xffffff80, 0);
26702     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26703     written |= (1 << 13);
26704     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26705   }
26706 frvbf_media_overflow (current_cpu, 8);
26707 }
26708 } else {
26709   {
26710     DI opval = tmp_tmp1;
26711     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26712     written |= (1 << 13);
26713     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26714   }
26715 }
26716 }
26717 }
26718 {
26719   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26720   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26721   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26722   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26723 }
26724 {
26725   DI tmp_tmp1;
26726   DI tmp_tmp2;
26727   tmp_tmp1 = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
26728   tmp_tmp2 = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
26729   tmp_tmp1 = SUBDI (tmp_tmp1, tmp_tmp2);
26730 if (GTDI (tmp_tmp1, MAKEDI (127, 0xffffffff))) {
26731 {
26732   {
26733     DI opval = MAKEDI (127, 0xffffffff);
26734     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
26735     written |= (1 << 14);
26736     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26737   }
26738 frvbf_media_overflow (current_cpu, 4);
26739 }
26740 } else {
26741 if (LTDI (tmp_tmp1, MAKEDI (0xffffff80, 0))) {
26742 {
26743   {
26744     DI opval = MAKEDI (0xffffff80, 0);
26745     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
26746     written |= (1 << 14);
26747     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26748   }
26749 frvbf_media_overflow (current_cpu, 4);
26750 }
26751 } else {
26752   {
26753     DI opval = tmp_tmp1;
26754     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
26755     written |= (1 << 14);
26756     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26757   }
26758 }
26759 }
26760 }
26761 }
26762 }
26763 }
26764 }
26765
26766   abuf->written = written;
26767   return vpc;
26768 #undef FLD
26769 }
26770
26771 /* mqcpxru: mqcpxru$pack $FRintieven,$FRintjeven,$ACC40Sk */
26772
26773 static SEM_PC
26774 SEM_FN_NAME (frvbf,mqcpxru) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26775 {
26776 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
26777   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26778   int UNUSED written = 0;
26779   IADDR UNUSED pc = abuf->addr;
26780   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26781
26782 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
26783 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
26784 frvbf_media_acc_not_aligned (current_cpu);
26785 } else {
26786 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
26787 frvbf_media_register_not_aligned (current_cpu);
26788 } else {
26789 {
26790   UHI tmp_argihi;
26791   UHI tmp_argilo;
26792   UHI tmp_argjhi;
26793   UHI tmp_argjlo;
26794 {
26795   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26796   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26797   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26798   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26799 }
26800 {
26801   DI tmp_tmp1;
26802   DI tmp_tmp2;
26803   tmp_tmp1 = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
26804   tmp_tmp2 = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
26805   tmp_tmp1 = SUBDI (tmp_tmp1, tmp_tmp2);
26806 if (GTDI (tmp_tmp1, MAKEDI (255, 0xffffffff))) {
26807 {
26808   {
26809     DI opval = MAKEDI (255, 0xffffffff);
26810     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26811     written |= (1 << 13);
26812     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26813   }
26814 frvbf_media_overflow (current_cpu, 8);
26815 }
26816 } else {
26817 if (LTDI (tmp_tmp1, MAKEDI (0, 0))) {
26818 {
26819   {
26820     DI opval = MAKEDI (0, 0);
26821     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26822     written |= (1 << 13);
26823     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26824   }
26825 frvbf_media_overflow (current_cpu, 8);
26826 }
26827 } else {
26828   {
26829     DI opval = tmp_tmp1;
26830     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26831     written |= (1 << 13);
26832     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26833   }
26834 }
26835 }
26836 }
26837 {
26838   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26839   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26840   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26841   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26842 }
26843 {
26844   DI tmp_tmp1;
26845   DI tmp_tmp2;
26846   tmp_tmp1 = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
26847   tmp_tmp2 = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
26848   tmp_tmp1 = SUBDI (tmp_tmp1, tmp_tmp2);
26849 if (GTDI (tmp_tmp1, MAKEDI (255, 0xffffffff))) {
26850 {
26851   {
26852     DI opval = MAKEDI (255, 0xffffffff);
26853     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
26854     written |= (1 << 14);
26855     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26856   }
26857 frvbf_media_overflow (current_cpu, 4);
26858 }
26859 } else {
26860 if (LTDI (tmp_tmp1, MAKEDI (0, 0))) {
26861 {
26862   {
26863     DI opval = MAKEDI (0, 0);
26864     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
26865     written |= (1 << 14);
26866     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26867   }
26868 frvbf_media_overflow (current_cpu, 4);
26869 }
26870 } else {
26871   {
26872     DI opval = tmp_tmp1;
26873     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
26874     written |= (1 << 14);
26875     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26876   }
26877 }
26878 }
26879 }
26880 }
26881 }
26882 }
26883 }
26884
26885   abuf->written = written;
26886   return vpc;
26887 #undef FLD
26888 }
26889
26890 /* mqcpxis: mqcpxis$pack $FRintieven,$FRintjeven,$ACC40Sk */
26891
26892 static SEM_PC
26893 SEM_FN_NAME (frvbf,mqcpxis) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26894 {
26895 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
26896   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26897   int UNUSED written = 0;
26898   IADDR UNUSED pc = abuf->addr;
26899   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26900
26901 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
26902 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
26903 frvbf_media_acc_not_aligned (current_cpu);
26904 } else {
26905 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
26906 frvbf_media_register_not_aligned (current_cpu);
26907 } else {
26908 {
26909   HI tmp_argihi;
26910   HI tmp_argilo;
26911   HI tmp_argjhi;
26912   HI tmp_argjlo;
26913 {
26914   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26915   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26916   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26917   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26918 }
26919 {
26920   DI tmp_tmp1;
26921   DI tmp_tmp2;
26922   tmp_tmp1 = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo));
26923   tmp_tmp2 = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi));
26924   tmp_tmp1 = ADDDI (tmp_tmp1, tmp_tmp2);
26925 if (GTDI (tmp_tmp1, MAKEDI (127, 0xffffffff))) {
26926 {
26927   {
26928     DI opval = MAKEDI (127, 0xffffffff);
26929     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26930     written |= (1 << 13);
26931     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26932   }
26933 frvbf_media_overflow (current_cpu, 8);
26934 }
26935 } else {
26936 if (LTDI (tmp_tmp1, MAKEDI (0xffffff80, 0))) {
26937 {
26938   {
26939     DI opval = MAKEDI (0xffffff80, 0);
26940     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26941     written |= (1 << 13);
26942     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26943   }
26944 frvbf_media_overflow (current_cpu, 8);
26945 }
26946 } else {
26947   {
26948     DI opval = tmp_tmp1;
26949     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26950     written |= (1 << 13);
26951     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26952   }
26953 }
26954 }
26955 }
26956 {
26957   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26958   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26959   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26960   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26961 }
26962 {
26963   DI tmp_tmp1;
26964   DI tmp_tmp2;
26965   tmp_tmp1 = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo));
26966   tmp_tmp2 = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi));
26967   tmp_tmp1 = ADDDI (tmp_tmp1, tmp_tmp2);
26968 if (GTDI (tmp_tmp1, MAKEDI (127, 0xffffffff))) {
26969 {
26970   {
26971     DI opval = MAKEDI (127, 0xffffffff);
26972     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
26973     written |= (1 << 14);
26974     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26975   }
26976 frvbf_media_overflow (current_cpu, 4);
26977 }
26978 } else {
26979 if (LTDI (tmp_tmp1, MAKEDI (0xffffff80, 0))) {
26980 {
26981   {
26982     DI opval = MAKEDI (0xffffff80, 0);
26983     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
26984     written |= (1 << 14);
26985     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26986   }
26987 frvbf_media_overflow (current_cpu, 4);
26988 }
26989 } else {
26990   {
26991     DI opval = tmp_tmp1;
26992     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
26993     written |= (1 << 14);
26994     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26995   }
26996 }
26997 }
26998 }
26999 }
27000 }
27001 }
27002 }
27003
27004   abuf->written = written;
27005   return vpc;
27006 #undef FLD
27007 }
27008
27009 /* mqcpxiu: mqcpxiu$pack $FRintieven,$FRintjeven,$ACC40Sk */
27010
27011 static SEM_PC
27012 SEM_FN_NAME (frvbf,mqcpxiu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27013 {
27014 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
27015   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27016   int UNUSED written = 0;
27017   IADDR UNUSED pc = abuf->addr;
27018   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27019
27020 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
27021 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
27022 frvbf_media_acc_not_aligned (current_cpu);
27023 } else {
27024 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
27025 frvbf_media_register_not_aligned (current_cpu);
27026 } else {
27027 {
27028   UHI tmp_argihi;
27029   UHI tmp_argilo;
27030   UHI tmp_argjhi;
27031   UHI tmp_argjlo;
27032 {
27033   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
27034   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
27035   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
27036   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
27037 }
27038 {
27039   DI tmp_tmp1;
27040   DI tmp_tmp2;
27041   tmp_tmp1 = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjlo));
27042   tmp_tmp2 = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjhi));
27043   tmp_tmp1 = ADDDI (tmp_tmp1, tmp_tmp2);
27044 if (GTDI (tmp_tmp1, MAKEDI (255, 0xffffffff))) {
27045 {
27046   {
27047     DI opval = MAKEDI (255, 0xffffffff);
27048     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
27049     written |= (1 << 13);
27050     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
27051   }
27052 frvbf_media_overflow (current_cpu, 8);
27053 }
27054 } else {
27055 if (LTDI (tmp_tmp1, MAKEDI (0, 0))) {
27056 {
27057   {
27058     DI opval = MAKEDI (0, 0);
27059     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
27060     written |= (1 << 13);
27061     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
27062   }
27063 frvbf_media_overflow (current_cpu, 8);
27064 }
27065 } else {
27066   {
27067     DI opval = tmp_tmp1;
27068     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
27069     written |= (1 << 13);
27070     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
27071   }
27072 }
27073 }
27074 }
27075 {
27076   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
27077   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
27078   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
27079   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
27080 }
27081 {
27082   DI tmp_tmp1;
27083   DI tmp_tmp2;
27084   tmp_tmp1 = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjlo));
27085   tmp_tmp2 = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjhi));
27086   tmp_tmp1 = ADDDI (tmp_tmp1, tmp_tmp2);
27087 if (GTDI (tmp_tmp1, MAKEDI (255, 0xffffffff))) {
27088 {
27089   {
27090     DI opval = MAKEDI (255, 0xffffffff);
27091     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
27092     written |= (1 << 14);
27093     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
27094   }
27095 frvbf_media_overflow (current_cpu, 4);
27096 }
27097 } else {
27098 if (LTDI (tmp_tmp1, MAKEDI (0, 0))) {
27099 {
27100   {
27101     DI opval = MAKEDI (0, 0);
27102     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
27103     written |= (1 << 14);
27104     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
27105   }
27106 frvbf_media_overflow (current_cpu, 4);
27107 }
27108 } else {
27109   {
27110     DI opval = tmp_tmp1;
27111     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
27112     written |= (1 << 14);
27113     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
27114   }
27115 }
27116 }
27117 }
27118 }
27119 }
27120 }
27121 }
27122
27123   abuf->written = written;
27124   return vpc;
27125 #undef FLD
27126 }
27127
27128 /* mexpdhw: mexpdhw$pack $FRinti,$u6,$FRintk */
27129
27130 static SEM_PC
27131 SEM_FN_NAME (frvbf,mexpdhw) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27132 {
27133 #define FLD(f) abuf->fields.sfmt_cmexpdhw.f
27134   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27135   int UNUSED written = 0;
27136   IADDR UNUSED pc = abuf->addr;
27137   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27138
27139 {
27140   UHI tmp_tmp;
27141 if (ANDSI (FLD (f_u6), 1)) {
27142   tmp_tmp = GET_H_FR_LO (ADDSI (FLD (f_FRi), 0));
27143 } else {
27144   tmp_tmp = GET_H_FR_HI (ADDSI (FLD (f_FRi), 0));
27145 }
27146   {
27147     UHI opval = tmp_tmp;
27148     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
27149     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27150   }
27151   {
27152     UHI opval = tmp_tmp;
27153     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
27154     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27155   }
27156 }
27157
27158   return vpc;
27159 #undef FLD
27160 }
27161
27162 /* cmexpdhw: cmexpdhw$pack $FRinti,$u6,$FRintk,$CCi,$cond */
27163
27164 static SEM_PC
27165 SEM_FN_NAME (frvbf,cmexpdhw) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27166 {
27167 #define FLD(f) abuf->fields.sfmt_cmexpdhw.f
27168   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27169   int UNUSED written = 0;
27170   IADDR UNUSED pc = abuf->addr;
27171   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27172
27173 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
27174 {
27175   UHI tmp_tmp;
27176 if (ANDSI (FLD (f_u6), 1)) {
27177   tmp_tmp = GET_H_FR_LO (ADDSI (FLD (f_FRi), 0));
27178 } else {
27179   tmp_tmp = GET_H_FR_HI (ADDSI (FLD (f_FRi), 0));
27180 }
27181   {
27182     UHI opval = tmp_tmp;
27183     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
27184     written |= (1 << 7);
27185     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27186   }
27187   {
27188     UHI opval = tmp_tmp;
27189     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
27190     written |= (1 << 8);
27191     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27192   }
27193 }
27194 }
27195
27196   abuf->written = written;
27197   return vpc;
27198 #undef FLD
27199 }
27200
27201 /* mexpdhd: mexpdhd$pack $FRinti,$u6,$FRintkeven */
27202
27203 static SEM_PC
27204 SEM_FN_NAME (frvbf,mexpdhd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27205 {
27206 #define FLD(f) abuf->fields.sfmt_cmexpdhd.f
27207   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27208   int UNUSED written = 0;
27209   IADDR UNUSED pc = abuf->addr;
27210   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27211
27212 if (ANDSI (FLD (f_FRk), SUBSI (2, 1))) {
27213 frvbf_media_register_not_aligned (current_cpu);
27214 } else {
27215 {
27216   UHI tmp_tmp;
27217   {
27218     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27219     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27220     written |= (1 << 6);
27221     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27222   }
27223 if (ANDSI (FLD (f_u6), 1)) {
27224   tmp_tmp = GET_H_FR_LO (ADDSI (FLD (f_FRi), 0));
27225 } else {
27226   tmp_tmp = GET_H_FR_HI (ADDSI (FLD (f_FRi), 0));
27227 }
27228   {
27229     UHI opval = tmp_tmp;
27230     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
27231     written |= (1 << 7);
27232     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27233   }
27234   {
27235     UHI opval = tmp_tmp;
27236     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
27237     written |= (1 << 9);
27238     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27239   }
27240   {
27241     UHI opval = tmp_tmp;
27242     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 1), opval);
27243     written |= (1 << 8);
27244     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27245   }
27246   {
27247     UHI opval = tmp_tmp;
27248     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 1), opval);
27249     written |= (1 << 10);
27250     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27251   }
27252 }
27253 }
27254
27255   abuf->written = written;
27256   return vpc;
27257 #undef FLD
27258 }
27259
27260 /* cmexpdhd: cmexpdhd$pack $FRinti,$u6,$FRintkeven,$CCi,$cond */
27261
27262 static SEM_PC
27263 SEM_FN_NAME (frvbf,cmexpdhd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27264 {
27265 #define FLD(f) abuf->fields.sfmt_cmexpdhd.f
27266   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27267   int UNUSED written = 0;
27268   IADDR UNUSED pc = abuf->addr;
27269   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27270
27271 if (ANDSI (FLD (f_FRk), SUBSI (2, 1))) {
27272 frvbf_media_register_not_aligned (current_cpu);
27273 } else {
27274 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
27275 {
27276   UHI tmp_tmp;
27277   {
27278     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27279     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27280     written |= (1 << 8);
27281     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27282   }
27283 if (ANDSI (FLD (f_u6), 1)) {
27284   tmp_tmp = GET_H_FR_LO (ADDSI (FLD (f_FRi), 0));
27285 } else {
27286   tmp_tmp = GET_H_FR_HI (ADDSI (FLD (f_FRi), 0));
27287 }
27288   {
27289     UHI opval = tmp_tmp;
27290     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
27291     written |= (1 << 9);
27292     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27293   }
27294   {
27295     UHI opval = tmp_tmp;
27296     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
27297     written |= (1 << 11);
27298     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27299   }
27300   {
27301     UHI opval = tmp_tmp;
27302     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 1), opval);
27303     written |= (1 << 10);
27304     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27305   }
27306   {
27307     UHI opval = tmp_tmp;
27308     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 1), opval);
27309     written |= (1 << 12);
27310     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27311   }
27312 }
27313 }
27314 }
27315
27316   abuf->written = written;
27317   return vpc;
27318 #undef FLD
27319 }
27320
27321 /* mpackh: mpackh$pack $FRinti,$FRintj,$FRintk */
27322
27323 static SEM_PC
27324 SEM_FN_NAME (frvbf,mpackh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27325 {
27326 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
27327   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27328   int UNUSED written = 0;
27329   IADDR UNUSED pc = abuf->addr;
27330   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27331
27332 {
27333   {
27334     UHI opval = GET_H_FR_LO (ADDSI (FLD (f_FRi), 0));
27335     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
27336     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27337   }
27338   {
27339     UHI opval = GET_H_FR_LO (ADDSI (FLD (f_FRj), 0));
27340     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
27341     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27342   }
27343 }
27344
27345   return vpc;
27346 #undef FLD
27347 }
27348
27349 /* mdpackh: mdpackh$pack $FRintieven,$FRintjeven,$FRintkeven */
27350
27351 static SEM_PC
27352 SEM_FN_NAME (frvbf,mdpackh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27353 {
27354 #define FLD(f) abuf->fields.sfmt_mdpackh.f
27355   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27356   int UNUSED written = 0;
27357   IADDR UNUSED pc = abuf->addr;
27358   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27359
27360 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
27361 frvbf_media_register_not_aligned (current_cpu);
27362 } else {
27363 {
27364   {
27365     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRi)));
27366     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRi), opval);
27367     written |= (1 << 10);
27368     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27369   }
27370   {
27371     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRj)));
27372     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRj), opval);
27373     written |= (1 << 11);
27374     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27375   }
27376   {
27377     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27378     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27379     written |= (1 << 12);
27380     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27381   }
27382 {
27383   {
27384     UHI opval = GET_H_FR_LO (ADDSI (FLD (f_FRi), 0));
27385     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
27386     written |= (1 << 13);
27387     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27388   }
27389   {
27390     UHI opval = GET_H_FR_LO (ADDSI (FLD (f_FRj), 0));
27391     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
27392     written |= (1 << 15);
27393     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27394   }
27395 }
27396 {
27397   {
27398     UHI opval = GET_H_FR_LO (ADDSI (FLD (f_FRi), 1));
27399     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 1), opval);
27400     written |= (1 << 14);
27401     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27402   }
27403   {
27404     UHI opval = GET_H_FR_LO (ADDSI (FLD (f_FRj), 1));
27405     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 1), opval);
27406     written |= (1 << 16);
27407     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27408   }
27409 }
27410 }
27411 }
27412
27413   abuf->written = written;
27414   return vpc;
27415 #undef FLD
27416 }
27417
27418 /* munpackh: munpackh$pack $FRinti,$FRintkeven */
27419
27420 static SEM_PC
27421 SEM_FN_NAME (frvbf,munpackh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27422 {
27423 #define FLD(f) abuf->fields.sfmt_munpackh.f
27424   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27425   int UNUSED written = 0;
27426   IADDR UNUSED pc = abuf->addr;
27427   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27428
27429 if (ANDSI (FLD (f_FRk), SUBSI (2, 1))) {
27430 frvbf_media_register_not_aligned (current_cpu);
27431 } else {
27432 {
27433   {
27434     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRi)));
27435     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRi), opval);
27436     written |= (1 << 6);
27437     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27438   }
27439   {
27440     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27441     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27442     written |= (1 << 7);
27443     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27444   }
27445 {
27446   {
27447     UHI opval = GET_H_FR_HI (ADDSI (FLD (f_FRi), 0));
27448     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
27449     written |= (1 << 8);
27450     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27451   }
27452   {
27453     UHI opval = GET_H_FR_HI (ADDSI (FLD (f_FRi), 0));
27454     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
27455     written |= (1 << 10);
27456     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27457   }
27458   {
27459     UHI opval = GET_H_FR_LO (ADDSI (FLD (f_FRi), 0));
27460     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), ADDSI (0, 1)), opval);
27461     written |= (1 << 9);
27462     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27463   }
27464   {
27465     UHI opval = GET_H_FR_LO (ADDSI (FLD (f_FRi), 0));
27466     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), ADDSI (0, 1)), opval);
27467     written |= (1 << 11);
27468     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27469   }
27470 }
27471 }
27472 }
27473
27474   abuf->written = written;
27475   return vpc;
27476 #undef FLD
27477 }
27478
27479 /* mdunpackh: mdunpackh$pack $FRintieven,$FRintk */
27480
27481 static SEM_PC
27482 SEM_FN_NAME (frvbf,mdunpackh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27483 {
27484 #define FLD(f) abuf->fields.sfmt_mdunpackh.f
27485   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27486   int UNUSED written = 0;
27487   IADDR UNUSED pc = abuf->addr;
27488   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27489
27490 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (4, 1)))) {
27491 frvbf_media_register_not_aligned (current_cpu);
27492 } else {
27493 {
27494   {
27495     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRi)));
27496     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRi), opval);
27497     written |= (1 << 8);
27498     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27499   }
27500   {
27501     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27502     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27503     written |= (1 << 9);
27504     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27505   }
27506 {
27507   {
27508     UHI opval = GET_H_FR_HI (ADDSI (FLD (f_FRi), 0));
27509     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
27510     written |= (1 << 10);
27511     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27512   }
27513   {
27514     UHI opval = GET_H_FR_HI (ADDSI (FLD (f_FRi), 0));
27515     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
27516     written |= (1 << 14);
27517     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27518   }
27519   {
27520     UHI opval = GET_H_FR_LO (ADDSI (FLD (f_FRi), 0));
27521     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), ADDSI (0, 1)), opval);
27522     written |= (1 << 12);
27523     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27524   }
27525   {
27526     UHI opval = GET_H_FR_LO (ADDSI (FLD (f_FRi), 0));
27527     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), ADDSI (0, 1)), opval);
27528     written |= (1 << 16);
27529     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27530   }
27531 }
27532 {
27533   {
27534     UHI opval = GET_H_FR_HI (ADDSI (FLD (f_FRi), 1));
27535     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 2), opval);
27536     written |= (1 << 11);
27537     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27538   }
27539   {
27540     UHI opval = GET_H_FR_HI (ADDSI (FLD (f_FRi), 1));
27541     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 2), opval);
27542     written |= (1 << 15);
27543     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27544   }
27545   {
27546     UHI opval = GET_H_FR_LO (ADDSI (FLD (f_FRi), 1));
27547     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), ADDSI (2, 1)), opval);
27548     written |= (1 << 13);
27549     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27550   }
27551   {
27552     UHI opval = GET_H_FR_LO (ADDSI (FLD (f_FRi), 1));
27553     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), ADDSI (2, 1)), opval);
27554     written |= (1 << 17);
27555     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27556   }
27557 }
27558 }
27559 }
27560
27561   abuf->written = written;
27562   return vpc;
27563 #undef FLD
27564 }
27565
27566 /* mbtoh: mbtoh$pack $FRintj,$FRintkeven */
27567
27568 static SEM_PC
27569 SEM_FN_NAME (frvbf,mbtoh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27570 {
27571 #define FLD(f) abuf->fields.sfmt_cmbtoh.f
27572   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27573   int UNUSED written = 0;
27574   IADDR UNUSED pc = abuf->addr;
27575   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27576
27577 {
27578   {
27579     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRj)));
27580     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRj), opval);
27581     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27582   }
27583   {
27584     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27585     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27586     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27587   }
27588 if (ANDSI (FLD (f_FRk), SUBSI (2, 1))) {
27589 frvbf_media_register_not_aligned (current_cpu);
27590 } else {
27591 {
27592   {
27593     UHI opval = GET_H_FR_3 (ADDSI (FLD (f_FRj), 0));
27594     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
27595     written |= (1 << 10);
27596     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27597   }
27598   {
27599     UHI opval = GET_H_FR_2 (ADDSI (FLD (f_FRj), 0));
27600     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
27601     written |= (1 << 12);
27602     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27603   }
27604   {
27605     UHI opval = GET_H_FR_1 (ADDSI (FLD (f_FRj), 0));
27606     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 1), opval);
27607     written |= (1 << 11);
27608     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27609   }
27610   {
27611     UHI opval = GET_H_FR_0 (ADDSI (FLD (f_FRj), 0));
27612     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 1), opval);
27613     written |= (1 << 13);
27614     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27615   }
27616 }
27617 }
27618 }
27619
27620   abuf->written = written;
27621   return vpc;
27622 #undef FLD
27623 }
27624
27625 /* cmbtoh: cmbtoh$pack $FRintj,$FRintkeven,$CCi,$cond */
27626
27627 static SEM_PC
27628 SEM_FN_NAME (frvbf,cmbtoh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27629 {
27630 #define FLD(f) abuf->fields.sfmt_cmbtoh.f
27631   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27632   int UNUSED written = 0;
27633   IADDR UNUSED pc = abuf->addr;
27634   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27635
27636 {
27637   {
27638     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRj)));
27639     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRj), opval);
27640     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27641   }
27642   {
27643     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27644     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27645     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27646   }
27647 if (ANDSI (FLD (f_FRk), SUBSI (2, 1))) {
27648 frvbf_media_register_not_aligned (current_cpu);
27649 } else {
27650 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
27651 {
27652   {
27653     UHI opval = GET_H_FR_3 (ADDSI (FLD (f_FRj), 0));
27654     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
27655     written |= (1 << 12);
27656     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27657   }
27658   {
27659     UHI opval = GET_H_FR_2 (ADDSI (FLD (f_FRj), 0));
27660     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
27661     written |= (1 << 14);
27662     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27663   }
27664   {
27665     UHI opval = GET_H_FR_1 (ADDSI (FLD (f_FRj), 0));
27666     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 1), opval);
27667     written |= (1 << 13);
27668     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27669   }
27670   {
27671     UHI opval = GET_H_FR_0 (ADDSI (FLD (f_FRj), 0));
27672     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 1), opval);
27673     written |= (1 << 15);
27674     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27675   }
27676 }
27677 }
27678 }
27679 }
27680
27681   abuf->written = written;
27682   return vpc;
27683 #undef FLD
27684 }
27685
27686 /* mhtob: mhtob$pack $FRintjeven,$FRintk */
27687
27688 static SEM_PC
27689 SEM_FN_NAME (frvbf,mhtob) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27690 {
27691 #define FLD(f) abuf->fields.sfmt_cmhtob.f
27692   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27693   int UNUSED written = 0;
27694   IADDR UNUSED pc = abuf->addr;
27695   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27696
27697 {
27698   {
27699     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRj)));
27700     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRj), opval);
27701     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27702   }
27703   {
27704     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27705     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27706     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27707   }
27708 if (ANDSI (FLD (f_FRj), SUBSI (2, 1))) {
27709 frvbf_media_register_not_aligned (current_cpu);
27710 } else {
27711 {
27712   {
27713     UHI opval = GET_H_FR_HI (ADDSI (FLD (f_FRj), 0));
27714     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_3_set, ADDSI (FLD (f_FRk), 0), opval);
27715     written |= (1 << 13);
27716     TRACE_RESULT (current_cpu, abuf, "fr_3", 'x', opval);
27717   }
27718   {
27719     UHI opval = GET_H_FR_LO (ADDSI (FLD (f_FRj), 0));
27720     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_2_set, ADDSI (FLD (f_FRk), 0), opval);
27721     written |= (1 << 12);
27722     TRACE_RESULT (current_cpu, abuf, "fr_2", 'x', opval);
27723   }
27724   {
27725     UHI opval = GET_H_FR_HI (ADDSI (FLD (f_FRj), 1));
27726     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_1_set, ADDSI (FLD (f_FRk), 0), opval);
27727     written |= (1 << 11);
27728     TRACE_RESULT (current_cpu, abuf, "fr_1", 'x', opval);
27729   }
27730   {
27731     UHI opval = GET_H_FR_LO (ADDSI (FLD (f_FRj), 1));
27732     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_0_set, ADDSI (FLD (f_FRk), 0), opval);
27733     written |= (1 << 10);
27734     TRACE_RESULT (current_cpu, abuf, "fr_0", 'x', opval);
27735   }
27736 }
27737 }
27738 }
27739
27740   abuf->written = written;
27741   return vpc;
27742 #undef FLD
27743 }
27744
27745 /* cmhtob: cmhtob$pack $FRintjeven,$FRintk,$CCi,$cond */
27746
27747 static SEM_PC
27748 SEM_FN_NAME (frvbf,cmhtob) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27749 {
27750 #define FLD(f) abuf->fields.sfmt_cmhtob.f
27751   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27752   int UNUSED written = 0;
27753   IADDR UNUSED pc = abuf->addr;
27754   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27755
27756 {
27757   {
27758     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRj)));
27759     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRj), opval);
27760     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27761   }
27762   {
27763     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27764     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27765     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27766   }
27767 if (ANDSI (FLD (f_FRj), SUBSI (2, 1))) {
27768 frvbf_media_register_not_aligned (current_cpu);
27769 } else {
27770 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
27771 {
27772   {
27773     UHI opval = GET_H_FR_HI (ADDSI (FLD (f_FRj), 0));
27774     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_3_set, ADDSI (FLD (f_FRk), 0), opval);
27775     written |= (1 << 15);
27776     TRACE_RESULT (current_cpu, abuf, "fr_3", 'x', opval);
27777   }
27778   {
27779     UHI opval = GET_H_FR_LO (ADDSI (FLD (f_FRj), 0));
27780     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_2_set, ADDSI (FLD (f_FRk), 0), opval);
27781     written |= (1 << 14);
27782     TRACE_RESULT (current_cpu, abuf, "fr_2", 'x', opval);
27783   }
27784   {
27785     UHI opval = GET_H_FR_HI (ADDSI (FLD (f_FRj), 1));
27786     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_1_set, ADDSI (FLD (f_FRk), 0), opval);
27787     written |= (1 << 13);
27788     TRACE_RESULT (current_cpu, abuf, "fr_1", 'x', opval);
27789   }
27790   {
27791     UHI opval = GET_H_FR_LO (ADDSI (FLD (f_FRj), 1));
27792     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_0_set, ADDSI (FLD (f_FRk), 0), opval);
27793     written |= (1 << 12);
27794     TRACE_RESULT (current_cpu, abuf, "fr_0", 'x', opval);
27795   }
27796 }
27797 }
27798 }
27799 }
27800
27801   abuf->written = written;
27802   return vpc;
27803 #undef FLD
27804 }
27805
27806 /* mbtohe: mbtohe$pack $FRintj,$FRintk */
27807
27808 static SEM_PC
27809 SEM_FN_NAME (frvbf,mbtohe) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27810 {
27811 #define FLD(f) abuf->fields.sfmt_cmbtohe.f
27812   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27813   int UNUSED written = 0;
27814   IADDR UNUSED pc = abuf->addr;
27815   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27816
27817 {
27818   {
27819     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRj)));
27820     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRj), opval);
27821     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27822   }
27823   {
27824     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27825     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27826     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27827   }
27828 if (ANDSI (FLD (f_FRk), SUBSI (4, 1))) {
27829 frvbf_media_register_not_aligned (current_cpu);
27830 } else {
27831 {
27832   {
27833     UHI opval = GET_H_FR_3 (ADDSI (FLD (f_FRj), 0));
27834     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
27835     written |= (1 << 10);
27836     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27837   }
27838   {
27839     UHI opval = GET_H_FR_3 (ADDSI (FLD (f_FRj), 0));
27840     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
27841     written |= (1 << 14);
27842     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27843   }
27844   {
27845     UHI opval = GET_H_FR_2 (ADDSI (FLD (f_FRj), 0));
27846     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 1), opval);
27847     written |= (1 << 11);
27848     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27849   }
27850   {
27851     UHI opval = GET_H_FR_2 (ADDSI (FLD (f_FRj), 0));
27852     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 1), opval);
27853     written |= (1 << 15);
27854     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27855   }
27856   {
27857     UHI opval = GET_H_FR_1 (ADDSI (FLD (f_FRj), 0));
27858     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 2), opval);
27859     written |= (1 << 12);
27860     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27861   }
27862   {
27863     UHI opval = GET_H_FR_1 (ADDSI (FLD (f_FRj), 0));
27864     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 2), opval);
27865     written |= (1 << 16);
27866     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27867   }
27868   {
27869     UHI opval = GET_H_FR_0 (ADDSI (FLD (f_FRj), 0));
27870     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 3), opval);
27871     written |= (1 << 13);
27872     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27873   }
27874   {
27875     UHI opval = GET_H_FR_0 (ADDSI (FLD (f_FRj), 0));
27876     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 3), opval);
27877     written |= (1 << 17);
27878     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27879   }
27880 }
27881 }
27882 }
27883
27884   abuf->written = written;
27885   return vpc;
27886 #undef FLD
27887 }
27888
27889 /* cmbtohe: cmbtohe$pack $FRintj,$FRintk,$CCi,$cond */
27890
27891 static SEM_PC
27892 SEM_FN_NAME (frvbf,cmbtohe) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27893 {
27894 #define FLD(f) abuf->fields.sfmt_cmbtohe.f
27895   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27896   int UNUSED written = 0;
27897   IADDR UNUSED pc = abuf->addr;
27898   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27899
27900 {
27901   {
27902     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRj)));
27903     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRj), opval);
27904     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27905   }
27906   {
27907     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27908     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27909     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27910   }
27911 if (ANDSI (FLD (f_FRk), SUBSI (4, 1))) {
27912 frvbf_media_register_not_aligned (current_cpu);
27913 } else {
27914 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
27915 {
27916   {
27917     UHI opval = GET_H_FR_3 (ADDSI (FLD (f_FRj), 0));
27918     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
27919     written |= (1 << 12);
27920     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27921   }
27922   {
27923     UHI opval = GET_H_FR_3 (ADDSI (FLD (f_FRj), 0));
27924     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
27925     written |= (1 << 16);
27926     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27927   }
27928   {
27929     UHI opval = GET_H_FR_2 (ADDSI (FLD (f_FRj), 0));
27930     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 1), opval);
27931     written |= (1 << 13);
27932     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27933   }
27934   {
27935     UHI opval = GET_H_FR_2 (ADDSI (FLD (f_FRj), 0));
27936     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 1), opval);
27937     written |= (1 << 17);
27938     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27939   }
27940   {
27941     UHI opval = GET_H_FR_1 (ADDSI (FLD (f_FRj), 0));
27942     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 2), opval);
27943     written |= (1 << 14);
27944     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27945   }
27946   {
27947     UHI opval = GET_H_FR_1 (ADDSI (FLD (f_FRj), 0));
27948     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 2), opval);
27949     written |= (1 << 18);
27950     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27951   }
27952   {
27953     UHI opval = GET_H_FR_0 (ADDSI (FLD (f_FRj), 0));
27954     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 3), opval);
27955     written |= (1 << 15);
27956     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27957   }
27958   {
27959     UHI opval = GET_H_FR_0 (ADDSI (FLD (f_FRj), 0));
27960     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 3), opval);
27961     written |= (1 << 19);
27962     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27963   }
27964 }
27965 }
27966 }
27967 }
27968
27969   abuf->written = written;
27970   return vpc;
27971 #undef FLD
27972 }
27973
27974 /* mnop: mnop$pack */
27975
27976 static SEM_PC
27977 SEM_FN_NAME (frvbf,mnop) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27978 {
27979 #define FLD(f) abuf->fields.sfmt_empty.f
27980   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27981   int UNUSED written = 0;
27982   IADDR UNUSED pc = abuf->addr;
27983   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27984
27985 ((void) 0); /*nop*/
27986
27987   return vpc;
27988 #undef FLD
27989 }
27990
27991 /* mclracc-0: mclracc$pack $ACC40Sk,$A0 */
27992
27993 static SEM_PC
27994 SEM_FN_NAME (frvbf,mclracc_0) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27995 {
27996 #define FLD(f) abuf->fields.sfmt_mdasaccs.f
27997   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27998   int UNUSED written = 0;
27999   IADDR UNUSED pc = abuf->addr;
28000   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
28001
28002 frvbf_clear_accumulators (current_cpu, FLD (f_ACC40Sk), 0);
28003
28004   return vpc;
28005 #undef FLD
28006 }
28007
28008 /* mclracc-1: mclracc$pack $ACC40Sk,$A1 */
28009
28010 static SEM_PC
28011 SEM_FN_NAME (frvbf,mclracc_1) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
28012 {
28013 #define FLD(f) abuf->fields.sfmt_mdasaccs.f
28014   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
28015   int UNUSED written = 0;
28016   IADDR UNUSED pc = abuf->addr;
28017   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
28018
28019 frvbf_clear_accumulators (current_cpu, FLD (f_ACC40Sk), 1);
28020
28021   return vpc;
28022 #undef FLD
28023 }
28024
28025 /* mrdacc: mrdacc$pack $ACC40Si,$FRintk */
28026
28027 static SEM_PC
28028 SEM_FN_NAME (frvbf,mrdacc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
28029 {
28030 #define FLD(f) abuf->fields.sfmt_mcuti.f
28031   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
28032   int UNUSED written = 0;
28033   IADDR UNUSED pc = abuf->addr;
28034   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
28035
28036   {
28037     SI opval = GET_H_ACC40S (FLD (f_ACC40Si));
28038     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
28039     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
28040   }
28041
28042   return vpc;
28043 #undef FLD
28044 }
28045
28046 /* mrdaccg: mrdaccg$pack $ACCGi,$FRintk */
28047
28048 static SEM_PC
28049 SEM_FN_NAME (frvbf,mrdaccg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
28050 {
28051 #define FLD(f) abuf->fields.sfmt_mrdaccg.f
28052   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
28053   int UNUSED written = 0;
28054   IADDR UNUSED pc = abuf->addr;
28055   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
28056
28057   {
28058     SI opval = GET_H_ACCG (FLD (f_ACCGi));
28059     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
28060     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
28061   }
28062
28063   return vpc;
28064 #undef FLD
28065 }
28066
28067 /* mwtacc: mwtacc$pack $FRinti,$ACC40Sk */
28068
28069 static SEM_PC
28070 SEM_FN_NAME (frvbf,mwtacc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
28071 {
28072 #define FLD(f) abuf->fields.sfmt_cmmachs.f
28073   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
28074   int UNUSED written = 0;
28075   IADDR UNUSED pc = abuf->addr;
28076   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
28077
28078   {
28079     DI opval = ORDI (ANDDI (GET_H_ACC40S (FLD (f_ACC40Sk)), MAKEDI (0xffffffff, 0)), GET_H_FR_INT (FLD (f_FRi)));
28080     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
28081     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
28082   }
28083
28084   return vpc;
28085 #undef FLD
28086 }
28087
28088 /* mwtaccg: mwtaccg$pack $FRinti,$ACCGk */
28089
28090 static SEM_PC
28091 SEM_FN_NAME (frvbf,mwtaccg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
28092 {
28093 #define FLD(f) abuf->fields.sfmt_mwtaccg.f
28094   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
28095   int UNUSED written = 0;
28096   IADDR UNUSED pc = abuf->addr;
28097   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
28098
28099 {
28100 frv_ref_SI (GET_H_ACCG (FLD (f_ACCGk)));
28101   {
28102     USI opval = GET_H_FR_INT (FLD (f_FRi));
28103     sim_queue_fn_si_write (current_cpu, frvbf_h_accg_set, FLD (f_ACCGk), opval);
28104     TRACE_RESULT (current_cpu, abuf, "accg", 'x', opval);
28105   }
28106 }
28107
28108   return vpc;
28109 #undef FLD
28110 }
28111
28112 /* mcop1: mcop1$pack $FRi,$FRj,$FRk */
28113
28114 static SEM_PC
28115 SEM_FN_NAME (frvbf,mcop1) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
28116 {
28117 #define FLD(f) abuf->fields.sfmt_empty.f
28118   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
28119   int UNUSED written = 0;
28120   IADDR UNUSED pc = abuf->addr;
28121   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
28122
28123 frvbf_media_cop (current_cpu, 1);
28124
28125   return vpc;
28126 #undef FLD
28127 }
28128
28129 /* mcop2: mcop2$pack $FRi,$FRj,$FRk */
28130
28131 static SEM_PC
28132 SEM_FN_NAME (frvbf,mcop2) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
28133 {
28134 #define FLD(f) abuf->fields.sfmt_empty.f
28135   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
28136   int UNUSED written = 0;
28137   IADDR UNUSED pc = abuf->addr;
28138   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
28139
28140 frvbf_media_cop (current_cpu, 2);
28141
28142   return vpc;
28143 #undef FLD
28144 }
28145
28146 /* fnop: fnop$pack */
28147
28148 static SEM_PC
28149 SEM_FN_NAME (frvbf,fnop) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
28150 {
28151 #define FLD(f) abuf->fields.sfmt_empty.f
28152   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
28153   int UNUSED written = 0;
28154   IADDR UNUSED pc = abuf->addr;
28155   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
28156
28157 ((void) 0); /*nop*/
28158
28159   return vpc;
28160 #undef FLD
28161 }
28162
28163 /* Table of all semantic fns.  */
28164
28165 static const struct sem_fn_desc sem_fns[] = {
28166   { FRVBF_INSN_X_INVALID, SEM_FN_NAME (frvbf,x_invalid) },
28167   { FRVBF_INSN_X_AFTER, SEM_FN_NAME (frvbf,x_after) },
28168   { FRVBF_INSN_X_BEFORE, SEM_FN_NAME (frvbf,x_before) },
28169   { FRVBF_INSN_X_CTI_CHAIN, SEM_FN_NAME (frvbf,x_cti_chain) },
28170   { FRVBF_INSN_X_CHAIN, SEM_FN_NAME (frvbf,x_chain) },
28171   { FRVBF_INSN_X_BEGIN, SEM_FN_NAME (frvbf,x_begin) },
28172   { FRVBF_INSN_ADD, SEM_FN_NAME (frvbf,add) },
28173   { FRVBF_INSN_SUB, SEM_FN_NAME (frvbf,sub) },
28174   { FRVBF_INSN_AND, SEM_FN_NAME (frvbf,and) },
28175   { FRVBF_INSN_OR, SEM_FN_NAME (frvbf,or) },
28176   { FRVBF_INSN_XOR, SEM_FN_NAME (frvbf,xor) },
28177   { FRVBF_INSN_NOT, SEM_FN_NAME (frvbf,not) },
28178   { FRVBF_INSN_SDIV, SEM_FN_NAME (frvbf,sdiv) },
28179   { FRVBF_INSN_NSDIV, SEM_FN_NAME (frvbf,nsdiv) },
28180   { FRVBF_INSN_UDIV, SEM_FN_NAME (frvbf,udiv) },
28181   { FRVBF_INSN_NUDIV, SEM_FN_NAME (frvbf,nudiv) },
28182   { FRVBF_INSN_SMUL, SEM_FN_NAME (frvbf,smul) },
28183   { FRVBF_INSN_UMUL, SEM_FN_NAME (frvbf,umul) },
28184   { FRVBF_INSN_SMU, SEM_FN_NAME (frvbf,smu) },
28185   { FRVBF_INSN_SMASS, SEM_FN_NAME (frvbf,smass) },
28186   { FRVBF_INSN_SMSSS, SEM_FN_NAME (frvbf,smsss) },
28187   { FRVBF_INSN_SLL, SEM_FN_NAME (frvbf,sll) },
28188   { FRVBF_INSN_SRL, SEM_FN_NAME (frvbf,srl) },
28189   { FRVBF_INSN_SRA, SEM_FN_NAME (frvbf,sra) },
28190   { FRVBF_INSN_SLASS, SEM_FN_NAME (frvbf,slass) },
28191   { FRVBF_INSN_SCUTSS, SEM_FN_NAME (frvbf,scutss) },
28192   { FRVBF_INSN_SCAN, SEM_FN_NAME (frvbf,scan) },
28193   { FRVBF_INSN_CADD, SEM_FN_NAME (frvbf,cadd) },
28194   { FRVBF_INSN_CSUB, SEM_FN_NAME (frvbf,csub) },
28195   { FRVBF_INSN_CAND, SEM_FN_NAME (frvbf,cand) },
28196   { FRVBF_INSN_COR, SEM_FN_NAME (frvbf,cor) },
28197   { FRVBF_INSN_CXOR, SEM_FN_NAME (frvbf,cxor) },
28198   { FRVBF_INSN_CNOT, SEM_FN_NAME (frvbf,cnot) },
28199   { FRVBF_INSN_CSMUL, SEM_FN_NAME (frvbf,csmul) },
28200   { FRVBF_INSN_CSDIV, SEM_FN_NAME (frvbf,csdiv) },
28201   { FRVBF_INSN_CUDIV, SEM_FN_NAME (frvbf,cudiv) },
28202   { FRVBF_INSN_CSLL, SEM_FN_NAME (frvbf,csll) },
28203   { FRVBF_INSN_CSRL, SEM_FN_NAME (frvbf,csrl) },
28204   { FRVBF_INSN_CSRA, SEM_FN_NAME (frvbf,csra) },
28205   { FRVBF_INSN_CSCAN, SEM_FN_NAME (frvbf,cscan) },
28206   { FRVBF_INSN_ADDCC, SEM_FN_NAME (frvbf,addcc) },
28207   { FRVBF_INSN_SUBCC, SEM_FN_NAME (frvbf,subcc) },
28208   { FRVBF_INSN_ANDCC, SEM_FN_NAME (frvbf,andcc) },
28209   { FRVBF_INSN_ORCC, SEM_FN_NAME (frvbf,orcc) },
28210   { FRVBF_INSN_XORCC, SEM_FN_NAME (frvbf,xorcc) },
28211   { FRVBF_INSN_SLLCC, SEM_FN_NAME (frvbf,sllcc) },
28212   { FRVBF_INSN_SRLCC, SEM_FN_NAME (frvbf,srlcc) },
28213   { FRVBF_INSN_SRACC, SEM_FN_NAME (frvbf,sracc) },
28214   { FRVBF_INSN_SMULCC, SEM_FN_NAME (frvbf,smulcc) },
28215   { FRVBF_INSN_UMULCC, SEM_FN_NAME (frvbf,umulcc) },
28216   { FRVBF_INSN_CADDCC, SEM_FN_NAME (frvbf,caddcc) },
28217   { FRVBF_INSN_CSUBCC, SEM_FN_NAME (frvbf,csubcc) },
28218   { FRVBF_INSN_CSMULCC, SEM_FN_NAME (frvbf,csmulcc) },
28219   { FRVBF_INSN_CANDCC, SEM_FN_NAME (frvbf,candcc) },
28220   { FRVBF_INSN_CORCC, SEM_FN_NAME (frvbf,corcc) },
28221   { FRVBF_INSN_CXORCC, SEM_FN_NAME (frvbf,cxorcc) },
28222   { FRVBF_INSN_CSLLCC, SEM_FN_NAME (frvbf,csllcc) },
28223   { FRVBF_INSN_CSRLCC, SEM_FN_NAME (frvbf,csrlcc) },
28224   { FRVBF_INSN_CSRACC, SEM_FN_NAME (frvbf,csracc) },
28225   { FRVBF_INSN_ADDX, SEM_FN_NAME (frvbf,addx) },
28226   { FRVBF_INSN_SUBX, SEM_FN_NAME (frvbf,subx) },
28227   { FRVBF_INSN_ADDXCC, SEM_FN_NAME (frvbf,addxcc) },
28228   { FRVBF_INSN_SUBXCC, SEM_FN_NAME (frvbf,subxcc) },
28229   { FRVBF_INSN_ADDSS, SEM_FN_NAME (frvbf,addss) },
28230   { FRVBF_INSN_SUBSS, SEM_FN_NAME (frvbf,subss) },
28231   { FRVBF_INSN_ADDI, SEM_FN_NAME (frvbf,addi) },
28232   { FRVBF_INSN_SUBI, SEM_FN_NAME (frvbf,subi) },
28233   { FRVBF_INSN_ANDI, SEM_FN_NAME (frvbf,andi) },
28234   { FRVBF_INSN_ORI, SEM_FN_NAME (frvbf,ori) },
28235   { FRVBF_INSN_XORI, SEM_FN_NAME (frvbf,xori) },
28236   { FRVBF_INSN_SDIVI, SEM_FN_NAME (frvbf,sdivi) },
28237   { FRVBF_INSN_NSDIVI, SEM_FN_NAME (frvbf,nsdivi) },
28238   { FRVBF_INSN_UDIVI, SEM_FN_NAME (frvbf,udivi) },
28239   { FRVBF_INSN_NUDIVI, SEM_FN_NAME (frvbf,nudivi) },
28240   { FRVBF_INSN_SMULI, SEM_FN_NAME (frvbf,smuli) },
28241   { FRVBF_INSN_UMULI, SEM_FN_NAME (frvbf,umuli) },
28242   { FRVBF_INSN_SLLI, SEM_FN_NAME (frvbf,slli) },
28243   { FRVBF_INSN_SRLI, SEM_FN_NAME (frvbf,srli) },
28244   { FRVBF_INSN_SRAI, SEM_FN_NAME (frvbf,srai) },
28245   { FRVBF_INSN_SCANI, SEM_FN_NAME (frvbf,scani) },
28246   { FRVBF_INSN_ADDICC, SEM_FN_NAME (frvbf,addicc) },
28247   { FRVBF_INSN_SUBICC, SEM_FN_NAME (frvbf,subicc) },
28248   { FRVBF_INSN_ANDICC, SEM_FN_NAME (frvbf,andicc) },
28249   { FRVBF_INSN_ORICC, SEM_FN_NAME (frvbf,oricc) },
28250   { FRVBF_INSN_XORICC, SEM_FN_NAME (frvbf,xoricc) },
28251   { FRVBF_INSN_SMULICC, SEM_FN_NAME (frvbf,smulicc) },
28252   { FRVBF_INSN_UMULICC, SEM_FN_NAME (frvbf,umulicc) },
28253   { FRVBF_INSN_SLLICC, SEM_FN_NAME (frvbf,sllicc) },
28254   { FRVBF_INSN_SRLICC, SEM_FN_NAME (frvbf,srlicc) },
28255   { FRVBF_INSN_SRAICC, SEM_FN_NAME (frvbf,sraicc) },
28256   { FRVBF_INSN_ADDXI, SEM_FN_NAME (frvbf,addxi) },
28257   { FRVBF_INSN_SUBXI, SEM_FN_NAME (frvbf,subxi) },
28258   { FRVBF_INSN_ADDXICC, SEM_FN_NAME (frvbf,addxicc) },
28259   { FRVBF_INSN_SUBXICC, SEM_FN_NAME (frvbf,subxicc) },
28260   { FRVBF_INSN_CMPB, SEM_FN_NAME (frvbf,cmpb) },
28261   { FRVBF_INSN_CMPBA, SEM_FN_NAME (frvbf,cmpba) },
28262   { FRVBF_INSN_SETLO, SEM_FN_NAME (frvbf,setlo) },
28263   { FRVBF_INSN_SETHI, SEM_FN_NAME (frvbf,sethi) },
28264   { FRVBF_INSN_SETLOS, SEM_FN_NAME (frvbf,setlos) },
28265   { FRVBF_INSN_LDSB, SEM_FN_NAME (frvbf,ldsb) },
28266   { FRVBF_INSN_LDUB, SEM_FN_NAME (frvbf,ldub) },
28267   { FRVBF_INSN_LDSH, SEM_FN_NAME (frvbf,ldsh) },
28268   { FRVBF_INSN_LDUH, SEM_FN_NAME (frvbf,lduh) },
28269   { FRVBF_INSN_LD, SEM_FN_NAME (frvbf,ld) },
28270   { FRVBF_INSN_LDBF, SEM_FN_NAME (frvbf,ldbf) },
28271   { FRVBF_INSN_LDHF, SEM_FN_NAME (frvbf,ldhf) },
28272   { FRVBF_INSN_LDF, SEM_FN_NAME (frvbf,ldf) },
28273   { FRVBF_INSN_LDC, SEM_FN_NAME (frvbf,ldc) },
28274   { FRVBF_INSN_NLDSB, SEM_FN_NAME (frvbf,nldsb) },
28275   { FRVBF_INSN_NLDUB, SEM_FN_NAME (frvbf,nldub) },
28276   { FRVBF_INSN_NLDSH, SEM_FN_NAME (frvbf,nldsh) },
28277   { FRVBF_INSN_NLDUH, SEM_FN_NAME (frvbf,nlduh) },
28278   { FRVBF_INSN_NLD, SEM_FN_NAME (frvbf,nld) },
28279   { FRVBF_INSN_NLDBF, SEM_FN_NAME (frvbf,nldbf) },
28280   { FRVBF_INSN_NLDHF, SEM_FN_NAME (frvbf,nldhf) },
28281   { FRVBF_INSN_NLDF, SEM_FN_NAME (frvbf,nldf) },
28282   { FRVBF_INSN_LDD, SEM_FN_NAME (frvbf,ldd) },
28283   { FRVBF_INSN_LDDF, SEM_FN_NAME (frvbf,lddf) },
28284   { FRVBF_INSN_LDDC, SEM_FN_NAME (frvbf,lddc) },
28285   { FRVBF_INSN_NLDD, SEM_FN_NAME (frvbf,nldd) },
28286   { FRVBF_INSN_NLDDF, SEM_FN_NAME (frvbf,nlddf) },
28287   { FRVBF_INSN_LDQ, SEM_FN_NAME (frvbf,ldq) },
28288   { FRVBF_INSN_LDQF, SEM_FN_NAME (frvbf,ldqf) },
28289   { FRVBF_INSN_LDQC, SEM_FN_NAME (frvbf,ldqc) },
28290   { FRVBF_INSN_NLDQ, SEM_FN_NAME (frvbf,nldq) },
28291   { FRVBF_INSN_NLDQF, SEM_FN_NAME (frvbf,nldqf) },
28292   { FRVBF_INSN_LDSBU, SEM_FN_NAME (frvbf,ldsbu) },
28293   { FRVBF_INSN_LDUBU, SEM_FN_NAME (frvbf,ldubu) },
28294   { FRVBF_INSN_LDSHU, SEM_FN_NAME (frvbf,ldshu) },
28295   { FRVBF_INSN_LDUHU, SEM_FN_NAME (frvbf,lduhu) },
28296   { FRVBF_INSN_LDU, SEM_FN_NAME (frvbf,ldu) },
28297   { FRVBF_INSN_NLDSBU, SEM_FN_NAME (frvbf,nldsbu) },
28298   { FRVBF_INSN_NLDUBU, SEM_FN_NAME (frvbf,nldubu) },
28299   { FRVBF_INSN_NLDSHU, SEM_FN_NAME (frvbf,nldshu) },
28300   { FRVBF_INSN_NLDUHU, SEM_FN_NAME (frvbf,nlduhu) },
28301   { FRVBF_INSN_NLDU, SEM_FN_NAME (frvbf,nldu) },
28302   { FRVBF_INSN_LDBFU, SEM_FN_NAME (frvbf,ldbfu) },
28303   { FRVBF_INSN_LDHFU, SEM_FN_NAME (frvbf,ldhfu) },
28304   { FRVBF_INSN_LDFU, SEM_FN_NAME (frvbf,ldfu) },
28305   { FRVBF_INSN_LDCU, SEM_FN_NAME (frvbf,ldcu) },
28306   { FRVBF_INSN_NLDBFU, SEM_FN_NAME (frvbf,nldbfu) },
28307   { FRVBF_INSN_NLDHFU, SEM_FN_NAME (frvbf,nldhfu) },
28308   { FRVBF_INSN_NLDFU, SEM_FN_NAME (frvbf,nldfu) },
28309   { FRVBF_INSN_LDDU, SEM_FN_NAME (frvbf,lddu) },
28310   { FRVBF_INSN_NLDDU, SEM_FN_NAME (frvbf,nlddu) },
28311   { FRVBF_INSN_LDDFU, SEM_FN_NAME (frvbf,lddfu) },
28312   { FRVBF_INSN_LDDCU, SEM_FN_NAME (frvbf,lddcu) },
28313   { FRVBF_INSN_NLDDFU, SEM_FN_NAME (frvbf,nlddfu) },
28314   { FRVBF_INSN_LDQU, SEM_FN_NAME (frvbf,ldqu) },
28315   { FRVBF_INSN_NLDQU, SEM_FN_NAME (frvbf,nldqu) },
28316   { FRVBF_INSN_LDQFU, SEM_FN_NAME (frvbf,ldqfu) },
28317   { FRVBF_INSN_LDQCU, SEM_FN_NAME (frvbf,ldqcu) },
28318   { FRVBF_INSN_NLDQFU, SEM_FN_NAME (frvbf,nldqfu) },
28319   { FRVBF_INSN_LDSBI, SEM_FN_NAME (frvbf,ldsbi) },
28320   { FRVBF_INSN_LDSHI, SEM_FN_NAME (frvbf,ldshi) },
28321   { FRVBF_INSN_LDI, SEM_FN_NAME (frvbf,ldi) },
28322   { FRVBF_INSN_LDUBI, SEM_FN_NAME (frvbf,ldubi) },
28323   { FRVBF_INSN_LDUHI, SEM_FN_NAME (frvbf,lduhi) },
28324   { FRVBF_INSN_LDBFI, SEM_FN_NAME (frvbf,ldbfi) },
28325   { FRVBF_INSN_LDHFI, SEM_FN_NAME (frvbf,ldhfi) },
28326   { FRVBF_INSN_LDFI, SEM_FN_NAME (frvbf,ldfi) },
28327   { FRVBF_INSN_NLDSBI, SEM_FN_NAME (frvbf,nldsbi) },
28328   { FRVBF_INSN_NLDUBI, SEM_FN_NAME (frvbf,nldubi) },
28329   { FRVBF_INSN_NLDSHI, SEM_FN_NAME (frvbf,nldshi) },
28330   { FRVBF_INSN_NLDUHI, SEM_FN_NAME (frvbf,nlduhi) },
28331   { FRVBF_INSN_NLDI, SEM_FN_NAME (frvbf,nldi) },
28332   { FRVBF_INSN_NLDBFI, SEM_FN_NAME (frvbf,nldbfi) },
28333   { FRVBF_INSN_NLDHFI, SEM_FN_NAME (frvbf,nldhfi) },
28334   { FRVBF_INSN_NLDFI, SEM_FN_NAME (frvbf,nldfi) },
28335   { FRVBF_INSN_LDDI, SEM_FN_NAME (frvbf,lddi) },
28336   { FRVBF_INSN_LDDFI, SEM_FN_NAME (frvbf,lddfi) },
28337   { FRVBF_INSN_NLDDI, SEM_FN_NAME (frvbf,nlddi) },
28338   { FRVBF_INSN_NLDDFI, SEM_FN_NAME (frvbf,nlddfi) },
28339   { FRVBF_INSN_LDQI, SEM_FN_NAME (frvbf,ldqi) },
28340   { FRVBF_INSN_LDQFI, SEM_FN_NAME (frvbf,ldqfi) },
28341   { FRVBF_INSN_NLDQFI, SEM_FN_NAME (frvbf,nldqfi) },
28342   { FRVBF_INSN_STB, SEM_FN_NAME (frvbf,stb) },
28343   { FRVBF_INSN_STH, SEM_FN_NAME (frvbf,sth) },
28344   { FRVBF_INSN_ST, SEM_FN_NAME (frvbf,st) },
28345   { FRVBF_INSN_STBF, SEM_FN_NAME (frvbf,stbf) },
28346   { FRVBF_INSN_STHF, SEM_FN_NAME (frvbf,sthf) },
28347   { FRVBF_INSN_STF, SEM_FN_NAME (frvbf,stf) },
28348   { FRVBF_INSN_STC, SEM_FN_NAME (frvbf,stc) },
28349   { FRVBF_INSN_STD, SEM_FN_NAME (frvbf,std) },
28350   { FRVBF_INSN_STDF, SEM_FN_NAME (frvbf,stdf) },
28351   { FRVBF_INSN_STDC, SEM_FN_NAME (frvbf,stdc) },
28352   { FRVBF_INSN_STQ, SEM_FN_NAME (frvbf,stq) },
28353   { FRVBF_INSN_STQF, SEM_FN_NAME (frvbf,stqf) },
28354   { FRVBF_INSN_STQC, SEM_FN_NAME (frvbf,stqc) },
28355   { FRVBF_INSN_STBU, SEM_FN_NAME (frvbf,stbu) },
28356   { FRVBF_INSN_STHU, SEM_FN_NAME (frvbf,sthu) },
28357   { FRVBF_INSN_STU, SEM_FN_NAME (frvbf,stu) },
28358   { FRVBF_INSN_STBFU, SEM_FN_NAME (frvbf,stbfu) },
28359   { FRVBF_INSN_STHFU, SEM_FN_NAME (frvbf,sthfu) },
28360   { FRVBF_INSN_STFU, SEM_FN_NAME (frvbf,stfu) },
28361   { FRVBF_INSN_STCU, SEM_FN_NAME (frvbf,stcu) },
28362   { FRVBF_INSN_STDU, SEM_FN_NAME (frvbf,stdu) },
28363   { FRVBF_INSN_STDFU, SEM_FN_NAME (frvbf,stdfu) },
28364   { FRVBF_INSN_STDCU, SEM_FN_NAME (frvbf,stdcu) },
28365   { FRVBF_INSN_STQU, SEM_FN_NAME (frvbf,stqu) },
28366   { FRVBF_INSN_STQFU, SEM_FN_NAME (frvbf,stqfu) },
28367   { FRVBF_INSN_STQCU, SEM_FN_NAME (frvbf,stqcu) },
28368   { FRVBF_INSN_CLDSB, SEM_FN_NAME (frvbf,cldsb) },
28369   { FRVBF_INSN_CLDUB, SEM_FN_NAME (frvbf,cldub) },
28370   { FRVBF_INSN_CLDSH, SEM_FN_NAME (frvbf,cldsh) },
28371   { FRVBF_INSN_CLDUH, SEM_FN_NAME (frvbf,clduh) },
28372   { FRVBF_INSN_CLD, SEM_FN_NAME (frvbf,cld) },
28373   { FRVBF_INSN_CLDBF, SEM_FN_NAME (frvbf,cldbf) },
28374   { FRVBF_INSN_CLDHF, SEM_FN_NAME (frvbf,cldhf) },
28375   { FRVBF_INSN_CLDF, SEM_FN_NAME (frvbf,cldf) },
28376   { FRVBF_INSN_CLDD, SEM_FN_NAME (frvbf,cldd) },
28377   { FRVBF_INSN_CLDDF, SEM_FN_NAME (frvbf,clddf) },
28378   { FRVBF_INSN_CLDQ, SEM_FN_NAME (frvbf,cldq) },
28379   { FRVBF_INSN_CLDSBU, SEM_FN_NAME (frvbf,cldsbu) },
28380   { FRVBF_INSN_CLDUBU, SEM_FN_NAME (frvbf,cldubu) },
28381   { FRVBF_INSN_CLDSHU, SEM_FN_NAME (frvbf,cldshu) },
28382   { FRVBF_INSN_CLDUHU, SEM_FN_NAME (frvbf,clduhu) },
28383   { FRVBF_INSN_CLDU, SEM_FN_NAME (frvbf,cldu) },
28384   { FRVBF_INSN_CLDBFU, SEM_FN_NAME (frvbf,cldbfu) },
28385   { FRVBF_INSN_CLDHFU, SEM_FN_NAME (frvbf,cldhfu) },
28386   { FRVBF_INSN_CLDFU, SEM_FN_NAME (frvbf,cldfu) },
28387   { FRVBF_INSN_CLDDU, SEM_FN_NAME (frvbf,clddu) },
28388   { FRVBF_INSN_CLDDFU, SEM_FN_NAME (frvbf,clddfu) },
28389   { FRVBF_INSN_CLDQU, SEM_FN_NAME (frvbf,cldqu) },
28390   { FRVBF_INSN_CSTB, SEM_FN_NAME (frvbf,cstb) },
28391   { FRVBF_INSN_CSTH, SEM_FN_NAME (frvbf,csth) },
28392   { FRVBF_INSN_CST, SEM_FN_NAME (frvbf,cst) },
28393   { FRVBF_INSN_CSTBF, SEM_FN_NAME (frvbf,cstbf) },
28394   { FRVBF_INSN_CSTHF, SEM_FN_NAME (frvbf,csthf) },
28395   { FRVBF_INSN_CSTF, SEM_FN_NAME (frvbf,cstf) },
28396   { FRVBF_INSN_CSTD, SEM_FN_NAME (frvbf,cstd) },
28397   { FRVBF_INSN_CSTDF, SEM_FN_NAME (frvbf,cstdf) },
28398   { FRVBF_INSN_CSTQ, SEM_FN_NAME (frvbf,cstq) },
28399   { FRVBF_INSN_CSTBU, SEM_FN_NAME (frvbf,cstbu) },
28400   { FRVBF_INSN_CSTHU, SEM_FN_NAME (frvbf,csthu) },
28401   { FRVBF_INSN_CSTU, SEM_FN_NAME (frvbf,cstu) },
28402   { FRVBF_INSN_CSTBFU, SEM_FN_NAME (frvbf,cstbfu) },
28403   { FRVBF_INSN_CSTHFU, SEM_FN_NAME (frvbf,csthfu) },
28404   { FRVBF_INSN_CSTFU, SEM_FN_NAME (frvbf,cstfu) },
28405   { FRVBF_INSN_CSTDU, SEM_FN_NAME (frvbf,cstdu) },
28406   { FRVBF_INSN_CSTDFU, SEM_FN_NAME (frvbf,cstdfu) },
28407   { FRVBF_INSN_STBI, SEM_FN_NAME (frvbf,stbi) },
28408   { FRVBF_INSN_STHI, SEM_FN_NAME (frvbf,sthi) },
28409   { FRVBF_INSN_STI, SEM_FN_NAME (frvbf,sti) },
28410   { FRVBF_INSN_STBFI, SEM_FN_NAME (frvbf,stbfi) },
28411   { FRVBF_INSN_STHFI, SEM_FN_NAME (frvbf,sthfi) },
28412   { FRVBF_INSN_STFI, SEM_FN_NAME (frvbf,stfi) },
28413   { FRVBF_INSN_STDI, SEM_FN_NAME (frvbf,stdi) },
28414   { FRVBF_INSN_STDFI, SEM_FN_NAME (frvbf,stdfi) },
28415   { FRVBF_INSN_STQI, SEM_FN_NAME (frvbf,stqi) },
28416   { FRVBF_INSN_STQFI, SEM_FN_NAME (frvbf,stqfi) },
28417   { FRVBF_INSN_SWAP, SEM_FN_NAME (frvbf,swap) },
28418   { FRVBF_INSN_SWAPI, SEM_FN_NAME (frvbf,swapi) },
28419   { FRVBF_INSN_CSWAP, SEM_FN_NAME (frvbf,cswap) },
28420   { FRVBF_INSN_MOVGF, SEM_FN_NAME (frvbf,movgf) },
28421   { FRVBF_INSN_MOVFG, SEM_FN_NAME (frvbf,movfg) },
28422   { FRVBF_INSN_MOVGFD, SEM_FN_NAME (frvbf,movgfd) },
28423   { FRVBF_INSN_MOVFGD, SEM_FN_NAME (frvbf,movfgd) },
28424   { FRVBF_INSN_MOVGFQ, SEM_FN_NAME (frvbf,movgfq) },
28425   { FRVBF_INSN_MOVFGQ, SEM_FN_NAME (frvbf,movfgq) },
28426   { FRVBF_INSN_CMOVGF, SEM_FN_NAME (frvbf,cmovgf) },
28427   { FRVBF_INSN_CMOVFG, SEM_FN_NAME (frvbf,cmovfg) },
28428   { FRVBF_INSN_CMOVGFD, SEM_FN_NAME (frvbf,cmovgfd) },
28429   { FRVBF_INSN_CMOVFGD, SEM_FN_NAME (frvbf,cmovfgd) },
28430   { FRVBF_INSN_MOVGS, SEM_FN_NAME (frvbf,movgs) },
28431   { FRVBF_INSN_MOVSG, SEM_FN_NAME (frvbf,movsg) },
28432   { FRVBF_INSN_BRA, SEM_FN_NAME (frvbf,bra) },
28433   { FRVBF_INSN_BNO, SEM_FN_NAME (frvbf,bno) },
28434   { FRVBF_INSN_BEQ, SEM_FN_NAME (frvbf,beq) },
28435   { FRVBF_INSN_BNE, SEM_FN_NAME (frvbf,bne) },
28436   { FRVBF_INSN_BLE, SEM_FN_NAME (frvbf,ble) },
28437   { FRVBF_INSN_BGT, SEM_FN_NAME (frvbf,bgt) },
28438   { FRVBF_INSN_BLT, SEM_FN_NAME (frvbf,blt) },
28439   { FRVBF_INSN_BGE, SEM_FN_NAME (frvbf,bge) },
28440   { FRVBF_INSN_BLS, SEM_FN_NAME (frvbf,bls) },
28441   { FRVBF_INSN_BHI, SEM_FN_NAME (frvbf,bhi) },
28442   { FRVBF_INSN_BC, SEM_FN_NAME (frvbf,bc) },
28443   { FRVBF_INSN_BNC, SEM_FN_NAME (frvbf,bnc) },
28444   { FRVBF_INSN_BN, SEM_FN_NAME (frvbf,bn) },
28445   { FRVBF_INSN_BP, SEM_FN_NAME (frvbf,bp) },
28446   { FRVBF_INSN_BV, SEM_FN_NAME (frvbf,bv) },
28447   { FRVBF_INSN_BNV, SEM_FN_NAME (frvbf,bnv) },
28448   { FRVBF_INSN_FBRA, SEM_FN_NAME (frvbf,fbra) },
28449   { FRVBF_INSN_FBNO, SEM_FN_NAME (frvbf,fbno) },
28450   { FRVBF_INSN_FBNE, SEM_FN_NAME (frvbf,fbne) },
28451   { FRVBF_INSN_FBEQ, SEM_FN_NAME (frvbf,fbeq) },
28452   { FRVBF_INSN_FBLG, SEM_FN_NAME (frvbf,fblg) },
28453   { FRVBF_INSN_FBUE, SEM_FN_NAME (frvbf,fbue) },
28454   { FRVBF_INSN_FBUL, SEM_FN_NAME (frvbf,fbul) },
28455   { FRVBF_INSN_FBGE, SEM_FN_NAME (frvbf,fbge) },
28456   { FRVBF_INSN_FBLT, SEM_FN_NAME (frvbf,fblt) },
28457   { FRVBF_INSN_FBUGE, SEM_FN_NAME (frvbf,fbuge) },
28458   { FRVBF_INSN_FBUG, SEM_FN_NAME (frvbf,fbug) },
28459   { FRVBF_INSN_FBLE, SEM_FN_NAME (frvbf,fble) },
28460   { FRVBF_INSN_FBGT, SEM_FN_NAME (frvbf,fbgt) },
28461   { FRVBF_INSN_FBULE, SEM_FN_NAME (frvbf,fbule) },
28462   { FRVBF_INSN_FBU, SEM_FN_NAME (frvbf,fbu) },
28463   { FRVBF_INSN_FBO, SEM_FN_NAME (frvbf,fbo) },
28464   { FRVBF_INSN_BCTRLR, SEM_FN_NAME (frvbf,bctrlr) },
28465   { FRVBF_INSN_BRALR, SEM_FN_NAME (frvbf,bralr) },
28466   { FRVBF_INSN_BNOLR, SEM_FN_NAME (frvbf,bnolr) },
28467   { FRVBF_INSN_BEQLR, SEM_FN_NAME (frvbf,beqlr) },
28468   { FRVBF_INSN_BNELR, SEM_FN_NAME (frvbf,bnelr) },
28469   { FRVBF_INSN_BLELR, SEM_FN_NAME (frvbf,blelr) },
28470   { FRVBF_INSN_BGTLR, SEM_FN_NAME (frvbf,bgtlr) },
28471   { FRVBF_INSN_BLTLR, SEM_FN_NAME (frvbf,bltlr) },
28472   { FRVBF_INSN_BGELR, SEM_FN_NAME (frvbf,bgelr) },
28473   { FRVBF_INSN_BLSLR, SEM_FN_NAME (frvbf,blslr) },
28474   { FRVBF_INSN_BHILR, SEM_FN_NAME (frvbf,bhilr) },
28475   { FRVBF_INSN_BCLR, SEM_FN_NAME (frvbf,bclr) },
28476   { FRVBF_INSN_BNCLR, SEM_FN_NAME (frvbf,bnclr) },
28477   { FRVBF_INSN_BNLR, SEM_FN_NAME (frvbf,bnlr) },
28478   { FRVBF_INSN_BPLR, SEM_FN_NAME (frvbf,bplr) },
28479   { FRVBF_INSN_BVLR, SEM_FN_NAME (frvbf,bvlr) },
28480   { FRVBF_INSN_BNVLR, SEM_FN_NAME (frvbf,bnvlr) },
28481   { FRVBF_INSN_FBRALR, SEM_FN_NAME (frvbf,fbralr) },
28482   { FRVBF_INSN_FBNOLR, SEM_FN_NAME (frvbf,fbnolr) },
28483   { FRVBF_INSN_FBEQLR, SEM_FN_NAME (frvbf,fbeqlr) },
28484   { FRVBF_INSN_FBNELR, SEM_FN_NAME (frvbf,fbnelr) },
28485   { FRVBF_INSN_FBLGLR, SEM_FN_NAME (frvbf,fblglr) },
28486   { FRVBF_INSN_FBUELR, SEM_FN_NAME (frvbf,fbuelr) },
28487   { FRVBF_INSN_FBULLR, SEM_FN_NAME (frvbf,fbullr) },
28488   { FRVBF_INSN_FBGELR, SEM_FN_NAME (frvbf,fbgelr) },
28489   { FRVBF_INSN_FBLTLR, SEM_FN_NAME (frvbf,fbltlr) },
28490   { FRVBF_INSN_FBUGELR, SEM_FN_NAME (frvbf,fbugelr) },
28491   { FRVBF_INSN_FBUGLR, SEM_FN_NAME (frvbf,fbuglr) },
28492   { FRVBF_INSN_FBLELR, SEM_FN_NAME (frvbf,fblelr) },
28493   { FRVBF_INSN_FBGTLR, SEM_FN_NAME (frvbf,fbgtlr) },
28494   { FRVBF_INSN_FBULELR, SEM_FN_NAME (frvbf,fbulelr) },
28495   { FRVBF_INSN_FBULR, SEM_FN_NAME (frvbf,fbulr) },
28496   { FRVBF_INSN_FBOLR, SEM_FN_NAME (frvbf,fbolr) },
28497   { FRVBF_INSN_BCRALR, SEM_FN_NAME (frvbf,bcralr) },
28498   { FRVBF_INSN_BCNOLR, SEM_FN_NAME (frvbf,bcnolr) },
28499   { FRVBF_INSN_BCEQLR, SEM_FN_NAME (frvbf,bceqlr) },
28500   { FRVBF_INSN_BCNELR, SEM_FN_NAME (frvbf,bcnelr) },
28501   { FRVBF_INSN_BCLELR, SEM_FN_NAME (frvbf,bclelr) },
28502   { FRVBF_INSN_BCGTLR, SEM_FN_NAME (frvbf,bcgtlr) },
28503   { FRVBF_INSN_BCLTLR, SEM_FN_NAME (frvbf,bcltlr) },
28504   { FRVBF_INSN_BCGELR, SEM_FN_NAME (frvbf,bcgelr) },
28505   { FRVBF_INSN_BCLSLR, SEM_FN_NAME (frvbf,bclslr) },
28506   { FRVBF_INSN_BCHILR, SEM_FN_NAME (frvbf,bchilr) },
28507   { FRVBF_INSN_BCCLR, SEM_FN_NAME (frvbf,bcclr) },
28508   { FRVBF_INSN_BCNCLR, SEM_FN_NAME (frvbf,bcnclr) },
28509   { FRVBF_INSN_BCNLR, SEM_FN_NAME (frvbf,bcnlr) },
28510   { FRVBF_INSN_BCPLR, SEM_FN_NAME (frvbf,bcplr) },
28511   { FRVBF_INSN_BCVLR, SEM_FN_NAME (frvbf,bcvlr) },
28512   { FRVBF_INSN_BCNVLR, SEM_FN_NAME (frvbf,bcnvlr) },
28513   { FRVBF_INSN_FCBRALR, SEM_FN_NAME (frvbf,fcbralr) },
28514   { FRVBF_INSN_FCBNOLR, SEM_FN_NAME (frvbf,fcbnolr) },
28515   { FRVBF_INSN_FCBEQLR, SEM_FN_NAME (frvbf,fcbeqlr) },
28516   { FRVBF_INSN_FCBNELR, SEM_FN_NAME (frvbf,fcbnelr) },
28517   { FRVBF_INSN_FCBLGLR, SEM_FN_NAME (frvbf,fcblglr) },
28518   { FRVBF_INSN_FCBUELR, SEM_FN_NAME (frvbf,fcbuelr) },
28519   { FRVBF_INSN_FCBULLR, SEM_FN_NAME (frvbf,fcbullr) },
28520   { FRVBF_INSN_FCBGELR, SEM_FN_NAME (frvbf,fcbgelr) },
28521   { FRVBF_INSN_FCBLTLR, SEM_FN_NAME (frvbf,fcbltlr) },
28522   { FRVBF_INSN_FCBUGELR, SEM_FN_NAME (frvbf,fcbugelr) },
28523   { FRVBF_INSN_FCBUGLR, SEM_FN_NAME (frvbf,fcbuglr) },
28524   { FRVBF_INSN_FCBLELR, SEM_FN_NAME (frvbf,fcblelr) },
28525   { FRVBF_INSN_FCBGTLR, SEM_FN_NAME (frvbf,fcbgtlr) },
28526   { FRVBF_INSN_FCBULELR, SEM_FN_NAME (frvbf,fcbulelr) },
28527   { FRVBF_INSN_FCBULR, SEM_FN_NAME (frvbf,fcbulr) },
28528   { FRVBF_INSN_FCBOLR, SEM_FN_NAME (frvbf,fcbolr) },
28529   { FRVBF_INSN_JMPL, SEM_FN_NAME (frvbf,jmpl) },
28530   { FRVBF_INSN_CALLL, SEM_FN_NAME (frvbf,calll) },
28531   { FRVBF_INSN_JMPIL, SEM_FN_NAME (frvbf,jmpil) },
28532   { FRVBF_INSN_CALLIL, SEM_FN_NAME (frvbf,callil) },
28533   { FRVBF_INSN_CALL, SEM_FN_NAME (frvbf,call) },
28534   { FRVBF_INSN_RETT, SEM_FN_NAME (frvbf,rett) },
28535   { FRVBF_INSN_REI, SEM_FN_NAME (frvbf,rei) },
28536   { FRVBF_INSN_TRA, SEM_FN_NAME (frvbf,tra) },
28537   { FRVBF_INSN_TNO, SEM_FN_NAME (frvbf,tno) },
28538   { FRVBF_INSN_TEQ, SEM_FN_NAME (frvbf,teq) },
28539   { FRVBF_INSN_TNE, SEM_FN_NAME (frvbf,tne) },
28540   { FRVBF_INSN_TLE, SEM_FN_NAME (frvbf,tle) },
28541   { FRVBF_INSN_TGT, SEM_FN_NAME (frvbf,tgt) },
28542   { FRVBF_INSN_TLT, SEM_FN_NAME (frvbf,tlt) },
28543   { FRVBF_INSN_TGE, SEM_FN_NAME (frvbf,tge) },
28544   { FRVBF_INSN_TLS, SEM_FN_NAME (frvbf,tls) },
28545   { FRVBF_INSN_THI, SEM_FN_NAME (frvbf,thi) },
28546   { FRVBF_INSN_TC, SEM_FN_NAME (frvbf,tc) },
28547   { FRVBF_INSN_TNC, SEM_FN_NAME (frvbf,tnc) },
28548   { FRVBF_INSN_TN, SEM_FN_NAME (frvbf,tn) },
28549   { FRVBF_INSN_TP, SEM_FN_NAME (frvbf,tp) },
28550   { FRVBF_INSN_TV, SEM_FN_NAME (frvbf,tv) },
28551   { FRVBF_INSN_TNV, SEM_FN_NAME (frvbf,tnv) },
28552   { FRVBF_INSN_FTRA, SEM_FN_NAME (frvbf,ftra) },
28553   { FRVBF_INSN_FTNO, SEM_FN_NAME (frvbf,ftno) },
28554   { FRVBF_INSN_FTNE, SEM_FN_NAME (frvbf,ftne) },
28555   { FRVBF_INSN_FTEQ, SEM_FN_NAME (frvbf,fteq) },
28556   { FRVBF_INSN_FTLG, SEM_FN_NAME (frvbf,ftlg) },
28557   { FRVBF_INSN_FTUE, SEM_FN_NAME (frvbf,ftue) },
28558   { FRVBF_INSN_FTUL, SEM_FN_NAME (frvbf,ftul) },
28559   { FRVBF_INSN_FTGE, SEM_FN_NAME (frvbf,ftge) },
28560   { FRVBF_INSN_FTLT, SEM_FN_NAME (frvbf,ftlt) },
28561   { FRVBF_INSN_FTUGE, SEM_FN_NAME (frvbf,ftuge) },
28562   { FRVBF_INSN_FTUG, SEM_FN_NAME (frvbf,ftug) },
28563   { FRVBF_INSN_FTLE, SEM_FN_NAME (frvbf,ftle) },
28564   { FRVBF_INSN_FTGT, SEM_FN_NAME (frvbf,ftgt) },
28565   { FRVBF_INSN_FTULE, SEM_FN_NAME (frvbf,ftule) },
28566   { FRVBF_INSN_FTU, SEM_FN_NAME (frvbf,ftu) },
28567   { FRVBF_INSN_FTO, SEM_FN_NAME (frvbf,fto) },
28568   { FRVBF_INSN_TIRA, SEM_FN_NAME (frvbf,tira) },
28569   { FRVBF_INSN_TINO, SEM_FN_NAME (frvbf,tino) },
28570   { FRVBF_INSN_TIEQ, SEM_FN_NAME (frvbf,tieq) },
28571   { FRVBF_INSN_TINE, SEM_FN_NAME (frvbf,tine) },
28572   { FRVBF_INSN_TILE, SEM_FN_NAME (frvbf,tile) },
28573   { FRVBF_INSN_TIGT, SEM_FN_NAME (frvbf,tigt) },
28574   { FRVBF_INSN_TILT, SEM_FN_NAME (frvbf,tilt) },
28575   { FRVBF_INSN_TIGE, SEM_FN_NAME (frvbf,tige) },
28576   { FRVBF_INSN_TILS, SEM_FN_NAME (frvbf,tils) },
28577   { FRVBF_INSN_TIHI, SEM_FN_NAME (frvbf,tihi) },
28578   { FRVBF_INSN_TIC, SEM_FN_NAME (frvbf,tic) },
28579   { FRVBF_INSN_TINC, SEM_FN_NAME (frvbf,tinc) },
28580   { FRVBF_INSN_TIN, SEM_FN_NAME (frvbf,tin) },
28581   { FRVBF_INSN_TIP, SEM_FN_NAME (frvbf,tip) },
28582   { FRVBF_INSN_TIV, SEM_FN_NAME (frvbf,tiv) },
28583   { FRVBF_INSN_TINV, SEM_FN_NAME (frvbf,tinv) },
28584   { FRVBF_INSN_FTIRA, SEM_FN_NAME (frvbf,ftira) },
28585   { FRVBF_INSN_FTINO, SEM_FN_NAME (frvbf,ftino) },
28586   { FRVBF_INSN_FTINE, SEM_FN_NAME (frvbf,ftine) },
28587   { FRVBF_INSN_FTIEQ, SEM_FN_NAME (frvbf,ftieq) },
28588   { FRVBF_INSN_FTILG, SEM_FN_NAME (frvbf,ftilg) },
28589   { FRVBF_INSN_FTIUE, SEM_FN_NAME (frvbf,ftiue) },
28590   { FRVBF_INSN_FTIUL, SEM_FN_NAME (frvbf,ftiul) },
28591   { FRVBF_INSN_FTIGE, SEM_FN_NAME (frvbf,ftige) },
28592   { FRVBF_INSN_FTILT, SEM_FN_NAME (frvbf,ftilt) },
28593   { FRVBF_INSN_FTIUGE, SEM_FN_NAME (frvbf,ftiuge) },
28594   { FRVBF_INSN_FTIUG, SEM_FN_NAME (frvbf,ftiug) },
28595   { FRVBF_INSN_FTILE, SEM_FN_NAME (frvbf,ftile) },
28596   { FRVBF_INSN_FTIGT, SEM_FN_NAME (frvbf,ftigt) },
28597   { FRVBF_INSN_FTIULE, SEM_FN_NAME (frvbf,ftiule) },
28598   { FRVBF_INSN_FTIU, SEM_FN_NAME (frvbf,ftiu) },
28599   { FRVBF_INSN_FTIO, SEM_FN_NAME (frvbf,ftio) },
28600   { FRVBF_INSN_BREAK, SEM_FN_NAME (frvbf,break) },
28601   { FRVBF_INSN_MTRAP, SEM_FN_NAME (frvbf,mtrap) },
28602   { FRVBF_INSN_ANDCR, SEM_FN_NAME (frvbf,andcr) },
28603   { FRVBF_INSN_ORCR, SEM_FN_NAME (frvbf,orcr) },
28604   { FRVBF_INSN_XORCR, SEM_FN_NAME (frvbf,xorcr) },
28605   { FRVBF_INSN_NANDCR, SEM_FN_NAME (frvbf,nandcr) },
28606   { FRVBF_INSN_NORCR, SEM_FN_NAME (frvbf,norcr) },
28607   { FRVBF_INSN_ANDNCR, SEM_FN_NAME (frvbf,andncr) },
28608   { FRVBF_INSN_ORNCR, SEM_FN_NAME (frvbf,orncr) },
28609   { FRVBF_INSN_NANDNCR, SEM_FN_NAME (frvbf,nandncr) },
28610   { FRVBF_INSN_NORNCR, SEM_FN_NAME (frvbf,norncr) },
28611   { FRVBF_INSN_NOTCR, SEM_FN_NAME (frvbf,notcr) },
28612   { FRVBF_INSN_CKRA, SEM_FN_NAME (frvbf,ckra) },
28613   { FRVBF_INSN_CKNO, SEM_FN_NAME (frvbf,ckno) },
28614   { FRVBF_INSN_CKEQ, SEM_FN_NAME (frvbf,ckeq) },
28615   { FRVBF_INSN_CKNE, SEM_FN_NAME (frvbf,ckne) },
28616   { FRVBF_INSN_CKLE, SEM_FN_NAME (frvbf,ckle) },
28617   { FRVBF_INSN_CKGT, SEM_FN_NAME (frvbf,ckgt) },
28618   { FRVBF_INSN_CKLT, SEM_FN_NAME (frvbf,cklt) },
28619   { FRVBF_INSN_CKGE, SEM_FN_NAME (frvbf,ckge) },
28620   { FRVBF_INSN_CKLS, SEM_FN_NAME (frvbf,ckls) },
28621   { FRVBF_INSN_CKHI, SEM_FN_NAME (frvbf,ckhi) },
28622   { FRVBF_INSN_CKC, SEM_FN_NAME (frvbf,ckc) },
28623   { FRVBF_INSN_CKNC, SEM_FN_NAME (frvbf,cknc) },
28624   { FRVBF_INSN_CKN, SEM_FN_NAME (frvbf,ckn) },
28625   { FRVBF_INSN_CKP, SEM_FN_NAME (frvbf,ckp) },
28626   { FRVBF_INSN_CKV, SEM_FN_NAME (frvbf,ckv) },
28627   { FRVBF_INSN_CKNV, SEM_FN_NAME (frvbf,cknv) },
28628   { FRVBF_INSN_FCKRA, SEM_FN_NAME (frvbf,fckra) },
28629   { FRVBF_INSN_FCKNO, SEM_FN_NAME (frvbf,fckno) },
28630   { FRVBF_INSN_FCKNE, SEM_FN_NAME (frvbf,fckne) },
28631   { FRVBF_INSN_FCKEQ, SEM_FN_NAME (frvbf,fckeq) },
28632   { FRVBF_INSN_FCKLG, SEM_FN_NAME (frvbf,fcklg) },
28633   { FRVBF_INSN_FCKUE, SEM_FN_NAME (frvbf,fckue) },
28634   { FRVBF_INSN_FCKUL, SEM_FN_NAME (frvbf,fckul) },
28635   { FRVBF_INSN_FCKGE, SEM_FN_NAME (frvbf,fckge) },
28636   { FRVBF_INSN_FCKLT, SEM_FN_NAME (frvbf,fcklt) },
28637   { FRVBF_INSN_FCKUGE, SEM_FN_NAME (frvbf,fckuge) },
28638   { FRVBF_INSN_FCKUG, SEM_FN_NAME (frvbf,fckug) },
28639   { FRVBF_INSN_FCKLE, SEM_FN_NAME (frvbf,fckle) },
28640   { FRVBF_INSN_FCKGT, SEM_FN_NAME (frvbf,fckgt) },
28641   { FRVBF_INSN_FCKULE, SEM_FN_NAME (frvbf,fckule) },
28642   { FRVBF_INSN_FCKU, SEM_FN_NAME (frvbf,fcku) },
28643   { FRVBF_INSN_FCKO, SEM_FN_NAME (frvbf,fcko) },
28644   { FRVBF_INSN_CCKRA, SEM_FN_NAME (frvbf,cckra) },
28645   { FRVBF_INSN_CCKNO, SEM_FN_NAME (frvbf,cckno) },
28646   { FRVBF_INSN_CCKEQ, SEM_FN_NAME (frvbf,cckeq) },
28647   { FRVBF_INSN_CCKNE, SEM_FN_NAME (frvbf,cckne) },
28648   { FRVBF_INSN_CCKLE, SEM_FN_NAME (frvbf,cckle) },
28649   { FRVBF_INSN_CCKGT, SEM_FN_NAME (frvbf,cckgt) },
28650   { FRVBF_INSN_CCKLT, SEM_FN_NAME (frvbf,ccklt) },
28651   { FRVBF_INSN_CCKGE, SEM_FN_NAME (frvbf,cckge) },
28652   { FRVBF_INSN_CCKLS, SEM_FN_NAME (frvbf,cckls) },
28653   { FRVBF_INSN_CCKHI, SEM_FN_NAME (frvbf,cckhi) },
28654   { FRVBF_INSN_CCKC, SEM_FN_NAME (frvbf,cckc) },
28655   { FRVBF_INSN_CCKNC, SEM_FN_NAME (frvbf,ccknc) },
28656   { FRVBF_INSN_CCKN, SEM_FN_NAME (frvbf,cckn) },
28657   { FRVBF_INSN_CCKP, SEM_FN_NAME (frvbf,cckp) },
28658   { FRVBF_INSN_CCKV, SEM_FN_NAME (frvbf,cckv) },
28659   { FRVBF_INSN_CCKNV, SEM_FN_NAME (frvbf,ccknv) },
28660   { FRVBF_INSN_CFCKRA, SEM_FN_NAME (frvbf,cfckra) },
28661   { FRVBF_INSN_CFCKNO, SEM_FN_NAME (frvbf,cfckno) },
28662   { FRVBF_INSN_CFCKNE, SEM_FN_NAME (frvbf,cfckne) },
28663   { FRVBF_INSN_CFCKEQ, SEM_FN_NAME (frvbf,cfckeq) },
28664   { FRVBF_INSN_CFCKLG, SEM_FN_NAME (frvbf,cfcklg) },
28665   { FRVBF_INSN_CFCKUE, SEM_FN_NAME (frvbf,cfckue) },
28666   { FRVBF_INSN_CFCKUL, SEM_FN_NAME (frvbf,cfckul) },
28667   { FRVBF_INSN_CFCKGE, SEM_FN_NAME (frvbf,cfckge) },
28668   { FRVBF_INSN_CFCKLT, SEM_FN_NAME (frvbf,cfcklt) },
28669   { FRVBF_INSN_CFCKUGE, SEM_FN_NAME (frvbf,cfckuge) },
28670   { FRVBF_INSN_CFCKUG, SEM_FN_NAME (frvbf,cfckug) },
28671   { FRVBF_INSN_CFCKLE, SEM_FN_NAME (frvbf,cfckle) },
28672   { FRVBF_INSN_CFCKGT, SEM_FN_NAME (frvbf,cfckgt) },
28673   { FRVBF_INSN_CFCKULE, SEM_FN_NAME (frvbf,cfckule) },
28674   { FRVBF_INSN_CFCKU, SEM_FN_NAME (frvbf,cfcku) },
28675   { FRVBF_INSN_CFCKO, SEM_FN_NAME (frvbf,cfcko) },
28676   { FRVBF_INSN_CJMPL, SEM_FN_NAME (frvbf,cjmpl) },
28677   { FRVBF_INSN_CCALLL, SEM_FN_NAME (frvbf,ccalll) },
28678   { FRVBF_INSN_ICI, SEM_FN_NAME (frvbf,ici) },
28679   { FRVBF_INSN_DCI, SEM_FN_NAME (frvbf,dci) },
28680   { FRVBF_INSN_ICEI, SEM_FN_NAME (frvbf,icei) },
28681   { FRVBF_INSN_DCEI, SEM_FN_NAME (frvbf,dcei) },
28682   { FRVBF_INSN_DCF, SEM_FN_NAME (frvbf,dcf) },
28683   { FRVBF_INSN_DCEF, SEM_FN_NAME (frvbf,dcef) },
28684   { FRVBF_INSN_WITLB, SEM_FN_NAME (frvbf,witlb) },
28685   { FRVBF_INSN_WDTLB, SEM_FN_NAME (frvbf,wdtlb) },
28686   { FRVBF_INSN_ITLBI, SEM_FN_NAME (frvbf,itlbi) },
28687   { FRVBF_INSN_DTLBI, SEM_FN_NAME (frvbf,dtlbi) },
28688   { FRVBF_INSN_ICPL, SEM_FN_NAME (frvbf,icpl) },
28689   { FRVBF_INSN_DCPL, SEM_FN_NAME (frvbf,dcpl) },
28690   { FRVBF_INSN_ICUL, SEM_FN_NAME (frvbf,icul) },
28691   { FRVBF_INSN_DCUL, SEM_FN_NAME (frvbf,dcul) },
28692   { FRVBF_INSN_BAR, SEM_FN_NAME (frvbf,bar) },
28693   { FRVBF_INSN_MEMBAR, SEM_FN_NAME (frvbf,membar) },
28694   { FRVBF_INSN_LRAI, SEM_FN_NAME (frvbf,lrai) },
28695   { FRVBF_INSN_LRAD, SEM_FN_NAME (frvbf,lrad) },
28696   { FRVBF_INSN_TLBPR, SEM_FN_NAME (frvbf,tlbpr) },
28697   { FRVBF_INSN_COP1, SEM_FN_NAME (frvbf,cop1) },
28698   { FRVBF_INSN_COP2, SEM_FN_NAME (frvbf,cop2) },
28699   { FRVBF_INSN_CLRGR, SEM_FN_NAME (frvbf,clrgr) },
28700   { FRVBF_INSN_CLRFR, SEM_FN_NAME (frvbf,clrfr) },
28701   { FRVBF_INSN_CLRGA, SEM_FN_NAME (frvbf,clrga) },
28702   { FRVBF_INSN_CLRFA, SEM_FN_NAME (frvbf,clrfa) },
28703   { FRVBF_INSN_COMMITGR, SEM_FN_NAME (frvbf,commitgr) },
28704   { FRVBF_INSN_COMMITFR, SEM_FN_NAME (frvbf,commitfr) },
28705   { FRVBF_INSN_COMMITGA, SEM_FN_NAME (frvbf,commitga) },
28706   { FRVBF_INSN_COMMITFA, SEM_FN_NAME (frvbf,commitfa) },
28707   { FRVBF_INSN_FITOS, SEM_FN_NAME (frvbf,fitos) },
28708   { FRVBF_INSN_FSTOI, SEM_FN_NAME (frvbf,fstoi) },
28709   { FRVBF_INSN_FITOD, SEM_FN_NAME (frvbf,fitod) },
28710   { FRVBF_INSN_FDTOI, SEM_FN_NAME (frvbf,fdtoi) },
28711   { FRVBF_INSN_FDITOS, SEM_FN_NAME (frvbf,fditos) },
28712   { FRVBF_INSN_FDSTOI, SEM_FN_NAME (frvbf,fdstoi) },
28713   { FRVBF_INSN_NFDITOS, SEM_FN_NAME (frvbf,nfditos) },
28714   { FRVBF_INSN_NFDSTOI, SEM_FN_NAME (frvbf,nfdstoi) },
28715   { FRVBF_INSN_CFITOS, SEM_FN_NAME (frvbf,cfitos) },
28716   { FRVBF_INSN_CFSTOI, SEM_FN_NAME (frvbf,cfstoi) },
28717   { FRVBF_INSN_NFITOS, SEM_FN_NAME (frvbf,nfitos) },
28718   { FRVBF_INSN_NFSTOI, SEM_FN_NAME (frvbf,nfstoi) },
28719   { FRVBF_INSN_FMOVS, SEM_FN_NAME (frvbf,fmovs) },
28720   { FRVBF_INSN_FMOVD, SEM_FN_NAME (frvbf,fmovd) },
28721   { FRVBF_INSN_FDMOVS, SEM_FN_NAME (frvbf,fdmovs) },
28722   { FRVBF_INSN_CFMOVS, SEM_FN_NAME (frvbf,cfmovs) },
28723   { FRVBF_INSN_FNEGS, SEM_FN_NAME (frvbf,fnegs) },
28724   { FRVBF_INSN_FNEGD, SEM_FN_NAME (frvbf,fnegd) },
28725   { FRVBF_INSN_FDNEGS, SEM_FN_NAME (frvbf,fdnegs) },
28726   { FRVBF_INSN_CFNEGS, SEM_FN_NAME (frvbf,cfnegs) },
28727   { FRVBF_INSN_FABSS, SEM_FN_NAME (frvbf,fabss) },
28728   { FRVBF_INSN_FABSD, SEM_FN_NAME (frvbf,fabsd) },
28729   { FRVBF_INSN_FDABSS, SEM_FN_NAME (frvbf,fdabss) },
28730   { FRVBF_INSN_CFABSS, SEM_FN_NAME (frvbf,cfabss) },
28731   { FRVBF_INSN_FSQRTS, SEM_FN_NAME (frvbf,fsqrts) },
28732   { FRVBF_INSN_FDSQRTS, SEM_FN_NAME (frvbf,fdsqrts) },
28733   { FRVBF_INSN_NFDSQRTS, SEM_FN_NAME (frvbf,nfdsqrts) },
28734   { FRVBF_INSN_FSQRTD, SEM_FN_NAME (frvbf,fsqrtd) },
28735   { FRVBF_INSN_CFSQRTS, SEM_FN_NAME (frvbf,cfsqrts) },
28736   { FRVBF_INSN_NFSQRTS, SEM_FN_NAME (frvbf,nfsqrts) },
28737   { FRVBF_INSN_FADDS, SEM_FN_NAME (frvbf,fadds) },
28738   { FRVBF_INSN_FSUBS, SEM_FN_NAME (frvbf,fsubs) },
28739   { FRVBF_INSN_FMULS, SEM_FN_NAME (frvbf,fmuls) },
28740   { FRVBF_INSN_FDIVS, SEM_FN_NAME (frvbf,fdivs) },
28741   { FRVBF_INSN_FADDD, SEM_FN_NAME (frvbf,faddd) },
28742   { FRVBF_INSN_FSUBD, SEM_FN_NAME (frvbf,fsubd) },
28743   { FRVBF_INSN_FMULD, SEM_FN_NAME (frvbf,fmuld) },
28744   { FRVBF_INSN_FDIVD, SEM_FN_NAME (frvbf,fdivd) },
28745   { FRVBF_INSN_CFADDS, SEM_FN_NAME (frvbf,cfadds) },
28746   { FRVBF_INSN_CFSUBS, SEM_FN_NAME (frvbf,cfsubs) },
28747   { FRVBF_INSN_CFMULS, SEM_FN_NAME (frvbf,cfmuls) },
28748   { FRVBF_INSN_CFDIVS, SEM_FN_NAME (frvbf,cfdivs) },
28749   { FRVBF_INSN_NFADDS, SEM_FN_NAME (frvbf,nfadds) },
28750   { FRVBF_INSN_NFSUBS, SEM_FN_NAME (frvbf,nfsubs) },
28751   { FRVBF_INSN_NFMULS, SEM_FN_NAME (frvbf,nfmuls) },
28752   { FRVBF_INSN_NFDIVS, SEM_FN_NAME (frvbf,nfdivs) },
28753   { FRVBF_INSN_FCMPS, SEM_FN_NAME (frvbf,fcmps) },
28754   { FRVBF_INSN_FCMPD, SEM_FN_NAME (frvbf,fcmpd) },
28755   { FRVBF_INSN_CFCMPS, SEM_FN_NAME (frvbf,cfcmps) },
28756   { FRVBF_INSN_FDCMPS, SEM_FN_NAME (frvbf,fdcmps) },
28757   { FRVBF_INSN_FMADDS, SEM_FN_NAME (frvbf,fmadds) },
28758   { FRVBF_INSN_FMSUBS, SEM_FN_NAME (frvbf,fmsubs) },
28759   { FRVBF_INSN_FMADDD, SEM_FN_NAME (frvbf,fmaddd) },
28760   { FRVBF_INSN_FMSUBD, SEM_FN_NAME (frvbf,fmsubd) },
28761   { FRVBF_INSN_FDMADDS, SEM_FN_NAME (frvbf,fdmadds) },
28762   { FRVBF_INSN_NFDMADDS, SEM_FN_NAME (frvbf,nfdmadds) },
28763   { FRVBF_INSN_CFMADDS, SEM_FN_NAME (frvbf,cfmadds) },
28764   { FRVBF_INSN_CFMSUBS, SEM_FN_NAME (frvbf,cfmsubs) },
28765   { FRVBF_INSN_NFMADDS, SEM_FN_NAME (frvbf,nfmadds) },
28766   { FRVBF_INSN_NFMSUBS, SEM_FN_NAME (frvbf,nfmsubs) },
28767   { FRVBF_INSN_FMAS, SEM_FN_NAME (frvbf,fmas) },
28768   { FRVBF_INSN_FMSS, SEM_FN_NAME (frvbf,fmss) },
28769   { FRVBF_INSN_FDMAS, SEM_FN_NAME (frvbf,fdmas) },
28770   { FRVBF_INSN_FDMSS, SEM_FN_NAME (frvbf,fdmss) },
28771   { FRVBF_INSN_NFDMAS, SEM_FN_NAME (frvbf,nfdmas) },
28772   { FRVBF_INSN_NFDMSS, SEM_FN_NAME (frvbf,nfdmss) },
28773   { FRVBF_INSN_CFMAS, SEM_FN_NAME (frvbf,cfmas) },
28774   { FRVBF_INSN_CFMSS, SEM_FN_NAME (frvbf,cfmss) },
28775   { FRVBF_INSN_FMAD, SEM_FN_NAME (frvbf,fmad) },
28776   { FRVBF_INSN_FMSD, SEM_FN_NAME (frvbf,fmsd) },
28777   { FRVBF_INSN_NFMAS, SEM_FN_NAME (frvbf,nfmas) },
28778   { FRVBF_INSN_NFMSS, SEM_FN_NAME (frvbf,nfmss) },
28779   { FRVBF_INSN_FDADDS, SEM_FN_NAME (frvbf,fdadds) },
28780   { FRVBF_INSN_FDSUBS, SEM_FN_NAME (frvbf,fdsubs) },
28781   { FRVBF_INSN_FDMULS, SEM_FN_NAME (frvbf,fdmuls) },
28782   { FRVBF_INSN_FDDIVS, SEM_FN_NAME (frvbf,fddivs) },
28783   { FRVBF_INSN_FDSADS, SEM_FN_NAME (frvbf,fdsads) },
28784   { FRVBF_INSN_FDMULCS, SEM_FN_NAME (frvbf,fdmulcs) },
28785   { FRVBF_INSN_NFDMULCS, SEM_FN_NAME (frvbf,nfdmulcs) },
28786   { FRVBF_INSN_NFDADDS, SEM_FN_NAME (frvbf,nfdadds) },
28787   { FRVBF_INSN_NFDSUBS, SEM_FN_NAME (frvbf,nfdsubs) },
28788   { FRVBF_INSN_NFDMULS, SEM_FN_NAME (frvbf,nfdmuls) },
28789   { FRVBF_INSN_NFDDIVS, SEM_FN_NAME (frvbf,nfddivs) },
28790   { FRVBF_INSN_NFDSADS, SEM_FN_NAME (frvbf,nfdsads) },
28791   { FRVBF_INSN_NFDCMPS, SEM_FN_NAME (frvbf,nfdcmps) },
28792   { FRVBF_INSN_MHSETLOS, SEM_FN_NAME (frvbf,mhsetlos) },
28793   { FRVBF_INSN_MHSETHIS, SEM_FN_NAME (frvbf,mhsethis) },
28794   { FRVBF_INSN_MHDSETS, SEM_FN_NAME (frvbf,mhdsets) },
28795   { FRVBF_INSN_MHSETLOH, SEM_FN_NAME (frvbf,mhsetloh) },
28796   { FRVBF_INSN_MHSETHIH, SEM_FN_NAME (frvbf,mhsethih) },
28797   { FRVBF_INSN_MHDSETH, SEM_FN_NAME (frvbf,mhdseth) },
28798   { FRVBF_INSN_MAND, SEM_FN_NAME (frvbf,mand) },
28799   { FRVBF_INSN_MOR, SEM_FN_NAME (frvbf,mor) },
28800   { FRVBF_INSN_MXOR, SEM_FN_NAME (frvbf,mxor) },
28801   { FRVBF_INSN_CMAND, SEM_FN_NAME (frvbf,cmand) },
28802   { FRVBF_INSN_CMOR, SEM_FN_NAME (frvbf,cmor) },
28803   { FRVBF_INSN_CMXOR, SEM_FN_NAME (frvbf,cmxor) },
28804   { FRVBF_INSN_MNOT, SEM_FN_NAME (frvbf,mnot) },
28805   { FRVBF_INSN_CMNOT, SEM_FN_NAME (frvbf,cmnot) },
28806   { FRVBF_INSN_MROTLI, SEM_FN_NAME (frvbf,mrotli) },
28807   { FRVBF_INSN_MROTRI, SEM_FN_NAME (frvbf,mrotri) },
28808   { FRVBF_INSN_MWCUT, SEM_FN_NAME (frvbf,mwcut) },
28809   { FRVBF_INSN_MWCUTI, SEM_FN_NAME (frvbf,mwcuti) },
28810   { FRVBF_INSN_MCUT, SEM_FN_NAME (frvbf,mcut) },
28811   { FRVBF_INSN_MCUTI, SEM_FN_NAME (frvbf,mcuti) },
28812   { FRVBF_INSN_MCUTSS, SEM_FN_NAME (frvbf,mcutss) },
28813   { FRVBF_INSN_MCUTSSI, SEM_FN_NAME (frvbf,mcutssi) },
28814   { FRVBF_INSN_MDCUTSSI, SEM_FN_NAME (frvbf,mdcutssi) },
28815   { FRVBF_INSN_MAVEH, SEM_FN_NAME (frvbf,maveh) },
28816   { FRVBF_INSN_MSLLHI, SEM_FN_NAME (frvbf,msllhi) },
28817   { FRVBF_INSN_MSRLHI, SEM_FN_NAME (frvbf,msrlhi) },
28818   { FRVBF_INSN_MSRAHI, SEM_FN_NAME (frvbf,msrahi) },
28819   { FRVBF_INSN_MDROTLI, SEM_FN_NAME (frvbf,mdrotli) },
28820   { FRVBF_INSN_MCPLHI, SEM_FN_NAME (frvbf,mcplhi) },
28821   { FRVBF_INSN_MCPLI, SEM_FN_NAME (frvbf,mcpli) },
28822   { FRVBF_INSN_MSATHS, SEM_FN_NAME (frvbf,msaths) },
28823   { FRVBF_INSN_MQSATHS, SEM_FN_NAME (frvbf,mqsaths) },
28824   { FRVBF_INSN_MSATHU, SEM_FN_NAME (frvbf,msathu) },
28825   { FRVBF_INSN_MCMPSH, SEM_FN_NAME (frvbf,mcmpsh) },
28826   { FRVBF_INSN_MCMPUH, SEM_FN_NAME (frvbf,mcmpuh) },
28827   { FRVBF_INSN_MABSHS, SEM_FN_NAME (frvbf,mabshs) },
28828   { FRVBF_INSN_MADDHSS, SEM_FN_NAME (frvbf,maddhss) },
28829   { FRVBF_INSN_MADDHUS, SEM_FN_NAME (frvbf,maddhus) },
28830   { FRVBF_INSN_MSUBHSS, SEM_FN_NAME (frvbf,msubhss) },
28831   { FRVBF_INSN_MSUBHUS, SEM_FN_NAME (frvbf,msubhus) },
28832   { FRVBF_INSN_CMADDHSS, SEM_FN_NAME (frvbf,cmaddhss) },
28833   { FRVBF_INSN_CMADDHUS, SEM_FN_NAME (frvbf,cmaddhus) },
28834   { FRVBF_INSN_CMSUBHSS, SEM_FN_NAME (frvbf,cmsubhss) },
28835   { FRVBF_INSN_CMSUBHUS, SEM_FN_NAME (frvbf,cmsubhus) },
28836   { FRVBF_INSN_MQADDHSS, SEM_FN_NAME (frvbf,mqaddhss) },
28837   { FRVBF_INSN_MQADDHUS, SEM_FN_NAME (frvbf,mqaddhus) },
28838   { FRVBF_INSN_MQSUBHSS, SEM_FN_NAME (frvbf,mqsubhss) },
28839   { FRVBF_INSN_MQSUBHUS, SEM_FN_NAME (frvbf,mqsubhus) },
28840   { FRVBF_INSN_CMQADDHSS, SEM_FN_NAME (frvbf,cmqaddhss) },
28841   { FRVBF_INSN_CMQADDHUS, SEM_FN_NAME (frvbf,cmqaddhus) },
28842   { FRVBF_INSN_CMQSUBHSS, SEM_FN_NAME (frvbf,cmqsubhss) },
28843   { FRVBF_INSN_CMQSUBHUS, SEM_FN_NAME (frvbf,cmqsubhus) },
28844   { FRVBF_INSN_MQLCLRHS, SEM_FN_NAME (frvbf,mqlclrhs) },
28845   { FRVBF_INSN_MQLMTHS, SEM_FN_NAME (frvbf,mqlmths) },
28846   { FRVBF_INSN_MQSLLHI, SEM_FN_NAME (frvbf,mqsllhi) },
28847   { FRVBF_INSN_MQSRAHI, SEM_FN_NAME (frvbf,mqsrahi) },
28848   { FRVBF_INSN_MADDACCS, SEM_FN_NAME (frvbf,maddaccs) },
28849   { FRVBF_INSN_MSUBACCS, SEM_FN_NAME (frvbf,msubaccs) },
28850   { FRVBF_INSN_MDADDACCS, SEM_FN_NAME (frvbf,mdaddaccs) },
28851   { FRVBF_INSN_MDSUBACCS, SEM_FN_NAME (frvbf,mdsubaccs) },
28852   { FRVBF_INSN_MASACCS, SEM_FN_NAME (frvbf,masaccs) },
28853   { FRVBF_INSN_MDASACCS, SEM_FN_NAME (frvbf,mdasaccs) },
28854   { FRVBF_INSN_MMULHS, SEM_FN_NAME (frvbf,mmulhs) },
28855   { FRVBF_INSN_MMULHU, SEM_FN_NAME (frvbf,mmulhu) },
28856   { FRVBF_INSN_MMULXHS, SEM_FN_NAME (frvbf,mmulxhs) },
28857   { FRVBF_INSN_MMULXHU, SEM_FN_NAME (frvbf,mmulxhu) },
28858   { FRVBF_INSN_CMMULHS, SEM_FN_NAME (frvbf,cmmulhs) },
28859   { FRVBF_INSN_CMMULHU, SEM_FN_NAME (frvbf,cmmulhu) },
28860   { FRVBF_INSN_MQMULHS, SEM_FN_NAME (frvbf,mqmulhs) },
28861   { FRVBF_INSN_MQMULHU, SEM_FN_NAME (frvbf,mqmulhu) },
28862   { FRVBF_INSN_MQMULXHS, SEM_FN_NAME (frvbf,mqmulxhs) },
28863   { FRVBF_INSN_MQMULXHU, SEM_FN_NAME (frvbf,mqmulxhu) },
28864   { FRVBF_INSN_CMQMULHS, SEM_FN_NAME (frvbf,cmqmulhs) },
28865   { FRVBF_INSN_CMQMULHU, SEM_FN_NAME (frvbf,cmqmulhu) },
28866   { FRVBF_INSN_MMACHS, SEM_FN_NAME (frvbf,mmachs) },
28867   { FRVBF_INSN_MMACHU, SEM_FN_NAME (frvbf,mmachu) },
28868   { FRVBF_INSN_MMRDHS, SEM_FN_NAME (frvbf,mmrdhs) },
28869   { FRVBF_INSN_MMRDHU, SEM_FN_NAME (frvbf,mmrdhu) },
28870   { FRVBF_INSN_CMMACHS, SEM_FN_NAME (frvbf,cmmachs) },
28871   { FRVBF_INSN_CMMACHU, SEM_FN_NAME (frvbf,cmmachu) },
28872   { FRVBF_INSN_MQMACHS, SEM_FN_NAME (frvbf,mqmachs) },
28873   { FRVBF_INSN_MQMACHU, SEM_FN_NAME (frvbf,mqmachu) },
28874   { FRVBF_INSN_CMQMACHS, SEM_FN_NAME (frvbf,cmqmachs) },
28875   { FRVBF_INSN_CMQMACHU, SEM_FN_NAME (frvbf,cmqmachu) },
28876   { FRVBF_INSN_MQXMACHS, SEM_FN_NAME (frvbf,mqxmachs) },
28877   { FRVBF_INSN_MQXMACXHS, SEM_FN_NAME (frvbf,mqxmacxhs) },
28878   { FRVBF_INSN_MQMACXHS, SEM_FN_NAME (frvbf,mqmacxhs) },
28879   { FRVBF_INSN_MCPXRS, SEM_FN_NAME (frvbf,mcpxrs) },
28880   { FRVBF_INSN_MCPXRU, SEM_FN_NAME (frvbf,mcpxru) },
28881   { FRVBF_INSN_MCPXIS, SEM_FN_NAME (frvbf,mcpxis) },
28882   { FRVBF_INSN_MCPXIU, SEM_FN_NAME (frvbf,mcpxiu) },
28883   { FRVBF_INSN_CMCPXRS, SEM_FN_NAME (frvbf,cmcpxrs) },
28884   { FRVBF_INSN_CMCPXRU, SEM_FN_NAME (frvbf,cmcpxru) },
28885   { FRVBF_INSN_CMCPXIS, SEM_FN_NAME (frvbf,cmcpxis) },
28886   { FRVBF_INSN_CMCPXIU, SEM_FN_NAME (frvbf,cmcpxiu) },
28887   { FRVBF_INSN_MQCPXRS, SEM_FN_NAME (frvbf,mqcpxrs) },
28888   { FRVBF_INSN_MQCPXRU, SEM_FN_NAME (frvbf,mqcpxru) },
28889   { FRVBF_INSN_MQCPXIS, SEM_FN_NAME (frvbf,mqcpxis) },
28890   { FRVBF_INSN_MQCPXIU, SEM_FN_NAME (frvbf,mqcpxiu) },
28891   { FRVBF_INSN_MEXPDHW, SEM_FN_NAME (frvbf,mexpdhw) },
28892   { FRVBF_INSN_CMEXPDHW, SEM_FN_NAME (frvbf,cmexpdhw) },
28893   { FRVBF_INSN_MEXPDHD, SEM_FN_NAME (frvbf,mexpdhd) },
28894   { FRVBF_INSN_CMEXPDHD, SEM_FN_NAME (frvbf,cmexpdhd) },
28895   { FRVBF_INSN_MPACKH, SEM_FN_NAME (frvbf,mpackh) },
28896   { FRVBF_INSN_MDPACKH, SEM_FN_NAME (frvbf,mdpackh) },
28897   { FRVBF_INSN_MUNPACKH, SEM_FN_NAME (frvbf,munpackh) },
28898   { FRVBF_INSN_MDUNPACKH, SEM_FN_NAME (frvbf,mdunpackh) },
28899   { FRVBF_INSN_MBTOH, SEM_FN_NAME (frvbf,mbtoh) },
28900   { FRVBF_INSN_CMBTOH, SEM_FN_NAME (frvbf,cmbtoh) },
28901   { FRVBF_INSN_MHTOB, SEM_FN_NAME (frvbf,mhtob) },
28902   { FRVBF_INSN_CMHTOB, SEM_FN_NAME (frvbf,cmhtob) },
28903   { FRVBF_INSN_MBTOHE, SEM_FN_NAME (frvbf,mbtohe) },
28904   { FRVBF_INSN_CMBTOHE, SEM_FN_NAME (frvbf,cmbtohe) },
28905   { FRVBF_INSN_MNOP, SEM_FN_NAME (frvbf,mnop) },
28906   { FRVBF_INSN_MCLRACC_0, SEM_FN_NAME (frvbf,mclracc_0) },
28907   { FRVBF_INSN_MCLRACC_1, SEM_FN_NAME (frvbf,mclracc_1) },
28908   { FRVBF_INSN_MRDACC, SEM_FN_NAME (frvbf,mrdacc) },
28909   { FRVBF_INSN_MRDACCG, SEM_FN_NAME (frvbf,mrdaccg) },
28910   { FRVBF_INSN_MWTACC, SEM_FN_NAME (frvbf,mwtacc) },
28911   { FRVBF_INSN_MWTACCG, SEM_FN_NAME (frvbf,mwtaccg) },
28912   { FRVBF_INSN_MCOP1, SEM_FN_NAME (frvbf,mcop1) },
28913   { FRVBF_INSN_MCOP2, SEM_FN_NAME (frvbf,mcop2) },
28914   { FRVBF_INSN_FNOP, SEM_FN_NAME (frvbf,fnop) },
28915   { 0, 0 }
28916 };
28917
28918 /* Add the semantic fns to IDESC_TABLE.  */
28919
28920 void
28921 SEM_FN_NAME (frvbf,init_idesc_table) (SIM_CPU *current_cpu)
28922 {
28923   IDESC *idesc_table = CPU_IDESC (current_cpu);
28924   const struct sem_fn_desc *sf;
28925   int mach_num = MACH_NUM (CPU_MACH (current_cpu));
28926
28927   for (sf = &sem_fns[0]; sf->fn != 0; ++sf)
28928     {
28929       const CGEN_INSN *insn = idesc_table[sf->index].idata;
28930       int valid_p = (CGEN_INSN_VIRTUAL_P (insn)
28931                      || CGEN_INSN_MACH_HAS_P (insn, mach_num));
28932 #if FAST_P
28933       if (valid_p)
28934         idesc_table[sf->index].sem_fast = sf->fn;
28935       else
28936         idesc_table[sf->index].sem_fast = SEM_FN_NAME (frvbf,x_invalid);
28937 #else
28938       if (valid_p)
28939         idesc_table[sf->index].sem_full = sf->fn;
28940       else
28941         idesc_table[sf->index].sem_full = SEM_FN_NAME (frvbf,x_invalid);
28942 #endif
28943     }
28944 }
28945