OSDN Git Service

e1f9a96dcc482627e6c451dc99f0e9f1433f6d24
[pf3gnuchains/pf3gnuchains3x.git] / sim / frv / sem.c
1 /* Simulator instruction semantics for frvbf.
2
3 THIS FILE IS MACHINE GENERATED WITH CGEN.
4
5 Copyright 1996-2009 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, write to the Free Software Foundation, Inc.,
21    51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
22
23 */
24
25 #define WANT_CPU frvbf
26 #define WANT_CPU_FRVBF
27
28 #include "sim-main.h"
29 #include "cgen-mem.h"
30 #include "cgen-ops.h"
31
32 #undef GET_ATTR
33 #if defined (__STDC__) || defined (ALMOST_STDC) || defined (HAVE_STRINGIZE)
34 #define GET_ATTR(cpu, num, attr) CGEN_ATTR_VALUE (NULL, abuf->idesc->attrs, CGEN_INSN_##attr)
35 #else
36 #define GET_ATTR(cpu, num, attr) CGEN_ATTR_VALUE (NULL, abuf->idesc->attrs, CGEN_INSN_/**/attr)
37 #endif
38
39 /* This is used so that we can compile two copies of the semantic code,
40    one with full feature support and one without that runs fast(er).
41    FAST_P, when desired, is defined on the command line, -DFAST_P=1.  */
42 #if FAST_P
43 #define SEM_FN_NAME(cpu,fn) XCONCAT3 (cpu,_semf_,fn)
44 #undef TRACE_RESULT
45 #define TRACE_RESULT(cpu, abuf, name, type, val)
46 #else
47 #define SEM_FN_NAME(cpu,fn) XCONCAT3 (cpu,_sem_,fn)
48 #endif
49
50 /* x-invalid: --invalid-- */
51
52 static SEM_PC
53 SEM_FN_NAME (frvbf,x_invalid) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
54 {
55 #define FLD(f) abuf->fields.fmt_empty.f
56   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
57   int UNUSED written = 0;
58   IADDR UNUSED pc = abuf->addr;
59   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 0);
60
61   {
62     /* Update the recorded pc in the cpu state struct.
63        Only necessary for WITH_SCACHE case, but to avoid the
64        conditional compilation ....  */
65     SET_H_PC (pc);
66     /* Virtual insns have zero size.  Overwrite vpc with address of next insn
67        using the default-insn-bitsize spec.  When executing insns in parallel
68        we may want to queue the fault and continue execution.  */
69     vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
70     vpc = sim_engine_invalid_insn (current_cpu, pc, vpc);
71   }
72
73   return vpc;
74 #undef FLD
75 }
76
77 /* x-after: --after-- */
78
79 static SEM_PC
80 SEM_FN_NAME (frvbf,x_after) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
81 {
82 #define FLD(f) abuf->fields.fmt_empty.f
83   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
84   int UNUSED written = 0;
85   IADDR UNUSED pc = abuf->addr;
86   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 0);
87
88   {
89 #if WITH_SCACHE_PBB_FRVBF
90     frvbf_pbb_after (current_cpu, sem_arg);
91 #endif
92   }
93
94   return vpc;
95 #undef FLD
96 }
97
98 /* x-before: --before-- */
99
100 static SEM_PC
101 SEM_FN_NAME (frvbf,x_before) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
102 {
103 #define FLD(f) abuf->fields.fmt_empty.f
104   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
105   int UNUSED written = 0;
106   IADDR UNUSED pc = abuf->addr;
107   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 0);
108
109   {
110 #if WITH_SCACHE_PBB_FRVBF
111     frvbf_pbb_before (current_cpu, sem_arg);
112 #endif
113   }
114
115   return vpc;
116 #undef FLD
117 }
118
119 /* x-cti-chain: --cti-chain-- */
120
121 static SEM_PC
122 SEM_FN_NAME (frvbf,x_cti_chain) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
123 {
124 #define FLD(f) abuf->fields.fmt_empty.f
125   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
126   int UNUSED written = 0;
127   IADDR UNUSED pc = abuf->addr;
128   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 0);
129
130   {
131 #if WITH_SCACHE_PBB_FRVBF
132 #ifdef DEFINE_SWITCH
133     vpc = frvbf_pbb_cti_chain (current_cpu, sem_arg,
134                                pbb_br_type, pbb_br_npc);
135     BREAK (sem);
136 #else
137     /* FIXME: Allow provision of explicit ifmt spec in insn spec.  */
138     vpc = frvbf_pbb_cti_chain (current_cpu, sem_arg,
139                                CPU_PBB_BR_TYPE (current_cpu),
140                                CPU_PBB_BR_NPC (current_cpu));
141 #endif
142 #endif
143   }
144
145   return vpc;
146 #undef FLD
147 }
148
149 /* x-chain: --chain-- */
150
151 static SEM_PC
152 SEM_FN_NAME (frvbf,x_chain) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
153 {
154 #define FLD(f) abuf->fields.fmt_empty.f
155   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
156   int UNUSED written = 0;
157   IADDR UNUSED pc = abuf->addr;
158   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 0);
159
160   {
161 #if WITH_SCACHE_PBB_FRVBF
162     vpc = frvbf_pbb_chain (current_cpu, sem_arg);
163 #ifdef DEFINE_SWITCH
164     BREAK (sem);
165 #endif
166 #endif
167   }
168
169   return vpc;
170 #undef FLD
171 }
172
173 /* x-begin: --begin-- */
174
175 static SEM_PC
176 SEM_FN_NAME (frvbf,x_begin) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
177 {
178 #define FLD(f) abuf->fields.fmt_empty.f
179   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
180   int UNUSED written = 0;
181   IADDR UNUSED pc = abuf->addr;
182   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 0);
183
184   {
185 #if WITH_SCACHE_PBB_FRVBF
186 #if defined DEFINE_SWITCH || defined FAST_P
187     /* In the switch case FAST_P is a constant, allowing several optimizations
188        in any called inline functions.  */
189     vpc = frvbf_pbb_begin (current_cpu, FAST_P);
190 #else
191 #if 0 /* cgen engine can't handle dynamic fast/full switching yet.  */
192     vpc = frvbf_pbb_begin (current_cpu, STATE_RUN_FAST_P (CPU_STATE (current_cpu)));
193 #else
194     vpc = frvbf_pbb_begin (current_cpu, 0);
195 #endif
196 #endif
197 #endif
198   }
199
200   return vpc;
201 #undef FLD
202 }
203
204 /* add: add$pack $GRi,$GRj,$GRk */
205
206 static SEM_PC
207 SEM_FN_NAME (frvbf,add) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
208 {
209 #define FLD(f) abuf->fields.sfmt_addcc.f
210   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
211   int UNUSED written = 0;
212   IADDR UNUSED pc = abuf->addr;
213   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
214
215   {
216     SI opval = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
217     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
218     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
219   }
220
221   return vpc;
222 #undef FLD
223 }
224
225 /* sub: sub$pack $GRi,$GRj,$GRk */
226
227 static SEM_PC
228 SEM_FN_NAME (frvbf,sub) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
229 {
230 #define FLD(f) abuf->fields.sfmt_addcc.f
231   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
232   int UNUSED written = 0;
233   IADDR UNUSED pc = abuf->addr;
234   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
235
236   {
237     SI opval = SUBSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
238     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
239     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
240   }
241
242   return vpc;
243 #undef FLD
244 }
245
246 /* and: and$pack $GRi,$GRj,$GRk */
247
248 static SEM_PC
249 SEM_FN_NAME (frvbf,and) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
250 {
251 #define FLD(f) abuf->fields.sfmt_addcc.f
252   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
253   int UNUSED written = 0;
254   IADDR UNUSED pc = abuf->addr;
255   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
256
257   {
258     SI opval = ANDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
259     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
260     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
261   }
262
263   return vpc;
264 #undef FLD
265 }
266
267 /* or: or$pack $GRi,$GRj,$GRk */
268
269 static SEM_PC
270 SEM_FN_NAME (frvbf,or) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
271 {
272 #define FLD(f) abuf->fields.sfmt_addcc.f
273   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
274   int UNUSED written = 0;
275   IADDR UNUSED pc = abuf->addr;
276   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
277
278   {
279     SI opval = ORSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
280     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
281     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
282   }
283
284   return vpc;
285 #undef FLD
286 }
287
288 /* xor: xor$pack $GRi,$GRj,$GRk */
289
290 static SEM_PC
291 SEM_FN_NAME (frvbf,xor) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
292 {
293 #define FLD(f) abuf->fields.sfmt_addcc.f
294   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
295   int UNUSED written = 0;
296   IADDR UNUSED pc = abuf->addr;
297   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
298
299   {
300     SI opval = XORSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
301     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
302     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
303   }
304
305   return vpc;
306 #undef FLD
307 }
308
309 /* not: not$pack $GRj,$GRk */
310
311 static SEM_PC
312 SEM_FN_NAME (frvbf,not) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
313 {
314 #define FLD(f) abuf->fields.sfmt_scutss.f
315   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
316   int UNUSED written = 0;
317   IADDR UNUSED pc = abuf->addr;
318   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
319
320   {
321     SI opval = INVSI (GET_H_GR (FLD (f_GRj)));
322     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
323     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
324   }
325
326   return vpc;
327 #undef FLD
328 }
329
330 /* sdiv: sdiv$pack $GRi,$GRj,$GRk */
331
332 static SEM_PC
333 SEM_FN_NAME (frvbf,sdiv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
334 {
335 #define FLD(f) abuf->fields.sfmt_addcc.f
336   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
337   int UNUSED written = 0;
338   IADDR UNUSED pc = abuf->addr;
339   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
340
341 {
342 frvbf_signed_integer_divide (current_cpu, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), FLD (f_GRk), 0);
343 ; /*clobber*/
344 }
345
346   return vpc;
347 #undef FLD
348 }
349
350 /* nsdiv: nsdiv$pack $GRi,$GRj,$GRk */
351
352 static SEM_PC
353 SEM_FN_NAME (frvbf,nsdiv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
354 {
355 #define FLD(f) abuf->fields.sfmt_addcc.f
356   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
357   int UNUSED written = 0;
358   IADDR UNUSED pc = abuf->addr;
359   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
360
361 {
362 frvbf_signed_integer_divide (current_cpu, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), FLD (f_GRk), 1);
363 ; /*clobber*/
364 }
365
366   return vpc;
367 #undef FLD
368 }
369
370 /* udiv: udiv$pack $GRi,$GRj,$GRk */
371
372 static SEM_PC
373 SEM_FN_NAME (frvbf,udiv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
374 {
375 #define FLD(f) abuf->fields.sfmt_addcc.f
376   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
377   int UNUSED written = 0;
378   IADDR UNUSED pc = abuf->addr;
379   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
380
381 {
382 frvbf_unsigned_integer_divide (current_cpu, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), FLD (f_GRk), 0);
383 ; /*clobber*/
384 }
385
386   return vpc;
387 #undef FLD
388 }
389
390 /* nudiv: nudiv$pack $GRi,$GRj,$GRk */
391
392 static SEM_PC
393 SEM_FN_NAME (frvbf,nudiv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
394 {
395 #define FLD(f) abuf->fields.sfmt_addcc.f
396   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
397   int UNUSED written = 0;
398   IADDR UNUSED pc = abuf->addr;
399   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
400
401 {
402 frvbf_unsigned_integer_divide (current_cpu, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), FLD (f_GRk), 1);
403 ; /*clobber*/
404 }
405
406   return vpc;
407 #undef FLD
408 }
409
410 /* smul: smul$pack $GRi,$GRj,$GRdoublek */
411
412 static SEM_PC
413 SEM_FN_NAME (frvbf,smul) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
414 {
415 #define FLD(f) abuf->fields.sfmt_smulcc.f
416   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
417   int UNUSED written = 0;
418   IADDR UNUSED pc = abuf->addr;
419   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
420
421   {
422     DI opval = MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi))), EXTSIDI (GET_H_GR (FLD (f_GRj))));
423     sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
424     TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
425   }
426
427   return vpc;
428 #undef FLD
429 }
430
431 /* umul: umul$pack $GRi,$GRj,$GRdoublek */
432
433 static SEM_PC
434 SEM_FN_NAME (frvbf,umul) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
435 {
436 #define FLD(f) abuf->fields.sfmt_smulcc.f
437   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
438   int UNUSED written = 0;
439   IADDR UNUSED pc = abuf->addr;
440   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
441
442   {
443     DI opval = MULDI (ZEXTSIDI (GET_H_GR (FLD (f_GRi))), ZEXTSIDI (GET_H_GR (FLD (f_GRj))));
444     sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
445     TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
446   }
447
448   return vpc;
449 #undef FLD
450 }
451
452 /* smu: smu$pack $GRi,$GRj */
453
454 static SEM_PC
455 SEM_FN_NAME (frvbf,smu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
456 {
457 #define FLD(f) abuf->fields.sfmt_smass.f
458   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
459   int UNUSED written = 0;
460   IADDR UNUSED pc = abuf->addr;
461   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
462
463   {
464     DI opval = MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi))), EXTSIDI (GET_H_GR (FLD (f_GRj))));
465     sim_queue_fn_di_write (current_cpu, frvbf_h_iacc0_set, ((UINT) 0), opval);
466     TRACE_RESULT (current_cpu, abuf, "iacc0", 'D', opval);
467   }
468
469   return vpc;
470 #undef FLD
471 }
472
473 /* smass: smass$pack $GRi,$GRj */
474
475 static SEM_PC
476 SEM_FN_NAME (frvbf,smass) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
477 {
478 #define FLD(f) abuf->fields.sfmt_smass.f
479   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
480   int UNUSED written = 0;
481   IADDR UNUSED pc = abuf->addr;
482   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
483
484   {
485     DI opval = (ANDIF (ANDIF (GTDI (MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi))), EXTSIDI (GET_H_GR (FLD (f_GRj)))), 0), GTDI (GET_H_IACC0 (((UINT) 0)), 0)), LTDI (SUBDI (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))))));
486     sim_queue_fn_di_write (current_cpu, frvbf_h_iacc0_set, ((UINT) 0), opval);
487     TRACE_RESULT (current_cpu, abuf, "iacc0", 'D', opval);
488   }
489
490   return vpc;
491 #undef FLD
492 }
493
494 /* smsss: smsss$pack $GRi,$GRj */
495
496 static SEM_PC
497 SEM_FN_NAME (frvbf,smsss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
498 {
499 #define FLD(f) abuf->fields.sfmt_smass.f
500   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
501   int UNUSED written = 0;
502   IADDR UNUSED pc = abuf->addr;
503   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
504
505   {
506     DI opval = (ANDIF (ANDIF (LTDI (MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi))), EXTSIDI (GET_H_GR (FLD (f_GRj)))), 0), GTDI (GET_H_IACC0 (((UINT) 0)), 0)), LTDI (ADDDI (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))))));
507     sim_queue_fn_di_write (current_cpu, frvbf_h_iacc0_set, ((UINT) 0), opval);
508     TRACE_RESULT (current_cpu, abuf, "iacc0", 'D', opval);
509   }
510
511   return vpc;
512 #undef FLD
513 }
514
515 /* sll: sll$pack $GRi,$GRj,$GRk */
516
517 static SEM_PC
518 SEM_FN_NAME (frvbf,sll) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
519 {
520 #define FLD(f) abuf->fields.sfmt_addcc.f
521   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
522   int UNUSED written = 0;
523   IADDR UNUSED pc = abuf->addr;
524   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
525
526   {
527     SI opval = SLLSI (GET_H_GR (FLD (f_GRi)), ANDSI (GET_H_GR (FLD (f_GRj)), 31));
528     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
529     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
530   }
531
532   return vpc;
533 #undef FLD
534 }
535
536 /* srl: srl$pack $GRi,$GRj,$GRk */
537
538 static SEM_PC
539 SEM_FN_NAME (frvbf,srl) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
540 {
541 #define FLD(f) abuf->fields.sfmt_addcc.f
542   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
543   int UNUSED written = 0;
544   IADDR UNUSED pc = abuf->addr;
545   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
546
547   {
548     SI opval = SRLSI (GET_H_GR (FLD (f_GRi)), ANDSI (GET_H_GR (FLD (f_GRj)), 31));
549     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
550     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
551   }
552
553   return vpc;
554 #undef FLD
555 }
556
557 /* sra: sra$pack $GRi,$GRj,$GRk */
558
559 static SEM_PC
560 SEM_FN_NAME (frvbf,sra) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
561 {
562 #define FLD(f) abuf->fields.sfmt_addcc.f
563   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
564   int UNUSED written = 0;
565   IADDR UNUSED pc = abuf->addr;
566   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
567
568   {
569     SI opval = SRASI (GET_H_GR (FLD (f_GRi)), ANDSI (GET_H_GR (FLD (f_GRj)), 31));
570     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
571     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
572   }
573
574   return vpc;
575 #undef FLD
576 }
577
578 /* slass: slass$pack $GRi,$GRj,$GRk */
579
580 static SEM_PC
581 SEM_FN_NAME (frvbf,slass) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
582 {
583 #define FLD(f) abuf->fields.sfmt_addcc.f
584   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
585   int UNUSED written = 0;
586   IADDR UNUSED pc = abuf->addr;
587   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
588
589   {
590     SI opval = frvbf_shift_left_arith_saturate (current_cpu, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
591     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
592     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
593   }
594
595   return vpc;
596 #undef FLD
597 }
598
599 /* scutss: scutss$pack $GRj,$GRk */
600
601 static SEM_PC
602 SEM_FN_NAME (frvbf,scutss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
603 {
604 #define FLD(f) abuf->fields.sfmt_scutss.f
605   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
606   int UNUSED written = 0;
607   IADDR UNUSED pc = abuf->addr;
608   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
609
610   {
611     SI opval = frvbf_iacc_cut (current_cpu, GET_H_IACC0 (((UINT) 0)), GET_H_GR (FLD (f_GRj)));
612     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
613     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
614   }
615
616   return vpc;
617 #undef FLD
618 }
619
620 /* scan: scan$pack $GRi,$GRj,$GRk */
621
622 static SEM_PC
623 SEM_FN_NAME (frvbf,scan) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
624 {
625 #define FLD(f) abuf->fields.sfmt_addcc.f
626   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
627   int UNUSED written = 0;
628   IADDR UNUSED pc = abuf->addr;
629   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
630
631 {
632   SI tmp_tmp1;
633   SI tmp_tmp2;
634   tmp_tmp1 = GET_H_GR (FLD (f_GRi));
635   tmp_tmp2 = SRASI (GET_H_GR (FLD (f_GRj)), 1);
636   {
637     SI opval = frvbf_scan_result (current_cpu, XORSI (tmp_tmp1, tmp_tmp2));
638     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
639     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
640   }
641 }
642
643   return vpc;
644 #undef FLD
645 }
646
647 /* cadd: cadd$pack $GRi,$GRj,$GRk,$CCi,$cond */
648
649 static SEM_PC
650 SEM_FN_NAME (frvbf,cadd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
651 {
652 #define FLD(f) abuf->fields.sfmt_cswap.f
653   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
654   int UNUSED written = 0;
655   IADDR UNUSED pc = abuf->addr;
656   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
657
658 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
659   {
660     SI opval = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
661     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
662     written |= (1 << 4);
663     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
664   }
665 }
666
667   abuf->written = written;
668   return vpc;
669 #undef FLD
670 }
671
672 /* csub: csub$pack $GRi,$GRj,$GRk,$CCi,$cond */
673
674 static SEM_PC
675 SEM_FN_NAME (frvbf,csub) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
676 {
677 #define FLD(f) abuf->fields.sfmt_cswap.f
678   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
679   int UNUSED written = 0;
680   IADDR UNUSED pc = abuf->addr;
681   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
682
683 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
684   {
685     SI opval = SUBSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
686     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
687     written |= (1 << 4);
688     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
689   }
690 }
691
692   abuf->written = written;
693   return vpc;
694 #undef FLD
695 }
696
697 /* cand: cand$pack $GRi,$GRj,$GRk,$CCi,$cond */
698
699 static SEM_PC
700 SEM_FN_NAME (frvbf,cand) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
701 {
702 #define FLD(f) abuf->fields.sfmt_cswap.f
703   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
704   int UNUSED written = 0;
705   IADDR UNUSED pc = abuf->addr;
706   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
707
708 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
709   {
710     SI opval = ANDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
711     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
712     written |= (1 << 4);
713     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
714   }
715 }
716
717   abuf->written = written;
718   return vpc;
719 #undef FLD
720 }
721
722 /* cor: cor$pack $GRi,$GRj,$GRk,$CCi,$cond */
723
724 static SEM_PC
725 SEM_FN_NAME (frvbf,cor) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
726 {
727 #define FLD(f) abuf->fields.sfmt_cswap.f
728   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
729   int UNUSED written = 0;
730   IADDR UNUSED pc = abuf->addr;
731   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
732
733 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
734   {
735     SI opval = ORSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
736     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
737     written |= (1 << 4);
738     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
739   }
740 }
741
742   abuf->written = written;
743   return vpc;
744 #undef FLD
745 }
746
747 /* cxor: cxor$pack $GRi,$GRj,$GRk,$CCi,$cond */
748
749 static SEM_PC
750 SEM_FN_NAME (frvbf,cxor) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
751 {
752 #define FLD(f) abuf->fields.sfmt_cswap.f
753   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
754   int UNUSED written = 0;
755   IADDR UNUSED pc = abuf->addr;
756   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
757
758 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
759   {
760     SI opval = XORSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
761     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
762     written |= (1 << 4);
763     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
764   }
765 }
766
767   abuf->written = written;
768   return vpc;
769 #undef FLD
770 }
771
772 /* cnot: cnot$pack $GRj,$GRk,$CCi,$cond */
773
774 static SEM_PC
775 SEM_FN_NAME (frvbf,cnot) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
776 {
777 #define FLD(f) abuf->fields.sfmt_cswap.f
778   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
779   int UNUSED written = 0;
780   IADDR UNUSED pc = abuf->addr;
781   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
782
783 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
784   {
785     SI opval = INVSI (GET_H_GR (FLD (f_GRj)));
786     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
787     written |= (1 << 3);
788     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
789   }
790 }
791
792   abuf->written = written;
793   return vpc;
794 #undef FLD
795 }
796
797 /* csmul: csmul$pack $GRi,$GRj,$GRdoublek,$CCi,$cond */
798
799 static SEM_PC
800 SEM_FN_NAME (frvbf,csmul) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
801 {
802 #define FLD(f) abuf->fields.sfmt_clddu.f
803   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
804   int UNUSED written = 0;
805   IADDR UNUSED pc = abuf->addr;
806   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
807
808 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
809   {
810     DI opval = MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi))), EXTSIDI (GET_H_GR (FLD (f_GRj))));
811     sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
812     written |= (1 << 4);
813     TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
814   }
815 }
816
817   abuf->written = written;
818   return vpc;
819 #undef FLD
820 }
821
822 /* csdiv: csdiv$pack $GRi,$GRj,$GRk,$CCi,$cond */
823
824 static SEM_PC
825 SEM_FN_NAME (frvbf,csdiv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
826 {
827 #define FLD(f) abuf->fields.sfmt_cswap.f
828   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
829   int UNUSED written = 0;
830   IADDR UNUSED pc = abuf->addr;
831   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
832
833 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
834 {
835 frvbf_signed_integer_divide (current_cpu, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), FLD (f_GRk), 0);
836 ; /*clobber*/
837 }
838 }
839
840   abuf->written = written;
841   return vpc;
842 #undef FLD
843 }
844
845 /* cudiv: cudiv$pack $GRi,$GRj,$GRk,$CCi,$cond */
846
847 static SEM_PC
848 SEM_FN_NAME (frvbf,cudiv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
849 {
850 #define FLD(f) abuf->fields.sfmt_cswap.f
851   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
852   int UNUSED written = 0;
853   IADDR UNUSED pc = abuf->addr;
854   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
855
856 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
857 {
858 frvbf_unsigned_integer_divide (current_cpu, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), FLD (f_GRk), 0);
859 ; /*clobber*/
860 }
861 }
862
863   abuf->written = written;
864   return vpc;
865 #undef FLD
866 }
867
868 /* csll: csll$pack $GRi,$GRj,$GRk,$CCi,$cond */
869
870 static SEM_PC
871 SEM_FN_NAME (frvbf,csll) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
872 {
873 #define FLD(f) abuf->fields.sfmt_cswap.f
874   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
875   int UNUSED written = 0;
876   IADDR UNUSED pc = abuf->addr;
877   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
878
879 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
880   {
881     SI opval = SLLSI (GET_H_GR (FLD (f_GRi)), ANDSI (GET_H_GR (FLD (f_GRj)), 31));
882     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
883     written |= (1 << 4);
884     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
885   }
886 }
887
888   abuf->written = written;
889   return vpc;
890 #undef FLD
891 }
892
893 /* csrl: csrl$pack $GRi,$GRj,$GRk,$CCi,$cond */
894
895 static SEM_PC
896 SEM_FN_NAME (frvbf,csrl) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
897 {
898 #define FLD(f) abuf->fields.sfmt_cswap.f
899   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
900   int UNUSED written = 0;
901   IADDR UNUSED pc = abuf->addr;
902   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
903
904 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
905   {
906     SI opval = SRLSI (GET_H_GR (FLD (f_GRi)), ANDSI (GET_H_GR (FLD (f_GRj)), 31));
907     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
908     written |= (1 << 4);
909     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
910   }
911 }
912
913   abuf->written = written;
914   return vpc;
915 #undef FLD
916 }
917
918 /* csra: csra$pack $GRi,$GRj,$GRk,$CCi,$cond */
919
920 static SEM_PC
921 SEM_FN_NAME (frvbf,csra) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
922 {
923 #define FLD(f) abuf->fields.sfmt_cswap.f
924   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
925   int UNUSED written = 0;
926   IADDR UNUSED pc = abuf->addr;
927   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
928
929 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
930   {
931     SI opval = SRASI (GET_H_GR (FLD (f_GRi)), ANDSI (GET_H_GR (FLD (f_GRj)), 31));
932     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
933     written |= (1 << 4);
934     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
935   }
936 }
937
938   abuf->written = written;
939   return vpc;
940 #undef FLD
941 }
942
943 /* cscan: cscan$pack $GRi,$GRj,$GRk,$CCi,$cond */
944
945 static SEM_PC
946 SEM_FN_NAME (frvbf,cscan) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
947 {
948 #define FLD(f) abuf->fields.sfmt_cswap.f
949   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
950   int UNUSED written = 0;
951   IADDR UNUSED pc = abuf->addr;
952   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
953
954 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
955 {
956   SI tmp_tmp1;
957   SI tmp_tmp2;
958   tmp_tmp1 = GET_H_GR (FLD (f_GRi));
959   tmp_tmp2 = SRASI (GET_H_GR (FLD (f_GRj)), 1);
960   {
961     SI opval = frvbf_scan_result (current_cpu, XORSI (tmp_tmp1, tmp_tmp2));
962     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
963     written |= (1 << 4);
964     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
965   }
966 }
967 }
968
969   abuf->written = written;
970   return vpc;
971 #undef FLD
972 }
973
974 /* addcc: addcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
975
976 static SEM_PC
977 SEM_FN_NAME (frvbf,addcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
978 {
979 #define FLD(f) abuf->fields.sfmt_addcc.f
980   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
981   int UNUSED written = 0;
982   IADDR UNUSED pc = abuf->addr;
983   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
984
985 {
986   BI tmp_tmp;
987   QI tmp_cc;
988   SI tmp_result;
989   tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
990   tmp_tmp = ADDOFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), 0);
991 if (EQBI (tmp_tmp, 0)) {
992   tmp_cc = ANDQI (tmp_cc, 13);
993 } else {
994   tmp_cc = ORQI (tmp_cc, 2);
995 }
996   tmp_tmp = ADDCFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), 0);
997 if (EQBI (tmp_tmp, 0)) {
998   tmp_cc = ANDQI (tmp_cc, 14);
999 } else {
1000   tmp_cc = ORQI (tmp_cc, 1);
1001 }
1002   tmp_result = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
1003 if (EQSI (tmp_result, 0)) {
1004   tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
1005 } else {
1006 if (LTSI (tmp_result, 0)) {
1007   tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
1008 } else {
1009   tmp_cc = ANDQI (tmp_cc, 3);
1010 }
1011 }
1012   {
1013     SI opval = tmp_result;
1014     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1015     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1016   }
1017   {
1018     UQI opval = tmp_cc;
1019     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1020     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1021   }
1022 }
1023
1024   return vpc;
1025 #undef FLD
1026 }
1027
1028 /* subcc: subcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
1029
1030 static SEM_PC
1031 SEM_FN_NAME (frvbf,subcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1032 {
1033 #define FLD(f) abuf->fields.sfmt_addcc.f
1034   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1035   int UNUSED written = 0;
1036   IADDR UNUSED pc = abuf->addr;
1037   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1038
1039 {
1040   BI tmp_tmp;
1041   QI tmp_cc;
1042   SI tmp_result;
1043   tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
1044   tmp_tmp = SUBOFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), 0);
1045 if (EQBI (tmp_tmp, 0)) {
1046   tmp_cc = ANDQI (tmp_cc, 13);
1047 } else {
1048   tmp_cc = ORQI (tmp_cc, 2);
1049 }
1050   tmp_tmp = SUBCFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), 0);
1051 if (EQBI (tmp_tmp, 0)) {
1052   tmp_cc = ANDQI (tmp_cc, 14);
1053 } else {
1054   tmp_cc = ORQI (tmp_cc, 1);
1055 }
1056   tmp_result = SUBSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
1057 if (EQSI (tmp_result, 0)) {
1058   tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
1059 } else {
1060 if (LTSI (tmp_result, 0)) {
1061   tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
1062 } else {
1063   tmp_cc = ANDQI (tmp_cc, 3);
1064 }
1065 }
1066   {
1067     SI opval = tmp_result;
1068     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1069     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1070   }
1071   {
1072     UQI opval = tmp_cc;
1073     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1074     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1075   }
1076 }
1077
1078   return vpc;
1079 #undef FLD
1080 }
1081
1082 /* andcc: andcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
1083
1084 static SEM_PC
1085 SEM_FN_NAME (frvbf,andcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1086 {
1087 #define FLD(f) abuf->fields.sfmt_addcc.f
1088   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1089   int UNUSED written = 0;
1090   IADDR UNUSED pc = abuf->addr;
1091   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1092
1093 {
1094   SI tmp_tmp;
1095   tmp_tmp = ANDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
1096   {
1097     SI opval = tmp_tmp;
1098     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1099     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1100   }
1101 if (EQSI (tmp_tmp, 0)) {
1102   {
1103     UQI opval = ORQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 7), 4);
1104     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1105     written |= (1 << 4);
1106     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1107   }
1108 } else {
1109 if (LTSI (tmp_tmp, 0)) {
1110   {
1111     UQI opval = ORQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 11), 8);
1112     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1113     written |= (1 << 4);
1114     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1115   }
1116 } else {
1117   {
1118     UQI opval = ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 3);
1119     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1120     written |= (1 << 4);
1121     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1122   }
1123 }
1124 }
1125 }
1126
1127   abuf->written = written;
1128   return vpc;
1129 #undef FLD
1130 }
1131
1132 /* orcc: orcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
1133
1134 static SEM_PC
1135 SEM_FN_NAME (frvbf,orcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1136 {
1137 #define FLD(f) abuf->fields.sfmt_addcc.f
1138   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1139   int UNUSED written = 0;
1140   IADDR UNUSED pc = abuf->addr;
1141   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1142
1143 {
1144   SI tmp_tmp;
1145   tmp_tmp = ORSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
1146   {
1147     SI opval = tmp_tmp;
1148     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1149     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1150   }
1151 if (EQSI (tmp_tmp, 0)) {
1152   {
1153     UQI opval = ORQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 7), 4);
1154     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1155     written |= (1 << 4);
1156     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1157   }
1158 } else {
1159 if (LTSI (tmp_tmp, 0)) {
1160   {
1161     UQI opval = ORQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 11), 8);
1162     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1163     written |= (1 << 4);
1164     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1165   }
1166 } else {
1167   {
1168     UQI opval = ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 3);
1169     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1170     written |= (1 << 4);
1171     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1172   }
1173 }
1174 }
1175 }
1176
1177   abuf->written = written;
1178   return vpc;
1179 #undef FLD
1180 }
1181
1182 /* xorcc: xorcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
1183
1184 static SEM_PC
1185 SEM_FN_NAME (frvbf,xorcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1186 {
1187 #define FLD(f) abuf->fields.sfmt_addcc.f
1188   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1189   int UNUSED written = 0;
1190   IADDR UNUSED pc = abuf->addr;
1191   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1192
1193 {
1194   SI tmp_tmp;
1195   tmp_tmp = XORSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
1196   {
1197     SI opval = tmp_tmp;
1198     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1199     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1200   }
1201 if (EQSI (tmp_tmp, 0)) {
1202   {
1203     UQI opval = ORQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 7), 4);
1204     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1205     written |= (1 << 4);
1206     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1207   }
1208 } else {
1209 if (LTSI (tmp_tmp, 0)) {
1210   {
1211     UQI opval = ORQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 11), 8);
1212     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1213     written |= (1 << 4);
1214     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1215   }
1216 } else {
1217   {
1218     UQI opval = ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 3);
1219     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1220     written |= (1 << 4);
1221     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1222   }
1223 }
1224 }
1225 }
1226
1227   abuf->written = written;
1228   return vpc;
1229 #undef FLD
1230 }
1231
1232 /* sllcc: sllcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
1233
1234 static SEM_PC
1235 SEM_FN_NAME (frvbf,sllcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1236 {
1237 #define FLD(f) abuf->fields.sfmt_addcc.f
1238   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1239   int UNUSED written = 0;
1240   IADDR UNUSED pc = abuf->addr;
1241   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1242
1243 {
1244   SI tmp_shift;
1245   SI tmp_tmp;
1246   QI tmp_cc;
1247   tmp_shift = ANDSI (GET_H_GR (FLD (f_GRj)), 31);
1248   tmp_cc = frvbf_set_icc_for_shift_left (current_cpu, GET_H_GR (FLD (f_GRi)), tmp_shift, CPU (h_iccr[FLD (f_ICCi_1)]));
1249   tmp_tmp = SLLSI (GET_H_GR (FLD (f_GRi)), tmp_shift);
1250   {
1251     SI opval = tmp_tmp;
1252     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1253     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1254   }
1255 if (EQSI (tmp_tmp, 0)) {
1256   tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
1257 } else {
1258 if (LTSI (tmp_tmp, 0)) {
1259   tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
1260 } else {
1261   tmp_cc = ANDQI (tmp_cc, 3);
1262 }
1263 }
1264   {
1265     UQI opval = tmp_cc;
1266     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1267     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1268   }
1269 }
1270
1271   return vpc;
1272 #undef FLD
1273 }
1274
1275 /* srlcc: srlcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
1276
1277 static SEM_PC
1278 SEM_FN_NAME (frvbf,srlcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1279 {
1280 #define FLD(f) abuf->fields.sfmt_addcc.f
1281   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1282   int UNUSED written = 0;
1283   IADDR UNUSED pc = abuf->addr;
1284   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1285
1286 {
1287   SI tmp_shift;
1288   SI tmp_tmp;
1289   QI tmp_cc;
1290   tmp_shift = ANDSI (GET_H_GR (FLD (f_GRj)), 31);
1291   tmp_cc = frvbf_set_icc_for_shift_right (current_cpu, GET_H_GR (FLD (f_GRi)), tmp_shift, CPU (h_iccr[FLD (f_ICCi_1)]));
1292   tmp_tmp = SRLSI (GET_H_GR (FLD (f_GRi)), tmp_shift);
1293   {
1294     SI opval = tmp_tmp;
1295     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1296     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1297   }
1298 if (EQSI (tmp_tmp, 0)) {
1299   tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
1300 } else {
1301 if (LTSI (tmp_tmp, 0)) {
1302   tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
1303 } else {
1304   tmp_cc = ANDQI (tmp_cc, 3);
1305 }
1306 }
1307   {
1308     UQI opval = tmp_cc;
1309     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1310     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1311   }
1312 }
1313
1314   return vpc;
1315 #undef FLD
1316 }
1317
1318 /* sracc: sracc$pack $GRi,$GRj,$GRk,$ICCi_1 */
1319
1320 static SEM_PC
1321 SEM_FN_NAME (frvbf,sracc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1322 {
1323 #define FLD(f) abuf->fields.sfmt_addcc.f
1324   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1325   int UNUSED written = 0;
1326   IADDR UNUSED pc = abuf->addr;
1327   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1328
1329 {
1330   SI tmp_shift;
1331   SI tmp_tmp;
1332   QI tmp_cc;
1333   tmp_shift = ANDSI (GET_H_GR (FLD (f_GRj)), 31);
1334   tmp_cc = frvbf_set_icc_for_shift_right (current_cpu, GET_H_GR (FLD (f_GRi)), tmp_shift, CPU (h_iccr[FLD (f_ICCi_1)]));
1335   tmp_tmp = SRASI (GET_H_GR (FLD (f_GRi)), tmp_shift);
1336   {
1337     SI opval = tmp_tmp;
1338     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1339     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1340   }
1341 if (EQSI (tmp_tmp, 0)) {
1342   tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
1343 } else {
1344 if (LTSI (tmp_tmp, 0)) {
1345   tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
1346 } else {
1347   tmp_cc = ANDQI (tmp_cc, 3);
1348 }
1349 }
1350   {
1351     UQI opval = tmp_cc;
1352     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1353     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1354   }
1355 }
1356
1357   return vpc;
1358 #undef FLD
1359 }
1360
1361 /* smulcc: smulcc$pack $GRi,$GRj,$GRdoublek,$ICCi_1 */
1362
1363 static SEM_PC
1364 SEM_FN_NAME (frvbf,smulcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1365 {
1366 #define FLD(f) abuf->fields.sfmt_smulcc.f
1367   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1368   int UNUSED written = 0;
1369   IADDR UNUSED pc = abuf->addr;
1370   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1371
1372 {
1373   DI tmp_tmp;
1374   QI tmp_cc;
1375   tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
1376   tmp_tmp = MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi))), EXTSIDI (GET_H_GR (FLD (f_GRj))));
1377 if (EQDI (SRLDI (tmp_tmp, 63), 0)) {
1378   tmp_cc = ANDQI (tmp_cc, 7);
1379 } else {
1380   tmp_cc = ORQI (tmp_cc, 8);
1381 }
1382 if (EQBI (EQDI (tmp_tmp, 0), 0)) {
1383   tmp_cc = ANDQI (tmp_cc, 11);
1384 } else {
1385   tmp_cc = ORQI (tmp_cc, 4);
1386 }
1387   {
1388     DI opval = tmp_tmp;
1389     sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
1390     TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
1391   }
1392   {
1393     UQI opval = tmp_cc;
1394     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1395     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1396   }
1397 }
1398
1399   return vpc;
1400 #undef FLD
1401 }
1402
1403 /* umulcc: umulcc$pack $GRi,$GRj,$GRdoublek,$ICCi_1 */
1404
1405 static SEM_PC
1406 SEM_FN_NAME (frvbf,umulcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1407 {
1408 #define FLD(f) abuf->fields.sfmt_smulcc.f
1409   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1410   int UNUSED written = 0;
1411   IADDR UNUSED pc = abuf->addr;
1412   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1413
1414 {
1415   DI tmp_tmp;
1416   QI tmp_cc;
1417   tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
1418   tmp_tmp = MULDI (ZEXTSIDI (GET_H_GR (FLD (f_GRi))), ZEXTSIDI (GET_H_GR (FLD (f_GRj))));
1419 if (EQDI (SRLDI (tmp_tmp, 63), 0)) {
1420   tmp_cc = ANDQI (tmp_cc, 7);
1421 } else {
1422   tmp_cc = ORQI (tmp_cc, 8);
1423 }
1424 if (EQBI (EQDI (tmp_tmp, 0), 0)) {
1425   tmp_cc = ANDQI (tmp_cc, 11);
1426 } else {
1427   tmp_cc = ORQI (tmp_cc, 4);
1428 }
1429   {
1430     DI opval = tmp_tmp;
1431     sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
1432     TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
1433   }
1434   {
1435     UQI opval = tmp_cc;
1436     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1437     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1438   }
1439 }
1440
1441   return vpc;
1442 #undef FLD
1443 }
1444
1445 /* caddcc: caddcc$pack $GRi,$GRj,$GRk,$CCi,$cond */
1446
1447 static SEM_PC
1448 SEM_FN_NAME (frvbf,caddcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1449 {
1450 #define FLD(f) abuf->fields.sfmt_caddcc.f
1451   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1452   int UNUSED written = 0;
1453   IADDR UNUSED pc = abuf->addr;
1454   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1455
1456 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
1457 {
1458   BI tmp_tmp;
1459   QI tmp_cc;
1460   SI tmp_result;
1461   tmp_cc = CPU (h_iccr[ANDSI (FLD (f_CCi), 3)]);
1462   tmp_tmp = ADDOFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), 0);
1463 if (EQBI (tmp_tmp, 0)) {
1464   tmp_cc = ANDQI (tmp_cc, 13);
1465 } else {
1466   tmp_cc = ORQI (tmp_cc, 2);
1467 }
1468   tmp_tmp = ADDCFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), 0);
1469 if (EQBI (tmp_tmp, 0)) {
1470   tmp_cc = ANDQI (tmp_cc, 14);
1471 } else {
1472   tmp_cc = ORQI (tmp_cc, 1);
1473 }
1474   tmp_result = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
1475 if (EQSI (tmp_result, 0)) {
1476   tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
1477 } else {
1478 if (LTSI (tmp_result, 0)) {
1479   tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
1480 } else {
1481   tmp_cc = ANDQI (tmp_cc, 3);
1482 }
1483 }
1484   {
1485     SI opval = tmp_result;
1486     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1487     written |= (1 << 6);
1488     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1489   }
1490   {
1491     UQI opval = tmp_cc;
1492     sim_queue_qi_write (current_cpu, & CPU (h_iccr[ANDSI (FLD (f_CCi), 3)]), opval);
1493     written |= (1 << 7);
1494     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1495   }
1496 }
1497 }
1498
1499   abuf->written = written;
1500   return vpc;
1501 #undef FLD
1502 }
1503
1504 /* csubcc: csubcc$pack $GRi,$GRj,$GRk,$CCi,$cond */
1505
1506 static SEM_PC
1507 SEM_FN_NAME (frvbf,csubcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1508 {
1509 #define FLD(f) abuf->fields.sfmt_caddcc.f
1510   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1511   int UNUSED written = 0;
1512   IADDR UNUSED pc = abuf->addr;
1513   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1514
1515 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
1516 {
1517   BI tmp_tmp;
1518   QI tmp_cc;
1519   SI tmp_result;
1520   tmp_cc = CPU (h_iccr[ANDSI (FLD (f_CCi), 3)]);
1521   tmp_tmp = SUBOFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), 0);
1522 if (EQBI (tmp_tmp, 0)) {
1523   tmp_cc = ANDQI (tmp_cc, 13);
1524 } else {
1525   tmp_cc = ORQI (tmp_cc, 2);
1526 }
1527   tmp_tmp = SUBCFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), 0);
1528 if (EQBI (tmp_tmp, 0)) {
1529   tmp_cc = ANDQI (tmp_cc, 14);
1530 } else {
1531   tmp_cc = ORQI (tmp_cc, 1);
1532 }
1533   tmp_result = SUBSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
1534 if (EQSI (tmp_result, 0)) {
1535   tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
1536 } else {
1537 if (LTSI (tmp_result, 0)) {
1538   tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
1539 } else {
1540   tmp_cc = ANDQI (tmp_cc, 3);
1541 }
1542 }
1543   {
1544     SI opval = tmp_result;
1545     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1546     written |= (1 << 6);
1547     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1548   }
1549   {
1550     UQI opval = tmp_cc;
1551     sim_queue_qi_write (current_cpu, & CPU (h_iccr[ANDSI (FLD (f_CCi), 3)]), opval);
1552     written |= (1 << 7);
1553     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1554   }
1555 }
1556 }
1557
1558   abuf->written = written;
1559   return vpc;
1560 #undef FLD
1561 }
1562
1563 /* csmulcc: csmulcc$pack $GRi,$GRj,$GRdoublek,$CCi,$cond */
1564
1565 static SEM_PC
1566 SEM_FN_NAME (frvbf,csmulcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1567 {
1568 #define FLD(f) abuf->fields.sfmt_csmulcc.f
1569   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1570   int UNUSED written = 0;
1571   IADDR UNUSED pc = abuf->addr;
1572   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1573
1574 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
1575 {
1576   DI tmp_tmp;
1577   QI tmp_cc;
1578   tmp_cc = CPU (h_iccr[ANDSI (FLD (f_CCi), 3)]);
1579   tmp_tmp = MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi))), EXTSIDI (GET_H_GR (FLD (f_GRj))));
1580 if (EQDI (SRLDI (tmp_tmp, 63), 0)) {
1581   tmp_cc = ANDQI (tmp_cc, 7);
1582 } else {
1583   tmp_cc = ORQI (tmp_cc, 8);
1584 }
1585 if (EQBI (EQDI (tmp_tmp, 0), 0)) {
1586   tmp_cc = ANDQI (tmp_cc, 11);
1587 } else {
1588   tmp_cc = ORQI (tmp_cc, 4);
1589 }
1590   {
1591     DI opval = tmp_tmp;
1592     sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
1593     written |= (1 << 6);
1594     TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
1595   }
1596   {
1597     UQI opval = tmp_cc;
1598     sim_queue_qi_write (current_cpu, & CPU (h_iccr[ANDSI (FLD (f_CCi), 3)]), opval);
1599     written |= (1 << 7);
1600     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1601   }
1602 }
1603 }
1604
1605   abuf->written = written;
1606   return vpc;
1607 #undef FLD
1608 }
1609
1610 /* candcc: candcc$pack $GRi,$GRj,$GRk,$CCi,$cond */
1611
1612 static SEM_PC
1613 SEM_FN_NAME (frvbf,candcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1614 {
1615 #define FLD(f) abuf->fields.sfmt_caddcc.f
1616   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1617   int UNUSED written = 0;
1618   IADDR UNUSED pc = abuf->addr;
1619   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1620
1621 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
1622 {
1623   SI tmp_tmp;
1624   tmp_tmp = ANDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
1625   {
1626     SI opval = tmp_tmp;
1627     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1628     written |= (1 << 6);
1629     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1630   }
1631 if (EQSI (tmp_tmp, 0)) {
1632   {
1633     UQI opval = ORQI (ANDQI (CPU (h_iccr[ANDSI (FLD (f_CCi), 3)]), 7), 4);
1634     sim_queue_qi_write (current_cpu, & CPU (h_iccr[ANDSI (FLD (f_CCi), 3)]), opval);
1635     written |= (1 << 7);
1636     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1637   }
1638 } else {
1639 if (LTSI (tmp_tmp, 0)) {
1640   {
1641     UQI opval = ORQI (ANDQI (CPU (h_iccr[ANDSI (FLD (f_CCi), 3)]), 11), 8);
1642     sim_queue_qi_write (current_cpu, & CPU (h_iccr[ANDSI (FLD (f_CCi), 3)]), opval);
1643     written |= (1 << 7);
1644     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1645   }
1646 } else {
1647   {
1648     UQI opval = ANDQI (CPU (h_iccr[ANDSI (FLD (f_CCi), 3)]), 3);
1649     sim_queue_qi_write (current_cpu, & CPU (h_iccr[ANDSI (FLD (f_CCi), 3)]), opval);
1650     written |= (1 << 7);
1651     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1652   }
1653 }
1654 }
1655 }
1656 }
1657
1658   abuf->written = written;
1659   return vpc;
1660 #undef FLD
1661 }
1662
1663 /* corcc: corcc$pack $GRi,$GRj,$GRk,$CCi,$cond */
1664
1665 static SEM_PC
1666 SEM_FN_NAME (frvbf,corcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1667 {
1668 #define FLD(f) abuf->fields.sfmt_caddcc.f
1669   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1670   int UNUSED written = 0;
1671   IADDR UNUSED pc = abuf->addr;
1672   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1673
1674 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
1675 {
1676   SI tmp_tmp;
1677   tmp_tmp = ORSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
1678   {
1679     SI opval = tmp_tmp;
1680     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1681     written |= (1 << 6);
1682     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1683   }
1684 if (EQSI (tmp_tmp, 0)) {
1685   {
1686     UQI opval = ORQI (ANDQI (CPU (h_iccr[ANDSI (FLD (f_CCi), 3)]), 7), 4);
1687     sim_queue_qi_write (current_cpu, & CPU (h_iccr[ANDSI (FLD (f_CCi), 3)]), opval);
1688     written |= (1 << 7);
1689     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1690   }
1691 } else {
1692 if (LTSI (tmp_tmp, 0)) {
1693   {
1694     UQI opval = ORQI (ANDQI (CPU (h_iccr[ANDSI (FLD (f_CCi), 3)]), 11), 8);
1695     sim_queue_qi_write (current_cpu, & CPU (h_iccr[ANDSI (FLD (f_CCi), 3)]), opval);
1696     written |= (1 << 7);
1697     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1698   }
1699 } else {
1700   {
1701     UQI opval = ANDQI (CPU (h_iccr[ANDSI (FLD (f_CCi), 3)]), 3);
1702     sim_queue_qi_write (current_cpu, & CPU (h_iccr[ANDSI (FLD (f_CCi), 3)]), opval);
1703     written |= (1 << 7);
1704     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1705   }
1706 }
1707 }
1708 }
1709 }
1710
1711   abuf->written = written;
1712   return vpc;
1713 #undef FLD
1714 }
1715
1716 /* cxorcc: cxorcc$pack $GRi,$GRj,$GRk,$CCi,$cond */
1717
1718 static SEM_PC
1719 SEM_FN_NAME (frvbf,cxorcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1720 {
1721 #define FLD(f) abuf->fields.sfmt_caddcc.f
1722   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1723   int UNUSED written = 0;
1724   IADDR UNUSED pc = abuf->addr;
1725   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1726
1727 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
1728 {
1729   SI tmp_tmp;
1730   tmp_tmp = XORSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
1731   {
1732     SI opval = tmp_tmp;
1733     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1734     written |= (1 << 6);
1735     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1736   }
1737 if (EQSI (tmp_tmp, 0)) {
1738   {
1739     UQI opval = ORQI (ANDQI (CPU (h_iccr[ANDSI (FLD (f_CCi), 3)]), 7), 4);
1740     sim_queue_qi_write (current_cpu, & CPU (h_iccr[ANDSI (FLD (f_CCi), 3)]), opval);
1741     written |= (1 << 7);
1742     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1743   }
1744 } else {
1745 if (LTSI (tmp_tmp, 0)) {
1746   {
1747     UQI opval = ORQI (ANDQI (CPU (h_iccr[ANDSI (FLD (f_CCi), 3)]), 11), 8);
1748     sim_queue_qi_write (current_cpu, & CPU (h_iccr[ANDSI (FLD (f_CCi), 3)]), opval);
1749     written |= (1 << 7);
1750     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1751   }
1752 } else {
1753   {
1754     UQI opval = ANDQI (CPU (h_iccr[ANDSI (FLD (f_CCi), 3)]), 3);
1755     sim_queue_qi_write (current_cpu, & CPU (h_iccr[ANDSI (FLD (f_CCi), 3)]), opval);
1756     written |= (1 << 7);
1757     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1758   }
1759 }
1760 }
1761 }
1762 }
1763
1764   abuf->written = written;
1765   return vpc;
1766 #undef FLD
1767 }
1768
1769 /* csllcc: csllcc$pack $GRi,$GRj,$GRk,$CCi,$cond */
1770
1771 static SEM_PC
1772 SEM_FN_NAME (frvbf,csllcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1773 {
1774 #define FLD(f) abuf->fields.sfmt_caddcc.f
1775   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1776   int UNUSED written = 0;
1777   IADDR UNUSED pc = abuf->addr;
1778   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1779
1780 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
1781 {
1782   SI tmp_shift;
1783   SI tmp_tmp;
1784   QI tmp_cc;
1785   tmp_shift = ANDSI (GET_H_GR (FLD (f_GRj)), 31);
1786   tmp_cc = frvbf_set_icc_for_shift_left (current_cpu, GET_H_GR (FLD (f_GRi)), tmp_shift, CPU (h_iccr[ANDSI (FLD (f_CCi), 3)]));
1787   tmp_tmp = SLLSI (GET_H_GR (FLD (f_GRi)), tmp_shift);
1788   {
1789     SI opval = tmp_tmp;
1790     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1791     written |= (1 << 6);
1792     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1793   }
1794 if (EQSI (tmp_tmp, 0)) {
1795   tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
1796 } else {
1797 if (LTSI (tmp_tmp, 0)) {
1798   tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
1799 } else {
1800   tmp_cc = ANDQI (tmp_cc, 3);
1801 }
1802 }
1803   {
1804     UQI opval = tmp_cc;
1805     sim_queue_qi_write (current_cpu, & CPU (h_iccr[ANDSI (FLD (f_CCi), 3)]), opval);
1806     written |= (1 << 7);
1807     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1808   }
1809 }
1810 }
1811
1812   abuf->written = written;
1813   return vpc;
1814 #undef FLD
1815 }
1816
1817 /* csrlcc: csrlcc$pack $GRi,$GRj,$GRk,$CCi,$cond */
1818
1819 static SEM_PC
1820 SEM_FN_NAME (frvbf,csrlcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1821 {
1822 #define FLD(f) abuf->fields.sfmt_caddcc.f
1823   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1824   int UNUSED written = 0;
1825   IADDR UNUSED pc = abuf->addr;
1826   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1827
1828 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
1829 {
1830   SI tmp_shift;
1831   SI tmp_tmp;
1832   QI tmp_cc;
1833   tmp_shift = ANDSI (GET_H_GR (FLD (f_GRj)), 31);
1834   tmp_cc = frvbf_set_icc_for_shift_right (current_cpu, GET_H_GR (FLD (f_GRi)), tmp_shift, CPU (h_iccr[ANDSI (FLD (f_CCi), 3)]));
1835   tmp_tmp = SRLSI (GET_H_GR (FLD (f_GRi)), tmp_shift);
1836   {
1837     SI opval = tmp_tmp;
1838     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1839     written |= (1 << 6);
1840     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1841   }
1842 if (EQSI (tmp_tmp, 0)) {
1843   tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
1844 } else {
1845 if (LTSI (tmp_tmp, 0)) {
1846   tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
1847 } else {
1848   tmp_cc = ANDQI (tmp_cc, 3);
1849 }
1850 }
1851   {
1852     UQI opval = tmp_cc;
1853     sim_queue_qi_write (current_cpu, & CPU (h_iccr[ANDSI (FLD (f_CCi), 3)]), opval);
1854     written |= (1 << 7);
1855     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1856   }
1857 }
1858 }
1859
1860   abuf->written = written;
1861   return vpc;
1862 #undef FLD
1863 }
1864
1865 /* csracc: csracc$pack $GRi,$GRj,$GRk,$CCi,$cond */
1866
1867 static SEM_PC
1868 SEM_FN_NAME (frvbf,csracc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1869 {
1870 #define FLD(f) abuf->fields.sfmt_caddcc.f
1871   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1872   int UNUSED written = 0;
1873   IADDR UNUSED pc = abuf->addr;
1874   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1875
1876 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
1877 {
1878   SI tmp_shift;
1879   SI tmp_tmp;
1880   QI tmp_cc;
1881   tmp_shift = ANDSI (GET_H_GR (FLD (f_GRj)), 31);
1882   tmp_cc = frvbf_set_icc_for_shift_right (current_cpu, GET_H_GR (FLD (f_GRi)), tmp_shift, CPU (h_iccr[ANDSI (FLD (f_CCi), 3)]));
1883   tmp_tmp = SRASI (GET_H_GR (FLD (f_GRi)), tmp_shift);
1884   {
1885     SI opval = tmp_tmp;
1886     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1887     written |= (1 << 6);
1888     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1889   }
1890 if (EQSI (tmp_tmp, 0)) {
1891   tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
1892 } else {
1893 if (LTSI (tmp_tmp, 0)) {
1894   tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
1895 } else {
1896   tmp_cc = ANDQI (tmp_cc, 3);
1897 }
1898 }
1899   {
1900     UQI opval = tmp_cc;
1901     sim_queue_qi_write (current_cpu, & CPU (h_iccr[ANDSI (FLD (f_CCi), 3)]), opval);
1902     written |= (1 << 7);
1903     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1904   }
1905 }
1906 }
1907
1908   abuf->written = written;
1909   return vpc;
1910 #undef FLD
1911 }
1912
1913 /* addx: addx$pack $GRi,$GRj,$GRk,$ICCi_1 */
1914
1915 static SEM_PC
1916 SEM_FN_NAME (frvbf,addx) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1917 {
1918 #define FLD(f) abuf->fields.sfmt_addcc.f
1919   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1920   int UNUSED written = 0;
1921   IADDR UNUSED pc = abuf->addr;
1922   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1923
1924   {
1925     SI opval = ADDCSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 1)));
1926     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1927     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1928   }
1929
1930   return vpc;
1931 #undef FLD
1932 }
1933
1934 /* subx: subx$pack $GRi,$GRj,$GRk,$ICCi_1 */
1935
1936 static SEM_PC
1937 SEM_FN_NAME (frvbf,subx) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1938 {
1939 #define FLD(f) abuf->fields.sfmt_addcc.f
1940   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1941   int UNUSED written = 0;
1942   IADDR UNUSED pc = abuf->addr;
1943   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1944
1945   {
1946     SI opval = SUBCSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 1)));
1947     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1948     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1949   }
1950
1951   return vpc;
1952 #undef FLD
1953 }
1954
1955 /* addxcc: addxcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
1956
1957 static SEM_PC
1958 SEM_FN_NAME (frvbf,addxcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1959 {
1960 #define FLD(f) abuf->fields.sfmt_addcc.f
1961   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1962   int UNUSED written = 0;
1963   IADDR UNUSED pc = abuf->addr;
1964   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1965
1966 {
1967   SI tmp_tmp;
1968   QI tmp_cc;
1969   tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
1970   tmp_tmp = ADDCSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), TRUNCQIBI (ANDQI (tmp_cc, 1)));
1971 if (EQBI (ADDOFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), TRUNCQIBI (ANDQI (tmp_cc, 1))), 0)) {
1972   tmp_cc = ANDQI (tmp_cc, 13);
1973 } else {
1974   tmp_cc = ORQI (tmp_cc, 2);
1975 }
1976 if (EQBI (ADDCFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), TRUNCQIBI (ANDQI (tmp_cc, 1))), 0)) {
1977   tmp_cc = ANDQI (tmp_cc, 14);
1978 } else {
1979   tmp_cc = ORQI (tmp_cc, 1);
1980 }
1981 if (EQSI (tmp_tmp, 0)) {
1982   tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
1983 } else {
1984 if (LTSI (tmp_tmp, 0)) {
1985   tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
1986 } else {
1987   tmp_cc = ANDQI (tmp_cc, 3);
1988 }
1989 }
1990   {
1991     SI opval = tmp_tmp;
1992     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1993     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1994   }
1995   {
1996     UQI opval = tmp_cc;
1997     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1998     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1999   }
2000 }
2001
2002   return vpc;
2003 #undef FLD
2004 }
2005
2006 /* subxcc: subxcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
2007
2008 static SEM_PC
2009 SEM_FN_NAME (frvbf,subxcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2010 {
2011 #define FLD(f) abuf->fields.sfmt_addcc.f
2012   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2013   int UNUSED written = 0;
2014   IADDR UNUSED pc = abuf->addr;
2015   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2016
2017 {
2018   SI tmp_tmp;
2019   QI tmp_cc;
2020   tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
2021   tmp_tmp = SUBCSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), TRUNCQIBI (ANDQI (tmp_cc, 1)));
2022 if (EQBI (SUBOFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), TRUNCQIBI (ANDQI (tmp_cc, 1))), 0)) {
2023   tmp_cc = ANDQI (tmp_cc, 13);
2024 } else {
2025   tmp_cc = ORQI (tmp_cc, 2);
2026 }
2027 if (EQBI (SUBCFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), TRUNCQIBI (ANDQI (tmp_cc, 1))), 0)) {
2028   tmp_cc = ANDQI (tmp_cc, 14);
2029 } else {
2030   tmp_cc = ORQI (tmp_cc, 1);
2031 }
2032 if (EQSI (tmp_tmp, 0)) {
2033   tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
2034 } else {
2035 if (LTSI (tmp_tmp, 0)) {
2036   tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
2037 } else {
2038   tmp_cc = ANDQI (tmp_cc, 3);
2039 }
2040 }
2041   {
2042     SI opval = tmp_tmp;
2043     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2044     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2045   }
2046   {
2047     UQI opval = tmp_cc;
2048     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2049     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2050   }
2051 }
2052
2053   return vpc;
2054 #undef FLD
2055 }
2056
2057 /* addss: addss$pack $GRi,$GRj,$GRk */
2058
2059 static SEM_PC
2060 SEM_FN_NAME (frvbf,addss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2061 {
2062 #define FLD(f) abuf->fields.sfmt_addcc.f
2063   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2064   int UNUSED written = 0;
2065   IADDR UNUSED pc = abuf->addr;
2066   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2067
2068 {
2069   {
2070     SI opval = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
2071     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2072     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2073   }
2074 if (ADDOFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), 0)) {
2075   {
2076     SI opval = (GTSI (GET_H_GR (FLD (f_GRi)), 0)) ? (2147483647) : (LTSI (GET_H_GR (FLD (f_GRi)), 0)) ? (0x80000000) : (0);
2077     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2078     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2079   }
2080 }
2081 }
2082
2083   return vpc;
2084 #undef FLD
2085 }
2086
2087 /* subss: subss$pack $GRi,$GRj,$GRk */
2088
2089 static SEM_PC
2090 SEM_FN_NAME (frvbf,subss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2091 {
2092 #define FLD(f) abuf->fields.sfmt_addcc.f
2093   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2094   int UNUSED written = 0;
2095   IADDR UNUSED pc = abuf->addr;
2096   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2097
2098 {
2099   {
2100     SI opval = SUBSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
2101     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2102     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2103   }
2104 if (SUBOFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), 0)) {
2105   {
2106     SI opval = (GTSI (GET_H_GR (FLD (f_GRi)), 0)) ? (2147483647) : (LTSI (GET_H_GR (FLD (f_GRi)), 0)) ? (0x80000000) : (0);
2107     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2108     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2109   }
2110 }
2111 }
2112
2113   return vpc;
2114 #undef FLD
2115 }
2116
2117 /* addi: addi$pack $GRi,$s12,$GRk */
2118
2119 static SEM_PC
2120 SEM_FN_NAME (frvbf,addi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2121 {
2122 #define FLD(f) abuf->fields.sfmt_swapi.f
2123   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2124   int UNUSED written = 0;
2125   IADDR UNUSED pc = abuf->addr;
2126   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2127
2128   {
2129     SI opval = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
2130     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2131     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2132   }
2133
2134   return vpc;
2135 #undef FLD
2136 }
2137
2138 /* subi: subi$pack $GRi,$s12,$GRk */
2139
2140 static SEM_PC
2141 SEM_FN_NAME (frvbf,subi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2142 {
2143 #define FLD(f) abuf->fields.sfmt_swapi.f
2144   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2145   int UNUSED written = 0;
2146   IADDR UNUSED pc = abuf->addr;
2147   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2148
2149   {
2150     SI opval = SUBSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
2151     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2152     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2153   }
2154
2155   return vpc;
2156 #undef FLD
2157 }
2158
2159 /* andi: andi$pack $GRi,$s12,$GRk */
2160
2161 static SEM_PC
2162 SEM_FN_NAME (frvbf,andi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2163 {
2164 #define FLD(f) abuf->fields.sfmt_swapi.f
2165   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2166   int UNUSED written = 0;
2167   IADDR UNUSED pc = abuf->addr;
2168   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2169
2170   {
2171     SI opval = ANDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
2172     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2173     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2174   }
2175
2176   return vpc;
2177 #undef FLD
2178 }
2179
2180 /* ori: ori$pack $GRi,$s12,$GRk */
2181
2182 static SEM_PC
2183 SEM_FN_NAME (frvbf,ori) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2184 {
2185 #define FLD(f) abuf->fields.sfmt_swapi.f
2186   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2187   int UNUSED written = 0;
2188   IADDR UNUSED pc = abuf->addr;
2189   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2190
2191   {
2192     SI opval = ORSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
2193     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2194     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2195   }
2196
2197   return vpc;
2198 #undef FLD
2199 }
2200
2201 /* xori: xori$pack $GRi,$s12,$GRk */
2202
2203 static SEM_PC
2204 SEM_FN_NAME (frvbf,xori) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2205 {
2206 #define FLD(f) abuf->fields.sfmt_swapi.f
2207   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2208   int UNUSED written = 0;
2209   IADDR UNUSED pc = abuf->addr;
2210   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2211
2212   {
2213     SI opval = XORSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
2214     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2215     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2216   }
2217
2218   return vpc;
2219 #undef FLD
2220 }
2221
2222 /* sdivi: sdivi$pack $GRi,$s12,$GRk */
2223
2224 static SEM_PC
2225 SEM_FN_NAME (frvbf,sdivi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2226 {
2227 #define FLD(f) abuf->fields.sfmt_swapi.f
2228   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2229   int UNUSED written = 0;
2230   IADDR UNUSED pc = abuf->addr;
2231   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2232
2233 {
2234 frvbf_signed_integer_divide (current_cpu, GET_H_GR (FLD (f_GRi)), FLD (f_d12), FLD (f_GRk), 0);
2235 ; /*clobber*/
2236 }
2237
2238   return vpc;
2239 #undef FLD
2240 }
2241
2242 /* nsdivi: nsdivi$pack $GRi,$s12,$GRk */
2243
2244 static SEM_PC
2245 SEM_FN_NAME (frvbf,nsdivi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2246 {
2247 #define FLD(f) abuf->fields.sfmt_swapi.f
2248   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2249   int UNUSED written = 0;
2250   IADDR UNUSED pc = abuf->addr;
2251   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2252
2253 {
2254 frvbf_signed_integer_divide (current_cpu, GET_H_GR (FLD (f_GRi)), FLD (f_d12), FLD (f_GRk), 1);
2255 ; /*clobber*/
2256 }
2257
2258   return vpc;
2259 #undef FLD
2260 }
2261
2262 /* udivi: udivi$pack $GRi,$s12,$GRk */
2263
2264 static SEM_PC
2265 SEM_FN_NAME (frvbf,udivi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2266 {
2267 #define FLD(f) abuf->fields.sfmt_swapi.f
2268   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2269   int UNUSED written = 0;
2270   IADDR UNUSED pc = abuf->addr;
2271   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2272
2273 {
2274 frvbf_unsigned_integer_divide (current_cpu, GET_H_GR (FLD (f_GRi)), FLD (f_d12), FLD (f_GRk), 0);
2275 ; /*clobber*/
2276 }
2277
2278   return vpc;
2279 #undef FLD
2280 }
2281
2282 /* nudivi: nudivi$pack $GRi,$s12,$GRk */
2283
2284 static SEM_PC
2285 SEM_FN_NAME (frvbf,nudivi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2286 {
2287 #define FLD(f) abuf->fields.sfmt_swapi.f
2288   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2289   int UNUSED written = 0;
2290   IADDR UNUSED pc = abuf->addr;
2291   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2292
2293 {
2294 frvbf_unsigned_integer_divide (current_cpu, GET_H_GR (FLD (f_GRi)), FLD (f_d12), FLD (f_GRk), 1);
2295 ; /*clobber*/
2296 }
2297
2298   return vpc;
2299 #undef FLD
2300 }
2301
2302 /* smuli: smuli$pack $GRi,$s12,$GRdoublek */
2303
2304 static SEM_PC
2305 SEM_FN_NAME (frvbf,smuli) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2306 {
2307 #define FLD(f) abuf->fields.sfmt_smuli.f
2308   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2309   int UNUSED written = 0;
2310   IADDR UNUSED pc = abuf->addr;
2311   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2312
2313   {
2314     DI opval = MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi))), EXTSIDI (FLD (f_d12)));
2315     sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
2316     TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
2317   }
2318
2319   return vpc;
2320 #undef FLD
2321 }
2322
2323 /* umuli: umuli$pack $GRi,$s12,$GRdoublek */
2324
2325 static SEM_PC
2326 SEM_FN_NAME (frvbf,umuli) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2327 {
2328 #define FLD(f) abuf->fields.sfmt_smuli.f
2329   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2330   int UNUSED written = 0;
2331   IADDR UNUSED pc = abuf->addr;
2332   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2333
2334   {
2335     DI opval = MULDI (ZEXTSIDI (GET_H_GR (FLD (f_GRi))), ZEXTSIDI (FLD (f_d12)));
2336     sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
2337     TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
2338   }
2339
2340   return vpc;
2341 #undef FLD
2342 }
2343
2344 /* slli: slli$pack $GRi,$s12,$GRk */
2345
2346 static SEM_PC
2347 SEM_FN_NAME (frvbf,slli) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2348 {
2349 #define FLD(f) abuf->fields.sfmt_swapi.f
2350   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2351   int UNUSED written = 0;
2352   IADDR UNUSED pc = abuf->addr;
2353   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2354
2355   {
2356     SI opval = SLLSI (GET_H_GR (FLD (f_GRi)), ANDSI (FLD (f_d12), 31));
2357     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2358     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2359   }
2360
2361   return vpc;
2362 #undef FLD
2363 }
2364
2365 /* srli: srli$pack $GRi,$s12,$GRk */
2366
2367 static SEM_PC
2368 SEM_FN_NAME (frvbf,srli) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2369 {
2370 #define FLD(f) abuf->fields.sfmt_swapi.f
2371   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2372   int UNUSED written = 0;
2373   IADDR UNUSED pc = abuf->addr;
2374   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2375
2376   {
2377     SI opval = SRLSI (GET_H_GR (FLD (f_GRi)), ANDSI (FLD (f_d12), 31));
2378     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2379     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2380   }
2381
2382   return vpc;
2383 #undef FLD
2384 }
2385
2386 /* srai: srai$pack $GRi,$s12,$GRk */
2387
2388 static SEM_PC
2389 SEM_FN_NAME (frvbf,srai) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2390 {
2391 #define FLD(f) abuf->fields.sfmt_swapi.f
2392   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2393   int UNUSED written = 0;
2394   IADDR UNUSED pc = abuf->addr;
2395   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2396
2397   {
2398     SI opval = SRASI (GET_H_GR (FLD (f_GRi)), ANDSI (FLD (f_d12), 31));
2399     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2400     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2401   }
2402
2403   return vpc;
2404 #undef FLD
2405 }
2406
2407 /* scani: scani$pack $GRi,$s12,$GRk */
2408
2409 static SEM_PC
2410 SEM_FN_NAME (frvbf,scani) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2411 {
2412 #define FLD(f) abuf->fields.sfmt_swapi.f
2413   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2414   int UNUSED written = 0;
2415   IADDR UNUSED pc = abuf->addr;
2416   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2417
2418 {
2419   SI tmp_tmp1;
2420   SI tmp_tmp2;
2421   tmp_tmp1 = GET_H_GR (FLD (f_GRi));
2422   tmp_tmp2 = SRASI (FLD (f_d12), 1);
2423   {
2424     SI opval = frvbf_scan_result (current_cpu, XORSI (tmp_tmp1, tmp_tmp2));
2425     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2426     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2427   }
2428 }
2429
2430   return vpc;
2431 #undef FLD
2432 }
2433
2434 /* addicc: addicc$pack $GRi,$s10,$GRk,$ICCi_1 */
2435
2436 static SEM_PC
2437 SEM_FN_NAME (frvbf,addicc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2438 {
2439 #define FLD(f) abuf->fields.sfmt_addicc.f
2440   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2441   int UNUSED written = 0;
2442   IADDR UNUSED pc = abuf->addr;
2443   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2444
2445 {
2446   BI tmp_tmp;
2447   QI tmp_cc;
2448   SI tmp_result;
2449   tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
2450   tmp_tmp = ADDOFSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), 0);
2451 if (EQBI (tmp_tmp, 0)) {
2452   tmp_cc = ANDQI (tmp_cc, 13);
2453 } else {
2454   tmp_cc = ORQI (tmp_cc, 2);
2455 }
2456   tmp_tmp = ADDCFSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), 0);
2457 if (EQBI (tmp_tmp, 0)) {
2458   tmp_cc = ANDQI (tmp_cc, 14);
2459 } else {
2460   tmp_cc = ORQI (tmp_cc, 1);
2461 }
2462   tmp_result = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10));
2463 if (EQSI (tmp_result, 0)) {
2464   tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
2465 } else {
2466 if (LTSI (tmp_result, 0)) {
2467   tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
2468 } else {
2469   tmp_cc = ANDQI (tmp_cc, 3);
2470 }
2471 }
2472   {
2473     SI opval = tmp_result;
2474     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2475     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2476   }
2477   {
2478     UQI opval = tmp_cc;
2479     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2480     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2481   }
2482 }
2483
2484   return vpc;
2485 #undef FLD
2486 }
2487
2488 /* subicc: subicc$pack $GRi,$s10,$GRk,$ICCi_1 */
2489
2490 static SEM_PC
2491 SEM_FN_NAME (frvbf,subicc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2492 {
2493 #define FLD(f) abuf->fields.sfmt_addicc.f
2494   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2495   int UNUSED written = 0;
2496   IADDR UNUSED pc = abuf->addr;
2497   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2498
2499 {
2500   BI tmp_tmp;
2501   QI tmp_cc;
2502   SI tmp_result;
2503   tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
2504   tmp_tmp = SUBOFSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), 0);
2505 if (EQBI (tmp_tmp, 0)) {
2506   tmp_cc = ANDQI (tmp_cc, 13);
2507 } else {
2508   tmp_cc = ORQI (tmp_cc, 2);
2509 }
2510   tmp_tmp = SUBCFSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), 0);
2511 if (EQBI (tmp_tmp, 0)) {
2512   tmp_cc = ANDQI (tmp_cc, 14);
2513 } else {
2514   tmp_cc = ORQI (tmp_cc, 1);
2515 }
2516   tmp_result = SUBSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10));
2517 if (EQSI (tmp_result, 0)) {
2518   tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
2519 } else {
2520 if (LTSI (tmp_result, 0)) {
2521   tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
2522 } else {
2523   tmp_cc = ANDQI (tmp_cc, 3);
2524 }
2525 }
2526   {
2527     SI opval = tmp_result;
2528     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2529     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2530   }
2531   {
2532     UQI opval = tmp_cc;
2533     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2534     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2535   }
2536 }
2537
2538   return vpc;
2539 #undef FLD
2540 }
2541
2542 /* andicc: andicc$pack $GRi,$s10,$GRk,$ICCi_1 */
2543
2544 static SEM_PC
2545 SEM_FN_NAME (frvbf,andicc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2546 {
2547 #define FLD(f) abuf->fields.sfmt_addicc.f
2548   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2549   int UNUSED written = 0;
2550   IADDR UNUSED pc = abuf->addr;
2551   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2552
2553 {
2554   SI tmp_tmp;
2555   tmp_tmp = ANDSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10));
2556   {
2557     SI opval = tmp_tmp;
2558     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2559     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2560   }
2561 if (EQSI (tmp_tmp, 0)) {
2562   {
2563     UQI opval = ORQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 7), 4);
2564     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2565     written |= (1 << 4);
2566     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2567   }
2568 } else {
2569 if (LTSI (tmp_tmp, 0)) {
2570   {
2571     UQI opval = ORQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 11), 8);
2572     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2573     written |= (1 << 4);
2574     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2575   }
2576 } else {
2577   {
2578     UQI opval = ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 3);
2579     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2580     written |= (1 << 4);
2581     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2582   }
2583 }
2584 }
2585 }
2586
2587   abuf->written = written;
2588   return vpc;
2589 #undef FLD
2590 }
2591
2592 /* oricc: oricc$pack $GRi,$s10,$GRk,$ICCi_1 */
2593
2594 static SEM_PC
2595 SEM_FN_NAME (frvbf,oricc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2596 {
2597 #define FLD(f) abuf->fields.sfmt_addicc.f
2598   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2599   int UNUSED written = 0;
2600   IADDR UNUSED pc = abuf->addr;
2601   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2602
2603 {
2604   SI tmp_tmp;
2605   tmp_tmp = ORSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10));
2606   {
2607     SI opval = tmp_tmp;
2608     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2609     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2610   }
2611 if (EQSI (tmp_tmp, 0)) {
2612   {
2613     UQI opval = ORQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 7), 4);
2614     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2615     written |= (1 << 4);
2616     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2617   }
2618 } else {
2619 if (LTSI (tmp_tmp, 0)) {
2620   {
2621     UQI opval = ORQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 11), 8);
2622     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2623     written |= (1 << 4);
2624     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2625   }
2626 } else {
2627   {
2628     UQI opval = ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 3);
2629     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2630     written |= (1 << 4);
2631     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2632   }
2633 }
2634 }
2635 }
2636
2637   abuf->written = written;
2638   return vpc;
2639 #undef FLD
2640 }
2641
2642 /* xoricc: xoricc$pack $GRi,$s10,$GRk,$ICCi_1 */
2643
2644 static SEM_PC
2645 SEM_FN_NAME (frvbf,xoricc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2646 {
2647 #define FLD(f) abuf->fields.sfmt_addicc.f
2648   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2649   int UNUSED written = 0;
2650   IADDR UNUSED pc = abuf->addr;
2651   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2652
2653 {
2654   SI tmp_tmp;
2655   tmp_tmp = XORSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10));
2656   {
2657     SI opval = tmp_tmp;
2658     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2659     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2660   }
2661 if (EQSI (tmp_tmp, 0)) {
2662   {
2663     UQI opval = ORQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 7), 4);
2664     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2665     written |= (1 << 4);
2666     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2667   }
2668 } else {
2669 if (LTSI (tmp_tmp, 0)) {
2670   {
2671     UQI opval = ORQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 11), 8);
2672     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2673     written |= (1 << 4);
2674     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2675   }
2676 } else {
2677   {
2678     UQI opval = ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 3);
2679     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2680     written |= (1 << 4);
2681     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2682   }
2683 }
2684 }
2685 }
2686
2687   abuf->written = written;
2688   return vpc;
2689 #undef FLD
2690 }
2691
2692 /* smulicc: smulicc$pack $GRi,$s10,$GRdoublek,$ICCi_1 */
2693
2694 static SEM_PC
2695 SEM_FN_NAME (frvbf,smulicc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2696 {
2697 #define FLD(f) abuf->fields.sfmt_smulicc.f
2698   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2699   int UNUSED written = 0;
2700   IADDR UNUSED pc = abuf->addr;
2701   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2702
2703 {
2704   DI tmp_tmp;
2705   QI tmp_cc;
2706   tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
2707   tmp_tmp = MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi))), EXTSIDI (FLD (f_s10)));
2708 if (EQDI (SRLDI (tmp_tmp, 63), 0)) {
2709   tmp_cc = ANDQI (tmp_cc, 7);
2710 } else {
2711   tmp_cc = ORQI (tmp_cc, 8);
2712 }
2713 if (EQBI (EQDI (tmp_tmp, 0), 0)) {
2714   tmp_cc = ANDQI (tmp_cc, 11);
2715 } else {
2716   tmp_cc = ORQI (tmp_cc, 4);
2717 }
2718   {
2719     DI opval = tmp_tmp;
2720     sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
2721     TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
2722   }
2723   {
2724     UQI opval = tmp_cc;
2725     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2726     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2727   }
2728 }
2729
2730   return vpc;
2731 #undef FLD
2732 }
2733
2734 /* umulicc: umulicc$pack $GRi,$s10,$GRdoublek,$ICCi_1 */
2735
2736 static SEM_PC
2737 SEM_FN_NAME (frvbf,umulicc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2738 {
2739 #define FLD(f) abuf->fields.sfmt_smulicc.f
2740   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2741   int UNUSED written = 0;
2742   IADDR UNUSED pc = abuf->addr;
2743   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2744
2745 {
2746   DI tmp_tmp;
2747   QI tmp_cc;
2748   tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
2749   tmp_tmp = MULDI (ZEXTSIDI (GET_H_GR (FLD (f_GRi))), ZEXTSIDI (FLD (f_s10)));
2750 if (EQDI (SRLDI (tmp_tmp, 63), 0)) {
2751   tmp_cc = ANDQI (tmp_cc, 7);
2752 } else {
2753   tmp_cc = ORQI (tmp_cc, 8);
2754 }
2755 if (EQBI (EQDI (tmp_tmp, 0), 0)) {
2756   tmp_cc = ANDQI (tmp_cc, 11);
2757 } else {
2758   tmp_cc = ORQI (tmp_cc, 4);
2759 }
2760   {
2761     DI opval = tmp_tmp;
2762     sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
2763     TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
2764   }
2765   {
2766     UQI opval = tmp_cc;
2767     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2768     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2769   }
2770 }
2771
2772   return vpc;
2773 #undef FLD
2774 }
2775
2776 /* sllicc: sllicc$pack $GRi,$s10,$GRk,$ICCi_1 */
2777
2778 static SEM_PC
2779 SEM_FN_NAME (frvbf,sllicc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2780 {
2781 #define FLD(f) abuf->fields.sfmt_addicc.f
2782   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2783   int UNUSED written = 0;
2784   IADDR UNUSED pc = abuf->addr;
2785   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2786
2787 {
2788   SI tmp_shift;
2789   SI tmp_tmp;
2790   QI tmp_cc;
2791   tmp_shift = ANDSI (FLD (f_s10), 31);
2792   tmp_cc = frvbf_set_icc_for_shift_left (current_cpu, GET_H_GR (FLD (f_GRi)), tmp_shift, CPU (h_iccr[FLD (f_ICCi_1)]));
2793   tmp_tmp = SLLSI (GET_H_GR (FLD (f_GRi)), tmp_shift);
2794   {
2795     SI opval = tmp_tmp;
2796     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2797     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2798   }
2799 if (EQSI (tmp_tmp, 0)) {
2800   tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
2801 } else {
2802 if (LTSI (tmp_tmp, 0)) {
2803   tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
2804 } else {
2805   tmp_cc = ANDQI (tmp_cc, 3);
2806 }
2807 }
2808   {
2809     UQI opval = tmp_cc;
2810     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2811     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2812   }
2813 }
2814
2815   return vpc;
2816 #undef FLD
2817 }
2818
2819 /* srlicc: srlicc$pack $GRi,$s10,$GRk,$ICCi_1 */
2820
2821 static SEM_PC
2822 SEM_FN_NAME (frvbf,srlicc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2823 {
2824 #define FLD(f) abuf->fields.sfmt_addicc.f
2825   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2826   int UNUSED written = 0;
2827   IADDR UNUSED pc = abuf->addr;
2828   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2829
2830 {
2831   SI tmp_shift;
2832   SI tmp_tmp;
2833   QI tmp_cc;
2834   tmp_shift = ANDSI (FLD (f_s10), 31);
2835   tmp_cc = frvbf_set_icc_for_shift_right (current_cpu, GET_H_GR (FLD (f_GRi)), tmp_shift, CPU (h_iccr[FLD (f_ICCi_1)]));
2836   tmp_tmp = SRLSI (GET_H_GR (FLD (f_GRi)), tmp_shift);
2837   {
2838     SI opval = tmp_tmp;
2839     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2840     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2841   }
2842 if (EQSI (tmp_tmp, 0)) {
2843   tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
2844 } else {
2845 if (LTSI (tmp_tmp, 0)) {
2846   tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
2847 } else {
2848   tmp_cc = ANDQI (tmp_cc, 3);
2849 }
2850 }
2851   {
2852     UQI opval = tmp_cc;
2853     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2854     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2855   }
2856 }
2857
2858   return vpc;
2859 #undef FLD
2860 }
2861
2862 /* sraicc: sraicc$pack $GRi,$s10,$GRk,$ICCi_1 */
2863
2864 static SEM_PC
2865 SEM_FN_NAME (frvbf,sraicc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2866 {
2867 #define FLD(f) abuf->fields.sfmt_addicc.f
2868   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2869   int UNUSED written = 0;
2870   IADDR UNUSED pc = abuf->addr;
2871   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2872
2873 {
2874   SI tmp_shift;
2875   SI tmp_tmp;
2876   QI tmp_cc;
2877   tmp_shift = ANDSI (FLD (f_s10), 31);
2878   tmp_cc = frvbf_set_icc_for_shift_right (current_cpu, GET_H_GR (FLD (f_GRi)), tmp_shift, CPU (h_iccr[FLD (f_ICCi_1)]));
2879   tmp_tmp = SRASI (GET_H_GR (FLD (f_GRi)), tmp_shift);
2880   {
2881     SI opval = tmp_tmp;
2882     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2883     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2884   }
2885 if (EQSI (tmp_tmp, 0)) {
2886   tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
2887 } else {
2888 if (LTSI (tmp_tmp, 0)) {
2889   tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
2890 } else {
2891   tmp_cc = ANDQI (tmp_cc, 3);
2892 }
2893 }
2894   {
2895     UQI opval = tmp_cc;
2896     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2897     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2898   }
2899 }
2900
2901   return vpc;
2902 #undef FLD
2903 }
2904
2905 /* addxi: addxi$pack $GRi,$s10,$GRk,$ICCi_1 */
2906
2907 static SEM_PC
2908 SEM_FN_NAME (frvbf,addxi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2909 {
2910 #define FLD(f) abuf->fields.sfmt_addicc.f
2911   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2912   int UNUSED written = 0;
2913   IADDR UNUSED pc = abuf->addr;
2914   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2915
2916   {
2917     SI opval = ADDCSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 1)));
2918     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2919     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2920   }
2921
2922   return vpc;
2923 #undef FLD
2924 }
2925
2926 /* subxi: subxi$pack $GRi,$s10,$GRk,$ICCi_1 */
2927
2928 static SEM_PC
2929 SEM_FN_NAME (frvbf,subxi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2930 {
2931 #define FLD(f) abuf->fields.sfmt_addicc.f
2932   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2933   int UNUSED written = 0;
2934   IADDR UNUSED pc = abuf->addr;
2935   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2936
2937   {
2938     SI opval = SUBCSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 1)));
2939     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2940     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2941   }
2942
2943   return vpc;
2944 #undef FLD
2945 }
2946
2947 /* addxicc: addxicc$pack $GRi,$s10,$GRk,$ICCi_1 */
2948
2949 static SEM_PC
2950 SEM_FN_NAME (frvbf,addxicc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2951 {
2952 #define FLD(f) abuf->fields.sfmt_addicc.f
2953   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2954   int UNUSED written = 0;
2955   IADDR UNUSED pc = abuf->addr;
2956   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2957
2958 {
2959   SI tmp_tmp;
2960   QI tmp_cc;
2961   tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
2962   tmp_tmp = ADDCSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), TRUNCQIBI (ANDQI (tmp_cc, 1)));
2963 if (EQBI (ADDOFSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), TRUNCQIBI (ANDQI (tmp_cc, 1))), 0)) {
2964   tmp_cc = ANDQI (tmp_cc, 13);
2965 } else {
2966   tmp_cc = ORQI (tmp_cc, 2);
2967 }
2968 if (EQBI (ADDCFSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), TRUNCQIBI (ANDQI (tmp_cc, 1))), 0)) {
2969   tmp_cc = ANDQI (tmp_cc, 14);
2970 } else {
2971   tmp_cc = ORQI (tmp_cc, 1);
2972 }
2973 if (EQSI (tmp_tmp, 0)) {
2974   tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
2975 } else {
2976 if (LTSI (tmp_tmp, 0)) {
2977   tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
2978 } else {
2979   tmp_cc = ANDQI (tmp_cc, 3);
2980 }
2981 }
2982   {
2983     SI opval = tmp_tmp;
2984     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2985     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2986   }
2987   {
2988     UQI opval = tmp_cc;
2989     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2990     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2991   }
2992 }
2993
2994   return vpc;
2995 #undef FLD
2996 }
2997
2998 /* subxicc: subxicc$pack $GRi,$s10,$GRk,$ICCi_1 */
2999
3000 static SEM_PC
3001 SEM_FN_NAME (frvbf,subxicc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3002 {
3003 #define FLD(f) abuf->fields.sfmt_addicc.f
3004   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3005   int UNUSED written = 0;
3006   IADDR UNUSED pc = abuf->addr;
3007   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3008
3009 {
3010   SI tmp_tmp;
3011   QI tmp_cc;
3012   tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
3013   tmp_tmp = SUBCSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), TRUNCQIBI (ANDQI (tmp_cc, 1)));
3014 if (EQBI (SUBOFSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), TRUNCQIBI (ANDQI (tmp_cc, 1))), 0)) {
3015   tmp_cc = ANDQI (tmp_cc, 13);
3016 } else {
3017   tmp_cc = ORQI (tmp_cc, 2);
3018 }
3019 if (EQBI (SUBCFSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), TRUNCQIBI (ANDQI (tmp_cc, 1))), 0)) {
3020   tmp_cc = ANDQI (tmp_cc, 14);
3021 } else {
3022   tmp_cc = ORQI (tmp_cc, 1);
3023 }
3024 if (EQSI (tmp_tmp, 0)) {
3025   tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
3026 } else {
3027 if (LTSI (tmp_tmp, 0)) {
3028   tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
3029 } else {
3030   tmp_cc = ANDQI (tmp_cc, 3);
3031 }
3032 }
3033   {
3034     SI opval = tmp_tmp;
3035     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3036     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3037   }
3038   {
3039     UQI opval = tmp_cc;
3040     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
3041     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
3042   }
3043 }
3044
3045   return vpc;
3046 #undef FLD
3047 }
3048
3049 /* cmpb: cmpb$pack $GRi,$GRj,$ICCi_1 */
3050
3051 static SEM_PC
3052 SEM_FN_NAME (frvbf,cmpb) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3053 {
3054 #define FLD(f) abuf->fields.sfmt_smulcc.f
3055   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3056   int UNUSED written = 0;
3057   IADDR UNUSED pc = abuf->addr;
3058   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3059
3060 {
3061   QI tmp_cc;
3062 if (EQBI (EQSI (ANDSI (GET_H_GR (FLD (f_GRi)), 0xff000000), ANDSI (GET_H_GR (FLD (f_GRj)), 0xff000000)), 0)) {
3063   tmp_cc = ANDQI (tmp_cc, 7);
3064 } else {
3065   tmp_cc = ORQI (tmp_cc, 8);
3066 }
3067 if (EQBI (EQSI (ANDSI (GET_H_GR (FLD (f_GRi)), 16711680), ANDSI (GET_H_GR (FLD (f_GRj)), 16711680)), 0)) {
3068   tmp_cc = ANDQI (tmp_cc, 11);
3069 } else {
3070   tmp_cc = ORQI (tmp_cc, 4);
3071 }
3072 if (EQBI (EQSI (ANDSI (GET_H_GR (FLD (f_GRi)), 65280), ANDSI (GET_H_GR (FLD (f_GRj)), 65280)), 0)) {
3073   tmp_cc = ANDQI (tmp_cc, 13);
3074 } else {
3075   tmp_cc = ORQI (tmp_cc, 2);
3076 }
3077 if (EQBI (EQSI (ANDSI (GET_H_GR (FLD (f_GRi)), 255), ANDSI (GET_H_GR (FLD (f_GRj)), 255)), 0)) {
3078   tmp_cc = ANDQI (tmp_cc, 14);
3079 } else {
3080   tmp_cc = ORQI (tmp_cc, 1);
3081 }
3082   {
3083     UQI opval = tmp_cc;
3084     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
3085     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
3086   }
3087 }
3088
3089   return vpc;
3090 #undef FLD
3091 }
3092
3093 /* cmpba: cmpba$pack $GRi,$GRj,$ICCi_1 */
3094
3095 static SEM_PC
3096 SEM_FN_NAME (frvbf,cmpba) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3097 {
3098 #define FLD(f) abuf->fields.sfmt_smulcc.f
3099   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3100   int UNUSED written = 0;
3101   IADDR UNUSED pc = abuf->addr;
3102   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3103
3104 {
3105   QI tmp_cc;
3106   tmp_cc = 0;
3107 if (EQBI (ORIF (EQSI (ANDSI (GET_H_GR (FLD (f_GRi)), 0xff000000), ANDSI (GET_H_GR (FLD (f_GRj)), 0xff000000)), ORIF (EQSI (ANDSI (GET_H_GR (FLD (f_GRi)), 16711680), ANDSI (GET_H_GR (FLD (f_GRj)), 16711680)), ORIF (EQSI (ANDSI (GET_H_GR (FLD (f_GRi)), 65280), ANDSI (GET_H_GR (FLD (f_GRj)), 65280)), EQSI (ANDSI (GET_H_GR (FLD (f_GRi)), 255), ANDSI (GET_H_GR (FLD (f_GRj)), 255))))), 0)) {
3108   tmp_cc = ANDQI (tmp_cc, 14);
3109 } else {
3110   tmp_cc = ORQI (tmp_cc, 1);
3111 }
3112   {
3113     UQI opval = tmp_cc;
3114     sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
3115     TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
3116   }
3117 }
3118
3119   return vpc;
3120 #undef FLD
3121 }
3122
3123 /* setlo: setlo$pack $ulo16,$GRklo */
3124
3125 static SEM_PC
3126 SEM_FN_NAME (frvbf,setlo) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3127 {
3128 #define FLD(f) abuf->fields.sfmt_setlo.f
3129   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3130   int UNUSED written = 0;
3131   IADDR UNUSED pc = abuf->addr;
3132   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3133
3134   {
3135     UHI opval = FLD (f_u16);
3136     sim_queue_fn_hi_write (current_cpu, frvbf_h_gr_lo_set, FLD (f_GRk), opval);
3137     TRACE_RESULT (current_cpu, abuf, "gr_lo", 'x', opval);
3138   }
3139
3140   return vpc;
3141 #undef FLD
3142 }
3143
3144 /* sethi: sethi$pack $uhi16,$GRkhi */
3145
3146 static SEM_PC
3147 SEM_FN_NAME (frvbf,sethi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3148 {
3149 #define FLD(f) abuf->fields.sfmt_sethi.f
3150   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3151   int UNUSED written = 0;
3152   IADDR UNUSED pc = abuf->addr;
3153   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3154
3155   {
3156     UHI opval = FLD (f_u16);
3157     sim_queue_fn_hi_write (current_cpu, frvbf_h_gr_hi_set, FLD (f_GRk), opval);
3158     TRACE_RESULT (current_cpu, abuf, "gr_hi", 'x', opval);
3159   }
3160
3161   return vpc;
3162 #undef FLD
3163 }
3164
3165 /* setlos: setlos$pack $slo16,$GRk */
3166
3167 static SEM_PC
3168 SEM_FN_NAME (frvbf,setlos) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3169 {
3170 #define FLD(f) abuf->fields.sfmt_setlos.f
3171   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3172   int UNUSED written = 0;
3173   IADDR UNUSED pc = abuf->addr;
3174   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3175
3176   {
3177     SI opval = FLD (f_s16);
3178     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3179     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3180   }
3181
3182   return vpc;
3183 #undef FLD
3184 }
3185
3186 /* ldsb: ldsb$pack @($GRi,$GRj),$GRk */
3187
3188 static SEM_PC
3189 SEM_FN_NAME (frvbf,ldsb) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3190 {
3191 #define FLD(f) abuf->fields.sfmt_addcc.f
3192   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3193   int UNUSED written = 0;
3194   IADDR UNUSED pc = abuf->addr;
3195   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3196
3197   {
3198     SI opval = frvbf_read_mem_QI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3199     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3200     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3201   }
3202
3203   return vpc;
3204 #undef FLD
3205 }
3206
3207 /* ldub: ldub$pack @($GRi,$GRj),$GRk */
3208
3209 static SEM_PC
3210 SEM_FN_NAME (frvbf,ldub) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3211 {
3212 #define FLD(f) abuf->fields.sfmt_addcc.f
3213   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3214   int UNUSED written = 0;
3215   IADDR UNUSED pc = abuf->addr;
3216   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3217
3218   {
3219     SI opval = frvbf_read_mem_UQI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3220     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3221     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3222   }
3223
3224   return vpc;
3225 #undef FLD
3226 }
3227
3228 /* ldsh: ldsh$pack @($GRi,$GRj),$GRk */
3229
3230 static SEM_PC
3231 SEM_FN_NAME (frvbf,ldsh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3232 {
3233 #define FLD(f) abuf->fields.sfmt_addcc.f
3234   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3235   int UNUSED written = 0;
3236   IADDR UNUSED pc = abuf->addr;
3237   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3238
3239   {
3240     SI opval = frvbf_read_mem_HI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3241     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3242     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3243   }
3244
3245   return vpc;
3246 #undef FLD
3247 }
3248
3249 /* lduh: lduh$pack @($GRi,$GRj),$GRk */
3250
3251 static SEM_PC
3252 SEM_FN_NAME (frvbf,lduh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3253 {
3254 #define FLD(f) abuf->fields.sfmt_addcc.f
3255   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3256   int UNUSED written = 0;
3257   IADDR UNUSED pc = abuf->addr;
3258   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3259
3260   {
3261     SI opval = frvbf_read_mem_UHI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3262     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3263     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3264   }
3265
3266   return vpc;
3267 #undef FLD
3268 }
3269
3270 /* ld: ld$pack $ldann($GRi,$GRj),$GRk */
3271
3272 static SEM_PC
3273 SEM_FN_NAME (frvbf,ld) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3274 {
3275 #define FLD(f) abuf->fields.sfmt_addcc.f
3276   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3277   int UNUSED written = 0;
3278   IADDR UNUSED pc = abuf->addr;
3279   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3280
3281   {
3282     SI opval = frvbf_read_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3283     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3284     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3285   }
3286
3287   return vpc;
3288 #undef FLD
3289 }
3290
3291 /* ldbf: ldbf$pack @($GRi,$GRj),$FRintk */
3292
3293 static SEM_PC
3294 SEM_FN_NAME (frvbf,ldbf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3295 {
3296 #define FLD(f) abuf->fields.sfmt_cldbfu.f
3297   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3298   int UNUSED written = 0;
3299   IADDR UNUSED pc = abuf->addr;
3300   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3301
3302   {
3303     SI opval = frvbf_read_mem_UQI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3304     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
3305     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
3306   }
3307
3308   return vpc;
3309 #undef FLD
3310 }
3311
3312 /* ldhf: ldhf$pack @($GRi,$GRj),$FRintk */
3313
3314 static SEM_PC
3315 SEM_FN_NAME (frvbf,ldhf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3316 {
3317 #define FLD(f) abuf->fields.sfmt_cldbfu.f
3318   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3319   int UNUSED written = 0;
3320   IADDR UNUSED pc = abuf->addr;
3321   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3322
3323   {
3324     SI opval = frvbf_read_mem_UHI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3325     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
3326     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
3327   }
3328
3329   return vpc;
3330 #undef FLD
3331 }
3332
3333 /* ldf: ldf$pack @($GRi,$GRj),$FRintk */
3334
3335 static SEM_PC
3336 SEM_FN_NAME (frvbf,ldf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3337 {
3338 #define FLD(f) abuf->fields.sfmt_cldbfu.f
3339   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3340   int UNUSED written = 0;
3341   IADDR UNUSED pc = abuf->addr;
3342   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3343
3344   {
3345     SI opval = frvbf_read_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3346     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
3347     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
3348   }
3349
3350   return vpc;
3351 #undef FLD
3352 }
3353
3354 /* ldc: ldc$pack @($GRi,$GRj),$CPRk */
3355
3356 static SEM_PC
3357 SEM_FN_NAME (frvbf,ldc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3358 {
3359 #define FLD(f) abuf->fields.sfmt_ldcu.f
3360   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3361   int UNUSED written = 0;
3362   IADDR UNUSED pc = abuf->addr;
3363   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3364
3365   {
3366     SI opval = frvbf_read_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3367     sim_queue_si_write (current_cpu, & CPU (h_cpr[FLD (f_CPRk)]), opval);
3368     TRACE_RESULT (current_cpu, abuf, "cpr", 'x', opval);
3369   }
3370
3371   return vpc;
3372 #undef FLD
3373 }
3374
3375 /* nldsb: nldsb$pack @($GRi,$GRj),$GRk */
3376
3377 static SEM_PC
3378 SEM_FN_NAME (frvbf,nldsb) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3379 {
3380 #define FLD(f) abuf->fields.sfmt_addcc.f
3381   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3382   int UNUSED written = 0;
3383   IADDR UNUSED pc = abuf->addr;
3384   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3385
3386 {
3387   BI tmp_do_op;
3388   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 1, 0);
3389 if (tmp_do_op) {
3390   {
3391     SI opval = frvbf_read_mem_QI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3392     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3393     written |= (1 << 6);
3394     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3395   }
3396 }
3397 }
3398
3399   abuf->written = written;
3400   return vpc;
3401 #undef FLD
3402 }
3403
3404 /* nldub: nldub$pack @($GRi,$GRj),$GRk */
3405
3406 static SEM_PC
3407 SEM_FN_NAME (frvbf,nldub) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3408 {
3409 #define FLD(f) abuf->fields.sfmt_addcc.f
3410   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3411   int UNUSED written = 0;
3412   IADDR UNUSED pc = abuf->addr;
3413   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3414
3415 {
3416   BI tmp_do_op;
3417   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 0, 0);
3418 if (tmp_do_op) {
3419   {
3420     SI opval = frvbf_read_mem_UQI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3421     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3422     written |= (1 << 6);
3423     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3424   }
3425 }
3426 }
3427
3428   abuf->written = written;
3429   return vpc;
3430 #undef FLD
3431 }
3432
3433 /* nldsh: nldsh$pack @($GRi,$GRj),$GRk */
3434
3435 static SEM_PC
3436 SEM_FN_NAME (frvbf,nldsh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3437 {
3438 #define FLD(f) abuf->fields.sfmt_addcc.f
3439   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3440   int UNUSED written = 0;
3441   IADDR UNUSED pc = abuf->addr;
3442   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3443
3444 {
3445   BI tmp_do_op;
3446   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 3, 0);
3447 if (tmp_do_op) {
3448   {
3449     SI opval = frvbf_read_mem_HI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3450     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3451     written |= (1 << 6);
3452     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3453   }
3454 }
3455 }
3456
3457   abuf->written = written;
3458   return vpc;
3459 #undef FLD
3460 }
3461
3462 /* nlduh: nlduh$pack @($GRi,$GRj),$GRk */
3463
3464 static SEM_PC
3465 SEM_FN_NAME (frvbf,nlduh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3466 {
3467 #define FLD(f) abuf->fields.sfmt_addcc.f
3468   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3469   int UNUSED written = 0;
3470   IADDR UNUSED pc = abuf->addr;
3471   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3472
3473 {
3474   BI tmp_do_op;
3475   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 2, 0);
3476 if (tmp_do_op) {
3477   {
3478     SI opval = frvbf_read_mem_UHI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3479     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3480     written |= (1 << 6);
3481     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3482   }
3483 }
3484 }
3485
3486   abuf->written = written;
3487   return vpc;
3488 #undef FLD
3489 }
3490
3491 /* nld: nld$pack @($GRi,$GRj),$GRk */
3492
3493 static SEM_PC
3494 SEM_FN_NAME (frvbf,nld) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3495 {
3496 #define FLD(f) abuf->fields.sfmt_addcc.f
3497   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3498   int UNUSED written = 0;
3499   IADDR UNUSED pc = abuf->addr;
3500   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3501
3502 {
3503   BI tmp_do_op;
3504   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 4, 0);
3505 if (tmp_do_op) {
3506   {
3507     SI opval = frvbf_read_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3508     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3509     written |= (1 << 6);
3510     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3511   }
3512 }
3513 }
3514
3515   abuf->written = written;
3516   return vpc;
3517 #undef FLD
3518 }
3519
3520 /* nldbf: nldbf$pack @($GRi,$GRj),$FRintk */
3521
3522 static SEM_PC
3523 SEM_FN_NAME (frvbf,nldbf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3524 {
3525 #define FLD(f) abuf->fields.sfmt_cldbfu.f
3526   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3527   int UNUSED written = 0;
3528   IADDR UNUSED pc = abuf->addr;
3529   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3530
3531 {
3532   BI tmp_do_op;
3533   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_FRk), 0, 0, 1);
3534 if (tmp_do_op) {
3535   {
3536     SI opval = frvbf_read_mem_UQI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3537     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
3538     written |= (1 << 6);
3539     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
3540   }
3541 }
3542 }
3543
3544   abuf->written = written;
3545   return vpc;
3546 #undef FLD
3547 }
3548
3549 /* nldhf: nldhf$pack @($GRi,$GRj),$FRintk */
3550
3551 static SEM_PC
3552 SEM_FN_NAME (frvbf,nldhf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3553 {
3554 #define FLD(f) abuf->fields.sfmt_cldbfu.f
3555   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3556   int UNUSED written = 0;
3557   IADDR UNUSED pc = abuf->addr;
3558   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3559
3560 {
3561   BI tmp_do_op;
3562   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_FRk), 0, 2, 1);
3563 if (tmp_do_op) {
3564   {
3565     SI opval = frvbf_read_mem_UHI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3566     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
3567     written |= (1 << 6);
3568     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
3569   }
3570 }
3571 }
3572
3573   abuf->written = written;
3574   return vpc;
3575 #undef FLD
3576 }
3577
3578 /* nldf: nldf$pack @($GRi,$GRj),$FRintk */
3579
3580 static SEM_PC
3581 SEM_FN_NAME (frvbf,nldf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3582 {
3583 #define FLD(f) abuf->fields.sfmt_cldbfu.f
3584   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3585   int UNUSED written = 0;
3586   IADDR UNUSED pc = abuf->addr;
3587   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3588
3589 {
3590   BI tmp_do_op;
3591   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_FRk), 0, 4, 1);
3592 if (tmp_do_op) {
3593   {
3594     SI opval = frvbf_read_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3595     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
3596     written |= (1 << 6);
3597     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
3598   }
3599 }
3600 }
3601
3602   abuf->written = written;
3603   return vpc;
3604 #undef FLD
3605 }
3606
3607 /* ldd: ldd$pack $lddann($GRi,$GRj),$GRdoublek */
3608
3609 static SEM_PC
3610 SEM_FN_NAME (frvbf,ldd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3611 {
3612 #define FLD(f) abuf->fields.sfmt_smulcc.f
3613   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3614   int UNUSED written = 0;
3615   IADDR UNUSED pc = abuf->addr;
3616   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3617
3618 {
3619   SI tmp_address;
3620 if (NESI (FLD (f_GRk), 0)) {
3621 {
3622   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3623   {
3624     DI opval = frvbf_read_mem_DI (current_cpu, pc, tmp_address);
3625     sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
3626     written |= (1 << 4);
3627     TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
3628   }
3629 }
3630 }
3631 }
3632
3633   abuf->written = written;
3634   return vpc;
3635 #undef FLD
3636 }
3637
3638 /* lddf: lddf$pack @($GRi,$GRj),$FRdoublek */
3639
3640 static SEM_PC
3641 SEM_FN_NAME (frvbf,lddf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3642 {
3643 #define FLD(f) abuf->fields.sfmt_clddfu.f
3644   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3645   int UNUSED written = 0;
3646   IADDR UNUSED pc = abuf->addr;
3647   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3648
3649 {
3650   SI tmp_address;
3651 {
3652   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3653   {
3654     DF opval = frvbf_read_mem_DF (current_cpu, pc, tmp_address);
3655     sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
3656     TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
3657   }
3658 }
3659 }
3660
3661   return vpc;
3662 #undef FLD
3663 }
3664
3665 /* lddc: lddc$pack @($GRi,$GRj),$CPRdoublek */
3666
3667 static SEM_PC
3668 SEM_FN_NAME (frvbf,lddc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3669 {
3670 #define FLD(f) abuf->fields.sfmt_lddcu.f
3671   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3672   int UNUSED written = 0;
3673   IADDR UNUSED pc = abuf->addr;
3674   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3675
3676 {
3677   SI tmp_address;
3678 {
3679   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3680   {
3681     DI opval = frvbf_read_mem_DI (current_cpu, pc, tmp_address);
3682     sim_queue_fn_di_write (current_cpu, frvbf_h_cpr_double_set, FLD (f_CPRk), opval);
3683     TRACE_RESULT (current_cpu, abuf, "cpr_double", 'D', opval);
3684   }
3685 }
3686 }
3687
3688   return vpc;
3689 #undef FLD
3690 }
3691
3692 /* nldd: nldd$pack @($GRi,$GRj),$GRdoublek */
3693
3694 static SEM_PC
3695 SEM_FN_NAME (frvbf,nldd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3696 {
3697 #define FLD(f) abuf->fields.sfmt_smulcc.f
3698   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3699   int UNUSED written = 0;
3700   IADDR UNUSED pc = abuf->addr;
3701   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3702
3703 {
3704   SI tmp_address;
3705 {
3706   BI tmp_do_op;
3707   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 5, 0);
3708 if (tmp_do_op) {
3709 if (NESI (FLD (f_GRk), 0)) {
3710 {
3711   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3712   {
3713     DI opval = frvbf_read_mem_DI (current_cpu, pc, tmp_address);
3714     sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
3715     written |= (1 << 6);
3716     TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
3717   }
3718 }
3719 }
3720 }
3721 }
3722 }
3723
3724   abuf->written = written;
3725   return vpc;
3726 #undef FLD
3727 }
3728
3729 /* nlddf: nlddf$pack @($GRi,$GRj),$FRdoublek */
3730
3731 static SEM_PC
3732 SEM_FN_NAME (frvbf,nlddf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3733 {
3734 #define FLD(f) abuf->fields.sfmt_clddfu.f
3735   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3736   int UNUSED written = 0;
3737   IADDR UNUSED pc = abuf->addr;
3738   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3739
3740 {
3741   SI tmp_address;
3742 {
3743   BI tmp_do_op;
3744   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_FRk), 0, 5, 1);
3745 if (tmp_do_op) {
3746 {
3747   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3748   {
3749     DF opval = frvbf_read_mem_DF (current_cpu, pc, tmp_address);
3750     sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
3751     written |= (1 << 6);
3752     TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
3753   }
3754 }
3755 }
3756 }
3757 }
3758
3759   abuf->written = written;
3760   return vpc;
3761 #undef FLD
3762 }
3763
3764 /* ldq: ldq$pack @($GRi,$GRj),$GRk */
3765
3766 static SEM_PC
3767 SEM_FN_NAME (frvbf,ldq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3768 {
3769 #define FLD(f) abuf->fields.sfmt_smulcc.f
3770   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3771   int UNUSED written = 0;
3772   IADDR UNUSED pc = abuf->addr;
3773   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3774
3775 {
3776   SI tmp_address;
3777 {
3778   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3779 frvbf_load_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
3780 }
3781 }
3782
3783   return vpc;
3784 #undef FLD
3785 }
3786
3787 /* ldqf: ldqf$pack @($GRi,$GRj),$FRintk */
3788
3789 static SEM_PC
3790 SEM_FN_NAME (frvbf,ldqf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3791 {
3792 #define FLD(f) abuf->fields.sfmt_cstdfu.f
3793   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3794   int UNUSED written = 0;
3795   IADDR UNUSED pc = abuf->addr;
3796   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3797
3798 {
3799   SI tmp_address;
3800 {
3801   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3802 frvbf_load_quad_FRint (current_cpu, pc, tmp_address, FLD (f_FRk));
3803 }
3804 }
3805
3806   return vpc;
3807 #undef FLD
3808 }
3809
3810 /* ldqc: ldqc$pack @($GRi,$GRj),$CPRk */
3811
3812 static SEM_PC
3813 SEM_FN_NAME (frvbf,ldqc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3814 {
3815 #define FLD(f) abuf->fields.sfmt_stdcu.f
3816   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3817   int UNUSED written = 0;
3818   IADDR UNUSED pc = abuf->addr;
3819   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3820
3821 {
3822   SI tmp_address;
3823 {
3824   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3825 frvbf_load_quad_CPR (current_cpu, pc, tmp_address, FLD (f_CPRk));
3826 }
3827 }
3828
3829   return vpc;
3830 #undef FLD
3831 }
3832
3833 /* nldq: nldq$pack @($GRi,$GRj),$GRk */
3834
3835 static SEM_PC
3836 SEM_FN_NAME (frvbf,nldq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3837 {
3838 #define FLD(f) abuf->fields.sfmt_smulcc.f
3839   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3840   int UNUSED written = 0;
3841   IADDR UNUSED pc = abuf->addr;
3842   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3843
3844 {
3845   SI tmp_address;
3846 {
3847   BI tmp_do_op;
3848   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 6, 0);
3849 if (tmp_do_op) {
3850 {
3851   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3852 frvbf_load_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
3853 }
3854 }
3855 }
3856 }
3857
3858   return vpc;
3859 #undef FLD
3860 }
3861
3862 /* nldqf: nldqf$pack @($GRi,$GRj),$FRintk */
3863
3864 static SEM_PC
3865 SEM_FN_NAME (frvbf,nldqf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3866 {
3867 #define FLD(f) abuf->fields.sfmt_cstdfu.f
3868   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3869   int UNUSED written = 0;
3870   IADDR UNUSED pc = abuf->addr;
3871   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3872
3873 {
3874   SI tmp_address;
3875 {
3876   BI tmp_do_op;
3877   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_FRk), 0, 6, 1);
3878 if (tmp_do_op) {
3879 {
3880   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3881 frvbf_load_quad_FRint (current_cpu, pc, tmp_address, FLD (f_FRk));
3882 }
3883 }
3884 }
3885 }
3886
3887   return vpc;
3888 #undef FLD
3889 }
3890
3891 /* ldsbu: ldsbu$pack @($GRi,$GRj),$GRk */
3892
3893 static SEM_PC
3894 SEM_FN_NAME (frvbf,ldsbu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3895 {
3896 #define FLD(f) abuf->fields.sfmt_cldsbu.f
3897   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3898   int UNUSED written = 0;
3899   IADDR UNUSED pc = abuf->addr;
3900   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3901
3902 {
3903   USI tmp_address;
3904   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3905   {
3906     SI opval = frvbf_read_mem_QI (current_cpu, pc, tmp_address);
3907     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3908     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3909   }
3910 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
3911 {
3912   {
3913     SI opval = tmp_address;
3914     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
3915     written |= (1 << 5);
3916     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3917   }
3918 frvbf_force_update (current_cpu);
3919 }
3920 }
3921 }
3922
3923   abuf->written = written;
3924   return vpc;
3925 #undef FLD
3926 }
3927
3928 /* ldubu: ldubu$pack @($GRi,$GRj),$GRk */
3929
3930 static SEM_PC
3931 SEM_FN_NAME (frvbf,ldubu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3932 {
3933 #define FLD(f) abuf->fields.sfmt_cldsbu.f
3934   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3935   int UNUSED written = 0;
3936   IADDR UNUSED pc = abuf->addr;
3937   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3938
3939 {
3940   USI tmp_address;
3941   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3942   {
3943     SI opval = frvbf_read_mem_UQI (current_cpu, pc, tmp_address);
3944     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3945     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3946   }
3947 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
3948 {
3949   {
3950     SI opval = tmp_address;
3951     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
3952     written |= (1 << 5);
3953     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3954   }
3955 frvbf_force_update (current_cpu);
3956 }
3957 }
3958 }
3959
3960   abuf->written = written;
3961   return vpc;
3962 #undef FLD
3963 }
3964
3965 /* ldshu: ldshu$pack @($GRi,$GRj),$GRk */
3966
3967 static SEM_PC
3968 SEM_FN_NAME (frvbf,ldshu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3969 {
3970 #define FLD(f) abuf->fields.sfmt_cldsbu.f
3971   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3972   int UNUSED written = 0;
3973   IADDR UNUSED pc = abuf->addr;
3974   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3975
3976 {
3977   USI tmp_address;
3978   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3979   {
3980     SI opval = frvbf_read_mem_HI (current_cpu, pc, tmp_address);
3981     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3982     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3983   }
3984 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
3985 {
3986   {
3987     SI opval = tmp_address;
3988     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
3989     written |= (1 << 5);
3990     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3991   }
3992 frvbf_force_update (current_cpu);
3993 }
3994 }
3995 }
3996
3997   abuf->written = written;
3998   return vpc;
3999 #undef FLD
4000 }
4001
4002 /* lduhu: lduhu$pack @($GRi,$GRj),$GRk */
4003
4004 static SEM_PC
4005 SEM_FN_NAME (frvbf,lduhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4006 {
4007 #define FLD(f) abuf->fields.sfmt_cldsbu.f
4008   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4009   int UNUSED written = 0;
4010   IADDR UNUSED pc = abuf->addr;
4011   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4012
4013 {
4014   USI tmp_address;
4015   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4016   {
4017     SI opval = frvbf_read_mem_UHI (current_cpu, pc, tmp_address);
4018     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
4019     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4020   }
4021 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
4022 {
4023   {
4024     SI opval = tmp_address;
4025     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4026     written |= (1 << 5);
4027     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4028   }
4029 frvbf_force_update (current_cpu);
4030 }
4031 }
4032 }
4033
4034   abuf->written = written;
4035   return vpc;
4036 #undef FLD
4037 }
4038
4039 /* ldu: ldu$pack @($GRi,$GRj),$GRk */
4040
4041 static SEM_PC
4042 SEM_FN_NAME (frvbf,ldu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4043 {
4044 #define FLD(f) abuf->fields.sfmt_cldsbu.f
4045   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4046   int UNUSED written = 0;
4047   IADDR UNUSED pc = abuf->addr;
4048   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4049
4050 {
4051   USI tmp_address;
4052   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4053   {
4054     SI opval = frvbf_read_mem_SI (current_cpu, pc, tmp_address);
4055     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
4056     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4057   }
4058 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
4059 {
4060   {
4061     SI opval = tmp_address;
4062     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4063     written |= (1 << 5);
4064     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4065   }
4066 frvbf_force_update (current_cpu);
4067 }
4068 }
4069 }
4070
4071   abuf->written = written;
4072   return vpc;
4073 #undef FLD
4074 }
4075
4076 /* nldsbu: nldsbu$pack @($GRi,$GRj),$GRk */
4077
4078 static SEM_PC
4079 SEM_FN_NAME (frvbf,nldsbu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4080 {
4081 #define FLD(f) abuf->fields.sfmt_cldsbu.f
4082   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4083   int UNUSED written = 0;
4084   IADDR UNUSED pc = abuf->addr;
4085   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4086
4087 {
4088   BI tmp_do_op;
4089   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 1, 0);
4090 if (tmp_do_op) {
4091 {
4092   USI tmp_address;
4093   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4094   {
4095     SI opval = frvbf_read_mem_QI (current_cpu, pc, tmp_address);
4096     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
4097     written |= (1 << 7);
4098     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4099   }
4100 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
4101 {
4102   {
4103     SI opval = tmp_address;
4104     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4105     written |= (1 << 6);
4106     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4107   }
4108 frvbf_force_update (current_cpu);
4109 }
4110 }
4111 }
4112 }
4113 }
4114
4115   abuf->written = written;
4116   return vpc;
4117 #undef FLD
4118 }
4119
4120 /* nldubu: nldubu$pack @($GRi,$GRj),$GRk */
4121
4122 static SEM_PC
4123 SEM_FN_NAME (frvbf,nldubu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4124 {
4125 #define FLD(f) abuf->fields.sfmt_cldsbu.f
4126   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4127   int UNUSED written = 0;
4128   IADDR UNUSED pc = abuf->addr;
4129   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4130
4131 {
4132   BI tmp_do_op;
4133   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 0, 0);
4134 if (tmp_do_op) {
4135 {
4136   USI tmp_address;
4137   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4138   {
4139     SI opval = frvbf_read_mem_UQI (current_cpu, pc, tmp_address);
4140     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
4141     written |= (1 << 7);
4142     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4143   }
4144 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
4145 {
4146   {
4147     SI opval = tmp_address;
4148     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4149     written |= (1 << 6);
4150     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4151   }
4152 frvbf_force_update (current_cpu);
4153 }
4154 }
4155 }
4156 }
4157 }
4158
4159   abuf->written = written;
4160   return vpc;
4161 #undef FLD
4162 }
4163
4164 /* nldshu: nldshu$pack @($GRi,$GRj),$GRk */
4165
4166 static SEM_PC
4167 SEM_FN_NAME (frvbf,nldshu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4168 {
4169 #define FLD(f) abuf->fields.sfmt_cldsbu.f
4170   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4171   int UNUSED written = 0;
4172   IADDR UNUSED pc = abuf->addr;
4173   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4174
4175 {
4176   BI tmp_do_op;
4177   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 3, 0);
4178 if (tmp_do_op) {
4179 {
4180   USI tmp_address;
4181   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4182   {
4183     SI opval = frvbf_read_mem_HI (current_cpu, pc, tmp_address);
4184     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
4185     written |= (1 << 7);
4186     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4187   }
4188 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
4189 {
4190   {
4191     SI opval = tmp_address;
4192     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4193     written |= (1 << 6);
4194     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4195   }
4196 frvbf_force_update (current_cpu);
4197 }
4198 }
4199 }
4200 }
4201 }
4202
4203   abuf->written = written;
4204   return vpc;
4205 #undef FLD
4206 }
4207
4208 /* nlduhu: nlduhu$pack @($GRi,$GRj),$GRk */
4209
4210 static SEM_PC
4211 SEM_FN_NAME (frvbf,nlduhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4212 {
4213 #define FLD(f) abuf->fields.sfmt_cldsbu.f
4214   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4215   int UNUSED written = 0;
4216   IADDR UNUSED pc = abuf->addr;
4217   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4218
4219 {
4220   BI tmp_do_op;
4221   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 2, 0);
4222 if (tmp_do_op) {
4223 {
4224   USI tmp_address;
4225   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4226   {
4227     SI opval = frvbf_read_mem_UHI (current_cpu, pc, tmp_address);
4228     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
4229     written |= (1 << 7);
4230     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4231   }
4232 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
4233 {
4234   {
4235     SI opval = tmp_address;
4236     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4237     written |= (1 << 6);
4238     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4239   }
4240 frvbf_force_update (current_cpu);
4241 }
4242 }
4243 }
4244 }
4245 }
4246
4247   abuf->written = written;
4248   return vpc;
4249 #undef FLD
4250 }
4251
4252 /* nldu: nldu$pack @($GRi,$GRj),$GRk */
4253
4254 static SEM_PC
4255 SEM_FN_NAME (frvbf,nldu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4256 {
4257 #define FLD(f) abuf->fields.sfmt_cldsbu.f
4258   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4259   int UNUSED written = 0;
4260   IADDR UNUSED pc = abuf->addr;
4261   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4262
4263 {
4264   BI tmp_do_op;
4265   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 4, 0);
4266 if (tmp_do_op) {
4267 {
4268   USI tmp_address;
4269   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4270   {
4271     SI opval = frvbf_read_mem_SI (current_cpu, pc, tmp_address);
4272     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
4273     written |= (1 << 7);
4274     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4275   }
4276 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
4277 {
4278   {
4279     SI opval = tmp_address;
4280     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4281     written |= (1 << 6);
4282     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4283   }
4284 frvbf_force_update (current_cpu);
4285 }
4286 }
4287 }
4288 }
4289 }
4290
4291   abuf->written = written;
4292   return vpc;
4293 #undef FLD
4294 }
4295
4296 /* ldbfu: ldbfu$pack @($GRi,$GRj),$FRintk */
4297
4298 static SEM_PC
4299 SEM_FN_NAME (frvbf,ldbfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4300 {
4301 #define FLD(f) abuf->fields.sfmt_cldbfu.f
4302   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4303   int UNUSED written = 0;
4304   IADDR UNUSED pc = abuf->addr;
4305   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4306
4307 {
4308   USI tmp_address;
4309   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4310   {
4311     SI opval = frvbf_read_mem_UQI (current_cpu, pc, tmp_address);
4312     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
4313     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
4314   }
4315   {
4316     SI opval = tmp_address;
4317     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4318     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4319   }
4320 frvbf_force_update (current_cpu);
4321 }
4322
4323   return vpc;
4324 #undef FLD
4325 }
4326
4327 /* ldhfu: ldhfu$pack @($GRi,$GRj),$FRintk */
4328
4329 static SEM_PC
4330 SEM_FN_NAME (frvbf,ldhfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4331 {
4332 #define FLD(f) abuf->fields.sfmt_cldbfu.f
4333   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4334   int UNUSED written = 0;
4335   IADDR UNUSED pc = abuf->addr;
4336   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4337
4338 {
4339   USI tmp_address;
4340   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4341   {
4342     SI opval = frvbf_read_mem_UHI (current_cpu, pc, tmp_address);
4343     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
4344     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
4345   }
4346   {
4347     SI opval = tmp_address;
4348     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4349     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4350   }
4351 frvbf_force_update (current_cpu);
4352 }
4353
4354   return vpc;
4355 #undef FLD
4356 }
4357
4358 /* ldfu: ldfu$pack @($GRi,$GRj),$FRintk */
4359
4360 static SEM_PC
4361 SEM_FN_NAME (frvbf,ldfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4362 {
4363 #define FLD(f) abuf->fields.sfmt_cldbfu.f
4364   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4365   int UNUSED written = 0;
4366   IADDR UNUSED pc = abuf->addr;
4367   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4368
4369 {
4370   USI tmp_address;
4371   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4372   {
4373     SI opval = frvbf_read_mem_SI (current_cpu, pc, tmp_address);
4374     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
4375     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
4376   }
4377   {
4378     SI opval = tmp_address;
4379     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4380     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4381   }
4382 frvbf_force_update (current_cpu);
4383 }
4384
4385   return vpc;
4386 #undef FLD
4387 }
4388
4389 /* ldcu: ldcu$pack @($GRi,$GRj),$CPRk */
4390
4391 static SEM_PC
4392 SEM_FN_NAME (frvbf,ldcu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4393 {
4394 #define FLD(f) abuf->fields.sfmt_ldcu.f
4395   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4396   int UNUSED written = 0;
4397   IADDR UNUSED pc = abuf->addr;
4398   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4399
4400 {
4401   USI tmp_address;
4402   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4403   {
4404     SI opval = frvbf_read_mem_SI (current_cpu, pc, tmp_address);
4405     sim_queue_si_write (current_cpu, & CPU (h_cpr[FLD (f_CPRk)]), opval);
4406     TRACE_RESULT (current_cpu, abuf, "cpr", 'x', opval);
4407   }
4408   {
4409     SI opval = tmp_address;
4410     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4411     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4412   }
4413 frvbf_force_update (current_cpu);
4414 }
4415
4416   return vpc;
4417 #undef FLD
4418 }
4419
4420 /* nldbfu: nldbfu$pack @($GRi,$GRj),$FRintk */
4421
4422 static SEM_PC
4423 SEM_FN_NAME (frvbf,nldbfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4424 {
4425 #define FLD(f) abuf->fields.sfmt_cldbfu.f
4426   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4427   int UNUSED written = 0;
4428   IADDR UNUSED pc = abuf->addr;
4429   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4430
4431 {
4432   BI tmp_do_op;
4433   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_FRk), 0, 0, 1);
4434 if (tmp_do_op) {
4435 {
4436   USI tmp_address;
4437   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4438   {
4439     SI opval = frvbf_read_mem_UQI (current_cpu, pc, tmp_address);
4440     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
4441     written |= (1 << 6);
4442     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
4443   }
4444   {
4445     SI opval = tmp_address;
4446     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4447     written |= (1 << 7);
4448     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4449   }
4450 frvbf_force_update (current_cpu);
4451 }
4452 }
4453 }
4454
4455   abuf->written = written;
4456   return vpc;
4457 #undef FLD
4458 }
4459
4460 /* nldhfu: nldhfu$pack @($GRi,$GRj),$FRintk */
4461
4462 static SEM_PC
4463 SEM_FN_NAME (frvbf,nldhfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4464 {
4465 #define FLD(f) abuf->fields.sfmt_cldbfu.f
4466   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4467   int UNUSED written = 0;
4468   IADDR UNUSED pc = abuf->addr;
4469   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4470
4471 {
4472   BI tmp_do_op;
4473   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_FRk), 0, 2, 1);
4474 if (tmp_do_op) {
4475 {
4476   USI tmp_address;
4477   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4478   {
4479     SI opval = frvbf_read_mem_UHI (current_cpu, pc, tmp_address);
4480     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
4481     written |= (1 << 6);
4482     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
4483   }
4484   {
4485     SI opval = tmp_address;
4486     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4487     written |= (1 << 7);
4488     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4489   }
4490 frvbf_force_update (current_cpu);
4491 }
4492 }
4493 }
4494
4495   abuf->written = written;
4496   return vpc;
4497 #undef FLD
4498 }
4499
4500 /* nldfu: nldfu$pack @($GRi,$GRj),$FRintk */
4501
4502 static SEM_PC
4503 SEM_FN_NAME (frvbf,nldfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4504 {
4505 #define FLD(f) abuf->fields.sfmt_cldbfu.f
4506   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4507   int UNUSED written = 0;
4508   IADDR UNUSED pc = abuf->addr;
4509   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4510
4511 {
4512   BI tmp_do_op;
4513   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_FRk), 0, 4, 1);
4514 if (tmp_do_op) {
4515 {
4516   USI tmp_address;
4517   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4518   {
4519     SI opval = frvbf_read_mem_SI (current_cpu, pc, tmp_address);
4520     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
4521     written |= (1 << 6);
4522     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
4523   }
4524   {
4525     SI opval = tmp_address;
4526     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4527     written |= (1 << 7);
4528     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4529   }
4530 frvbf_force_update (current_cpu);
4531 }
4532 }
4533 }
4534
4535   abuf->written = written;
4536   return vpc;
4537 #undef FLD
4538 }
4539
4540 /* lddu: lddu$pack @($GRi,$GRj),$GRdoublek */
4541
4542 static SEM_PC
4543 SEM_FN_NAME (frvbf,lddu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4544 {
4545 #define FLD(f) abuf->fields.sfmt_clddu.f
4546   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4547   int UNUSED written = 0;
4548   IADDR UNUSED pc = abuf->addr;
4549   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4550
4551 {
4552   SI tmp_address;
4553 if (NESI (FLD (f_GRk), 0)) {
4554 {
4555   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4556   {
4557     DI opval = frvbf_read_mem_DI (current_cpu, pc, tmp_address);
4558     sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
4559     written |= (1 << 5);
4560     TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
4561   }
4562 }
4563 }
4564 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
4565 {
4566   {
4567     SI opval = tmp_address;
4568     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4569     written |= (1 << 6);
4570     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4571   }
4572 frvbf_force_update (current_cpu);
4573 }
4574 }
4575 }
4576
4577   abuf->written = written;
4578   return vpc;
4579 #undef FLD
4580 }
4581
4582 /* nlddu: nlddu$pack @($GRi,$GRj),$GRdoublek */
4583
4584 static SEM_PC
4585 SEM_FN_NAME (frvbf,nlddu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4586 {
4587 #define FLD(f) abuf->fields.sfmt_clddu.f
4588   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4589   int UNUSED written = 0;
4590   IADDR UNUSED pc = abuf->addr;
4591   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4592
4593 {
4594   BI tmp_do_op;
4595   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 5, 0);
4596 if (tmp_do_op) {
4597 {
4598   SI tmp_address;
4599 if (NESI (FLD (f_GRk), 0)) {
4600 {
4601   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4602   {
4603     DI opval = frvbf_read_mem_DI (current_cpu, pc, tmp_address);
4604     sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
4605     written |= (1 << 6);
4606     TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
4607   }
4608 }
4609 }
4610 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
4611 {
4612   {
4613     SI opval = tmp_address;
4614     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4615     written |= (1 << 7);
4616     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4617   }
4618 frvbf_force_update (current_cpu);
4619 }
4620 }
4621 }
4622 }
4623 }
4624
4625   abuf->written = written;
4626   return vpc;
4627 #undef FLD
4628 }
4629
4630 /* lddfu: lddfu$pack @($GRi,$GRj),$FRdoublek */
4631
4632 static SEM_PC
4633 SEM_FN_NAME (frvbf,lddfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4634 {
4635 #define FLD(f) abuf->fields.sfmt_clddfu.f
4636   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4637   int UNUSED written = 0;
4638   IADDR UNUSED pc = abuf->addr;
4639   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4640
4641 {
4642   SI tmp_address;
4643 {
4644   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4645   {
4646     DF opval = frvbf_read_mem_DF (current_cpu, pc, tmp_address);
4647     sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
4648     TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
4649   }
4650 }
4651   {
4652     SI opval = tmp_address;
4653     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4654     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4655   }
4656 frvbf_force_update (current_cpu);
4657 }
4658
4659   return vpc;
4660 #undef FLD
4661 }
4662
4663 /* lddcu: lddcu$pack @($GRi,$GRj),$CPRdoublek */
4664
4665 static SEM_PC
4666 SEM_FN_NAME (frvbf,lddcu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4667 {
4668 #define FLD(f) abuf->fields.sfmt_lddcu.f
4669   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4670   int UNUSED written = 0;
4671   IADDR UNUSED pc = abuf->addr;
4672   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4673
4674 {
4675   SI tmp_address;
4676 {
4677   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4678   {
4679     DI opval = frvbf_read_mem_DI (current_cpu, pc, tmp_address);
4680     sim_queue_fn_di_write (current_cpu, frvbf_h_cpr_double_set, FLD (f_CPRk), opval);
4681     TRACE_RESULT (current_cpu, abuf, "cpr_double", 'D', opval);
4682   }
4683 }
4684   {
4685     SI opval = tmp_address;
4686     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4687     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4688   }
4689 frvbf_force_update (current_cpu);
4690 }
4691
4692   return vpc;
4693 #undef FLD
4694 }
4695
4696 /* nlddfu: nlddfu$pack @($GRi,$GRj),$FRdoublek */
4697
4698 static SEM_PC
4699 SEM_FN_NAME (frvbf,nlddfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4700 {
4701 #define FLD(f) abuf->fields.sfmt_clddfu.f
4702   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4703   int UNUSED written = 0;
4704   IADDR UNUSED pc = abuf->addr;
4705   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4706
4707 {
4708   BI tmp_do_op;
4709   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_FRk), 0, 5, 1);
4710 if (tmp_do_op) {
4711 {
4712   SI tmp_address;
4713 {
4714   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4715   {
4716     DF opval = frvbf_read_mem_DF (current_cpu, pc, tmp_address);
4717     sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
4718     written |= (1 << 6);
4719     TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
4720   }
4721 }
4722   {
4723     SI opval = tmp_address;
4724     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4725     written |= (1 << 7);
4726     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4727   }
4728 frvbf_force_update (current_cpu);
4729 }
4730 }
4731 }
4732
4733   abuf->written = written;
4734   return vpc;
4735 #undef FLD
4736 }
4737
4738 /* ldqu: ldqu$pack @($GRi,$GRj),$GRk */
4739
4740 static SEM_PC
4741 SEM_FN_NAME (frvbf,ldqu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4742 {
4743 #define FLD(f) abuf->fields.sfmt_cstdu.f
4744   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4745   int UNUSED written = 0;
4746   IADDR UNUSED pc = abuf->addr;
4747   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4748
4749 {
4750   SI tmp_address;
4751 {
4752   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4753 frvbf_load_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
4754 }
4755 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
4756 {
4757   {
4758     SI opval = tmp_address;
4759     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4760     written |= (1 << 5);
4761     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4762   }
4763 frvbf_force_update (current_cpu);
4764 }
4765 }
4766 }
4767
4768   abuf->written = written;
4769   return vpc;
4770 #undef FLD
4771 }
4772
4773 /* nldqu: nldqu$pack @($GRi,$GRj),$GRk */
4774
4775 static SEM_PC
4776 SEM_FN_NAME (frvbf,nldqu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4777 {
4778 #define FLD(f) abuf->fields.sfmt_cstdu.f
4779   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4780   int UNUSED written = 0;
4781   IADDR UNUSED pc = abuf->addr;
4782   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4783
4784 {
4785   BI tmp_do_op;
4786   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 6, 0);
4787 if (tmp_do_op) {
4788 {
4789   SI tmp_address;
4790 {
4791   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4792 frvbf_load_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
4793 }
4794 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
4795 {
4796   {
4797     SI opval = tmp_address;
4798     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4799     written |= (1 << 6);
4800     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4801   }
4802 frvbf_force_update (current_cpu);
4803 }
4804 }
4805 }
4806 }
4807 }
4808
4809   abuf->written = written;
4810   return vpc;
4811 #undef FLD
4812 }
4813
4814 /* ldqfu: ldqfu$pack @($GRi,$GRj),$FRintk */
4815
4816 static SEM_PC
4817 SEM_FN_NAME (frvbf,ldqfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4818 {
4819 #define FLD(f) abuf->fields.sfmt_cstdfu.f
4820   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4821   int UNUSED written = 0;
4822   IADDR UNUSED pc = abuf->addr;
4823   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4824
4825 {
4826   SI tmp_address;
4827 {
4828   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4829 frvbf_load_quad_FRint (current_cpu, pc, tmp_address, FLD (f_FRk));
4830 }
4831   {
4832     SI opval = tmp_address;
4833     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4834     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4835   }
4836 frvbf_force_update (current_cpu);
4837 }
4838
4839   return vpc;
4840 #undef FLD
4841 }
4842
4843 /* ldqcu: ldqcu$pack @($GRi,$GRj),$CPRk */
4844
4845 static SEM_PC
4846 SEM_FN_NAME (frvbf,ldqcu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4847 {
4848 #define FLD(f) abuf->fields.sfmt_stdcu.f
4849   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4850   int UNUSED written = 0;
4851   IADDR UNUSED pc = abuf->addr;
4852   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4853
4854 {
4855   SI tmp_address;
4856 {
4857   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4858 frvbf_load_quad_CPR (current_cpu, pc, tmp_address, FLD (f_CPRk));
4859 }
4860   {
4861     SI opval = tmp_address;
4862     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4863     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4864   }
4865 frvbf_force_update (current_cpu);
4866 }
4867
4868   return vpc;
4869 #undef FLD
4870 }
4871
4872 /* nldqfu: nldqfu$pack @($GRi,$GRj),$FRintk */
4873
4874 static SEM_PC
4875 SEM_FN_NAME (frvbf,nldqfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4876 {
4877 #define FLD(f) abuf->fields.sfmt_cstdfu.f
4878   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4879   int UNUSED written = 0;
4880   IADDR UNUSED pc = abuf->addr;
4881   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4882
4883 {
4884   BI tmp_do_op;
4885   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_FRk), 0, 6, 1);
4886 if (tmp_do_op) {
4887 {
4888   SI tmp_address;
4889 {
4890   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4891 frvbf_load_quad_FRint (current_cpu, pc, tmp_address, FLD (f_FRk));
4892 }
4893   {
4894     SI opval = tmp_address;
4895     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4896     written |= (1 << 6);
4897     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4898   }
4899 frvbf_force_update (current_cpu);
4900 }
4901 }
4902 }
4903
4904   abuf->written = written;
4905   return vpc;
4906 #undef FLD
4907 }
4908
4909 /* ldsbi: ldsbi$pack @($GRi,$d12),$GRk */
4910
4911 static SEM_PC
4912 SEM_FN_NAME (frvbf,ldsbi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4913 {
4914 #define FLD(f) abuf->fields.sfmt_swapi.f
4915   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4916   int UNUSED written = 0;
4917   IADDR UNUSED pc = abuf->addr;
4918   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4919
4920   {
4921     SI opval = frvbf_read_mem_QI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
4922     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
4923     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4924   }
4925
4926   return vpc;
4927 #undef FLD
4928 }
4929
4930 /* ldshi: ldshi$pack @($GRi,$d12),$GRk */
4931
4932 static SEM_PC
4933 SEM_FN_NAME (frvbf,ldshi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4934 {
4935 #define FLD(f) abuf->fields.sfmt_swapi.f
4936   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4937   int UNUSED written = 0;
4938   IADDR UNUSED pc = abuf->addr;
4939   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4940
4941   {
4942     SI opval = frvbf_read_mem_HI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
4943     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
4944     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4945   }
4946
4947   return vpc;
4948 #undef FLD
4949 }
4950
4951 /* ldi: ldi$pack @($GRi,$d12),$GRk */
4952
4953 static SEM_PC
4954 SEM_FN_NAME (frvbf,ldi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4955 {
4956 #define FLD(f) abuf->fields.sfmt_swapi.f
4957   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4958   int UNUSED written = 0;
4959   IADDR UNUSED pc = abuf->addr;
4960   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4961
4962   {
4963     SI opval = frvbf_read_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
4964     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
4965     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4966   }
4967
4968   return vpc;
4969 #undef FLD
4970 }
4971
4972 /* ldubi: ldubi$pack @($GRi,$d12),$GRk */
4973
4974 static SEM_PC
4975 SEM_FN_NAME (frvbf,ldubi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4976 {
4977 #define FLD(f) abuf->fields.sfmt_swapi.f
4978   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4979   int UNUSED written = 0;
4980   IADDR UNUSED pc = abuf->addr;
4981   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4982
4983   {
4984     SI opval = frvbf_read_mem_UQI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
4985     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
4986     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4987   }
4988
4989   return vpc;
4990 #undef FLD
4991 }
4992
4993 /* lduhi: lduhi$pack @($GRi,$d12),$GRk */
4994
4995 static SEM_PC
4996 SEM_FN_NAME (frvbf,lduhi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4997 {
4998 #define FLD(f) abuf->fields.sfmt_swapi.f
4999   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5000   int UNUSED written = 0;
5001   IADDR UNUSED pc = abuf->addr;
5002   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5003
5004   {
5005     SI opval = frvbf_read_mem_UHI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
5006     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
5007     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5008   }
5009
5010   return vpc;
5011 #undef FLD
5012 }
5013
5014 /* ldbfi: ldbfi$pack @($GRi,$d12),$FRintk */
5015
5016 static SEM_PC
5017 SEM_FN_NAME (frvbf,ldbfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5018 {
5019 #define FLD(f) abuf->fields.sfmt_ldbfi.f
5020   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5021   int UNUSED written = 0;
5022   IADDR UNUSED pc = abuf->addr;
5023   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5024
5025   {
5026     SI opval = frvbf_read_mem_UQI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
5027     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
5028     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
5029   }
5030
5031   return vpc;
5032 #undef FLD
5033 }
5034
5035 /* ldhfi: ldhfi$pack @($GRi,$d12),$FRintk */
5036
5037 static SEM_PC
5038 SEM_FN_NAME (frvbf,ldhfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5039 {
5040 #define FLD(f) abuf->fields.sfmt_ldbfi.f
5041   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5042   int UNUSED written = 0;
5043   IADDR UNUSED pc = abuf->addr;
5044   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5045
5046   {
5047     SI opval = frvbf_read_mem_UHI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
5048     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
5049     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
5050   }
5051
5052   return vpc;
5053 #undef FLD
5054 }
5055
5056 /* ldfi: ldfi$pack @($GRi,$d12),$FRintk */
5057
5058 static SEM_PC
5059 SEM_FN_NAME (frvbf,ldfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5060 {
5061 #define FLD(f) abuf->fields.sfmt_ldbfi.f
5062   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5063   int UNUSED written = 0;
5064   IADDR UNUSED pc = abuf->addr;
5065   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5066
5067   {
5068     SI opval = frvbf_read_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
5069     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
5070     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
5071   }
5072
5073   return vpc;
5074 #undef FLD
5075 }
5076
5077 /* nldsbi: nldsbi$pack @($GRi,$d12),$GRk */
5078
5079 static SEM_PC
5080 SEM_FN_NAME (frvbf,nldsbi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5081 {
5082 #define FLD(f) abuf->fields.sfmt_swapi.f
5083   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5084   int UNUSED written = 0;
5085   IADDR UNUSED pc = abuf->addr;
5086   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5087
5088 {
5089   BI tmp_do_op;
5090   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), -1, FLD (f_GRk), FLD (f_d12), 1, 0);
5091 if (tmp_do_op) {
5092   {
5093     SI opval = frvbf_read_mem_QI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
5094     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
5095     written |= (1 << 5);
5096     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5097   }
5098 }
5099 }
5100
5101   abuf->written = written;
5102   return vpc;
5103 #undef FLD
5104 }
5105
5106 /* nldubi: nldubi$pack @($GRi,$d12),$GRk */
5107
5108 static SEM_PC
5109 SEM_FN_NAME (frvbf,nldubi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5110 {
5111 #define FLD(f) abuf->fields.sfmt_swapi.f
5112   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5113   int UNUSED written = 0;
5114   IADDR UNUSED pc = abuf->addr;
5115   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5116
5117 {
5118   BI tmp_do_op;
5119   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), -1, FLD (f_GRk), FLD (f_d12), 0, 0);
5120 if (tmp_do_op) {
5121   {
5122     SI opval = frvbf_read_mem_UQI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
5123     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
5124     written |= (1 << 5);
5125     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5126   }
5127 }
5128 }
5129
5130   abuf->written = written;
5131   return vpc;
5132 #undef FLD
5133 }
5134
5135 /* nldshi: nldshi$pack @($GRi,$d12),$GRk */
5136
5137 static SEM_PC
5138 SEM_FN_NAME (frvbf,nldshi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5139 {
5140 #define FLD(f) abuf->fields.sfmt_swapi.f
5141   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5142   int UNUSED written = 0;
5143   IADDR UNUSED pc = abuf->addr;
5144   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5145
5146 {
5147   BI tmp_do_op;
5148   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), -1, FLD (f_GRk), FLD (f_d12), 3, 0);
5149 if (tmp_do_op) {
5150   {
5151     SI opval = frvbf_read_mem_HI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
5152     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
5153     written |= (1 << 5);
5154     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5155   }
5156 }
5157 }
5158
5159   abuf->written = written;
5160   return vpc;
5161 #undef FLD
5162 }
5163
5164 /* nlduhi: nlduhi$pack @($GRi,$d12),$GRk */
5165
5166 static SEM_PC
5167 SEM_FN_NAME (frvbf,nlduhi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5168 {
5169 #define FLD(f) abuf->fields.sfmt_swapi.f
5170   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5171   int UNUSED written = 0;
5172   IADDR UNUSED pc = abuf->addr;
5173   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5174
5175 {
5176   BI tmp_do_op;
5177   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), -1, FLD (f_GRk), FLD (f_d12), 2, 0);
5178 if (tmp_do_op) {
5179   {
5180     SI opval = frvbf_read_mem_UHI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
5181     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
5182     written |= (1 << 5);
5183     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5184   }
5185 }
5186 }
5187
5188   abuf->written = written;
5189   return vpc;
5190 #undef FLD
5191 }
5192
5193 /* nldi: nldi$pack @($GRi,$d12),$GRk */
5194
5195 static SEM_PC
5196 SEM_FN_NAME (frvbf,nldi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5197 {
5198 #define FLD(f) abuf->fields.sfmt_swapi.f
5199   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5200   int UNUSED written = 0;
5201   IADDR UNUSED pc = abuf->addr;
5202   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5203
5204 {
5205   BI tmp_do_op;
5206   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), -1, FLD (f_GRk), FLD (f_d12), 4, 0);
5207 if (tmp_do_op) {
5208   {
5209     SI opval = frvbf_read_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
5210     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
5211     written |= (1 << 5);
5212     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5213   }
5214 }
5215 }
5216
5217   abuf->written = written;
5218   return vpc;
5219 #undef FLD
5220 }
5221
5222 /* nldbfi: nldbfi$pack @($GRi,$d12),$FRintk */
5223
5224 static SEM_PC
5225 SEM_FN_NAME (frvbf,nldbfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5226 {
5227 #define FLD(f) abuf->fields.sfmt_ldbfi.f
5228   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5229   int UNUSED written = 0;
5230   IADDR UNUSED pc = abuf->addr;
5231   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5232
5233 {
5234   BI tmp_do_op;
5235   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), -1, FLD (f_FRk), FLD (f_d12), 0, 1);
5236 if (tmp_do_op) {
5237   {
5238     SI opval = frvbf_read_mem_UQI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
5239     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
5240     written |= (1 << 5);
5241     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
5242   }
5243 }
5244 }
5245
5246   abuf->written = written;
5247   return vpc;
5248 #undef FLD
5249 }
5250
5251 /* nldhfi: nldhfi$pack @($GRi,$d12),$FRintk */
5252
5253 static SEM_PC
5254 SEM_FN_NAME (frvbf,nldhfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5255 {
5256 #define FLD(f) abuf->fields.sfmt_ldbfi.f
5257   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5258   int UNUSED written = 0;
5259   IADDR UNUSED pc = abuf->addr;
5260   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5261
5262 {
5263   BI tmp_do_op;
5264   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), -1, FLD (f_FRk), FLD (f_d12), 2, 1);
5265 if (tmp_do_op) {
5266   {
5267     SI opval = frvbf_read_mem_UHI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
5268     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
5269     written |= (1 << 5);
5270     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
5271   }
5272 }
5273 }
5274
5275   abuf->written = written;
5276   return vpc;
5277 #undef FLD
5278 }
5279
5280 /* nldfi: nldfi$pack @($GRi,$d12),$FRintk */
5281
5282 static SEM_PC
5283 SEM_FN_NAME (frvbf,nldfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5284 {
5285 #define FLD(f) abuf->fields.sfmt_ldbfi.f
5286   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5287   int UNUSED written = 0;
5288   IADDR UNUSED pc = abuf->addr;
5289   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5290
5291 {
5292   BI tmp_do_op;
5293   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), -1, FLD (f_FRk), FLD (f_d12), 4, 1);
5294 if (tmp_do_op) {
5295   {
5296     SI opval = frvbf_read_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
5297     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
5298     written |= (1 << 5);
5299     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
5300   }
5301 }
5302 }
5303
5304   abuf->written = written;
5305   return vpc;
5306 #undef FLD
5307 }
5308
5309 /* lddi: lddi$pack @($GRi,$d12),$GRdoublek */
5310
5311 static SEM_PC
5312 SEM_FN_NAME (frvbf,lddi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5313 {
5314 #define FLD(f) abuf->fields.sfmt_smuli.f
5315   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5316   int UNUSED written = 0;
5317   IADDR UNUSED pc = abuf->addr;
5318   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5319
5320 {
5321   SI tmp_address;
5322 if (NESI (FLD (f_GRk), 0)) {
5323 {
5324   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
5325   {
5326     DI opval = frvbf_read_mem_DI (current_cpu, pc, tmp_address);
5327     sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
5328     written |= (1 << 4);
5329     TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
5330   }
5331 }
5332 }
5333 }
5334
5335   abuf->written = written;
5336   return vpc;
5337 #undef FLD
5338 }
5339
5340 /* lddfi: lddfi$pack @($GRi,$d12),$FRdoublek */
5341
5342 static SEM_PC
5343 SEM_FN_NAME (frvbf,lddfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5344 {
5345 #define FLD(f) abuf->fields.sfmt_lddfi.f
5346   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5347   int UNUSED written = 0;
5348   IADDR UNUSED pc = abuf->addr;
5349   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5350
5351 {
5352   SI tmp_address;
5353 {
5354   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
5355   {
5356     DF opval = frvbf_read_mem_DF (current_cpu, pc, tmp_address);
5357     sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
5358     TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
5359   }
5360 }
5361 }
5362
5363   return vpc;
5364 #undef FLD
5365 }
5366
5367 /* nlddi: nlddi$pack @($GRi,$d12),$GRdoublek */
5368
5369 static SEM_PC
5370 SEM_FN_NAME (frvbf,nlddi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5371 {
5372 #define FLD(f) abuf->fields.sfmt_smuli.f
5373   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5374   int UNUSED written = 0;
5375   IADDR UNUSED pc = abuf->addr;
5376   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5377
5378 {
5379   SI tmp_address;
5380 {
5381   BI tmp_do_op;
5382   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), -1, FLD (f_GRk), FLD (f_d12), 5, 0);
5383 if (tmp_do_op) {
5384 if (NESI (FLD (f_GRk), 0)) {
5385 {
5386   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
5387   {
5388     DI opval = frvbf_read_mem_DI (current_cpu, pc, tmp_address);
5389     sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
5390     written |= (1 << 5);
5391     TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
5392   }
5393 }
5394 }
5395 }
5396 }
5397 }
5398
5399   abuf->written = written;
5400   return vpc;
5401 #undef FLD
5402 }
5403
5404 /* nlddfi: nlddfi$pack @($GRi,$d12),$FRdoublek */
5405
5406 static SEM_PC
5407 SEM_FN_NAME (frvbf,nlddfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5408 {
5409 #define FLD(f) abuf->fields.sfmt_lddfi.f
5410   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5411   int UNUSED written = 0;
5412   IADDR UNUSED pc = abuf->addr;
5413   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5414
5415 {
5416   SI tmp_address;
5417 {
5418   BI tmp_do_op;
5419   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), -1, FLD (f_FRk), FLD (f_d12), 5, 1);
5420 if (tmp_do_op) {
5421 {
5422   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
5423   {
5424     DF opval = frvbf_read_mem_DF (current_cpu, pc, tmp_address);
5425     sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
5426     written |= (1 << 5);
5427     TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
5428   }
5429 }
5430 }
5431 }
5432 }
5433
5434   abuf->written = written;
5435   return vpc;
5436 #undef FLD
5437 }
5438
5439 /* ldqi: ldqi$pack @($GRi,$d12),$GRk */
5440
5441 static SEM_PC
5442 SEM_FN_NAME (frvbf,ldqi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5443 {
5444 #define FLD(f) abuf->fields.sfmt_stdi.f
5445   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5446   int UNUSED written = 0;
5447   IADDR UNUSED pc = abuf->addr;
5448   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5449
5450 {
5451   SI tmp_address;
5452 {
5453   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
5454 frvbf_load_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
5455 }
5456 }
5457
5458   return vpc;
5459 #undef FLD
5460 }
5461
5462 /* ldqfi: ldqfi$pack @($GRi,$d12),$FRintk */
5463
5464 static SEM_PC
5465 SEM_FN_NAME (frvbf,ldqfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5466 {
5467 #define FLD(f) abuf->fields.sfmt_stdfi.f
5468   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5469   int UNUSED written = 0;
5470   IADDR UNUSED pc = abuf->addr;
5471   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5472
5473 {
5474   SI tmp_address;
5475 {
5476   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
5477 frvbf_load_quad_FRint (current_cpu, pc, tmp_address, FLD (f_FRk));
5478 }
5479 }
5480
5481   return vpc;
5482 #undef FLD
5483 }
5484
5485 /* nldqfi: nldqfi$pack @($GRi,$d12),$FRintk */
5486
5487 static SEM_PC
5488 SEM_FN_NAME (frvbf,nldqfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5489 {
5490 #define FLD(f) abuf->fields.sfmt_stdfi.f
5491   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5492   int UNUSED written = 0;
5493   IADDR UNUSED pc = abuf->addr;
5494   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5495
5496 {
5497   SI tmp_address;
5498 {
5499   BI tmp_do_op;
5500   tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), -1, FLD (f_FRk), FLD (f_d12), 6, 1);
5501 if (tmp_do_op) {
5502 {
5503   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
5504 frvbf_load_quad_FRint (current_cpu, pc, tmp_address, FLD (f_FRk));
5505 }
5506 }
5507 }
5508 }
5509
5510   return vpc;
5511 #undef FLD
5512 }
5513
5514 /* stb: stb$pack $GRk,@($GRi,$GRj) */
5515
5516 static SEM_PC
5517 SEM_FN_NAME (frvbf,stb) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5518 {
5519 #define FLD(f) abuf->fields.sfmt_cswap.f
5520   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5521   int UNUSED written = 0;
5522   IADDR UNUSED pc = abuf->addr;
5523   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5524
5525 frvbf_write_mem_QI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), GET_H_GR (FLD (f_GRk)));
5526
5527   return vpc;
5528 #undef FLD
5529 }
5530
5531 /* sth: sth$pack $GRk,@($GRi,$GRj) */
5532
5533 static SEM_PC
5534 SEM_FN_NAME (frvbf,sth) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5535 {
5536 #define FLD(f) abuf->fields.sfmt_cswap.f
5537   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5538   int UNUSED written = 0;
5539   IADDR UNUSED pc = abuf->addr;
5540   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5541
5542 frvbf_write_mem_HI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), GET_H_GR (FLD (f_GRk)));
5543
5544   return vpc;
5545 #undef FLD
5546 }
5547
5548 /* st: st$pack $GRk,@($GRi,$GRj) */
5549
5550 static SEM_PC
5551 SEM_FN_NAME (frvbf,st) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5552 {
5553 #define FLD(f) abuf->fields.sfmt_cswap.f
5554   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5555   int UNUSED written = 0;
5556   IADDR UNUSED pc = abuf->addr;
5557   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5558
5559 frvbf_write_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), GET_H_GR (FLD (f_GRk)));
5560
5561   return vpc;
5562 #undef FLD
5563 }
5564
5565 /* stbf: stbf$pack $FRintk,@($GRi,$GRj) */
5566
5567 static SEM_PC
5568 SEM_FN_NAME (frvbf,stbf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5569 {
5570 #define FLD(f) abuf->fields.sfmt_cstbfu.f
5571   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5572   int UNUSED written = 0;
5573   IADDR UNUSED pc = abuf->addr;
5574   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5575
5576 frvbf_write_mem_QI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), GET_H_FR_INT (FLD (f_FRk)));
5577
5578   return vpc;
5579 #undef FLD
5580 }
5581
5582 /* sthf: sthf$pack $FRintk,@($GRi,$GRj) */
5583
5584 static SEM_PC
5585 SEM_FN_NAME (frvbf,sthf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5586 {
5587 #define FLD(f) abuf->fields.sfmt_cstbfu.f
5588   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5589   int UNUSED written = 0;
5590   IADDR UNUSED pc = abuf->addr;
5591   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5592
5593 frvbf_write_mem_HI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), GET_H_FR_INT (FLD (f_FRk)));
5594
5595   return vpc;
5596 #undef FLD
5597 }
5598
5599 /* stf: stf$pack $FRintk,@($GRi,$GRj) */
5600
5601 static SEM_PC
5602 SEM_FN_NAME (frvbf,stf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5603 {
5604 #define FLD(f) abuf->fields.sfmt_cstbfu.f
5605   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5606   int UNUSED written = 0;
5607   IADDR UNUSED pc = abuf->addr;
5608   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5609
5610 frvbf_write_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), GET_H_FR_INT (FLD (f_FRk)));
5611
5612   return vpc;
5613 #undef FLD
5614 }
5615
5616 /* stc: stc$pack $CPRk,@($GRi,$GRj) */
5617
5618 static SEM_PC
5619 SEM_FN_NAME (frvbf,stc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5620 {
5621 #define FLD(f) abuf->fields.sfmt_stcu.f
5622   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5623   int UNUSED written = 0;
5624   IADDR UNUSED pc = abuf->addr;
5625   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5626
5627 frvbf_write_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), CPU (h_cpr[FLD (f_CPRk)]));
5628
5629   return vpc;
5630 #undef FLD
5631 }
5632
5633 /* std: std$pack $GRdoublek,@($GRi,$GRj) */
5634
5635 static SEM_PC
5636 SEM_FN_NAME (frvbf,std) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5637 {
5638 #define FLD(f) abuf->fields.sfmt_cstdu.f
5639   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5640   int UNUSED written = 0;
5641   IADDR UNUSED pc = abuf->addr;
5642   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5643
5644 {
5645   SI tmp_address;
5646 {
5647   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5648 frvbf_write_mem_DI (current_cpu, pc, tmp_address, GET_H_GR_DOUBLE (FLD (f_GRk)));
5649 }
5650 }
5651
5652   return vpc;
5653 #undef FLD
5654 }
5655
5656 /* stdf: stdf$pack $FRdoublek,@($GRi,$GRj) */
5657
5658 static SEM_PC
5659 SEM_FN_NAME (frvbf,stdf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5660 {
5661 #define FLD(f) abuf->fields.sfmt_cstdfu.f
5662   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5663   int UNUSED written = 0;
5664   IADDR UNUSED pc = abuf->addr;
5665   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5666
5667 {
5668   SI tmp_address;
5669 {
5670   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5671 frvbf_write_mem_DF (current_cpu, pc, tmp_address, GET_H_FR_DOUBLE (FLD (f_FRk)));
5672 }
5673 }
5674
5675   return vpc;
5676 #undef FLD
5677 }
5678
5679 /* stdc: stdc$pack $CPRdoublek,@($GRi,$GRj) */
5680
5681 static SEM_PC
5682 SEM_FN_NAME (frvbf,stdc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5683 {
5684 #define FLD(f) abuf->fields.sfmt_stdcu.f
5685   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5686   int UNUSED written = 0;
5687   IADDR UNUSED pc = abuf->addr;
5688   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5689
5690 {
5691   SI tmp_address;
5692 {
5693   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5694 frvbf_write_mem_DI (current_cpu, pc, tmp_address, GET_H_CPR_DOUBLE (FLD (f_CPRk)));
5695 }
5696 }
5697
5698   return vpc;
5699 #undef FLD
5700 }
5701
5702 /* stq: stq$pack $GRk,@($GRi,$GRj) */
5703
5704 static SEM_PC
5705 SEM_FN_NAME (frvbf,stq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5706 {
5707 #define FLD(f) abuf->fields.sfmt_smulcc.f
5708   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5709   int UNUSED written = 0;
5710   IADDR UNUSED pc = abuf->addr;
5711   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5712
5713 {
5714   SI tmp_address;
5715 {
5716   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5717 frvbf_store_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
5718 }
5719 }
5720
5721   return vpc;
5722 #undef FLD
5723 }
5724
5725 /* stqf: stqf$pack $FRintk,@($GRi,$GRj) */
5726
5727 static SEM_PC
5728 SEM_FN_NAME (frvbf,stqf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5729 {
5730 #define FLD(f) abuf->fields.sfmt_cstdfu.f
5731   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5732   int UNUSED written = 0;
5733   IADDR UNUSED pc = abuf->addr;
5734   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5735
5736 {
5737   SI tmp_address;
5738 {
5739   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5740 frvbf_store_quad_FRint (current_cpu, pc, tmp_address, FLD (f_FRk));
5741 }
5742 }
5743
5744   return vpc;
5745 #undef FLD
5746 }
5747
5748 /* stqc: stqc$pack $CPRk,@($GRi,$GRj) */
5749
5750 static SEM_PC
5751 SEM_FN_NAME (frvbf,stqc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5752 {
5753 #define FLD(f) abuf->fields.sfmt_stdcu.f
5754   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5755   int UNUSED written = 0;
5756   IADDR UNUSED pc = abuf->addr;
5757   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5758
5759 {
5760   SI tmp_address;
5761 {
5762   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5763 frvbf_store_quad_CPR (current_cpu, pc, tmp_address, FLD (f_CPRk));
5764 }
5765 }
5766
5767   return vpc;
5768 #undef FLD
5769 }
5770
5771 /* stbu: stbu$pack $GRk,@($GRi,$GRj) */
5772
5773 static SEM_PC
5774 SEM_FN_NAME (frvbf,stbu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5775 {
5776 #define FLD(f) abuf->fields.sfmt_cstbu.f
5777   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5778   int UNUSED written = 0;
5779   IADDR UNUSED pc = abuf->addr;
5780   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5781
5782 {
5783   USI tmp_address;
5784   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5785 frvbf_write_mem_QI (current_cpu, pc, tmp_address, GET_H_GR (FLD (f_GRk)));
5786   {
5787     SI opval = tmp_address;
5788     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
5789     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5790   }
5791 }
5792
5793   return vpc;
5794 #undef FLD
5795 }
5796
5797 /* sthu: sthu$pack $GRk,@($GRi,$GRj) */
5798
5799 static SEM_PC
5800 SEM_FN_NAME (frvbf,sthu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5801 {
5802 #define FLD(f) abuf->fields.sfmt_cstbu.f
5803   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5804   int UNUSED written = 0;
5805   IADDR UNUSED pc = abuf->addr;
5806   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5807
5808 {
5809   USI tmp_address;
5810   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5811 frvbf_write_mem_HI (current_cpu, pc, tmp_address, GET_H_GR (FLD (f_GRk)));
5812   {
5813     SI opval = tmp_address;
5814     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
5815     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5816   }
5817 }
5818
5819   return vpc;
5820 #undef FLD
5821 }
5822
5823 /* stu: stu$pack $GRk,@($GRi,$GRj) */
5824
5825 static SEM_PC
5826 SEM_FN_NAME (frvbf,stu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5827 {
5828 #define FLD(f) abuf->fields.sfmt_cstbu.f
5829   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5830   int UNUSED written = 0;
5831   IADDR UNUSED pc = abuf->addr;
5832   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5833
5834 {
5835   USI tmp_address;
5836   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5837 frvbf_write_mem_WI (current_cpu, pc, tmp_address, GET_H_GR (FLD (f_GRk)));
5838   {
5839     SI opval = tmp_address;
5840     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
5841     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5842   }
5843 }
5844
5845   return vpc;
5846 #undef FLD
5847 }
5848
5849 /* stbfu: stbfu$pack $FRintk,@($GRi,$GRj) */
5850
5851 static SEM_PC
5852 SEM_FN_NAME (frvbf,stbfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5853 {
5854 #define FLD(f) abuf->fields.sfmt_cstbfu.f
5855   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5856   int UNUSED written = 0;
5857   IADDR UNUSED pc = abuf->addr;
5858   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5859
5860 {
5861   USI tmp_address;
5862   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5863 frvbf_write_mem_QI (current_cpu, pc, tmp_address, GET_H_FR_INT (FLD (f_FRk)));
5864   {
5865     SI opval = tmp_address;
5866     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
5867     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5868   }
5869 }
5870
5871   return vpc;
5872 #undef FLD
5873 }
5874
5875 /* sthfu: sthfu$pack $FRintk,@($GRi,$GRj) */
5876
5877 static SEM_PC
5878 SEM_FN_NAME (frvbf,sthfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5879 {
5880 #define FLD(f) abuf->fields.sfmt_cstbfu.f
5881   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5882   int UNUSED written = 0;
5883   IADDR UNUSED pc = abuf->addr;
5884   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5885
5886 {
5887   USI tmp_address;
5888   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5889 frvbf_write_mem_HI (current_cpu, pc, tmp_address, GET_H_FR_INT (FLD (f_FRk)));
5890   {
5891     SI opval = tmp_address;
5892     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
5893     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5894   }
5895 }
5896
5897   return vpc;
5898 #undef FLD
5899 }
5900
5901 /* stfu: stfu$pack $FRintk,@($GRi,$GRj) */
5902
5903 static SEM_PC
5904 SEM_FN_NAME (frvbf,stfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5905 {
5906 #define FLD(f) abuf->fields.sfmt_cstbfu.f
5907   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5908   int UNUSED written = 0;
5909   IADDR UNUSED pc = abuf->addr;
5910   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5911
5912 {
5913   USI tmp_address;
5914   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5915 frvbf_write_mem_SI (current_cpu, pc, tmp_address, GET_H_FR_INT (FLD (f_FRk)));
5916   {
5917     SI opval = tmp_address;
5918     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
5919     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5920   }
5921 }
5922
5923   return vpc;
5924 #undef FLD
5925 }
5926
5927 /* stcu: stcu$pack $CPRk,@($GRi,$GRj) */
5928
5929 static SEM_PC
5930 SEM_FN_NAME (frvbf,stcu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5931 {
5932 #define FLD(f) abuf->fields.sfmt_stcu.f
5933   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5934   int UNUSED written = 0;
5935   IADDR UNUSED pc = abuf->addr;
5936   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5937
5938 {
5939   USI tmp_address;
5940   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5941 frvbf_write_mem_SI (current_cpu, pc, tmp_address, CPU (h_cpr[FLD (f_CPRk)]));
5942   {
5943     SI opval = tmp_address;
5944     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
5945     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5946   }
5947 }
5948
5949   return vpc;
5950 #undef FLD
5951 }
5952
5953 /* stdu: stdu$pack $GRdoublek,@($GRi,$GRj) */
5954
5955 static SEM_PC
5956 SEM_FN_NAME (frvbf,stdu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5957 {
5958 #define FLD(f) abuf->fields.sfmt_cstdu.f
5959   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5960   int UNUSED written = 0;
5961   IADDR UNUSED pc = abuf->addr;
5962   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5963
5964 {
5965   SI tmp_address;
5966 {
5967   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5968 frvbf_write_mem_DI (current_cpu, pc, tmp_address, GET_H_GR_DOUBLE (FLD (f_GRk)));
5969 }
5970   {
5971     SI opval = tmp_address;
5972     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
5973     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5974   }
5975 }
5976
5977   return vpc;
5978 #undef FLD
5979 }
5980
5981 /* stdfu: stdfu$pack $FRdoublek,@($GRi,$GRj) */
5982
5983 static SEM_PC
5984 SEM_FN_NAME (frvbf,stdfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5985 {
5986 #define FLD(f) abuf->fields.sfmt_cstdfu.f
5987   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5988   int UNUSED written = 0;
5989   IADDR UNUSED pc = abuf->addr;
5990   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5991
5992 {
5993   SI tmp_address;
5994 {
5995   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5996 frvbf_write_mem_DF (current_cpu, pc, tmp_address, GET_H_FR_DOUBLE (FLD (f_FRk)));
5997 }
5998   {
5999     SI opval = tmp_address;
6000     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6001     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6002   }
6003 }
6004
6005   return vpc;
6006 #undef FLD
6007 }
6008
6009 /* stdcu: stdcu$pack $CPRdoublek,@($GRi,$GRj) */
6010
6011 static SEM_PC
6012 SEM_FN_NAME (frvbf,stdcu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6013 {
6014 #define FLD(f) abuf->fields.sfmt_stdcu.f
6015   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6016   int UNUSED written = 0;
6017   IADDR UNUSED pc = abuf->addr;
6018   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6019
6020 {
6021   SI tmp_address;
6022 {
6023   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6024 frvbf_write_mem_DI (current_cpu, pc, tmp_address, GET_H_CPR_DOUBLE (FLD (f_CPRk)));
6025 }
6026   {
6027     SI opval = tmp_address;
6028     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6029     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6030   }
6031 }
6032
6033   return vpc;
6034 #undef FLD
6035 }
6036
6037 /* stqu: stqu$pack $GRk,@($GRi,$GRj) */
6038
6039 static SEM_PC
6040 SEM_FN_NAME (frvbf,stqu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6041 {
6042 #define FLD(f) abuf->fields.sfmt_cstdu.f
6043   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6044   int UNUSED written = 0;
6045   IADDR UNUSED pc = abuf->addr;
6046   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6047
6048 {
6049   SI tmp_address;
6050 {
6051   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6052 frvbf_store_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
6053 }
6054   {
6055     SI opval = tmp_address;
6056     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6057     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6058   }
6059 }
6060
6061   return vpc;
6062 #undef FLD
6063 }
6064
6065 /* stqfu: stqfu$pack $FRintk,@($GRi,$GRj) */
6066
6067 static SEM_PC
6068 SEM_FN_NAME (frvbf,stqfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6069 {
6070 #define FLD(f) abuf->fields.sfmt_cstdfu.f
6071   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6072   int UNUSED written = 0;
6073   IADDR UNUSED pc = abuf->addr;
6074   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6075
6076 {
6077   SI tmp_address;
6078 {
6079   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6080 frvbf_store_quad_FRint (current_cpu, pc, tmp_address, FLD (f_FRk));
6081 }
6082   {
6083     SI opval = tmp_address;
6084     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6085     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6086   }
6087 }
6088
6089   return vpc;
6090 #undef FLD
6091 }
6092
6093 /* stqcu: stqcu$pack $CPRk,@($GRi,$GRj) */
6094
6095 static SEM_PC
6096 SEM_FN_NAME (frvbf,stqcu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6097 {
6098 #define FLD(f) abuf->fields.sfmt_stdcu.f
6099   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6100   int UNUSED written = 0;
6101   IADDR UNUSED pc = abuf->addr;
6102   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6103
6104 {
6105   SI tmp_address;
6106 {
6107   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6108 frvbf_store_quad_CPR (current_cpu, pc, tmp_address, FLD (f_CPRk));
6109 }
6110   {
6111     SI opval = tmp_address;
6112     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6113     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6114   }
6115 }
6116
6117   return vpc;
6118 #undef FLD
6119 }
6120
6121 /* cldsb: cldsb$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6122
6123 static SEM_PC
6124 SEM_FN_NAME (frvbf,cldsb) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6125 {
6126 #define FLD(f) abuf->fields.sfmt_cswap.f
6127   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6128   int UNUSED written = 0;
6129   IADDR UNUSED pc = abuf->addr;
6130   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6131
6132 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6133   {
6134     SI opval = frvbf_read_mem_QI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
6135     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
6136     written |= (1 << 5);
6137     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6138   }
6139 }
6140
6141   abuf->written = written;
6142   return vpc;
6143 #undef FLD
6144 }
6145
6146 /* cldub: cldub$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6147
6148 static SEM_PC
6149 SEM_FN_NAME (frvbf,cldub) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6150 {
6151 #define FLD(f) abuf->fields.sfmt_cswap.f
6152   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6153   int UNUSED written = 0;
6154   IADDR UNUSED pc = abuf->addr;
6155   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6156
6157 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6158   {
6159     SI opval = frvbf_read_mem_UQI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
6160     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
6161     written |= (1 << 5);
6162     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6163   }
6164 }
6165
6166   abuf->written = written;
6167   return vpc;
6168 #undef FLD
6169 }
6170
6171 /* cldsh: cldsh$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6172
6173 static SEM_PC
6174 SEM_FN_NAME (frvbf,cldsh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6175 {
6176 #define FLD(f) abuf->fields.sfmt_cswap.f
6177   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6178   int UNUSED written = 0;
6179   IADDR UNUSED pc = abuf->addr;
6180   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6181
6182 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6183   {
6184     SI opval = frvbf_read_mem_HI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
6185     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
6186     written |= (1 << 5);
6187     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6188   }
6189 }
6190
6191   abuf->written = written;
6192   return vpc;
6193 #undef FLD
6194 }
6195
6196 /* clduh: clduh$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6197
6198 static SEM_PC
6199 SEM_FN_NAME (frvbf,clduh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6200 {
6201 #define FLD(f) abuf->fields.sfmt_cswap.f
6202   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6203   int UNUSED written = 0;
6204   IADDR UNUSED pc = abuf->addr;
6205   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6206
6207 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6208   {
6209     SI opval = frvbf_read_mem_UHI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
6210     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
6211     written |= (1 << 5);
6212     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6213   }
6214 }
6215
6216   abuf->written = written;
6217   return vpc;
6218 #undef FLD
6219 }
6220
6221 /* cld: cld$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6222
6223 static SEM_PC
6224 SEM_FN_NAME (frvbf,cld) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6225 {
6226 #define FLD(f) abuf->fields.sfmt_cswap.f
6227   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6228   int UNUSED written = 0;
6229   IADDR UNUSED pc = abuf->addr;
6230   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6231
6232 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6233   {
6234     SI opval = frvbf_read_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
6235     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
6236     written |= (1 << 5);
6237     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6238   }
6239 }
6240
6241   abuf->written = written;
6242   return vpc;
6243 #undef FLD
6244 }
6245
6246 /* cldbf: cldbf$pack @($GRi,$GRj),$FRintk,$CCi,$cond */
6247
6248 static SEM_PC
6249 SEM_FN_NAME (frvbf,cldbf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6250 {
6251 #define FLD(f) abuf->fields.sfmt_cldbfu.f
6252   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6253   int UNUSED written = 0;
6254   IADDR UNUSED pc = abuf->addr;
6255   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6256
6257 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6258   {
6259     SI opval = frvbf_read_mem_UQI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
6260     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
6261     written |= (1 << 5);
6262     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
6263   }
6264 }
6265
6266   abuf->written = written;
6267   return vpc;
6268 #undef FLD
6269 }
6270
6271 /* cldhf: cldhf$pack @($GRi,$GRj),$FRintk,$CCi,$cond */
6272
6273 static SEM_PC
6274 SEM_FN_NAME (frvbf,cldhf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6275 {
6276 #define FLD(f) abuf->fields.sfmt_cldbfu.f
6277   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6278   int UNUSED written = 0;
6279   IADDR UNUSED pc = abuf->addr;
6280   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6281
6282 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6283   {
6284     SI opval = frvbf_read_mem_UHI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
6285     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
6286     written |= (1 << 5);
6287     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
6288   }
6289 }
6290
6291   abuf->written = written;
6292   return vpc;
6293 #undef FLD
6294 }
6295
6296 /* cldf: cldf$pack @($GRi,$GRj),$FRintk,$CCi,$cond */
6297
6298 static SEM_PC
6299 SEM_FN_NAME (frvbf,cldf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6300 {
6301 #define FLD(f) abuf->fields.sfmt_cldbfu.f
6302   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6303   int UNUSED written = 0;
6304   IADDR UNUSED pc = abuf->addr;
6305   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6306
6307 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6308   {
6309     SI opval = frvbf_read_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
6310     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
6311     written |= (1 << 5);
6312     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
6313   }
6314 }
6315
6316   abuf->written = written;
6317   return vpc;
6318 #undef FLD
6319 }
6320
6321 /* cldd: cldd$pack @($GRi,$GRj),$GRdoublek,$CCi,$cond */
6322
6323 static SEM_PC
6324 SEM_FN_NAME (frvbf,cldd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6325 {
6326 #define FLD(f) abuf->fields.sfmt_clddu.f
6327   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6328   int UNUSED written = 0;
6329   IADDR UNUSED pc = abuf->addr;
6330   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6331
6332 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6333 {
6334   SI tmp_address;
6335 if (NESI (FLD (f_GRk), 0)) {
6336 {
6337   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6338   {
6339     DI opval = frvbf_read_mem_DI (current_cpu, pc, tmp_address);
6340     sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
6341     written |= (1 << 6);
6342     TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
6343   }
6344 }
6345 }
6346 }
6347 }
6348
6349   abuf->written = written;
6350   return vpc;
6351 #undef FLD
6352 }
6353
6354 /* clddf: clddf$pack @($GRi,$GRj),$FRdoublek,$CCi,$cond */
6355
6356 static SEM_PC
6357 SEM_FN_NAME (frvbf,clddf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6358 {
6359 #define FLD(f) abuf->fields.sfmt_clddfu.f
6360   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6361   int UNUSED written = 0;
6362   IADDR UNUSED pc = abuf->addr;
6363   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6364
6365 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6366 {
6367   SI tmp_address;
6368 {
6369   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6370   {
6371     DF opval = frvbf_read_mem_DF (current_cpu, pc, tmp_address);
6372     sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
6373     written |= (1 << 5);
6374     TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
6375   }
6376 }
6377 }
6378 }
6379
6380   abuf->written = written;
6381   return vpc;
6382 #undef FLD
6383 }
6384
6385 /* cldq: cldq$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6386
6387 static SEM_PC
6388 SEM_FN_NAME (frvbf,cldq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6389 {
6390 #define FLD(f) abuf->fields.sfmt_cswap.f
6391   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6392   int UNUSED written = 0;
6393   IADDR UNUSED pc = abuf->addr;
6394   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6395
6396 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6397 {
6398   SI tmp_address;
6399 {
6400   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6401 frvbf_load_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
6402 }
6403 }
6404 }
6405
6406   return vpc;
6407 #undef FLD
6408 }
6409
6410 /* cldsbu: cldsbu$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6411
6412 static SEM_PC
6413 SEM_FN_NAME (frvbf,cldsbu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6414 {
6415 #define FLD(f) abuf->fields.sfmt_cldsbu.f
6416   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6417   int UNUSED written = 0;
6418   IADDR UNUSED pc = abuf->addr;
6419   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6420
6421 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6422 {
6423   SI tmp_address;
6424   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6425   {
6426     SI opval = frvbf_read_mem_QI (current_cpu, pc, tmp_address);
6427     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
6428     written |= (1 << 8);
6429     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6430   }
6431 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
6432   {
6433     SI opval = tmp_address;
6434     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6435     written |= (1 << 7);
6436     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6437   }
6438 }
6439 }
6440 }
6441
6442   abuf->written = written;
6443   return vpc;
6444 #undef FLD
6445 }
6446
6447 /* cldubu: cldubu$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6448
6449 static SEM_PC
6450 SEM_FN_NAME (frvbf,cldubu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6451 {
6452 #define FLD(f) abuf->fields.sfmt_cldsbu.f
6453   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6454   int UNUSED written = 0;
6455   IADDR UNUSED pc = abuf->addr;
6456   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6457
6458 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6459 {
6460   SI tmp_address;
6461   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6462   {
6463     SI opval = frvbf_read_mem_UQI (current_cpu, pc, tmp_address);
6464     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
6465     written |= (1 << 8);
6466     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6467   }
6468 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
6469   {
6470     SI opval = tmp_address;
6471     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6472     written |= (1 << 7);
6473     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6474   }
6475 }
6476 }
6477 }
6478
6479   abuf->written = written;
6480   return vpc;
6481 #undef FLD
6482 }
6483
6484 /* cldshu: cldshu$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6485
6486 static SEM_PC
6487 SEM_FN_NAME (frvbf,cldshu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6488 {
6489 #define FLD(f) abuf->fields.sfmt_cldsbu.f
6490   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6491   int UNUSED written = 0;
6492   IADDR UNUSED pc = abuf->addr;
6493   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6494
6495 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6496 {
6497   SI tmp_address;
6498   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6499   {
6500     SI opval = frvbf_read_mem_HI (current_cpu, pc, tmp_address);
6501     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
6502     written |= (1 << 8);
6503     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6504   }
6505 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
6506   {
6507     SI opval = tmp_address;
6508     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6509     written |= (1 << 7);
6510     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6511   }
6512 }
6513 }
6514 }
6515
6516   abuf->written = written;
6517   return vpc;
6518 #undef FLD
6519 }
6520
6521 /* clduhu: clduhu$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6522
6523 static SEM_PC
6524 SEM_FN_NAME (frvbf,clduhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6525 {
6526 #define FLD(f) abuf->fields.sfmt_cldsbu.f
6527   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6528   int UNUSED written = 0;
6529   IADDR UNUSED pc = abuf->addr;
6530   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6531
6532 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6533 {
6534   SI tmp_address;
6535   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6536   {
6537     SI opval = frvbf_read_mem_UHI (current_cpu, pc, tmp_address);
6538     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
6539     written |= (1 << 8);
6540     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6541   }
6542 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
6543   {
6544     SI opval = tmp_address;
6545     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6546     written |= (1 << 7);
6547     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6548   }
6549 }
6550 }
6551 }
6552
6553   abuf->written = written;
6554   return vpc;
6555 #undef FLD
6556 }
6557
6558 /* cldu: cldu$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6559
6560 static SEM_PC
6561 SEM_FN_NAME (frvbf,cldu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6562 {
6563 #define FLD(f) abuf->fields.sfmt_cldsbu.f
6564   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6565   int UNUSED written = 0;
6566   IADDR UNUSED pc = abuf->addr;
6567   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6568
6569 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6570 {
6571   SI tmp_address;
6572   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6573   {
6574     SI opval = frvbf_read_mem_SI (current_cpu, pc, tmp_address);
6575     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
6576     written |= (1 << 8);
6577     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6578   }
6579 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
6580   {
6581     SI opval = tmp_address;
6582     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6583     written |= (1 << 7);
6584     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6585   }
6586 }
6587 }
6588 }
6589
6590   abuf->written = written;
6591   return vpc;
6592 #undef FLD
6593 }
6594
6595 /* cldbfu: cldbfu$pack @($GRi,$GRj),$FRintk,$CCi,$cond */
6596
6597 static SEM_PC
6598 SEM_FN_NAME (frvbf,cldbfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6599 {
6600 #define FLD(f) abuf->fields.sfmt_cldbfu.f
6601   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6602   int UNUSED written = 0;
6603   IADDR UNUSED pc = abuf->addr;
6604   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6605
6606 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6607 {
6608   SI tmp_address;
6609   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6610   {
6611     SI opval = frvbf_read_mem_UQI (current_cpu, pc, tmp_address);
6612     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
6613     written |= (1 << 5);
6614     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
6615   }
6616   {
6617     SI opval = tmp_address;
6618     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6619     written |= (1 << 6);
6620     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6621   }
6622 }
6623 }
6624
6625   abuf->written = written;
6626   return vpc;
6627 #undef FLD
6628 }
6629
6630 /* cldhfu: cldhfu$pack @($GRi,$GRj),$FRintk,$CCi,$cond */
6631
6632 static SEM_PC
6633 SEM_FN_NAME (frvbf,cldhfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6634 {
6635 #define FLD(f) abuf->fields.sfmt_cldbfu.f
6636   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6637   int UNUSED written = 0;
6638   IADDR UNUSED pc = abuf->addr;
6639   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6640
6641 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6642 {
6643   SI tmp_address;
6644   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6645   {
6646     SI opval = frvbf_read_mem_UHI (current_cpu, pc, tmp_address);
6647     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
6648     written |= (1 << 5);
6649     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
6650   }
6651   {
6652     SI opval = tmp_address;
6653     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6654     written |= (1 << 6);
6655     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6656   }
6657 }
6658 }
6659
6660   abuf->written = written;
6661   return vpc;
6662 #undef FLD
6663 }
6664
6665 /* cldfu: cldfu$pack @($GRi,$GRj),$FRintk,$CCi,$cond */
6666
6667 static SEM_PC
6668 SEM_FN_NAME (frvbf,cldfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6669 {
6670 #define FLD(f) abuf->fields.sfmt_cldbfu.f
6671   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6672   int UNUSED written = 0;
6673   IADDR UNUSED pc = abuf->addr;
6674   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6675
6676 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6677 {
6678   SI tmp_address;
6679   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6680   {
6681     SI opval = frvbf_read_mem_SI (current_cpu, pc, tmp_address);
6682     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
6683     written |= (1 << 5);
6684     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
6685   }
6686   {
6687     SI opval = tmp_address;
6688     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6689     written |= (1 << 6);
6690     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6691   }
6692 }
6693 }
6694
6695   abuf->written = written;
6696   return vpc;
6697 #undef FLD
6698 }
6699
6700 /* clddu: clddu$pack @($GRi,$GRj),$GRdoublek,$CCi,$cond */
6701
6702 static SEM_PC
6703 SEM_FN_NAME (frvbf,clddu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6704 {
6705 #define FLD(f) abuf->fields.sfmt_clddu.f
6706   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6707   int UNUSED written = 0;
6708   IADDR UNUSED pc = abuf->addr;
6709   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6710
6711 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6712 {
6713   SI tmp_address;
6714 if (NESI (FLD (f_GRk), 0)) {
6715 {
6716   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6717   {
6718     DI opval = frvbf_read_mem_DI (current_cpu, pc, tmp_address);
6719     sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
6720     written |= (1 << 7);
6721     TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
6722   }
6723 }
6724 }
6725 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
6726   {
6727     SI opval = tmp_address;
6728     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6729     written |= (1 << 8);
6730     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6731   }
6732 }
6733 }
6734 }
6735
6736   abuf->written = written;
6737   return vpc;
6738 #undef FLD
6739 }
6740
6741 /* clddfu: clddfu$pack @($GRi,$GRj),$FRdoublek,$CCi,$cond */
6742
6743 static SEM_PC
6744 SEM_FN_NAME (frvbf,clddfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6745 {
6746 #define FLD(f) abuf->fields.sfmt_clddfu.f
6747   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6748   int UNUSED written = 0;
6749   IADDR UNUSED pc = abuf->addr;
6750   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6751
6752 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6753 {
6754   SI tmp_address;
6755 {
6756   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6757   {
6758     DF opval = frvbf_read_mem_DF (current_cpu, pc, tmp_address);
6759     sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
6760     written |= (1 << 5);
6761     TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
6762   }
6763 }
6764   {
6765     SI opval = tmp_address;
6766     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6767     written |= (1 << 6);
6768     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6769   }
6770 }
6771 }
6772
6773   abuf->written = written;
6774   return vpc;
6775 #undef FLD
6776 }
6777
6778 /* cldqu: cldqu$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6779
6780 static SEM_PC
6781 SEM_FN_NAME (frvbf,cldqu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6782 {
6783 #define FLD(f) abuf->fields.sfmt_cstdu.f
6784   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6785   int UNUSED written = 0;
6786   IADDR UNUSED pc = abuf->addr;
6787   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6788
6789 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6790 {
6791   SI tmp_address;
6792 {
6793   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6794 frvbf_load_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
6795 }
6796 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
6797   {
6798     SI opval = tmp_address;
6799     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6800     written |= (1 << 7);
6801     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6802   }
6803 }
6804 }
6805 }
6806
6807   abuf->written = written;
6808   return vpc;
6809 #undef FLD
6810 }
6811
6812 /* cstb: cstb$pack $GRk,@($GRi,$GRj),$CCi,$cond */
6813
6814 static SEM_PC
6815 SEM_FN_NAME (frvbf,cstb) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6816 {
6817 #define FLD(f) abuf->fields.sfmt_cswap.f
6818   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6819   int UNUSED written = 0;
6820   IADDR UNUSED pc = abuf->addr;
6821   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6822
6823 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6824 frvbf_write_mem_QI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), GET_H_GR (FLD (f_GRk)));
6825 }
6826
6827   return vpc;
6828 #undef FLD
6829 }
6830
6831 /* csth: csth$pack $GRk,@($GRi,$GRj),$CCi,$cond */
6832
6833 static SEM_PC
6834 SEM_FN_NAME (frvbf,csth) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6835 {
6836 #define FLD(f) abuf->fields.sfmt_cswap.f
6837   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6838   int UNUSED written = 0;
6839   IADDR UNUSED pc = abuf->addr;
6840   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6841
6842 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6843 frvbf_write_mem_HI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), GET_H_GR (FLD (f_GRk)));
6844 }
6845
6846   return vpc;
6847 #undef FLD
6848 }
6849
6850 /* cst: cst$pack $GRk,@($GRi,$GRj),$CCi,$cond */
6851
6852 static SEM_PC
6853 SEM_FN_NAME (frvbf,cst) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6854 {
6855 #define FLD(f) abuf->fields.sfmt_cswap.f
6856   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6857   int UNUSED written = 0;
6858   IADDR UNUSED pc = abuf->addr;
6859   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6860
6861 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6862 frvbf_write_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), GET_H_GR (FLD (f_GRk)));
6863 }
6864
6865   return vpc;
6866 #undef FLD
6867 }
6868
6869 /* cstbf: cstbf$pack $FRintk,@($GRi,$GRj),$CCi,$cond */
6870
6871 static SEM_PC
6872 SEM_FN_NAME (frvbf,cstbf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6873 {
6874 #define FLD(f) abuf->fields.sfmt_cstbfu.f
6875   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6876   int UNUSED written = 0;
6877   IADDR UNUSED pc = abuf->addr;
6878   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6879
6880 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6881 frvbf_write_mem_QI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), GET_H_FR_INT (FLD (f_FRk)));
6882 }
6883
6884   return vpc;
6885 #undef FLD
6886 }
6887
6888 /* csthf: csthf$pack $FRintk,@($GRi,$GRj),$CCi,$cond */
6889
6890 static SEM_PC
6891 SEM_FN_NAME (frvbf,csthf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6892 {
6893 #define FLD(f) abuf->fields.sfmt_cstbfu.f
6894   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6895   int UNUSED written = 0;
6896   IADDR UNUSED pc = abuf->addr;
6897   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6898
6899 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6900 frvbf_write_mem_HI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), GET_H_FR_INT (FLD (f_FRk)));
6901 }
6902
6903   return vpc;
6904 #undef FLD
6905 }
6906
6907 /* cstf: cstf$pack $FRintk,@($GRi,$GRj),$CCi,$cond */
6908
6909 static SEM_PC
6910 SEM_FN_NAME (frvbf,cstf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6911 {
6912 #define FLD(f) abuf->fields.sfmt_cstbfu.f
6913   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6914   int UNUSED written = 0;
6915   IADDR UNUSED pc = abuf->addr;
6916   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6917
6918 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6919 frvbf_write_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), GET_H_FR_INT (FLD (f_FRk)));
6920 }
6921
6922   return vpc;
6923 #undef FLD
6924 }
6925
6926 /* cstd: cstd$pack $GRdoublek,@($GRi,$GRj),$CCi,$cond */
6927
6928 static SEM_PC
6929 SEM_FN_NAME (frvbf,cstd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6930 {
6931 #define FLD(f) abuf->fields.sfmt_cstdu.f
6932   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6933   int UNUSED written = 0;
6934   IADDR UNUSED pc = abuf->addr;
6935   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6936
6937 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6938 {
6939   SI tmp_address;
6940 {
6941   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6942 frvbf_write_mem_DI (current_cpu, pc, tmp_address, GET_H_GR_DOUBLE (FLD (f_GRk)));
6943 }
6944 }
6945 }
6946
6947   return vpc;
6948 #undef FLD
6949 }
6950
6951 /* cstdf: cstdf$pack $FRdoublek,@($GRi,$GRj),$CCi,$cond */
6952
6953 static SEM_PC
6954 SEM_FN_NAME (frvbf,cstdf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6955 {
6956 #define FLD(f) abuf->fields.sfmt_cstdfu.f
6957   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6958   int UNUSED written = 0;
6959   IADDR UNUSED pc = abuf->addr;
6960   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6961
6962 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6963 {
6964   SI tmp_address;
6965 {
6966   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6967 frvbf_write_mem_DF (current_cpu, pc, tmp_address, GET_H_FR_DOUBLE (FLD (f_FRk)));
6968 }
6969 }
6970 }
6971
6972   return vpc;
6973 #undef FLD
6974 }
6975
6976 /* cstq: cstq$pack $GRk,@($GRi,$GRj),$CCi,$cond */
6977
6978 static SEM_PC
6979 SEM_FN_NAME (frvbf,cstq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6980 {
6981 #define FLD(f) abuf->fields.sfmt_cswap.f
6982   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6983   int UNUSED written = 0;
6984   IADDR UNUSED pc = abuf->addr;
6985   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6986
6987 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6988 {
6989   SI tmp_address;
6990 {
6991   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6992 frvbf_store_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
6993 }
6994 }
6995 }
6996
6997   return vpc;
6998 #undef FLD
6999 }
7000
7001 /* cstbu: cstbu$pack $GRk,@($GRi,$GRj),$CCi,$cond */
7002
7003 static SEM_PC
7004 SEM_FN_NAME (frvbf,cstbu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7005 {
7006 #define FLD(f) abuf->fields.sfmt_cstbu.f
7007   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7008   int UNUSED written = 0;
7009   IADDR UNUSED pc = abuf->addr;
7010   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7011
7012 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7013 {
7014   SI tmp_address;
7015   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7016 frvbf_write_mem_QI (current_cpu, pc, tmp_address, GET_H_GR (FLD (f_GRk)));
7017   {
7018     SI opval = tmp_address;
7019     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
7020     written |= (1 << 6);
7021     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7022   }
7023 }
7024 }
7025
7026   abuf->written = written;
7027   return vpc;
7028 #undef FLD
7029 }
7030
7031 /* csthu: csthu$pack $GRk,@($GRi,$GRj),$CCi,$cond */
7032
7033 static SEM_PC
7034 SEM_FN_NAME (frvbf,csthu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7035 {
7036 #define FLD(f) abuf->fields.sfmt_cstbu.f
7037   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7038   int UNUSED written = 0;
7039   IADDR UNUSED pc = abuf->addr;
7040   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7041
7042 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7043 {
7044   SI tmp_address;
7045   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7046 frvbf_write_mem_HI (current_cpu, pc, tmp_address, GET_H_GR (FLD (f_GRk)));
7047   {
7048     SI opval = tmp_address;
7049     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
7050     written |= (1 << 6);
7051     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7052   }
7053 }
7054 }
7055
7056   abuf->written = written;
7057   return vpc;
7058 #undef FLD
7059 }
7060
7061 /* cstu: cstu$pack $GRk,@($GRi,$GRj),$CCi,$cond */
7062
7063 static SEM_PC
7064 SEM_FN_NAME (frvbf,cstu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7065 {
7066 #define FLD(f) abuf->fields.sfmt_cstbu.f
7067   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7068   int UNUSED written = 0;
7069   IADDR UNUSED pc = abuf->addr;
7070   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7071
7072 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7073 {
7074   SI tmp_address;
7075   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7076 frvbf_write_mem_SI (current_cpu, pc, tmp_address, GET_H_GR (FLD (f_GRk)));
7077   {
7078     SI opval = tmp_address;
7079     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
7080     written |= (1 << 6);
7081     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7082   }
7083 }
7084 }
7085
7086   abuf->written = written;
7087   return vpc;
7088 #undef FLD
7089 }
7090
7091 /* cstbfu: cstbfu$pack $FRintk,@($GRi,$GRj),$CCi,$cond */
7092
7093 static SEM_PC
7094 SEM_FN_NAME (frvbf,cstbfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7095 {
7096 #define FLD(f) abuf->fields.sfmt_cstbfu.f
7097   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7098   int UNUSED written = 0;
7099   IADDR UNUSED pc = abuf->addr;
7100   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7101
7102 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7103 {
7104   SI tmp_address;
7105   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7106 frvbf_write_mem_QI (current_cpu, pc, tmp_address, GET_H_FR_INT (FLD (f_FRk)));
7107   {
7108     SI opval = tmp_address;
7109     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
7110     written |= (1 << 6);
7111     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7112   }
7113 }
7114 }
7115
7116   abuf->written = written;
7117   return vpc;
7118 #undef FLD
7119 }
7120
7121 /* csthfu: csthfu$pack $FRintk,@($GRi,$GRj),$CCi,$cond */
7122
7123 static SEM_PC
7124 SEM_FN_NAME (frvbf,csthfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7125 {
7126 #define FLD(f) abuf->fields.sfmt_cstbfu.f
7127   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7128   int UNUSED written = 0;
7129   IADDR UNUSED pc = abuf->addr;
7130   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7131
7132 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7133 {
7134   SI tmp_address;
7135   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7136 frvbf_write_mem_HI (current_cpu, pc, tmp_address, GET_H_FR_INT (FLD (f_FRk)));
7137   {
7138     SI opval = tmp_address;
7139     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
7140     written |= (1 << 6);
7141     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7142   }
7143 }
7144 }
7145
7146   abuf->written = written;
7147   return vpc;
7148 #undef FLD
7149 }
7150
7151 /* cstfu: cstfu$pack $FRintk,@($GRi,$GRj),$CCi,$cond */
7152
7153 static SEM_PC
7154 SEM_FN_NAME (frvbf,cstfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7155 {
7156 #define FLD(f) abuf->fields.sfmt_cstbfu.f
7157   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7158   int UNUSED written = 0;
7159   IADDR UNUSED pc = abuf->addr;
7160   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7161
7162 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7163 {
7164   SI tmp_address;
7165   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7166 frvbf_write_mem_SI (current_cpu, pc, tmp_address, GET_H_FR_INT (FLD (f_FRk)));
7167   {
7168     SI opval = tmp_address;
7169     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
7170     written |= (1 << 6);
7171     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7172   }
7173 }
7174 }
7175
7176   abuf->written = written;
7177   return vpc;
7178 #undef FLD
7179 }
7180
7181 /* cstdu: cstdu$pack $GRdoublek,@($GRi,$GRj),$CCi,$cond */
7182
7183 static SEM_PC
7184 SEM_FN_NAME (frvbf,cstdu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7185 {
7186 #define FLD(f) abuf->fields.sfmt_cstdu.f
7187   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7188   int UNUSED written = 0;
7189   IADDR UNUSED pc = abuf->addr;
7190   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7191
7192 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7193 {
7194   SI tmp_address;
7195 {
7196   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7197 frvbf_write_mem_DI (current_cpu, pc, tmp_address, GET_H_GR_DOUBLE (FLD (f_GRk)));
7198 }
7199   {
7200     SI opval = tmp_address;
7201     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
7202     written |= (1 << 6);
7203     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7204   }
7205 }
7206 }
7207
7208   abuf->written = written;
7209   return vpc;
7210 #undef FLD
7211 }
7212
7213 /* cstdfu: cstdfu$pack $FRdoublek,@($GRi,$GRj),$CCi,$cond */
7214
7215 static SEM_PC
7216 SEM_FN_NAME (frvbf,cstdfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7217 {
7218 #define FLD(f) abuf->fields.sfmt_cstdfu.f
7219   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7220   int UNUSED written = 0;
7221   IADDR UNUSED pc = abuf->addr;
7222   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7223
7224 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7225 {
7226   SI tmp_address;
7227 {
7228   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7229 frvbf_write_mem_DF (current_cpu, pc, tmp_address, GET_H_FR_DOUBLE (FLD (f_FRk)));
7230 }
7231   {
7232     SI opval = tmp_address;
7233     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
7234     written |= (1 << 6);
7235     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7236   }
7237 }
7238 }
7239
7240   abuf->written = written;
7241   return vpc;
7242 #undef FLD
7243 }
7244
7245 /* stbi: stbi$pack $GRk,@($GRi,$d12) */
7246
7247 static SEM_PC
7248 SEM_FN_NAME (frvbf,stbi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7249 {
7250 #define FLD(f) abuf->fields.sfmt_swapi.f
7251   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7252   int UNUSED written = 0;
7253   IADDR UNUSED pc = abuf->addr;
7254   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7255
7256 frvbf_write_mem_QI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)), GET_H_GR (FLD (f_GRk)));
7257
7258   return vpc;
7259 #undef FLD
7260 }
7261
7262 /* sthi: sthi$pack $GRk,@($GRi,$d12) */
7263
7264 static SEM_PC
7265 SEM_FN_NAME (frvbf,sthi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7266 {
7267 #define FLD(f) abuf->fields.sfmt_swapi.f
7268   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7269   int UNUSED written = 0;
7270   IADDR UNUSED pc = abuf->addr;
7271   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7272
7273 frvbf_write_mem_HI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)), GET_H_GR (FLD (f_GRk)));
7274
7275   return vpc;
7276 #undef FLD
7277 }
7278
7279 /* sti: sti$pack $GRk,@($GRi,$d12) */
7280
7281 static SEM_PC
7282 SEM_FN_NAME (frvbf,sti) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7283 {
7284 #define FLD(f) abuf->fields.sfmt_swapi.f
7285   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7286   int UNUSED written = 0;
7287   IADDR UNUSED pc = abuf->addr;
7288   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7289
7290 frvbf_write_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)), GET_H_GR (FLD (f_GRk)));
7291
7292   return vpc;
7293 #undef FLD
7294 }
7295
7296 /* stbfi: stbfi$pack $FRintk,@($GRi,$d12) */
7297
7298 static SEM_PC
7299 SEM_FN_NAME (frvbf,stbfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7300 {
7301 #define FLD(f) abuf->fields.sfmt_stbfi.f
7302   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7303   int UNUSED written = 0;
7304   IADDR UNUSED pc = abuf->addr;
7305   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7306
7307 frvbf_write_mem_QI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)), GET_H_FR_INT (FLD (f_FRk)));
7308
7309   return vpc;
7310 #undef FLD
7311 }
7312
7313 /* sthfi: sthfi$pack $FRintk,@($GRi,$d12) */
7314
7315 static SEM_PC
7316 SEM_FN_NAME (frvbf,sthfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7317 {
7318 #define FLD(f) abuf->fields.sfmt_stbfi.f
7319   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7320   int UNUSED written = 0;
7321   IADDR UNUSED pc = abuf->addr;
7322   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7323
7324 frvbf_write_mem_HI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)), GET_H_FR_INT (FLD (f_FRk)));
7325
7326   return vpc;
7327 #undef FLD
7328 }
7329
7330 /* stfi: stfi$pack $FRintk,@($GRi,$d12) */
7331
7332 static SEM_PC
7333 SEM_FN_NAME (frvbf,stfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7334 {
7335 #define FLD(f) abuf->fields.sfmt_stbfi.f
7336   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7337   int UNUSED written = 0;
7338   IADDR UNUSED pc = abuf->addr;
7339   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7340
7341 frvbf_write_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)), GET_H_FR_INT (FLD (f_FRk)));
7342
7343   return vpc;
7344 #undef FLD
7345 }
7346
7347 /* stdi: stdi$pack $GRdoublek,@($GRi,$d12) */
7348
7349 static SEM_PC
7350 SEM_FN_NAME (frvbf,stdi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7351 {
7352 #define FLD(f) abuf->fields.sfmt_stdi.f
7353   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7354   int UNUSED written = 0;
7355   IADDR UNUSED pc = abuf->addr;
7356   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7357
7358 {
7359   SI tmp_address;
7360 {
7361   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
7362 frvbf_write_mem_DI (current_cpu, pc, tmp_address, GET_H_GR_DOUBLE (FLD (f_GRk)));
7363 }
7364 }
7365
7366   return vpc;
7367 #undef FLD
7368 }
7369
7370 /* stdfi: stdfi$pack $FRdoublek,@($GRi,$d12) */
7371
7372 static SEM_PC
7373 SEM_FN_NAME (frvbf,stdfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7374 {
7375 #define FLD(f) abuf->fields.sfmt_stdfi.f
7376   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7377   int UNUSED written = 0;
7378   IADDR UNUSED pc = abuf->addr;
7379   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7380
7381 {
7382   SI tmp_address;
7383 {
7384   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
7385 frvbf_write_mem_DF (current_cpu, pc, tmp_address, GET_H_FR_DOUBLE (FLD (f_FRk)));
7386 }
7387 }
7388
7389   return vpc;
7390 #undef FLD
7391 }
7392
7393 /* stqi: stqi$pack $GRk,@($GRi,$d12) */
7394
7395 static SEM_PC
7396 SEM_FN_NAME (frvbf,stqi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7397 {
7398 #define FLD(f) abuf->fields.sfmt_stdi.f
7399   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7400   int UNUSED written = 0;
7401   IADDR UNUSED pc = abuf->addr;
7402   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7403
7404 {
7405   SI tmp_address;
7406 {
7407   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
7408 frvbf_store_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
7409 }
7410 }
7411
7412   return vpc;
7413 #undef FLD
7414 }
7415
7416 /* stqfi: stqfi$pack $FRintk,@($GRi,$d12) */
7417
7418 static SEM_PC
7419 SEM_FN_NAME (frvbf,stqfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7420 {
7421 #define FLD(f) abuf->fields.sfmt_stdfi.f
7422   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7423   int UNUSED written = 0;
7424   IADDR UNUSED pc = abuf->addr;
7425   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7426
7427 {
7428   SI tmp_address;
7429 {
7430   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
7431 frvbf_store_quad_FRint (current_cpu, pc, tmp_address, FLD (f_FRk));
7432 }
7433 }
7434
7435   return vpc;
7436 #undef FLD
7437 }
7438
7439 /* swap: swap$pack @($GRi,$GRj),$GRk */
7440
7441 static SEM_PC
7442 SEM_FN_NAME (frvbf,swap) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7443 {
7444 #define FLD(f) abuf->fields.sfmt_cswap.f
7445   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7446   int UNUSED written = 0;
7447   IADDR UNUSED pc = abuf->addr;
7448   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7449
7450 {
7451   SI tmp_tmp;
7452   SI tmp_address;
7453   tmp_tmp = GET_H_GR (FLD (f_GRk));
7454   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7455 frvbf_check_swap_address (current_cpu, tmp_address);
7456   {
7457     SI opval = frvbf_read_mem_WI (current_cpu, pc, tmp_address);
7458     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
7459     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7460   }
7461 frvbf_write_mem_WI (current_cpu, pc, tmp_address, tmp_tmp);
7462 }
7463
7464   return vpc;
7465 #undef FLD
7466 }
7467
7468 /* swapi: swapi$pack @($GRi,$d12),$GRk */
7469
7470 static SEM_PC
7471 SEM_FN_NAME (frvbf,swapi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7472 {
7473 #define FLD(f) abuf->fields.sfmt_swapi.f
7474   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7475   int UNUSED written = 0;
7476   IADDR UNUSED pc = abuf->addr;
7477   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7478
7479 {
7480   SI tmp_tmp;
7481   SI tmp_address;
7482   tmp_tmp = GET_H_GR (FLD (f_GRk));
7483   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
7484 frvbf_check_swap_address (current_cpu, tmp_address);
7485   {
7486     SI opval = frvbf_read_mem_WI (current_cpu, pc, tmp_address);
7487     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
7488     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7489   }
7490 frvbf_write_mem_WI (current_cpu, pc, tmp_address, tmp_tmp);
7491 }
7492
7493   return vpc;
7494 #undef FLD
7495 }
7496
7497 /* cswap: cswap$pack @($GRi,$GRj),$GRk,$CCi,$cond */
7498
7499 static SEM_PC
7500 SEM_FN_NAME (frvbf,cswap) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7501 {
7502 #define FLD(f) abuf->fields.sfmt_cswap.f
7503   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7504   int UNUSED written = 0;
7505   IADDR UNUSED pc = abuf->addr;
7506   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7507
7508 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7509 {
7510   SI tmp_tmp;
7511   SI tmp_address;
7512   tmp_tmp = GET_H_GR (FLD (f_GRk));
7513   tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7514 frvbf_check_swap_address (current_cpu, tmp_address);
7515   {
7516     SI opval = frvbf_read_mem_WI (current_cpu, pc, tmp_address);
7517     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
7518     written |= (1 << 6);
7519     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7520   }
7521 frvbf_write_mem_WI (current_cpu, pc, tmp_address, tmp_tmp);
7522 }
7523 }
7524
7525   abuf->written = written;
7526   return vpc;
7527 #undef FLD
7528 }
7529
7530 /* movgf: movgf$pack $GRj,$FRintk */
7531
7532 static SEM_PC
7533 SEM_FN_NAME (frvbf,movgf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7534 {
7535 #define FLD(f) abuf->fields.sfmt_cmovgfd.f
7536   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7537   int UNUSED written = 0;
7538   IADDR UNUSED pc = abuf->addr;
7539   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7540
7541   {
7542     SI opval = GET_H_GR (FLD (f_GRj));
7543     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
7544     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7545   }
7546
7547   return vpc;
7548 #undef FLD
7549 }
7550
7551 /* movfg: movfg$pack $FRintk,$GRj */
7552
7553 static SEM_PC
7554 SEM_FN_NAME (frvbf,movfg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7555 {
7556 #define FLD(f) abuf->fields.sfmt_cmovfgd.f
7557   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7558   int UNUSED written = 0;
7559   IADDR UNUSED pc = abuf->addr;
7560   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7561
7562   {
7563     SI opval = GET_H_FR_INT (FLD (f_FRk));
7564     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRj), opval);
7565     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7566   }
7567
7568   return vpc;
7569 #undef FLD
7570 }
7571
7572 /* movgfd: movgfd$pack $GRj,$FRintk */
7573
7574 static SEM_PC
7575 SEM_FN_NAME (frvbf,movgfd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7576 {
7577 #define FLD(f) abuf->fields.sfmt_cmovgfd.f
7578   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7579   int UNUSED written = 0;
7580   IADDR UNUSED pc = abuf->addr;
7581   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7582
7583 if (EQSI (FLD (f_GRj), 0)) {
7584 {
7585   {
7586     SI opval = 0;
7587     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
7588     written |= (1 << 4);
7589     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7590   }
7591   {
7592     USI opval = 0;
7593     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ADDSI (FLD (f_FRk), 1), opval);
7594     written |= (1 << 5);
7595     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7596   }
7597 }
7598 } else {
7599 {
7600   {
7601     SI opval = GET_H_GR (FLD (f_GRj));
7602     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
7603     written |= (1 << 4);
7604     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7605   }
7606   {
7607     USI opval = GET_H_GR (ADDSI (FLD (f_GRj), 1));
7608     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ADDSI (FLD (f_FRk), 1), opval);
7609     written |= (1 << 5);
7610     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7611   }
7612 }
7613 }
7614
7615   abuf->written = written;
7616   return vpc;
7617 #undef FLD
7618 }
7619
7620 /* movfgd: movfgd$pack $FRintk,$GRj */
7621
7622 static SEM_PC
7623 SEM_FN_NAME (frvbf,movfgd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7624 {
7625 #define FLD(f) abuf->fields.sfmt_cmovfgd.f
7626   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7627   int UNUSED written = 0;
7628   IADDR UNUSED pc = abuf->addr;
7629   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7630
7631 if (NESI (FLD (f_GRj), 0)) {
7632 {
7633   {
7634     SI opval = GET_H_FR_INT (FLD (f_FRk));
7635     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRj), opval);
7636     written |= (1 << 4);
7637     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7638   }
7639   {
7640     USI opval = GET_H_FR_INT (ADDSI (FLD (f_FRk), 1));
7641     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, ADDSI (FLD (f_GRj), 1), opval);
7642     written |= (1 << 5);
7643     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7644   }
7645 }
7646 }
7647
7648   abuf->written = written;
7649   return vpc;
7650 #undef FLD
7651 }
7652
7653 /* movgfq: movgfq$pack $GRj,$FRintk */
7654
7655 static SEM_PC
7656 SEM_FN_NAME (frvbf,movgfq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7657 {
7658 #define FLD(f) abuf->fields.sfmt_movgfq.f
7659   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7660   int UNUSED written = 0;
7661   IADDR UNUSED pc = abuf->addr;
7662   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7663
7664 if (EQSI (FLD (f_GRj), 0)) {
7665 {
7666   {
7667     SI opval = 0;
7668     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
7669     written |= (1 << 6);
7670     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7671   }
7672   {
7673     USI opval = 0;
7674     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ADDSI (FLD (f_FRk), 1), opval);
7675     written |= (1 << 7);
7676     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7677   }
7678   {
7679     USI opval = 0;
7680     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ADDSI (FLD (f_FRk), 2), opval);
7681     written |= (1 << 8);
7682     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7683   }
7684   {
7685     USI opval = 0;
7686     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ADDSI (FLD (f_FRk), 3), opval);
7687     written |= (1 << 9);
7688     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7689   }
7690 }
7691 } else {
7692 {
7693   {
7694     SI opval = GET_H_GR (FLD (f_GRj));
7695     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
7696     written |= (1 << 6);
7697     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7698   }
7699   {
7700     USI opval = GET_H_GR (ADDSI (FLD (f_GRj), 1));
7701     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ADDSI (FLD (f_FRk), 1), opval);
7702     written |= (1 << 7);
7703     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7704   }
7705   {
7706     USI opval = GET_H_GR (ADDSI (FLD (f_GRj), 2));
7707     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ADDSI (FLD (f_FRk), 2), opval);
7708     written |= (1 << 8);
7709     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7710   }
7711   {
7712     USI opval = GET_H_GR (ADDSI (FLD (f_GRj), 3));
7713     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ADDSI (FLD (f_FRk), 3), opval);
7714     written |= (1 << 9);
7715     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7716   }
7717 }
7718 }
7719
7720   abuf->written = written;
7721   return vpc;
7722 #undef FLD
7723 }
7724
7725 /* movfgq: movfgq$pack $FRintk,$GRj */
7726
7727 static SEM_PC
7728 SEM_FN_NAME (frvbf,movfgq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7729 {
7730 #define FLD(f) abuf->fields.sfmt_movfgq.f
7731   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7732   int UNUSED written = 0;
7733   IADDR UNUSED pc = abuf->addr;
7734   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7735
7736 if (NESI (FLD (f_GRj), 0)) {
7737 {
7738   {
7739     SI opval = GET_H_FR_INT (FLD (f_FRk));
7740     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRj), opval);
7741     written |= (1 << 6);
7742     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7743   }
7744   {
7745     USI opval = GET_H_FR_INT (ADDSI (FLD (f_FRk), 1));
7746     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, ADDSI (FLD (f_GRj), 1), opval);
7747     written |= (1 << 7);
7748     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7749   }
7750   {
7751     USI opval = GET_H_FR_INT (ADDSI (FLD (f_FRk), 2));
7752     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, ADDSI (FLD (f_GRj), 2), opval);
7753     written |= (1 << 8);
7754     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7755   }
7756   {
7757     USI opval = GET_H_FR_INT (ADDSI (FLD (f_FRk), 3));
7758     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, ADDSI (FLD (f_GRj), 3), opval);
7759     written |= (1 << 9);
7760     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7761   }
7762 }
7763 }
7764
7765   abuf->written = written;
7766   return vpc;
7767 #undef FLD
7768 }
7769
7770 /* cmovgf: cmovgf$pack $GRj,$FRintk,$CCi,$cond */
7771
7772 static SEM_PC
7773 SEM_FN_NAME (frvbf,cmovgf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7774 {
7775 #define FLD(f) abuf->fields.sfmt_cmovgfd.f
7776   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7777   int UNUSED written = 0;
7778   IADDR UNUSED pc = abuf->addr;
7779   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7780
7781 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7782   {
7783     SI opval = GET_H_GR (FLD (f_GRj));
7784     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
7785     written |= (1 << 3);
7786     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7787   }
7788 }
7789
7790   abuf->written = written;
7791   return vpc;
7792 #undef FLD
7793 }
7794
7795 /* cmovfg: cmovfg$pack $FRintk,$GRj,$CCi,$cond */
7796
7797 static SEM_PC
7798 SEM_FN_NAME (frvbf,cmovfg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7799 {
7800 #define FLD(f) abuf->fields.sfmt_cmovfgd.f
7801   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7802   int UNUSED written = 0;
7803   IADDR UNUSED pc = abuf->addr;
7804   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7805
7806 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7807   {
7808     SI opval = GET_H_FR_INT (FLD (f_FRk));
7809     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRj), opval);
7810     written |= (1 << 3);
7811     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7812   }
7813 }
7814
7815   abuf->written = written;
7816   return vpc;
7817 #undef FLD
7818 }
7819
7820 /* cmovgfd: cmovgfd$pack $GRj,$FRintk,$CCi,$cond */
7821
7822 static SEM_PC
7823 SEM_FN_NAME (frvbf,cmovgfd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7824 {
7825 #define FLD(f) abuf->fields.sfmt_cmovgfd.f
7826   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7827   int UNUSED written = 0;
7828   IADDR UNUSED pc = abuf->addr;
7829   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7830
7831 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7832 if (EQSI (FLD (f_GRj), 0)) {
7833 {
7834   {
7835     SI opval = 0;
7836     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
7837     written |= (1 << 6);
7838     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7839   }
7840   {
7841     USI opval = 0;
7842     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ADDSI (FLD (f_FRk), 1), opval);
7843     written |= (1 << 7);
7844     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7845   }
7846 }
7847 } else {
7848 {
7849   {
7850     SI opval = GET_H_GR (FLD (f_GRj));
7851     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
7852     written |= (1 << 6);
7853     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7854   }
7855   {
7856     USI opval = GET_H_GR (ADDSI (FLD (f_GRj), 1));
7857     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ADDSI (FLD (f_FRk), 1), opval);
7858     written |= (1 << 7);
7859     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7860   }
7861 }
7862 }
7863 }
7864
7865   abuf->written = written;
7866   return vpc;
7867 #undef FLD
7868 }
7869
7870 /* cmovfgd: cmovfgd$pack $FRintk,$GRj,$CCi,$cond */
7871
7872 static SEM_PC
7873 SEM_FN_NAME (frvbf,cmovfgd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7874 {
7875 #define FLD(f) abuf->fields.sfmt_cmovfgd.f
7876   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7877   int UNUSED written = 0;
7878   IADDR UNUSED pc = abuf->addr;
7879   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7880
7881 if (ANDIF (NESI (FLD (f_GRj), 0), EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2)))) {
7882 {
7883   {
7884     SI opval = GET_H_FR_INT (FLD (f_FRk));
7885     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRj), opval);
7886     written |= (1 << 6);
7887     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7888   }
7889   {
7890     USI opval = GET_H_FR_INT (ADDSI (FLD (f_FRk), 1));
7891     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, ADDSI (FLD (f_GRj), 1), opval);
7892     written |= (1 << 7);
7893     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7894   }
7895 }
7896 }
7897
7898   abuf->written = written;
7899   return vpc;
7900 #undef FLD
7901 }
7902
7903 /* movgs: movgs$pack $GRj,$spr */
7904
7905 static SEM_PC
7906 SEM_FN_NAME (frvbf,movgs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7907 {
7908 #define FLD(f) abuf->fields.sfmt_movgs.f
7909   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7910   int UNUSED written = 0;
7911   IADDR UNUSED pc = abuf->addr;
7912   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7913
7914   {
7915     USI opval = GET_H_GR (FLD (f_GRj));
7916     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, FLD (f_spr), opval);
7917     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
7918   }
7919
7920   return vpc;
7921 #undef FLD
7922 }
7923
7924 /* movsg: movsg$pack $spr,$GRj */
7925
7926 static SEM_PC
7927 SEM_FN_NAME (frvbf,movsg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7928 {
7929 #define FLD(f) abuf->fields.sfmt_movsg.f
7930   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7931   int UNUSED written = 0;
7932   IADDR UNUSED pc = abuf->addr;
7933   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7934
7935   {
7936     SI opval = GET_H_SPR (FLD (f_spr));
7937     sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRj), opval);
7938     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7939   }
7940
7941   return vpc;
7942 #undef FLD
7943 }
7944
7945 /* bra: bra$pack $hint_taken$label16 */
7946
7947 static SEM_PC
7948 SEM_FN_NAME (frvbf,bra) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7949 {
7950 #define FLD(f) abuf->fields.sfmt_fbne.f
7951   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7952   int UNUSED written = 0;
7953   IADDR UNUSED pc = abuf->addr;
7954   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7955
7956 {
7957 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
7958   {
7959     USI opval = FLD (i_label16);
7960     sim_queue_pc_write (current_cpu, opval);
7961     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
7962   }
7963 }
7964
7965   return vpc;
7966 #undef FLD
7967 }
7968
7969 /* bno: bno$pack$hint_not_taken */
7970
7971 static SEM_PC
7972 SEM_FN_NAME (frvbf,bno) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7973 {
7974 #define FLD(f) abuf->fields.sfmt_fbne.f
7975   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7976   int UNUSED written = 0;
7977   IADDR UNUSED pc = abuf->addr;
7978   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7979
7980 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
7981
7982   return vpc;
7983 #undef FLD
7984 }
7985
7986 /* beq: beq$pack $ICCi_2,$hint,$label16 */
7987
7988 static SEM_PC
7989 SEM_FN_NAME (frvbf,beq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7990 {
7991 #define FLD(f) abuf->fields.sfmt_beq.f
7992   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7993   int UNUSED written = 0;
7994   IADDR UNUSED pc = abuf->addr;
7995   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7996
7997 {
7998 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
7999 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2))) {
8000   {
8001     USI opval = FLD (i_label16);
8002     sim_queue_pc_write (current_cpu, opval);
8003     written |= (1 << 3);
8004     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8005   }
8006 }
8007 }
8008
8009   abuf->written = written;
8010   return vpc;
8011 #undef FLD
8012 }
8013
8014 /* bne: bne$pack $ICCi_2,$hint,$label16 */
8015
8016 static SEM_PC
8017 SEM_FN_NAME (frvbf,bne) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8018 {
8019 #define FLD(f) abuf->fields.sfmt_beq.f
8020   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8021   int UNUSED written = 0;
8022   IADDR UNUSED pc = abuf->addr;
8023   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8024
8025 {
8026 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8027 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)))) {
8028   {
8029     USI opval = FLD (i_label16);
8030     sim_queue_pc_write (current_cpu, opval);
8031     written |= (1 << 3);
8032     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8033   }
8034 }
8035 }
8036
8037   abuf->written = written;
8038   return vpc;
8039 #undef FLD
8040 }
8041
8042 /* ble: ble$pack $ICCi_2,$hint,$label16 */
8043
8044 static SEM_PC
8045 SEM_FN_NAME (frvbf,ble) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8046 {
8047 #define FLD(f) abuf->fields.sfmt_beq.f
8048   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8049   int UNUSED written = 0;
8050   IADDR UNUSED pc = abuf->addr;
8051   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8052
8053 {
8054 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8055 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)), XORBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1))))) {
8056   {
8057     USI opval = FLD (i_label16);
8058     sim_queue_pc_write (current_cpu, opval);
8059     written |= (1 << 3);
8060     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8061   }
8062 }
8063 }
8064
8065   abuf->written = written;
8066   return vpc;
8067 #undef FLD
8068 }
8069
8070 /* bgt: bgt$pack $ICCi_2,$hint,$label16 */
8071
8072 static SEM_PC
8073 SEM_FN_NAME (frvbf,bgt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8074 {
8075 #define FLD(f) abuf->fields.sfmt_beq.f
8076   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8077   int UNUSED written = 0;
8078   IADDR UNUSED pc = abuf->addr;
8079   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8080
8081 {
8082 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8083 if (NOTBI (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)), XORBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1)))))) {
8084   {
8085     USI opval = FLD (i_label16);
8086     sim_queue_pc_write (current_cpu, opval);
8087     written |= (1 << 3);
8088     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8089   }
8090 }
8091 }
8092
8093   abuf->written = written;
8094   return vpc;
8095 #undef FLD
8096 }
8097
8098 /* blt: blt$pack $ICCi_2,$hint,$label16 */
8099
8100 static SEM_PC
8101 SEM_FN_NAME (frvbf,blt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8102 {
8103 #define FLD(f) abuf->fields.sfmt_beq.f
8104   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8105   int UNUSED written = 0;
8106   IADDR UNUSED pc = abuf->addr;
8107   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8108
8109 {
8110 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8111 if (XORBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1)))) {
8112   {
8113     USI opval = FLD (i_label16);
8114     sim_queue_pc_write (current_cpu, opval);
8115     written |= (1 << 3);
8116     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8117   }
8118 }
8119 }
8120
8121   abuf->written = written;
8122   return vpc;
8123 #undef FLD
8124 }
8125
8126 /* bge: bge$pack $ICCi_2,$hint,$label16 */
8127
8128 static SEM_PC
8129 SEM_FN_NAME (frvbf,bge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8130 {
8131 #define FLD(f) abuf->fields.sfmt_beq.f
8132   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8133   int UNUSED written = 0;
8134   IADDR UNUSED pc = abuf->addr;
8135   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8136
8137 {
8138 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8139 if (NOTBI (XORBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1))))) {
8140   {
8141     USI opval = FLD (i_label16);
8142     sim_queue_pc_write (current_cpu, opval);
8143     written |= (1 << 3);
8144     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8145   }
8146 }
8147 }
8148
8149   abuf->written = written;
8150   return vpc;
8151 #undef FLD
8152 }
8153
8154 /* bls: bls$pack $ICCi_2,$hint,$label16 */
8155
8156 static SEM_PC
8157 SEM_FN_NAME (frvbf,bls) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8158 {
8159 #define FLD(f) abuf->fields.sfmt_beq.f
8160   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8161   int UNUSED written = 0;
8162   IADDR UNUSED pc = abuf->addr;
8163   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8164
8165 {
8166 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8167 if (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)))) {
8168   {
8169     USI opval = FLD (i_label16);
8170     sim_queue_pc_write (current_cpu, opval);
8171     written |= (1 << 3);
8172     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8173   }
8174 }
8175 }
8176
8177   abuf->written = written;
8178   return vpc;
8179 #undef FLD
8180 }
8181
8182 /* bhi: bhi$pack $ICCi_2,$hint,$label16 */
8183
8184 static SEM_PC
8185 SEM_FN_NAME (frvbf,bhi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8186 {
8187 #define FLD(f) abuf->fields.sfmt_beq.f
8188   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8189   int UNUSED written = 0;
8190   IADDR UNUSED pc = abuf->addr;
8191   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8192
8193 {
8194 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8195 if (NOTBI (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2))))) {
8196   {
8197     USI opval = FLD (i_label16);
8198     sim_queue_pc_write (current_cpu, opval);
8199     written |= (1 << 3);
8200     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8201   }
8202 }
8203 }
8204
8205   abuf->written = written;
8206   return vpc;
8207 #undef FLD
8208 }
8209
8210 /* bc: bc$pack $ICCi_2,$hint,$label16 */
8211
8212 static SEM_PC
8213 SEM_FN_NAME (frvbf,bc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8214 {
8215 #define FLD(f) abuf->fields.sfmt_beq.f
8216   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8217   int UNUSED written = 0;
8218   IADDR UNUSED pc = abuf->addr;
8219   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8220
8221 {
8222 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8223 if (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1))) {
8224   {
8225     USI opval = FLD (i_label16);
8226     sim_queue_pc_write (current_cpu, opval);
8227     written |= (1 << 3);
8228     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8229   }
8230 }
8231 }
8232
8233   abuf->written = written;
8234   return vpc;
8235 #undef FLD
8236 }
8237
8238 /* bnc: bnc$pack $ICCi_2,$hint,$label16 */
8239
8240 static SEM_PC
8241 SEM_FN_NAME (frvbf,bnc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8242 {
8243 #define FLD(f) abuf->fields.sfmt_beq.f
8244   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8245   int UNUSED written = 0;
8246   IADDR UNUSED pc = abuf->addr;
8247   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8248
8249 {
8250 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8251 if (NOTBI (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)))) {
8252   {
8253     USI opval = FLD (i_label16);
8254     sim_queue_pc_write (current_cpu, opval);
8255     written |= (1 << 3);
8256     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8257   }
8258 }
8259 }
8260
8261   abuf->written = written;
8262   return vpc;
8263 #undef FLD
8264 }
8265
8266 /* bn: bn$pack $ICCi_2,$hint,$label16 */
8267
8268 static SEM_PC
8269 SEM_FN_NAME (frvbf,bn) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8270 {
8271 #define FLD(f) abuf->fields.sfmt_beq.f
8272   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8273   int UNUSED written = 0;
8274   IADDR UNUSED pc = abuf->addr;
8275   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8276
8277 {
8278 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8279 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3))) {
8280   {
8281     USI opval = FLD (i_label16);
8282     sim_queue_pc_write (current_cpu, opval);
8283     written |= (1 << 3);
8284     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8285   }
8286 }
8287 }
8288
8289   abuf->written = written;
8290   return vpc;
8291 #undef FLD
8292 }
8293
8294 /* bp: bp$pack $ICCi_2,$hint,$label16 */
8295
8296 static SEM_PC
8297 SEM_FN_NAME (frvbf,bp) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8298 {
8299 #define FLD(f) abuf->fields.sfmt_beq.f
8300   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8301   int UNUSED written = 0;
8302   IADDR UNUSED pc = abuf->addr;
8303   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8304
8305 {
8306 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8307 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3)))) {
8308   {
8309     USI opval = FLD (i_label16);
8310     sim_queue_pc_write (current_cpu, opval);
8311     written |= (1 << 3);
8312     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8313   }
8314 }
8315 }
8316
8317   abuf->written = written;
8318   return vpc;
8319 #undef FLD
8320 }
8321
8322 /* bv: bv$pack $ICCi_2,$hint,$label16 */
8323
8324 static SEM_PC
8325 SEM_FN_NAME (frvbf,bv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8326 {
8327 #define FLD(f) abuf->fields.sfmt_beq.f
8328   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8329   int UNUSED written = 0;
8330   IADDR UNUSED pc = abuf->addr;
8331   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8332
8333 {
8334 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8335 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1))) {
8336   {
8337     USI opval = FLD (i_label16);
8338     sim_queue_pc_write (current_cpu, opval);
8339     written |= (1 << 3);
8340     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8341   }
8342 }
8343 }
8344
8345   abuf->written = written;
8346   return vpc;
8347 #undef FLD
8348 }
8349
8350 /* bnv: bnv$pack $ICCi_2,$hint,$label16 */
8351
8352 static SEM_PC
8353 SEM_FN_NAME (frvbf,bnv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8354 {
8355 #define FLD(f) abuf->fields.sfmt_beq.f
8356   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8357   int UNUSED written = 0;
8358   IADDR UNUSED pc = abuf->addr;
8359   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8360
8361 {
8362 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8363 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1)))) {
8364   {
8365     USI opval = FLD (i_label16);
8366     sim_queue_pc_write (current_cpu, opval);
8367     written |= (1 << 3);
8368     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8369   }
8370 }
8371 }
8372
8373   abuf->written = written;
8374   return vpc;
8375 #undef FLD
8376 }
8377
8378 /* fbra: fbra$pack $hint_taken$label16 */
8379
8380 static SEM_PC
8381 SEM_FN_NAME (frvbf,fbra) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8382 {
8383 #define FLD(f) abuf->fields.sfmt_fbne.f
8384   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8385   int UNUSED written = 0;
8386   IADDR UNUSED pc = abuf->addr;
8387   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8388
8389 {
8390 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8391   {
8392     USI opval = FLD (i_label16);
8393     sim_queue_pc_write (current_cpu, opval);
8394     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8395   }
8396 }
8397
8398   return vpc;
8399 #undef FLD
8400 }
8401
8402 /* fbno: fbno$pack$hint_not_taken */
8403
8404 static SEM_PC
8405 SEM_FN_NAME (frvbf,fbno) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8406 {
8407 #define FLD(f) abuf->fields.sfmt_fbne.f
8408   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8409   int UNUSED written = 0;
8410   IADDR UNUSED pc = abuf->addr;
8411   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8412
8413 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8414
8415   return vpc;
8416 #undef FLD
8417 }
8418
8419 /* fbne: fbne$pack $FCCi_2,$hint,$label16 */
8420
8421 static SEM_PC
8422 SEM_FN_NAME (frvbf,fbne) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8423 {
8424 #define FLD(f) abuf->fields.sfmt_fbne.f
8425   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8426   int UNUSED written = 0;
8427   IADDR UNUSED pc = abuf->addr;
8428   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8429
8430 {
8431 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8432 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2)), ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1))))) {
8433   {
8434     USI opval = FLD (i_label16);
8435     sim_queue_pc_write (current_cpu, opval);
8436     written |= (1 << 3);
8437     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8438   }
8439 }
8440 }
8441
8442   abuf->written = written;
8443   return vpc;
8444 #undef FLD
8445 }
8446
8447 /* fbeq: fbeq$pack $FCCi_2,$hint,$label16 */
8448
8449 static SEM_PC
8450 SEM_FN_NAME (frvbf,fbeq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8451 {
8452 #define FLD(f) abuf->fields.sfmt_fbne.f
8453   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8454   int UNUSED written = 0;
8455   IADDR UNUSED pc = abuf->addr;
8456   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8457
8458 {
8459 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8460 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3))) {
8461   {
8462     USI opval = FLD (i_label16);
8463     sim_queue_pc_write (current_cpu, opval);
8464     written |= (1 << 3);
8465     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8466   }
8467 }
8468 }
8469
8470   abuf->written = written;
8471   return vpc;
8472 #undef FLD
8473 }
8474
8475 /* fblg: fblg$pack $FCCi_2,$hint,$label16 */
8476
8477 static SEM_PC
8478 SEM_FN_NAME (frvbf,fblg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8479 {
8480 #define FLD(f) abuf->fields.sfmt_fbne.f
8481   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8482   int UNUSED written = 0;
8483   IADDR UNUSED pc = abuf->addr;
8484   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8485
8486 {
8487 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8488 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1)))) {
8489   {
8490     USI opval = FLD (i_label16);
8491     sim_queue_pc_write (current_cpu, opval);
8492     written |= (1 << 3);
8493     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8494   }
8495 }
8496 }
8497
8498   abuf->written = written;
8499   return vpc;
8500 #undef FLD
8501 }
8502
8503 /* fbue: fbue$pack $FCCi_2,$hint,$label16 */
8504
8505 static SEM_PC
8506 SEM_FN_NAME (frvbf,fbue) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8507 {
8508 #define FLD(f) abuf->fields.sfmt_fbne.f
8509   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8510   int UNUSED written = 0;
8511   IADDR UNUSED pc = abuf->addr;
8512   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8513
8514 {
8515 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8516 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
8517   {
8518     USI opval = FLD (i_label16);
8519     sim_queue_pc_write (current_cpu, opval);
8520     written |= (1 << 3);
8521     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8522   }
8523 }
8524 }
8525
8526   abuf->written = written;
8527   return vpc;
8528 #undef FLD
8529 }
8530
8531 /* fbul: fbul$pack $FCCi_2,$hint,$label16 */
8532
8533 static SEM_PC
8534 SEM_FN_NAME (frvbf,fbul) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8535 {
8536 #define FLD(f) abuf->fields.sfmt_fbne.f
8537   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8538   int UNUSED written = 0;
8539   IADDR UNUSED pc = abuf->addr;
8540   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8541
8542 {
8543 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8544 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
8545   {
8546     USI opval = FLD (i_label16);
8547     sim_queue_pc_write (current_cpu, opval);
8548     written |= (1 << 3);
8549     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8550   }
8551 }
8552 }
8553
8554   abuf->written = written;
8555   return vpc;
8556 #undef FLD
8557 }
8558
8559 /* fbge: fbge$pack $FCCi_2,$hint,$label16 */
8560
8561 static SEM_PC
8562 SEM_FN_NAME (frvbf,fbge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8563 {
8564 #define FLD(f) abuf->fields.sfmt_fbne.f
8565   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8566   int UNUSED written = 0;
8567   IADDR UNUSED pc = abuf->addr;
8568   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8569
8570 {
8571 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8572 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1)))) {
8573   {
8574     USI opval = FLD (i_label16);
8575     sim_queue_pc_write (current_cpu, opval);
8576     written |= (1 << 3);
8577     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8578   }
8579 }
8580 }
8581
8582   abuf->written = written;
8583   return vpc;
8584 #undef FLD
8585 }
8586
8587 /* fblt: fblt$pack $FCCi_2,$hint,$label16 */
8588
8589 static SEM_PC
8590 SEM_FN_NAME (frvbf,fblt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8591 {
8592 #define FLD(f) abuf->fields.sfmt_fbne.f
8593   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8594   int UNUSED written = 0;
8595   IADDR UNUSED pc = abuf->addr;
8596   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8597
8598 {
8599 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8600 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2))) {
8601   {
8602     USI opval = FLD (i_label16);
8603     sim_queue_pc_write (current_cpu, opval);
8604     written |= (1 << 3);
8605     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8606   }
8607 }
8608 }
8609
8610   abuf->written = written;
8611   return vpc;
8612 #undef FLD
8613 }
8614
8615 /* fbuge: fbuge$pack $FCCi_2,$hint,$label16 */
8616
8617 static SEM_PC
8618 SEM_FN_NAME (frvbf,fbuge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8619 {
8620 #define FLD(f) abuf->fields.sfmt_fbne.f
8621   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8622   int UNUSED written = 0;
8623   IADDR UNUSED pc = abuf->addr;
8624   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8625
8626 {
8627 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8628 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3)), ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1))))) {
8629   {
8630     USI opval = FLD (i_label16);
8631     sim_queue_pc_write (current_cpu, opval);
8632     written |= (1 << 3);
8633     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8634   }
8635 }
8636 }
8637
8638   abuf->written = written;
8639   return vpc;
8640 #undef FLD
8641 }
8642
8643 /* fbug: fbug$pack $FCCi_2,$hint,$label16 */
8644
8645 static SEM_PC
8646 SEM_FN_NAME (frvbf,fbug) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8647 {
8648 #define FLD(f) abuf->fields.sfmt_fbne.f
8649   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8650   int UNUSED written = 0;
8651   IADDR UNUSED pc = abuf->addr;
8652   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8653
8654 {
8655 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8656 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
8657   {
8658     USI opval = FLD (i_label16);
8659     sim_queue_pc_write (current_cpu, opval);
8660     written |= (1 << 3);
8661     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8662   }
8663 }
8664 }
8665
8666   abuf->written = written;
8667   return vpc;
8668 #undef FLD
8669 }
8670
8671 /* fble: fble$pack $FCCi_2,$hint,$label16 */
8672
8673 static SEM_PC
8674 SEM_FN_NAME (frvbf,fble) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8675 {
8676 #define FLD(f) abuf->fields.sfmt_fbne.f
8677   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8678   int UNUSED written = 0;
8679   IADDR UNUSED pc = abuf->addr;
8680   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8681
8682 {
8683 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8684 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2)))) {
8685   {
8686     USI opval = FLD (i_label16);
8687     sim_queue_pc_write (current_cpu, opval);
8688     written |= (1 << 3);
8689     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8690   }
8691 }
8692 }
8693
8694   abuf->written = written;
8695   return vpc;
8696 #undef FLD
8697 }
8698
8699 /* fbgt: fbgt$pack $FCCi_2,$hint,$label16 */
8700
8701 static SEM_PC
8702 SEM_FN_NAME (frvbf,fbgt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8703 {
8704 #define FLD(f) abuf->fields.sfmt_fbne.f
8705   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8706   int UNUSED written = 0;
8707   IADDR UNUSED pc = abuf->addr;
8708   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8709
8710 {
8711 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8712 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1))) {
8713   {
8714     USI opval = FLD (i_label16);
8715     sim_queue_pc_write (current_cpu, opval);
8716     written |= (1 << 3);
8717     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8718   }
8719 }
8720 }
8721
8722   abuf->written = written;
8723   return vpc;
8724 #undef FLD
8725 }
8726
8727 /* fbule: fbule$pack $FCCi_2,$hint,$label16 */
8728
8729 static SEM_PC
8730 SEM_FN_NAME (frvbf,fbule) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8731 {
8732 #define FLD(f) abuf->fields.sfmt_fbne.f
8733   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8734   int UNUSED written = 0;
8735   IADDR UNUSED pc = abuf->addr;
8736   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8737
8738 {
8739 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8740 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3)), ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1))))) {
8741   {
8742     USI opval = FLD (i_label16);
8743     sim_queue_pc_write (current_cpu, opval);
8744     written |= (1 << 3);
8745     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8746   }
8747 }
8748 }
8749
8750   abuf->written = written;
8751   return vpc;
8752 #undef FLD
8753 }
8754
8755 /* fbu: fbu$pack $FCCi_2,$hint,$label16 */
8756
8757 static SEM_PC
8758 SEM_FN_NAME (frvbf,fbu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8759 {
8760 #define FLD(f) abuf->fields.sfmt_fbne.f
8761   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8762   int UNUSED written = 0;
8763   IADDR UNUSED pc = abuf->addr;
8764   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8765
8766 {
8767 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8768 if (TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1))) {
8769   {
8770     USI opval = FLD (i_label16);
8771     sim_queue_pc_write (current_cpu, opval);
8772     written |= (1 << 3);
8773     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8774   }
8775 }
8776 }
8777
8778   abuf->written = written;
8779   return vpc;
8780 #undef FLD
8781 }
8782
8783 /* fbo: fbo$pack $FCCi_2,$hint,$label16 */
8784
8785 static SEM_PC
8786 SEM_FN_NAME (frvbf,fbo) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8787 {
8788 #define FLD(f) abuf->fields.sfmt_fbne.f
8789   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8790   int UNUSED written = 0;
8791   IADDR UNUSED pc = abuf->addr;
8792   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8793
8794 {
8795 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8796 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3)), ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1))))) {
8797   {
8798     USI opval = FLD (i_label16);
8799     sim_queue_pc_write (current_cpu, opval);
8800     written |= (1 << 3);
8801     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8802   }
8803 }
8804 }
8805
8806   abuf->written = written;
8807   return vpc;
8808 #undef FLD
8809 }
8810
8811 /* bctrlr: bctrlr$pack $ccond,$hint */
8812
8813 static SEM_PC
8814 SEM_FN_NAME (frvbf,bctrlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8815 {
8816 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
8817   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8818   int UNUSED written = 0;
8819   IADDR UNUSED pc = abuf->addr;
8820   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8821
8822 {
8823 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
8824 {
8825   SI tmp_tmp;
8826   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
8827   {
8828     USI opval = tmp_tmp;
8829     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
8830     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
8831   }
8832 if (EQSI (FLD (f_ccond), 0)) {
8833 if (NESI (tmp_tmp, 0)) {
8834   {
8835     USI opval = GET_H_SPR (((UINT) 272));
8836     sim_queue_pc_write (current_cpu, opval);
8837     written |= (1 << 5);
8838     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8839   }
8840 }
8841 } else {
8842 if (EQSI (tmp_tmp, 0)) {
8843   {
8844     USI opval = GET_H_SPR (((UINT) 272));
8845     sim_queue_pc_write (current_cpu, opval);
8846     written |= (1 << 5);
8847     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8848   }
8849 }
8850 }
8851 }
8852 }
8853
8854   abuf->written = written;
8855   return vpc;
8856 #undef FLD
8857 }
8858
8859 /* bralr: bralr$pack$hint_taken */
8860
8861 static SEM_PC
8862 SEM_FN_NAME (frvbf,bralr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8863 {
8864 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
8865   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8866   int UNUSED written = 0;
8867   IADDR UNUSED pc = abuf->addr;
8868   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8869
8870 {
8871 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
8872   {
8873     USI opval = GET_H_SPR (((UINT) 272));
8874     sim_queue_pc_write (current_cpu, opval);
8875     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8876   }
8877 }
8878
8879   return vpc;
8880 #undef FLD
8881 }
8882
8883 /* bnolr: bnolr$pack$hint_not_taken */
8884
8885 static SEM_PC
8886 SEM_FN_NAME (frvbf,bnolr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8887 {
8888 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
8889   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8890   int UNUSED written = 0;
8891   IADDR UNUSED pc = abuf->addr;
8892   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8893
8894 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
8895
8896   return vpc;
8897 #undef FLD
8898 }
8899
8900 /* beqlr: beqlr$pack $ICCi_2,$hint */
8901
8902 static SEM_PC
8903 SEM_FN_NAME (frvbf,beqlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8904 {
8905 #define FLD(f) abuf->fields.sfmt_bceqlr.f
8906   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8907   int UNUSED written = 0;
8908   IADDR UNUSED pc = abuf->addr;
8909   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8910
8911 {
8912 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
8913 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2))) {
8914   {
8915     USI opval = GET_H_SPR (((UINT) 272));
8916     sim_queue_pc_write (current_cpu, opval);
8917     written |= (1 << 3);
8918     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8919   }
8920 }
8921 }
8922
8923   abuf->written = written;
8924   return vpc;
8925 #undef FLD
8926 }
8927
8928 /* bnelr: bnelr$pack $ICCi_2,$hint */
8929
8930 static SEM_PC
8931 SEM_FN_NAME (frvbf,bnelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8932 {
8933 #define FLD(f) abuf->fields.sfmt_bceqlr.f
8934   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8935   int UNUSED written = 0;
8936   IADDR UNUSED pc = abuf->addr;
8937   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8938
8939 {
8940 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
8941 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)))) {
8942   {
8943     USI opval = GET_H_SPR (((UINT) 272));
8944     sim_queue_pc_write (current_cpu, opval);
8945     written |= (1 << 3);
8946     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8947   }
8948 }
8949 }
8950
8951   abuf->written = written;
8952   return vpc;
8953 #undef FLD
8954 }
8955
8956 /* blelr: blelr$pack $ICCi_2,$hint */
8957
8958 static SEM_PC
8959 SEM_FN_NAME (frvbf,blelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8960 {
8961 #define FLD(f) abuf->fields.sfmt_bceqlr.f
8962   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8963   int UNUSED written = 0;
8964   IADDR UNUSED pc = abuf->addr;
8965   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8966
8967 {
8968 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
8969 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)), XORBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1))))) {
8970   {
8971     USI opval = GET_H_SPR (((UINT) 272));
8972     sim_queue_pc_write (current_cpu, opval);
8973     written |= (1 << 3);
8974     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8975   }
8976 }
8977 }
8978
8979   abuf->written = written;
8980   return vpc;
8981 #undef FLD
8982 }
8983
8984 /* bgtlr: bgtlr$pack $ICCi_2,$hint */
8985
8986 static SEM_PC
8987 SEM_FN_NAME (frvbf,bgtlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8988 {
8989 #define FLD(f) abuf->fields.sfmt_bceqlr.f
8990   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8991   int UNUSED written = 0;
8992   IADDR UNUSED pc = abuf->addr;
8993   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8994
8995 {
8996 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
8997 if (NOTBI (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)), XORBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1)))))) {
8998   {
8999     USI opval = GET_H_SPR (((UINT) 272));
9000     sim_queue_pc_write (current_cpu, opval);
9001     written |= (1 << 3);
9002     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9003   }
9004 }
9005 }
9006
9007   abuf->written = written;
9008   return vpc;
9009 #undef FLD
9010 }
9011
9012 /* bltlr: bltlr$pack $ICCi_2,$hint */
9013
9014 static SEM_PC
9015 SEM_FN_NAME (frvbf,bltlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9016 {
9017 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9018   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9019   int UNUSED written = 0;
9020   IADDR UNUSED pc = abuf->addr;
9021   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9022
9023 {
9024 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9025 if (XORBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1)))) {
9026   {
9027     USI opval = GET_H_SPR (((UINT) 272));
9028     sim_queue_pc_write (current_cpu, opval);
9029     written |= (1 << 3);
9030     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9031   }
9032 }
9033 }
9034
9035   abuf->written = written;
9036   return vpc;
9037 #undef FLD
9038 }
9039
9040 /* bgelr: bgelr$pack $ICCi_2,$hint */
9041
9042 static SEM_PC
9043 SEM_FN_NAME (frvbf,bgelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9044 {
9045 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9046   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9047   int UNUSED written = 0;
9048   IADDR UNUSED pc = abuf->addr;
9049   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9050
9051 {
9052 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9053 if (NOTBI (XORBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1))))) {
9054   {
9055     USI opval = GET_H_SPR (((UINT) 272));
9056     sim_queue_pc_write (current_cpu, opval);
9057     written |= (1 << 3);
9058     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9059   }
9060 }
9061 }
9062
9063   abuf->written = written;
9064   return vpc;
9065 #undef FLD
9066 }
9067
9068 /* blslr: blslr$pack $ICCi_2,$hint */
9069
9070 static SEM_PC
9071 SEM_FN_NAME (frvbf,blslr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9072 {
9073 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9074   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9075   int UNUSED written = 0;
9076   IADDR UNUSED pc = abuf->addr;
9077   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9078
9079 {
9080 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9081 if (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)))) {
9082   {
9083     USI opval = GET_H_SPR (((UINT) 272));
9084     sim_queue_pc_write (current_cpu, opval);
9085     written |= (1 << 3);
9086     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9087   }
9088 }
9089 }
9090
9091   abuf->written = written;
9092   return vpc;
9093 #undef FLD
9094 }
9095
9096 /* bhilr: bhilr$pack $ICCi_2,$hint */
9097
9098 static SEM_PC
9099 SEM_FN_NAME (frvbf,bhilr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9100 {
9101 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9102   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9103   int UNUSED written = 0;
9104   IADDR UNUSED pc = abuf->addr;
9105   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9106
9107 {
9108 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9109 if (NOTBI (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2))))) {
9110   {
9111     USI opval = GET_H_SPR (((UINT) 272));
9112     sim_queue_pc_write (current_cpu, opval);
9113     written |= (1 << 3);
9114     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9115   }
9116 }
9117 }
9118
9119   abuf->written = written;
9120   return vpc;
9121 #undef FLD
9122 }
9123
9124 /* bclr: bclr$pack $ICCi_2,$hint */
9125
9126 static SEM_PC
9127 SEM_FN_NAME (frvbf,bclr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9128 {
9129 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9130   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9131   int UNUSED written = 0;
9132   IADDR UNUSED pc = abuf->addr;
9133   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9134
9135 {
9136 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9137 if (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1))) {
9138   {
9139     USI opval = GET_H_SPR (((UINT) 272));
9140     sim_queue_pc_write (current_cpu, opval);
9141     written |= (1 << 3);
9142     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9143   }
9144 }
9145 }
9146
9147   abuf->written = written;
9148   return vpc;
9149 #undef FLD
9150 }
9151
9152 /* bnclr: bnclr$pack $ICCi_2,$hint */
9153
9154 static SEM_PC
9155 SEM_FN_NAME (frvbf,bnclr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9156 {
9157 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9158   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9159   int UNUSED written = 0;
9160   IADDR UNUSED pc = abuf->addr;
9161   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9162
9163 {
9164 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9165 if (NOTBI (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)))) {
9166   {
9167     USI opval = GET_H_SPR (((UINT) 272));
9168     sim_queue_pc_write (current_cpu, opval);
9169     written |= (1 << 3);
9170     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9171   }
9172 }
9173 }
9174
9175   abuf->written = written;
9176   return vpc;
9177 #undef FLD
9178 }
9179
9180 /* bnlr: bnlr$pack $ICCi_2,$hint */
9181
9182 static SEM_PC
9183 SEM_FN_NAME (frvbf,bnlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9184 {
9185 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9186   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9187   int UNUSED written = 0;
9188   IADDR UNUSED pc = abuf->addr;
9189   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9190
9191 {
9192 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9193 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3))) {
9194   {
9195     USI opval = GET_H_SPR (((UINT) 272));
9196     sim_queue_pc_write (current_cpu, opval);
9197     written |= (1 << 3);
9198     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9199   }
9200 }
9201 }
9202
9203   abuf->written = written;
9204   return vpc;
9205 #undef FLD
9206 }
9207
9208 /* bplr: bplr$pack $ICCi_2,$hint */
9209
9210 static SEM_PC
9211 SEM_FN_NAME (frvbf,bplr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9212 {
9213 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9214   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9215   int UNUSED written = 0;
9216   IADDR UNUSED pc = abuf->addr;
9217   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9218
9219 {
9220 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9221 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3)))) {
9222   {
9223     USI opval = GET_H_SPR (((UINT) 272));
9224     sim_queue_pc_write (current_cpu, opval);
9225     written |= (1 << 3);
9226     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9227   }
9228 }
9229 }
9230
9231   abuf->written = written;
9232   return vpc;
9233 #undef FLD
9234 }
9235
9236 /* bvlr: bvlr$pack $ICCi_2,$hint */
9237
9238 static SEM_PC
9239 SEM_FN_NAME (frvbf,bvlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9240 {
9241 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9242   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9243   int UNUSED written = 0;
9244   IADDR UNUSED pc = abuf->addr;
9245   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9246
9247 {
9248 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9249 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1))) {
9250   {
9251     USI opval = GET_H_SPR (((UINT) 272));
9252     sim_queue_pc_write (current_cpu, opval);
9253     written |= (1 << 3);
9254     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9255   }
9256 }
9257 }
9258
9259   abuf->written = written;
9260   return vpc;
9261 #undef FLD
9262 }
9263
9264 /* bnvlr: bnvlr$pack $ICCi_2,$hint */
9265
9266 static SEM_PC
9267 SEM_FN_NAME (frvbf,bnvlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9268 {
9269 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9270   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9271   int UNUSED written = 0;
9272   IADDR UNUSED pc = abuf->addr;
9273   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9274
9275 {
9276 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9277 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1)))) {
9278   {
9279     USI opval = GET_H_SPR (((UINT) 272));
9280     sim_queue_pc_write (current_cpu, opval);
9281     written |= (1 << 3);
9282     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9283   }
9284 }
9285 }
9286
9287   abuf->written = written;
9288   return vpc;
9289 #undef FLD
9290 }
9291
9292 /* fbralr: fbralr$pack$hint_taken */
9293
9294 static SEM_PC
9295 SEM_FN_NAME (frvbf,fbralr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9296 {
9297 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9298   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9299   int UNUSED written = 0;
9300   IADDR UNUSED pc = abuf->addr;
9301   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9302
9303 {
9304 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9305   {
9306     USI opval = GET_H_SPR (((UINT) 272));
9307     sim_queue_pc_write (current_cpu, opval);
9308     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9309   }
9310 }
9311
9312   return vpc;
9313 #undef FLD
9314 }
9315
9316 /* fbnolr: fbnolr$pack$hint_not_taken */
9317
9318 static SEM_PC
9319 SEM_FN_NAME (frvbf,fbnolr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9320 {
9321 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9322   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9323   int UNUSED written = 0;
9324   IADDR UNUSED pc = abuf->addr;
9325   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9326
9327 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9328
9329   return vpc;
9330 #undef FLD
9331 }
9332
9333 /* fbeqlr: fbeqlr$pack $FCCi_2,$hint */
9334
9335 static SEM_PC
9336 SEM_FN_NAME (frvbf,fbeqlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9337 {
9338 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9339   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9340   int UNUSED written = 0;
9341   IADDR UNUSED pc = abuf->addr;
9342   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9343
9344 {
9345 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9346 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3))) {
9347   {
9348     USI opval = GET_H_SPR (((UINT) 272));
9349     sim_queue_pc_write (current_cpu, opval);
9350     written |= (1 << 3);
9351     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9352   }
9353 }
9354 }
9355
9356   abuf->written = written;
9357   return vpc;
9358 #undef FLD
9359 }
9360
9361 /* fbnelr: fbnelr$pack $FCCi_2,$hint */
9362
9363 static SEM_PC
9364 SEM_FN_NAME (frvbf,fbnelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9365 {
9366 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9367   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9368   int UNUSED written = 0;
9369   IADDR UNUSED pc = abuf->addr;
9370   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9371
9372 {
9373 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9374 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2)), ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1))))) {
9375   {
9376     USI opval = GET_H_SPR (((UINT) 272));
9377     sim_queue_pc_write (current_cpu, opval);
9378     written |= (1 << 3);
9379     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9380   }
9381 }
9382 }
9383
9384   abuf->written = written;
9385   return vpc;
9386 #undef FLD
9387 }
9388
9389 /* fblglr: fblglr$pack $FCCi_2,$hint */
9390
9391 static SEM_PC
9392 SEM_FN_NAME (frvbf,fblglr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9393 {
9394 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9395   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9396   int UNUSED written = 0;
9397   IADDR UNUSED pc = abuf->addr;
9398   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9399
9400 {
9401 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9402 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1)))) {
9403   {
9404     USI opval = GET_H_SPR (((UINT) 272));
9405     sim_queue_pc_write (current_cpu, opval);
9406     written |= (1 << 3);
9407     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9408   }
9409 }
9410 }
9411
9412   abuf->written = written;
9413   return vpc;
9414 #undef FLD
9415 }
9416
9417 /* fbuelr: fbuelr$pack $FCCi_2,$hint */
9418
9419 static SEM_PC
9420 SEM_FN_NAME (frvbf,fbuelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9421 {
9422 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9423   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9424   int UNUSED written = 0;
9425   IADDR UNUSED pc = abuf->addr;
9426   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9427
9428 {
9429 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9430 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
9431   {
9432     USI opval = GET_H_SPR (((UINT) 272));
9433     sim_queue_pc_write (current_cpu, opval);
9434     written |= (1 << 3);
9435     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9436   }
9437 }
9438 }
9439
9440   abuf->written = written;
9441   return vpc;
9442 #undef FLD
9443 }
9444
9445 /* fbullr: fbullr$pack $FCCi_2,$hint */
9446
9447 static SEM_PC
9448 SEM_FN_NAME (frvbf,fbullr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9449 {
9450 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9451   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9452   int UNUSED written = 0;
9453   IADDR UNUSED pc = abuf->addr;
9454   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9455
9456 {
9457 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9458 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
9459   {
9460     USI opval = GET_H_SPR (((UINT) 272));
9461     sim_queue_pc_write (current_cpu, opval);
9462     written |= (1 << 3);
9463     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9464   }
9465 }
9466 }
9467
9468   abuf->written = written;
9469   return vpc;
9470 #undef FLD
9471 }
9472
9473 /* fbgelr: fbgelr$pack $FCCi_2,$hint */
9474
9475 static SEM_PC
9476 SEM_FN_NAME (frvbf,fbgelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9477 {
9478 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9479   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9480   int UNUSED written = 0;
9481   IADDR UNUSED pc = abuf->addr;
9482   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9483
9484 {
9485 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9486 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1)))) {
9487   {
9488     USI opval = GET_H_SPR (((UINT) 272));
9489     sim_queue_pc_write (current_cpu, opval);
9490     written |= (1 << 3);
9491     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9492   }
9493 }
9494 }
9495
9496   abuf->written = written;
9497   return vpc;
9498 #undef FLD
9499 }
9500
9501 /* fbltlr: fbltlr$pack $FCCi_2,$hint */
9502
9503 static SEM_PC
9504 SEM_FN_NAME (frvbf,fbltlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9505 {
9506 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9507   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9508   int UNUSED written = 0;
9509   IADDR UNUSED pc = abuf->addr;
9510   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9511
9512 {
9513 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9514 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2))) {
9515   {
9516     USI opval = GET_H_SPR (((UINT) 272));
9517     sim_queue_pc_write (current_cpu, opval);
9518     written |= (1 << 3);
9519     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9520   }
9521 }
9522 }
9523
9524   abuf->written = written;
9525   return vpc;
9526 #undef FLD
9527 }
9528
9529 /* fbugelr: fbugelr$pack $FCCi_2,$hint */
9530
9531 static SEM_PC
9532 SEM_FN_NAME (frvbf,fbugelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9533 {
9534 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9535   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9536   int UNUSED written = 0;
9537   IADDR UNUSED pc = abuf->addr;
9538   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9539
9540 {
9541 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9542 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3)), ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1))))) {
9543   {
9544     USI opval = GET_H_SPR (((UINT) 272));
9545     sim_queue_pc_write (current_cpu, opval);
9546     written |= (1 << 3);
9547     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9548   }
9549 }
9550 }
9551
9552   abuf->written = written;
9553   return vpc;
9554 #undef FLD
9555 }
9556
9557 /* fbuglr: fbuglr$pack $FCCi_2,$hint */
9558
9559 static SEM_PC
9560 SEM_FN_NAME (frvbf,fbuglr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9561 {
9562 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9563   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9564   int UNUSED written = 0;
9565   IADDR UNUSED pc = abuf->addr;
9566   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9567
9568 {
9569 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9570 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
9571   {
9572     USI opval = GET_H_SPR (((UINT) 272));
9573     sim_queue_pc_write (current_cpu, opval);
9574     written |= (1 << 3);
9575     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9576   }
9577 }
9578 }
9579
9580   abuf->written = written;
9581   return vpc;
9582 #undef FLD
9583 }
9584
9585 /* fblelr: fblelr$pack $FCCi_2,$hint */
9586
9587 static SEM_PC
9588 SEM_FN_NAME (frvbf,fblelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9589 {
9590 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9591   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9592   int UNUSED written = 0;
9593   IADDR UNUSED pc = abuf->addr;
9594   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9595
9596 {
9597 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9598 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2)))) {
9599   {
9600     USI opval = GET_H_SPR (((UINT) 272));
9601     sim_queue_pc_write (current_cpu, opval);
9602     written |= (1 << 3);
9603     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9604   }
9605 }
9606 }
9607
9608   abuf->written = written;
9609   return vpc;
9610 #undef FLD
9611 }
9612
9613 /* fbgtlr: fbgtlr$pack $FCCi_2,$hint */
9614
9615 static SEM_PC
9616 SEM_FN_NAME (frvbf,fbgtlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9617 {
9618 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9619   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9620   int UNUSED written = 0;
9621   IADDR UNUSED pc = abuf->addr;
9622   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9623
9624 {
9625 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9626 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1))) {
9627   {
9628     USI opval = GET_H_SPR (((UINT) 272));
9629     sim_queue_pc_write (current_cpu, opval);
9630     written |= (1 << 3);
9631     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9632   }
9633 }
9634 }
9635
9636   abuf->written = written;
9637   return vpc;
9638 #undef FLD
9639 }
9640
9641 /* fbulelr: fbulelr$pack $FCCi_2,$hint */
9642
9643 static SEM_PC
9644 SEM_FN_NAME (frvbf,fbulelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9645 {
9646 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9647   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9648   int UNUSED written = 0;
9649   IADDR UNUSED pc = abuf->addr;
9650   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9651
9652 {
9653 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9654 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3)), ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1))))) {
9655   {
9656     USI opval = GET_H_SPR (((UINT) 272));
9657     sim_queue_pc_write (current_cpu, opval);
9658     written |= (1 << 3);
9659     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9660   }
9661 }
9662 }
9663
9664   abuf->written = written;
9665   return vpc;
9666 #undef FLD
9667 }
9668
9669 /* fbulr: fbulr$pack $FCCi_2,$hint */
9670
9671 static SEM_PC
9672 SEM_FN_NAME (frvbf,fbulr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9673 {
9674 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9675   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9676   int UNUSED written = 0;
9677   IADDR UNUSED pc = abuf->addr;
9678   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9679
9680 {
9681 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9682 if (TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1))) {
9683   {
9684     USI opval = GET_H_SPR (((UINT) 272));
9685     sim_queue_pc_write (current_cpu, opval);
9686     written |= (1 << 3);
9687     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9688   }
9689 }
9690 }
9691
9692   abuf->written = written;
9693   return vpc;
9694 #undef FLD
9695 }
9696
9697 /* fbolr: fbolr$pack $FCCi_2,$hint */
9698
9699 static SEM_PC
9700 SEM_FN_NAME (frvbf,fbolr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9701 {
9702 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9703   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9704   int UNUSED written = 0;
9705   IADDR UNUSED pc = abuf->addr;
9706   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9707
9708 {
9709 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9710 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3)), ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1))))) {
9711   {
9712     USI opval = GET_H_SPR (((UINT) 272));
9713     sim_queue_pc_write (current_cpu, opval);
9714     written |= (1 << 3);
9715     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9716   }
9717 }
9718 }
9719
9720   abuf->written = written;
9721   return vpc;
9722 #undef FLD
9723 }
9724
9725 /* bcralr: bcralr$pack $ccond$hint_taken */
9726
9727 static SEM_PC
9728 SEM_FN_NAME (frvbf,bcralr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9729 {
9730 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9731   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9732   int UNUSED written = 0;
9733   IADDR UNUSED pc = abuf->addr;
9734   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9735
9736 {
9737 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9738 {
9739   SI tmp_tmp;
9740   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
9741   {
9742     USI opval = tmp_tmp;
9743     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
9744     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
9745   }
9746 if (EQSI (FLD (f_ccond), 0)) {
9747 if (NESI (tmp_tmp, 0)) {
9748   {
9749     USI opval = GET_H_SPR (((UINT) 272));
9750     sim_queue_pc_write (current_cpu, opval);
9751     written |= (1 << 5);
9752     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9753   }
9754 }
9755 } else {
9756 if (EQSI (tmp_tmp, 0)) {
9757   {
9758     USI opval = GET_H_SPR (((UINT) 272));
9759     sim_queue_pc_write (current_cpu, opval);
9760     written |= (1 << 5);
9761     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9762   }
9763 }
9764 }
9765 }
9766 }
9767
9768   abuf->written = written;
9769   return vpc;
9770 #undef FLD
9771 }
9772
9773 /* bcnolr: bcnolr$pack$hint_not_taken */
9774
9775 static SEM_PC
9776 SEM_FN_NAME (frvbf,bcnolr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9777 {
9778 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9779   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9780   int UNUSED written = 0;
9781   IADDR UNUSED pc = abuf->addr;
9782   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9783
9784 {
9785 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9786 {
9787   SI tmp_tmp;
9788   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
9789   {
9790     USI opval = tmp_tmp;
9791     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
9792     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
9793   }
9794 ((void) 0); /*nop*/
9795 }
9796 }
9797
9798   return vpc;
9799 #undef FLD
9800 }
9801
9802 /* bceqlr: bceqlr$pack $ICCi_2,$ccond,$hint */
9803
9804 static SEM_PC
9805 SEM_FN_NAME (frvbf,bceqlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9806 {
9807 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9808   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9809   int UNUSED written = 0;
9810   IADDR UNUSED pc = abuf->addr;
9811   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9812
9813 {
9814 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9815 {
9816   SI tmp_tmp;
9817   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
9818   {
9819     USI opval = tmp_tmp;
9820     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
9821     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
9822   }
9823 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2))) {
9824 if (EQSI (FLD (f_ccond), 0)) {
9825 if (NESI (tmp_tmp, 0)) {
9826   {
9827     USI opval = GET_H_SPR (((UINT) 272));
9828     sim_queue_pc_write (current_cpu, opval);
9829     written |= (1 << 6);
9830     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9831   }
9832 }
9833 } else {
9834 if (EQSI (tmp_tmp, 0)) {
9835   {
9836     USI opval = GET_H_SPR (((UINT) 272));
9837     sim_queue_pc_write (current_cpu, opval);
9838     written |= (1 << 6);
9839     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9840   }
9841 }
9842 }
9843 }
9844 }
9845 }
9846
9847   abuf->written = written;
9848   return vpc;
9849 #undef FLD
9850 }
9851
9852 /* bcnelr: bcnelr$pack $ICCi_2,$ccond,$hint */
9853
9854 static SEM_PC
9855 SEM_FN_NAME (frvbf,bcnelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9856 {
9857 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9858   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9859   int UNUSED written = 0;
9860   IADDR UNUSED pc = abuf->addr;
9861   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9862
9863 {
9864 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9865 {
9866   SI tmp_tmp;
9867   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
9868   {
9869     USI opval = tmp_tmp;
9870     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
9871     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
9872   }
9873 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)))) {
9874 if (EQSI (FLD (f_ccond), 0)) {
9875 if (NESI (tmp_tmp, 0)) {
9876   {
9877     USI opval = GET_H_SPR (((UINT) 272));
9878     sim_queue_pc_write (current_cpu, opval);
9879     written |= (1 << 6);
9880     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9881   }
9882 }
9883 } else {
9884 if (EQSI (tmp_tmp, 0)) {
9885   {
9886     USI opval = GET_H_SPR (((UINT) 272));
9887     sim_queue_pc_write (current_cpu, opval);
9888     written |= (1 << 6);
9889     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9890   }
9891 }
9892 }
9893 }
9894 }
9895 }
9896
9897   abuf->written = written;
9898   return vpc;
9899 #undef FLD
9900 }
9901
9902 /* bclelr: bclelr$pack $ICCi_2,$ccond,$hint */
9903
9904 static SEM_PC
9905 SEM_FN_NAME (frvbf,bclelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9906 {
9907 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9908   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9909   int UNUSED written = 0;
9910   IADDR UNUSED pc = abuf->addr;
9911   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9912
9913 {
9914 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9915 {
9916   SI tmp_tmp;
9917   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
9918   {
9919     USI opval = tmp_tmp;
9920     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
9921     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
9922   }
9923 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)), XORBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1))))) {
9924 if (EQSI (FLD (f_ccond), 0)) {
9925 if (NESI (tmp_tmp, 0)) {
9926   {
9927     USI opval = GET_H_SPR (((UINT) 272));
9928     sim_queue_pc_write (current_cpu, opval);
9929     written |= (1 << 6);
9930     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9931   }
9932 }
9933 } else {
9934 if (EQSI (tmp_tmp, 0)) {
9935   {
9936     USI opval = GET_H_SPR (((UINT) 272));
9937     sim_queue_pc_write (current_cpu, opval);
9938     written |= (1 << 6);
9939     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9940   }
9941 }
9942 }
9943 }
9944 }
9945 }
9946
9947   abuf->written = written;
9948   return vpc;
9949 #undef FLD
9950 }
9951
9952 /* bcgtlr: bcgtlr$pack $ICCi_2,$ccond,$hint */
9953
9954 static SEM_PC
9955 SEM_FN_NAME (frvbf,bcgtlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9956 {
9957 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9958   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9959   int UNUSED written = 0;
9960   IADDR UNUSED pc = abuf->addr;
9961   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9962
9963 {
9964 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9965 {
9966   SI tmp_tmp;
9967   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
9968   {
9969     USI opval = tmp_tmp;
9970     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
9971     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
9972   }
9973 if (NOTBI (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)), XORBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1)))))) {
9974 if (EQSI (FLD (f_ccond), 0)) {
9975 if (NESI (tmp_tmp, 0)) {
9976   {
9977     USI opval = GET_H_SPR (((UINT) 272));
9978     sim_queue_pc_write (current_cpu, opval);
9979     written |= (1 << 6);
9980     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9981   }
9982 }
9983 } else {
9984 if (EQSI (tmp_tmp, 0)) {
9985   {
9986     USI opval = GET_H_SPR (((UINT) 272));
9987     sim_queue_pc_write (current_cpu, opval);
9988     written |= (1 << 6);
9989     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9990   }
9991 }
9992 }
9993 }
9994 }
9995 }
9996
9997   abuf->written = written;
9998   return vpc;
9999 #undef FLD
10000 }
10001
10002 /* bcltlr: bcltlr$pack $ICCi_2,$ccond,$hint */
10003
10004 static SEM_PC
10005 SEM_FN_NAME (frvbf,bcltlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10006 {
10007 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10008   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10009   int UNUSED written = 0;
10010   IADDR UNUSED pc = abuf->addr;
10011   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10012
10013 {
10014 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10015 {
10016   SI tmp_tmp;
10017   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10018   {
10019     USI opval = tmp_tmp;
10020     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10021     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10022   }
10023 if (XORBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1)))) {
10024 if (EQSI (FLD (f_ccond), 0)) {
10025 if (NESI (tmp_tmp, 0)) {
10026   {
10027     USI opval = GET_H_SPR (((UINT) 272));
10028     sim_queue_pc_write (current_cpu, opval);
10029     written |= (1 << 6);
10030     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10031   }
10032 }
10033 } else {
10034 if (EQSI (tmp_tmp, 0)) {
10035   {
10036     USI opval = GET_H_SPR (((UINT) 272));
10037     sim_queue_pc_write (current_cpu, opval);
10038     written |= (1 << 6);
10039     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10040   }
10041 }
10042 }
10043 }
10044 }
10045 }
10046
10047   abuf->written = written;
10048   return vpc;
10049 #undef FLD
10050 }
10051
10052 /* bcgelr: bcgelr$pack $ICCi_2,$ccond,$hint */
10053
10054 static SEM_PC
10055 SEM_FN_NAME (frvbf,bcgelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10056 {
10057 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10058   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10059   int UNUSED written = 0;
10060   IADDR UNUSED pc = abuf->addr;
10061   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10062
10063 {
10064 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10065 {
10066   SI tmp_tmp;
10067   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10068   {
10069     USI opval = tmp_tmp;
10070     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10071     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10072   }
10073 if (NOTBI (XORBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1))))) {
10074 if (EQSI (FLD (f_ccond), 0)) {
10075 if (NESI (tmp_tmp, 0)) {
10076   {
10077     USI opval = GET_H_SPR (((UINT) 272));
10078     sim_queue_pc_write (current_cpu, opval);
10079     written |= (1 << 6);
10080     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10081   }
10082 }
10083 } else {
10084 if (EQSI (tmp_tmp, 0)) {
10085   {
10086     USI opval = GET_H_SPR (((UINT) 272));
10087     sim_queue_pc_write (current_cpu, opval);
10088     written |= (1 << 6);
10089     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10090   }
10091 }
10092 }
10093 }
10094 }
10095 }
10096
10097   abuf->written = written;
10098   return vpc;
10099 #undef FLD
10100 }
10101
10102 /* bclslr: bclslr$pack $ICCi_2,$ccond,$hint */
10103
10104 static SEM_PC
10105 SEM_FN_NAME (frvbf,bclslr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10106 {
10107 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10108   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10109   int UNUSED written = 0;
10110   IADDR UNUSED pc = abuf->addr;
10111   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10112
10113 {
10114 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10115 {
10116   SI tmp_tmp;
10117   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10118   {
10119     USI opval = tmp_tmp;
10120     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10121     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10122   }
10123 if (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)))) {
10124 if (EQSI (FLD (f_ccond), 0)) {
10125 if (NESI (tmp_tmp, 0)) {
10126   {
10127     USI opval = GET_H_SPR (((UINT) 272));
10128     sim_queue_pc_write (current_cpu, opval);
10129     written |= (1 << 6);
10130     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10131   }
10132 }
10133 } else {
10134 if (EQSI (tmp_tmp, 0)) {
10135   {
10136     USI opval = GET_H_SPR (((UINT) 272));
10137     sim_queue_pc_write (current_cpu, opval);
10138     written |= (1 << 6);
10139     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10140   }
10141 }
10142 }
10143 }
10144 }
10145 }
10146
10147   abuf->written = written;
10148   return vpc;
10149 #undef FLD
10150 }
10151
10152 /* bchilr: bchilr$pack $ICCi_2,$ccond,$hint */
10153
10154 static SEM_PC
10155 SEM_FN_NAME (frvbf,bchilr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10156 {
10157 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10158   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10159   int UNUSED written = 0;
10160   IADDR UNUSED pc = abuf->addr;
10161   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10162
10163 {
10164 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10165 {
10166   SI tmp_tmp;
10167   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10168   {
10169     USI opval = tmp_tmp;
10170     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10171     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10172   }
10173 if (NOTBI (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2))))) {
10174 if (EQSI (FLD (f_ccond), 0)) {
10175 if (NESI (tmp_tmp, 0)) {
10176   {
10177     USI opval = GET_H_SPR (((UINT) 272));
10178     sim_queue_pc_write (current_cpu, opval);
10179     written |= (1 << 6);
10180     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10181   }
10182 }
10183 } else {
10184 if (EQSI (tmp_tmp, 0)) {
10185   {
10186     USI opval = GET_H_SPR (((UINT) 272));
10187     sim_queue_pc_write (current_cpu, opval);
10188     written |= (1 << 6);
10189     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10190   }
10191 }
10192 }
10193 }
10194 }
10195 }
10196
10197   abuf->written = written;
10198   return vpc;
10199 #undef FLD
10200 }
10201
10202 /* bcclr: bcclr$pack $ICCi_2,$ccond,$hint */
10203
10204 static SEM_PC
10205 SEM_FN_NAME (frvbf,bcclr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10206 {
10207 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10208   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10209   int UNUSED written = 0;
10210   IADDR UNUSED pc = abuf->addr;
10211   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10212
10213 {
10214 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10215 {
10216   SI tmp_tmp;
10217   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10218   {
10219     USI opval = tmp_tmp;
10220     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10221     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10222   }
10223 if (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1))) {
10224 if (EQSI (FLD (f_ccond), 0)) {
10225 if (NESI (tmp_tmp, 0)) {
10226   {
10227     USI opval = GET_H_SPR (((UINT) 272));
10228     sim_queue_pc_write (current_cpu, opval);
10229     written |= (1 << 6);
10230     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10231   }
10232 }
10233 } else {
10234 if (EQSI (tmp_tmp, 0)) {
10235   {
10236     USI opval = GET_H_SPR (((UINT) 272));
10237     sim_queue_pc_write (current_cpu, opval);
10238     written |= (1 << 6);
10239     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10240   }
10241 }
10242 }
10243 }
10244 }
10245 }
10246
10247   abuf->written = written;
10248   return vpc;
10249 #undef FLD
10250 }
10251
10252 /* bcnclr: bcnclr$pack $ICCi_2,$ccond,$hint */
10253
10254 static SEM_PC
10255 SEM_FN_NAME (frvbf,bcnclr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10256 {
10257 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10258   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10259   int UNUSED written = 0;
10260   IADDR UNUSED pc = abuf->addr;
10261   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10262
10263 {
10264 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10265 {
10266   SI tmp_tmp;
10267   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10268   {
10269     USI opval = tmp_tmp;
10270     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10271     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10272   }
10273 if (NOTBI (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)))) {
10274 if (EQSI (FLD (f_ccond), 0)) {
10275 if (NESI (tmp_tmp, 0)) {
10276   {
10277     USI opval = GET_H_SPR (((UINT) 272));
10278     sim_queue_pc_write (current_cpu, opval);
10279     written |= (1 << 6);
10280     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10281   }
10282 }
10283 } else {
10284 if (EQSI (tmp_tmp, 0)) {
10285   {
10286     USI opval = GET_H_SPR (((UINT) 272));
10287     sim_queue_pc_write (current_cpu, opval);
10288     written |= (1 << 6);
10289     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10290   }
10291 }
10292 }
10293 }
10294 }
10295 }
10296
10297   abuf->written = written;
10298   return vpc;
10299 #undef FLD
10300 }
10301
10302 /* bcnlr: bcnlr$pack $ICCi_2,$ccond,$hint */
10303
10304 static SEM_PC
10305 SEM_FN_NAME (frvbf,bcnlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10306 {
10307 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10308   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10309   int UNUSED written = 0;
10310   IADDR UNUSED pc = abuf->addr;
10311   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10312
10313 {
10314 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10315 {
10316   SI tmp_tmp;
10317   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10318   {
10319     USI opval = tmp_tmp;
10320     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10321     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10322   }
10323 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3))) {
10324 if (EQSI (FLD (f_ccond), 0)) {
10325 if (NESI (tmp_tmp, 0)) {
10326   {
10327     USI opval = GET_H_SPR (((UINT) 272));
10328     sim_queue_pc_write (current_cpu, opval);
10329     written |= (1 << 6);
10330     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10331   }
10332 }
10333 } else {
10334 if (EQSI (tmp_tmp, 0)) {
10335   {
10336     USI opval = GET_H_SPR (((UINT) 272));
10337     sim_queue_pc_write (current_cpu, opval);
10338     written |= (1 << 6);
10339     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10340   }
10341 }
10342 }
10343 }
10344 }
10345 }
10346
10347   abuf->written = written;
10348   return vpc;
10349 #undef FLD
10350 }
10351
10352 /* bcplr: bcplr$pack $ICCi_2,$ccond,$hint */
10353
10354 static SEM_PC
10355 SEM_FN_NAME (frvbf,bcplr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10356 {
10357 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10358   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10359   int UNUSED written = 0;
10360   IADDR UNUSED pc = abuf->addr;
10361   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10362
10363 {
10364 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10365 {
10366   SI tmp_tmp;
10367   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10368   {
10369     USI opval = tmp_tmp;
10370     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10371     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10372   }
10373 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3)))) {
10374 if (EQSI (FLD (f_ccond), 0)) {
10375 if (NESI (tmp_tmp, 0)) {
10376   {
10377     USI opval = GET_H_SPR (((UINT) 272));
10378     sim_queue_pc_write (current_cpu, opval);
10379     written |= (1 << 6);
10380     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10381   }
10382 }
10383 } else {
10384 if (EQSI (tmp_tmp, 0)) {
10385   {
10386     USI opval = GET_H_SPR (((UINT) 272));
10387     sim_queue_pc_write (current_cpu, opval);
10388     written |= (1 << 6);
10389     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10390   }
10391 }
10392 }
10393 }
10394 }
10395 }
10396
10397   abuf->written = written;
10398   return vpc;
10399 #undef FLD
10400 }
10401
10402 /* bcvlr: bcvlr$pack $ICCi_2,$ccond,$hint */
10403
10404 static SEM_PC
10405 SEM_FN_NAME (frvbf,bcvlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10406 {
10407 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10408   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10409   int UNUSED written = 0;
10410   IADDR UNUSED pc = abuf->addr;
10411   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10412
10413 {
10414 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10415 {
10416   SI tmp_tmp;
10417   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10418   {
10419     USI opval = tmp_tmp;
10420     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10421     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10422   }
10423 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1))) {
10424 if (EQSI (FLD (f_ccond), 0)) {
10425 if (NESI (tmp_tmp, 0)) {
10426   {
10427     USI opval = GET_H_SPR (((UINT) 272));
10428     sim_queue_pc_write (current_cpu, opval);
10429     written |= (1 << 6);
10430     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10431   }
10432 }
10433 } else {
10434 if (EQSI (tmp_tmp, 0)) {
10435   {
10436     USI opval = GET_H_SPR (((UINT) 272));
10437     sim_queue_pc_write (current_cpu, opval);
10438     written |= (1 << 6);
10439     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10440   }
10441 }
10442 }
10443 }
10444 }
10445 }
10446
10447   abuf->written = written;
10448   return vpc;
10449 #undef FLD
10450 }
10451
10452 /* bcnvlr: bcnvlr$pack $ICCi_2,$ccond,$hint */
10453
10454 static SEM_PC
10455 SEM_FN_NAME (frvbf,bcnvlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10456 {
10457 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10458   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10459   int UNUSED written = 0;
10460   IADDR UNUSED pc = abuf->addr;
10461   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10462
10463 {
10464 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10465 {
10466   SI tmp_tmp;
10467   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10468   {
10469     USI opval = tmp_tmp;
10470     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10471     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10472   }
10473 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1)))) {
10474 if (EQSI (FLD (f_ccond), 0)) {
10475 if (NESI (tmp_tmp, 0)) {
10476   {
10477     USI opval = GET_H_SPR (((UINT) 272));
10478     sim_queue_pc_write (current_cpu, opval);
10479     written |= (1 << 6);
10480     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10481   }
10482 }
10483 } else {
10484 if (EQSI (tmp_tmp, 0)) {
10485   {
10486     USI opval = GET_H_SPR (((UINT) 272));
10487     sim_queue_pc_write (current_cpu, opval);
10488     written |= (1 << 6);
10489     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10490   }
10491 }
10492 }
10493 }
10494 }
10495 }
10496
10497   abuf->written = written;
10498   return vpc;
10499 #undef FLD
10500 }
10501
10502 /* fcbralr: fcbralr$pack $ccond$hint_taken */
10503
10504 static SEM_PC
10505 SEM_FN_NAME (frvbf,fcbralr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10506 {
10507 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10508   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10509   int UNUSED written = 0;
10510   IADDR UNUSED pc = abuf->addr;
10511   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10512
10513 {
10514 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10515 {
10516   SI tmp_tmp;
10517   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10518   {
10519     USI opval = tmp_tmp;
10520     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10521     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10522   }
10523 if (EQSI (FLD (f_ccond), 0)) {
10524 if (NESI (tmp_tmp, 0)) {
10525   {
10526     USI opval = GET_H_SPR (((UINT) 272));
10527     sim_queue_pc_write (current_cpu, opval);
10528     written |= (1 << 5);
10529     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10530   }
10531 }
10532 } else {
10533 if (EQSI (tmp_tmp, 0)) {
10534   {
10535     USI opval = GET_H_SPR (((UINT) 272));
10536     sim_queue_pc_write (current_cpu, opval);
10537     written |= (1 << 5);
10538     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10539   }
10540 }
10541 }
10542 }
10543 }
10544
10545   abuf->written = written;
10546   return vpc;
10547 #undef FLD
10548 }
10549
10550 /* fcbnolr: fcbnolr$pack$hint_not_taken */
10551
10552 static SEM_PC
10553 SEM_FN_NAME (frvbf,fcbnolr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10554 {
10555 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10556   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10557   int UNUSED written = 0;
10558   IADDR UNUSED pc = abuf->addr;
10559   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10560
10561 {
10562 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10563 {
10564   SI tmp_tmp;
10565   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10566   {
10567     USI opval = tmp_tmp;
10568     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10569     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10570   }
10571 ((void) 0); /*nop*/
10572 }
10573 }
10574
10575   return vpc;
10576 #undef FLD
10577 }
10578
10579 /* fcbeqlr: fcbeqlr$pack $FCCi_2,$ccond,$hint */
10580
10581 static SEM_PC
10582 SEM_FN_NAME (frvbf,fcbeqlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10583 {
10584 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10585   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10586   int UNUSED written = 0;
10587   IADDR UNUSED pc = abuf->addr;
10588   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10589
10590 {
10591 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10592 {
10593   SI tmp_tmp;
10594   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10595   {
10596     USI opval = tmp_tmp;
10597     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10598     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10599   }
10600 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3))) {
10601 if (EQSI (FLD (f_ccond), 0)) {
10602 if (NESI (tmp_tmp, 0)) {
10603   {
10604     USI opval = GET_H_SPR (((UINT) 272));
10605     sim_queue_pc_write (current_cpu, opval);
10606     written |= (1 << 6);
10607     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10608   }
10609 }
10610 } else {
10611 if (EQSI (tmp_tmp, 0)) {
10612   {
10613     USI opval = GET_H_SPR (((UINT) 272));
10614     sim_queue_pc_write (current_cpu, opval);
10615     written |= (1 << 6);
10616     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10617   }
10618 }
10619 }
10620 }
10621 }
10622 }
10623
10624   abuf->written = written;
10625   return vpc;
10626 #undef FLD
10627 }
10628
10629 /* fcbnelr: fcbnelr$pack $FCCi_2,$ccond,$hint */
10630
10631 static SEM_PC
10632 SEM_FN_NAME (frvbf,fcbnelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10633 {
10634 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10635   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10636   int UNUSED written = 0;
10637   IADDR UNUSED pc = abuf->addr;
10638   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10639
10640 {
10641 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10642 {
10643   SI tmp_tmp;
10644   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10645   {
10646     USI opval = tmp_tmp;
10647     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10648     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10649   }
10650 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2)), ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1))))) {
10651 if (EQSI (FLD (f_ccond), 0)) {
10652 if (NESI (tmp_tmp, 0)) {
10653   {
10654     USI opval = GET_H_SPR (((UINT) 272));
10655     sim_queue_pc_write (current_cpu, opval);
10656     written |= (1 << 6);
10657     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10658   }
10659 }
10660 } else {
10661 if (EQSI (tmp_tmp, 0)) {
10662   {
10663     USI opval = GET_H_SPR (((UINT) 272));
10664     sim_queue_pc_write (current_cpu, opval);
10665     written |= (1 << 6);
10666     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10667   }
10668 }
10669 }
10670 }
10671 }
10672 }
10673
10674   abuf->written = written;
10675   return vpc;
10676 #undef FLD
10677 }
10678
10679 /* fcblglr: fcblglr$pack $FCCi_2,$ccond,$hint */
10680
10681 static SEM_PC
10682 SEM_FN_NAME (frvbf,fcblglr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10683 {
10684 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10685   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10686   int UNUSED written = 0;
10687   IADDR UNUSED pc = abuf->addr;
10688   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10689
10690 {
10691 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10692 {
10693   SI tmp_tmp;
10694   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10695   {
10696     USI opval = tmp_tmp;
10697     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10698     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10699   }
10700 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1)))) {
10701 if (EQSI (FLD (f_ccond), 0)) {
10702 if (NESI (tmp_tmp, 0)) {
10703   {
10704     USI opval = GET_H_SPR (((UINT) 272));
10705     sim_queue_pc_write (current_cpu, opval);
10706     written |= (1 << 6);
10707     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10708   }
10709 }
10710 } else {
10711 if (EQSI (tmp_tmp, 0)) {
10712   {
10713     USI opval = GET_H_SPR (((UINT) 272));
10714     sim_queue_pc_write (current_cpu, opval);
10715     written |= (1 << 6);
10716     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10717   }
10718 }
10719 }
10720 }
10721 }
10722 }
10723
10724   abuf->written = written;
10725   return vpc;
10726 #undef FLD
10727 }
10728
10729 /* fcbuelr: fcbuelr$pack $FCCi_2,$ccond,$hint */
10730
10731 static SEM_PC
10732 SEM_FN_NAME (frvbf,fcbuelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10733 {
10734 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10735   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10736   int UNUSED written = 0;
10737   IADDR UNUSED pc = abuf->addr;
10738   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10739
10740 {
10741 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10742 {
10743   SI tmp_tmp;
10744   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10745   {
10746     USI opval = tmp_tmp;
10747     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10748     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10749   }
10750 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
10751 if (EQSI (FLD (f_ccond), 0)) {
10752 if (NESI (tmp_tmp, 0)) {
10753   {
10754     USI opval = GET_H_SPR (((UINT) 272));
10755     sim_queue_pc_write (current_cpu, opval);
10756     written |= (1 << 6);
10757     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10758   }
10759 }
10760 } else {
10761 if (EQSI (tmp_tmp, 0)) {
10762   {
10763     USI opval = GET_H_SPR (((UINT) 272));
10764     sim_queue_pc_write (current_cpu, opval);
10765     written |= (1 << 6);
10766     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10767   }
10768 }
10769 }
10770 }
10771 }
10772 }
10773
10774   abuf->written = written;
10775   return vpc;
10776 #undef FLD
10777 }
10778
10779 /* fcbullr: fcbullr$pack $FCCi_2,$ccond,$hint */
10780
10781 static SEM_PC
10782 SEM_FN_NAME (frvbf,fcbullr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10783 {
10784 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10785   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10786   int UNUSED written = 0;
10787   IADDR UNUSED pc = abuf->addr;
10788   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10789
10790 {
10791 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10792 {
10793   SI tmp_tmp;
10794   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10795   {
10796     USI opval = tmp_tmp;
10797     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10798     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10799   }
10800 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
10801 if (EQSI (FLD (f_ccond), 0)) {
10802 if (NESI (tmp_tmp, 0)) {
10803   {
10804     USI opval = GET_H_SPR (((UINT) 272));
10805     sim_queue_pc_write (current_cpu, opval);
10806     written |= (1 << 6);
10807     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10808   }
10809 }
10810 } else {
10811 if (EQSI (tmp_tmp, 0)) {
10812   {
10813     USI opval = GET_H_SPR (((UINT) 272));
10814     sim_queue_pc_write (current_cpu, opval);
10815     written |= (1 << 6);
10816     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10817   }
10818 }
10819 }
10820 }
10821 }
10822 }
10823
10824   abuf->written = written;
10825   return vpc;
10826 #undef FLD
10827 }
10828
10829 /* fcbgelr: fcbgelr$pack $FCCi_2,$ccond,$hint */
10830
10831 static SEM_PC
10832 SEM_FN_NAME (frvbf,fcbgelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10833 {
10834 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10835   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10836   int UNUSED written = 0;
10837   IADDR UNUSED pc = abuf->addr;
10838   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10839
10840 {
10841 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10842 {
10843   SI tmp_tmp;
10844   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10845   {
10846     USI opval = tmp_tmp;
10847     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10848     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10849   }
10850 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1)))) {
10851 if (EQSI (FLD (f_ccond), 0)) {
10852 if (NESI (tmp_tmp, 0)) {
10853   {
10854     USI opval = GET_H_SPR (((UINT) 272));
10855     sim_queue_pc_write (current_cpu, opval);
10856     written |= (1 << 6);
10857     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10858   }
10859 }
10860 } else {
10861 if (EQSI (tmp_tmp, 0)) {
10862   {
10863     USI opval = GET_H_SPR (((UINT) 272));
10864     sim_queue_pc_write (current_cpu, opval);
10865     written |= (1 << 6);
10866     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10867   }
10868 }
10869 }
10870 }
10871 }
10872 }
10873
10874   abuf->written = written;
10875   return vpc;
10876 #undef FLD
10877 }
10878
10879 /* fcbltlr: fcbltlr$pack $FCCi_2,$ccond,$hint */
10880
10881 static SEM_PC
10882 SEM_FN_NAME (frvbf,fcbltlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10883 {
10884 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10885   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10886   int UNUSED written = 0;
10887   IADDR UNUSED pc = abuf->addr;
10888   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10889
10890 {
10891 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10892 {
10893   SI tmp_tmp;
10894   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10895   {
10896     USI opval = tmp_tmp;
10897     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10898     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10899   }
10900 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2))) {
10901 if (EQSI (FLD (f_ccond), 0)) {
10902 if (NESI (tmp_tmp, 0)) {
10903   {
10904     USI opval = GET_H_SPR (((UINT) 272));
10905     sim_queue_pc_write (current_cpu, opval);
10906     written |= (1 << 6);
10907     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10908   }
10909 }
10910 } else {
10911 if (EQSI (tmp_tmp, 0)) {
10912   {
10913     USI opval = GET_H_SPR (((UINT) 272));
10914     sim_queue_pc_write (current_cpu, opval);
10915     written |= (1 << 6);
10916     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10917   }
10918 }
10919 }
10920 }
10921 }
10922 }
10923
10924   abuf->written = written;
10925   return vpc;
10926 #undef FLD
10927 }
10928
10929 /* fcbugelr: fcbugelr$pack $FCCi_2,$ccond,$hint */
10930
10931 static SEM_PC
10932 SEM_FN_NAME (frvbf,fcbugelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10933 {
10934 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10935   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10936   int UNUSED written = 0;
10937   IADDR UNUSED pc = abuf->addr;
10938   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10939
10940 {
10941 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10942 {
10943   SI tmp_tmp;
10944   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10945   {
10946     USI opval = tmp_tmp;
10947     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10948     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10949   }
10950 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3)), ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1))))) {
10951 if (EQSI (FLD (f_ccond), 0)) {
10952 if (NESI (tmp_tmp, 0)) {
10953   {
10954     USI opval = GET_H_SPR (((UINT) 272));
10955     sim_queue_pc_write (current_cpu, opval);
10956     written |= (1 << 6);
10957     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10958   }
10959 }
10960 } else {
10961 if (EQSI (tmp_tmp, 0)) {
10962   {
10963     USI opval = GET_H_SPR (((UINT) 272));
10964     sim_queue_pc_write (current_cpu, opval);
10965     written |= (1 << 6);
10966     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10967   }
10968 }
10969 }
10970 }
10971 }
10972 }
10973
10974   abuf->written = written;
10975   return vpc;
10976 #undef FLD
10977 }
10978
10979 /* fcbuglr: fcbuglr$pack $FCCi_2,$ccond,$hint */
10980
10981 static SEM_PC
10982 SEM_FN_NAME (frvbf,fcbuglr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10983 {
10984 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10985   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10986   int UNUSED written = 0;
10987   IADDR UNUSED pc = abuf->addr;
10988   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10989
10990 {
10991 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10992 {
10993   SI tmp_tmp;
10994   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10995   {
10996     USI opval = tmp_tmp;
10997     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10998     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10999   }
11000 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
11001 if (EQSI (FLD (f_ccond), 0)) {
11002 if (NESI (tmp_tmp, 0)) {
11003   {
11004     USI opval = GET_H_SPR (((UINT) 272));
11005     sim_queue_pc_write (current_cpu, opval);
11006     written |= (1 << 6);
11007     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11008   }
11009 }
11010 } else {
11011 if (EQSI (tmp_tmp, 0)) {
11012   {
11013     USI opval = GET_H_SPR (((UINT) 272));
11014     sim_queue_pc_write (current_cpu, opval);
11015     written |= (1 << 6);
11016     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11017   }
11018 }
11019 }
11020 }
11021 }
11022 }
11023
11024   abuf->written = written;
11025   return vpc;
11026 #undef FLD
11027 }
11028
11029 /* fcblelr: fcblelr$pack $FCCi_2,$ccond,$hint */
11030
11031 static SEM_PC
11032 SEM_FN_NAME (frvbf,fcblelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11033 {
11034 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
11035   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11036   int UNUSED written = 0;
11037   IADDR UNUSED pc = abuf->addr;
11038   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11039
11040 {
11041 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
11042 {
11043   SI tmp_tmp;
11044   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
11045   {
11046     USI opval = tmp_tmp;
11047     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
11048     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
11049   }
11050 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2)))) {
11051 if (EQSI (FLD (f_ccond), 0)) {
11052 if (NESI (tmp_tmp, 0)) {
11053   {
11054     USI opval = GET_H_SPR (((UINT) 272));
11055     sim_queue_pc_write (current_cpu, opval);
11056     written |= (1 << 6);
11057     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11058   }
11059 }
11060 } else {
11061 if (EQSI (tmp_tmp, 0)) {
11062   {
11063     USI opval = GET_H_SPR (((UINT) 272));
11064     sim_queue_pc_write (current_cpu, opval);
11065     written |= (1 << 6);
11066     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11067   }
11068 }
11069 }
11070 }
11071 }
11072 }
11073
11074   abuf->written = written;
11075   return vpc;
11076 #undef FLD
11077 }
11078
11079 /* fcbgtlr: fcbgtlr$pack $FCCi_2,$ccond,$hint */
11080
11081 static SEM_PC
11082 SEM_FN_NAME (frvbf,fcbgtlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11083 {
11084 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
11085   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11086   int UNUSED written = 0;
11087   IADDR UNUSED pc = abuf->addr;
11088   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11089
11090 {
11091 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
11092 {
11093   SI tmp_tmp;
11094   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
11095   {
11096     USI opval = tmp_tmp;
11097     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
11098     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
11099   }
11100 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1))) {
11101 if (EQSI (FLD (f_ccond), 0)) {
11102 if (NESI (tmp_tmp, 0)) {
11103   {
11104     USI opval = GET_H_SPR (((UINT) 272));
11105     sim_queue_pc_write (current_cpu, opval);
11106     written |= (1 << 6);
11107     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11108   }
11109 }
11110 } else {
11111 if (EQSI (tmp_tmp, 0)) {
11112   {
11113     USI opval = GET_H_SPR (((UINT) 272));
11114     sim_queue_pc_write (current_cpu, opval);
11115     written |= (1 << 6);
11116     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11117   }
11118 }
11119 }
11120 }
11121 }
11122 }
11123
11124   abuf->written = written;
11125   return vpc;
11126 #undef FLD
11127 }
11128
11129 /* fcbulelr: fcbulelr$pack $FCCi_2,$ccond,$hint */
11130
11131 static SEM_PC
11132 SEM_FN_NAME (frvbf,fcbulelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11133 {
11134 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
11135   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11136   int UNUSED written = 0;
11137   IADDR UNUSED pc = abuf->addr;
11138   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11139
11140 {
11141 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
11142 {
11143   SI tmp_tmp;
11144   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
11145   {
11146     USI opval = tmp_tmp;
11147     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
11148     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
11149   }
11150 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3)), ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1))))) {
11151 if (EQSI (FLD (f_ccond), 0)) {
11152 if (NESI (tmp_tmp, 0)) {
11153   {
11154     USI opval = GET_H_SPR (((UINT) 272));
11155     sim_queue_pc_write (current_cpu, opval);
11156     written |= (1 << 6);
11157     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11158   }
11159 }
11160 } else {
11161 if (EQSI (tmp_tmp, 0)) {
11162   {
11163     USI opval = GET_H_SPR (((UINT) 272));
11164     sim_queue_pc_write (current_cpu, opval);
11165     written |= (1 << 6);
11166     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11167   }
11168 }
11169 }
11170 }
11171 }
11172 }
11173
11174   abuf->written = written;
11175   return vpc;
11176 #undef FLD
11177 }
11178
11179 /* fcbulr: fcbulr$pack $FCCi_2,$ccond,$hint */
11180
11181 static SEM_PC
11182 SEM_FN_NAME (frvbf,fcbulr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11183 {
11184 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
11185   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11186   int UNUSED written = 0;
11187   IADDR UNUSED pc = abuf->addr;
11188   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11189
11190 {
11191 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
11192 {
11193   SI tmp_tmp;
11194   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
11195   {
11196     USI opval = tmp_tmp;
11197     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
11198     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
11199   }
11200 if (TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1))) {
11201 if (EQSI (FLD (f_ccond), 0)) {
11202 if (NESI (tmp_tmp, 0)) {
11203   {
11204     USI opval = GET_H_SPR (((UINT) 272));
11205     sim_queue_pc_write (current_cpu, opval);
11206     written |= (1 << 6);
11207     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11208   }
11209 }
11210 } else {
11211 if (EQSI (tmp_tmp, 0)) {
11212   {
11213     USI opval = GET_H_SPR (((UINT) 272));
11214     sim_queue_pc_write (current_cpu, opval);
11215     written |= (1 << 6);
11216     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11217   }
11218 }
11219 }
11220 }
11221 }
11222 }
11223
11224   abuf->written = written;
11225   return vpc;
11226 #undef FLD
11227 }
11228
11229 /* fcbolr: fcbolr$pack $FCCi_2,$ccond,$hint */
11230
11231 static SEM_PC
11232 SEM_FN_NAME (frvbf,fcbolr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11233 {
11234 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
11235   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11236   int UNUSED written = 0;
11237   IADDR UNUSED pc = abuf->addr;
11238   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11239
11240 {
11241 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
11242 {
11243   SI tmp_tmp;
11244   tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
11245   {
11246     USI opval = tmp_tmp;
11247     sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
11248     TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
11249   }
11250 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3)), ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1))))) {
11251 if (EQSI (FLD (f_ccond), 0)) {
11252 if (NESI (tmp_tmp, 0)) {
11253   {
11254     USI opval = GET_H_SPR (((UINT) 272));
11255     sim_queue_pc_write (current_cpu, opval);
11256     written |= (1 << 6);
11257     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11258   }
11259 }
11260 } else {
11261 if (EQSI (tmp_tmp, 0)) {
11262   {
11263     USI opval = GET_H_SPR (((UINT) 272));
11264     sim_queue_pc_write (current_cpu, opval);
11265     written |= (1 << 6);
11266     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11267   }
11268 }
11269 }
11270 }
11271 }
11272 }
11273
11274   abuf->written = written;
11275   return vpc;
11276 #undef FLD
11277 }
11278
11279 /* jmpl: jmpl$pack @($GRi,$GRj) */
11280
11281 static SEM_PC
11282 SEM_FN_NAME (frvbf,jmpl) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11283 {
11284 #define FLD(f) abuf->fields.sfmt_cjmpl.f
11285   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11286   int UNUSED written = 0;
11287   IADDR UNUSED pc = abuf->addr;
11288   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11289
11290 {
11291 if (EQSI (FLD (f_LI), 1)) {
11292 frvbf_set_write_next_vliw_addr_to_LR (current_cpu, 1);
11293 }
11294   {
11295     USI opval = ANDSI (ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), 0xfffffffc);
11296     sim_queue_pc_write (current_cpu, opval);
11297     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11298   }
11299 frvbf_model_branch (current_cpu, pc, 2);
11300 }
11301
11302   return vpc;
11303 #undef FLD
11304 }
11305
11306 /* calll: calll$pack $callann($GRi,$GRj) */
11307
11308 static SEM_PC
11309 SEM_FN_NAME (frvbf,calll) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11310 {
11311 #define FLD(f) abuf->fields.sfmt_cjmpl.f
11312   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11313   int UNUSED written = 0;
11314   IADDR UNUSED pc = abuf->addr;
11315   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11316
11317 {
11318 if (EQSI (FLD (f_LI), 1)) {
11319 frvbf_set_write_next_vliw_addr_to_LR (current_cpu, 1);
11320 }
11321   {
11322     USI opval = ANDSI (ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), 0xfffffffc);
11323     sim_queue_pc_write (current_cpu, opval);
11324     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11325   }
11326 frvbf_model_branch (current_cpu, pc, 2);
11327 }
11328
11329   return vpc;
11330 #undef FLD
11331 }
11332
11333 /* jmpil: jmpil$pack @($GRi,$s12) */
11334
11335 static SEM_PC
11336 SEM_FN_NAME (frvbf,jmpil) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11337 {
11338 #define FLD(f) abuf->fields.sfmt_jmpil.f
11339   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11340   int UNUSED written = 0;
11341   IADDR UNUSED pc = abuf->addr;
11342   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11343
11344 {
11345 if (EQSI (FLD (f_LI), 1)) {
11346 frvbf_set_write_next_vliw_addr_to_LR (current_cpu, 1);
11347 }
11348   {
11349     USI opval = ANDSI (ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)), 0xfffffffc);
11350     sim_queue_pc_write (current_cpu, opval);
11351     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11352   }
11353 frvbf_model_branch (current_cpu, pc, 2);
11354 }
11355
11356   return vpc;
11357 #undef FLD
11358 }
11359
11360 /* callil: callil$pack @($GRi,$s12) */
11361
11362 static SEM_PC
11363 SEM_FN_NAME (frvbf,callil) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11364 {
11365 #define FLD(f) abuf->fields.sfmt_jmpil.f
11366   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11367   int UNUSED written = 0;
11368   IADDR UNUSED pc = abuf->addr;
11369   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11370
11371 {
11372 if (EQSI (FLD (f_LI), 1)) {
11373 frvbf_set_write_next_vliw_addr_to_LR (current_cpu, 1);
11374 }
11375   {
11376     USI opval = ANDSI (ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)), 0xfffffffc);
11377     sim_queue_pc_write (current_cpu, opval);
11378     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11379   }
11380 frvbf_model_branch (current_cpu, pc, 2);
11381 }
11382
11383   return vpc;
11384 #undef FLD
11385 }
11386
11387 /* call: call$pack $label24 */
11388
11389 static SEM_PC
11390 SEM_FN_NAME (frvbf,call) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11391 {
11392 #define FLD(f) abuf->fields.sfmt_call.f
11393   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11394   int UNUSED written = 0;
11395   IADDR UNUSED pc = abuf->addr;
11396   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11397
11398 {
11399 frvbf_set_write_next_vliw_addr_to_LR (current_cpu, 1);
11400   {
11401     USI opval = FLD (i_label24);
11402     sim_queue_pc_write (current_cpu, opval);
11403     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11404   }
11405 frvbf_model_branch (current_cpu, pc, 2);
11406 }
11407
11408   return vpc;
11409 #undef FLD
11410 }
11411
11412 /* rett: rett$pack $debug */
11413
11414 static SEM_PC
11415 SEM_FN_NAME (frvbf,rett) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11416 {
11417 #define FLD(f) abuf->fields.sfmt_rett.f
11418   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11419   int UNUSED written = 0;
11420   IADDR UNUSED pc = abuf->addr;
11421   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11422
11423 {
11424   {
11425     USI opval = frv_rett (current_cpu, pc, FLD (f_debug));
11426     sim_queue_pc_write (current_cpu, opval);
11427     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11428   }
11429 frvbf_model_branch (current_cpu, pc, 2);
11430 }
11431
11432   return vpc;
11433 #undef FLD
11434 }
11435
11436 /* rei: rei$pack $eir */
11437
11438 static SEM_PC
11439 SEM_FN_NAME (frvbf,rei) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11440 {
11441 #define FLD(f) abuf->fields.fmt_empty.f
11442   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11443   int UNUSED written = 0;
11444   IADDR UNUSED pc = abuf->addr;
11445   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11446
11447 ((void) 0); /*nop*/
11448
11449   return vpc;
11450 #undef FLD
11451 }
11452
11453 /* tra: tra$pack $GRi,$GRj */
11454
11455 static SEM_PC
11456 SEM_FN_NAME (frvbf,tra) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11457 {
11458 #define FLD(f) abuf->fields.sfmt_ftne.f
11459   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11460   int UNUSED written = 0;
11461   IADDR UNUSED pc = abuf->addr;
11462   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11463
11464 {
11465 ; /*clobber*/
11466 ; /*clobber*/
11467 ; /*clobber*/
11468 ; /*clobber*/
11469 if (NEBI (CPU (h_psr_esr), 0)) {
11470 {
11471 ; /*clobber*/
11472 ; /*clobber*/
11473 ; /*clobber*/
11474 ; /*clobber*/
11475 }
11476 }
11477 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11478 }
11479
11480   abuf->written = written;
11481   return vpc;
11482 #undef FLD
11483 }
11484
11485 /* tno: tno$pack */
11486
11487 static SEM_PC
11488 SEM_FN_NAME (frvbf,tno) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11489 {
11490 #define FLD(f) abuf->fields.fmt_empty.f
11491   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11492   int UNUSED written = 0;
11493   IADDR UNUSED pc = abuf->addr;
11494   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11495
11496 ((void) 0); /*nop*/
11497
11498   return vpc;
11499 #undef FLD
11500 }
11501
11502 /* teq: teq$pack $ICCi_2,$GRi,$GRj */
11503
11504 static SEM_PC
11505 SEM_FN_NAME (frvbf,teq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11506 {
11507 #define FLD(f) abuf->fields.sfmt_teq.f
11508   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11509   int UNUSED written = 0;
11510   IADDR UNUSED pc = abuf->addr;
11511   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11512
11513 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2))) {
11514 {
11515 ; /*clobber*/
11516 ; /*clobber*/
11517 ; /*clobber*/
11518 ; /*clobber*/
11519 if (NEBI (CPU (h_psr_esr), 0)) {
11520 {
11521 ; /*clobber*/
11522 ; /*clobber*/
11523 ; /*clobber*/
11524 ; /*clobber*/
11525 }
11526 }
11527 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11528 }
11529 }
11530
11531   abuf->written = written;
11532   return vpc;
11533 #undef FLD
11534 }
11535
11536 /* tne: tne$pack $ICCi_2,$GRi,$GRj */
11537
11538 static SEM_PC
11539 SEM_FN_NAME (frvbf,tne) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11540 {
11541 #define FLD(f) abuf->fields.sfmt_teq.f
11542   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11543   int UNUSED written = 0;
11544   IADDR UNUSED pc = abuf->addr;
11545   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11546
11547 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)))) {
11548 {
11549 ; /*clobber*/
11550 ; /*clobber*/
11551 ; /*clobber*/
11552 ; /*clobber*/
11553 if (NEBI (CPU (h_psr_esr), 0)) {
11554 {
11555 ; /*clobber*/
11556 ; /*clobber*/
11557 ; /*clobber*/
11558 ; /*clobber*/
11559 }
11560 }
11561 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11562 }
11563 }
11564
11565   abuf->written = written;
11566   return vpc;
11567 #undef FLD
11568 }
11569
11570 /* tle: tle$pack $ICCi_2,$GRi,$GRj */
11571
11572 static SEM_PC
11573 SEM_FN_NAME (frvbf,tle) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11574 {
11575 #define FLD(f) abuf->fields.sfmt_teq.f
11576   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11577   int UNUSED written = 0;
11578   IADDR UNUSED pc = abuf->addr;
11579   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11580
11581 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)), XORBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1))))) {
11582 {
11583 ; /*clobber*/
11584 ; /*clobber*/
11585 ; /*clobber*/
11586 ; /*clobber*/
11587 if (NEBI (CPU (h_psr_esr), 0)) {
11588 {
11589 ; /*clobber*/
11590 ; /*clobber*/
11591 ; /*clobber*/
11592 ; /*clobber*/
11593 }
11594 }
11595 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11596 }
11597 }
11598
11599   abuf->written = written;
11600   return vpc;
11601 #undef FLD
11602 }
11603
11604 /* tgt: tgt$pack $ICCi_2,$GRi,$GRj */
11605
11606 static SEM_PC
11607 SEM_FN_NAME (frvbf,tgt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11608 {
11609 #define FLD(f) abuf->fields.sfmt_teq.f
11610   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11611   int UNUSED written = 0;
11612   IADDR UNUSED pc = abuf->addr;
11613   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11614
11615 if (NOTBI (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)), XORBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1)))))) {
11616 {
11617 ; /*clobber*/
11618 ; /*clobber*/
11619 ; /*clobber*/
11620 ; /*clobber*/
11621 if (NEBI (CPU (h_psr_esr), 0)) {
11622 {
11623 ; /*clobber*/
11624 ; /*clobber*/
11625 ; /*clobber*/
11626 ; /*clobber*/
11627 }
11628 }
11629 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11630 }
11631 }
11632
11633   abuf->written = written;
11634   return vpc;
11635 #undef FLD
11636 }
11637
11638 /* tlt: tlt$pack $ICCi_2,$GRi,$GRj */
11639
11640 static SEM_PC
11641 SEM_FN_NAME (frvbf,tlt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11642 {
11643 #define FLD(f) abuf->fields.sfmt_teq.f
11644   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11645   int UNUSED written = 0;
11646   IADDR UNUSED pc = abuf->addr;
11647   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11648
11649 if (XORBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1)))) {
11650 {
11651 ; /*clobber*/
11652 ; /*clobber*/
11653 ; /*clobber*/
11654 ; /*clobber*/
11655 if (NEBI (CPU (h_psr_esr), 0)) {
11656 {
11657 ; /*clobber*/
11658 ; /*clobber*/
11659 ; /*clobber*/
11660 ; /*clobber*/
11661 }
11662 }
11663 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11664 }
11665 }
11666
11667   abuf->written = written;
11668   return vpc;
11669 #undef FLD
11670 }
11671
11672 /* tge: tge$pack $ICCi_2,$GRi,$GRj */
11673
11674 static SEM_PC
11675 SEM_FN_NAME (frvbf,tge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11676 {
11677 #define FLD(f) abuf->fields.sfmt_teq.f
11678   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11679   int UNUSED written = 0;
11680   IADDR UNUSED pc = abuf->addr;
11681   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11682
11683 if (NOTBI (XORBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1))))) {
11684 {
11685 ; /*clobber*/
11686 ; /*clobber*/
11687 ; /*clobber*/
11688 ; /*clobber*/
11689 if (NEBI (CPU (h_psr_esr), 0)) {
11690 {
11691 ; /*clobber*/
11692 ; /*clobber*/
11693 ; /*clobber*/
11694 ; /*clobber*/
11695 }
11696 }
11697 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11698 }
11699 }
11700
11701   abuf->written = written;
11702   return vpc;
11703 #undef FLD
11704 }
11705
11706 /* tls: tls$pack $ICCi_2,$GRi,$GRj */
11707
11708 static SEM_PC
11709 SEM_FN_NAME (frvbf,tls) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11710 {
11711 #define FLD(f) abuf->fields.sfmt_teq.f
11712   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11713   int UNUSED written = 0;
11714   IADDR UNUSED pc = abuf->addr;
11715   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11716
11717 if (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)))) {
11718 {
11719 ; /*clobber*/
11720 ; /*clobber*/
11721 ; /*clobber*/
11722 ; /*clobber*/
11723 if (NEBI (CPU (h_psr_esr), 0)) {
11724 {
11725 ; /*clobber*/
11726 ; /*clobber*/
11727 ; /*clobber*/
11728 ; /*clobber*/
11729 }
11730 }
11731 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11732 }
11733 }
11734
11735   abuf->written = written;
11736   return vpc;
11737 #undef FLD
11738 }
11739
11740 /* thi: thi$pack $ICCi_2,$GRi,$GRj */
11741
11742 static SEM_PC
11743 SEM_FN_NAME (frvbf,thi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11744 {
11745 #define FLD(f) abuf->fields.sfmt_teq.f
11746   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11747   int UNUSED written = 0;
11748   IADDR UNUSED pc = abuf->addr;
11749   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11750
11751 if (NOTBI (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2))))) {
11752 {
11753 ; /*clobber*/
11754 ; /*clobber*/
11755 ; /*clobber*/
11756 ; /*clobber*/
11757 if (NEBI (CPU (h_psr_esr), 0)) {
11758 {
11759 ; /*clobber*/
11760 ; /*clobber*/
11761 ; /*clobber*/
11762 ; /*clobber*/
11763 }
11764 }
11765 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11766 }
11767 }
11768
11769   abuf->written = written;
11770   return vpc;
11771 #undef FLD
11772 }
11773
11774 /* tc: tc$pack $ICCi_2,$GRi,$GRj */
11775
11776 static SEM_PC
11777 SEM_FN_NAME (frvbf,tc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11778 {
11779 #define FLD(f) abuf->fields.sfmt_teq.f
11780   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11781   int UNUSED written = 0;
11782   IADDR UNUSED pc = abuf->addr;
11783   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11784
11785 if (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1))) {
11786 {
11787 ; /*clobber*/
11788 ; /*clobber*/
11789 ; /*clobber*/
11790 ; /*clobber*/
11791 if (NEBI (CPU (h_psr_esr), 0)) {
11792 {
11793 ; /*clobber*/
11794 ; /*clobber*/
11795 ; /*clobber*/
11796 ; /*clobber*/
11797 }
11798 }
11799 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11800 }
11801 }
11802
11803   abuf->written = written;
11804   return vpc;
11805 #undef FLD
11806 }
11807
11808 /* tnc: tnc$pack $ICCi_2,$GRi,$GRj */
11809
11810 static SEM_PC
11811 SEM_FN_NAME (frvbf,tnc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11812 {
11813 #define FLD(f) abuf->fields.sfmt_teq.f
11814   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11815   int UNUSED written = 0;
11816   IADDR UNUSED pc = abuf->addr;
11817   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11818
11819 if (NOTBI (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)))) {
11820 {
11821 ; /*clobber*/
11822 ; /*clobber*/
11823 ; /*clobber*/
11824 ; /*clobber*/
11825 if (NEBI (CPU (h_psr_esr), 0)) {
11826 {
11827 ; /*clobber*/
11828 ; /*clobber*/
11829 ; /*clobber*/
11830 ; /*clobber*/
11831 }
11832 }
11833 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11834 }
11835 }
11836
11837   abuf->written = written;
11838   return vpc;
11839 #undef FLD
11840 }
11841
11842 /* tn: tn$pack $ICCi_2,$GRi,$GRj */
11843
11844 static SEM_PC
11845 SEM_FN_NAME (frvbf,tn) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11846 {
11847 #define FLD(f) abuf->fields.sfmt_teq.f
11848   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11849   int UNUSED written = 0;
11850   IADDR UNUSED pc = abuf->addr;
11851   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11852
11853 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3))) {
11854 {
11855 ; /*clobber*/
11856 ; /*clobber*/
11857 ; /*clobber*/
11858 ; /*clobber*/
11859 if (NEBI (CPU (h_psr_esr), 0)) {
11860 {
11861 ; /*clobber*/
11862 ; /*clobber*/
11863 ; /*clobber*/
11864 ; /*clobber*/
11865 }
11866 }
11867 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11868 }
11869 }
11870
11871   abuf->written = written;
11872   return vpc;
11873 #undef FLD
11874 }
11875
11876 /* tp: tp$pack $ICCi_2,$GRi,$GRj */
11877
11878 static SEM_PC
11879 SEM_FN_NAME (frvbf,tp) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11880 {
11881 #define FLD(f) abuf->fields.sfmt_teq.f
11882   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11883   int UNUSED written = 0;
11884   IADDR UNUSED pc = abuf->addr;
11885   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11886
11887 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3)))) {
11888 {
11889 ; /*clobber*/
11890 ; /*clobber*/
11891 ; /*clobber*/
11892 ; /*clobber*/
11893 if (NEBI (CPU (h_psr_esr), 0)) {
11894 {
11895 ; /*clobber*/
11896 ; /*clobber*/
11897 ; /*clobber*/
11898 ; /*clobber*/
11899 }
11900 }
11901 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11902 }
11903 }
11904
11905   abuf->written = written;
11906   return vpc;
11907 #undef FLD
11908 }
11909
11910 /* tv: tv$pack $ICCi_2,$GRi,$GRj */
11911
11912 static SEM_PC
11913 SEM_FN_NAME (frvbf,tv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11914 {
11915 #define FLD(f) abuf->fields.sfmt_teq.f
11916   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11917   int UNUSED written = 0;
11918   IADDR UNUSED pc = abuf->addr;
11919   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11920
11921 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1))) {
11922 {
11923 ; /*clobber*/
11924 ; /*clobber*/
11925 ; /*clobber*/
11926 ; /*clobber*/
11927 if (NEBI (CPU (h_psr_esr), 0)) {
11928 {
11929 ; /*clobber*/
11930 ; /*clobber*/
11931 ; /*clobber*/
11932 ; /*clobber*/
11933 }
11934 }
11935 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11936 }
11937 }
11938
11939   abuf->written = written;
11940   return vpc;
11941 #undef FLD
11942 }
11943
11944 /* tnv: tnv$pack $ICCi_2,$GRi,$GRj */
11945
11946 static SEM_PC
11947 SEM_FN_NAME (frvbf,tnv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11948 {
11949 #define FLD(f) abuf->fields.sfmt_teq.f
11950   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11951   int UNUSED written = 0;
11952   IADDR UNUSED pc = abuf->addr;
11953   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11954
11955 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1)))) {
11956 {
11957 ; /*clobber*/
11958 ; /*clobber*/
11959 ; /*clobber*/
11960 ; /*clobber*/
11961 if (NEBI (CPU (h_psr_esr), 0)) {
11962 {
11963 ; /*clobber*/
11964 ; /*clobber*/
11965 ; /*clobber*/
11966 ; /*clobber*/
11967 }
11968 }
11969 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11970 }
11971 }
11972
11973   abuf->written = written;
11974   return vpc;
11975 #undef FLD
11976 }
11977
11978 /* ftra: ftra$pack $GRi,$GRj */
11979
11980 static SEM_PC
11981 SEM_FN_NAME (frvbf,ftra) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11982 {
11983 #define FLD(f) abuf->fields.sfmt_ftne.f
11984   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11985   int UNUSED written = 0;
11986   IADDR UNUSED pc = abuf->addr;
11987   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11988
11989 {
11990 ; /*clobber*/
11991 ; /*clobber*/
11992 ; /*clobber*/
11993 ; /*clobber*/
11994 if (NEBI (CPU (h_psr_esr), 0)) {
11995 {
11996 ; /*clobber*/
11997 ; /*clobber*/
11998 ; /*clobber*/
11999 ; /*clobber*/
12000 }
12001 }
12002 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12003 }
12004
12005   abuf->written = written;
12006   return vpc;
12007 #undef FLD
12008 }
12009
12010 /* ftno: ftno$pack */
12011
12012 static SEM_PC
12013 SEM_FN_NAME (frvbf,ftno) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12014 {
12015 #define FLD(f) abuf->fields.fmt_empty.f
12016   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12017   int UNUSED written = 0;
12018   IADDR UNUSED pc = abuf->addr;
12019   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12020
12021 ((void) 0); /*nop*/
12022
12023   return vpc;
12024 #undef FLD
12025 }
12026
12027 /* ftne: ftne$pack $FCCi_2,$GRi,$GRj */
12028
12029 static SEM_PC
12030 SEM_FN_NAME (frvbf,ftne) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12031 {
12032 #define FLD(f) abuf->fields.sfmt_ftne.f
12033   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12034   int UNUSED written = 0;
12035   IADDR UNUSED pc = abuf->addr;
12036   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12037
12038 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2)), ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1))))) {
12039 {
12040 ; /*clobber*/
12041 ; /*clobber*/
12042 ; /*clobber*/
12043 ; /*clobber*/
12044 if (NEBI (CPU (h_psr_esr), 0)) {
12045 {
12046 ; /*clobber*/
12047 ; /*clobber*/
12048 ; /*clobber*/
12049 ; /*clobber*/
12050 }
12051 }
12052 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12053 }
12054 }
12055
12056   abuf->written = written;
12057   return vpc;
12058 #undef FLD
12059 }
12060
12061 /* fteq: fteq$pack $FCCi_2,$GRi,$GRj */
12062
12063 static SEM_PC
12064 SEM_FN_NAME (frvbf,fteq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12065 {
12066 #define FLD(f) abuf->fields.sfmt_ftne.f
12067   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12068   int UNUSED written = 0;
12069   IADDR UNUSED pc = abuf->addr;
12070   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12071
12072 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3))) {
12073 {
12074 ; /*clobber*/
12075 ; /*clobber*/
12076 ; /*clobber*/
12077 ; /*clobber*/
12078 if (NEBI (CPU (h_psr_esr), 0)) {
12079 {
12080 ; /*clobber*/
12081 ; /*clobber*/
12082 ; /*clobber*/
12083 ; /*clobber*/
12084 }
12085 }
12086 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12087 }
12088 }
12089
12090   abuf->written = written;
12091   return vpc;
12092 #undef FLD
12093 }
12094
12095 /* ftlg: ftlg$pack $FCCi_2,$GRi,$GRj */
12096
12097 static SEM_PC
12098 SEM_FN_NAME (frvbf,ftlg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12099 {
12100 #define FLD(f) abuf->fields.sfmt_ftne.f
12101   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12102   int UNUSED written = 0;
12103   IADDR UNUSED pc = abuf->addr;
12104   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12105
12106 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1)))) {
12107 {
12108 ; /*clobber*/
12109 ; /*clobber*/
12110 ; /*clobber*/
12111 ; /*clobber*/
12112 if (NEBI (CPU (h_psr_esr), 0)) {
12113 {
12114 ; /*clobber*/
12115 ; /*clobber*/
12116 ; /*clobber*/
12117 ; /*clobber*/
12118 }
12119 }
12120 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12121 }
12122 }
12123
12124   abuf->written = written;
12125   return vpc;
12126 #undef FLD
12127 }
12128
12129 /* ftue: ftue$pack $FCCi_2,$GRi,$GRj */
12130
12131 static SEM_PC
12132 SEM_FN_NAME (frvbf,ftue) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12133 {
12134 #define FLD(f) abuf->fields.sfmt_ftne.f
12135   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12136   int UNUSED written = 0;
12137   IADDR UNUSED pc = abuf->addr;
12138   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12139
12140 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
12141 {
12142 ; /*clobber*/
12143 ; /*clobber*/
12144 ; /*clobber*/
12145 ; /*clobber*/
12146 if (NEBI (CPU (h_psr_esr), 0)) {
12147 {
12148 ; /*clobber*/
12149 ; /*clobber*/
12150 ; /*clobber*/
12151 ; /*clobber*/
12152 }
12153 }
12154 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12155 }
12156 }
12157
12158   abuf->written = written;
12159   return vpc;
12160 #undef FLD
12161 }
12162
12163 /* ftul: ftul$pack $FCCi_2,$GRi,$GRj */
12164
12165 static SEM_PC
12166 SEM_FN_NAME (frvbf,ftul) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12167 {
12168 #define FLD(f) abuf->fields.sfmt_ftne.f
12169   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12170   int UNUSED written = 0;
12171   IADDR UNUSED pc = abuf->addr;
12172   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12173
12174 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
12175 {
12176 ; /*clobber*/
12177 ; /*clobber*/
12178 ; /*clobber*/
12179 ; /*clobber*/
12180 if (NEBI (CPU (h_psr_esr), 0)) {
12181 {
12182 ; /*clobber*/
12183 ; /*clobber*/
12184 ; /*clobber*/
12185 ; /*clobber*/
12186 }
12187 }
12188 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12189 }
12190 }
12191
12192   abuf->written = written;
12193   return vpc;
12194 #undef FLD
12195 }
12196
12197 /* ftge: ftge$pack $FCCi_2,$GRi,$GRj */
12198
12199 static SEM_PC
12200 SEM_FN_NAME (frvbf,ftge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12201 {
12202 #define FLD(f) abuf->fields.sfmt_ftne.f
12203   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12204   int UNUSED written = 0;
12205   IADDR UNUSED pc = abuf->addr;
12206   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12207
12208 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1)))) {
12209 {
12210 ; /*clobber*/
12211 ; /*clobber*/
12212 ; /*clobber*/
12213 ; /*clobber*/
12214 if (NEBI (CPU (h_psr_esr), 0)) {
12215 {
12216 ; /*clobber*/
12217 ; /*clobber*/
12218 ; /*clobber*/
12219 ; /*clobber*/
12220 }
12221 }
12222 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12223 }
12224 }
12225
12226   abuf->written = written;
12227   return vpc;
12228 #undef FLD
12229 }
12230
12231 /* ftlt: ftlt$pack $FCCi_2,$GRi,$GRj */
12232
12233 static SEM_PC
12234 SEM_FN_NAME (frvbf,ftlt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12235 {
12236 #define FLD(f) abuf->fields.sfmt_ftne.f
12237   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12238   int UNUSED written = 0;
12239   IADDR UNUSED pc = abuf->addr;
12240   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12241
12242 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2))) {
12243 {
12244 ; /*clobber*/
12245 ; /*clobber*/
12246 ; /*clobber*/
12247 ; /*clobber*/
12248 if (NEBI (CPU (h_psr_esr), 0)) {
12249 {
12250 ; /*clobber*/
12251 ; /*clobber*/
12252 ; /*clobber*/
12253 ; /*clobber*/
12254 }
12255 }
12256 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12257 }
12258 }
12259
12260   abuf->written = written;
12261   return vpc;
12262 #undef FLD
12263 }
12264
12265 /* ftuge: ftuge$pack $FCCi_2,$GRi,$GRj */
12266
12267 static SEM_PC
12268 SEM_FN_NAME (frvbf,ftuge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12269 {
12270 #define FLD(f) abuf->fields.sfmt_ftne.f
12271   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12272   int UNUSED written = 0;
12273   IADDR UNUSED pc = abuf->addr;
12274   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12275
12276 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3)), ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1))))) {
12277 {
12278 ; /*clobber*/
12279 ; /*clobber*/
12280 ; /*clobber*/
12281 ; /*clobber*/
12282 if (NEBI (CPU (h_psr_esr), 0)) {
12283 {
12284 ; /*clobber*/
12285 ; /*clobber*/
12286 ; /*clobber*/
12287 ; /*clobber*/
12288 }
12289 }
12290 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12291 }
12292 }
12293
12294   abuf->written = written;
12295   return vpc;
12296 #undef FLD
12297 }
12298
12299 /* ftug: ftug$pack $FCCi_2,$GRi,$GRj */
12300
12301 static SEM_PC
12302 SEM_FN_NAME (frvbf,ftug) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12303 {
12304 #define FLD(f) abuf->fields.sfmt_ftne.f
12305   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12306   int UNUSED written = 0;
12307   IADDR UNUSED pc = abuf->addr;
12308   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12309
12310 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
12311 {
12312 ; /*clobber*/
12313 ; /*clobber*/
12314 ; /*clobber*/
12315 ; /*clobber*/
12316 if (NEBI (CPU (h_psr_esr), 0)) {
12317 {
12318 ; /*clobber*/
12319 ; /*clobber*/
12320 ; /*clobber*/
12321 ; /*clobber*/
12322 }
12323 }
12324 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12325 }
12326 }
12327
12328   abuf->written = written;
12329   return vpc;
12330 #undef FLD
12331 }
12332
12333 /* ftle: ftle$pack $FCCi_2,$GRi,$GRj */
12334
12335 static SEM_PC
12336 SEM_FN_NAME (frvbf,ftle) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12337 {
12338 #define FLD(f) abuf->fields.sfmt_ftne.f
12339   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12340   int UNUSED written = 0;
12341   IADDR UNUSED pc = abuf->addr;
12342   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12343
12344 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2)))) {
12345 {
12346 ; /*clobber*/
12347 ; /*clobber*/
12348 ; /*clobber*/
12349 ; /*clobber*/
12350 if (NEBI (CPU (h_psr_esr), 0)) {
12351 {
12352 ; /*clobber*/
12353 ; /*clobber*/
12354 ; /*clobber*/
12355 ; /*clobber*/
12356 }
12357 }
12358 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12359 }
12360 }
12361
12362   abuf->written = written;
12363   return vpc;
12364 #undef FLD
12365 }
12366
12367 /* ftgt: ftgt$pack $FCCi_2,$GRi,$GRj */
12368
12369 static SEM_PC
12370 SEM_FN_NAME (frvbf,ftgt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12371 {
12372 #define FLD(f) abuf->fields.sfmt_ftne.f
12373   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12374   int UNUSED written = 0;
12375   IADDR UNUSED pc = abuf->addr;
12376   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12377
12378 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1))) {
12379 {
12380 ; /*clobber*/
12381 ; /*clobber*/
12382 ; /*clobber*/
12383 ; /*clobber*/
12384 if (NEBI (CPU (h_psr_esr), 0)) {
12385 {
12386 ; /*clobber*/
12387 ; /*clobber*/
12388 ; /*clobber*/
12389 ; /*clobber*/
12390 }
12391 }
12392 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12393 }
12394 }
12395
12396   abuf->written = written;
12397   return vpc;
12398 #undef FLD
12399 }
12400
12401 /* ftule: ftule$pack $FCCi_2,$GRi,$GRj */
12402
12403 static SEM_PC
12404 SEM_FN_NAME (frvbf,ftule) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12405 {
12406 #define FLD(f) abuf->fields.sfmt_ftne.f
12407   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12408   int UNUSED written = 0;
12409   IADDR UNUSED pc = abuf->addr;
12410   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12411
12412 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3)), ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1))))) {
12413 {
12414 ; /*clobber*/
12415 ; /*clobber*/
12416 ; /*clobber*/
12417 ; /*clobber*/
12418 if (NEBI (CPU (h_psr_esr), 0)) {
12419 {
12420 ; /*clobber*/
12421 ; /*clobber*/
12422 ; /*clobber*/
12423 ; /*clobber*/
12424 }
12425 }
12426 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12427 }
12428 }
12429
12430   abuf->written = written;
12431   return vpc;
12432 #undef FLD
12433 }
12434
12435 /* ftu: ftu$pack $FCCi_2,$GRi,$GRj */
12436
12437 static SEM_PC
12438 SEM_FN_NAME (frvbf,ftu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12439 {
12440 #define FLD(f) abuf->fields.sfmt_ftne.f
12441   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12442   int UNUSED written = 0;
12443   IADDR UNUSED pc = abuf->addr;
12444   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12445
12446 if (TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1))) {
12447 {
12448 ; /*clobber*/
12449 ; /*clobber*/
12450 ; /*clobber*/
12451 ; /*clobber*/
12452 if (NEBI (CPU (h_psr_esr), 0)) {
12453 {
12454 ; /*clobber*/
12455 ; /*clobber*/
12456 ; /*clobber*/
12457 ; /*clobber*/
12458 }
12459 }
12460 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12461 }
12462 }
12463
12464   abuf->written = written;
12465   return vpc;
12466 #undef FLD
12467 }
12468
12469 /* fto: fto$pack $FCCi_2,$GRi,$GRj */
12470
12471 static SEM_PC
12472 SEM_FN_NAME (frvbf,fto) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12473 {
12474 #define FLD(f) abuf->fields.sfmt_ftne.f
12475   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12476   int UNUSED written = 0;
12477   IADDR UNUSED pc = abuf->addr;
12478   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12479
12480 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3)), ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1))))) {
12481 {
12482 ; /*clobber*/
12483 ; /*clobber*/
12484 ; /*clobber*/
12485 ; /*clobber*/
12486 if (NEBI (CPU (h_psr_esr), 0)) {
12487 {
12488 ; /*clobber*/
12489 ; /*clobber*/
12490 ; /*clobber*/
12491 ; /*clobber*/
12492 }
12493 }
12494 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12495 }
12496 }
12497
12498   abuf->written = written;
12499   return vpc;
12500 #undef FLD
12501 }
12502
12503 /* tira: tira$pack $GRi,$s12 */
12504
12505 static SEM_PC
12506 SEM_FN_NAME (frvbf,tira) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12507 {
12508 #define FLD(f) abuf->fields.sfmt_ftine.f
12509   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12510   int UNUSED written = 0;
12511   IADDR UNUSED pc = abuf->addr;
12512   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12513
12514 {
12515 ; /*clobber*/
12516 ; /*clobber*/
12517 ; /*clobber*/
12518 ; /*clobber*/
12519 if (NEBI (CPU (h_psr_esr), 0)) {
12520 {
12521 ; /*clobber*/
12522 ; /*clobber*/
12523 ; /*clobber*/
12524 ; /*clobber*/
12525 }
12526 }
12527 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12528 }
12529
12530   abuf->written = written;
12531   return vpc;
12532 #undef FLD
12533 }
12534
12535 /* tino: tino$pack */
12536
12537 static SEM_PC
12538 SEM_FN_NAME (frvbf,tino) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12539 {
12540 #define FLD(f) abuf->fields.fmt_empty.f
12541   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12542   int UNUSED written = 0;
12543   IADDR UNUSED pc = abuf->addr;
12544   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12545
12546 ((void) 0); /*nop*/
12547
12548   return vpc;
12549 #undef FLD
12550 }
12551
12552 /* tieq: tieq$pack $ICCi_2,$GRi,$s12 */
12553
12554 static SEM_PC
12555 SEM_FN_NAME (frvbf,tieq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12556 {
12557 #define FLD(f) abuf->fields.sfmt_tieq.f
12558   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12559   int UNUSED written = 0;
12560   IADDR UNUSED pc = abuf->addr;
12561   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12562
12563 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2))) {
12564 {
12565 ; /*clobber*/
12566 ; /*clobber*/
12567 ; /*clobber*/
12568 ; /*clobber*/
12569 if (NEBI (CPU (h_psr_esr), 0)) {
12570 {
12571 ; /*clobber*/
12572 ; /*clobber*/
12573 ; /*clobber*/
12574 ; /*clobber*/
12575 }
12576 }
12577 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12578 }
12579 }
12580
12581   abuf->written = written;
12582   return vpc;
12583 #undef FLD
12584 }
12585
12586 /* tine: tine$pack $ICCi_2,$GRi,$s12 */
12587
12588 static SEM_PC
12589 SEM_FN_NAME (frvbf,tine) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12590 {
12591 #define FLD(f) abuf->fields.sfmt_tieq.f
12592   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12593   int UNUSED written = 0;
12594   IADDR UNUSED pc = abuf->addr;
12595   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12596
12597 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)))) {
12598 {
12599 ; /*clobber*/
12600 ; /*clobber*/
12601 ; /*clobber*/
12602 ; /*clobber*/
12603 if (NEBI (CPU (h_psr_esr), 0)) {
12604 {
12605 ; /*clobber*/
12606 ; /*clobber*/
12607 ; /*clobber*/
12608 ; /*clobber*/
12609 }
12610 }
12611 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12612 }
12613 }
12614
12615   abuf->written = written;
12616   return vpc;
12617 #undef FLD
12618 }
12619
12620 /* tile: tile$pack $ICCi_2,$GRi,$s12 */
12621
12622 static SEM_PC
12623 SEM_FN_NAME (frvbf,tile) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12624 {
12625 #define FLD(f) abuf->fields.sfmt_tieq.f
12626   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12627   int UNUSED written = 0;
12628   IADDR UNUSED pc = abuf->addr;
12629   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12630
12631 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)), XORBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1))))) {
12632 {
12633 ; /*clobber*/
12634 ; /*clobber*/
12635 ; /*clobber*/
12636 ; /*clobber*/
12637 if (NEBI (CPU (h_psr_esr), 0)) {
12638 {
12639 ; /*clobber*/
12640 ; /*clobber*/
12641 ; /*clobber*/
12642 ; /*clobber*/
12643 }
12644 }
12645 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12646 }
12647 }
12648
12649   abuf->written = written;
12650   return vpc;
12651 #undef FLD
12652 }
12653
12654 /* tigt: tigt$pack $ICCi_2,$GRi,$s12 */
12655
12656 static SEM_PC
12657 SEM_FN_NAME (frvbf,tigt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12658 {
12659 #define FLD(f) abuf->fields.sfmt_tieq.f
12660   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12661   int UNUSED written = 0;
12662   IADDR UNUSED pc = abuf->addr;
12663   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12664
12665 if (NOTBI (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)), XORBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1)))))) {
12666 {
12667 ; /*clobber*/
12668 ; /*clobber*/
12669 ; /*clobber*/
12670 ; /*clobber*/
12671 if (NEBI (CPU (h_psr_esr), 0)) {
12672 {
12673 ; /*clobber*/
12674 ; /*clobber*/
12675 ; /*clobber*/
12676 ; /*clobber*/
12677 }
12678 }
12679 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12680 }
12681 }
12682
12683   abuf->written = written;
12684   return vpc;
12685 #undef FLD
12686 }
12687
12688 /* tilt: tilt$pack $ICCi_2,$GRi,$s12 */
12689
12690 static SEM_PC
12691 SEM_FN_NAME (frvbf,tilt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12692 {
12693 #define FLD(f) abuf->fields.sfmt_tieq.f
12694   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12695   int UNUSED written = 0;
12696   IADDR UNUSED pc = abuf->addr;
12697   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12698
12699 if (XORBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1)))) {
12700 {
12701 ; /*clobber*/
12702 ; /*clobber*/
12703 ; /*clobber*/
12704 ; /*clobber*/
12705 if (NEBI (CPU (h_psr_esr), 0)) {
12706 {
12707 ; /*clobber*/
12708 ; /*clobber*/
12709 ; /*clobber*/
12710 ; /*clobber*/
12711 }
12712 }
12713 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12714 }
12715 }
12716
12717   abuf->written = written;
12718   return vpc;
12719 #undef FLD
12720 }
12721
12722 /* tige: tige$pack $ICCi_2,$GRi,$s12 */
12723
12724 static SEM_PC
12725 SEM_FN_NAME (frvbf,tige) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12726 {
12727 #define FLD(f) abuf->fields.sfmt_tieq.f
12728   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12729   int UNUSED written = 0;
12730   IADDR UNUSED pc = abuf->addr;
12731   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12732
12733 if (NOTBI (XORBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1))))) {
12734 {
12735 ; /*clobber*/
12736 ; /*clobber*/
12737 ; /*clobber*/
12738 ; /*clobber*/
12739 if (NEBI (CPU (h_psr_esr), 0)) {
12740 {
12741 ; /*clobber*/
12742 ; /*clobber*/
12743 ; /*clobber*/
12744 ; /*clobber*/
12745 }
12746 }
12747 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12748 }
12749 }
12750
12751   abuf->written = written;
12752   return vpc;
12753 #undef FLD
12754 }
12755
12756 /* tils: tils$pack $ICCi_2,$GRi,$s12 */
12757
12758 static SEM_PC
12759 SEM_FN_NAME (frvbf,tils) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12760 {
12761 #define FLD(f) abuf->fields.sfmt_tieq.f
12762   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12763   int UNUSED written = 0;
12764   IADDR UNUSED pc = abuf->addr;
12765   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12766
12767 if (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)))) {
12768 {
12769 ; /*clobber*/
12770 ; /*clobber*/
12771 ; /*clobber*/
12772 ; /*clobber*/
12773 if (NEBI (CPU (h_psr_esr), 0)) {
12774 {
12775 ; /*clobber*/
12776 ; /*clobber*/
12777 ; /*clobber*/
12778 ; /*clobber*/
12779 }
12780 }
12781 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12782 }
12783 }
12784
12785   abuf->written = written;
12786   return vpc;
12787 #undef FLD
12788 }
12789
12790 /* tihi: tihi$pack $ICCi_2,$GRi,$s12 */
12791
12792 static SEM_PC
12793 SEM_FN_NAME (frvbf,tihi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12794 {
12795 #define FLD(f) abuf->fields.sfmt_tieq.f
12796   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12797   int UNUSED written = 0;
12798   IADDR UNUSED pc = abuf->addr;
12799   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12800
12801 if (NOTBI (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2))))) {
12802 {
12803 ; /*clobber*/
12804 ; /*clobber*/
12805 ; /*clobber*/
12806 ; /*clobber*/
12807 if (NEBI (CPU (h_psr_esr), 0)) {
12808 {
12809 ; /*clobber*/
12810 ; /*clobber*/
12811 ; /*clobber*/
12812 ; /*clobber*/
12813 }
12814 }
12815 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12816 }
12817 }
12818
12819   abuf->written = written;
12820   return vpc;
12821 #undef FLD
12822 }
12823
12824 /* tic: tic$pack $ICCi_2,$GRi,$s12 */
12825
12826 static SEM_PC
12827 SEM_FN_NAME (frvbf,tic) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12828 {
12829 #define FLD(f) abuf->fields.sfmt_tieq.f
12830   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12831   int UNUSED written = 0;
12832   IADDR UNUSED pc = abuf->addr;
12833   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12834
12835 if (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1))) {
12836 {
12837 ; /*clobber*/
12838 ; /*clobber*/
12839 ; /*clobber*/
12840 ; /*clobber*/
12841 if (NEBI (CPU (h_psr_esr), 0)) {
12842 {
12843 ; /*clobber*/
12844 ; /*clobber*/
12845 ; /*clobber*/
12846 ; /*clobber*/
12847 }
12848 }
12849 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12850 }
12851 }
12852
12853   abuf->written = written;
12854   return vpc;
12855 #undef FLD
12856 }
12857
12858 /* tinc: tinc$pack $ICCi_2,$GRi,$s12 */
12859
12860 static SEM_PC
12861 SEM_FN_NAME (frvbf,tinc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12862 {
12863 #define FLD(f) abuf->fields.sfmt_tieq.f
12864   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12865   int UNUSED written = 0;
12866   IADDR UNUSED pc = abuf->addr;
12867   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12868
12869 if (NOTBI (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)))) {
12870 {
12871 ; /*clobber*/
12872 ; /*clobber*/
12873 ; /*clobber*/
12874 ; /*clobber*/
12875 if (NEBI (CPU (h_psr_esr), 0)) {
12876 {
12877 ; /*clobber*/
12878 ; /*clobber*/
12879 ; /*clobber*/
12880 ; /*clobber*/
12881 }
12882 }
12883 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12884 }
12885 }
12886
12887   abuf->written = written;
12888   return vpc;
12889 #undef FLD
12890 }
12891
12892 /* tin: tin$pack $ICCi_2,$GRi,$s12 */
12893
12894 static SEM_PC
12895 SEM_FN_NAME (frvbf,tin) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12896 {
12897 #define FLD(f) abuf->fields.sfmt_tieq.f
12898   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12899   int UNUSED written = 0;
12900   IADDR UNUSED pc = abuf->addr;
12901   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12902
12903 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3))) {
12904 {
12905 ; /*clobber*/
12906 ; /*clobber*/
12907 ; /*clobber*/
12908 ; /*clobber*/
12909 if (NEBI (CPU (h_psr_esr), 0)) {
12910 {
12911 ; /*clobber*/
12912 ; /*clobber*/
12913 ; /*clobber*/
12914 ; /*clobber*/
12915 }
12916 }
12917 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12918 }
12919 }
12920
12921   abuf->written = written;
12922   return vpc;
12923 #undef FLD
12924 }
12925
12926 /* tip: tip$pack $ICCi_2,$GRi,$s12 */
12927
12928 static SEM_PC
12929 SEM_FN_NAME (frvbf,tip) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12930 {
12931 #define FLD(f) abuf->fields.sfmt_tieq.f
12932   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12933   int UNUSED written = 0;
12934   IADDR UNUSED pc = abuf->addr;
12935   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12936
12937 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3)))) {
12938 {
12939 ; /*clobber*/
12940 ; /*clobber*/
12941 ; /*clobber*/
12942 ; /*clobber*/
12943 if (NEBI (CPU (h_psr_esr), 0)) {
12944 {
12945 ; /*clobber*/
12946 ; /*clobber*/
12947 ; /*clobber*/
12948 ; /*clobber*/
12949 }
12950 }
12951 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12952 }
12953 }
12954
12955   abuf->written = written;
12956   return vpc;
12957 #undef FLD
12958 }
12959
12960 /* tiv: tiv$pack $ICCi_2,$GRi,$s12 */
12961
12962 static SEM_PC
12963 SEM_FN_NAME (frvbf,tiv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12964 {
12965 #define FLD(f) abuf->fields.sfmt_tieq.f
12966   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12967   int UNUSED written = 0;
12968   IADDR UNUSED pc = abuf->addr;
12969   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12970
12971 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1))) {
12972 {
12973 ; /*clobber*/
12974 ; /*clobber*/
12975 ; /*clobber*/
12976 ; /*clobber*/
12977 if (NEBI (CPU (h_psr_esr), 0)) {
12978 {
12979 ; /*clobber*/
12980 ; /*clobber*/
12981 ; /*clobber*/
12982 ; /*clobber*/
12983 }
12984 }
12985 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12986 }
12987 }
12988
12989   abuf->written = written;
12990   return vpc;
12991 #undef FLD
12992 }
12993
12994 /* tinv: tinv$pack $ICCi_2,$GRi,$s12 */
12995
12996 static SEM_PC
12997 SEM_FN_NAME (frvbf,tinv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12998 {
12999 #define FLD(f) abuf->fields.sfmt_tieq.f
13000   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13001   int UNUSED written = 0;
13002   IADDR UNUSED pc = abuf->addr;
13003   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13004
13005 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1)))) {
13006 {
13007 ; /*clobber*/
13008 ; /*clobber*/
13009 ; /*clobber*/
13010 ; /*clobber*/
13011 if (NEBI (CPU (h_psr_esr), 0)) {
13012 {
13013 ; /*clobber*/
13014 ; /*clobber*/
13015 ; /*clobber*/
13016 ; /*clobber*/
13017 }
13018 }
13019 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13020 }
13021 }
13022
13023   abuf->written = written;
13024   return vpc;
13025 #undef FLD
13026 }
13027
13028 /* ftira: ftira$pack $GRi,$s12 */
13029
13030 static SEM_PC
13031 SEM_FN_NAME (frvbf,ftira) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13032 {
13033 #define FLD(f) abuf->fields.sfmt_ftine.f
13034   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13035   int UNUSED written = 0;
13036   IADDR UNUSED pc = abuf->addr;
13037   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13038
13039 {
13040 ; /*clobber*/
13041 ; /*clobber*/
13042 ; /*clobber*/
13043 ; /*clobber*/
13044 if (NEBI (CPU (h_psr_esr), 0)) {
13045 {
13046 ; /*clobber*/
13047 ; /*clobber*/
13048 ; /*clobber*/
13049 ; /*clobber*/
13050 }
13051 }
13052 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13053 }
13054
13055   abuf->written = written;
13056   return vpc;
13057 #undef FLD
13058 }
13059
13060 /* ftino: ftino$pack */
13061
13062 static SEM_PC
13063 SEM_FN_NAME (frvbf,ftino) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13064 {
13065 #define FLD(f) abuf->fields.fmt_empty.f
13066   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13067   int UNUSED written = 0;
13068   IADDR UNUSED pc = abuf->addr;
13069   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13070
13071 ((void) 0); /*nop*/
13072
13073   return vpc;
13074 #undef FLD
13075 }
13076
13077 /* ftine: ftine$pack $FCCi_2,$GRi,$s12 */
13078
13079 static SEM_PC
13080 SEM_FN_NAME (frvbf,ftine) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13081 {
13082 #define FLD(f) abuf->fields.sfmt_ftine.f
13083   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13084   int UNUSED written = 0;
13085   IADDR UNUSED pc = abuf->addr;
13086   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13087
13088 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2)), ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1))))) {
13089 {
13090 ; /*clobber*/
13091 ; /*clobber*/
13092 ; /*clobber*/
13093 ; /*clobber*/
13094 if (NEBI (CPU (h_psr_esr), 0)) {
13095 {
13096 ; /*clobber*/
13097 ; /*clobber*/
13098 ; /*clobber*/
13099 ; /*clobber*/
13100 }
13101 }
13102 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13103 }
13104 }
13105
13106   abuf->written = written;
13107   return vpc;
13108 #undef FLD
13109 }
13110
13111 /* ftieq: ftieq$pack $FCCi_2,$GRi,$s12 */
13112
13113 static SEM_PC
13114 SEM_FN_NAME (frvbf,ftieq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13115 {
13116 #define FLD(f) abuf->fields.sfmt_ftine.f
13117   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13118   int UNUSED written = 0;
13119   IADDR UNUSED pc = abuf->addr;
13120   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13121
13122 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3))) {
13123 {
13124 ; /*clobber*/
13125 ; /*clobber*/
13126 ; /*clobber*/
13127 ; /*clobber*/
13128 if (NEBI (CPU (h_psr_esr), 0)) {
13129 {
13130 ; /*clobber*/
13131 ; /*clobber*/
13132 ; /*clobber*/
13133 ; /*clobber*/
13134 }
13135 }
13136 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13137 }
13138 }
13139
13140   abuf->written = written;
13141   return vpc;
13142 #undef FLD
13143 }
13144
13145 /* ftilg: ftilg$pack $FCCi_2,$GRi,$s12 */
13146
13147 static SEM_PC
13148 SEM_FN_NAME (frvbf,ftilg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13149 {
13150 #define FLD(f) abuf->fields.sfmt_ftine.f
13151   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13152   int UNUSED written = 0;
13153   IADDR UNUSED pc = abuf->addr;
13154   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13155
13156 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1)))) {
13157 {
13158 ; /*clobber*/
13159 ; /*clobber*/
13160 ; /*clobber*/
13161 ; /*clobber*/
13162 if (NEBI (CPU (h_psr_esr), 0)) {
13163 {
13164 ; /*clobber*/
13165 ; /*clobber*/
13166 ; /*clobber*/
13167 ; /*clobber*/
13168 }
13169 }
13170 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13171 }
13172 }
13173
13174   abuf->written = written;
13175   return vpc;
13176 #undef FLD
13177 }
13178
13179 /* ftiue: ftiue$pack $FCCi_2,$GRi,$s12 */
13180
13181 static SEM_PC
13182 SEM_FN_NAME (frvbf,ftiue) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13183 {
13184 #define FLD(f) abuf->fields.sfmt_ftine.f
13185   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13186   int UNUSED written = 0;
13187   IADDR UNUSED pc = abuf->addr;
13188   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13189
13190 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
13191 {
13192 ; /*clobber*/
13193 ; /*clobber*/
13194 ; /*clobber*/
13195 ; /*clobber*/
13196 if (NEBI (CPU (h_psr_esr), 0)) {
13197 {
13198 ; /*clobber*/
13199 ; /*clobber*/
13200 ; /*clobber*/
13201 ; /*clobber*/
13202 }
13203 }
13204 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13205 }
13206 }
13207
13208   abuf->written = written;
13209   return vpc;
13210 #undef FLD
13211 }
13212
13213 /* ftiul: ftiul$pack $FCCi_2,$GRi,$s12 */
13214
13215 static SEM_PC
13216 SEM_FN_NAME (frvbf,ftiul) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13217 {
13218 #define FLD(f) abuf->fields.sfmt_ftine.f
13219   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13220   int UNUSED written = 0;
13221   IADDR UNUSED pc = abuf->addr;
13222   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13223
13224 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
13225 {
13226 ; /*clobber*/
13227 ; /*clobber*/
13228 ; /*clobber*/
13229 ; /*clobber*/
13230 if (NEBI (CPU (h_psr_esr), 0)) {
13231 {
13232 ; /*clobber*/
13233 ; /*clobber*/
13234 ; /*clobber*/
13235 ; /*clobber*/
13236 }
13237 }
13238 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13239 }
13240 }
13241
13242   abuf->written = written;
13243   return vpc;
13244 #undef FLD
13245 }
13246
13247 /* ftige: ftige$pack $FCCi_2,$GRi,$s12 */
13248
13249 static SEM_PC
13250 SEM_FN_NAME (frvbf,ftige) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13251 {
13252 #define FLD(f) abuf->fields.sfmt_ftine.f
13253   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13254   int UNUSED written = 0;
13255   IADDR UNUSED pc = abuf->addr;
13256   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13257
13258 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1)))) {
13259 {
13260 ; /*clobber*/
13261 ; /*clobber*/
13262 ; /*clobber*/
13263 ; /*clobber*/
13264 if (NEBI (CPU (h_psr_esr), 0)) {
13265 {
13266 ; /*clobber*/
13267 ; /*clobber*/
13268 ; /*clobber*/
13269 ; /*clobber*/
13270 }
13271 }
13272 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13273 }
13274 }
13275
13276   abuf->written = written;
13277   return vpc;
13278 #undef FLD
13279 }
13280
13281 /* ftilt: ftilt$pack $FCCi_2,$GRi,$s12 */
13282
13283 static SEM_PC
13284 SEM_FN_NAME (frvbf,ftilt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13285 {
13286 #define FLD(f) abuf->fields.sfmt_ftine.f
13287   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13288   int UNUSED written = 0;
13289   IADDR UNUSED pc = abuf->addr;
13290   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13291
13292 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2))) {
13293 {
13294 ; /*clobber*/
13295 ; /*clobber*/
13296 ; /*clobber*/
13297 ; /*clobber*/
13298 if (NEBI (CPU (h_psr_esr), 0)) {
13299 {
13300 ; /*clobber*/
13301 ; /*clobber*/
13302 ; /*clobber*/
13303 ; /*clobber*/
13304 }
13305 }
13306 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13307 }
13308 }
13309
13310   abuf->written = written;
13311   return vpc;
13312 #undef FLD
13313 }
13314
13315 /* ftiuge: ftiuge$pack $FCCi_2,$GRi,$s12 */
13316
13317 static SEM_PC
13318 SEM_FN_NAME (frvbf,ftiuge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13319 {
13320 #define FLD(f) abuf->fields.sfmt_ftine.f
13321   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13322   int UNUSED written = 0;
13323   IADDR UNUSED pc = abuf->addr;
13324   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13325
13326 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3)), ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1))))) {
13327 {
13328 ; /*clobber*/
13329 ; /*clobber*/
13330 ; /*clobber*/
13331 ; /*clobber*/
13332 if (NEBI (CPU (h_psr_esr), 0)) {
13333 {
13334 ; /*clobber*/
13335 ; /*clobber*/
13336 ; /*clobber*/
13337 ; /*clobber*/
13338 }
13339 }
13340 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13341 }
13342 }
13343
13344   abuf->written = written;
13345   return vpc;
13346 #undef FLD
13347 }
13348
13349 /* ftiug: ftiug$pack $FCCi_2,$GRi,$s12 */
13350
13351 static SEM_PC
13352 SEM_FN_NAME (frvbf,ftiug) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13353 {
13354 #define FLD(f) abuf->fields.sfmt_ftine.f
13355   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13356   int UNUSED written = 0;
13357   IADDR UNUSED pc = abuf->addr;
13358   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13359
13360 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
13361 {
13362 ; /*clobber*/
13363 ; /*clobber*/
13364 ; /*clobber*/
13365 ; /*clobber*/
13366 if (NEBI (CPU (h_psr_esr), 0)) {
13367 {
13368 ; /*clobber*/
13369 ; /*clobber*/
13370 ; /*clobber*/
13371 ; /*clobber*/
13372 }
13373 }
13374 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13375 }
13376 }
13377
13378   abuf->written = written;
13379   return vpc;
13380 #undef FLD
13381 }
13382
13383 /* ftile: ftile$pack $FCCi_2,$GRi,$s12 */
13384
13385 static SEM_PC
13386 SEM_FN_NAME (frvbf,ftile) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13387 {
13388 #define FLD(f) abuf->fields.sfmt_ftine.f
13389   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13390   int UNUSED written = 0;
13391   IADDR UNUSED pc = abuf->addr;
13392   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13393
13394 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2)))) {
13395 {
13396 ; /*clobber*/
13397 ; /*clobber*/
13398 ; /*clobber*/
13399 ; /*clobber*/
13400 if (NEBI (CPU (h_psr_esr), 0)) {
13401 {
13402 ; /*clobber*/
13403 ; /*clobber*/
13404 ; /*clobber*/
13405 ; /*clobber*/
13406 }
13407 }
13408 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13409 }
13410 }
13411
13412   abuf->written = written;
13413   return vpc;
13414 #undef FLD
13415 }
13416
13417 /* ftigt: ftigt$pack $FCCi_2,$GRi,$s12 */
13418
13419 static SEM_PC
13420 SEM_FN_NAME (frvbf,ftigt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13421 {
13422 #define FLD(f) abuf->fields.sfmt_ftine.f
13423   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13424   int UNUSED written = 0;
13425   IADDR UNUSED pc = abuf->addr;
13426   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13427
13428 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1))) {
13429 {
13430 ; /*clobber*/
13431 ; /*clobber*/
13432 ; /*clobber*/
13433 ; /*clobber*/
13434 if (NEBI (CPU (h_psr_esr), 0)) {
13435 {
13436 ; /*clobber*/
13437 ; /*clobber*/
13438 ; /*clobber*/
13439 ; /*clobber*/
13440 }
13441 }
13442 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13443 }
13444 }
13445
13446   abuf->written = written;
13447   return vpc;
13448 #undef FLD
13449 }
13450
13451 /* ftiule: ftiule$pack $FCCi_2,$GRi,$s12 */
13452
13453 static SEM_PC
13454 SEM_FN_NAME (frvbf,ftiule) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13455 {
13456 #define FLD(f) abuf->fields.sfmt_ftine.f
13457   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13458   int UNUSED written = 0;
13459   IADDR UNUSED pc = abuf->addr;
13460   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13461
13462 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3)), ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1))))) {
13463 {
13464 ; /*clobber*/
13465 ; /*clobber*/
13466 ; /*clobber*/
13467 ; /*clobber*/
13468 if (NEBI (CPU (h_psr_esr), 0)) {
13469 {
13470 ; /*clobber*/
13471 ; /*clobber*/
13472 ; /*clobber*/
13473 ; /*clobber*/
13474 }
13475 }
13476 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13477 }
13478 }
13479
13480   abuf->written = written;
13481   return vpc;
13482 #undef FLD
13483 }
13484
13485 /* ftiu: ftiu$pack $FCCi_2,$GRi,$s12 */
13486
13487 static SEM_PC
13488 SEM_FN_NAME (frvbf,ftiu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13489 {
13490 #define FLD(f) abuf->fields.sfmt_ftine.f
13491   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13492   int UNUSED written = 0;
13493   IADDR UNUSED pc = abuf->addr;
13494   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13495
13496 if (TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1))) {
13497 {
13498 ; /*clobber*/
13499 ; /*clobber*/
13500 ; /*clobber*/
13501 ; /*clobber*/
13502 if (NEBI (CPU (h_psr_esr), 0)) {
13503 {
13504 ; /*clobber*/
13505 ; /*clobber*/
13506 ; /*clobber*/
13507 ; /*clobber*/
13508 }
13509 }
13510 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13511 }
13512 }
13513
13514   abuf->written = written;
13515   return vpc;
13516 #undef FLD
13517 }
13518
13519 /* ftio: ftio$pack $FCCi_2,$GRi,$s12 */
13520
13521 static SEM_PC
13522 SEM_FN_NAME (frvbf,ftio) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13523 {
13524 #define FLD(f) abuf->fields.sfmt_ftine.f
13525   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13526   int UNUSED written = 0;
13527   IADDR UNUSED pc = abuf->addr;
13528   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13529
13530 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3)), ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1))))) {
13531 {
13532 ; /*clobber*/
13533 ; /*clobber*/
13534 ; /*clobber*/
13535 ; /*clobber*/
13536 if (NEBI (CPU (h_psr_esr), 0)) {
13537 {
13538 ; /*clobber*/
13539 ; /*clobber*/
13540 ; /*clobber*/
13541 ; /*clobber*/
13542 }
13543 }
13544 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13545 }
13546 }
13547
13548   abuf->written = written;
13549   return vpc;
13550 #undef FLD
13551 }
13552
13553 /* break: break$pack */
13554
13555 static SEM_PC
13556 SEM_FN_NAME (frvbf,break) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13557 {
13558 #define FLD(f) abuf->fields.sfmt_break.f
13559   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13560   int UNUSED written = 0;
13561   IADDR UNUSED pc = abuf->addr;
13562   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13563
13564 {
13565 ; /*clobber*/
13566 ; /*clobber*/
13567 ; /*clobber*/
13568 ; /*clobber*/
13569 ; /*clobber*/
13570 ; /*clobber*/
13571 frv_break (current_cpu);
13572 }
13573
13574   return vpc;
13575 #undef FLD
13576 }
13577
13578 /* mtrap: mtrap$pack */
13579
13580 static SEM_PC
13581 SEM_FN_NAME (frvbf,mtrap) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13582 {
13583 #define FLD(f) abuf->fields.fmt_empty.f
13584   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13585   int UNUSED written = 0;
13586   IADDR UNUSED pc = abuf->addr;
13587   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13588
13589 frv_mtrap (current_cpu);
13590
13591   return vpc;
13592 #undef FLD
13593 }
13594
13595 /* andcr: andcr$pack $CRi,$CRj,$CRk */
13596
13597 static SEM_PC
13598 SEM_FN_NAME (frvbf,andcr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13599 {
13600 #define FLD(f) abuf->fields.sfmt_andcr.f
13601   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13602   int UNUSED written = 0;
13603   IADDR UNUSED pc = abuf->addr;
13604   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13605
13606   {
13607     UQI opval = frvbf_cr_logic (current_cpu, 0, CPU (h_cccr[FLD (f_CRi)]), CPU (h_cccr[FLD (f_CRj)]));
13608     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRk)]), opval);
13609     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13610   }
13611
13612   return vpc;
13613 #undef FLD
13614 }
13615
13616 /* orcr: orcr$pack $CRi,$CRj,$CRk */
13617
13618 static SEM_PC
13619 SEM_FN_NAME (frvbf,orcr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13620 {
13621 #define FLD(f) abuf->fields.sfmt_andcr.f
13622   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13623   int UNUSED written = 0;
13624   IADDR UNUSED pc = abuf->addr;
13625   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13626
13627   {
13628     UQI opval = frvbf_cr_logic (current_cpu, 1, CPU (h_cccr[FLD (f_CRi)]), CPU (h_cccr[FLD (f_CRj)]));
13629     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRk)]), opval);
13630     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13631   }
13632
13633   return vpc;
13634 #undef FLD
13635 }
13636
13637 /* xorcr: xorcr$pack $CRi,$CRj,$CRk */
13638
13639 static SEM_PC
13640 SEM_FN_NAME (frvbf,xorcr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13641 {
13642 #define FLD(f) abuf->fields.sfmt_andcr.f
13643   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13644   int UNUSED written = 0;
13645   IADDR UNUSED pc = abuf->addr;
13646   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13647
13648   {
13649     UQI opval = frvbf_cr_logic (current_cpu, 2, CPU (h_cccr[FLD (f_CRi)]), CPU (h_cccr[FLD (f_CRj)]));
13650     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRk)]), opval);
13651     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13652   }
13653
13654   return vpc;
13655 #undef FLD
13656 }
13657
13658 /* nandcr: nandcr$pack $CRi,$CRj,$CRk */
13659
13660 static SEM_PC
13661 SEM_FN_NAME (frvbf,nandcr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13662 {
13663 #define FLD(f) abuf->fields.sfmt_andcr.f
13664   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13665   int UNUSED written = 0;
13666   IADDR UNUSED pc = abuf->addr;
13667   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13668
13669   {
13670     UQI opval = frvbf_cr_logic (current_cpu, 3, CPU (h_cccr[FLD (f_CRi)]), CPU (h_cccr[FLD (f_CRj)]));
13671     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRk)]), opval);
13672     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13673   }
13674
13675   return vpc;
13676 #undef FLD
13677 }
13678
13679 /* norcr: norcr$pack $CRi,$CRj,$CRk */
13680
13681 static SEM_PC
13682 SEM_FN_NAME (frvbf,norcr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13683 {
13684 #define FLD(f) abuf->fields.sfmt_andcr.f
13685   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13686   int UNUSED written = 0;
13687   IADDR UNUSED pc = abuf->addr;
13688   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13689
13690   {
13691     UQI opval = frvbf_cr_logic (current_cpu, 4, CPU (h_cccr[FLD (f_CRi)]), CPU (h_cccr[FLD (f_CRj)]));
13692     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRk)]), opval);
13693     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13694   }
13695
13696   return vpc;
13697 #undef FLD
13698 }
13699
13700 /* andncr: andncr$pack $CRi,$CRj,$CRk */
13701
13702 static SEM_PC
13703 SEM_FN_NAME (frvbf,andncr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13704 {
13705 #define FLD(f) abuf->fields.sfmt_andcr.f
13706   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13707   int UNUSED written = 0;
13708   IADDR UNUSED pc = abuf->addr;
13709   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13710
13711   {
13712     UQI opval = frvbf_cr_logic (current_cpu, 5, CPU (h_cccr[FLD (f_CRi)]), CPU (h_cccr[FLD (f_CRj)]));
13713     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRk)]), opval);
13714     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13715   }
13716
13717   return vpc;
13718 #undef FLD
13719 }
13720
13721 /* orncr: orncr$pack $CRi,$CRj,$CRk */
13722
13723 static SEM_PC
13724 SEM_FN_NAME (frvbf,orncr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13725 {
13726 #define FLD(f) abuf->fields.sfmt_andcr.f
13727   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13728   int UNUSED written = 0;
13729   IADDR UNUSED pc = abuf->addr;
13730   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13731
13732   {
13733     UQI opval = frvbf_cr_logic (current_cpu, 6, CPU (h_cccr[FLD (f_CRi)]), CPU (h_cccr[FLD (f_CRj)]));
13734     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRk)]), opval);
13735     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13736   }
13737
13738   return vpc;
13739 #undef FLD
13740 }
13741
13742 /* nandncr: nandncr$pack $CRi,$CRj,$CRk */
13743
13744 static SEM_PC
13745 SEM_FN_NAME (frvbf,nandncr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13746 {
13747 #define FLD(f) abuf->fields.sfmt_andcr.f
13748   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13749   int UNUSED written = 0;
13750   IADDR UNUSED pc = abuf->addr;
13751   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13752
13753   {
13754     UQI opval = frvbf_cr_logic (current_cpu, 7, CPU (h_cccr[FLD (f_CRi)]), CPU (h_cccr[FLD (f_CRj)]));
13755     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRk)]), opval);
13756     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13757   }
13758
13759   return vpc;
13760 #undef FLD
13761 }
13762
13763 /* norncr: norncr$pack $CRi,$CRj,$CRk */
13764
13765 static SEM_PC
13766 SEM_FN_NAME (frvbf,norncr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13767 {
13768 #define FLD(f) abuf->fields.sfmt_andcr.f
13769   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13770   int UNUSED written = 0;
13771   IADDR UNUSED pc = abuf->addr;
13772   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13773
13774   {
13775     UQI opval = frvbf_cr_logic (current_cpu, 8, CPU (h_cccr[FLD (f_CRi)]), CPU (h_cccr[FLD (f_CRj)]));
13776     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRk)]), opval);
13777     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13778   }
13779
13780   return vpc;
13781 #undef FLD
13782 }
13783
13784 /* notcr: notcr$pack $CRj,$CRk */
13785
13786 static SEM_PC
13787 SEM_FN_NAME (frvbf,notcr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13788 {
13789 #define FLD(f) abuf->fields.sfmt_andcr.f
13790   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13791   int UNUSED written = 0;
13792   IADDR UNUSED pc = abuf->addr;
13793   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13794
13795   {
13796     UQI opval = XORQI (CPU (h_cccr[FLD (f_CRj)]), 1);
13797     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRk)]), opval);
13798     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13799   }
13800
13801   return vpc;
13802 #undef FLD
13803 }
13804
13805 /* ckra: ckra$pack $CRj_int */
13806
13807 static SEM_PC
13808 SEM_FN_NAME (frvbf,ckra) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13809 {
13810 #define FLD(f) abuf->fields.sfmt_cckeq.f
13811   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13812   int UNUSED written = 0;
13813   IADDR UNUSED pc = abuf->addr;
13814   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13815
13816   {
13817     UQI opval = 3;
13818     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
13819     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13820   }
13821
13822   return vpc;
13823 #undef FLD
13824 }
13825
13826 /* ckno: ckno$pack $CRj_int */
13827
13828 static SEM_PC
13829 SEM_FN_NAME (frvbf,ckno) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13830 {
13831 #define FLD(f) abuf->fields.sfmt_cckeq.f
13832   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13833   int UNUSED written = 0;
13834   IADDR UNUSED pc = abuf->addr;
13835   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13836
13837   {
13838     UQI opval = 2;
13839     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
13840     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13841   }
13842
13843   return vpc;
13844 #undef FLD
13845 }
13846
13847 /* ckeq: ckeq$pack $ICCi_3,$CRj_int */
13848
13849 static SEM_PC
13850 SEM_FN_NAME (frvbf,ckeq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13851 {
13852 #define FLD(f) abuf->fields.sfmt_cckeq.f
13853   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13854   int UNUSED written = 0;
13855   IADDR UNUSED pc = abuf->addr;
13856   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13857
13858 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 4), 2))) {
13859   {
13860     UQI opval = 3;
13861     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
13862     written |= (1 << 1);
13863     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13864   }
13865 } else {
13866   {
13867     UQI opval = 2;
13868     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
13869     written |= (1 << 1);
13870     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13871   }
13872 }
13873
13874   abuf->written = written;
13875   return vpc;
13876 #undef FLD
13877 }
13878
13879 /* ckne: ckne$pack $ICCi_3,$CRj_int */
13880
13881 static SEM_PC
13882 SEM_FN_NAME (frvbf,ckne) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13883 {
13884 #define FLD(f) abuf->fields.sfmt_cckeq.f
13885   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13886   int UNUSED written = 0;
13887   IADDR UNUSED pc = abuf->addr;
13888   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13889
13890 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 4), 2)))) {
13891   {
13892     UQI opval = 3;
13893     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
13894     written |= (1 << 1);
13895     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13896   }
13897 } else {
13898   {
13899     UQI opval = 2;
13900     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
13901     written |= (1 << 1);
13902     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13903   }
13904 }
13905
13906   abuf->written = written;
13907   return vpc;
13908 #undef FLD
13909 }
13910
13911 /* ckle: ckle$pack $ICCi_3,$CRj_int */
13912
13913 static SEM_PC
13914 SEM_FN_NAME (frvbf,ckle) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13915 {
13916 #define FLD(f) abuf->fields.sfmt_cckeq.f
13917   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13918   int UNUSED written = 0;
13919   IADDR UNUSED pc = abuf->addr;
13920   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13921
13922 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 4), 2)), XORBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 2), 1))))) {
13923   {
13924     UQI opval = 3;
13925     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
13926     written |= (1 << 1);
13927     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13928   }
13929 } else {
13930   {
13931     UQI opval = 2;
13932     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
13933     written |= (1 << 1);
13934     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13935   }
13936 }
13937
13938   abuf->written = written;
13939   return vpc;
13940 #undef FLD
13941 }
13942
13943 /* ckgt: ckgt$pack $ICCi_3,$CRj_int */
13944
13945 static SEM_PC
13946 SEM_FN_NAME (frvbf,ckgt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13947 {
13948 #define FLD(f) abuf->fields.sfmt_cckeq.f
13949   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13950   int UNUSED written = 0;
13951   IADDR UNUSED pc = abuf->addr;
13952   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13953
13954 if (NOTBI (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 4), 2)), XORBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 2), 1)))))) {
13955   {
13956     UQI opval = 3;
13957     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
13958     written |= (1 << 1);
13959     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13960   }
13961 } else {
13962   {
13963     UQI opval = 2;
13964     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
13965     written |= (1 << 1);
13966     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13967   }
13968 }
13969
13970   abuf->written = written;
13971   return vpc;
13972 #undef FLD
13973 }
13974
13975 /* cklt: cklt$pack $ICCi_3,$CRj_int */
13976
13977 static SEM_PC
13978 SEM_FN_NAME (frvbf,cklt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13979 {
13980 #define FLD(f) abuf->fields.sfmt_cckeq.f
13981   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13982   int UNUSED written = 0;
13983   IADDR UNUSED pc = abuf->addr;
13984   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13985
13986 if (XORBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 2), 1)))) {
13987   {
13988     UQI opval = 3;
13989     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
13990     written |= (1 << 1);
13991     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13992   }
13993 } else {
13994   {
13995     UQI opval = 2;
13996     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
13997     written |= (1 << 1);
13998     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13999   }
14000 }
14001
14002   abuf->written = written;
14003   return vpc;
14004 #undef FLD
14005 }
14006
14007 /* ckge: ckge$pack $ICCi_3,$CRj_int */
14008
14009 static SEM_PC
14010 SEM_FN_NAME (frvbf,ckge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14011 {
14012 #define FLD(f) abuf->fields.sfmt_cckeq.f
14013   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14014   int UNUSED written = 0;
14015   IADDR UNUSED pc = abuf->addr;
14016   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14017
14018 if (NOTBI (XORBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 2), 1))))) {
14019   {
14020     UQI opval = 3;
14021     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14022     written |= (1 << 1);
14023     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14024   }
14025 } else {
14026   {
14027     UQI opval = 2;
14028     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14029     written |= (1 << 1);
14030     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14031   }
14032 }
14033
14034   abuf->written = written;
14035   return vpc;
14036 #undef FLD
14037 }
14038
14039 /* ckls: ckls$pack $ICCi_3,$CRj_int */
14040
14041 static SEM_PC
14042 SEM_FN_NAME (frvbf,ckls) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14043 {
14044 #define FLD(f) abuf->fields.sfmt_cckeq.f
14045   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14046   int UNUSED written = 0;
14047   IADDR UNUSED pc = abuf->addr;
14048   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14049
14050 if (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 4), 2)))) {
14051   {
14052     UQI opval = 3;
14053     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14054     written |= (1 << 1);
14055     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14056   }
14057 } else {
14058   {
14059     UQI opval = 2;
14060     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14061     written |= (1 << 1);
14062     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14063   }
14064 }
14065
14066   abuf->written = written;
14067   return vpc;
14068 #undef FLD
14069 }
14070
14071 /* ckhi: ckhi$pack $ICCi_3,$CRj_int */
14072
14073 static SEM_PC
14074 SEM_FN_NAME (frvbf,ckhi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14075 {
14076 #define FLD(f) abuf->fields.sfmt_cckeq.f
14077   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14078   int UNUSED written = 0;
14079   IADDR UNUSED pc = abuf->addr;
14080   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14081
14082 if (NOTBI (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 4), 2))))) {
14083   {
14084     UQI opval = 3;
14085     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14086     written |= (1 << 1);
14087     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14088   }
14089 } else {
14090   {
14091     UQI opval = 2;
14092     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14093     written |= (1 << 1);
14094     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14095   }
14096 }
14097
14098   abuf->written = written;
14099   return vpc;
14100 #undef FLD
14101 }
14102
14103 /* ckc: ckc$pack $ICCi_3,$CRj_int */
14104
14105 static SEM_PC
14106 SEM_FN_NAME (frvbf,ckc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14107 {
14108 #define FLD(f) abuf->fields.sfmt_cckeq.f
14109   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14110   int UNUSED written = 0;
14111   IADDR UNUSED pc = abuf->addr;
14112   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14113
14114 if (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 1))) {
14115   {
14116     UQI opval = 3;
14117     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14118     written |= (1 << 1);
14119     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14120   }
14121 } else {
14122   {
14123     UQI opval = 2;
14124     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14125     written |= (1 << 1);
14126     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14127   }
14128 }
14129
14130   abuf->written = written;
14131   return vpc;
14132 #undef FLD
14133 }
14134
14135 /* cknc: cknc$pack $ICCi_3,$CRj_int */
14136
14137 static SEM_PC
14138 SEM_FN_NAME (frvbf,cknc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14139 {
14140 #define FLD(f) abuf->fields.sfmt_cckeq.f
14141   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14142   int UNUSED written = 0;
14143   IADDR UNUSED pc = abuf->addr;
14144   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14145
14146 if (NOTBI (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 1)))) {
14147   {
14148     UQI opval = 3;
14149     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14150     written |= (1 << 1);
14151     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14152   }
14153 } else {
14154   {
14155     UQI opval = 2;
14156     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14157     written |= (1 << 1);
14158     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14159   }
14160 }
14161
14162   abuf->written = written;
14163   return vpc;
14164 #undef FLD
14165 }
14166
14167 /* ckn: ckn$pack $ICCi_3,$CRj_int */
14168
14169 static SEM_PC
14170 SEM_FN_NAME (frvbf,ckn) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14171 {
14172 #define FLD(f) abuf->fields.sfmt_cckeq.f
14173   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14174   int UNUSED written = 0;
14175   IADDR UNUSED pc = abuf->addr;
14176   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14177
14178 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 8), 3))) {
14179   {
14180     UQI opval = 3;
14181     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14182     written |= (1 << 1);
14183     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14184   }
14185 } else {
14186   {
14187     UQI opval = 2;
14188     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14189     written |= (1 << 1);
14190     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14191   }
14192 }
14193
14194   abuf->written = written;
14195   return vpc;
14196 #undef FLD
14197 }
14198
14199 /* ckp: ckp$pack $ICCi_3,$CRj_int */
14200
14201 static SEM_PC
14202 SEM_FN_NAME (frvbf,ckp) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14203 {
14204 #define FLD(f) abuf->fields.sfmt_cckeq.f
14205   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14206   int UNUSED written = 0;
14207   IADDR UNUSED pc = abuf->addr;
14208   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14209
14210 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 8), 3)))) {
14211   {
14212     UQI opval = 3;
14213     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14214     written |= (1 << 1);
14215     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14216   }
14217 } else {
14218   {
14219     UQI opval = 2;
14220     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14221     written |= (1 << 1);
14222     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14223   }
14224 }
14225
14226   abuf->written = written;
14227   return vpc;
14228 #undef FLD
14229 }
14230
14231 /* ckv: ckv$pack $ICCi_3,$CRj_int */
14232
14233 static SEM_PC
14234 SEM_FN_NAME (frvbf,ckv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14235 {
14236 #define FLD(f) abuf->fields.sfmt_cckeq.f
14237   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14238   int UNUSED written = 0;
14239   IADDR UNUSED pc = abuf->addr;
14240   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14241
14242 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 2), 1))) {
14243   {
14244     UQI opval = 3;
14245     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14246     written |= (1 << 1);
14247     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14248   }
14249 } else {
14250   {
14251     UQI opval = 2;
14252     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14253     written |= (1 << 1);
14254     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14255   }
14256 }
14257
14258   abuf->written = written;
14259   return vpc;
14260 #undef FLD
14261 }
14262
14263 /* cknv: cknv$pack $ICCi_3,$CRj_int */
14264
14265 static SEM_PC
14266 SEM_FN_NAME (frvbf,cknv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14267 {
14268 #define FLD(f) abuf->fields.sfmt_cckeq.f
14269   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14270   int UNUSED written = 0;
14271   IADDR UNUSED pc = abuf->addr;
14272   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14273
14274 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 2), 1)))) {
14275   {
14276     UQI opval = 3;
14277     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14278     written |= (1 << 1);
14279     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14280   }
14281 } else {
14282   {
14283     UQI opval = 2;
14284     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14285     written |= (1 << 1);
14286     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14287   }
14288 }
14289
14290   abuf->written = written;
14291   return vpc;
14292 #undef FLD
14293 }
14294
14295 /* fckra: fckra$pack $CRj_float */
14296
14297 static SEM_PC
14298 SEM_FN_NAME (frvbf,fckra) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14299 {
14300 #define FLD(f) abuf->fields.sfmt_cfckne.f
14301   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14302   int UNUSED written = 0;
14303   IADDR UNUSED pc = abuf->addr;
14304   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14305
14306   {
14307     UQI opval = 3;
14308     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14309     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14310   }
14311
14312   return vpc;
14313 #undef FLD
14314 }
14315
14316 /* fckno: fckno$pack $CRj_float */
14317
14318 static SEM_PC
14319 SEM_FN_NAME (frvbf,fckno) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14320 {
14321 #define FLD(f) abuf->fields.sfmt_cfckne.f
14322   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14323   int UNUSED written = 0;
14324   IADDR UNUSED pc = abuf->addr;
14325   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14326
14327   {
14328     UQI opval = 2;
14329     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14330     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14331   }
14332
14333   return vpc;
14334 #undef FLD
14335 }
14336
14337 /* fckne: fckne$pack $FCCi_3,$CRj_float */
14338
14339 static SEM_PC
14340 SEM_FN_NAME (frvbf,fckne) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14341 {
14342 #define FLD(f) abuf->fields.sfmt_cfckne.f
14343   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14344   int UNUSED written = 0;
14345   IADDR UNUSED pc = abuf->addr;
14346   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14347
14348 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 4), 2)), ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 1))))) {
14349   {
14350     UQI opval = 3;
14351     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14352     written |= (1 << 1);
14353     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14354   }
14355 } else {
14356   {
14357     UQI opval = 2;
14358     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14359     written |= (1 << 1);
14360     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14361   }
14362 }
14363
14364   abuf->written = written;
14365   return vpc;
14366 #undef FLD
14367 }
14368
14369 /* fckeq: fckeq$pack $FCCi_3,$CRj_float */
14370
14371 static SEM_PC
14372 SEM_FN_NAME (frvbf,fckeq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14373 {
14374 #define FLD(f) abuf->fields.sfmt_cfckne.f
14375   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14376   int UNUSED written = 0;
14377   IADDR UNUSED pc = abuf->addr;
14378   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14379
14380 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 8), 3))) {
14381   {
14382     UQI opval = 3;
14383     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14384     written |= (1 << 1);
14385     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14386   }
14387 } else {
14388   {
14389     UQI opval = 2;
14390     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14391     written |= (1 << 1);
14392     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14393   }
14394 }
14395
14396   abuf->written = written;
14397   return vpc;
14398 #undef FLD
14399 }
14400
14401 /* fcklg: fcklg$pack $FCCi_3,$CRj_float */
14402
14403 static SEM_PC
14404 SEM_FN_NAME (frvbf,fcklg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14405 {
14406 #define FLD(f) abuf->fields.sfmt_cfckne.f
14407   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14408   int UNUSED written = 0;
14409   IADDR UNUSED pc = abuf->addr;
14410   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14411
14412 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 4), 2)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 2), 1)))) {
14413   {
14414     UQI opval = 3;
14415     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14416     written |= (1 << 1);
14417     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14418   }
14419 } else {
14420   {
14421     UQI opval = 2;
14422     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14423     written |= (1 << 1);
14424     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14425   }
14426 }
14427
14428   abuf->written = written;
14429   return vpc;
14430 #undef FLD
14431 }
14432
14433 /* fckue: fckue$pack $FCCi_3,$CRj_float */
14434
14435 static SEM_PC
14436 SEM_FN_NAME (frvbf,fckue) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14437 {
14438 #define FLD(f) abuf->fields.sfmt_cfckne.f
14439   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14440   int UNUSED written = 0;
14441   IADDR UNUSED pc = abuf->addr;
14442   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14443
14444 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 8), 3)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 1)))) {
14445   {
14446     UQI opval = 3;
14447     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14448     written |= (1 << 1);
14449     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14450   }
14451 } else {
14452   {
14453     UQI opval = 2;
14454     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14455     written |= (1 << 1);
14456     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14457   }
14458 }
14459
14460   abuf->written = written;
14461   return vpc;
14462 #undef FLD
14463 }
14464
14465 /* fckul: fckul$pack $FCCi_3,$CRj_float */
14466
14467 static SEM_PC
14468 SEM_FN_NAME (frvbf,fckul) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14469 {
14470 #define FLD(f) abuf->fields.sfmt_cfckne.f
14471   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14472   int UNUSED written = 0;
14473   IADDR UNUSED pc = abuf->addr;
14474   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14475
14476 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 4), 2)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 1)))) {
14477   {
14478     UQI opval = 3;
14479     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14480     written |= (1 << 1);
14481     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14482   }
14483 } else {
14484   {
14485     UQI opval = 2;
14486     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14487     written |= (1 << 1);
14488     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14489   }
14490 }
14491
14492   abuf->written = written;
14493   return vpc;
14494 #undef FLD
14495 }
14496
14497 /* fckge: fckge$pack $FCCi_3,$CRj_float */
14498
14499 static SEM_PC
14500 SEM_FN_NAME (frvbf,fckge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14501 {
14502 #define FLD(f) abuf->fields.sfmt_cfckne.f
14503   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14504   int UNUSED written = 0;
14505   IADDR UNUSED pc = abuf->addr;
14506   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14507
14508 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 2), 1)))) {
14509   {
14510     UQI opval = 3;
14511     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14512     written |= (1 << 1);
14513     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14514   }
14515 } else {
14516   {
14517     UQI opval = 2;
14518     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14519     written |= (1 << 1);
14520     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14521   }
14522 }
14523
14524   abuf->written = written;
14525   return vpc;
14526 #undef FLD
14527 }
14528
14529 /* fcklt: fcklt$pack $FCCi_3,$CRj_float */
14530
14531 static SEM_PC
14532 SEM_FN_NAME (frvbf,fcklt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14533 {
14534 #define FLD(f) abuf->fields.sfmt_cfckne.f
14535   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14536   int UNUSED written = 0;
14537   IADDR UNUSED pc = abuf->addr;
14538   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14539
14540 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 4), 2))) {
14541   {
14542     UQI opval = 3;
14543     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14544     written |= (1 << 1);
14545     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14546   }
14547 } else {
14548   {
14549     UQI opval = 2;
14550     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14551     written |= (1 << 1);
14552     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14553   }
14554 }
14555
14556   abuf->written = written;
14557   return vpc;
14558 #undef FLD
14559 }
14560
14561 /* fckuge: fckuge$pack $FCCi_3,$CRj_float */
14562
14563 static SEM_PC
14564 SEM_FN_NAME (frvbf,fckuge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14565 {
14566 #define FLD(f) abuf->fields.sfmt_cfckne.f
14567   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14568   int UNUSED written = 0;
14569   IADDR UNUSED pc = abuf->addr;
14570   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14571
14572 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 8), 3)), ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 1))))) {
14573   {
14574     UQI opval = 3;
14575     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14576     written |= (1 << 1);
14577     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14578   }
14579 } else {
14580   {
14581     UQI opval = 2;
14582     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14583     written |= (1 << 1);
14584     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14585   }
14586 }
14587
14588   abuf->written = written;
14589   return vpc;
14590 #undef FLD
14591 }
14592
14593 /* fckug: fckug$pack $FCCi_3,$CRj_float */
14594
14595 static SEM_PC
14596 SEM_FN_NAME (frvbf,fckug) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14597 {
14598 #define FLD(f) abuf->fields.sfmt_cfckne.f
14599   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14600   int UNUSED written = 0;
14601   IADDR UNUSED pc = abuf->addr;
14602   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14603
14604 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 1)))) {
14605   {
14606     UQI opval = 3;
14607     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14608     written |= (1 << 1);
14609     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14610   }
14611 } else {
14612   {
14613     UQI opval = 2;
14614     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14615     written |= (1 << 1);
14616     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14617   }
14618 }
14619
14620   abuf->written = written;
14621   return vpc;
14622 #undef FLD
14623 }
14624
14625 /* fckle: fckle$pack $FCCi_3,$CRj_float */
14626
14627 static SEM_PC
14628 SEM_FN_NAME (frvbf,fckle) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14629 {
14630 #define FLD(f) abuf->fields.sfmt_cfckne.f
14631   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14632   int UNUSED written = 0;
14633   IADDR UNUSED pc = abuf->addr;
14634   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14635
14636 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 4), 2)))) {
14637   {
14638     UQI opval = 3;
14639     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14640     written |= (1 << 1);
14641     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14642   }
14643 } else {
14644   {
14645     UQI opval = 2;
14646     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14647     written |= (1 << 1);
14648     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14649   }
14650 }
14651
14652   abuf->written = written;
14653   return vpc;
14654 #undef FLD
14655 }
14656
14657 /* fckgt: fckgt$pack $FCCi_3,$CRj_float */
14658
14659 static SEM_PC
14660 SEM_FN_NAME (frvbf,fckgt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14661 {
14662 #define FLD(f) abuf->fields.sfmt_cfckne.f
14663   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14664   int UNUSED written = 0;
14665   IADDR UNUSED pc = abuf->addr;
14666   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14667
14668 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 2), 1))) {
14669   {
14670     UQI opval = 3;
14671     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14672     written |= (1 << 1);
14673     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14674   }
14675 } else {
14676   {
14677     UQI opval = 2;
14678     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14679     written |= (1 << 1);
14680     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14681   }
14682 }
14683
14684   abuf->written = written;
14685   return vpc;
14686 #undef FLD
14687 }
14688
14689 /* fckule: fckule$pack $FCCi_3,$CRj_float */
14690
14691 static SEM_PC
14692 SEM_FN_NAME (frvbf,fckule) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14693 {
14694 #define FLD(f) abuf->fields.sfmt_cfckne.f
14695   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14696   int UNUSED written = 0;
14697   IADDR UNUSED pc = abuf->addr;
14698   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14699
14700 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 8), 3)), ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 4), 2)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 1))))) {
14701   {
14702     UQI opval = 3;
14703     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14704     written |= (1 << 1);
14705     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14706   }
14707 } else {
14708   {
14709     UQI opval = 2;
14710     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14711     written |= (1 << 1);
14712     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14713   }
14714 }
14715
14716   abuf->written = written;
14717   return vpc;
14718 #undef FLD
14719 }
14720
14721 /* fcku: fcku$pack $FCCi_3,$CRj_float */
14722
14723 static SEM_PC
14724 SEM_FN_NAME (frvbf,fcku) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14725 {
14726 #define FLD(f) abuf->fields.sfmt_cfckne.f
14727   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14728   int UNUSED written = 0;
14729   IADDR UNUSED pc = abuf->addr;
14730   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14731
14732 if (TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 1))) {
14733   {
14734     UQI opval = 3;
14735     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14736     written |= (1 << 1);
14737     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14738   }
14739 } else {
14740   {
14741     UQI opval = 2;
14742     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14743     written |= (1 << 1);
14744     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14745   }
14746 }
14747
14748   abuf->written = written;
14749   return vpc;
14750 #undef FLD
14751 }
14752
14753 /* fcko: fcko$pack $FCCi_3,$CRj_float */
14754
14755 static SEM_PC
14756 SEM_FN_NAME (frvbf,fcko) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14757 {
14758 #define FLD(f) abuf->fields.sfmt_cfckne.f
14759   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14760   int UNUSED written = 0;
14761   IADDR UNUSED pc = abuf->addr;
14762   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14763
14764 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 8), 3)), ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 4), 2)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 2), 1))))) {
14765   {
14766     UQI opval = 3;
14767     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14768     written |= (1 << 1);
14769     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14770   }
14771 } else {
14772   {
14773     UQI opval = 2;
14774     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14775     written |= (1 << 1);
14776     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14777   }
14778 }
14779
14780   abuf->written = written;
14781   return vpc;
14782 #undef FLD
14783 }
14784
14785 /* cckra: cckra$pack $CRj_int,$CCi,$cond */
14786
14787 static SEM_PC
14788 SEM_FN_NAME (frvbf,cckra) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14789 {
14790 #define FLD(f) abuf->fields.sfmt_cckeq.f
14791   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14792   int UNUSED written = 0;
14793   IADDR UNUSED pc = abuf->addr;
14794   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14795
14796 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
14797   {
14798     UQI opval = 3;
14799     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14800     written |= (1 << 2);
14801     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14802   }
14803 } else {
14804   {
14805     UQI opval = 0;
14806     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14807     written |= (1 << 2);
14808     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14809   }
14810 }
14811
14812   abuf->written = written;
14813   return vpc;
14814 #undef FLD
14815 }
14816
14817 /* cckno: cckno$pack $CRj_int,$CCi,$cond */
14818
14819 static SEM_PC
14820 SEM_FN_NAME (frvbf,cckno) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14821 {
14822 #define FLD(f) abuf->fields.sfmt_cckeq.f
14823   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14824   int UNUSED written = 0;
14825   IADDR UNUSED pc = abuf->addr;
14826   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14827
14828 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
14829   {
14830     UQI opval = 2;
14831     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14832     written |= (1 << 2);
14833     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14834   }
14835 } else {
14836   {
14837     UQI opval = 0;
14838     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14839     written |= (1 << 2);
14840     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14841   }
14842 }
14843
14844   abuf->written = written;
14845   return vpc;
14846 #undef FLD
14847 }
14848
14849 /* cckeq: cckeq$pack $ICCi_3,$CRj_int,$CCi,$cond */
14850
14851 static SEM_PC
14852 SEM_FN_NAME (frvbf,cckeq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14853 {
14854 #define FLD(f) abuf->fields.sfmt_cckeq.f
14855   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14856   int UNUSED written = 0;
14857   IADDR UNUSED pc = abuf->addr;
14858   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14859
14860 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
14861 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 4), 2))) {
14862   {
14863     UQI opval = 3;
14864     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14865     written |= (1 << 3);
14866     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14867   }
14868 } else {
14869   {
14870     UQI opval = 2;
14871     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14872     written |= (1 << 3);
14873     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14874   }
14875 }
14876 } else {
14877   {
14878     UQI opval = 0;
14879     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14880     written |= (1 << 3);
14881     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14882   }
14883 }
14884
14885   abuf->written = written;
14886   return vpc;
14887 #undef FLD
14888 }
14889
14890 /* cckne: cckne$pack $ICCi_3,$CRj_int,$CCi,$cond */
14891
14892 static SEM_PC
14893 SEM_FN_NAME (frvbf,cckne) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14894 {
14895 #define FLD(f) abuf->fields.sfmt_cckeq.f
14896   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14897   int UNUSED written = 0;
14898   IADDR UNUSED pc = abuf->addr;
14899   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14900
14901 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
14902 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 4), 2)))) {
14903   {
14904     UQI opval = 3;
14905     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14906     written |= (1 << 3);
14907     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14908   }
14909 } else {
14910   {
14911     UQI opval = 2;
14912     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14913     written |= (1 << 3);
14914     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14915   }
14916 }
14917 } else {
14918   {
14919     UQI opval = 0;
14920     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14921     written |= (1 << 3);
14922     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14923   }
14924 }
14925
14926   abuf->written = written;
14927   return vpc;
14928 #undef FLD
14929 }
14930
14931 /* cckle: cckle$pack $ICCi_3,$CRj_int,$CCi,$cond */
14932
14933 static SEM_PC
14934 SEM_FN_NAME (frvbf,cckle) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14935 {
14936 #define FLD(f) abuf->fields.sfmt_cckeq.f
14937   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14938   int UNUSED written = 0;
14939   IADDR UNUSED pc = abuf->addr;
14940   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14941
14942 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
14943 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 4), 2)), XORBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 2), 1))))) {
14944   {
14945     UQI opval = 3;
14946     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14947     written |= (1 << 3);
14948     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14949   }
14950 } else {
14951   {
14952     UQI opval = 2;
14953     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14954     written |= (1 << 3);
14955     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14956   }
14957 }
14958 } else {
14959   {
14960     UQI opval = 0;
14961     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14962     written |= (1 << 3);
14963     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14964   }
14965 }
14966
14967   abuf->written = written;
14968   return vpc;
14969 #undef FLD
14970 }
14971
14972 /* cckgt: cckgt$pack $ICCi_3,$CRj_int,$CCi,$cond */
14973
14974 static SEM_PC
14975 SEM_FN_NAME (frvbf,cckgt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14976 {
14977 #define FLD(f) abuf->fields.sfmt_cckeq.f
14978   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14979   int UNUSED written = 0;
14980   IADDR UNUSED pc = abuf->addr;
14981   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14982
14983 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
14984 if (NOTBI (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 4), 2)), XORBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 2), 1)))))) {
14985   {
14986     UQI opval = 3;
14987     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14988     written |= (1 << 3);
14989     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14990   }
14991 } else {
14992   {
14993     UQI opval = 2;
14994     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14995     written |= (1 << 3);
14996     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14997   }
14998 }
14999 } else {
15000   {
15001     UQI opval = 0;
15002     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15003     written |= (1 << 3);
15004     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15005   }
15006 }
15007
15008   abuf->written = written;
15009   return vpc;
15010 #undef FLD
15011 }
15012
15013 /* ccklt: ccklt$pack $ICCi_3,$CRj_int,$CCi,$cond */
15014
15015 static SEM_PC
15016 SEM_FN_NAME (frvbf,ccklt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15017 {
15018 #define FLD(f) abuf->fields.sfmt_cckeq.f
15019   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15020   int UNUSED written = 0;
15021   IADDR UNUSED pc = abuf->addr;
15022   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15023
15024 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15025 if (XORBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 2), 1)))) {
15026   {
15027     UQI opval = 3;
15028     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15029     written |= (1 << 3);
15030     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15031   }
15032 } else {
15033   {
15034     UQI opval = 2;
15035     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15036     written |= (1 << 3);
15037     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15038   }
15039 }
15040 } else {
15041   {
15042     UQI opval = 0;
15043     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15044     written |= (1 << 3);
15045     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15046   }
15047 }
15048
15049   abuf->written = written;
15050   return vpc;
15051 #undef FLD
15052 }
15053
15054 /* cckge: cckge$pack $ICCi_3,$CRj_int,$CCi,$cond */
15055
15056 static SEM_PC
15057 SEM_FN_NAME (frvbf,cckge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15058 {
15059 #define FLD(f) abuf->fields.sfmt_cckeq.f
15060   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15061   int UNUSED written = 0;
15062   IADDR UNUSED pc = abuf->addr;
15063   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15064
15065 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15066 if (NOTBI (XORBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 2), 1))))) {
15067   {
15068     UQI opval = 3;
15069     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15070     written |= (1 << 3);
15071     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15072   }
15073 } else {
15074   {
15075     UQI opval = 2;
15076     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15077     written |= (1 << 3);
15078     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15079   }
15080 }
15081 } else {
15082   {
15083     UQI opval = 0;
15084     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15085     written |= (1 << 3);
15086     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15087   }
15088 }
15089
15090   abuf->written = written;
15091   return vpc;
15092 #undef FLD
15093 }
15094
15095 /* cckls: cckls$pack $ICCi_3,$CRj_int,$CCi,$cond */
15096
15097 static SEM_PC
15098 SEM_FN_NAME (frvbf,cckls) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15099 {
15100 #define FLD(f) abuf->fields.sfmt_cckeq.f
15101   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15102   int UNUSED written = 0;
15103   IADDR UNUSED pc = abuf->addr;
15104   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15105
15106 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15107 if (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 4), 2)))) {
15108   {
15109     UQI opval = 3;
15110     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15111     written |= (1 << 3);
15112     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15113   }
15114 } else {
15115   {
15116     UQI opval = 2;
15117     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15118     written |= (1 << 3);
15119     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15120   }
15121 }
15122 } else {
15123   {
15124     UQI opval = 0;
15125     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15126     written |= (1 << 3);
15127     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15128   }
15129 }
15130
15131   abuf->written = written;
15132   return vpc;
15133 #undef FLD
15134 }
15135
15136 /* cckhi: cckhi$pack $ICCi_3,$CRj_int,$CCi,$cond */
15137
15138 static SEM_PC
15139 SEM_FN_NAME (frvbf,cckhi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15140 {
15141 #define FLD(f) abuf->fields.sfmt_cckeq.f
15142   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15143   int UNUSED written = 0;
15144   IADDR UNUSED pc = abuf->addr;
15145   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15146
15147 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15148 if (NOTBI (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 4), 2))))) {
15149   {
15150     UQI opval = 3;
15151     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15152     written |= (1 << 3);
15153     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15154   }
15155 } else {
15156   {
15157     UQI opval = 2;
15158     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15159     written |= (1 << 3);
15160     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15161   }
15162 }
15163 } else {
15164   {
15165     UQI opval = 0;
15166     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15167     written |= (1 << 3);
15168     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15169   }
15170 }
15171
15172   abuf->written = written;
15173   return vpc;
15174 #undef FLD
15175 }
15176
15177 /* cckc: cckc$pack $ICCi_3,$CRj_int,$CCi,$cond */
15178
15179 static SEM_PC
15180 SEM_FN_NAME (frvbf,cckc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15181 {
15182 #define FLD(f) abuf->fields.sfmt_cckeq.f
15183   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15184   int UNUSED written = 0;
15185   IADDR UNUSED pc = abuf->addr;
15186   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15187
15188 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15189 if (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 1))) {
15190   {
15191     UQI opval = 3;
15192     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15193     written |= (1 << 3);
15194     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15195   }
15196 } else {
15197   {
15198     UQI opval = 2;
15199     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15200     written |= (1 << 3);
15201     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15202   }
15203 }
15204 } else {
15205   {
15206     UQI opval = 0;
15207     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15208     written |= (1 << 3);
15209     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15210   }
15211 }
15212
15213   abuf->written = written;
15214   return vpc;
15215 #undef FLD
15216 }
15217
15218 /* ccknc: ccknc$pack $ICCi_3,$CRj_int,$CCi,$cond */
15219
15220 static SEM_PC
15221 SEM_FN_NAME (frvbf,ccknc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15222 {
15223 #define FLD(f) abuf->fields.sfmt_cckeq.f
15224   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15225   int UNUSED written = 0;
15226   IADDR UNUSED pc = abuf->addr;
15227   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15228
15229 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15230 if (NOTBI (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 1)))) {
15231   {
15232     UQI opval = 3;
15233     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15234     written |= (1 << 3);
15235     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15236   }
15237 } else {
15238   {
15239     UQI opval = 2;
15240     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15241     written |= (1 << 3);
15242     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15243   }
15244 }
15245 } else {
15246   {
15247     UQI opval = 0;
15248     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15249     written |= (1 << 3);
15250     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15251   }
15252 }
15253
15254   abuf->written = written;
15255   return vpc;
15256 #undef FLD
15257 }
15258
15259 /* cckn: cckn$pack $ICCi_3,$CRj_int,$CCi,$cond */
15260
15261 static SEM_PC
15262 SEM_FN_NAME (frvbf,cckn) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15263 {
15264 #define FLD(f) abuf->fields.sfmt_cckeq.f
15265   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15266   int UNUSED written = 0;
15267   IADDR UNUSED pc = abuf->addr;
15268   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15269
15270 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15271 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 8), 3))) {
15272   {
15273     UQI opval = 3;
15274     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15275     written |= (1 << 3);
15276     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15277   }
15278 } else {
15279   {
15280     UQI opval = 2;
15281     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15282     written |= (1 << 3);
15283     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15284   }
15285 }
15286 } else {
15287   {
15288     UQI opval = 0;
15289     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15290     written |= (1 << 3);
15291     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15292   }
15293 }
15294
15295   abuf->written = written;
15296   return vpc;
15297 #undef FLD
15298 }
15299
15300 /* cckp: cckp$pack $ICCi_3,$CRj_int,$CCi,$cond */
15301
15302 static SEM_PC
15303 SEM_FN_NAME (frvbf,cckp) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15304 {
15305 #define FLD(f) abuf->fields.sfmt_cckeq.f
15306   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15307   int UNUSED written = 0;
15308   IADDR UNUSED pc = abuf->addr;
15309   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15310
15311 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15312 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 8), 3)))) {
15313   {
15314     UQI opval = 3;
15315     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15316     written |= (1 << 3);
15317     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15318   }
15319 } else {
15320   {
15321     UQI opval = 2;
15322     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15323     written |= (1 << 3);
15324     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15325   }
15326 }
15327 } else {
15328   {
15329     UQI opval = 0;
15330     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15331     written |= (1 << 3);
15332     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15333   }
15334 }
15335
15336   abuf->written = written;
15337   return vpc;
15338 #undef FLD
15339 }
15340
15341 /* cckv: cckv$pack $ICCi_3,$CRj_int,$CCi,$cond */
15342
15343 static SEM_PC
15344 SEM_FN_NAME (frvbf,cckv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15345 {
15346 #define FLD(f) abuf->fields.sfmt_cckeq.f
15347   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15348   int UNUSED written = 0;
15349   IADDR UNUSED pc = abuf->addr;
15350   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15351
15352 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15353 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 2), 1))) {
15354   {
15355     UQI opval = 3;
15356     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15357     written |= (1 << 3);
15358     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15359   }
15360 } else {
15361   {
15362     UQI opval = 2;
15363     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15364     written |= (1 << 3);
15365     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15366   }
15367 }
15368 } else {
15369   {
15370     UQI opval = 0;
15371     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15372     written |= (1 << 3);
15373     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15374   }
15375 }
15376
15377   abuf->written = written;
15378   return vpc;
15379 #undef FLD
15380 }
15381
15382 /* ccknv: ccknv$pack $ICCi_3,$CRj_int,$CCi,$cond */
15383
15384 static SEM_PC
15385 SEM_FN_NAME (frvbf,ccknv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15386 {
15387 #define FLD(f) abuf->fields.sfmt_cckeq.f
15388   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15389   int UNUSED written = 0;
15390   IADDR UNUSED pc = abuf->addr;
15391   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15392
15393 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15394 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 2), 1)))) {
15395   {
15396     UQI opval = 3;
15397     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15398     written |= (1 << 3);
15399     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15400   }
15401 } else {
15402   {
15403     UQI opval = 2;
15404     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15405     written |= (1 << 3);
15406     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15407   }
15408 }
15409 } else {
15410   {
15411     UQI opval = 0;
15412     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15413     written |= (1 << 3);
15414     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15415   }
15416 }
15417
15418   abuf->written = written;
15419   return vpc;
15420 #undef FLD
15421 }
15422
15423 /* cfckra: cfckra$pack $CRj_float,$CCi,$cond */
15424
15425 static SEM_PC
15426 SEM_FN_NAME (frvbf,cfckra) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15427 {
15428 #define FLD(f) abuf->fields.sfmt_cfckne.f
15429   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15430   int UNUSED written = 0;
15431   IADDR UNUSED pc = abuf->addr;
15432   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15433
15434 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15435   {
15436     UQI opval = 3;
15437     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15438     written |= (1 << 2);
15439     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15440   }
15441 } else {
15442   {
15443     UQI opval = 0;
15444     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15445     written |= (1 << 2);
15446     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15447   }
15448 }
15449
15450   abuf->written = written;
15451   return vpc;
15452 #undef FLD
15453 }
15454
15455 /* cfckno: cfckno$pack $CRj_float,$CCi,$cond */
15456
15457 static SEM_PC
15458 SEM_FN_NAME (frvbf,cfckno) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15459 {
15460 #define FLD(f) abuf->fields.sfmt_cfckne.f
15461   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15462   int UNUSED written = 0;
15463   IADDR UNUSED pc = abuf->addr;
15464   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15465
15466 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15467   {
15468     UQI opval = 2;
15469     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15470     written |= (1 << 2);
15471     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15472   }
15473 } else {
15474   {
15475     UQI opval = 0;
15476     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15477     written |= (1 << 2);
15478     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15479   }
15480 }
15481
15482   abuf->written = written;
15483   return vpc;
15484 #undef FLD
15485 }
15486
15487 /* cfckne: cfckne$pack $FCCi_3,$CRj_float,$CCi,$cond */
15488
15489 static SEM_PC
15490 SEM_FN_NAME (frvbf,cfckne) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15491 {
15492 #define FLD(f) abuf->fields.sfmt_cfckne.f
15493   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15494   int UNUSED written = 0;
15495   IADDR UNUSED pc = abuf->addr;
15496   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15497
15498 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15499 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 4), 2)), ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 1))))) {
15500   {
15501     UQI opval = 3;
15502     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15503     written |= (1 << 3);
15504     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15505   }
15506 } else {
15507   {
15508     UQI opval = 2;
15509     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15510     written |= (1 << 3);
15511     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15512   }
15513 }
15514 } else {
15515   {
15516     UQI opval = 0;
15517     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15518     written |= (1 << 3);
15519     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15520   }
15521 }
15522
15523   abuf->written = written;
15524   return vpc;
15525 #undef FLD
15526 }
15527
15528 /* cfckeq: cfckeq$pack $FCCi_3,$CRj_float,$CCi,$cond */
15529
15530 static SEM_PC
15531 SEM_FN_NAME (frvbf,cfckeq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15532 {
15533 #define FLD(f) abuf->fields.sfmt_cfckne.f
15534   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15535   int UNUSED written = 0;
15536   IADDR UNUSED pc = abuf->addr;
15537   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15538
15539 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15540 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 8), 3))) {
15541   {
15542     UQI opval = 3;
15543     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15544     written |= (1 << 3);
15545     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15546   }
15547 } else {
15548   {
15549     UQI opval = 2;
15550     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15551     written |= (1 << 3);
15552     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15553   }
15554 }
15555 } else {
15556   {
15557     UQI opval = 0;
15558     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15559     written |= (1 << 3);
15560     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15561   }
15562 }
15563
15564   abuf->written = written;
15565   return vpc;
15566 #undef FLD
15567 }
15568
15569 /* cfcklg: cfcklg$pack $FCCi_3,$CRj_float,$CCi,$cond */
15570
15571 static SEM_PC
15572 SEM_FN_NAME (frvbf,cfcklg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15573 {
15574 #define FLD(f) abuf->fields.sfmt_cfckne.f
15575   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15576   int UNUSED written = 0;
15577   IADDR UNUSED pc = abuf->addr;
15578   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15579
15580 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15581 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 4), 2)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 2), 1)))) {
15582   {
15583     UQI opval = 3;
15584     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15585     written |= (1 << 3);
15586     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15587   }
15588 } else {
15589   {
15590     UQI opval = 2;
15591     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15592     written |= (1 << 3);
15593     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15594   }
15595 }
15596 } else {
15597   {
15598     UQI opval = 0;
15599     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15600     written |= (1 << 3);
15601     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15602   }
15603 }
15604
15605   abuf->written = written;
15606   return vpc;
15607 #undef FLD
15608 }
15609
15610 /* cfckue: cfckue$pack $FCCi_3,$CRj_float,$CCi,$cond */
15611
15612 static SEM_PC
15613 SEM_FN_NAME (frvbf,cfckue) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15614 {
15615 #define FLD(f) abuf->fields.sfmt_cfckne.f
15616   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15617   int UNUSED written = 0;
15618   IADDR UNUSED pc = abuf->addr;
15619   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15620
15621 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15622 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 8), 3)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 1)))) {
15623   {
15624     UQI opval = 3;
15625     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15626     written |= (1 << 3);
15627     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15628   }
15629 } else {
15630   {
15631     UQI opval = 2;
15632     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15633     written |= (1 << 3);
15634     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15635   }
15636 }
15637 } else {
15638   {
15639     UQI opval = 0;
15640     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15641     written |= (1 << 3);
15642     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15643   }
15644 }
15645
15646   abuf->written = written;
15647   return vpc;
15648 #undef FLD
15649 }
15650
15651 /* cfckul: cfckul$pack $FCCi_3,$CRj_float,$CCi,$cond */
15652
15653 static SEM_PC
15654 SEM_FN_NAME (frvbf,cfckul) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15655 {
15656 #define FLD(f) abuf->fields.sfmt_cfckne.f
15657   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15658   int UNUSED written = 0;
15659   IADDR UNUSED pc = abuf->addr;
15660   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15661
15662 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15663 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 4), 2)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 1)))) {
15664   {
15665     UQI opval = 3;
15666     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15667     written |= (1 << 3);
15668     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15669   }
15670 } else {
15671   {
15672     UQI opval = 2;
15673     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15674     written |= (1 << 3);
15675     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15676   }
15677 }
15678 } else {
15679   {
15680     UQI opval = 0;
15681     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15682     written |= (1 << 3);
15683     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15684   }
15685 }
15686
15687   abuf->written = written;
15688   return vpc;
15689 #undef FLD
15690 }
15691
15692 /* cfckge: cfckge$pack $FCCi_3,$CRj_float,$CCi,$cond */
15693
15694 static SEM_PC
15695 SEM_FN_NAME (frvbf,cfckge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15696 {
15697 #define FLD(f) abuf->fields.sfmt_cfckne.f
15698   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15699   int UNUSED written = 0;
15700   IADDR UNUSED pc = abuf->addr;
15701   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15702
15703 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15704 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 2), 1)))) {
15705   {
15706     UQI opval = 3;
15707     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15708     written |= (1 << 3);
15709     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15710   }
15711 } else {
15712   {
15713     UQI opval = 2;
15714     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15715     written |= (1 << 3);
15716     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15717   }
15718 }
15719 } else {
15720   {
15721     UQI opval = 0;
15722     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15723     written |= (1 << 3);
15724     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15725   }
15726 }
15727
15728   abuf->written = written;
15729   return vpc;
15730 #undef FLD
15731 }
15732
15733 /* cfcklt: cfcklt$pack $FCCi_3,$CRj_float,$CCi,$cond */
15734
15735 static SEM_PC
15736 SEM_FN_NAME (frvbf,cfcklt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15737 {
15738 #define FLD(f) abuf->fields.sfmt_cfckne.f
15739   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15740   int UNUSED written = 0;
15741   IADDR UNUSED pc = abuf->addr;
15742   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15743
15744 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15745 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 4), 2))) {
15746   {
15747     UQI opval = 3;
15748     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15749     written |= (1 << 3);
15750     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15751   }
15752 } else {
15753   {
15754     UQI opval = 2;
15755     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15756     written |= (1 << 3);
15757     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15758   }
15759 }
15760 } else {
15761   {
15762     UQI opval = 0;
15763     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15764     written |= (1 << 3);
15765     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15766   }
15767 }
15768
15769   abuf->written = written;
15770   return vpc;
15771 #undef FLD
15772 }
15773
15774 /* cfckuge: cfckuge$pack $FCCi_3,$CRj_float,$CCi,$cond */
15775
15776 static SEM_PC
15777 SEM_FN_NAME (frvbf,cfckuge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15778 {
15779 #define FLD(f) abuf->fields.sfmt_cfckne.f
15780   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15781   int UNUSED written = 0;
15782   IADDR UNUSED pc = abuf->addr;
15783   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15784
15785 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15786 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 8), 3)), ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 1))))) {
15787   {
15788     UQI opval = 3;
15789     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15790     written |= (1 << 3);
15791     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15792   }
15793 } else {
15794   {
15795     UQI opval = 2;
15796     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15797     written |= (1 << 3);
15798     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15799   }
15800 }
15801 } else {
15802   {
15803     UQI opval = 0;
15804     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15805     written |= (1 << 3);
15806     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15807   }
15808 }
15809
15810   abuf->written = written;
15811   return vpc;
15812 #undef FLD
15813 }
15814
15815 /* cfckug: cfckug$pack $FCCi_3,$CRj_float,$CCi,$cond */
15816
15817 static SEM_PC
15818 SEM_FN_NAME (frvbf,cfckug) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15819 {
15820 #define FLD(f) abuf->fields.sfmt_cfckne.f
15821   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15822   int UNUSED written = 0;
15823   IADDR UNUSED pc = abuf->addr;
15824   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15825
15826 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15827 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 1)))) {
15828   {
15829     UQI opval = 3;
15830     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15831     written |= (1 << 3);
15832     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15833   }
15834 } else {
15835   {
15836     UQI opval = 2;
15837     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15838     written |= (1 << 3);
15839     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15840   }
15841 }
15842 } else {
15843   {
15844     UQI opval = 0;
15845     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15846     written |= (1 << 3);
15847     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15848   }
15849 }
15850
15851   abuf->written = written;
15852   return vpc;
15853 #undef FLD
15854 }
15855
15856 /* cfckle: cfckle$pack $FCCi_3,$CRj_float,$CCi,$cond */
15857
15858 static SEM_PC
15859 SEM_FN_NAME (frvbf,cfckle) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15860 {
15861 #define FLD(f) abuf->fields.sfmt_cfckne.f
15862   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15863   int UNUSED written = 0;
15864   IADDR UNUSED pc = abuf->addr;
15865   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15866
15867 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15868 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 4), 2)))) {
15869   {
15870     UQI opval = 3;
15871     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15872     written |= (1 << 3);
15873     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15874   }
15875 } else {
15876   {
15877     UQI opval = 2;
15878     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15879     written |= (1 << 3);
15880     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15881   }
15882 }
15883 } else {
15884   {
15885     UQI opval = 0;
15886     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15887     written |= (1 << 3);
15888     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15889   }
15890 }
15891
15892   abuf->written = written;
15893   return vpc;
15894 #undef FLD
15895 }
15896
15897 /* cfckgt: cfckgt$pack $FCCi_3,$CRj_float,$CCi,$cond */
15898
15899 static SEM_PC
15900 SEM_FN_NAME (frvbf,cfckgt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15901 {
15902 #define FLD(f) abuf->fields.sfmt_cfckne.f
15903   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15904   int UNUSED written = 0;
15905   IADDR UNUSED pc = abuf->addr;
15906   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15907
15908 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15909 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 2), 1))) {
15910   {
15911     UQI opval = 3;
15912     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15913     written |= (1 << 3);
15914     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15915   }
15916 } else {
15917   {
15918     UQI opval = 2;
15919     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15920     written |= (1 << 3);
15921     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15922   }
15923 }
15924 } else {
15925   {
15926     UQI opval = 0;
15927     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15928     written |= (1 << 3);
15929     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15930   }
15931 }
15932
15933   abuf->written = written;
15934   return vpc;
15935 #undef FLD
15936 }
15937
15938 /* cfckule: cfckule$pack $FCCi_3,$CRj_float,$CCi,$cond */
15939
15940 static SEM_PC
15941 SEM_FN_NAME (frvbf,cfckule) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15942 {
15943 #define FLD(f) abuf->fields.sfmt_cfckne.f
15944   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15945   int UNUSED written = 0;
15946   IADDR UNUSED pc = abuf->addr;
15947   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15948
15949 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15950 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 8), 3)), ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 4), 2)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 1))))) {
15951   {
15952     UQI opval = 3;
15953     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15954     written |= (1 << 3);
15955     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15956   }
15957 } else {
15958   {
15959     UQI opval = 2;
15960     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15961     written |= (1 << 3);
15962     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15963   }
15964 }
15965 } else {
15966   {
15967     UQI opval = 0;
15968     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15969     written |= (1 << 3);
15970     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15971   }
15972 }
15973
15974   abuf->written = written;
15975   return vpc;
15976 #undef FLD
15977 }
15978
15979 /* cfcku: cfcku$pack $FCCi_3,$CRj_float,$CCi,$cond */
15980
15981 static SEM_PC
15982 SEM_FN_NAME (frvbf,cfcku) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15983 {
15984 #define FLD(f) abuf->fields.sfmt_cfckne.f
15985   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15986   int UNUSED written = 0;
15987   IADDR UNUSED pc = abuf->addr;
15988   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15989
15990 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15991 if (TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 1))) {
15992   {
15993     UQI opval = 3;
15994     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15995     written |= (1 << 3);
15996     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15997   }
15998 } else {
15999   {
16000     UQI opval = 2;
16001     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
16002     written |= (1 << 3);
16003     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
16004   }
16005 }
16006 } else {
16007   {
16008     UQI opval = 0;
16009     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
16010     written |= (1 << 3);
16011     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
16012   }
16013 }
16014
16015   abuf->written = written;
16016   return vpc;
16017 #undef FLD
16018 }
16019
16020 /* cfcko: cfcko$pack $FCCi_3,$CRj_float,$CCi,$cond */
16021
16022 static SEM_PC
16023 SEM_FN_NAME (frvbf,cfcko) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16024 {
16025 #define FLD(f) abuf->fields.sfmt_cfckne.f
16026   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16027   int UNUSED written = 0;
16028   IADDR UNUSED pc = abuf->addr;
16029   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16030
16031 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
16032 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 8), 3)), ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 4), 2)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 2), 1))))) {
16033   {
16034     UQI opval = 3;
16035     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
16036     written |= (1 << 3);
16037     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
16038   }
16039 } else {
16040   {
16041     UQI opval = 2;
16042     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
16043     written |= (1 << 3);
16044     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
16045   }
16046 }
16047 } else {
16048   {
16049     UQI opval = 0;
16050     sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
16051     written |= (1 << 3);
16052     TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
16053   }
16054 }
16055
16056   abuf->written = written;
16057   return vpc;
16058 #undef FLD
16059 }
16060
16061 /* cjmpl: cjmpl$pack @($GRi,$GRj),$CCi,$cond */
16062
16063 static SEM_PC
16064 SEM_FN_NAME (frvbf,cjmpl) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16065 {
16066 #define FLD(f) abuf->fields.sfmt_cjmpl.f
16067   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16068   int UNUSED written = 0;
16069   IADDR UNUSED pc = abuf->addr;
16070   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16071
16072 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
16073 {
16074 if (EQSI (FLD (f_LI), 1)) {
16075 frvbf_set_write_next_vliw_addr_to_LR (current_cpu, 1);
16076 }
16077   {
16078     USI opval = ANDSI (ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), 0xfffffffc);
16079     sim_queue_pc_write (current_cpu, opval);
16080     written |= (1 << 6);
16081     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
16082   }
16083 frvbf_model_branch (current_cpu, pc, 2);
16084 }
16085 }
16086
16087   abuf->written = written;
16088   return vpc;
16089 #undef FLD
16090 }
16091
16092 /* ccalll: ccalll$pack @($GRi,$GRj),$CCi,$cond */
16093
16094 static SEM_PC
16095 SEM_FN_NAME (frvbf,ccalll) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16096 {
16097 #define FLD(f) abuf->fields.sfmt_cjmpl.f
16098   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16099   int UNUSED written = 0;
16100   IADDR UNUSED pc = abuf->addr;
16101   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16102
16103 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
16104 {
16105 if (EQSI (FLD (f_LI), 1)) {
16106 frvbf_set_write_next_vliw_addr_to_LR (current_cpu, 1);
16107 }
16108   {
16109     USI opval = ANDSI (ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), 0xfffffffc);
16110     sim_queue_pc_write (current_cpu, opval);
16111     written |= (1 << 6);
16112     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
16113   }
16114 frvbf_model_branch (current_cpu, pc, 2);
16115 }
16116 }
16117
16118   abuf->written = written;
16119   return vpc;
16120 #undef FLD
16121 }
16122
16123 /* ici: ici$pack @($GRi,$GRj) */
16124
16125 static SEM_PC
16126 SEM_FN_NAME (frvbf,ici) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16127 {
16128 #define FLD(f) abuf->fields.sfmt_icpl.f
16129   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16130   int UNUSED written = 0;
16131   IADDR UNUSED pc = abuf->addr;
16132   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16133
16134 frvbf_insn_cache_invalidate (current_cpu, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), 0);
16135
16136   return vpc;
16137 #undef FLD
16138 }
16139
16140 /* dci: dci$pack @($GRi,$GRj) */
16141
16142 static SEM_PC
16143 SEM_FN_NAME (frvbf,dci) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16144 {
16145 #define FLD(f) abuf->fields.sfmt_icpl.f
16146   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16147   int UNUSED written = 0;
16148   IADDR UNUSED pc = abuf->addr;
16149   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16150
16151 frvbf_data_cache_invalidate (current_cpu, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), 0);
16152
16153   return vpc;
16154 #undef FLD
16155 }
16156
16157 /* icei: icei$pack @($GRi,$GRj),$ae */
16158
16159 static SEM_PC
16160 SEM_FN_NAME (frvbf,icei) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16161 {
16162 #define FLD(f) abuf->fields.sfmt_icei.f
16163   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16164   int UNUSED written = 0;
16165   IADDR UNUSED pc = abuf->addr;
16166   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16167
16168 if (EQSI (FLD (f_ae), 0)) {
16169 frvbf_insn_cache_invalidate (current_cpu, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), -1);
16170 } else {
16171 frvbf_insn_cache_invalidate (current_cpu, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), FLD (f_ae));
16172 }
16173
16174   return vpc;
16175 #undef FLD
16176 }
16177
16178 /* dcei: dcei$pack @($GRi,$GRj),$ae */
16179
16180 static SEM_PC
16181 SEM_FN_NAME (frvbf,dcei) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16182 {
16183 #define FLD(f) abuf->fields.sfmt_icei.f
16184   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16185   int UNUSED written = 0;
16186   IADDR UNUSED pc = abuf->addr;
16187   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16188
16189 if (EQSI (FLD (f_ae), 0)) {
16190 frvbf_data_cache_invalidate (current_cpu, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), -1);
16191 } else {
16192 frvbf_data_cache_invalidate (current_cpu, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), FLD (f_ae));
16193 }
16194
16195   return vpc;
16196 #undef FLD
16197 }
16198
16199 /* dcf: dcf$pack @($GRi,$GRj) */
16200
16201 static SEM_PC
16202 SEM_FN_NAME (frvbf,dcf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16203 {
16204 #define FLD(f) abuf->fields.sfmt_icpl.f
16205   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16206   int UNUSED written = 0;
16207   IADDR UNUSED pc = abuf->addr;
16208   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16209
16210 frvbf_data_cache_flush (current_cpu, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), 0);
16211
16212   return vpc;
16213 #undef FLD
16214 }
16215
16216 /* dcef: dcef$pack @($GRi,$GRj),$ae */
16217
16218 static SEM_PC
16219 SEM_FN_NAME (frvbf,dcef) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16220 {
16221 #define FLD(f) abuf->fields.sfmt_icei.f
16222   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16223   int UNUSED written = 0;
16224   IADDR UNUSED pc = abuf->addr;
16225   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16226
16227 if (EQSI (FLD (f_ae), 0)) {
16228 frvbf_data_cache_flush (current_cpu, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), -1);
16229 } else {
16230 frvbf_data_cache_flush (current_cpu, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), FLD (f_ae));
16231 }
16232
16233   return vpc;
16234 #undef FLD
16235 }
16236
16237 /* witlb: witlb$pack $GRk,@($GRi,$GRj) */
16238
16239 static SEM_PC
16240 SEM_FN_NAME (frvbf,witlb) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16241 {
16242 #define FLD(f) abuf->fields.fmt_empty.f
16243   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16244   int UNUSED written = 0;
16245   IADDR UNUSED pc = abuf->addr;
16246   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16247
16248 ((void) 0); /*nop*/
16249
16250   return vpc;
16251 #undef FLD
16252 }
16253
16254 /* wdtlb: wdtlb$pack $GRk,@($GRi,$GRj) */
16255
16256 static SEM_PC
16257 SEM_FN_NAME (frvbf,wdtlb) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16258 {
16259 #define FLD(f) abuf->fields.fmt_empty.f
16260   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16261   int UNUSED written = 0;
16262   IADDR UNUSED pc = abuf->addr;
16263   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16264
16265 ((void) 0); /*nop*/
16266
16267   return vpc;
16268 #undef FLD
16269 }
16270
16271 /* itlbi: itlbi$pack @($GRi,$GRj) */
16272
16273 static SEM_PC
16274 SEM_FN_NAME (frvbf,itlbi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16275 {
16276 #define FLD(f) abuf->fields.fmt_empty.f
16277   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16278   int UNUSED written = 0;
16279   IADDR UNUSED pc = abuf->addr;
16280   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16281
16282 ((void) 0); /*nop*/
16283
16284   return vpc;
16285 #undef FLD
16286 }
16287
16288 /* dtlbi: dtlbi$pack @($GRi,$GRj) */
16289
16290 static SEM_PC
16291 SEM_FN_NAME (frvbf,dtlbi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16292 {
16293 #define FLD(f) abuf->fields.fmt_empty.f
16294   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16295   int UNUSED written = 0;
16296   IADDR UNUSED pc = abuf->addr;
16297   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16298
16299 ((void) 0); /*nop*/
16300
16301   return vpc;
16302 #undef FLD
16303 }
16304
16305 /* icpl: icpl$pack $GRi,$GRj,$lock */
16306
16307 static SEM_PC
16308 SEM_FN_NAME (frvbf,icpl) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16309 {
16310 #define FLD(f) abuf->fields.sfmt_icpl.f
16311   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16312   int UNUSED written = 0;
16313   IADDR UNUSED pc = abuf->addr;
16314   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16315
16316 frvbf_insn_cache_preload (current_cpu, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), FLD (f_lock));
16317
16318   return vpc;
16319 #undef FLD
16320 }
16321
16322 /* dcpl: dcpl$pack $GRi,$GRj,$lock */
16323
16324 static SEM_PC
16325 SEM_FN_NAME (frvbf,dcpl) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16326 {
16327 #define FLD(f) abuf->fields.sfmt_icpl.f
16328   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16329   int UNUSED written = 0;
16330   IADDR UNUSED pc = abuf->addr;
16331   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16332
16333 frvbf_data_cache_preload (current_cpu, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), FLD (f_lock));
16334
16335   return vpc;
16336 #undef FLD
16337 }
16338
16339 /* icul: icul$pack $GRi */
16340
16341 static SEM_PC
16342 SEM_FN_NAME (frvbf,icul) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16343 {
16344 #define FLD(f) abuf->fields.sfmt_jmpil.f
16345   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16346   int UNUSED written = 0;
16347   IADDR UNUSED pc = abuf->addr;
16348   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16349
16350 frvbf_insn_cache_unlock (current_cpu, GET_H_GR (FLD (f_GRi)));
16351
16352   return vpc;
16353 #undef FLD
16354 }
16355
16356 /* dcul: dcul$pack $GRi */
16357
16358 static SEM_PC
16359 SEM_FN_NAME (frvbf,dcul) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16360 {
16361 #define FLD(f) abuf->fields.sfmt_jmpil.f
16362   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16363   int UNUSED written = 0;
16364   IADDR UNUSED pc = abuf->addr;
16365   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16366
16367 frvbf_data_cache_unlock (current_cpu, GET_H_GR (FLD (f_GRi)));
16368
16369   return vpc;
16370 #undef FLD
16371 }
16372
16373 /* bar: bar$pack */
16374
16375 static SEM_PC
16376 SEM_FN_NAME (frvbf,bar) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16377 {
16378 #define FLD(f) abuf->fields.fmt_empty.f
16379   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16380   int UNUSED written = 0;
16381   IADDR UNUSED pc = abuf->addr;
16382   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16383
16384 ((void) 0); /*nop*/
16385
16386   return vpc;
16387 #undef FLD
16388 }
16389
16390 /* membar: membar$pack */
16391
16392 static SEM_PC
16393 SEM_FN_NAME (frvbf,membar) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16394 {
16395 #define FLD(f) abuf->fields.fmt_empty.f
16396   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16397   int UNUSED written = 0;
16398   IADDR UNUSED pc = abuf->addr;
16399   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16400
16401 ((void) 0); /*nop*/
16402
16403   return vpc;
16404 #undef FLD
16405 }
16406
16407 /* lrai: lrai$pack $GRi,$GRk,$LRAE,$LRAD,$LRAS */
16408
16409 static SEM_PC
16410 SEM_FN_NAME (frvbf,lrai) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16411 {
16412 #define FLD(f) abuf->fields.fmt_empty.f
16413   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16414   int UNUSED written = 0;
16415   IADDR UNUSED pc = abuf->addr;
16416   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16417
16418 ((void) 0); /*nop*/
16419
16420   return vpc;
16421 #undef FLD
16422 }
16423
16424 /* lrad: lrad$pack $GRi,$GRk,$LRAE,$LRAD,$LRAS */
16425
16426 static SEM_PC
16427 SEM_FN_NAME (frvbf,lrad) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16428 {
16429 #define FLD(f) abuf->fields.fmt_empty.f
16430   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16431   int UNUSED written = 0;
16432   IADDR UNUSED pc = abuf->addr;
16433   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16434
16435 ((void) 0); /*nop*/
16436
16437   return vpc;
16438 #undef FLD
16439 }
16440
16441 /* tlbpr: tlbpr$pack $GRi,$GRj,$TLBPRopx,$TLBPRL */
16442
16443 static SEM_PC
16444 SEM_FN_NAME (frvbf,tlbpr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16445 {
16446 #define FLD(f) abuf->fields.fmt_empty.f
16447   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16448   int UNUSED written = 0;
16449   IADDR UNUSED pc = abuf->addr;
16450   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16451
16452 ((void) 0); /*nop*/
16453
16454   return vpc;
16455 #undef FLD
16456 }
16457
16458 /* cop1: cop1$pack $s6_1,$CPRi,$CPRj,$CPRk */
16459
16460 static SEM_PC
16461 SEM_FN_NAME (frvbf,cop1) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16462 {
16463 #define FLD(f) abuf->fields.fmt_empty.f
16464   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16465   int UNUSED written = 0;
16466   IADDR UNUSED pc = abuf->addr;
16467   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16468
16469 ((void) 0); /*nop*/
16470
16471   return vpc;
16472 #undef FLD
16473 }
16474
16475 /* cop2: cop2$pack $s6_1,$CPRi,$CPRj,$CPRk */
16476
16477 static SEM_PC
16478 SEM_FN_NAME (frvbf,cop2) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16479 {
16480 #define FLD(f) abuf->fields.fmt_empty.f
16481   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16482   int UNUSED written = 0;
16483   IADDR UNUSED pc = abuf->addr;
16484   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16485
16486 ((void) 0); /*nop*/
16487
16488   return vpc;
16489 #undef FLD
16490 }
16491
16492 /* clrgr: clrgr$pack $GRk */
16493
16494 static SEM_PC
16495 SEM_FN_NAME (frvbf,clrgr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16496 {
16497 #define FLD(f) abuf->fields.sfmt_swapi.f
16498   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16499   int UNUSED written = 0;
16500   IADDR UNUSED pc = abuf->addr;
16501   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16502
16503 {
16504 frv_ref_SI (GET_H_GR (FLD (f_GRk)));
16505 frvbf_clear_ne_flags (current_cpu, FLD (f_GRk), 0);
16506 }
16507
16508   return vpc;
16509 #undef FLD
16510 }
16511
16512 /* clrfr: clrfr$pack $FRk */
16513
16514 static SEM_PC
16515 SEM_FN_NAME (frvbf,clrfr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16516 {
16517 #define FLD(f) abuf->fields.sfmt_cfmadds.f
16518   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16519   int UNUSED written = 0;
16520   IADDR UNUSED pc = abuf->addr;
16521   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16522
16523 {
16524 frv_ref_SI (GET_H_FR (FLD (f_FRk)));
16525 frvbf_clear_ne_flags (current_cpu, FLD (f_FRk), 1);
16526 }
16527
16528   return vpc;
16529 #undef FLD
16530 }
16531
16532 /* clrga: clrga$pack */
16533
16534 static SEM_PC
16535 SEM_FN_NAME (frvbf,clrga) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16536 {
16537 #define FLD(f) abuf->fields.fmt_empty.f
16538   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16539   int UNUSED written = 0;
16540   IADDR UNUSED pc = abuf->addr;
16541   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16542
16543 frvbf_clear_ne_flags (current_cpu, -1, 0);
16544
16545   return vpc;
16546 #undef FLD
16547 }
16548
16549 /* clrfa: clrfa$pack */
16550
16551 static SEM_PC
16552 SEM_FN_NAME (frvbf,clrfa) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16553 {
16554 #define FLD(f) abuf->fields.fmt_empty.f
16555   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16556   int UNUSED written = 0;
16557   IADDR UNUSED pc = abuf->addr;
16558   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16559
16560 frvbf_clear_ne_flags (current_cpu, -1, 1);
16561
16562   return vpc;
16563 #undef FLD
16564 }
16565
16566 /* commitgr: commitgr$pack $GRk */
16567
16568 static SEM_PC
16569 SEM_FN_NAME (frvbf,commitgr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16570 {
16571 #define FLD(f) abuf->fields.sfmt_setlos.f
16572   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16573   int UNUSED written = 0;
16574   IADDR UNUSED pc = abuf->addr;
16575   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16576
16577 frvbf_commit (current_cpu, FLD (f_GRk), 0);
16578
16579   return vpc;
16580 #undef FLD
16581 }
16582
16583 /* commitfr: commitfr$pack $FRk */
16584
16585 static SEM_PC
16586 SEM_FN_NAME (frvbf,commitfr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16587 {
16588 #define FLD(f) abuf->fields.sfmt_mhsethis.f
16589   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16590   int UNUSED written = 0;
16591   IADDR UNUSED pc = abuf->addr;
16592   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16593
16594 frvbf_commit (current_cpu, FLD (f_FRk), 1);
16595
16596   return vpc;
16597 #undef FLD
16598 }
16599
16600 /* commitga: commitga$pack */
16601
16602 static SEM_PC
16603 SEM_FN_NAME (frvbf,commitga) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16604 {
16605 #define FLD(f) abuf->fields.fmt_empty.f
16606   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16607   int UNUSED written = 0;
16608   IADDR UNUSED pc = abuf->addr;
16609   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16610
16611 frvbf_commit (current_cpu, -1, 0);
16612
16613   return vpc;
16614 #undef FLD
16615 }
16616
16617 /* commitfa: commitfa$pack */
16618
16619 static SEM_PC
16620 SEM_FN_NAME (frvbf,commitfa) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16621 {
16622 #define FLD(f) abuf->fields.fmt_empty.f
16623   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16624   int UNUSED written = 0;
16625   IADDR UNUSED pc = abuf->addr;
16626   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16627
16628 frvbf_commit (current_cpu, -1, 1);
16629
16630   return vpc;
16631 #undef FLD
16632 }
16633
16634 /* fitos: fitos$pack $FRintj,$FRk */
16635
16636 static SEM_PC
16637 SEM_FN_NAME (frvbf,fitos) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16638 {
16639 #define FLD(f) abuf->fields.sfmt_fditos.f
16640   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16641   int UNUSED written = 0;
16642   IADDR UNUSED pc = abuf->addr;
16643   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16644
16645   {
16646     SF opval = CGEN_CPU_FPU (current_cpu)->ops->floatsisf (CGEN_CPU_FPU (current_cpu), GET_H_FR_INT (FLD (f_FRj)));
16647     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
16648     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
16649   }
16650
16651   return vpc;
16652 #undef FLD
16653 }
16654
16655 /* fstoi: fstoi$pack $FRj,$FRintk */
16656
16657 static SEM_PC
16658 SEM_FN_NAME (frvbf,fstoi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16659 {
16660 #define FLD(f) abuf->fields.sfmt_fdstoi.f
16661   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16662   int UNUSED written = 0;
16663   IADDR UNUSED pc = abuf->addr;
16664   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16665
16666   {
16667     SI opval = CGEN_CPU_FPU (current_cpu)->ops->fixsfsi (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
16668     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
16669     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
16670   }
16671
16672   return vpc;
16673 #undef FLD
16674 }
16675
16676 /* fitod: fitod$pack $FRintj,$FRdoublek */
16677
16678 static SEM_PC
16679 SEM_FN_NAME (frvbf,fitod) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16680 {
16681 #define FLD(f) abuf->fields.sfmt_fitod.f
16682   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16683   int UNUSED written = 0;
16684   IADDR UNUSED pc = abuf->addr;
16685   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16686
16687   {
16688     DF opval = CGEN_CPU_FPU (current_cpu)->ops->floatsidf (CGEN_CPU_FPU (current_cpu), GET_H_FR_INT (FLD (f_FRj)));
16689     sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
16690     TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
16691   }
16692
16693   return vpc;
16694 #undef FLD
16695 }
16696
16697 /* fdtoi: fdtoi$pack $FRdoublej,$FRintk */
16698
16699 static SEM_PC
16700 SEM_FN_NAME (frvbf,fdtoi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16701 {
16702 #define FLD(f) abuf->fields.sfmt_fdtoi.f
16703   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16704   int UNUSED written = 0;
16705   IADDR UNUSED pc = abuf->addr;
16706   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16707
16708   {
16709     SI opval = CGEN_CPU_FPU (current_cpu)->ops->fixdfsi (CGEN_CPU_FPU (current_cpu), GET_H_FR_DOUBLE (FLD (f_FRj)));
16710     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
16711     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
16712   }
16713
16714   return vpc;
16715 #undef FLD
16716 }
16717
16718 /* fditos: fditos$pack $FRintj,$FRk */
16719
16720 static SEM_PC
16721 SEM_FN_NAME (frvbf,fditos) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16722 {
16723 #define FLD(f) abuf->fields.sfmt_fditos.f
16724   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16725   int UNUSED written = 0;
16726   IADDR UNUSED pc = abuf->addr;
16727   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16728
16729 {
16730   {
16731     SF opval = CGEN_CPU_FPU (current_cpu)->ops->floatsisf (CGEN_CPU_FPU (current_cpu), GET_H_FR_INT (FLD (f_FRj)));
16732     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
16733     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
16734   }
16735   {
16736     SF opval = CGEN_CPU_FPU (current_cpu)->ops->floatsisf (CGEN_CPU_FPU (current_cpu), GET_H_FR_INT (ADDSI (FLD (f_FRj), 1)));
16737     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ADDSI (FLD (f_FRk), 1), opval);
16738     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
16739   }
16740 }
16741
16742   return vpc;
16743 #undef FLD
16744 }
16745
16746 /* fdstoi: fdstoi$pack $FRj,$FRintk */
16747
16748 static SEM_PC
16749 SEM_FN_NAME (frvbf,fdstoi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16750 {
16751 #define FLD(f) abuf->fields.sfmt_fdstoi.f
16752   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16753   int UNUSED written = 0;
16754   IADDR UNUSED pc = abuf->addr;
16755   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16756
16757 {
16758   {
16759     SI opval = CGEN_CPU_FPU (current_cpu)->ops->fixsfsi (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
16760     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
16761     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
16762   }
16763   {
16764     USI opval = CGEN_CPU_FPU (current_cpu)->ops->fixsfsi (CGEN_CPU_FPU (current_cpu), GET_H_FR (ADDSI (FLD (f_FRj), 1)));
16765     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ADDSI (FLD (f_FRk), 1), opval);
16766     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
16767   }
16768 }
16769
16770   return vpc;
16771 #undef FLD
16772 }
16773
16774 /* nfditos: nfditos$pack $FRintj,$FRk */
16775
16776 static SEM_PC
16777 SEM_FN_NAME (frvbf,nfditos) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16778 {
16779 #define FLD(f) abuf->fields.sfmt_fditos.f
16780   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16781   int UNUSED written = 0;
16782   IADDR UNUSED pc = abuf->addr;
16783   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16784
16785 {
16786 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
16787   {
16788     SF opval = CGEN_CPU_FPU (current_cpu)->ops->floatsisf (CGEN_CPU_FPU (current_cpu), GET_H_FR_INT (FLD (f_FRj)));
16789     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
16790     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
16791   }
16792 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
16793   {
16794     SF opval = CGEN_CPU_FPU (current_cpu)->ops->floatsisf (CGEN_CPU_FPU (current_cpu), GET_H_FR_INT (ADDSI (FLD (f_FRj), 1)));
16795     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ADDSI (FLD (f_FRk), 1), opval);
16796     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
16797   }
16798 }
16799
16800   return vpc;
16801 #undef FLD
16802 }
16803
16804 /* nfdstoi: nfdstoi$pack $FRj,$FRintk */
16805
16806 static SEM_PC
16807 SEM_FN_NAME (frvbf,nfdstoi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16808 {
16809 #define FLD(f) abuf->fields.sfmt_fdstoi.f
16810   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16811   int UNUSED written = 0;
16812   IADDR UNUSED pc = abuf->addr;
16813   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16814
16815 {
16816 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
16817   {
16818     SI opval = CGEN_CPU_FPU (current_cpu)->ops->fixsfsi (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
16819     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
16820     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
16821   }
16822 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
16823   {
16824     USI opval = CGEN_CPU_FPU (current_cpu)->ops->fixsfsi (CGEN_CPU_FPU (current_cpu), GET_H_FR (ADDSI (FLD (f_FRj), 1)));
16825     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ADDSI (FLD (f_FRk), 1), opval);
16826     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
16827   }
16828 }
16829
16830   return vpc;
16831 #undef FLD
16832 }
16833
16834 /* cfitos: cfitos$pack $FRintj,$FRk,$CCi,$cond */
16835
16836 static SEM_PC
16837 SEM_FN_NAME (frvbf,cfitos) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16838 {
16839 #define FLD(f) abuf->fields.sfmt_cfitos.f
16840   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16841   int UNUSED written = 0;
16842   IADDR UNUSED pc = abuf->addr;
16843   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16844
16845 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
16846   {
16847     SF opval = CGEN_CPU_FPU (current_cpu)->ops->floatsisf (CGEN_CPU_FPU (current_cpu), GET_H_FR_INT (FLD (f_FRj)));
16848     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
16849     written |= (1 << 3);
16850     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
16851   }
16852 }
16853
16854   abuf->written = written;
16855   return vpc;
16856 #undef FLD
16857 }
16858
16859 /* cfstoi: cfstoi$pack $FRj,$FRintk,$CCi,$cond */
16860
16861 static SEM_PC
16862 SEM_FN_NAME (frvbf,cfstoi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16863 {
16864 #define FLD(f) abuf->fields.sfmt_cfstoi.f
16865   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16866   int UNUSED written = 0;
16867   IADDR UNUSED pc = abuf->addr;
16868   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16869
16870 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
16871   {
16872     SI opval = CGEN_CPU_FPU (current_cpu)->ops->fixsfsi (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
16873     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
16874     written |= (1 << 3);
16875     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
16876   }
16877 }
16878
16879   abuf->written = written;
16880   return vpc;
16881 #undef FLD
16882 }
16883
16884 /* nfitos: nfitos$pack $FRintj,$FRk */
16885
16886 static SEM_PC
16887 SEM_FN_NAME (frvbf,nfitos) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16888 {
16889 #define FLD(f) abuf->fields.sfmt_fditos.f
16890   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16891   int UNUSED written = 0;
16892   IADDR UNUSED pc = abuf->addr;
16893   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16894
16895 {
16896 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
16897   {
16898     SF opval = CGEN_CPU_FPU (current_cpu)->ops->floatsisf (CGEN_CPU_FPU (current_cpu), GET_H_FR_INT (FLD (f_FRj)));
16899     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
16900     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
16901   }
16902 }
16903
16904   return vpc;
16905 #undef FLD
16906 }
16907
16908 /* nfstoi: nfstoi$pack $FRj,$FRintk */
16909
16910 static SEM_PC
16911 SEM_FN_NAME (frvbf,nfstoi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16912 {
16913 #define FLD(f) abuf->fields.sfmt_fdstoi.f
16914   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16915   int UNUSED written = 0;
16916   IADDR UNUSED pc = abuf->addr;
16917   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16918
16919 {
16920 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
16921   {
16922     SI opval = CGEN_CPU_FPU (current_cpu)->ops->fixsfsi (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
16923     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
16924     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
16925   }
16926 }
16927
16928   return vpc;
16929 #undef FLD
16930 }
16931
16932 /* fmovs: fmovs$pack $FRj,$FRk */
16933
16934 static SEM_PC
16935 SEM_FN_NAME (frvbf,fmovs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16936 {
16937 #define FLD(f) abuf->fields.sfmt_cfmadds.f
16938   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16939   int UNUSED written = 0;
16940   IADDR UNUSED pc = abuf->addr;
16941   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16942
16943   {
16944     SF opval = GET_H_FR (FLD (f_FRj));
16945     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
16946     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
16947   }
16948
16949   return vpc;
16950 #undef FLD
16951 }
16952
16953 /* fmovd: fmovd$pack $FRdoublej,$FRdoublek */
16954
16955 static SEM_PC
16956 SEM_FN_NAME (frvbf,fmovd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16957 {
16958 #define FLD(f) abuf->fields.sfmt_fmaddd.f
16959   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16960   int UNUSED written = 0;
16961   IADDR UNUSED pc = abuf->addr;
16962   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16963
16964   {
16965     DF opval = GET_H_FR_DOUBLE (FLD (f_FRj));
16966     sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
16967     TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
16968   }
16969
16970   return vpc;
16971 #undef FLD
16972 }
16973
16974 /* fdmovs: fdmovs$pack $FRj,$FRk */
16975
16976 static SEM_PC
16977 SEM_FN_NAME (frvbf,fdmovs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16978 {
16979 #define FLD(f) abuf->fields.sfmt_fdmadds.f
16980   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16981   int UNUSED written = 0;
16982   IADDR UNUSED pc = abuf->addr;
16983   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16984
16985 {
16986   {
16987     SF opval = GET_H_FR (FLD (f_FRj));
16988     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
16989     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
16990   }
16991   {
16992     SF opval = GET_H_FR (ADDSI (FLD (f_FRj), 1));
16993     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ADDSI (FLD (f_FRk), 1), opval);
16994     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
16995   }
16996 }
16997
16998   return vpc;
16999 #undef FLD
17000 }
17001
17002 /* cfmovs: cfmovs$pack $FRj,$FRk,$CCi,$cond */
17003
17004 static SEM_PC
17005 SEM_FN_NAME (frvbf,cfmovs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17006 {
17007 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17008   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17009   int UNUSED written = 0;
17010   IADDR UNUSED pc = abuf->addr;
17011   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17012
17013 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
17014   {
17015     SF opval = GET_H_FR (FLD (f_FRj));
17016     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17017     written |= (1 << 3);
17018     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17019   }
17020 }
17021
17022   abuf->written = written;
17023   return vpc;
17024 #undef FLD
17025 }
17026
17027 /* fnegs: fnegs$pack $FRj,$FRk */
17028
17029 static SEM_PC
17030 SEM_FN_NAME (frvbf,fnegs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17031 {
17032 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17033   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17034   int UNUSED written = 0;
17035   IADDR UNUSED pc = abuf->addr;
17036   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17037
17038   {
17039     SF opval = CGEN_CPU_FPU (current_cpu)->ops->negsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17040     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17041     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17042   }
17043
17044   return vpc;
17045 #undef FLD
17046 }
17047
17048 /* fnegd: fnegd$pack $FRdoublej,$FRdoublek */
17049
17050 static SEM_PC
17051 SEM_FN_NAME (frvbf,fnegd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17052 {
17053 #define FLD(f) abuf->fields.sfmt_fmaddd.f
17054   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17055   int UNUSED written = 0;
17056   IADDR UNUSED pc = abuf->addr;
17057   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17058
17059   {
17060     DF opval = CGEN_CPU_FPU (current_cpu)->ops->negdf (CGEN_CPU_FPU (current_cpu), GET_H_FR_DOUBLE (FLD (f_FRj)));
17061     sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
17062     TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
17063   }
17064
17065   return vpc;
17066 #undef FLD
17067 }
17068
17069 /* fdnegs: fdnegs$pack $FRj,$FRk */
17070
17071 static SEM_PC
17072 SEM_FN_NAME (frvbf,fdnegs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17073 {
17074 #define FLD(f) abuf->fields.sfmt_fdmadds.f
17075   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17076   int UNUSED written = 0;
17077   IADDR UNUSED pc = abuf->addr;
17078   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17079
17080 {
17081   {
17082     SF opval = CGEN_CPU_FPU (current_cpu)->ops->negsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17083     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17084     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17085   }
17086   {
17087     SF opval = CGEN_CPU_FPU (current_cpu)->ops->negsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (ADDSI (FLD (f_FRj), 1)));
17088     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ADDSI (FLD (f_FRk), 1), opval);
17089     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17090   }
17091 }
17092
17093   return vpc;
17094 #undef FLD
17095 }
17096
17097 /* cfnegs: cfnegs$pack $FRj,$FRk,$CCi,$cond */
17098
17099 static SEM_PC
17100 SEM_FN_NAME (frvbf,cfnegs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17101 {
17102 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17103   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17104   int UNUSED written = 0;
17105   IADDR UNUSED pc = abuf->addr;
17106   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17107
17108 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
17109   {
17110     SF opval = CGEN_CPU_FPU (current_cpu)->ops->negsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17111     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17112     written |= (1 << 3);
17113     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17114   }
17115 }
17116
17117   abuf->written = written;
17118   return vpc;
17119 #undef FLD
17120 }
17121
17122 /* fabss: fabss$pack $FRj,$FRk */
17123
17124 static SEM_PC
17125 SEM_FN_NAME (frvbf,fabss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17126 {
17127 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17128   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17129   int UNUSED written = 0;
17130   IADDR UNUSED pc = abuf->addr;
17131   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17132
17133   {
17134     SF opval = CGEN_CPU_FPU (current_cpu)->ops->abssf (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17135     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17136     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17137   }
17138
17139   return vpc;
17140 #undef FLD
17141 }
17142
17143 /* fabsd: fabsd$pack $FRdoublej,$FRdoublek */
17144
17145 static SEM_PC
17146 SEM_FN_NAME (frvbf,fabsd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17147 {
17148 #define FLD(f) abuf->fields.sfmt_fmaddd.f
17149   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17150   int UNUSED written = 0;
17151   IADDR UNUSED pc = abuf->addr;
17152   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17153
17154   {
17155     DF opval = CGEN_CPU_FPU (current_cpu)->ops->absdf (CGEN_CPU_FPU (current_cpu), GET_H_FR_DOUBLE (FLD (f_FRj)));
17156     sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
17157     TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
17158   }
17159
17160   return vpc;
17161 #undef FLD
17162 }
17163
17164 /* fdabss: fdabss$pack $FRj,$FRk */
17165
17166 static SEM_PC
17167 SEM_FN_NAME (frvbf,fdabss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17168 {
17169 #define FLD(f) abuf->fields.sfmt_fdmadds.f
17170   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17171   int UNUSED written = 0;
17172   IADDR UNUSED pc = abuf->addr;
17173   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17174
17175 {
17176   {
17177     SF opval = CGEN_CPU_FPU (current_cpu)->ops->abssf (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17178     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17179     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17180   }
17181   {
17182     SF opval = CGEN_CPU_FPU (current_cpu)->ops->abssf (CGEN_CPU_FPU (current_cpu), GET_H_FR (ADDSI (FLD (f_FRj), 1)));
17183     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ADDSI (FLD (f_FRk), 1), opval);
17184     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17185   }
17186 }
17187
17188   return vpc;
17189 #undef FLD
17190 }
17191
17192 /* cfabss: cfabss$pack $FRj,$FRk,$CCi,$cond */
17193
17194 static SEM_PC
17195 SEM_FN_NAME (frvbf,cfabss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17196 {
17197 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17198   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17199   int UNUSED written = 0;
17200   IADDR UNUSED pc = abuf->addr;
17201   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17202
17203 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
17204   {
17205     SF opval = CGEN_CPU_FPU (current_cpu)->ops->abssf (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17206     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17207     written |= (1 << 3);
17208     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17209   }
17210 }
17211
17212   abuf->written = written;
17213   return vpc;
17214 #undef FLD
17215 }
17216
17217 /* fsqrts: fsqrts$pack $FRj,$FRk */
17218
17219 static SEM_PC
17220 SEM_FN_NAME (frvbf,fsqrts) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17221 {
17222 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17223   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17224   int UNUSED written = 0;
17225   IADDR UNUSED pc = abuf->addr;
17226   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17227
17228   {
17229     SF opval = CGEN_CPU_FPU (current_cpu)->ops->sqrtsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17230     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17231     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17232   }
17233
17234   return vpc;
17235 #undef FLD
17236 }
17237
17238 /* fdsqrts: fdsqrts$pack $FRj,$FRk */
17239
17240 static SEM_PC
17241 SEM_FN_NAME (frvbf,fdsqrts) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17242 {
17243 #define FLD(f) abuf->fields.sfmt_fdmadds.f
17244   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17245   int UNUSED written = 0;
17246   IADDR UNUSED pc = abuf->addr;
17247   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17248
17249 {
17250   {
17251     SF opval = CGEN_CPU_FPU (current_cpu)->ops->sqrtsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17252     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17253     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17254   }
17255   {
17256     SF opval = CGEN_CPU_FPU (current_cpu)->ops->sqrtsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (ADDSI (FLD (f_FRj), 1)));
17257     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ADDSI (FLD (f_FRk), 1), opval);
17258     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17259   }
17260 }
17261
17262   return vpc;
17263 #undef FLD
17264 }
17265
17266 /* nfdsqrts: nfdsqrts$pack $FRj,$FRk */
17267
17268 static SEM_PC
17269 SEM_FN_NAME (frvbf,nfdsqrts) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17270 {
17271 #define FLD(f) abuf->fields.sfmt_fdmadds.f
17272   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17273   int UNUSED written = 0;
17274   IADDR UNUSED pc = abuf->addr;
17275   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17276
17277 {
17278 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
17279   {
17280     SF opval = CGEN_CPU_FPU (current_cpu)->ops->sqrtsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17281     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17282     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17283   }
17284 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
17285   {
17286     SF opval = CGEN_CPU_FPU (current_cpu)->ops->sqrtsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (ADDSI (FLD (f_FRj), 1)));
17287     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ADDSI (FLD (f_FRk), 1), opval);
17288     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17289   }
17290 }
17291
17292   return vpc;
17293 #undef FLD
17294 }
17295
17296 /* fsqrtd: fsqrtd$pack $FRdoublej,$FRdoublek */
17297
17298 static SEM_PC
17299 SEM_FN_NAME (frvbf,fsqrtd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17300 {
17301 #define FLD(f) abuf->fields.sfmt_fmaddd.f
17302   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17303   int UNUSED written = 0;
17304   IADDR UNUSED pc = abuf->addr;
17305   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17306
17307   {
17308     DF opval = CGEN_CPU_FPU (current_cpu)->ops->sqrtdf (CGEN_CPU_FPU (current_cpu), GET_H_FR_DOUBLE (FLD (f_FRj)));
17309     sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
17310     TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
17311   }
17312
17313   return vpc;
17314 #undef FLD
17315 }
17316
17317 /* cfsqrts: cfsqrts$pack $FRj,$FRk,$CCi,$cond */
17318
17319 static SEM_PC
17320 SEM_FN_NAME (frvbf,cfsqrts) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17321 {
17322 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17323   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17324   int UNUSED written = 0;
17325   IADDR UNUSED pc = abuf->addr;
17326   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17327
17328 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
17329   {
17330     SF opval = CGEN_CPU_FPU (current_cpu)->ops->sqrtsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17331     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17332     written |= (1 << 3);
17333     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17334   }
17335 }
17336
17337   abuf->written = written;
17338   return vpc;
17339 #undef FLD
17340 }
17341
17342 /* nfsqrts: nfsqrts$pack $FRj,$FRk */
17343
17344 static SEM_PC
17345 SEM_FN_NAME (frvbf,nfsqrts) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17346 {
17347 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17348   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17349   int UNUSED written = 0;
17350   IADDR UNUSED pc = abuf->addr;
17351   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17352
17353 {
17354 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
17355   {
17356     SF opval = CGEN_CPU_FPU (current_cpu)->ops->sqrtsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17357     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17358     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17359   }
17360 }
17361
17362   return vpc;
17363 #undef FLD
17364 }
17365
17366 /* fadds: fadds$pack $FRi,$FRj,$FRk */
17367
17368 static SEM_PC
17369 SEM_FN_NAME (frvbf,fadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17370 {
17371 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17372   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17373   int UNUSED written = 0;
17374   IADDR UNUSED pc = abuf->addr;
17375   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17376
17377   {
17378     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)));
17379     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17380     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17381   }
17382
17383   return vpc;
17384 #undef FLD
17385 }
17386
17387 /* fsubs: fsubs$pack $FRi,$FRj,$FRk */
17388
17389 static SEM_PC
17390 SEM_FN_NAME (frvbf,fsubs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17391 {
17392 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17393   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17394   int UNUSED written = 0;
17395   IADDR UNUSED pc = abuf->addr;
17396   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17397
17398   {
17399     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)));
17400     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17401     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17402   }
17403
17404   return vpc;
17405 #undef FLD
17406 }
17407
17408 /* fmuls: fmuls$pack $FRi,$FRj,$FRk */
17409
17410 static SEM_PC
17411 SEM_FN_NAME (frvbf,fmuls) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17412 {
17413 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17414   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17415   int UNUSED written = 0;
17416   IADDR UNUSED pc = abuf->addr;
17417   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17418
17419   {
17420     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)));
17421     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17422     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17423   }
17424
17425   return vpc;
17426 #undef FLD
17427 }
17428
17429 /* fdivs: fdivs$pack $FRi,$FRj,$FRk */
17430
17431 static SEM_PC
17432 SEM_FN_NAME (frvbf,fdivs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17433 {
17434 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17435   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17436   int UNUSED written = 0;
17437   IADDR UNUSED pc = abuf->addr;
17438   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17439
17440   {
17441     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)));
17442     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17443     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17444   }
17445
17446   return vpc;
17447 #undef FLD
17448 }
17449
17450 /* faddd: faddd$pack $FRdoublei,$FRdoublej,$FRdoublek */
17451
17452 static SEM_PC
17453 SEM_FN_NAME (frvbf,faddd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17454 {
17455 #define FLD(f) abuf->fields.sfmt_fmaddd.f
17456   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17457   int UNUSED written = 0;
17458   IADDR UNUSED pc = abuf->addr;
17459   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17460
17461   {
17462     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)));
17463     sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
17464     TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
17465   }
17466
17467   return vpc;
17468 #undef FLD
17469 }
17470
17471 /* fsubd: fsubd$pack $FRdoublei,$FRdoublej,$FRdoublek */
17472
17473 static SEM_PC
17474 SEM_FN_NAME (frvbf,fsubd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17475 {
17476 #define FLD(f) abuf->fields.sfmt_fmaddd.f
17477   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17478   int UNUSED written = 0;
17479   IADDR UNUSED pc = abuf->addr;
17480   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17481
17482   {
17483     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)));
17484     sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
17485     TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
17486   }
17487
17488   return vpc;
17489 #undef FLD
17490 }
17491
17492 /* fmuld: fmuld$pack $FRdoublei,$FRdoublej,$FRdoublek */
17493
17494 static SEM_PC
17495 SEM_FN_NAME (frvbf,fmuld) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17496 {
17497 #define FLD(f) abuf->fields.sfmt_fmaddd.f
17498   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17499   int UNUSED written = 0;
17500   IADDR UNUSED pc = abuf->addr;
17501   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17502
17503   {
17504     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)));
17505     sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
17506     TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
17507   }
17508
17509   return vpc;
17510 #undef FLD
17511 }
17512
17513 /* fdivd: fdivd$pack $FRdoublei,$FRdoublej,$FRdoublek */
17514
17515 static SEM_PC
17516 SEM_FN_NAME (frvbf,fdivd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17517 {
17518 #define FLD(f) abuf->fields.sfmt_fmaddd.f
17519   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17520   int UNUSED written = 0;
17521   IADDR UNUSED pc = abuf->addr;
17522   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17523
17524   {
17525     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)));
17526     sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
17527     TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
17528   }
17529
17530   return vpc;
17531 #undef FLD
17532 }
17533
17534 /* cfadds: cfadds$pack $FRi,$FRj,$FRk,$CCi,$cond */
17535
17536 static SEM_PC
17537 SEM_FN_NAME (frvbf,cfadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17538 {
17539 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17540   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17541   int UNUSED written = 0;
17542   IADDR UNUSED pc = abuf->addr;
17543   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17544
17545 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
17546   {
17547     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)));
17548     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17549     written |= (1 << 4);
17550     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17551   }
17552 }
17553
17554   abuf->written = written;
17555   return vpc;
17556 #undef FLD
17557 }
17558
17559 /* cfsubs: cfsubs$pack $FRi,$FRj,$FRk,$CCi,$cond */
17560
17561 static SEM_PC
17562 SEM_FN_NAME (frvbf,cfsubs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17563 {
17564 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17565   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17566   int UNUSED written = 0;
17567   IADDR UNUSED pc = abuf->addr;
17568   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17569
17570 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
17571   {
17572     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)));
17573     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17574     written |= (1 << 4);
17575     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17576   }
17577 }
17578
17579   abuf->written = written;
17580   return vpc;
17581 #undef FLD
17582 }
17583
17584 /* cfmuls: cfmuls$pack $FRi,$FRj,$FRk,$CCi,$cond */
17585
17586 static SEM_PC
17587 SEM_FN_NAME (frvbf,cfmuls) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17588 {
17589 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17590   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17591   int UNUSED written = 0;
17592   IADDR UNUSED pc = abuf->addr;
17593   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17594
17595 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
17596   {
17597     SF opval = CGEN_CPU_FPU (current_cpu)->ops->mulsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)));
17598     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17599     written |= (1 << 4);
17600     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17601   }
17602 }
17603
17604   abuf->written = written;
17605   return vpc;
17606 #undef FLD
17607 }
17608
17609 /* cfdivs: cfdivs$pack $FRi,$FRj,$FRk,$CCi,$cond */
17610
17611 static SEM_PC
17612 SEM_FN_NAME (frvbf,cfdivs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17613 {
17614 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17615   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17616   int UNUSED written = 0;
17617   IADDR UNUSED pc = abuf->addr;
17618   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17619
17620 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
17621   {
17622     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)));
17623     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17624     written |= (1 << 4);
17625     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17626   }
17627 }
17628
17629   abuf->written = written;
17630   return vpc;
17631 #undef FLD
17632 }
17633
17634 /* nfadds: nfadds$pack $FRi,$FRj,$FRk */
17635
17636 static SEM_PC
17637 SEM_FN_NAME (frvbf,nfadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17638 {
17639 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17640   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17641   int UNUSED written = 0;
17642   IADDR UNUSED pc = abuf->addr;
17643   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17644
17645 {
17646 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
17647   {
17648     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)));
17649     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17650     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17651   }
17652 }
17653
17654   return vpc;
17655 #undef FLD
17656 }
17657
17658 /* nfsubs: nfsubs$pack $FRi,$FRj,$FRk */
17659
17660 static SEM_PC
17661 SEM_FN_NAME (frvbf,nfsubs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17662 {
17663 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17664   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17665   int UNUSED written = 0;
17666   IADDR UNUSED pc = abuf->addr;
17667   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17668
17669 {
17670 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
17671   {
17672     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)));
17673     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17674     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17675   }
17676 }
17677
17678   return vpc;
17679 #undef FLD
17680 }
17681
17682 /* nfmuls: nfmuls$pack $FRi,$FRj,$FRk */
17683
17684 static SEM_PC
17685 SEM_FN_NAME (frvbf,nfmuls) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17686 {
17687 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17688   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17689   int UNUSED written = 0;
17690   IADDR UNUSED pc = abuf->addr;
17691   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17692
17693 {
17694 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
17695   {
17696     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)));
17697     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17698     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17699   }
17700 }
17701
17702   return vpc;
17703 #undef FLD
17704 }
17705
17706 /* nfdivs: nfdivs$pack $FRi,$FRj,$FRk */
17707
17708 static SEM_PC
17709 SEM_FN_NAME (frvbf,nfdivs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17710 {
17711 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17712   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17713   int UNUSED written = 0;
17714   IADDR UNUSED pc = abuf->addr;
17715   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17716
17717 {
17718 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
17719   {
17720     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)));
17721     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17722     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17723   }
17724 }
17725
17726   return vpc;
17727 #undef FLD
17728 }
17729
17730 /* fcmps: fcmps$pack $FRi,$FRj,$FCCi_2 */
17731
17732 static SEM_PC
17733 SEM_FN_NAME (frvbf,fcmps) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17734 {
17735 #define FLD(f) abuf->fields.sfmt_cfcmps.f
17736   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17737   int UNUSED written = 0;
17738   IADDR UNUSED pc = abuf->addr;
17739   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17740
17741 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)))) {
17742   {
17743     UQI opval = 2;
17744     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17745     written |= (1 << 2);
17746     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17747   }
17748 } else {
17749 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)))) {
17750   {
17751     UQI opval = 8;
17752     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17753     written |= (1 << 2);
17754     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17755   }
17756 } else {
17757 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)))) {
17758   {
17759     UQI opval = 4;
17760     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17761     written |= (1 << 2);
17762     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17763   }
17764 } else {
17765   {
17766     UQI opval = 1;
17767     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17768     written |= (1 << 2);
17769     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17770   }
17771 }
17772 }
17773 }
17774
17775   abuf->written = written;
17776   return vpc;
17777 #undef FLD
17778 }
17779
17780 /* fcmpd: fcmpd$pack $FRdoublei,$FRdoublej,$FCCi_2 */
17781
17782 static SEM_PC
17783 SEM_FN_NAME (frvbf,fcmpd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17784 {
17785 #define FLD(f) abuf->fields.sfmt_fcmpd.f
17786   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17787   int UNUSED written = 0;
17788   IADDR UNUSED pc = abuf->addr;
17789   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17790
17791 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)))) {
17792   {
17793     UQI opval = 2;
17794     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17795     written |= (1 << 2);
17796     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17797   }
17798 } else {
17799 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)))) {
17800   {
17801     UQI opval = 8;
17802     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17803     written |= (1 << 2);
17804     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17805   }
17806 } else {
17807 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)))) {
17808   {
17809     UQI opval = 4;
17810     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17811     written |= (1 << 2);
17812     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17813   }
17814 } else {
17815   {
17816     UQI opval = 1;
17817     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17818     written |= (1 << 2);
17819     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17820   }
17821 }
17822 }
17823 }
17824
17825   abuf->written = written;
17826   return vpc;
17827 #undef FLD
17828 }
17829
17830 /* cfcmps: cfcmps$pack $FRi,$FRj,$FCCi_2,$CCi,$cond */
17831
17832 static SEM_PC
17833 SEM_FN_NAME (frvbf,cfcmps) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17834 {
17835 #define FLD(f) abuf->fields.sfmt_cfcmps.f
17836   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17837   int UNUSED written = 0;
17838   IADDR UNUSED pc = abuf->addr;
17839   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17840
17841 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
17842 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)))) {
17843   {
17844     UQI opval = 2;
17845     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17846     written |= (1 << 4);
17847     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17848   }
17849 } else {
17850 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)))) {
17851   {
17852     UQI opval = 8;
17853     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17854     written |= (1 << 4);
17855     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17856   }
17857 } else {
17858 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)))) {
17859   {
17860     UQI opval = 4;
17861     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17862     written |= (1 << 4);
17863     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17864   }
17865 } else {
17866   {
17867     UQI opval = 1;
17868     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17869     written |= (1 << 4);
17870     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17871   }
17872 }
17873 }
17874 }
17875 }
17876
17877   abuf->written = written;
17878   return vpc;
17879 #undef FLD
17880 }
17881
17882 /* fdcmps: fdcmps$pack $FRi,$FRj,$FCCi_2 */
17883
17884 static SEM_PC
17885 SEM_FN_NAME (frvbf,fdcmps) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17886 {
17887 #define FLD(f) abuf->fields.sfmt_nfdcmps.f
17888   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17889   int UNUSED written = 0;
17890   IADDR UNUSED pc = abuf->addr;
17891   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17892
17893 {
17894 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)))) {
17895   {
17896     UQI opval = 2;
17897     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17898     written |= (1 << 7);
17899     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17900   }
17901 } else {
17902 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)))) {
17903   {
17904     UQI opval = 8;
17905     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17906     written |= (1 << 7);
17907     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17908   }
17909 } else {
17910 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)))) {
17911   {
17912     UQI opval = 4;
17913     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17914     written |= (1 << 7);
17915     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17916   }
17917 } else {
17918   {
17919     UQI opval = 1;
17920     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17921     written |= (1 << 7);
17922     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17923   }
17924 }
17925 }
17926 }
17927 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)))) {
17928   {
17929     UQI opval = 2;
17930     sim_queue_qi_write (current_cpu, & CPU (h_fccr[ADDSI (FLD (f_FCCi_2), 1)]), opval);
17931     written |= (1 << 8);
17932     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17933   }
17934 } else {
17935 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)))) {
17936   {
17937     UQI opval = 8;
17938     sim_queue_qi_write (current_cpu, & CPU (h_fccr[ADDSI (FLD (f_FCCi_2), 1)]), opval);
17939     written |= (1 << 8);
17940     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17941   }
17942 } else {
17943 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)))) {
17944   {
17945     UQI opval = 4;
17946     sim_queue_qi_write (current_cpu, & CPU (h_fccr[ADDSI (FLD (f_FCCi_2), 1)]), opval);
17947     written |= (1 << 8);
17948     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17949   }
17950 } else {
17951   {
17952     UQI opval = 1;
17953     sim_queue_qi_write (current_cpu, & CPU (h_fccr[ADDSI (FLD (f_FCCi_2), 1)]), opval);
17954     written |= (1 << 8);
17955     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17956   }
17957 }
17958 }
17959 }
17960 }
17961
17962   abuf->written = written;
17963   return vpc;
17964 #undef FLD
17965 }
17966
17967 /* fmadds: fmadds$pack $FRi,$FRj,$FRk */
17968
17969 static SEM_PC
17970 SEM_FN_NAME (frvbf,fmadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17971 {
17972 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17973   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17974   int UNUSED written = 0;
17975   IADDR UNUSED pc = abuf->addr;
17976   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17977
17978   {
17979     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)));
17980     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17981     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17982   }
17983
17984   return vpc;
17985 #undef FLD
17986 }
17987
17988 /* fmsubs: fmsubs$pack $FRi,$FRj,$FRk */
17989
17990 static SEM_PC
17991 SEM_FN_NAME (frvbf,fmsubs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17992 {
17993 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17994   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17995   int UNUSED written = 0;
17996   IADDR UNUSED pc = abuf->addr;
17997   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17998
17999   {
18000     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)));
18001     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18002     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18003   }
18004
18005   return vpc;
18006 #undef FLD
18007 }
18008
18009 /* fmaddd: fmaddd$pack $FRdoublei,$FRdoublej,$FRdoublek */
18010
18011 static SEM_PC
18012 SEM_FN_NAME (frvbf,fmaddd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18013 {
18014 #define FLD(f) abuf->fields.sfmt_fmaddd.f
18015   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18016   int UNUSED written = 0;
18017   IADDR UNUSED pc = abuf->addr;
18018   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18019
18020   {
18021     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)));
18022     sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
18023     TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
18024   }
18025
18026   return vpc;
18027 #undef FLD
18028 }
18029
18030 /* fmsubd: fmsubd$pack $FRdoublei,$FRdoublej,$FRdoublek */
18031
18032 static SEM_PC
18033 SEM_FN_NAME (frvbf,fmsubd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18034 {
18035 #define FLD(f) abuf->fields.sfmt_fmaddd.f
18036   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18037   int UNUSED written = 0;
18038   IADDR UNUSED pc = abuf->addr;
18039   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18040
18041   {
18042     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)));
18043     sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
18044     TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
18045   }
18046
18047   return vpc;
18048 #undef FLD
18049 }
18050
18051 /* fdmadds: fdmadds$pack $FRi,$FRj,$FRk */
18052
18053 static SEM_PC
18054 SEM_FN_NAME (frvbf,fdmadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18055 {
18056 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18057   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18058   int UNUSED written = 0;
18059   IADDR UNUSED pc = abuf->addr;
18060   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18061
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 (FLD (f_FRi)), GET_H_FR (FLD (f_FRj))), GET_H_FR (FLD (f_FRk)));
18065     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18066     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18067   }
18068   {
18069     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)));
18070     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ADDSI (FLD (f_FRk), 1), opval);
18071     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18072   }
18073 }
18074
18075   return vpc;
18076 #undef FLD
18077 }
18078
18079 /* nfdmadds: nfdmadds$pack $FRi,$FRj,$FRk */
18080
18081 static SEM_PC
18082 SEM_FN_NAME (frvbf,nfdmadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18083 {
18084 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18085   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18086   int UNUSED written = 0;
18087   IADDR UNUSED pc = abuf->addr;
18088   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18089
18090 {
18091 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18092   {
18093     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)));
18094     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18095     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18096   }
18097 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18098   {
18099     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)));
18100     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ADDSI (FLD (f_FRk), 1), opval);
18101     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18102   }
18103 }
18104
18105   return vpc;
18106 #undef FLD
18107 }
18108
18109 /* cfmadds: cfmadds$pack $FRi,$FRj,$FRk,$CCi,$cond */
18110
18111 static SEM_PC
18112 SEM_FN_NAME (frvbf,cfmadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18113 {
18114 #define FLD(f) abuf->fields.sfmt_cfmadds.f
18115   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18116   int UNUSED written = 0;
18117   IADDR UNUSED pc = abuf->addr;
18118   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18119
18120 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
18121   {
18122     SF opval = CGEN_CPU_FPU (current_cpu)->ops->addsf (CGEN_CPU_FPU (current_cpu), CGEN_CPU_FPU (current_cpu)->ops->mulsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj))), GET_H_FR (FLD (f_FRk)));
18123     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18124     written |= (1 << 5);
18125     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18126   }
18127 }
18128
18129   abuf->written = written;
18130   return vpc;
18131 #undef FLD
18132 }
18133
18134 /* cfmsubs: cfmsubs$pack $FRi,$FRj,$FRk,$CCi,$cond */
18135
18136 static SEM_PC
18137 SEM_FN_NAME (frvbf,cfmsubs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18138 {
18139 #define FLD(f) abuf->fields.sfmt_cfmadds.f
18140   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18141   int UNUSED written = 0;
18142   IADDR UNUSED pc = abuf->addr;
18143   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18144
18145 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
18146   {
18147     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)));
18148     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18149     written |= (1 << 5);
18150     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18151   }
18152 }
18153
18154   abuf->written = written;
18155   return vpc;
18156 #undef FLD
18157 }
18158
18159 /* nfmadds: nfmadds$pack $FRi,$FRj,$FRk */
18160
18161 static SEM_PC
18162 SEM_FN_NAME (frvbf,nfmadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18163 {
18164 #define FLD(f) abuf->fields.sfmt_cfmadds.f
18165   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18166   int UNUSED written = 0;
18167   IADDR UNUSED pc = abuf->addr;
18168   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18169
18170 {
18171 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18172   {
18173     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)));
18174     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18175     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18176   }
18177 }
18178
18179   return vpc;
18180 #undef FLD
18181 }
18182
18183 /* nfmsubs: nfmsubs$pack $FRi,$FRj,$FRk */
18184
18185 static SEM_PC
18186 SEM_FN_NAME (frvbf,nfmsubs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18187 {
18188 #define FLD(f) abuf->fields.sfmt_cfmadds.f
18189   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18190   int UNUSED written = 0;
18191   IADDR UNUSED pc = abuf->addr;
18192   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18193
18194 {
18195 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18196   {
18197     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)));
18198     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18199     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18200   }
18201 }
18202
18203   return vpc;
18204 #undef FLD
18205 }
18206
18207 /* fmas: fmas$pack $FRi,$FRj,$FRk */
18208
18209 static SEM_PC
18210 SEM_FN_NAME (frvbf,fmas) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18211 {
18212 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18213   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18214   int UNUSED written = 0;
18215   IADDR UNUSED pc = abuf->addr;
18216   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18217
18218 {
18219   {
18220     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)));
18221     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18222     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18223   }
18224   {
18225     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)));
18226     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ADDSI (FLD (f_FRk), 1), opval);
18227     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18228   }
18229 }
18230
18231   return vpc;
18232 #undef FLD
18233 }
18234
18235 /* fmss: fmss$pack $FRi,$FRj,$FRk */
18236
18237 static SEM_PC
18238 SEM_FN_NAME (frvbf,fmss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18239 {
18240 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18241   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18242   int UNUSED written = 0;
18243   IADDR UNUSED pc = abuf->addr;
18244   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18245
18246 {
18247   {
18248     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)));
18249     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18250     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18251   }
18252   {
18253     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)));
18254     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ADDSI (FLD (f_FRk), 1), opval);
18255     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18256   }
18257 }
18258
18259   return vpc;
18260 #undef FLD
18261 }
18262
18263 /* fdmas: fdmas$pack $FRi,$FRj,$FRk */
18264
18265 static SEM_PC
18266 SEM_FN_NAME (frvbf,fdmas) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18267 {
18268 #define FLD(f) abuf->fields.sfmt_fdmas.f
18269   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18270   int UNUSED written = 0;
18271   IADDR UNUSED pc = abuf->addr;
18272   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18273
18274 {
18275   {
18276     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)));
18277     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18278     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18279   }
18280   {
18281     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)));
18282     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ADDSI (FLD (f_FRk), 1), opval);
18283     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18284   }
18285   {
18286     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)));
18287     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ADDSI (FLD (f_FRk), 2), opval);
18288     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18289   }
18290   {
18291     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)));
18292     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ADDSI (FLD (f_FRk), 3), opval);
18293     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18294   }
18295 }
18296
18297   return vpc;
18298 #undef FLD
18299 }
18300
18301 /* fdmss: fdmss$pack $FRi,$FRj,$FRk */
18302
18303 static SEM_PC
18304 SEM_FN_NAME (frvbf,fdmss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18305 {
18306 #define FLD(f) abuf->fields.sfmt_fdmas.f
18307   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18308   int UNUSED written = 0;
18309   IADDR UNUSED pc = abuf->addr;
18310   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18311
18312 {
18313   {
18314     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)));
18315     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18316     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18317   }
18318   {
18319     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)));
18320     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ADDSI (FLD (f_FRk), 1), opval);
18321     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18322   }
18323   {
18324     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)));
18325     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ADDSI (FLD (f_FRk), 2), opval);
18326     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18327   }
18328   {
18329     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)));
18330     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ADDSI (FLD (f_FRk), 3), opval);
18331     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18332   }
18333 }
18334
18335   return vpc;
18336 #undef FLD
18337 }
18338
18339 /* nfdmas: nfdmas$pack $FRi,$FRj,$FRk */
18340
18341 static SEM_PC
18342 SEM_FN_NAME (frvbf,nfdmas) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18343 {
18344 #define FLD(f) abuf->fields.sfmt_fdmas.f
18345   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18346   int UNUSED written = 0;
18347   IADDR UNUSED pc = abuf->addr;
18348   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18349
18350 {
18351 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18352 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18353 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 2));
18354 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 3));
18355   {
18356     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)));
18357     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18358     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18359   }
18360   {
18361     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)));
18362     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ADDSI (FLD (f_FRk), 1), opval);
18363     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18364   }
18365   {
18366     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)));
18367     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ADDSI (FLD (f_FRk), 2), opval);
18368     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18369   }
18370   {
18371     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)));
18372     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ADDSI (FLD (f_FRk), 3), opval);
18373     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18374   }
18375 }
18376
18377   return vpc;
18378 #undef FLD
18379 }
18380
18381 /* nfdmss: nfdmss$pack $FRi,$FRj,$FRk */
18382
18383 static SEM_PC
18384 SEM_FN_NAME (frvbf,nfdmss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18385 {
18386 #define FLD(f) abuf->fields.sfmt_fdmas.f
18387   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18388   int UNUSED written = 0;
18389   IADDR UNUSED pc = abuf->addr;
18390   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18391
18392 {
18393 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18394 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18395 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 2));
18396 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 3));
18397   {
18398     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)));
18399     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18400     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18401   }
18402   {
18403     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)));
18404     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ADDSI (FLD (f_FRk), 1), opval);
18405     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18406   }
18407   {
18408     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)));
18409     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ADDSI (FLD (f_FRk), 2), opval);
18410     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18411   }
18412   {
18413     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)));
18414     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ADDSI (FLD (f_FRk), 3), opval);
18415     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18416   }
18417 }
18418
18419   return vpc;
18420 #undef FLD
18421 }
18422
18423 /* cfmas: cfmas$pack $FRi,$FRj,$FRk,$CCi,$cond */
18424
18425 static SEM_PC
18426 SEM_FN_NAME (frvbf,cfmas) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18427 {
18428 #define FLD(f) abuf->fields.sfmt_cfmas.f
18429   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18430   int UNUSED written = 0;
18431   IADDR UNUSED pc = abuf->addr;
18432   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18433
18434 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
18435 {
18436   {
18437     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)));
18438     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18439     written |= (1 << 9);
18440     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18441   }
18442   {
18443     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)));
18444     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ADDSI (FLD (f_FRk), 1), opval);
18445     written |= (1 << 10);
18446     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18447   }
18448 }
18449 }
18450
18451   abuf->written = written;
18452   return vpc;
18453 #undef FLD
18454 }
18455
18456 /* cfmss: cfmss$pack $FRi,$FRj,$FRk,$CCi,$cond */
18457
18458 static SEM_PC
18459 SEM_FN_NAME (frvbf,cfmss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18460 {
18461 #define FLD(f) abuf->fields.sfmt_cfmas.f
18462   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18463   int UNUSED written = 0;
18464   IADDR UNUSED pc = abuf->addr;
18465   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18466
18467 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
18468 {
18469   {
18470     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)));
18471     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18472     written |= (1 << 9);
18473     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18474   }
18475   {
18476     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)));
18477     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ADDSI (FLD (f_FRk), 1), opval);
18478     written |= (1 << 10);
18479     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18480   }
18481 }
18482 }
18483
18484   abuf->written = written;
18485   return vpc;
18486 #undef FLD
18487 }
18488
18489 /* fmad: fmad$pack $FRi,$FRj,$FRk */
18490
18491 static SEM_PC
18492 SEM_FN_NAME (frvbf,fmad) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18493 {
18494 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18495   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18496   int UNUSED written = 0;
18497   IADDR UNUSED pc = abuf->addr;
18498   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18499
18500 {
18501   {
18502     SF opval = CGEN_CPU_FPU (current_cpu)->ops->ftruncdfsf (CGEN_CPU_FPU (current_cpu), CGEN_CPU_FPU (current_cpu)->ops->muldf (CGEN_CPU_FPU (current_cpu), CGEN_CPU_FPU (current_cpu)->ops->fextsfdf (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi))), CGEN_CPU_FPU (current_cpu)->ops->fextsfdf (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)))));
18503     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18504     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18505   }
18506   {
18507     SF opval = CGEN_CPU_FPU (current_cpu)->ops->ftruncdfsf (CGEN_CPU_FPU (current_cpu), CGEN_CPU_FPU (current_cpu)->ops->adddf (CGEN_CPU_FPU (current_cpu), CGEN_CPU_FPU (current_cpu)->ops->fextsfdf (CGEN_CPU_FPU (current_cpu), GET_H_FR (ADDSI (FLD (f_FRi), 1))), CGEN_CPU_FPU (current_cpu)->ops->fextsfdf (CGEN_CPU_FPU (current_cpu), GET_H_FR (ADDSI (FLD (f_FRj), 1)))));
18508     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ADDSI (FLD (f_FRk), 1), opval);
18509     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18510   }
18511 }
18512
18513   return vpc;
18514 #undef FLD
18515 }
18516
18517 /* fmsd: fmsd$pack $FRi,$FRj,$FRk */
18518
18519 static SEM_PC
18520 SEM_FN_NAME (frvbf,fmsd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18521 {
18522 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18523   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18524   int UNUSED written = 0;
18525   IADDR UNUSED pc = abuf->addr;
18526   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18527
18528 {
18529   {
18530     SF opval = CGEN_CPU_FPU (current_cpu)->ops->ftruncdfsf (CGEN_CPU_FPU (current_cpu), CGEN_CPU_FPU (current_cpu)->ops->muldf (CGEN_CPU_FPU (current_cpu), CGEN_CPU_FPU (current_cpu)->ops->fextsfdf (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi))), CGEN_CPU_FPU (current_cpu)->ops->fextsfdf (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)))));
18531     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18532     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18533   }
18534   {
18535     SF opval = CGEN_CPU_FPU (current_cpu)->ops->ftruncdfsf (CGEN_CPU_FPU (current_cpu), CGEN_CPU_FPU (current_cpu)->ops->subdf (CGEN_CPU_FPU (current_cpu), CGEN_CPU_FPU (current_cpu)->ops->fextsfdf (CGEN_CPU_FPU (current_cpu), GET_H_FR (ADDSI (FLD (f_FRi), 1))), CGEN_CPU_FPU (current_cpu)->ops->fextsfdf (CGEN_CPU_FPU (current_cpu), GET_H_FR (ADDSI (FLD (f_FRj), 1)))));
18536     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ADDSI (FLD (f_FRk), 1), opval);
18537     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18538   }
18539 }
18540
18541   return vpc;
18542 #undef FLD
18543 }
18544
18545 /* nfmas: nfmas$pack $FRi,$FRj,$FRk */
18546
18547 static SEM_PC
18548 SEM_FN_NAME (frvbf,nfmas) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18549 {
18550 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18551   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18552   int UNUSED written = 0;
18553   IADDR UNUSED pc = abuf->addr;
18554   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18555
18556 {
18557 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18558   {
18559     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)));
18560     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18561     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18562   }
18563 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18564   {
18565     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)));
18566     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ADDSI (FLD (f_FRk), 1), opval);
18567     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18568   }
18569 }
18570
18571   return vpc;
18572 #undef FLD
18573 }
18574
18575 /* nfmss: nfmss$pack $FRi,$FRj,$FRk */
18576
18577 static SEM_PC
18578 SEM_FN_NAME (frvbf,nfmss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18579 {
18580 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18581   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18582   int UNUSED written = 0;
18583   IADDR UNUSED pc = abuf->addr;
18584   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18585
18586 {
18587 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18588   {
18589     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)));
18590     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18591     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18592   }
18593 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18594   {
18595     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)));
18596     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ADDSI (FLD (f_FRk), 1), opval);
18597     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18598   }
18599 }
18600
18601   return vpc;
18602 #undef FLD
18603 }
18604
18605 /* fdadds: fdadds$pack $FRi,$FRj,$FRk */
18606
18607 static SEM_PC
18608 SEM_FN_NAME (frvbf,fdadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18609 {
18610 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18611   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18612   int UNUSED written = 0;
18613   IADDR UNUSED pc = abuf->addr;
18614   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18615
18616 {
18617   {
18618     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)));
18619     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18620     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18621   }
18622   {
18623     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)));
18624     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ADDSI (FLD (f_FRk), 1), opval);
18625     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18626   }
18627 }
18628
18629   return vpc;
18630 #undef FLD
18631 }
18632
18633 /* fdsubs: fdsubs$pack $FRi,$FRj,$FRk */
18634
18635 static SEM_PC
18636 SEM_FN_NAME (frvbf,fdsubs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18637 {
18638 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18639   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18640   int UNUSED written = 0;
18641   IADDR UNUSED pc = abuf->addr;
18642   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18643
18644 {
18645   {
18646     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)));
18647     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18648     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18649   }
18650   {
18651     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)));
18652     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ADDSI (FLD (f_FRk), 1), opval);
18653     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18654   }
18655 }
18656
18657   return vpc;
18658 #undef FLD
18659 }
18660
18661 /* fdmuls: fdmuls$pack $FRi,$FRj,$FRk */
18662
18663 static SEM_PC
18664 SEM_FN_NAME (frvbf,fdmuls) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18665 {
18666 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18667   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18668   int UNUSED written = 0;
18669   IADDR UNUSED pc = abuf->addr;
18670   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18671
18672 {
18673   {
18674     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)));
18675     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18676     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18677   }
18678   {
18679     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)));
18680     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ADDSI (FLD (f_FRk), 1), opval);
18681     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18682   }
18683 }
18684
18685   return vpc;
18686 #undef FLD
18687 }
18688
18689 /* fddivs: fddivs$pack $FRi,$FRj,$FRk */
18690
18691 static SEM_PC
18692 SEM_FN_NAME (frvbf,fddivs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18693 {
18694 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18695   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18696   int UNUSED written = 0;
18697   IADDR UNUSED pc = abuf->addr;
18698   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18699
18700 {
18701   {
18702     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)));
18703     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18704     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18705   }
18706   {
18707     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)));
18708     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ADDSI (FLD (f_FRk), 1), opval);
18709     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18710   }
18711 }
18712
18713   return vpc;
18714 #undef FLD
18715 }
18716
18717 /* fdsads: fdsads$pack $FRi,$FRj,$FRk */
18718
18719 static SEM_PC
18720 SEM_FN_NAME (frvbf,fdsads) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18721 {
18722 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18723   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18724   int UNUSED written = 0;
18725   IADDR UNUSED pc = abuf->addr;
18726   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18727
18728 {
18729   {
18730     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)));
18731     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18732     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18733   }
18734   {
18735     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)));
18736     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ADDSI (FLD (f_FRk), 1), opval);
18737     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18738   }
18739 }
18740
18741   return vpc;
18742 #undef FLD
18743 }
18744
18745 /* fdmulcs: fdmulcs$pack $FRi,$FRj,$FRk */
18746
18747 static SEM_PC
18748 SEM_FN_NAME (frvbf,fdmulcs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18749 {
18750 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18751   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18752   int UNUSED written = 0;
18753   IADDR UNUSED pc = abuf->addr;
18754   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18755
18756 {
18757   {
18758     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)));
18759     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18760     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18761   }
18762   {
18763     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)));
18764     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ADDSI (FLD (f_FRk), 1), opval);
18765     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18766   }
18767 }
18768
18769   return vpc;
18770 #undef FLD
18771 }
18772
18773 /* nfdmulcs: nfdmulcs$pack $FRi,$FRj,$FRk */
18774
18775 static SEM_PC
18776 SEM_FN_NAME (frvbf,nfdmulcs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18777 {
18778 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18779   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18780   int UNUSED written = 0;
18781   IADDR UNUSED pc = abuf->addr;
18782   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18783
18784 {
18785 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18786   {
18787     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)));
18788     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18789     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18790   }
18791 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18792   {
18793     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)));
18794     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ADDSI (FLD (f_FRk), 1), opval);
18795     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18796   }
18797 }
18798
18799   return vpc;
18800 #undef FLD
18801 }
18802
18803 /* nfdadds: nfdadds$pack $FRi,$FRj,$FRk */
18804
18805 static SEM_PC
18806 SEM_FN_NAME (frvbf,nfdadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18807 {
18808 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18809   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18810   int UNUSED written = 0;
18811   IADDR UNUSED pc = abuf->addr;
18812   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18813
18814 {
18815 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18816   {
18817     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)));
18818     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18819     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18820   }
18821 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18822   {
18823     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)));
18824     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ADDSI (FLD (f_FRk), 1), opval);
18825     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18826   }
18827 }
18828
18829   return vpc;
18830 #undef FLD
18831 }
18832
18833 /* nfdsubs: nfdsubs$pack $FRi,$FRj,$FRk */
18834
18835 static SEM_PC
18836 SEM_FN_NAME (frvbf,nfdsubs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18837 {
18838 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18839   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18840   int UNUSED written = 0;
18841   IADDR UNUSED pc = abuf->addr;
18842   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18843
18844 {
18845 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18846   {
18847     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)));
18848     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18849     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18850   }
18851 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18852   {
18853     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)));
18854     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ADDSI (FLD (f_FRk), 1), opval);
18855     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18856   }
18857 }
18858
18859   return vpc;
18860 #undef FLD
18861 }
18862
18863 /* nfdmuls: nfdmuls$pack $FRi,$FRj,$FRk */
18864
18865 static SEM_PC
18866 SEM_FN_NAME (frvbf,nfdmuls) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18867 {
18868 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18869   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18870   int UNUSED written = 0;
18871   IADDR UNUSED pc = abuf->addr;
18872   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18873
18874 {
18875 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18876   {
18877     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)));
18878     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18879     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18880   }
18881 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18882   {
18883     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)));
18884     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ADDSI (FLD (f_FRk), 1), opval);
18885     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18886   }
18887 }
18888
18889   return vpc;
18890 #undef FLD
18891 }
18892
18893 /* nfddivs: nfddivs$pack $FRi,$FRj,$FRk */
18894
18895 static SEM_PC
18896 SEM_FN_NAME (frvbf,nfddivs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18897 {
18898 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18899   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18900   int UNUSED written = 0;
18901   IADDR UNUSED pc = abuf->addr;
18902   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18903
18904 {
18905 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18906   {
18907     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)));
18908     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18909     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18910   }
18911 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18912   {
18913     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)));
18914     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ADDSI (FLD (f_FRk), 1), opval);
18915     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18916   }
18917 }
18918
18919   return vpc;
18920 #undef FLD
18921 }
18922
18923 /* nfdsads: nfdsads$pack $FRi,$FRj,$FRk */
18924
18925 static SEM_PC
18926 SEM_FN_NAME (frvbf,nfdsads) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18927 {
18928 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18929   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18930   int UNUSED written = 0;
18931   IADDR UNUSED pc = abuf->addr;
18932   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18933
18934 {
18935 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18936   {
18937     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)));
18938     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18939     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18940   }
18941 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18942   {
18943     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)));
18944     sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ADDSI (FLD (f_FRk), 1), opval);
18945     TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18946   }
18947 }
18948
18949   return vpc;
18950 #undef FLD
18951 }
18952
18953 /* nfdcmps: nfdcmps$pack $FRi,$FRj,$FCCi_2 */
18954
18955 static SEM_PC
18956 SEM_FN_NAME (frvbf,nfdcmps) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18957 {
18958 #define FLD(f) abuf->fields.sfmt_nfdcmps.f
18959   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18960   int UNUSED written = 0;
18961   IADDR UNUSED pc = abuf->addr;
18962   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18963
18964 {
18965 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18966 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)))) {
18967   {
18968     UQI opval = 2;
18969     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
18970     written |= (1 << 8);
18971     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
18972   }
18973 } else {
18974 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)))) {
18975   {
18976     UQI opval = 8;
18977     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
18978     written |= (1 << 8);
18979     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
18980   }
18981 } else {
18982 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)))) {
18983   {
18984     UQI opval = 4;
18985     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
18986     written |= (1 << 8);
18987     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
18988   }
18989 } else {
18990   {
18991     UQI opval = 1;
18992     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
18993     written |= (1 << 8);
18994     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
18995   }
18996 }
18997 }
18998 }
18999 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
19000 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)))) {
19001   {
19002     UQI opval = 2;
19003     sim_queue_qi_write (current_cpu, & CPU (h_fccr[ADDSI (FLD (f_FCCi_2), 1)]), opval);
19004     written |= (1 << 9);
19005     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
19006   }
19007 } else {
19008 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)))) {
19009   {
19010     UQI opval = 8;
19011     sim_queue_qi_write (current_cpu, & CPU (h_fccr[ADDSI (FLD (f_FCCi_2), 1)]), opval);
19012     written |= (1 << 9);
19013     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
19014   }
19015 } else {
19016 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)))) {
19017   {
19018     UQI opval = 4;
19019     sim_queue_qi_write (current_cpu, & CPU (h_fccr[ADDSI (FLD (f_FCCi_2), 1)]), opval);
19020     written |= (1 << 9);
19021     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
19022   }
19023 } else {
19024   {
19025     UQI opval = 1;
19026     sim_queue_qi_write (current_cpu, & CPU (h_fccr[ADDSI (FLD (f_FCCi_2), 1)]), opval);
19027     written |= (1 << 9);
19028     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
19029   }
19030 }
19031 }
19032 }
19033 }
19034
19035   abuf->written = written;
19036   return vpc;
19037 #undef FLD
19038 }
19039
19040 /* mhsetlos: mhsetlos$pack $u12,$FRklo */
19041
19042 static SEM_PC
19043 SEM_FN_NAME (frvbf,mhsetlos) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19044 {
19045 #define FLD(f) abuf->fields.sfmt_mhsetlos.f
19046   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19047   int UNUSED written = 0;
19048   IADDR UNUSED pc = abuf->addr;
19049   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19050
19051   {
19052     UHI opval = FLD (f_u12);
19053     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, FLD (f_FRk), opval);
19054     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19055   }
19056
19057   return vpc;
19058 #undef FLD
19059 }
19060
19061 /* mhsethis: mhsethis$pack $u12,$FRkhi */
19062
19063 static SEM_PC
19064 SEM_FN_NAME (frvbf,mhsethis) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19065 {
19066 #define FLD(f) abuf->fields.sfmt_mhsethis.f
19067   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19068   int UNUSED written = 0;
19069   IADDR UNUSED pc = abuf->addr;
19070   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19071
19072   {
19073     UHI opval = FLD (f_u12);
19074     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, FLD (f_FRk), opval);
19075     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19076   }
19077
19078   return vpc;
19079 #undef FLD
19080 }
19081
19082 /* mhdsets: mhdsets$pack $u12,$FRintk */
19083
19084 static SEM_PC
19085 SEM_FN_NAME (frvbf,mhdsets) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19086 {
19087 #define FLD(f) abuf->fields.sfmt_mhdsets.f
19088   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19089   int UNUSED written = 0;
19090   IADDR UNUSED pc = abuf->addr;
19091   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19092
19093 {
19094   {
19095     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
19096     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19097     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19098   }
19099   {
19100     UHI opval = FLD (f_u12);
19101     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
19102     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19103   }
19104   {
19105     UHI opval = FLD (f_u12);
19106     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
19107     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19108   }
19109 }
19110
19111   return vpc;
19112 #undef FLD
19113 }
19114
19115 /* mhsetloh: mhsetloh$pack $s5,$FRklo */
19116
19117 static SEM_PC
19118 SEM_FN_NAME (frvbf,mhsetloh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19119 {
19120 #define FLD(f) abuf->fields.sfmt_mhsetloh.f
19121   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19122   int UNUSED written = 0;
19123   IADDR UNUSED pc = abuf->addr;
19124   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19125
19126 {
19127   HI tmp_tmp;
19128   tmp_tmp = GET_H_FR_LO (FLD (f_FRk));
19129   tmp_tmp = ANDHI (tmp_tmp, 2047);
19130   tmp_tmp = ORHI (tmp_tmp, SLLSI (ANDSI (FLD (f_s5), 31), 11));
19131   {
19132     UHI opval = tmp_tmp;
19133     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, FLD (f_FRk), opval);
19134     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19135   }
19136 }
19137
19138   return vpc;
19139 #undef FLD
19140 }
19141
19142 /* mhsethih: mhsethih$pack $s5,$FRkhi */
19143
19144 static SEM_PC
19145 SEM_FN_NAME (frvbf,mhsethih) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19146 {
19147 #define FLD(f) abuf->fields.sfmt_mhsethih.f
19148   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19149   int UNUSED written = 0;
19150   IADDR UNUSED pc = abuf->addr;
19151   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19152
19153 {
19154   HI tmp_tmp;
19155   tmp_tmp = GET_H_FR_HI (FLD (f_FRk));
19156   tmp_tmp = ANDHI (tmp_tmp, 2047);
19157   tmp_tmp = ORHI (tmp_tmp, SLLSI (ANDSI (FLD (f_s5), 31), 11));
19158   {
19159     UHI opval = tmp_tmp;
19160     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, FLD (f_FRk), opval);
19161     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19162   }
19163 }
19164
19165   return vpc;
19166 #undef FLD
19167 }
19168
19169 /* mhdseth: mhdseth$pack $s5,$FRintk */
19170
19171 static SEM_PC
19172 SEM_FN_NAME (frvbf,mhdseth) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19173 {
19174 #define FLD(f) abuf->fields.sfmt_mhdseth.f
19175   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19176   int UNUSED written = 0;
19177   IADDR UNUSED pc = abuf->addr;
19178   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19179
19180 {
19181   {
19182     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
19183     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19184     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19185   }
19186 {
19187   HI tmp_tmp;
19188   tmp_tmp = GET_H_FR_HI (ADDSI (FLD (f_FRk), 0));
19189   tmp_tmp = ANDHI (tmp_tmp, 2047);
19190   tmp_tmp = ORHI (tmp_tmp, SLLSI (ANDSI (FLD (f_s5), 31), 11));
19191   {
19192     UHI opval = tmp_tmp;
19193     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
19194     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19195   }
19196 }
19197 {
19198   HI tmp_tmp;
19199   tmp_tmp = GET_H_FR_LO (ADDSI (FLD (f_FRk), 0));
19200   tmp_tmp = ANDHI (tmp_tmp, 2047);
19201   tmp_tmp = ORHI (tmp_tmp, SLLSI (ANDSI (FLD (f_s5), 31), 11));
19202   {
19203     UHI opval = tmp_tmp;
19204     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
19205     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19206   }
19207 }
19208 }
19209
19210   return vpc;
19211 #undef FLD
19212 }
19213
19214 /* mand: mand$pack $FRinti,$FRintj,$FRintk */
19215
19216 static SEM_PC
19217 SEM_FN_NAME (frvbf,mand) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19218 {
19219 #define FLD(f) abuf->fields.sfmt_mwcut.f
19220   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19221   int UNUSED written = 0;
19222   IADDR UNUSED pc = abuf->addr;
19223   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19224
19225   {
19226     SI opval = ANDSI (GET_H_FR_INT (FLD (f_FRi)), GET_H_FR_INT (FLD (f_FRj)));
19227     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19228     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19229   }
19230
19231   return vpc;
19232 #undef FLD
19233 }
19234
19235 /* mor: mor$pack $FRinti,$FRintj,$FRintk */
19236
19237 static SEM_PC
19238 SEM_FN_NAME (frvbf,mor) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19239 {
19240 #define FLD(f) abuf->fields.sfmt_mwcut.f
19241   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19242   int UNUSED written = 0;
19243   IADDR UNUSED pc = abuf->addr;
19244   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19245
19246   {
19247     SI opval = ORSI (GET_H_FR_INT (FLD (f_FRi)), GET_H_FR_INT (FLD (f_FRj)));
19248     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19249     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19250   }
19251
19252   return vpc;
19253 #undef FLD
19254 }
19255
19256 /* mxor: mxor$pack $FRinti,$FRintj,$FRintk */
19257
19258 static SEM_PC
19259 SEM_FN_NAME (frvbf,mxor) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19260 {
19261 #define FLD(f) abuf->fields.sfmt_mwcut.f
19262   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19263   int UNUSED written = 0;
19264   IADDR UNUSED pc = abuf->addr;
19265   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19266
19267   {
19268     SI opval = XORSI (GET_H_FR_INT (FLD (f_FRi)), GET_H_FR_INT (FLD (f_FRj)));
19269     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19270     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19271   }
19272
19273   return vpc;
19274 #undef FLD
19275 }
19276
19277 /* cmand: cmand$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
19278
19279 static SEM_PC
19280 SEM_FN_NAME (frvbf,cmand) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19281 {
19282 #define FLD(f) abuf->fields.sfmt_cmand.f
19283   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19284   int UNUSED written = 0;
19285   IADDR UNUSED pc = abuf->addr;
19286   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19287
19288 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
19289   {
19290     SI opval = ANDSI (GET_H_FR_INT (FLD (f_FRi)), GET_H_FR_INT (FLD (f_FRj)));
19291     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19292     written |= (1 << 4);
19293     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19294   }
19295 }
19296
19297   abuf->written = written;
19298   return vpc;
19299 #undef FLD
19300 }
19301
19302 /* cmor: cmor$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
19303
19304 static SEM_PC
19305 SEM_FN_NAME (frvbf,cmor) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19306 {
19307 #define FLD(f) abuf->fields.sfmt_cmand.f
19308   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19309   int UNUSED written = 0;
19310   IADDR UNUSED pc = abuf->addr;
19311   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19312
19313 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
19314   {
19315     SI opval = ORSI (GET_H_FR_INT (FLD (f_FRi)), GET_H_FR_INT (FLD (f_FRj)));
19316     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19317     written |= (1 << 4);
19318     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19319   }
19320 }
19321
19322   abuf->written = written;
19323   return vpc;
19324 #undef FLD
19325 }
19326
19327 /* cmxor: cmxor$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
19328
19329 static SEM_PC
19330 SEM_FN_NAME (frvbf,cmxor) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19331 {
19332 #define FLD(f) abuf->fields.sfmt_cmand.f
19333   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19334   int UNUSED written = 0;
19335   IADDR UNUSED pc = abuf->addr;
19336   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19337
19338 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
19339   {
19340     SI opval = XORSI (GET_H_FR_INT (FLD (f_FRi)), GET_H_FR_INT (FLD (f_FRj)));
19341     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19342     written |= (1 << 4);
19343     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19344   }
19345 }
19346
19347   abuf->written = written;
19348   return vpc;
19349 #undef FLD
19350 }
19351
19352 /* mnot: mnot$pack $FRintj,$FRintk */
19353
19354 static SEM_PC
19355 SEM_FN_NAME (frvbf,mnot) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19356 {
19357 #define FLD(f) abuf->fields.sfmt_mcut.f
19358   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19359   int UNUSED written = 0;
19360   IADDR UNUSED pc = abuf->addr;
19361   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19362
19363   {
19364     SI opval = INVSI (GET_H_FR_INT (FLD (f_FRj)));
19365     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19366     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19367   }
19368
19369   return vpc;
19370 #undef FLD
19371 }
19372
19373 /* cmnot: cmnot$pack $FRintj,$FRintk,$CCi,$cond */
19374
19375 static SEM_PC
19376 SEM_FN_NAME (frvbf,cmnot) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19377 {
19378 #define FLD(f) abuf->fields.sfmt_cmand.f
19379   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19380   int UNUSED written = 0;
19381   IADDR UNUSED pc = abuf->addr;
19382   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19383
19384 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
19385   {
19386     SI opval = INVSI (GET_H_FR_INT (FLD (f_FRj)));
19387     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19388     written |= (1 << 3);
19389     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19390   }
19391 }
19392
19393   abuf->written = written;
19394   return vpc;
19395 #undef FLD
19396 }
19397
19398 /* mrotli: mrotli$pack $FRinti,$u6,$FRintk */
19399
19400 static SEM_PC
19401 SEM_FN_NAME (frvbf,mrotli) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19402 {
19403 #define FLD(f) abuf->fields.sfmt_mwcuti.f
19404   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19405   int UNUSED written = 0;
19406   IADDR UNUSED pc = abuf->addr;
19407   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19408
19409   {
19410     SI opval = ROLSI (GET_H_FR_INT (FLD (f_FRi)), ANDSI (FLD (f_u6), 31));
19411     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19412     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19413   }
19414
19415   return vpc;
19416 #undef FLD
19417 }
19418
19419 /* mrotri: mrotri$pack $FRinti,$u6,$FRintk */
19420
19421 static SEM_PC
19422 SEM_FN_NAME (frvbf,mrotri) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19423 {
19424 #define FLD(f) abuf->fields.sfmt_mwcuti.f
19425   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19426   int UNUSED written = 0;
19427   IADDR UNUSED pc = abuf->addr;
19428   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19429
19430   {
19431     SI opval = RORSI (GET_H_FR_INT (FLD (f_FRi)), ANDSI (FLD (f_u6), 31));
19432     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19433     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19434   }
19435
19436   return vpc;
19437 #undef FLD
19438 }
19439
19440 /* mwcut: mwcut$pack $FRinti,$FRintj,$FRintk */
19441
19442 static SEM_PC
19443 SEM_FN_NAME (frvbf,mwcut) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19444 {
19445 #define FLD(f) abuf->fields.sfmt_mwcut.f
19446   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19447   int UNUSED written = 0;
19448   IADDR UNUSED pc = abuf->addr;
19449   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19450
19451   {
19452     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)));
19453     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19454     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19455   }
19456
19457   return vpc;
19458 #undef FLD
19459 }
19460
19461 /* mwcuti: mwcuti$pack $FRinti,$u6,$FRintk */
19462
19463 static SEM_PC
19464 SEM_FN_NAME (frvbf,mwcuti) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19465 {
19466 #define FLD(f) abuf->fields.sfmt_mwcuti.f
19467   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19468   int UNUSED written = 0;
19469   IADDR UNUSED pc = abuf->addr;
19470   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19471
19472   {
19473     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));
19474     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19475     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19476   }
19477
19478   return vpc;
19479 #undef FLD
19480 }
19481
19482 /* mcut: mcut$pack $ACC40Si,$FRintj,$FRintk */
19483
19484 static SEM_PC
19485 SEM_FN_NAME (frvbf,mcut) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19486 {
19487 #define FLD(f) abuf->fields.sfmt_mcut.f
19488   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19489   int UNUSED written = 0;
19490   IADDR UNUSED pc = abuf->addr;
19491   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19492
19493   {
19494     SI opval = frvbf_media_cut (current_cpu, GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_FR_INT (FLD (f_FRj)));
19495     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19496     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19497   }
19498
19499   return vpc;
19500 #undef FLD
19501 }
19502
19503 /* mcuti: mcuti$pack $ACC40Si,$s6,$FRintk */
19504
19505 static SEM_PC
19506 SEM_FN_NAME (frvbf,mcuti) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19507 {
19508 #define FLD(f) abuf->fields.sfmt_mcuti.f
19509   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19510   int UNUSED written = 0;
19511   IADDR UNUSED pc = abuf->addr;
19512   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19513
19514   {
19515     SI opval = frvbf_media_cut (current_cpu, GET_H_ACC40S (FLD (f_ACC40Si)), FLD (f_s6));
19516     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19517     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19518   }
19519
19520   return vpc;
19521 #undef FLD
19522 }
19523
19524 /* mcutss: mcutss$pack $ACC40Si,$FRintj,$FRintk */
19525
19526 static SEM_PC
19527 SEM_FN_NAME (frvbf,mcutss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19528 {
19529 #define FLD(f) abuf->fields.sfmt_mcut.f
19530   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19531   int UNUSED written = 0;
19532   IADDR UNUSED pc = abuf->addr;
19533   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19534
19535   {
19536     SI opval = frvbf_media_cut_ss (current_cpu, GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_FR_INT (FLD (f_FRj)));
19537     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19538     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19539   }
19540
19541   return vpc;
19542 #undef FLD
19543 }
19544
19545 /* mcutssi: mcutssi$pack $ACC40Si,$s6,$FRintk */
19546
19547 static SEM_PC
19548 SEM_FN_NAME (frvbf,mcutssi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19549 {
19550 #define FLD(f) abuf->fields.sfmt_mcuti.f
19551   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19552   int UNUSED written = 0;
19553   IADDR UNUSED pc = abuf->addr;
19554   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19555
19556   {
19557     SI opval = frvbf_media_cut_ss (current_cpu, GET_H_ACC40S (FLD (f_ACC40Si)), FLD (f_s6));
19558     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19559     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19560   }
19561
19562   return vpc;
19563 #undef FLD
19564 }
19565
19566 /* mdcutssi: mdcutssi$pack $ACC40Si,$s6,$FRintkeven */
19567
19568 static SEM_PC
19569 SEM_FN_NAME (frvbf,mdcutssi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19570 {
19571 #define FLD(f) abuf->fields.sfmt_mdcutssi.f
19572   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19573   int UNUSED written = 0;
19574   IADDR UNUSED pc = abuf->addr;
19575   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19576
19577 if (ANDSI (FLD (f_ACC40Si), SUBSI (2, 1))) {
19578 frvbf_media_acc_not_aligned (current_cpu);
19579 } else {
19580 if (ANDSI (FLD (f_FRk), SUBSI (2, 1))) {
19581 frvbf_media_register_not_aligned (current_cpu);
19582 } else {
19583 {
19584   {
19585     SI opval = frvbf_media_cut_ss (current_cpu, GET_H_ACC40S (FLD (f_ACC40Si)), FLD (f_s6));
19586     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19587     written |= (1 << 5);
19588     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19589   }
19590   {
19591     USI opval = frvbf_media_cut_ss (current_cpu, GET_H_ACC40S (ADDSI (FLD (f_ACC40Si), 1)), FLD (f_s6));
19592     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ADDSI (FLD (f_FRk), 1), opval);
19593     written |= (1 << 6);
19594     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19595   }
19596 }
19597 }
19598 }
19599
19600   abuf->written = written;
19601   return vpc;
19602 #undef FLD
19603 }
19604
19605 /* maveh: maveh$pack $FRinti,$FRintj,$FRintk */
19606
19607 static SEM_PC
19608 SEM_FN_NAME (frvbf,maveh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19609 {
19610 #define FLD(f) abuf->fields.sfmt_mwcut.f
19611   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19612   int UNUSED written = 0;
19613   IADDR UNUSED pc = abuf->addr;
19614   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19615
19616   {
19617     SI opval = frvbf_media_average (current_cpu, GET_H_FR_INT (FLD (f_FRi)), GET_H_FR_INT (FLD (f_FRj)));
19618     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19619     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19620   }
19621
19622   return vpc;
19623 #undef FLD
19624 }
19625
19626 /* msllhi: msllhi$pack $FRinti,$u6,$FRintk */
19627
19628 static SEM_PC
19629 SEM_FN_NAME (frvbf,msllhi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19630 {
19631 #define FLD(f) abuf->fields.sfmt_msllhi.f
19632   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19633   int UNUSED written = 0;
19634   IADDR UNUSED pc = abuf->addr;
19635   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19636
19637 {
19638   {
19639     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRi)));
19640     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRi), opval);
19641     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19642   }
19643   {
19644     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
19645     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19646     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19647   }
19648   {
19649     UHI opval = SLLHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), ANDSI (FLD (f_u6), 15));
19650     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
19651     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19652   }
19653   {
19654     UHI opval = SLLHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), ANDSI (FLD (f_u6), 15));
19655     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
19656     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19657   }
19658 }
19659
19660   return vpc;
19661 #undef FLD
19662 }
19663
19664 /* msrlhi: msrlhi$pack $FRinti,$u6,$FRintk */
19665
19666 static SEM_PC
19667 SEM_FN_NAME (frvbf,msrlhi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19668 {
19669 #define FLD(f) abuf->fields.sfmt_msllhi.f
19670   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19671   int UNUSED written = 0;
19672   IADDR UNUSED pc = abuf->addr;
19673   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19674
19675 {
19676   {
19677     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRi)));
19678     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRi), opval);
19679     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19680   }
19681   {
19682     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
19683     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19684     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19685   }
19686   {
19687     UHI opval = SRLHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), ANDSI (FLD (f_u6), 15));
19688     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
19689     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19690   }
19691   {
19692     UHI opval = SRLHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), ANDSI (FLD (f_u6), 15));
19693     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
19694     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19695   }
19696 }
19697
19698   return vpc;
19699 #undef FLD
19700 }
19701
19702 /* msrahi: msrahi$pack $FRinti,$u6,$FRintk */
19703
19704 static SEM_PC
19705 SEM_FN_NAME (frvbf,msrahi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19706 {
19707 #define FLD(f) abuf->fields.sfmt_msllhi.f
19708   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19709   int UNUSED written = 0;
19710   IADDR UNUSED pc = abuf->addr;
19711   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19712
19713 {
19714   {
19715     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRi)));
19716     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRi), opval);
19717     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19718   }
19719   {
19720     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
19721     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19722     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19723   }
19724   {
19725     UHI opval = SRAHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), ANDSI (FLD (f_u6), 15));
19726     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
19727     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19728   }
19729   {
19730     UHI opval = SRAHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), ANDSI (FLD (f_u6), 15));
19731     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
19732     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19733   }
19734 }
19735
19736   return vpc;
19737 #undef FLD
19738 }
19739
19740 /* mdrotli: mdrotli$pack $FRintieven,$s6,$FRintkeven */
19741
19742 static SEM_PC
19743 SEM_FN_NAME (frvbf,mdrotli) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19744 {
19745 #define FLD(f) abuf->fields.sfmt_mdrotli.f
19746   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19747   int UNUSED written = 0;
19748   IADDR UNUSED pc = abuf->addr;
19749   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19750
19751 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1)))) {
19752 frvbf_media_register_not_aligned (current_cpu);
19753 } else {
19754 {
19755   {
19756     SI opval = ROLSI (GET_H_FR_INT (FLD (f_FRi)), ANDSI (FLD (f_s6), 31));
19757     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19758     written |= (1 << 5);
19759     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19760   }
19761   {
19762     USI opval = ROLSI (GET_H_FR_INT (ADDSI (FLD (f_FRi), 1)), ANDSI (FLD (f_s6), 31));
19763     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ADDSI (FLD (f_FRk), 1), opval);
19764     written |= (1 << 6);
19765     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19766   }
19767 }
19768 }
19769
19770   abuf->written = written;
19771   return vpc;
19772 #undef FLD
19773 }
19774
19775 /* mcplhi: mcplhi$pack $FRinti,$u6,$FRintk */
19776
19777 static SEM_PC
19778 SEM_FN_NAME (frvbf,mcplhi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19779 {
19780 #define FLD(f) abuf->fields.sfmt_mcplhi.f
19781   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19782   int UNUSED written = 0;
19783   IADDR UNUSED pc = abuf->addr;
19784   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19785
19786 {
19787   HI tmp_arg1;
19788   HI tmp_arg2;
19789   HI tmp_shift;
19790   {
19791     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRi)));
19792     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRi), opval);
19793     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19794   }
19795   {
19796     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
19797     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19798     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19799   }
19800   tmp_shift = ANDSI (FLD (f_u6), 15);
19801   tmp_arg1 = SLLHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), tmp_shift);
19802 if (NEHI (tmp_shift, 0)) {
19803 {
19804   tmp_arg2 = GET_H_FR_HI (ADDSI (FLD (f_FRi), 1));
19805   tmp_arg2 = SRLHI (SLLHI (tmp_arg2, SUBSI (15, tmp_shift)), SUBSI (15, tmp_shift));
19806   tmp_arg1 = ORHI (tmp_arg1, tmp_arg2);
19807 }
19808 }
19809   {
19810     UHI opval = tmp_arg1;
19811     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
19812     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19813   }
19814 }
19815
19816   return vpc;
19817 #undef FLD
19818 }
19819
19820 /* mcpli: mcpli$pack $FRinti,$u6,$FRintk */
19821
19822 static SEM_PC
19823 SEM_FN_NAME (frvbf,mcpli) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19824 {
19825 #define FLD(f) abuf->fields.sfmt_mwcuti.f
19826   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19827   int UNUSED written = 0;
19828   IADDR UNUSED pc = abuf->addr;
19829   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19830
19831 {
19832   SI tmp_tmp;
19833   SI tmp_shift;
19834   tmp_shift = ANDSI (FLD (f_u6), 31);
19835   tmp_tmp = SLLSI (GET_H_FR_INT (FLD (f_FRi)), tmp_shift);
19836 if (NESI (tmp_shift, 0)) {
19837 {
19838   SI tmp_tmp1;
19839   tmp_tmp1 = SRLSI (SLLSI (GET_H_FR_INT (ADDSI (FLD (f_FRi), 1)), SUBSI (31, tmp_shift)), SUBSI (31, tmp_shift));
19840   tmp_tmp = ORSI (tmp_tmp, tmp_tmp1);
19841 }
19842 }
19843   {
19844     SI opval = tmp_tmp;
19845     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19846     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19847   }
19848 }
19849
19850   return vpc;
19851 #undef FLD
19852 }
19853
19854 /* msaths: msaths$pack $FRinti,$FRintj,$FRintk */
19855
19856 static SEM_PC
19857 SEM_FN_NAME (frvbf,msaths) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19858 {
19859 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
19860   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19861   int UNUSED written = 0;
19862   IADDR UNUSED pc = abuf->addr;
19863   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19864
19865 {
19866   HI tmp_argihi;
19867   HI tmp_argilo;
19868   HI tmp_argjhi;
19869   HI tmp_argjlo;
19870 {
19871   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
19872   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
19873   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
19874   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
19875 }
19876 if (GTHI (tmp_argihi, tmp_argjhi)) {
19877   {
19878     UHI opval = tmp_argjhi;
19879     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
19880     written |= (1 << 9);
19881     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19882   }
19883 } else {
19884 if (LTHI (tmp_argihi, INVHI (tmp_argjhi))) {
19885   {
19886     UHI opval = INVHI (tmp_argjhi);
19887     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
19888     written |= (1 << 9);
19889     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19890   }
19891 } else {
19892   {
19893     UHI opval = tmp_argihi;
19894     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
19895     written |= (1 << 9);
19896     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19897   }
19898 }
19899 }
19900 if (GTHI (tmp_argilo, tmp_argjlo)) {
19901   {
19902     UHI opval = tmp_argjlo;
19903     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
19904     written |= (1 << 10);
19905     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19906   }
19907 } else {
19908 if (LTHI (tmp_argilo, INVHI (tmp_argjlo))) {
19909   {
19910     UHI opval = INVHI (tmp_argjlo);
19911     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
19912     written |= (1 << 10);
19913     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19914   }
19915 } else {
19916   {
19917     UHI opval = tmp_argilo;
19918     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
19919     written |= (1 << 10);
19920     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19921   }
19922 }
19923 }
19924 }
19925
19926   abuf->written = written;
19927   return vpc;
19928 #undef FLD
19929 }
19930
19931 /* mqsaths: mqsaths$pack $FRintieven,$FRintjeven,$FRintkeven */
19932
19933 static SEM_PC
19934 SEM_FN_NAME (frvbf,mqsaths) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19935 {
19936 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
19937   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19938   int UNUSED written = 0;
19939   IADDR UNUSED pc = abuf->addr;
19940   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19941
19942 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
19943 frvbf_media_register_not_aligned (current_cpu);
19944 } else {
19945 {
19946   HI tmp_argihi;
19947   HI tmp_argilo;
19948   HI tmp_argjhi;
19949   HI tmp_argjlo;
19950   {
19951     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
19952     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19953     written |= (1 << 14);
19954     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19955   }
19956 {
19957   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
19958   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
19959   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
19960   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
19961 }
19962 if (GTHI (tmp_argihi, tmp_argjhi)) {
19963   {
19964     UHI opval = tmp_argjhi;
19965     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
19966     written |= (1 << 15);
19967     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19968   }
19969 } else {
19970 if (LTHI (tmp_argihi, INVHI (tmp_argjhi))) {
19971   {
19972     UHI opval = INVHI (tmp_argjhi);
19973     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
19974     written |= (1 << 15);
19975     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19976   }
19977 } else {
19978   {
19979     UHI opval = tmp_argihi;
19980     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
19981     written |= (1 << 15);
19982     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19983   }
19984 }
19985 }
19986 if (GTHI (tmp_argilo, tmp_argjlo)) {
19987   {
19988     UHI opval = tmp_argjlo;
19989     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
19990     written |= (1 << 17);
19991     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19992   }
19993 } else {
19994 if (LTHI (tmp_argilo, INVHI (tmp_argjlo))) {
19995   {
19996     UHI opval = INVHI (tmp_argjlo);
19997     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
19998     written |= (1 << 17);
19999     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20000   }
20001 } else {
20002   {
20003     UHI opval = tmp_argilo;
20004     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
20005     written |= (1 << 17);
20006     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20007   }
20008 }
20009 }
20010 {
20011   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20012   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20013   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20014   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20015 }
20016 if (GTHI (tmp_argihi, tmp_argjhi)) {
20017   {
20018     UHI opval = tmp_argjhi;
20019     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 1), opval);
20020     written |= (1 << 16);
20021     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20022   }
20023 } else {
20024 if (LTHI (tmp_argihi, INVHI (tmp_argjhi))) {
20025   {
20026     UHI opval = INVHI (tmp_argjhi);
20027     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 1), opval);
20028     written |= (1 << 16);
20029     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20030   }
20031 } else {
20032   {
20033     UHI opval = tmp_argihi;
20034     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 1), opval);
20035     written |= (1 << 16);
20036     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20037   }
20038 }
20039 }
20040 if (GTHI (tmp_argilo, tmp_argjlo)) {
20041   {
20042     UHI opval = tmp_argjlo;
20043     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 1), opval);
20044     written |= (1 << 18);
20045     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20046   }
20047 } else {
20048 if (LTHI (tmp_argilo, INVHI (tmp_argjlo))) {
20049   {
20050     UHI opval = INVHI (tmp_argjlo);
20051     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 1), opval);
20052     written |= (1 << 18);
20053     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20054   }
20055 } else {
20056   {
20057     UHI opval = tmp_argilo;
20058     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 1), opval);
20059     written |= (1 << 18);
20060     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20061   }
20062 }
20063 }
20064 }
20065 }
20066
20067   abuf->written = written;
20068   return vpc;
20069 #undef FLD
20070 }
20071
20072 /* msathu: msathu$pack $FRinti,$FRintj,$FRintk */
20073
20074 static SEM_PC
20075 SEM_FN_NAME (frvbf,msathu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20076 {
20077 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
20078   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20079   int UNUSED written = 0;
20080   IADDR UNUSED pc = abuf->addr;
20081   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20082
20083 {
20084   UHI tmp_argihi;
20085   UHI tmp_argilo;
20086   UHI tmp_argjhi;
20087   UHI tmp_argjlo;
20088 {
20089   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20090   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20091   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20092   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20093 }
20094 if (GTUHI (tmp_argihi, tmp_argjhi)) {
20095   {
20096     UHI opval = tmp_argjhi;
20097     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
20098     written |= (1 << 9);
20099     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20100   }
20101 } else {
20102   {
20103     UHI opval = tmp_argihi;
20104     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
20105     written |= (1 << 9);
20106     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20107   }
20108 }
20109 if (GTUHI (tmp_argilo, tmp_argjlo)) {
20110   {
20111     UHI opval = tmp_argjlo;
20112     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
20113     written |= (1 << 10);
20114     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20115   }
20116 } else {
20117   {
20118     UHI opval = tmp_argilo;
20119     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
20120     written |= (1 << 10);
20121     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20122   }
20123 }
20124 }
20125
20126   abuf->written = written;
20127   return vpc;
20128 #undef FLD
20129 }
20130
20131 /* mcmpsh: mcmpsh$pack $FRinti,$FRintj,$FCCk */
20132
20133 static SEM_PC
20134 SEM_FN_NAME (frvbf,mcmpsh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20135 {
20136 #define FLD(f) abuf->fields.sfmt_mcmpsh.f
20137   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20138   int UNUSED written = 0;
20139   IADDR UNUSED pc = abuf->addr;
20140   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20141
20142 if (ANDSI (FLD (f_FCCk), SUBSI (2, 1))) {
20143 frvbf_media_cr_not_aligned (current_cpu);
20144 } else {
20145 {
20146   HI tmp_argihi;
20147   HI tmp_argilo;
20148   HI tmp_argjhi;
20149   HI tmp_argjlo;
20150 {
20151   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20152   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20153   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20154   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20155 }
20156 if (GTHI (tmp_argihi, tmp_argjhi)) {
20157   {
20158     UQI opval = 2;
20159     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCk)]), opval);
20160     written |= (1 << 9);
20161     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20162   }
20163 } else {
20164 if (EQHI (tmp_argihi, tmp_argjhi)) {
20165   {
20166     UQI opval = 8;
20167     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCk)]), opval);
20168     written |= (1 << 9);
20169     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20170   }
20171 } else {
20172 if (LTHI (tmp_argihi, tmp_argjhi)) {
20173   {
20174     UQI opval = 4;
20175     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCk)]), opval);
20176     written |= (1 << 9);
20177     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20178   }
20179 } else {
20180   {
20181     UQI opval = 1;
20182     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCk)]), opval);
20183     written |= (1 << 9);
20184     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20185   }
20186 }
20187 }
20188 }
20189 if (GTHI (tmp_argilo, tmp_argjlo)) {
20190   {
20191     UQI opval = 2;
20192     sim_queue_qi_write (current_cpu, & CPU (h_fccr[ADDSI (FLD (f_FCCk), 1)]), opval);
20193     written |= (1 << 10);
20194     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20195   }
20196 } else {
20197 if (EQHI (tmp_argilo, tmp_argjlo)) {
20198   {
20199     UQI opval = 8;
20200     sim_queue_qi_write (current_cpu, & CPU (h_fccr[ADDSI (FLD (f_FCCk), 1)]), opval);
20201     written |= (1 << 10);
20202     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20203   }
20204 } else {
20205 if (LTHI (tmp_argilo, tmp_argjlo)) {
20206   {
20207     UQI opval = 4;
20208     sim_queue_qi_write (current_cpu, & CPU (h_fccr[ADDSI (FLD (f_FCCk), 1)]), opval);
20209     written |= (1 << 10);
20210     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20211   }
20212 } else {
20213   {
20214     UQI opval = 1;
20215     sim_queue_qi_write (current_cpu, & CPU (h_fccr[ADDSI (FLD (f_FCCk), 1)]), opval);
20216     written |= (1 << 10);
20217     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20218   }
20219 }
20220 }
20221 }
20222 }
20223 }
20224
20225   abuf->written = written;
20226   return vpc;
20227 #undef FLD
20228 }
20229
20230 /* mcmpuh: mcmpuh$pack $FRinti,$FRintj,$FCCk */
20231
20232 static SEM_PC
20233 SEM_FN_NAME (frvbf,mcmpuh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20234 {
20235 #define FLD(f) abuf->fields.sfmt_mcmpsh.f
20236   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20237   int UNUSED written = 0;
20238   IADDR UNUSED pc = abuf->addr;
20239   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20240
20241 if (ANDSI (FLD (f_FCCk), SUBSI (2, 1))) {
20242 frvbf_media_cr_not_aligned (current_cpu);
20243 } else {
20244 {
20245   UHI tmp_argihi;
20246   UHI tmp_argilo;
20247   UHI tmp_argjhi;
20248   UHI tmp_argjlo;
20249 {
20250   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20251   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20252   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20253   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20254 }
20255 if (GTUHI (tmp_argihi, tmp_argjhi)) {
20256   {
20257     UQI opval = 2;
20258     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCk)]), opval);
20259     written |= (1 << 9);
20260     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20261   }
20262 } else {
20263 if (EQHI (tmp_argihi, tmp_argjhi)) {
20264   {
20265     UQI opval = 8;
20266     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCk)]), opval);
20267     written |= (1 << 9);
20268     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20269   }
20270 } else {
20271 if (LTUHI (tmp_argihi, tmp_argjhi)) {
20272   {
20273     UQI opval = 4;
20274     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCk)]), opval);
20275     written |= (1 << 9);
20276     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20277   }
20278 } else {
20279   {
20280     UQI opval = 1;
20281     sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCk)]), opval);
20282     written |= (1 << 9);
20283     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20284   }
20285 }
20286 }
20287 }
20288 if (GTUHI (tmp_argilo, tmp_argjlo)) {
20289   {
20290     UQI opval = 2;
20291     sim_queue_qi_write (current_cpu, & CPU (h_fccr[ADDSI (FLD (f_FCCk), 1)]), opval);
20292     written |= (1 << 10);
20293     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20294   }
20295 } else {
20296 if (EQHI (tmp_argilo, tmp_argjlo)) {
20297   {
20298     UQI opval = 8;
20299     sim_queue_qi_write (current_cpu, & CPU (h_fccr[ADDSI (FLD (f_FCCk), 1)]), opval);
20300     written |= (1 << 10);
20301     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20302   }
20303 } else {
20304 if (LTUHI (tmp_argilo, tmp_argjlo)) {
20305   {
20306     UQI opval = 4;
20307     sim_queue_qi_write (current_cpu, & CPU (h_fccr[ADDSI (FLD (f_FCCk), 1)]), opval);
20308     written |= (1 << 10);
20309     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20310   }
20311 } else {
20312   {
20313     UQI opval = 1;
20314     sim_queue_qi_write (current_cpu, & CPU (h_fccr[ADDSI (FLD (f_FCCk), 1)]), opval);
20315     written |= (1 << 10);
20316     TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20317   }
20318 }
20319 }
20320 }
20321 }
20322 }
20323
20324   abuf->written = written;
20325   return vpc;
20326 #undef FLD
20327 }
20328
20329 /* mabshs: mabshs$pack $FRintj,$FRintk */
20330
20331 static SEM_PC
20332 SEM_FN_NAME (frvbf,mabshs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20333 {
20334 #define FLD(f) abuf->fields.sfmt_mabshs.f
20335   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20336   int UNUSED written = 0;
20337   IADDR UNUSED pc = abuf->addr;
20338   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20339
20340 {
20341   HI tmp_arghi;
20342   HI tmp_arglo;
20343   {
20344     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRj)));
20345     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRj), opval);
20346     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
20347   }
20348   {
20349     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
20350     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
20351     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
20352   }
20353   tmp_arghi = GET_H_FR_HI (ADDSI (FLD (f_FRj), 0));
20354   tmp_arglo = GET_H_FR_LO (ADDSI (FLD (f_FRj), 0));
20355 if (GTDI (ABSDI (EXTHIDI (tmp_arghi)), 32767)) {
20356 {
20357   {
20358     UHI opval = 32767;
20359     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
20360     written |= (1 << 8);
20361     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20362   }
20363 frvbf_media_overflow (current_cpu, 8);
20364 }
20365 } else {
20366 if (LTDI (ABSDI (EXTHIDI (tmp_arghi)), -32768)) {
20367 {
20368   {
20369     UHI opval = -32768;
20370     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
20371     written |= (1 << 8);
20372     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20373   }
20374 frvbf_media_overflow (current_cpu, 8);
20375 }
20376 } else {
20377   {
20378     UHI opval = ABSDI (EXTHIDI (tmp_arghi));
20379     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
20380     written |= (1 << 8);
20381     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20382   }
20383 }
20384 }
20385 if (GTDI (ABSDI (EXTHIDI (tmp_arglo)), 32767)) {
20386 {
20387   {
20388     UHI opval = 32767;
20389     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
20390     written |= (1 << 9);
20391     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20392   }
20393 frvbf_media_overflow (current_cpu, 4);
20394 }
20395 } else {
20396 if (LTDI (ABSDI (EXTHIDI (tmp_arglo)), -32768)) {
20397 {
20398   {
20399     UHI opval = -32768;
20400     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
20401     written |= (1 << 9);
20402     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20403   }
20404 frvbf_media_overflow (current_cpu, 4);
20405 }
20406 } else {
20407   {
20408     UHI opval = ABSDI (EXTHIDI (tmp_arglo));
20409     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
20410     written |= (1 << 9);
20411     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20412   }
20413 }
20414 }
20415 }
20416
20417   abuf->written = written;
20418   return vpc;
20419 #undef FLD
20420 }
20421
20422 /* maddhss: maddhss$pack $FRinti,$FRintj,$FRintk */
20423
20424 static SEM_PC
20425 SEM_FN_NAME (frvbf,maddhss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20426 {
20427 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
20428   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20429   int UNUSED written = 0;
20430   IADDR UNUSED pc = abuf->addr;
20431   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20432
20433 {
20434   HI tmp_argihi;
20435   HI tmp_argilo;
20436   HI tmp_argjhi;
20437   HI tmp_argjlo;
20438 {
20439   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20440   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20441   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20442   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20443 }
20444 {
20445   DI tmp_tmp;
20446   tmp_tmp = ADDDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
20447 if (GTDI (tmp_tmp, 32767)) {
20448 {
20449   {
20450     UHI opval = 32767;
20451     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
20452     written |= (1 << 9);
20453     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20454   }
20455 frvbf_media_overflow (current_cpu, 8);
20456 }
20457 } else {
20458 if (LTDI (tmp_tmp, -32768)) {
20459 {
20460   {
20461     UHI opval = -32768;
20462     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
20463     written |= (1 << 9);
20464     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20465   }
20466 frvbf_media_overflow (current_cpu, 8);
20467 }
20468 } else {
20469   {
20470     UHI opval = tmp_tmp;
20471     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
20472     written |= (1 << 9);
20473     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20474   }
20475 }
20476 }
20477 }
20478 {
20479   DI tmp_tmp;
20480   tmp_tmp = ADDDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
20481 if (GTDI (tmp_tmp, 32767)) {
20482 {
20483   {
20484     UHI opval = 32767;
20485     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
20486     written |= (1 << 10);
20487     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20488   }
20489 frvbf_media_overflow (current_cpu, 4);
20490 }
20491 } else {
20492 if (LTDI (tmp_tmp, -32768)) {
20493 {
20494   {
20495     UHI opval = -32768;
20496     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
20497     written |= (1 << 10);
20498     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20499   }
20500 frvbf_media_overflow (current_cpu, 4);
20501 }
20502 } else {
20503   {
20504     UHI opval = tmp_tmp;
20505     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
20506     written |= (1 << 10);
20507     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20508   }
20509 }
20510 }
20511 }
20512 }
20513
20514   abuf->written = written;
20515   return vpc;
20516 #undef FLD
20517 }
20518
20519 /* maddhus: maddhus$pack $FRinti,$FRintj,$FRintk */
20520
20521 static SEM_PC
20522 SEM_FN_NAME (frvbf,maddhus) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20523 {
20524 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
20525   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20526   int UNUSED written = 0;
20527   IADDR UNUSED pc = abuf->addr;
20528   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20529
20530 {
20531   UHI tmp_argihi;
20532   UHI tmp_argilo;
20533   UHI tmp_argjhi;
20534   UHI tmp_argjlo;
20535 {
20536   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20537   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20538   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20539   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20540 }
20541 {
20542   DI tmp_tmp;
20543   tmp_tmp = ADDDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
20544 if (GTDI (tmp_tmp, 65535)) {
20545 {
20546   {
20547     UHI opval = 65535;
20548     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
20549     written |= (1 << 9);
20550     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20551   }
20552 frvbf_media_overflow (current_cpu, 8);
20553 }
20554 } else {
20555 if (LTDI (tmp_tmp, 0)) {
20556 {
20557   {
20558     UHI opval = 0;
20559     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
20560     written |= (1 << 9);
20561     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20562   }
20563 frvbf_media_overflow (current_cpu, 8);
20564 }
20565 } else {
20566   {
20567     UHI opval = tmp_tmp;
20568     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
20569     written |= (1 << 9);
20570     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20571   }
20572 }
20573 }
20574 }
20575 {
20576   DI tmp_tmp;
20577   tmp_tmp = ADDDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
20578 if (GTDI (tmp_tmp, 65535)) {
20579 {
20580   {
20581     UHI opval = 65535;
20582     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
20583     written |= (1 << 10);
20584     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20585   }
20586 frvbf_media_overflow (current_cpu, 4);
20587 }
20588 } else {
20589 if (LTDI (tmp_tmp, 0)) {
20590 {
20591   {
20592     UHI opval = 0;
20593     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
20594     written |= (1 << 10);
20595     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20596   }
20597 frvbf_media_overflow (current_cpu, 4);
20598 }
20599 } else {
20600   {
20601     UHI opval = tmp_tmp;
20602     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
20603     written |= (1 << 10);
20604     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20605   }
20606 }
20607 }
20608 }
20609 }
20610
20611   abuf->written = written;
20612   return vpc;
20613 #undef FLD
20614 }
20615
20616 /* msubhss: msubhss$pack $FRinti,$FRintj,$FRintk */
20617
20618 static SEM_PC
20619 SEM_FN_NAME (frvbf,msubhss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20620 {
20621 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
20622   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20623   int UNUSED written = 0;
20624   IADDR UNUSED pc = abuf->addr;
20625   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20626
20627 {
20628   HI tmp_argihi;
20629   HI tmp_argilo;
20630   HI tmp_argjhi;
20631   HI tmp_argjlo;
20632 {
20633   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20634   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20635   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20636   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20637 }
20638 {
20639   DI tmp_tmp;
20640   tmp_tmp = SUBDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
20641 if (GTDI (tmp_tmp, 32767)) {
20642 {
20643   {
20644     UHI opval = 32767;
20645     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
20646     written |= (1 << 9);
20647     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20648   }
20649 frvbf_media_overflow (current_cpu, 8);
20650 }
20651 } else {
20652 if (LTDI (tmp_tmp, -32768)) {
20653 {
20654   {
20655     UHI opval = -32768;
20656     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
20657     written |= (1 << 9);
20658     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20659   }
20660 frvbf_media_overflow (current_cpu, 8);
20661 }
20662 } else {
20663   {
20664     UHI opval = tmp_tmp;
20665     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
20666     written |= (1 << 9);
20667     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20668   }
20669 }
20670 }
20671 }
20672 {
20673   DI tmp_tmp;
20674   tmp_tmp = SUBDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
20675 if (GTDI (tmp_tmp, 32767)) {
20676 {
20677   {
20678     UHI opval = 32767;
20679     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
20680     written |= (1 << 10);
20681     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20682   }
20683 frvbf_media_overflow (current_cpu, 4);
20684 }
20685 } else {
20686 if (LTDI (tmp_tmp, -32768)) {
20687 {
20688   {
20689     UHI opval = -32768;
20690     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
20691     written |= (1 << 10);
20692     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20693   }
20694 frvbf_media_overflow (current_cpu, 4);
20695 }
20696 } else {
20697   {
20698     UHI opval = tmp_tmp;
20699     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
20700     written |= (1 << 10);
20701     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20702   }
20703 }
20704 }
20705 }
20706 }
20707
20708   abuf->written = written;
20709   return vpc;
20710 #undef FLD
20711 }
20712
20713 /* msubhus: msubhus$pack $FRinti,$FRintj,$FRintk */
20714
20715 static SEM_PC
20716 SEM_FN_NAME (frvbf,msubhus) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20717 {
20718 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
20719   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20720   int UNUSED written = 0;
20721   IADDR UNUSED pc = abuf->addr;
20722   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20723
20724 {
20725   UHI tmp_argihi;
20726   UHI tmp_argilo;
20727   UHI tmp_argjhi;
20728   UHI tmp_argjlo;
20729 {
20730   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20731   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20732   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20733   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20734 }
20735 {
20736   DI tmp_tmp;
20737   tmp_tmp = SUBDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
20738 if (GTDI (tmp_tmp, 65535)) {
20739 {
20740   {
20741     UHI opval = 65535;
20742     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
20743     written |= (1 << 9);
20744     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20745   }
20746 frvbf_media_overflow (current_cpu, 8);
20747 }
20748 } else {
20749 if (LTDI (tmp_tmp, 0)) {
20750 {
20751   {
20752     UHI opval = 0;
20753     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
20754     written |= (1 << 9);
20755     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20756   }
20757 frvbf_media_overflow (current_cpu, 8);
20758 }
20759 } else {
20760   {
20761     UHI opval = tmp_tmp;
20762     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
20763     written |= (1 << 9);
20764     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20765   }
20766 }
20767 }
20768 }
20769 {
20770   DI tmp_tmp;
20771   tmp_tmp = SUBDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
20772 if (GTDI (tmp_tmp, 65535)) {
20773 {
20774   {
20775     UHI opval = 65535;
20776     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
20777     written |= (1 << 10);
20778     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20779   }
20780 frvbf_media_overflow (current_cpu, 4);
20781 }
20782 } else {
20783 if (LTDI (tmp_tmp, 0)) {
20784 {
20785   {
20786     UHI opval = 0;
20787     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
20788     written |= (1 << 10);
20789     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20790   }
20791 frvbf_media_overflow (current_cpu, 4);
20792 }
20793 } else {
20794   {
20795     UHI opval = tmp_tmp;
20796     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
20797     written |= (1 << 10);
20798     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20799   }
20800 }
20801 }
20802 }
20803 }
20804
20805   abuf->written = written;
20806   return vpc;
20807 #undef FLD
20808 }
20809
20810 /* cmaddhss: cmaddhss$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
20811
20812 static SEM_PC
20813 SEM_FN_NAME (frvbf,cmaddhss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20814 {
20815 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
20816   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20817   int UNUSED written = 0;
20818   IADDR UNUSED pc = abuf->addr;
20819   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20820
20821 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
20822 {
20823   HI tmp_argihi;
20824   HI tmp_argilo;
20825   HI tmp_argjhi;
20826   HI tmp_argjlo;
20827 {
20828   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20829   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20830   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20831   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20832 }
20833 {
20834   DI tmp_tmp;
20835   tmp_tmp = ADDDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
20836 if (GTDI (tmp_tmp, 32767)) {
20837 {
20838   {
20839     UHI opval = 32767;
20840     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
20841     written |= (1 << 11);
20842     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20843   }
20844 frvbf_media_overflow (current_cpu, 8);
20845 }
20846 } else {
20847 if (LTDI (tmp_tmp, -32768)) {
20848 {
20849   {
20850     UHI opval = -32768;
20851     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
20852     written |= (1 << 11);
20853     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20854   }
20855 frvbf_media_overflow (current_cpu, 8);
20856 }
20857 } else {
20858   {
20859     UHI opval = tmp_tmp;
20860     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
20861     written |= (1 << 11);
20862     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20863   }
20864 }
20865 }
20866 }
20867 {
20868   DI tmp_tmp;
20869   tmp_tmp = ADDDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
20870 if (GTDI (tmp_tmp, 32767)) {
20871 {
20872   {
20873     UHI opval = 32767;
20874     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
20875     written |= (1 << 12);
20876     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20877   }
20878 frvbf_media_overflow (current_cpu, 4);
20879 }
20880 } else {
20881 if (LTDI (tmp_tmp, -32768)) {
20882 {
20883   {
20884     UHI opval = -32768;
20885     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
20886     written |= (1 << 12);
20887     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20888   }
20889 frvbf_media_overflow (current_cpu, 4);
20890 }
20891 } else {
20892   {
20893     UHI opval = tmp_tmp;
20894     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
20895     written |= (1 << 12);
20896     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20897   }
20898 }
20899 }
20900 }
20901 }
20902 }
20903
20904   abuf->written = written;
20905   return vpc;
20906 #undef FLD
20907 }
20908
20909 /* cmaddhus: cmaddhus$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
20910
20911 static SEM_PC
20912 SEM_FN_NAME (frvbf,cmaddhus) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20913 {
20914 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
20915   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20916   int UNUSED written = 0;
20917   IADDR UNUSED pc = abuf->addr;
20918   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20919
20920 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
20921 {
20922   UHI tmp_argihi;
20923   UHI tmp_argilo;
20924   UHI tmp_argjhi;
20925   UHI tmp_argjlo;
20926 {
20927   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20928   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20929   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20930   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20931 }
20932 {
20933   DI tmp_tmp;
20934   tmp_tmp = ADDDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
20935 if (GTDI (tmp_tmp, 65535)) {
20936 {
20937   {
20938     UHI opval = 65535;
20939     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
20940     written |= (1 << 11);
20941     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20942   }
20943 frvbf_media_overflow (current_cpu, 8);
20944 }
20945 } else {
20946 if (LTDI (tmp_tmp, 0)) {
20947 {
20948   {
20949     UHI opval = 0;
20950     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
20951     written |= (1 << 11);
20952     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20953   }
20954 frvbf_media_overflow (current_cpu, 8);
20955 }
20956 } else {
20957   {
20958     UHI opval = tmp_tmp;
20959     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
20960     written |= (1 << 11);
20961     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20962   }
20963 }
20964 }
20965 }
20966 {
20967   DI tmp_tmp;
20968   tmp_tmp = ADDDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
20969 if (GTDI (tmp_tmp, 65535)) {
20970 {
20971   {
20972     UHI opval = 65535;
20973     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
20974     written |= (1 << 12);
20975     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20976   }
20977 frvbf_media_overflow (current_cpu, 4);
20978 }
20979 } else {
20980 if (LTDI (tmp_tmp, 0)) {
20981 {
20982   {
20983     UHI opval = 0;
20984     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
20985     written |= (1 << 12);
20986     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20987   }
20988 frvbf_media_overflow (current_cpu, 4);
20989 }
20990 } else {
20991   {
20992     UHI opval = tmp_tmp;
20993     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
20994     written |= (1 << 12);
20995     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20996   }
20997 }
20998 }
20999 }
21000 }
21001 }
21002
21003   abuf->written = written;
21004   return vpc;
21005 #undef FLD
21006 }
21007
21008 /* cmsubhss: cmsubhss$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
21009
21010 static SEM_PC
21011 SEM_FN_NAME (frvbf,cmsubhss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
21012 {
21013 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
21014   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
21015   int UNUSED written = 0;
21016   IADDR UNUSED pc = abuf->addr;
21017   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
21018
21019 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
21020 {
21021   HI tmp_argihi;
21022   HI tmp_argilo;
21023   HI tmp_argjhi;
21024   HI tmp_argjlo;
21025 {
21026   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21027   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21028   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21029   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21030 }
21031 {
21032   DI tmp_tmp;
21033   tmp_tmp = SUBDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
21034 if (GTDI (tmp_tmp, 32767)) {
21035 {
21036   {
21037     UHI opval = 32767;
21038     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
21039     written |= (1 << 11);
21040     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21041   }
21042 frvbf_media_overflow (current_cpu, 8);
21043 }
21044 } else {
21045 if (LTDI (tmp_tmp, -32768)) {
21046 {
21047   {
21048     UHI opval = -32768;
21049     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
21050     written |= (1 << 11);
21051     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21052   }
21053 frvbf_media_overflow (current_cpu, 8);
21054 }
21055 } else {
21056   {
21057     UHI opval = tmp_tmp;
21058     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
21059     written |= (1 << 11);
21060     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21061   }
21062 }
21063 }
21064 }
21065 {
21066   DI tmp_tmp;
21067   tmp_tmp = SUBDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
21068 if (GTDI (tmp_tmp, 32767)) {
21069 {
21070   {
21071     UHI opval = 32767;
21072     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
21073     written |= (1 << 12);
21074     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21075   }
21076 frvbf_media_overflow (current_cpu, 4);
21077 }
21078 } else {
21079 if (LTDI (tmp_tmp, -32768)) {
21080 {
21081   {
21082     UHI opval = -32768;
21083     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
21084     written |= (1 << 12);
21085     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21086   }
21087 frvbf_media_overflow (current_cpu, 4);
21088 }
21089 } else {
21090   {
21091     UHI opval = tmp_tmp;
21092     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
21093     written |= (1 << 12);
21094     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21095   }
21096 }
21097 }
21098 }
21099 }
21100 }
21101
21102   abuf->written = written;
21103   return vpc;
21104 #undef FLD
21105 }
21106
21107 /* cmsubhus: cmsubhus$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
21108
21109 static SEM_PC
21110 SEM_FN_NAME (frvbf,cmsubhus) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
21111 {
21112 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
21113   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
21114   int UNUSED written = 0;
21115   IADDR UNUSED pc = abuf->addr;
21116   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
21117
21118 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
21119 {
21120   UHI tmp_argihi;
21121   UHI tmp_argilo;
21122   UHI tmp_argjhi;
21123   UHI tmp_argjlo;
21124 {
21125   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21126   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21127   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21128   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21129 }
21130 {
21131   DI tmp_tmp;
21132   tmp_tmp = SUBDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
21133 if (GTDI (tmp_tmp, 65535)) {
21134 {
21135   {
21136     UHI opval = 65535;
21137     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
21138     written |= (1 << 11);
21139     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21140   }
21141 frvbf_media_overflow (current_cpu, 8);
21142 }
21143 } else {
21144 if (LTDI (tmp_tmp, 0)) {
21145 {
21146   {
21147     UHI opval = 0;
21148     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
21149     written |= (1 << 11);
21150     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21151   }
21152 frvbf_media_overflow (current_cpu, 8);
21153 }
21154 } else {
21155   {
21156     UHI opval = tmp_tmp;
21157     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
21158     written |= (1 << 11);
21159     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21160   }
21161 }
21162 }
21163 }
21164 {
21165   DI tmp_tmp;
21166   tmp_tmp = SUBDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
21167 if (GTDI (tmp_tmp, 65535)) {
21168 {
21169   {
21170     UHI opval = 65535;
21171     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
21172     written |= (1 << 12);
21173     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21174   }
21175 frvbf_media_overflow (current_cpu, 4);
21176 }
21177 } else {
21178 if (LTDI (tmp_tmp, 0)) {
21179 {
21180   {
21181     UHI opval = 0;
21182     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
21183     written |= (1 << 12);
21184     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21185   }
21186 frvbf_media_overflow (current_cpu, 4);
21187 }
21188 } else {
21189   {
21190     UHI opval = tmp_tmp;
21191     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
21192     written |= (1 << 12);
21193     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21194   }
21195 }
21196 }
21197 }
21198 }
21199 }
21200
21201   abuf->written = written;
21202   return vpc;
21203 #undef FLD
21204 }
21205
21206 /* mqaddhss: mqaddhss$pack $FRintieven,$FRintjeven,$FRintkeven */
21207
21208 static SEM_PC
21209 SEM_FN_NAME (frvbf,mqaddhss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
21210 {
21211 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
21212   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
21213   int UNUSED written = 0;
21214   IADDR UNUSED pc = abuf->addr;
21215   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
21216
21217 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
21218 frvbf_media_register_not_aligned (current_cpu);
21219 } else {
21220 {
21221   HI tmp_argihi;
21222   HI tmp_argilo;
21223   HI tmp_argjhi;
21224   HI tmp_argjlo;
21225   {
21226     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
21227     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
21228     written |= (1 << 14);
21229     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
21230   }
21231 {
21232   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21233   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21234   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21235   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21236 }
21237 {
21238   DI tmp_tmp;
21239   tmp_tmp = ADDDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
21240 if (GTDI (tmp_tmp, 32767)) {
21241 {
21242   {
21243     UHI opval = 32767;
21244     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
21245     written |= (1 << 15);
21246     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21247   }
21248 frvbf_media_overflow (current_cpu, 8);
21249 }
21250 } else {
21251 if (LTDI (tmp_tmp, -32768)) {
21252 {
21253   {
21254     UHI opval = -32768;
21255     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
21256     written |= (1 << 15);
21257     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21258   }
21259 frvbf_media_overflow (current_cpu, 8);
21260 }
21261 } else {
21262   {
21263     UHI opval = tmp_tmp;
21264     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
21265     written |= (1 << 15);
21266     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21267   }
21268 }
21269 }
21270 }
21271 {
21272   DI tmp_tmp;
21273   tmp_tmp = ADDDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
21274 if (GTDI (tmp_tmp, 32767)) {
21275 {
21276   {
21277     UHI opval = 32767;
21278     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
21279     written |= (1 << 17);
21280     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21281   }
21282 frvbf_media_overflow (current_cpu, 4);
21283 }
21284 } else {
21285 if (LTDI (tmp_tmp, -32768)) {
21286 {
21287   {
21288     UHI opval = -32768;
21289     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
21290     written |= (1 << 17);
21291     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21292   }
21293 frvbf_media_overflow (current_cpu, 4);
21294 }
21295 } else {
21296   {
21297     UHI opval = tmp_tmp;
21298     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
21299     written |= (1 << 17);
21300     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21301   }
21302 }
21303 }
21304 }
21305 {
21306   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21307   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21308   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21309   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21310 }
21311 {
21312   DI tmp_tmp;
21313   tmp_tmp = ADDDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
21314 if (GTDI (tmp_tmp, 32767)) {
21315 {
21316   {
21317     UHI opval = 32767;
21318     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 1), opval);
21319     written |= (1 << 16);
21320     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21321   }
21322 frvbf_media_overflow (current_cpu, 2);
21323 }
21324 } else {
21325 if (LTDI (tmp_tmp, -32768)) {
21326 {
21327   {
21328     UHI opval = -32768;
21329     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 1), opval);
21330     written |= (1 << 16);
21331     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21332   }
21333 frvbf_media_overflow (current_cpu, 2);
21334 }
21335 } else {
21336   {
21337     UHI opval = tmp_tmp;
21338     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 1), opval);
21339     written |= (1 << 16);
21340     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21341   }
21342 }
21343 }
21344 }
21345 {
21346   DI tmp_tmp;
21347   tmp_tmp = ADDDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
21348 if (GTDI (tmp_tmp, 32767)) {
21349 {
21350   {
21351     UHI opval = 32767;
21352     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 1), opval);
21353     written |= (1 << 18);
21354     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21355   }
21356 frvbf_media_overflow (current_cpu, 1);
21357 }
21358 } else {
21359 if (LTDI (tmp_tmp, -32768)) {
21360 {
21361   {
21362     UHI opval = -32768;
21363     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 1), opval);
21364     written |= (1 << 18);
21365     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21366   }
21367 frvbf_media_overflow (current_cpu, 1);
21368 }
21369 } else {
21370   {
21371     UHI opval = tmp_tmp;
21372     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 1), opval);
21373     written |= (1 << 18);
21374     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21375   }
21376 }
21377 }
21378 }
21379 }
21380 }
21381
21382   abuf->written = written;
21383   return vpc;
21384 #undef FLD
21385 }
21386
21387 /* mqaddhus: mqaddhus$pack $FRintieven,$FRintjeven,$FRintkeven */
21388
21389 static SEM_PC
21390 SEM_FN_NAME (frvbf,mqaddhus) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
21391 {
21392 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
21393   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
21394   int UNUSED written = 0;
21395   IADDR UNUSED pc = abuf->addr;
21396   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
21397
21398 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
21399 frvbf_media_register_not_aligned (current_cpu);
21400 } else {
21401 {
21402   UHI tmp_argihi;
21403   UHI tmp_argilo;
21404   UHI tmp_argjhi;
21405   UHI tmp_argjlo;
21406   {
21407     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
21408     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
21409     written |= (1 << 14);
21410     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
21411   }
21412 {
21413   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21414   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21415   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21416   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21417 }
21418 {
21419   DI tmp_tmp;
21420   tmp_tmp = ADDDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
21421 if (GTDI (tmp_tmp, 65535)) {
21422 {
21423   {
21424     UHI opval = 65535;
21425     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
21426     written |= (1 << 15);
21427     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21428   }
21429 frvbf_media_overflow (current_cpu, 8);
21430 }
21431 } else {
21432 if (LTDI (tmp_tmp, 0)) {
21433 {
21434   {
21435     UHI opval = 0;
21436     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
21437     written |= (1 << 15);
21438     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21439   }
21440 frvbf_media_overflow (current_cpu, 8);
21441 }
21442 } else {
21443   {
21444     UHI opval = tmp_tmp;
21445     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
21446     written |= (1 << 15);
21447     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21448   }
21449 }
21450 }
21451 }
21452 {
21453   DI tmp_tmp;
21454   tmp_tmp = ADDDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
21455 if (GTDI (tmp_tmp, 65535)) {
21456 {
21457   {
21458     UHI opval = 65535;
21459     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
21460     written |= (1 << 17);
21461     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21462   }
21463 frvbf_media_overflow (current_cpu, 4);
21464 }
21465 } else {
21466 if (LTDI (tmp_tmp, 0)) {
21467 {
21468   {
21469     UHI opval = 0;
21470     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
21471     written |= (1 << 17);
21472     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21473   }
21474 frvbf_media_overflow (current_cpu, 4);
21475 }
21476 } else {
21477   {
21478     UHI opval = tmp_tmp;
21479     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
21480     written |= (1 << 17);
21481     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21482   }
21483 }
21484 }
21485 }
21486 {
21487   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21488   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21489   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21490   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21491 }
21492 {
21493   DI tmp_tmp;
21494   tmp_tmp = ADDDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
21495 if (GTDI (tmp_tmp, 65535)) {
21496 {
21497   {
21498     UHI opval = 65535;
21499     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 1), opval);
21500     written |= (1 << 16);
21501     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21502   }
21503 frvbf_media_overflow (current_cpu, 2);
21504 }
21505 } else {
21506 if (LTDI (tmp_tmp, 0)) {
21507 {
21508   {
21509     UHI opval = 0;
21510     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 1), opval);
21511     written |= (1 << 16);
21512     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21513   }
21514 frvbf_media_overflow (current_cpu, 2);
21515 }
21516 } else {
21517   {
21518     UHI opval = tmp_tmp;
21519     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 1), opval);
21520     written |= (1 << 16);
21521     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21522   }
21523 }
21524 }
21525 }
21526 {
21527   DI tmp_tmp;
21528   tmp_tmp = ADDDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
21529 if (GTDI (tmp_tmp, 65535)) {
21530 {
21531   {
21532     UHI opval = 65535;
21533     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 1), opval);
21534     written |= (1 << 18);
21535     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21536   }
21537 frvbf_media_overflow (current_cpu, 1);
21538 }
21539 } else {
21540 if (LTDI (tmp_tmp, 0)) {
21541 {
21542   {
21543     UHI opval = 0;
21544     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 1), opval);
21545     written |= (1 << 18);
21546     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21547   }
21548 frvbf_media_overflow (current_cpu, 1);
21549 }
21550 } else {
21551   {
21552     UHI opval = tmp_tmp;
21553     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 1), opval);
21554     written |= (1 << 18);
21555     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21556   }
21557 }
21558 }
21559 }
21560 }
21561 }
21562
21563   abuf->written = written;
21564   return vpc;
21565 #undef FLD
21566 }
21567
21568 /* mqsubhss: mqsubhss$pack $FRintieven,$FRintjeven,$FRintkeven */
21569
21570 static SEM_PC
21571 SEM_FN_NAME (frvbf,mqsubhss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
21572 {
21573 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
21574   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
21575   int UNUSED written = 0;
21576   IADDR UNUSED pc = abuf->addr;
21577   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
21578
21579 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
21580 frvbf_media_register_not_aligned (current_cpu);
21581 } else {
21582 {
21583   HI tmp_argihi;
21584   HI tmp_argilo;
21585   HI tmp_argjhi;
21586   HI tmp_argjlo;
21587   {
21588     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
21589     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
21590     written |= (1 << 14);
21591     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
21592   }
21593 {
21594   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21595   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21596   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21597   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21598 }
21599 {
21600   DI tmp_tmp;
21601   tmp_tmp = SUBDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
21602 if (GTDI (tmp_tmp, 32767)) {
21603 {
21604   {
21605     UHI opval = 32767;
21606     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
21607     written |= (1 << 15);
21608     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21609   }
21610 frvbf_media_overflow (current_cpu, 8);
21611 }
21612 } else {
21613 if (LTDI (tmp_tmp, -32768)) {
21614 {
21615   {
21616     UHI opval = -32768;
21617     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
21618     written |= (1 << 15);
21619     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21620   }
21621 frvbf_media_overflow (current_cpu, 8);
21622 }
21623 } else {
21624   {
21625     UHI opval = tmp_tmp;
21626     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
21627     written |= (1 << 15);
21628     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21629   }
21630 }
21631 }
21632 }
21633 {
21634   DI tmp_tmp;
21635   tmp_tmp = SUBDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
21636 if (GTDI (tmp_tmp, 32767)) {
21637 {
21638   {
21639     UHI opval = 32767;
21640     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
21641     written |= (1 << 17);
21642     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21643   }
21644 frvbf_media_overflow (current_cpu, 4);
21645 }
21646 } else {
21647 if (LTDI (tmp_tmp, -32768)) {
21648 {
21649   {
21650     UHI opval = -32768;
21651     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
21652     written |= (1 << 17);
21653     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21654   }
21655 frvbf_media_overflow (current_cpu, 4);
21656 }
21657 } else {
21658   {
21659     UHI opval = tmp_tmp;
21660     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
21661     written |= (1 << 17);
21662     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21663   }
21664 }
21665 }
21666 }
21667 {
21668   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21669   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21670   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21671   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21672 }
21673 {
21674   DI tmp_tmp;
21675   tmp_tmp = SUBDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
21676 if (GTDI (tmp_tmp, 32767)) {
21677 {
21678   {
21679     UHI opval = 32767;
21680     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 1), opval);
21681     written |= (1 << 16);
21682     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21683   }
21684 frvbf_media_overflow (current_cpu, 2);
21685 }
21686 } else {
21687 if (LTDI (tmp_tmp, -32768)) {
21688 {
21689   {
21690     UHI opval = -32768;
21691     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 1), opval);
21692     written |= (1 << 16);
21693     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21694   }
21695 frvbf_media_overflow (current_cpu, 2);
21696 }
21697 } else {
21698   {
21699     UHI opval = tmp_tmp;
21700     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 1), opval);
21701     written |= (1 << 16);
21702     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21703   }
21704 }
21705 }
21706 }
21707 {
21708   DI tmp_tmp;
21709   tmp_tmp = SUBDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
21710 if (GTDI (tmp_tmp, 32767)) {
21711 {
21712   {
21713     UHI opval = 32767;
21714     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 1), opval);
21715     written |= (1 << 18);
21716     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21717   }
21718 frvbf_media_overflow (current_cpu, 1);
21719 }
21720 } else {
21721 if (LTDI (tmp_tmp, -32768)) {
21722 {
21723   {
21724     UHI opval = -32768;
21725     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 1), opval);
21726     written |= (1 << 18);
21727     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21728   }
21729 frvbf_media_overflow (current_cpu, 1);
21730 }
21731 } else {
21732   {
21733     UHI opval = tmp_tmp;
21734     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 1), opval);
21735     written |= (1 << 18);
21736     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21737   }
21738 }
21739 }
21740 }
21741 }
21742 }
21743
21744   abuf->written = written;
21745   return vpc;
21746 #undef FLD
21747 }
21748
21749 /* mqsubhus: mqsubhus$pack $FRintieven,$FRintjeven,$FRintkeven */
21750
21751 static SEM_PC
21752 SEM_FN_NAME (frvbf,mqsubhus) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
21753 {
21754 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
21755   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
21756   int UNUSED written = 0;
21757   IADDR UNUSED pc = abuf->addr;
21758   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
21759
21760 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
21761 frvbf_media_register_not_aligned (current_cpu);
21762 } else {
21763 {
21764   UHI tmp_argihi;
21765   UHI tmp_argilo;
21766   UHI tmp_argjhi;
21767   UHI tmp_argjlo;
21768   {
21769     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
21770     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
21771     written |= (1 << 14);
21772     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
21773   }
21774 {
21775   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21776   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21777   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21778   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21779 }
21780 {
21781   DI tmp_tmp;
21782   tmp_tmp = SUBDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
21783 if (GTDI (tmp_tmp, 65535)) {
21784 {
21785   {
21786     UHI opval = 65535;
21787     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
21788     written |= (1 << 15);
21789     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21790   }
21791 frvbf_media_overflow (current_cpu, 8);
21792 }
21793 } else {
21794 if (LTDI (tmp_tmp, 0)) {
21795 {
21796   {
21797     UHI opval = 0;
21798     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
21799     written |= (1 << 15);
21800     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21801   }
21802 frvbf_media_overflow (current_cpu, 8);
21803 }
21804 } else {
21805   {
21806     UHI opval = tmp_tmp;
21807     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
21808     written |= (1 << 15);
21809     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21810   }
21811 }
21812 }
21813 }
21814 {
21815   DI tmp_tmp;
21816   tmp_tmp = SUBDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
21817 if (GTDI (tmp_tmp, 65535)) {
21818 {
21819   {
21820     UHI opval = 65535;
21821     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
21822     written |= (1 << 17);
21823     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21824   }
21825 frvbf_media_overflow (current_cpu, 4);
21826 }
21827 } else {
21828 if (LTDI (tmp_tmp, 0)) {
21829 {
21830   {
21831     UHI opval = 0;
21832     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
21833     written |= (1 << 17);
21834     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21835   }
21836 frvbf_media_overflow (current_cpu, 4);
21837 }
21838 } else {
21839   {
21840     UHI opval = tmp_tmp;
21841     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
21842     written |= (1 << 17);
21843     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21844   }
21845 }
21846 }
21847 }
21848 {
21849   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21850   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21851   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21852   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21853 }
21854 {
21855   DI tmp_tmp;
21856   tmp_tmp = SUBDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
21857 if (GTDI (tmp_tmp, 65535)) {
21858 {
21859   {
21860     UHI opval = 65535;
21861     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 1), opval);
21862     written |= (1 << 16);
21863     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21864   }
21865 frvbf_media_overflow (current_cpu, 2);
21866 }
21867 } else {
21868 if (LTDI (tmp_tmp, 0)) {
21869 {
21870   {
21871     UHI opval = 0;
21872     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 1), opval);
21873     written |= (1 << 16);
21874     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21875   }
21876 frvbf_media_overflow (current_cpu, 2);
21877 }
21878 } else {
21879   {
21880     UHI opval = tmp_tmp;
21881     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 1), opval);
21882     written |= (1 << 16);
21883     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21884   }
21885 }
21886 }
21887 }
21888 {
21889   DI tmp_tmp;
21890   tmp_tmp = SUBDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
21891 if (GTDI (tmp_tmp, 65535)) {
21892 {
21893   {
21894     UHI opval = 65535;
21895     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 1), opval);
21896     written |= (1 << 18);
21897     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21898   }
21899 frvbf_media_overflow (current_cpu, 1);
21900 }
21901 } else {
21902 if (LTDI (tmp_tmp, 0)) {
21903 {
21904   {
21905     UHI opval = 0;
21906     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 1), opval);
21907     written |= (1 << 18);
21908     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21909   }
21910 frvbf_media_overflow (current_cpu, 1);
21911 }
21912 } else {
21913   {
21914     UHI opval = tmp_tmp;
21915     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 1), opval);
21916     written |= (1 << 18);
21917     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21918   }
21919 }
21920 }
21921 }
21922 }
21923 }
21924
21925   abuf->written = written;
21926   return vpc;
21927 #undef FLD
21928 }
21929
21930 /* cmqaddhss: cmqaddhss$pack $FRintieven,$FRintjeven,$FRintkeven,$CCi,$cond */
21931
21932 static SEM_PC
21933 SEM_FN_NAME (frvbf,cmqaddhss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
21934 {
21935 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
21936   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
21937   int UNUSED written = 0;
21938   IADDR UNUSED pc = abuf->addr;
21939   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
21940
21941 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
21942 frvbf_media_register_not_aligned (current_cpu);
21943 } else {
21944 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
21945 {
21946   HI tmp_argihi;
21947   HI tmp_argilo;
21948   HI tmp_argjhi;
21949   HI tmp_argjlo;
21950   {
21951     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
21952     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
21953     written |= (1 << 16);
21954     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
21955   }
21956 {
21957   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21958   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21959   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21960   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21961 }
21962 {
21963   DI tmp_tmp;
21964   tmp_tmp = ADDDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
21965 if (GTDI (tmp_tmp, 32767)) {
21966 {
21967   {
21968     UHI opval = 32767;
21969     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
21970     written |= (1 << 17);
21971     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21972   }
21973 frvbf_media_overflow (current_cpu, 8);
21974 }
21975 } else {
21976 if (LTDI (tmp_tmp, -32768)) {
21977 {
21978   {
21979     UHI opval = -32768;
21980     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
21981     written |= (1 << 17);
21982     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21983   }
21984 frvbf_media_overflow (current_cpu, 8);
21985 }
21986 } else {
21987   {
21988     UHI opval = tmp_tmp;
21989     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
21990     written |= (1 << 17);
21991     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21992   }
21993 }
21994 }
21995 }
21996 {
21997   DI tmp_tmp;
21998   tmp_tmp = ADDDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
21999 if (GTDI (tmp_tmp, 32767)) {
22000 {
22001   {
22002     UHI opval = 32767;
22003     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
22004     written |= (1 << 19);
22005     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22006   }
22007 frvbf_media_overflow (current_cpu, 4);
22008 }
22009 } else {
22010 if (LTDI (tmp_tmp, -32768)) {
22011 {
22012   {
22013     UHI opval = -32768;
22014     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
22015     written |= (1 << 19);
22016     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22017   }
22018 frvbf_media_overflow (current_cpu, 4);
22019 }
22020 } else {
22021   {
22022     UHI opval = tmp_tmp;
22023     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
22024     written |= (1 << 19);
22025     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22026   }
22027 }
22028 }
22029 }
22030 {
22031   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22032   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22033   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22034   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22035 }
22036 {
22037   DI tmp_tmp;
22038   tmp_tmp = ADDDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
22039 if (GTDI (tmp_tmp, 32767)) {
22040 {
22041   {
22042     UHI opval = 32767;
22043     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 1), opval);
22044     written |= (1 << 18);
22045     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22046   }
22047 frvbf_media_overflow (current_cpu, 2);
22048 }
22049 } else {
22050 if (LTDI (tmp_tmp, -32768)) {
22051 {
22052   {
22053     UHI opval = -32768;
22054     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 1), opval);
22055     written |= (1 << 18);
22056     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22057   }
22058 frvbf_media_overflow (current_cpu, 2);
22059 }
22060 } else {
22061   {
22062     UHI opval = tmp_tmp;
22063     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 1), opval);
22064     written |= (1 << 18);
22065     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22066   }
22067 }
22068 }
22069 }
22070 {
22071   DI tmp_tmp;
22072   tmp_tmp = ADDDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
22073 if (GTDI (tmp_tmp, 32767)) {
22074 {
22075   {
22076     UHI opval = 32767;
22077     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 1), opval);
22078     written |= (1 << 20);
22079     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22080   }
22081 frvbf_media_overflow (current_cpu, 1);
22082 }
22083 } else {
22084 if (LTDI (tmp_tmp, -32768)) {
22085 {
22086   {
22087     UHI opval = -32768;
22088     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 1), opval);
22089     written |= (1 << 20);
22090     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22091   }
22092 frvbf_media_overflow (current_cpu, 1);
22093 }
22094 } else {
22095   {
22096     UHI opval = tmp_tmp;
22097     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 1), opval);
22098     written |= (1 << 20);
22099     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22100   }
22101 }
22102 }
22103 }
22104 }
22105 }
22106 }
22107
22108   abuf->written = written;
22109   return vpc;
22110 #undef FLD
22111 }
22112
22113 /* cmqaddhus: cmqaddhus$pack $FRintieven,$FRintjeven,$FRintkeven,$CCi,$cond */
22114
22115 static SEM_PC
22116 SEM_FN_NAME (frvbf,cmqaddhus) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
22117 {
22118 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
22119   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
22120   int UNUSED written = 0;
22121   IADDR UNUSED pc = abuf->addr;
22122   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
22123
22124 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
22125 frvbf_media_register_not_aligned (current_cpu);
22126 } else {
22127 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
22128 {
22129   UHI tmp_argihi;
22130   UHI tmp_argilo;
22131   UHI tmp_argjhi;
22132   UHI tmp_argjlo;
22133   {
22134     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
22135     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
22136     written |= (1 << 16);
22137     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
22138   }
22139 {
22140   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22141   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22142   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22143   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22144 }
22145 {
22146   DI tmp_tmp;
22147   tmp_tmp = ADDDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
22148 if (GTDI (tmp_tmp, 65535)) {
22149 {
22150   {
22151     UHI opval = 65535;
22152     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
22153     written |= (1 << 17);
22154     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22155   }
22156 frvbf_media_overflow (current_cpu, 8);
22157 }
22158 } else {
22159 if (LTDI (tmp_tmp, 0)) {
22160 {
22161   {
22162     UHI opval = 0;
22163     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
22164     written |= (1 << 17);
22165     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22166   }
22167 frvbf_media_overflow (current_cpu, 8);
22168 }
22169 } else {
22170   {
22171     UHI opval = tmp_tmp;
22172     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
22173     written |= (1 << 17);
22174     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22175   }
22176 }
22177 }
22178 }
22179 {
22180   DI tmp_tmp;
22181   tmp_tmp = ADDDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
22182 if (GTDI (tmp_tmp, 65535)) {
22183 {
22184   {
22185     UHI opval = 65535;
22186     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
22187     written |= (1 << 19);
22188     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22189   }
22190 frvbf_media_overflow (current_cpu, 4);
22191 }
22192 } else {
22193 if (LTDI (tmp_tmp, 0)) {
22194 {
22195   {
22196     UHI opval = 0;
22197     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
22198     written |= (1 << 19);
22199     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22200   }
22201 frvbf_media_overflow (current_cpu, 4);
22202 }
22203 } else {
22204   {
22205     UHI opval = tmp_tmp;
22206     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
22207     written |= (1 << 19);
22208     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22209   }
22210 }
22211 }
22212 }
22213 {
22214   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22215   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22216   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22217   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22218 }
22219 {
22220   DI tmp_tmp;
22221   tmp_tmp = ADDDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
22222 if (GTDI (tmp_tmp, 65535)) {
22223 {
22224   {
22225     UHI opval = 65535;
22226     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 1), opval);
22227     written |= (1 << 18);
22228     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22229   }
22230 frvbf_media_overflow (current_cpu, 2);
22231 }
22232 } else {
22233 if (LTDI (tmp_tmp, 0)) {
22234 {
22235   {
22236     UHI opval = 0;
22237     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 1), opval);
22238     written |= (1 << 18);
22239     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22240   }
22241 frvbf_media_overflow (current_cpu, 2);
22242 }
22243 } else {
22244   {
22245     UHI opval = tmp_tmp;
22246     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 1), opval);
22247     written |= (1 << 18);
22248     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22249   }
22250 }
22251 }
22252 }
22253 {
22254   DI tmp_tmp;
22255   tmp_tmp = ADDDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
22256 if (GTDI (tmp_tmp, 65535)) {
22257 {
22258   {
22259     UHI opval = 65535;
22260     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 1), opval);
22261     written |= (1 << 20);
22262     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22263   }
22264 frvbf_media_overflow (current_cpu, 1);
22265 }
22266 } else {
22267 if (LTDI (tmp_tmp, 0)) {
22268 {
22269   {
22270     UHI opval = 0;
22271     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 1), opval);
22272     written |= (1 << 20);
22273     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22274   }
22275 frvbf_media_overflow (current_cpu, 1);
22276 }
22277 } else {
22278   {
22279     UHI opval = tmp_tmp;
22280     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 1), opval);
22281     written |= (1 << 20);
22282     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22283   }
22284 }
22285 }
22286 }
22287 }
22288 }
22289 }
22290
22291   abuf->written = written;
22292   return vpc;
22293 #undef FLD
22294 }
22295
22296 /* cmqsubhss: cmqsubhss$pack $FRintieven,$FRintjeven,$FRintkeven,$CCi,$cond */
22297
22298 static SEM_PC
22299 SEM_FN_NAME (frvbf,cmqsubhss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
22300 {
22301 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
22302   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
22303   int UNUSED written = 0;
22304   IADDR UNUSED pc = abuf->addr;
22305   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
22306
22307 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
22308 frvbf_media_register_not_aligned (current_cpu);
22309 } else {
22310 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
22311 {
22312   HI tmp_argihi;
22313   HI tmp_argilo;
22314   HI tmp_argjhi;
22315   HI tmp_argjlo;
22316   {
22317     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
22318     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
22319     written |= (1 << 16);
22320     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
22321   }
22322 {
22323   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22324   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22325   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22326   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22327 }
22328 {
22329   DI tmp_tmp;
22330   tmp_tmp = SUBDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
22331 if (GTDI (tmp_tmp, 32767)) {
22332 {
22333   {
22334     UHI opval = 32767;
22335     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
22336     written |= (1 << 17);
22337     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22338   }
22339 frvbf_media_overflow (current_cpu, 8);
22340 }
22341 } else {
22342 if (LTDI (tmp_tmp, -32768)) {
22343 {
22344   {
22345     UHI opval = -32768;
22346     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
22347     written |= (1 << 17);
22348     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22349   }
22350 frvbf_media_overflow (current_cpu, 8);
22351 }
22352 } else {
22353   {
22354     UHI opval = tmp_tmp;
22355     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
22356     written |= (1 << 17);
22357     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22358   }
22359 }
22360 }
22361 }
22362 {
22363   DI tmp_tmp;
22364   tmp_tmp = SUBDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
22365 if (GTDI (tmp_tmp, 32767)) {
22366 {
22367   {
22368     UHI opval = 32767;
22369     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
22370     written |= (1 << 19);
22371     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22372   }
22373 frvbf_media_overflow (current_cpu, 4);
22374 }
22375 } else {
22376 if (LTDI (tmp_tmp, -32768)) {
22377 {
22378   {
22379     UHI opval = -32768;
22380     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
22381     written |= (1 << 19);
22382     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22383   }
22384 frvbf_media_overflow (current_cpu, 4);
22385 }
22386 } else {
22387   {
22388     UHI opval = tmp_tmp;
22389     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
22390     written |= (1 << 19);
22391     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22392   }
22393 }
22394 }
22395 }
22396 {
22397   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22398   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22399   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22400   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22401 }
22402 {
22403   DI tmp_tmp;
22404   tmp_tmp = SUBDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
22405 if (GTDI (tmp_tmp, 32767)) {
22406 {
22407   {
22408     UHI opval = 32767;
22409     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 1), opval);
22410     written |= (1 << 18);
22411     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22412   }
22413 frvbf_media_overflow (current_cpu, 2);
22414 }
22415 } else {
22416 if (LTDI (tmp_tmp, -32768)) {
22417 {
22418   {
22419     UHI opval = -32768;
22420     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 1), opval);
22421     written |= (1 << 18);
22422     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22423   }
22424 frvbf_media_overflow (current_cpu, 2);
22425 }
22426 } else {
22427   {
22428     UHI opval = tmp_tmp;
22429     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 1), opval);
22430     written |= (1 << 18);
22431     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22432   }
22433 }
22434 }
22435 }
22436 {
22437   DI tmp_tmp;
22438   tmp_tmp = SUBDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
22439 if (GTDI (tmp_tmp, 32767)) {
22440 {
22441   {
22442     UHI opval = 32767;
22443     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 1), opval);
22444     written |= (1 << 20);
22445     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22446   }
22447 frvbf_media_overflow (current_cpu, 1);
22448 }
22449 } else {
22450 if (LTDI (tmp_tmp, -32768)) {
22451 {
22452   {
22453     UHI opval = -32768;
22454     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 1), opval);
22455     written |= (1 << 20);
22456     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22457   }
22458 frvbf_media_overflow (current_cpu, 1);
22459 }
22460 } else {
22461   {
22462     UHI opval = tmp_tmp;
22463     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 1), opval);
22464     written |= (1 << 20);
22465     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22466   }
22467 }
22468 }
22469 }
22470 }
22471 }
22472 }
22473
22474   abuf->written = written;
22475   return vpc;
22476 #undef FLD
22477 }
22478
22479 /* cmqsubhus: cmqsubhus$pack $FRintieven,$FRintjeven,$FRintkeven,$CCi,$cond */
22480
22481 static SEM_PC
22482 SEM_FN_NAME (frvbf,cmqsubhus) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
22483 {
22484 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
22485   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
22486   int UNUSED written = 0;
22487   IADDR UNUSED pc = abuf->addr;
22488   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
22489
22490 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
22491 frvbf_media_register_not_aligned (current_cpu);
22492 } else {
22493 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
22494 {
22495   UHI tmp_argihi;
22496   UHI tmp_argilo;
22497   UHI tmp_argjhi;
22498   UHI tmp_argjlo;
22499   {
22500     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
22501     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
22502     written |= (1 << 16);
22503     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
22504   }
22505 {
22506   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22507   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22508   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22509   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22510 }
22511 {
22512   DI tmp_tmp;
22513   tmp_tmp = SUBDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
22514 if (GTDI (tmp_tmp, 65535)) {
22515 {
22516   {
22517     UHI opval = 65535;
22518     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
22519     written |= (1 << 17);
22520     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22521   }
22522 frvbf_media_overflow (current_cpu, 8);
22523 }
22524 } else {
22525 if (LTDI (tmp_tmp, 0)) {
22526 {
22527   {
22528     UHI opval = 0;
22529     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
22530     written |= (1 << 17);
22531     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22532   }
22533 frvbf_media_overflow (current_cpu, 8);
22534 }
22535 } else {
22536   {
22537     UHI opval = tmp_tmp;
22538     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
22539     written |= (1 << 17);
22540     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22541   }
22542 }
22543 }
22544 }
22545 {
22546   DI tmp_tmp;
22547   tmp_tmp = SUBDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
22548 if (GTDI (tmp_tmp, 65535)) {
22549 {
22550   {
22551     UHI opval = 65535;
22552     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
22553     written |= (1 << 19);
22554     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22555   }
22556 frvbf_media_overflow (current_cpu, 4);
22557 }
22558 } else {
22559 if (LTDI (tmp_tmp, 0)) {
22560 {
22561   {
22562     UHI opval = 0;
22563     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
22564     written |= (1 << 19);
22565     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22566   }
22567 frvbf_media_overflow (current_cpu, 4);
22568 }
22569 } else {
22570   {
22571     UHI opval = tmp_tmp;
22572     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
22573     written |= (1 << 19);
22574     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22575   }
22576 }
22577 }
22578 }
22579 {
22580   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22581   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22582   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22583   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22584 }
22585 {
22586   DI tmp_tmp;
22587   tmp_tmp = SUBDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
22588 if (GTDI (tmp_tmp, 65535)) {
22589 {
22590   {
22591     UHI opval = 65535;
22592     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 1), opval);
22593     written |= (1 << 18);
22594     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22595   }
22596 frvbf_media_overflow (current_cpu, 2);
22597 }
22598 } else {
22599 if (LTDI (tmp_tmp, 0)) {
22600 {
22601   {
22602     UHI opval = 0;
22603     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 1), opval);
22604     written |= (1 << 18);
22605     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22606   }
22607 frvbf_media_overflow (current_cpu, 2);
22608 }
22609 } else {
22610   {
22611     UHI opval = tmp_tmp;
22612     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 1), opval);
22613     written |= (1 << 18);
22614     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22615   }
22616 }
22617 }
22618 }
22619 {
22620   DI tmp_tmp;
22621   tmp_tmp = SUBDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
22622 if (GTDI (tmp_tmp, 65535)) {
22623 {
22624   {
22625     UHI opval = 65535;
22626     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 1), opval);
22627     written |= (1 << 20);
22628     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22629   }
22630 frvbf_media_overflow (current_cpu, 1);
22631 }
22632 } else {
22633 if (LTDI (tmp_tmp, 0)) {
22634 {
22635   {
22636     UHI opval = 0;
22637     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 1), opval);
22638     written |= (1 << 20);
22639     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22640   }
22641 frvbf_media_overflow (current_cpu, 1);
22642 }
22643 } else {
22644   {
22645     UHI opval = tmp_tmp;
22646     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 1), opval);
22647     written |= (1 << 20);
22648     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22649   }
22650 }
22651 }
22652 }
22653 }
22654 }
22655 }
22656
22657   abuf->written = written;
22658   return vpc;
22659 #undef FLD
22660 }
22661
22662 /* mqlclrhs: mqlclrhs$pack $FRintieven,$FRintjeven,$FRintkeven */
22663
22664 static SEM_PC
22665 SEM_FN_NAME (frvbf,mqlclrhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
22666 {
22667 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
22668   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
22669   int UNUSED written = 0;
22670   IADDR UNUSED pc = abuf->addr;
22671   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
22672
22673 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
22674 frvbf_media_register_not_aligned (current_cpu);
22675 } else {
22676 {
22677   HI tmp_a1;
22678   HI tmp_a2;
22679   HI tmp_a3;
22680   HI tmp_a4;
22681   HI tmp_b1;
22682   HI tmp_b2;
22683   HI tmp_b3;
22684   HI tmp_b4;
22685   {
22686     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
22687     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
22688     written |= (1 << 14);
22689     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
22690   }
22691 {
22692   tmp_a1 = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22693   tmp_a2 = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22694   tmp_b1 = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22695   tmp_b2 = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22696 }
22697 {
22698   tmp_a3 = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22699   tmp_a4 = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22700   tmp_b3 = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22701   tmp_b4 = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22702 }
22703   {
22704     UHI opval = (LEUHI (ABSHI (tmp_a1), ABSHI (tmp_b1))) ? (0) : (LEHI (0, tmp_b1)) ? (tmp_a1) : (EQHI (tmp_a1, -32768)) ? (32767) : (NEGHI (tmp_a1));
22705     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
22706     written |= (1 << 15);
22707     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22708   }
22709   {
22710     UHI opval = (LEUHI (ABSHI (tmp_a2), ABSHI (tmp_b2))) ? (0) : (LEHI (0, tmp_b2)) ? (tmp_a2) : (EQHI (tmp_a2, -32768)) ? (32767) : (NEGHI (tmp_a2));
22711     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
22712     written |= (1 << 17);
22713     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22714   }
22715   {
22716     UHI opval = (LEUHI (ABSHI (tmp_a3), ABSHI (tmp_b3))) ? (0) : (LEHI (0, tmp_b3)) ? (tmp_a3) : (EQHI (tmp_a3, -32768)) ? (32767) : (NEGHI (tmp_a3));
22717     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 1), opval);
22718     written |= (1 << 16);
22719     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22720   }
22721   {
22722     UHI opval = (LEUHI (ABSHI (tmp_a4), ABSHI (tmp_b4))) ? (0) : (LEHI (0, tmp_b4)) ? (tmp_a4) : (EQHI (tmp_a4, -32768)) ? (32767) : (NEGHI (tmp_a4));
22723     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 1), opval);
22724     written |= (1 << 18);
22725     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22726   }
22727 }
22728 }
22729
22730   abuf->written = written;
22731   return vpc;
22732 #undef FLD
22733 }
22734
22735 /* mqlmths: mqlmths$pack $FRintieven,$FRintjeven,$FRintkeven */
22736
22737 static SEM_PC
22738 SEM_FN_NAME (frvbf,mqlmths) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
22739 {
22740 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
22741   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
22742   int UNUSED written = 0;
22743   IADDR UNUSED pc = abuf->addr;
22744   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
22745
22746 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
22747 frvbf_media_register_not_aligned (current_cpu);
22748 } else {
22749 {
22750   HI tmp_a1;
22751   HI tmp_a2;
22752   HI tmp_a3;
22753   HI tmp_a4;
22754   HI tmp_b1;
22755   HI tmp_b2;
22756   HI tmp_b3;
22757   HI tmp_b4;
22758   {
22759     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
22760     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
22761     written |= (1 << 14);
22762     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
22763   }
22764 {
22765   tmp_a1 = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22766   tmp_a2 = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22767   tmp_b1 = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22768   tmp_b2 = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22769 }
22770 {
22771   tmp_a3 = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22772   tmp_a4 = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22773   tmp_b3 = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22774   tmp_b4 = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22775 }
22776   {
22777     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));
22778     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
22779     written |= (1 << 15);
22780     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22781   }
22782   {
22783     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));
22784     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
22785     written |= (1 << 17);
22786     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22787   }
22788   {
22789     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));
22790     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 1), opval);
22791     written |= (1 << 16);
22792     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22793   }
22794   {
22795     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));
22796     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 1), opval);
22797     written |= (1 << 18);
22798     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22799   }
22800 }
22801 }
22802
22803   abuf->written = written;
22804   return vpc;
22805 #undef FLD
22806 }
22807
22808 /* mqsllhi: mqsllhi$pack $FRintieven,$u6,$FRintkeven */
22809
22810 static SEM_PC
22811 SEM_FN_NAME (frvbf,mqsllhi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
22812 {
22813 #define FLD(f) abuf->fields.sfmt_mqsllhi.f
22814   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
22815   int UNUSED written = 0;
22816   IADDR UNUSED pc = abuf->addr;
22817   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
22818
22819 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1)))) {
22820 frvbf_media_register_not_aligned (current_cpu);
22821 } else {
22822 {
22823   {
22824     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRi)));
22825     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRi), opval);
22826     written |= (1 << 9);
22827     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
22828   }
22829   {
22830     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
22831     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
22832     written |= (1 << 10);
22833     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
22834   }
22835   {
22836     UHI opval = SLLHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), ANDSI (FLD (f_u6), 15));
22837     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
22838     written |= (1 << 11);
22839     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22840   }
22841   {
22842     UHI opval = SLLHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), ANDSI (FLD (f_u6), 15));
22843     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
22844     written |= (1 << 13);
22845     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22846   }
22847   {
22848     UHI opval = SLLHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 1)), ANDSI (FLD (f_u6), 15));
22849     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 1), opval);
22850     written |= (1 << 12);
22851     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22852   }
22853   {
22854     UHI opval = SLLHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 1)), ANDSI (FLD (f_u6), 15));
22855     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 1), opval);
22856     written |= (1 << 14);
22857     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22858   }
22859 }
22860 }
22861
22862   abuf->written = written;
22863   return vpc;
22864 #undef FLD
22865 }
22866
22867 /* mqsrahi: mqsrahi$pack $FRintieven,$u6,$FRintkeven */
22868
22869 static SEM_PC
22870 SEM_FN_NAME (frvbf,mqsrahi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
22871 {
22872 #define FLD(f) abuf->fields.sfmt_mqsllhi.f
22873   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
22874   int UNUSED written = 0;
22875   IADDR UNUSED pc = abuf->addr;
22876   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
22877
22878 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1)))) {
22879 frvbf_media_register_not_aligned (current_cpu);
22880 } else {
22881 {
22882   {
22883     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRi)));
22884     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRi), opval);
22885     written |= (1 << 9);
22886     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
22887   }
22888   {
22889     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
22890     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
22891     written |= (1 << 10);
22892     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
22893   }
22894   {
22895     UHI opval = SRAHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), ANDSI (FLD (f_u6), 15));
22896     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
22897     written |= (1 << 11);
22898     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22899   }
22900   {
22901     UHI opval = SRAHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), ANDSI (FLD (f_u6), 15));
22902     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
22903     written |= (1 << 13);
22904     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22905   }
22906   {
22907     UHI opval = SRAHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 1)), ANDSI (FLD (f_u6), 15));
22908     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 1), opval);
22909     written |= (1 << 12);
22910     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22911   }
22912   {
22913     UHI opval = SRAHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 1)), ANDSI (FLD (f_u6), 15));
22914     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 1), opval);
22915     written |= (1 << 14);
22916     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22917   }
22918 }
22919 }
22920
22921   abuf->written = written;
22922   return vpc;
22923 #undef FLD
22924 }
22925
22926 /* maddaccs: maddaccs$pack $ACC40Si,$ACC40Sk */
22927
22928 static SEM_PC
22929 SEM_FN_NAME (frvbf,maddaccs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
22930 {
22931 #define FLD(f) abuf->fields.sfmt_mdasaccs.f
22932   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
22933   int UNUSED written = 0;
22934   IADDR UNUSED pc = abuf->addr;
22935   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
22936
22937 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Si))) {
22938 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
22939 if (ANDSI (FLD (f_ACC40Si), SUBSI (2, 1))) {
22940 frvbf_media_acc_not_aligned (current_cpu);
22941 } else {
22942 {
22943   DI tmp_tmp;
22944   tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_ACC40S (ADDSI (FLD (f_ACC40Si), 1)));
22945 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
22946 {
22947   {
22948     DI opval = MAKEDI (127, 0xffffffff);
22949     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
22950     written |= (1 << 4);
22951     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22952   }
22953 frvbf_media_overflow (current_cpu, 8);
22954 }
22955 } else {
22956 if (LTDI (tmp_tmp, INVDI (MAKEDI (127, 0xffffffff)))) {
22957 {
22958   {
22959     DI opval = INVDI (MAKEDI (127, 0xffffffff));
22960     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
22961     written |= (1 << 4);
22962     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22963   }
22964 frvbf_media_overflow (current_cpu, 8);
22965 }
22966 } else {
22967   {
22968     DI opval = tmp_tmp;
22969     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
22970     written |= (1 << 4);
22971     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22972   }
22973 }
22974 }
22975 }
22976 }
22977 }
22978 }
22979
22980   abuf->written = written;
22981   return vpc;
22982 #undef FLD
22983 }
22984
22985 /* msubaccs: msubaccs$pack $ACC40Si,$ACC40Sk */
22986
22987 static SEM_PC
22988 SEM_FN_NAME (frvbf,msubaccs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
22989 {
22990 #define FLD(f) abuf->fields.sfmt_mdasaccs.f
22991   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
22992   int UNUSED written = 0;
22993   IADDR UNUSED pc = abuf->addr;
22994   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
22995
22996 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Si))) {
22997 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
22998 if (ANDSI (FLD (f_ACC40Si), SUBSI (2, 1))) {
22999 frvbf_media_acc_not_aligned (current_cpu);
23000 } else {
23001 {
23002   DI tmp_tmp;
23003   tmp_tmp = SUBDI (GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_ACC40S (ADDSI (FLD (f_ACC40Si), 1)));
23004 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
23005 {
23006   {
23007     DI opval = MAKEDI (127, 0xffffffff);
23008     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23009     written |= (1 << 4);
23010     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23011   }
23012 frvbf_media_overflow (current_cpu, 8);
23013 }
23014 } else {
23015 if (LTDI (tmp_tmp, INVDI (MAKEDI (127, 0xffffffff)))) {
23016 {
23017   {
23018     DI opval = INVDI (MAKEDI (127, 0xffffffff));
23019     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23020     written |= (1 << 4);
23021     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23022   }
23023 frvbf_media_overflow (current_cpu, 8);
23024 }
23025 } else {
23026   {
23027     DI opval = tmp_tmp;
23028     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23029     written |= (1 << 4);
23030     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23031   }
23032 }
23033 }
23034 }
23035 }
23036 }
23037 }
23038
23039   abuf->written = written;
23040   return vpc;
23041 #undef FLD
23042 }
23043
23044 /* mdaddaccs: mdaddaccs$pack $ACC40Si,$ACC40Sk */
23045
23046 static SEM_PC
23047 SEM_FN_NAME (frvbf,mdaddaccs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23048 {
23049 #define FLD(f) abuf->fields.sfmt_mdasaccs.f
23050   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23051   int UNUSED written = 0;
23052   IADDR UNUSED pc = abuf->addr;
23053   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23054
23055 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Si))) {
23056 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
23057 if (ANDSI (FLD (f_ACC40Si), SUBSI (4, 1))) {
23058 frvbf_media_acc_not_aligned (current_cpu);
23059 } else {
23060 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
23061 frvbf_media_acc_not_aligned (current_cpu);
23062 } else {
23063 {
23064 {
23065   DI tmp_tmp;
23066   tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_ACC40S (ADDSI (FLD (f_ACC40Si), 1)));
23067 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
23068 {
23069   {
23070     DI opval = MAKEDI (127, 0xffffffff);
23071     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23072     written |= (1 << 6);
23073     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23074   }
23075 frvbf_media_overflow (current_cpu, 8);
23076 }
23077 } else {
23078 if (LTDI (tmp_tmp, INVDI (MAKEDI (127, 0xffffffff)))) {
23079 {
23080   {
23081     DI opval = INVDI (MAKEDI (127, 0xffffffff));
23082     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23083     written |= (1 << 6);
23084     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23085   }
23086 frvbf_media_overflow (current_cpu, 8);
23087 }
23088 } else {
23089   {
23090     DI opval = tmp_tmp;
23091     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23092     written |= (1 << 6);
23093     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23094   }
23095 }
23096 }
23097 }
23098 {
23099   DI tmp_tmp;
23100   tmp_tmp = ADDDI (GET_H_ACC40S (ADDSI (FLD (f_ACC40Si), 2)), GET_H_ACC40S (ADDSI (FLD (f_ACC40Si), 3)));
23101 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
23102 {
23103   {
23104     DI opval = MAKEDI (127, 0xffffffff);
23105     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
23106     written |= (1 << 7);
23107     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23108   }
23109 frvbf_media_overflow (current_cpu, 4);
23110 }
23111 } else {
23112 if (LTDI (tmp_tmp, INVDI (MAKEDI (127, 0xffffffff)))) {
23113 {
23114   {
23115     DI opval = INVDI (MAKEDI (127, 0xffffffff));
23116     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
23117     written |= (1 << 7);
23118     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23119   }
23120 frvbf_media_overflow (current_cpu, 4);
23121 }
23122 } else {
23123   {
23124     DI opval = tmp_tmp;
23125     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
23126     written |= (1 << 7);
23127     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23128   }
23129 }
23130 }
23131 }
23132 }
23133 }
23134 }
23135 }
23136 }
23137
23138   abuf->written = written;
23139   return vpc;
23140 #undef FLD
23141 }
23142
23143 /* mdsubaccs: mdsubaccs$pack $ACC40Si,$ACC40Sk */
23144
23145 static SEM_PC
23146 SEM_FN_NAME (frvbf,mdsubaccs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23147 {
23148 #define FLD(f) abuf->fields.sfmt_mdasaccs.f
23149   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23150   int UNUSED written = 0;
23151   IADDR UNUSED pc = abuf->addr;
23152   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23153
23154 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Si))) {
23155 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
23156 if (ANDSI (FLD (f_ACC40Si), SUBSI (4, 1))) {
23157 frvbf_media_acc_not_aligned (current_cpu);
23158 } else {
23159 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
23160 frvbf_media_acc_not_aligned (current_cpu);
23161 } else {
23162 {
23163 {
23164   DI tmp_tmp;
23165   tmp_tmp = SUBDI (GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_ACC40S (ADDSI (FLD (f_ACC40Si), 1)));
23166 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
23167 {
23168   {
23169     DI opval = MAKEDI (127, 0xffffffff);
23170     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23171     written |= (1 << 6);
23172     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23173   }
23174 frvbf_media_overflow (current_cpu, 8);
23175 }
23176 } else {
23177 if (LTDI (tmp_tmp, INVDI (MAKEDI (127, 0xffffffff)))) {
23178 {
23179   {
23180     DI opval = INVDI (MAKEDI (127, 0xffffffff));
23181     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23182     written |= (1 << 6);
23183     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23184   }
23185 frvbf_media_overflow (current_cpu, 8);
23186 }
23187 } else {
23188   {
23189     DI opval = tmp_tmp;
23190     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23191     written |= (1 << 6);
23192     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23193   }
23194 }
23195 }
23196 }
23197 {
23198   DI tmp_tmp;
23199   tmp_tmp = SUBDI (GET_H_ACC40S (ADDSI (FLD (f_ACC40Si), 2)), GET_H_ACC40S (ADDSI (FLD (f_ACC40Si), 3)));
23200 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
23201 {
23202   {
23203     DI opval = MAKEDI (127, 0xffffffff);
23204     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
23205     written |= (1 << 7);
23206     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23207   }
23208 frvbf_media_overflow (current_cpu, 4);
23209 }
23210 } else {
23211 if (LTDI (tmp_tmp, INVDI (MAKEDI (127, 0xffffffff)))) {
23212 {
23213   {
23214     DI opval = INVDI (MAKEDI (127, 0xffffffff));
23215     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
23216     written |= (1 << 7);
23217     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23218   }
23219 frvbf_media_overflow (current_cpu, 4);
23220 }
23221 } else {
23222   {
23223     DI opval = tmp_tmp;
23224     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
23225     written |= (1 << 7);
23226     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23227   }
23228 }
23229 }
23230 }
23231 }
23232 }
23233 }
23234 }
23235 }
23236
23237   abuf->written = written;
23238   return vpc;
23239 #undef FLD
23240 }
23241
23242 /* masaccs: masaccs$pack $ACC40Si,$ACC40Sk */
23243
23244 static SEM_PC
23245 SEM_FN_NAME (frvbf,masaccs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23246 {
23247 #define FLD(f) abuf->fields.sfmt_mdasaccs.f
23248   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23249   int UNUSED written = 0;
23250   IADDR UNUSED pc = abuf->addr;
23251   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23252
23253 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Si))) {
23254 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
23255 if (ANDSI (FLD (f_ACC40Si), SUBSI (2, 1))) {
23256 frvbf_media_acc_not_aligned (current_cpu);
23257 } else {
23258 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
23259 frvbf_media_acc_not_aligned (current_cpu);
23260 } else {
23261 {
23262 {
23263   DI tmp_tmp;
23264   tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_ACC40S (ADDSI (FLD (f_ACC40Si), 1)));
23265 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
23266 {
23267   {
23268     DI opval = MAKEDI (127, 0xffffffff);
23269     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23270     written |= (1 << 4);
23271     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23272   }
23273 frvbf_media_overflow (current_cpu, 8);
23274 }
23275 } else {
23276 if (LTDI (tmp_tmp, INVDI (MAKEDI (127, 0xffffffff)))) {
23277 {
23278   {
23279     DI opval = INVDI (MAKEDI (127, 0xffffffff));
23280     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23281     written |= (1 << 4);
23282     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23283   }
23284 frvbf_media_overflow (current_cpu, 8);
23285 }
23286 } else {
23287   {
23288     DI opval = tmp_tmp;
23289     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23290     written |= (1 << 4);
23291     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23292   }
23293 }
23294 }
23295 }
23296 {
23297   DI tmp_tmp;
23298   tmp_tmp = SUBDI (GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_ACC40S (ADDSI (FLD (f_ACC40Si), 1)));
23299 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
23300 {
23301   {
23302     DI opval = MAKEDI (127, 0xffffffff);
23303     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
23304     written |= (1 << 5);
23305     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23306   }
23307 frvbf_media_overflow (current_cpu, 4);
23308 }
23309 } else {
23310 if (LTDI (tmp_tmp, INVDI (MAKEDI (127, 0xffffffff)))) {
23311 {
23312   {
23313     DI opval = INVDI (MAKEDI (127, 0xffffffff));
23314     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
23315     written |= (1 << 5);
23316     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23317   }
23318 frvbf_media_overflow (current_cpu, 4);
23319 }
23320 } else {
23321   {
23322     DI opval = tmp_tmp;
23323     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
23324     written |= (1 << 5);
23325     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23326   }
23327 }
23328 }
23329 }
23330 }
23331 }
23332 }
23333 }
23334 }
23335
23336   abuf->written = written;
23337   return vpc;
23338 #undef FLD
23339 }
23340
23341 /* mdasaccs: mdasaccs$pack $ACC40Si,$ACC40Sk */
23342
23343 static SEM_PC
23344 SEM_FN_NAME (frvbf,mdasaccs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23345 {
23346 #define FLD(f) abuf->fields.sfmt_mdasaccs.f
23347   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23348   int UNUSED written = 0;
23349   IADDR UNUSED pc = abuf->addr;
23350   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23351
23352 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Si))) {
23353 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
23354 if (ANDSI (FLD (f_ACC40Si), SUBSI (4, 1))) {
23355 frvbf_media_acc_not_aligned (current_cpu);
23356 } else {
23357 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
23358 frvbf_media_acc_not_aligned (current_cpu);
23359 } else {
23360 {
23361 {
23362   DI tmp_tmp;
23363   tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_ACC40S (ADDSI (FLD (f_ACC40Si), 1)));
23364 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
23365 {
23366   {
23367     DI opval = MAKEDI (127, 0xffffffff);
23368     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23369     written |= (1 << 6);
23370     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23371   }
23372 frvbf_media_overflow (current_cpu, 8);
23373 }
23374 } else {
23375 if (LTDI (tmp_tmp, INVDI (MAKEDI (127, 0xffffffff)))) {
23376 {
23377   {
23378     DI opval = INVDI (MAKEDI (127, 0xffffffff));
23379     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23380     written |= (1 << 6);
23381     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23382   }
23383 frvbf_media_overflow (current_cpu, 8);
23384 }
23385 } else {
23386   {
23387     DI opval = tmp_tmp;
23388     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23389     written |= (1 << 6);
23390     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23391   }
23392 }
23393 }
23394 }
23395 {
23396   DI tmp_tmp;
23397   tmp_tmp = SUBDI (GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_ACC40S (ADDSI (FLD (f_ACC40Si), 1)));
23398 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
23399 {
23400   {
23401     DI opval = MAKEDI (127, 0xffffffff);
23402     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
23403     written |= (1 << 7);
23404     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23405   }
23406 frvbf_media_overflow (current_cpu, 4);
23407 }
23408 } else {
23409 if (LTDI (tmp_tmp, INVDI (MAKEDI (127, 0xffffffff)))) {
23410 {
23411   {
23412     DI opval = INVDI (MAKEDI (127, 0xffffffff));
23413     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
23414     written |= (1 << 7);
23415     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23416   }
23417 frvbf_media_overflow (current_cpu, 4);
23418 }
23419 } else {
23420   {
23421     DI opval = tmp_tmp;
23422     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
23423     written |= (1 << 7);
23424     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23425   }
23426 }
23427 }
23428 }
23429 {
23430   DI tmp_tmp;
23431   tmp_tmp = ADDDI (GET_H_ACC40S (ADDSI (FLD (f_ACC40Si), 2)), GET_H_ACC40S (ADDSI (FLD (f_ACC40Si), 3)));
23432 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
23433 {
23434   {
23435     DI opval = MAKEDI (127, 0xffffffff);
23436     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 2), opval);
23437     written |= (1 << 8);
23438     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23439   }
23440 frvbf_media_overflow (current_cpu, 2);
23441 }
23442 } else {
23443 if (LTDI (tmp_tmp, INVDI (MAKEDI (127, 0xffffffff)))) {
23444 {
23445   {
23446     DI opval = INVDI (MAKEDI (127, 0xffffffff));
23447     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 2), opval);
23448     written |= (1 << 8);
23449     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23450   }
23451 frvbf_media_overflow (current_cpu, 2);
23452 }
23453 } else {
23454   {
23455     DI opval = tmp_tmp;
23456     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 2), opval);
23457     written |= (1 << 8);
23458     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23459   }
23460 }
23461 }
23462 }
23463 {
23464   DI tmp_tmp;
23465   tmp_tmp = SUBDI (GET_H_ACC40S (ADDSI (FLD (f_ACC40Si), 2)), GET_H_ACC40S (ADDSI (FLD (f_ACC40Si), 3)));
23466 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
23467 {
23468   {
23469     DI opval = MAKEDI (127, 0xffffffff);
23470     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 3), opval);
23471     written |= (1 << 9);
23472     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23473   }
23474 frvbf_media_overflow (current_cpu, 1);
23475 }
23476 } else {
23477 if (LTDI (tmp_tmp, INVDI (MAKEDI (127, 0xffffffff)))) {
23478 {
23479   {
23480     DI opval = INVDI (MAKEDI (127, 0xffffffff));
23481     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 3), opval);
23482     written |= (1 << 9);
23483     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23484   }
23485 frvbf_media_overflow (current_cpu, 1);
23486 }
23487 } else {
23488   {
23489     DI opval = tmp_tmp;
23490     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 3), opval);
23491     written |= (1 << 9);
23492     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23493   }
23494 }
23495 }
23496 }
23497 }
23498 }
23499 }
23500 }
23501 }
23502
23503   abuf->written = written;
23504   return vpc;
23505 #undef FLD
23506 }
23507
23508 /* mmulhs: mmulhs$pack $FRinti,$FRintj,$ACC40Sk */
23509
23510 static SEM_PC
23511 SEM_FN_NAME (frvbf,mmulhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23512 {
23513 #define FLD(f) abuf->fields.sfmt_cmmachs.f
23514   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23515   int UNUSED written = 0;
23516   IADDR UNUSED pc = abuf->addr;
23517   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23518
23519 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
23520 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
23521 frvbf_media_acc_not_aligned (current_cpu);
23522 } else {
23523 {
23524   HI tmp_argihi;
23525   HI tmp_argilo;
23526   HI tmp_argjhi;
23527   HI tmp_argjlo;
23528 {
23529   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23530   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23531   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23532   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23533 }
23534   {
23535     DI opval = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
23536     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23537     written |= (1 << 9);
23538     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23539   }
23540   {
23541     DI opval = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
23542     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
23543     written |= (1 << 10);
23544     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23545   }
23546 }
23547 }
23548 }
23549
23550   abuf->written = written;
23551   return vpc;
23552 #undef FLD
23553 }
23554
23555 /* mmulhu: mmulhu$pack $FRinti,$FRintj,$ACC40Sk */
23556
23557 static SEM_PC
23558 SEM_FN_NAME (frvbf,mmulhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23559 {
23560 #define FLD(f) abuf->fields.sfmt_cmmachs.f
23561   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23562   int UNUSED written = 0;
23563   IADDR UNUSED pc = abuf->addr;
23564   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23565
23566 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
23567 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
23568 frvbf_media_acc_not_aligned (current_cpu);
23569 } else {
23570 {
23571   UHI tmp_argihi;
23572   UHI tmp_argilo;
23573   UHI tmp_argjhi;
23574   UHI tmp_argjlo;
23575 {
23576   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23577   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23578   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23579   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23580 }
23581   {
23582     DI opval = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
23583     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23584     written |= (1 << 9);
23585     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23586   }
23587   {
23588     DI opval = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
23589     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
23590     written |= (1 << 10);
23591     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23592   }
23593 }
23594 }
23595 }
23596
23597   abuf->written = written;
23598   return vpc;
23599 #undef FLD
23600 }
23601
23602 /* mmulxhs: mmulxhs$pack $FRinti,$FRintj,$ACC40Sk */
23603
23604 static SEM_PC
23605 SEM_FN_NAME (frvbf,mmulxhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23606 {
23607 #define FLD(f) abuf->fields.sfmt_cmmachs.f
23608   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23609   int UNUSED written = 0;
23610   IADDR UNUSED pc = abuf->addr;
23611   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23612
23613 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
23614 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
23615 frvbf_media_acc_not_aligned (current_cpu);
23616 } else {
23617 {
23618   HI tmp_argihi;
23619   HI tmp_argilo;
23620   HI tmp_argjhi;
23621   HI tmp_argjlo;
23622 {
23623   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23624   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23625   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23626   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23627 }
23628   {
23629     DI opval = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo));
23630     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23631     written |= (1 << 9);
23632     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23633   }
23634   {
23635     DI opval = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi));
23636     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
23637     written |= (1 << 10);
23638     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23639   }
23640 }
23641 }
23642 }
23643
23644   abuf->written = written;
23645   return vpc;
23646 #undef FLD
23647 }
23648
23649 /* mmulxhu: mmulxhu$pack $FRinti,$FRintj,$ACC40Sk */
23650
23651 static SEM_PC
23652 SEM_FN_NAME (frvbf,mmulxhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23653 {
23654 #define FLD(f) abuf->fields.sfmt_cmmachs.f
23655   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23656   int UNUSED written = 0;
23657   IADDR UNUSED pc = abuf->addr;
23658   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23659
23660 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
23661 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
23662 frvbf_media_acc_not_aligned (current_cpu);
23663 } else {
23664 {
23665   UHI tmp_argihi;
23666   UHI tmp_argilo;
23667   UHI tmp_argjhi;
23668   UHI tmp_argjlo;
23669 {
23670   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23671   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23672   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23673   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23674 }
23675   {
23676     DI opval = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjlo));
23677     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23678     written |= (1 << 9);
23679     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23680   }
23681   {
23682     DI opval = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjhi));
23683     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
23684     written |= (1 << 10);
23685     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23686   }
23687 }
23688 }
23689 }
23690
23691   abuf->written = written;
23692   return vpc;
23693 #undef FLD
23694 }
23695
23696 /* cmmulhs: cmmulhs$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
23697
23698 static SEM_PC
23699 SEM_FN_NAME (frvbf,cmmulhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23700 {
23701 #define FLD(f) abuf->fields.sfmt_cmmachs.f
23702   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23703   int UNUSED written = 0;
23704   IADDR UNUSED pc = abuf->addr;
23705   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23706
23707 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
23708 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
23709 frvbf_media_acc_not_aligned (current_cpu);
23710 } else {
23711 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
23712 {
23713   HI tmp_argihi;
23714   HI tmp_argilo;
23715   HI tmp_argjhi;
23716   HI tmp_argjlo;
23717 {
23718   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23719   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23720   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23721   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23722 }
23723   {
23724     DI opval = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
23725     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23726     written |= (1 << 11);
23727     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23728   }
23729   {
23730     DI opval = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
23731     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
23732     written |= (1 << 12);
23733     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23734   }
23735 }
23736 }
23737 }
23738 }
23739
23740   abuf->written = written;
23741   return vpc;
23742 #undef FLD
23743 }
23744
23745 /* cmmulhu: cmmulhu$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
23746
23747 static SEM_PC
23748 SEM_FN_NAME (frvbf,cmmulhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23749 {
23750 #define FLD(f) abuf->fields.sfmt_cmmachs.f
23751   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23752   int UNUSED written = 0;
23753   IADDR UNUSED pc = abuf->addr;
23754   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23755
23756 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
23757 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
23758 frvbf_media_acc_not_aligned (current_cpu);
23759 } else {
23760 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
23761 {
23762   UHI tmp_argihi;
23763   UHI tmp_argilo;
23764   UHI tmp_argjhi;
23765   UHI tmp_argjlo;
23766 {
23767   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23768   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23769   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23770   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23771 }
23772   {
23773     DI opval = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
23774     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23775     written |= (1 << 11);
23776     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23777   }
23778   {
23779     DI opval = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
23780     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
23781     written |= (1 << 12);
23782     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23783   }
23784 }
23785 }
23786 }
23787 }
23788
23789   abuf->written = written;
23790   return vpc;
23791 #undef FLD
23792 }
23793
23794 /* mqmulhs: mqmulhs$pack $FRintieven,$FRintjeven,$ACC40Sk */
23795
23796 static SEM_PC
23797 SEM_FN_NAME (frvbf,mqmulhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23798 {
23799 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
23800   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23801   int UNUSED written = 0;
23802   IADDR UNUSED pc = abuf->addr;
23803   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23804
23805 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
23806 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
23807 frvbf_media_acc_not_aligned (current_cpu);
23808 } else {
23809 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
23810 frvbf_media_register_not_aligned (current_cpu);
23811 } else {
23812 {
23813   HI tmp_argihi;
23814   HI tmp_argilo;
23815   HI tmp_argjhi;
23816   HI tmp_argjlo;
23817 {
23818   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23819   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23820   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23821   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23822 }
23823   {
23824     DI opval = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
23825     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23826     written |= (1 << 13);
23827     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23828   }
23829   {
23830     DI opval = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
23831     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
23832     written |= (1 << 14);
23833     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23834   }
23835 {
23836   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23837   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23838   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23839   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23840 }
23841   {
23842     DI opval = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
23843     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 2), opval);
23844     written |= (1 << 15);
23845     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23846   }
23847   {
23848     DI opval = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
23849     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 3), opval);
23850     written |= (1 << 16);
23851     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23852   }
23853 }
23854 }
23855 }
23856 }
23857
23858   abuf->written = written;
23859   return vpc;
23860 #undef FLD
23861 }
23862
23863 /* mqmulhu: mqmulhu$pack $FRintieven,$FRintjeven,$ACC40Sk */
23864
23865 static SEM_PC
23866 SEM_FN_NAME (frvbf,mqmulhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23867 {
23868 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
23869   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23870   int UNUSED written = 0;
23871   IADDR UNUSED pc = abuf->addr;
23872   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23873
23874 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
23875 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
23876 frvbf_media_acc_not_aligned (current_cpu);
23877 } else {
23878 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
23879 frvbf_media_register_not_aligned (current_cpu);
23880 } else {
23881 {
23882   UHI tmp_argihi;
23883   UHI tmp_argilo;
23884   UHI tmp_argjhi;
23885   UHI tmp_argjlo;
23886 {
23887   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23888   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23889   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23890   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23891 }
23892   {
23893     DI opval = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
23894     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23895     written |= (1 << 13);
23896     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23897   }
23898   {
23899     DI opval = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
23900     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
23901     written |= (1 << 14);
23902     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23903   }
23904 {
23905   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23906   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23907   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23908   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23909 }
23910   {
23911     DI opval = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
23912     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 2), opval);
23913     written |= (1 << 15);
23914     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23915   }
23916   {
23917     DI opval = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
23918     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 3), opval);
23919     written |= (1 << 16);
23920     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23921   }
23922 }
23923 }
23924 }
23925 }
23926
23927   abuf->written = written;
23928   return vpc;
23929 #undef FLD
23930 }
23931
23932 /* mqmulxhs: mqmulxhs$pack $FRintieven,$FRintjeven,$ACC40Sk */
23933
23934 static SEM_PC
23935 SEM_FN_NAME (frvbf,mqmulxhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23936 {
23937 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
23938   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23939   int UNUSED written = 0;
23940   IADDR UNUSED pc = abuf->addr;
23941   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23942
23943 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
23944 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
23945 frvbf_media_acc_not_aligned (current_cpu);
23946 } else {
23947 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
23948 frvbf_media_register_not_aligned (current_cpu);
23949 } else {
23950 {
23951   HI tmp_argihi;
23952   HI tmp_argilo;
23953   HI tmp_argjhi;
23954   HI tmp_argjlo;
23955 {
23956   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23957   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23958   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23959   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23960 }
23961   {
23962     DI opval = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo));
23963     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23964     written |= (1 << 13);
23965     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23966   }
23967   {
23968     DI opval = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi));
23969     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
23970     written |= (1 << 14);
23971     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23972   }
23973 {
23974   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23975   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23976   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23977   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23978 }
23979   {
23980     DI opval = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo));
23981     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 2), opval);
23982     written |= (1 << 15);
23983     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23984   }
23985   {
23986     DI opval = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi));
23987     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 3), opval);
23988     written |= (1 << 16);
23989     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23990   }
23991 }
23992 }
23993 }
23994 }
23995
23996   abuf->written = written;
23997   return vpc;
23998 #undef FLD
23999 }
24000
24001 /* mqmulxhu: mqmulxhu$pack $FRintieven,$FRintjeven,$ACC40Sk */
24002
24003 static SEM_PC
24004 SEM_FN_NAME (frvbf,mqmulxhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
24005 {
24006 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
24007   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
24008   int UNUSED written = 0;
24009   IADDR UNUSED pc = abuf->addr;
24010   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
24011
24012 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
24013 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
24014 frvbf_media_acc_not_aligned (current_cpu);
24015 } else {
24016 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
24017 frvbf_media_register_not_aligned (current_cpu);
24018 } else {
24019 {
24020   UHI tmp_argihi;
24021   UHI tmp_argilo;
24022   UHI tmp_argjhi;
24023   UHI tmp_argjlo;
24024 {
24025   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24026   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24027   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24028   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24029 }
24030   {
24031     DI opval = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjlo));
24032     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24033     written |= (1 << 13);
24034     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24035   }
24036   {
24037     DI opval = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjhi));
24038     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
24039     written |= (1 << 14);
24040     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24041   }
24042 {
24043   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24044   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24045   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24046   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24047 }
24048   {
24049     DI opval = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjlo));
24050     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 2), opval);
24051     written |= (1 << 15);
24052     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24053   }
24054   {
24055     DI opval = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjhi));
24056     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 3), opval);
24057     written |= (1 << 16);
24058     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24059   }
24060 }
24061 }
24062 }
24063 }
24064
24065   abuf->written = written;
24066   return vpc;
24067 #undef FLD
24068 }
24069
24070 /* cmqmulhs: cmqmulhs$pack $FRintieven,$FRintjeven,$ACC40Sk,$CCi,$cond */
24071
24072 static SEM_PC
24073 SEM_FN_NAME (frvbf,cmqmulhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
24074 {
24075 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
24076   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
24077   int UNUSED written = 0;
24078   IADDR UNUSED pc = abuf->addr;
24079   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
24080
24081 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
24082 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
24083 frvbf_media_acc_not_aligned (current_cpu);
24084 } else {
24085 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
24086 frvbf_media_register_not_aligned (current_cpu);
24087 } else {
24088 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
24089 {
24090   HI tmp_argihi;
24091   HI tmp_argilo;
24092   HI tmp_argjhi;
24093   HI tmp_argjlo;
24094 {
24095   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24096   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24097   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24098   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24099 }
24100   {
24101     DI opval = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
24102     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24103     written |= (1 << 15);
24104     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24105   }
24106   {
24107     DI opval = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
24108     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
24109     written |= (1 << 16);
24110     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24111   }
24112 {
24113   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24114   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24115   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24116   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24117 }
24118   {
24119     DI opval = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
24120     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 2), opval);
24121     written |= (1 << 17);
24122     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24123   }
24124   {
24125     DI opval = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
24126     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 3), opval);
24127     written |= (1 << 18);
24128     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24129   }
24130 }
24131 }
24132 }
24133 }
24134 }
24135
24136   abuf->written = written;
24137   return vpc;
24138 #undef FLD
24139 }
24140
24141 /* cmqmulhu: cmqmulhu$pack $FRintieven,$FRintjeven,$ACC40Sk,$CCi,$cond */
24142
24143 static SEM_PC
24144 SEM_FN_NAME (frvbf,cmqmulhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
24145 {
24146 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
24147   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
24148   int UNUSED written = 0;
24149   IADDR UNUSED pc = abuf->addr;
24150   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
24151
24152 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
24153 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
24154 frvbf_media_acc_not_aligned (current_cpu);
24155 } else {
24156 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
24157 frvbf_media_register_not_aligned (current_cpu);
24158 } else {
24159 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
24160 {
24161   UHI tmp_argihi;
24162   UHI tmp_argilo;
24163   UHI tmp_argjhi;
24164   UHI tmp_argjlo;
24165 {
24166   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24167   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24168   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24169   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24170 }
24171   {
24172     DI opval = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
24173     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24174     written |= (1 << 15);
24175     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24176   }
24177   {
24178     DI opval = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
24179     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
24180     written |= (1 << 16);
24181     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24182   }
24183 {
24184   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24185   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24186   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24187   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24188 }
24189   {
24190     DI opval = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
24191     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 2), opval);
24192     written |= (1 << 17);
24193     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24194   }
24195   {
24196     DI opval = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
24197     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 3), opval);
24198     written |= (1 << 18);
24199     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24200   }
24201 }
24202 }
24203 }
24204 }
24205 }
24206
24207   abuf->written = written;
24208   return vpc;
24209 #undef FLD
24210 }
24211
24212 /* mmachs: mmachs$pack $FRinti,$FRintj,$ACC40Sk */
24213
24214 static SEM_PC
24215 SEM_FN_NAME (frvbf,mmachs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
24216 {
24217 #define FLD(f) abuf->fields.sfmt_cmmachs.f
24218   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
24219   int UNUSED written = 0;
24220   IADDR UNUSED pc = abuf->addr;
24221   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
24222
24223 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
24224 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
24225 frvbf_media_acc_not_aligned (current_cpu);
24226 } else {
24227 {
24228   HI tmp_argihi;
24229   HI tmp_argilo;
24230   HI tmp_argjhi;
24231   HI tmp_argjlo;
24232 {
24233   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24234   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24235   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24236   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24237 }
24238 {
24239   DI tmp_tmp;
24240   tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Sk)), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi)));
24241 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24242 {
24243   {
24244     DI opval = MAKEDI (127, 0xffffffff);
24245     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24246     written |= (1 << 11);
24247     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24248   }
24249 frvbf_media_overflow (current_cpu, 8);
24250 }
24251 } else {
24252 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24253 {
24254   {
24255     DI opval = MAKEDI (0xffffff80, 0);
24256     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24257     written |= (1 << 11);
24258     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24259   }
24260 frvbf_media_overflow (current_cpu, 8);
24261 }
24262 } else {
24263   {
24264     DI opval = tmp_tmp;
24265     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24266     written |= (1 << 11);
24267     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24268   }
24269 }
24270 }
24271 }
24272 {
24273   DI tmp_tmp;
24274   tmp_tmp = ADDDI (GET_H_ACC40S (ADDSI (FLD (f_ACC40Sk), 1)), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo)));
24275 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24276 {
24277   {
24278     DI opval = MAKEDI (127, 0xffffffff);
24279     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
24280     written |= (1 << 12);
24281     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24282   }
24283 frvbf_media_overflow (current_cpu, 4);
24284 }
24285 } else {
24286 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24287 {
24288   {
24289     DI opval = MAKEDI (0xffffff80, 0);
24290     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
24291     written |= (1 << 12);
24292     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24293   }
24294 frvbf_media_overflow (current_cpu, 4);
24295 }
24296 } else {
24297   {
24298     DI opval = tmp_tmp;
24299     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
24300     written |= (1 << 12);
24301     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24302   }
24303 }
24304 }
24305 }
24306 }
24307 }
24308 }
24309
24310   abuf->written = written;
24311   return vpc;
24312 #undef FLD
24313 }
24314
24315 /* mmachu: mmachu$pack $FRinti,$FRintj,$ACC40Uk */
24316
24317 static SEM_PC
24318 SEM_FN_NAME (frvbf,mmachu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
24319 {
24320 #define FLD(f) abuf->fields.sfmt_cmmachu.f
24321   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
24322   int UNUSED written = 0;
24323   IADDR UNUSED pc = abuf->addr;
24324   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
24325
24326 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Uk))) {
24327 if (ANDSI (FLD (f_ACC40Uk), SUBSI (2, 1))) {
24328 frvbf_media_acc_not_aligned (current_cpu);
24329 } else {
24330 {
24331   UHI tmp_argihi;
24332   UHI tmp_argilo;
24333   UHI tmp_argjhi;
24334   UHI tmp_argjlo;
24335 {
24336   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24337   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24338   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24339   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24340 }
24341 {
24342   DI tmp_tmp;
24343   tmp_tmp = ADDDI (GET_H_ACC40U (FLD (f_ACC40Uk)), MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi)));
24344 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
24345 {
24346   {
24347     UDI opval = MAKEDI (255, 0xffffffff);
24348     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24349     written |= (1 << 11);
24350     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24351   }
24352 frvbf_media_overflow (current_cpu, 8);
24353 }
24354 } else {
24355 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
24356 {
24357   {
24358     UDI opval = MAKEDI (0, 0);
24359     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24360     written |= (1 << 11);
24361     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24362   }
24363 frvbf_media_overflow (current_cpu, 8);
24364 }
24365 } else {
24366   {
24367     UDI opval = tmp_tmp;
24368     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24369     written |= (1 << 11);
24370     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24371   }
24372 }
24373 }
24374 }
24375 {
24376   DI tmp_tmp;
24377   tmp_tmp = ADDDI (GET_H_ACC40U (ADDSI (FLD (f_ACC40Uk), 1)), MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo)));
24378 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
24379 {
24380   {
24381     UDI opval = MAKEDI (255, 0xffffffff);
24382     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ADDSI (FLD (f_ACC40Uk), 1), opval);
24383     written |= (1 << 12);
24384     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24385   }
24386 frvbf_media_overflow (current_cpu, 4);
24387 }
24388 } else {
24389 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
24390 {
24391   {
24392     UDI opval = MAKEDI (0, 0);
24393     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ADDSI (FLD (f_ACC40Uk), 1), opval);
24394     written |= (1 << 12);
24395     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24396   }
24397 frvbf_media_overflow (current_cpu, 4);
24398 }
24399 } else {
24400   {
24401     UDI opval = tmp_tmp;
24402     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ADDSI (FLD (f_ACC40Uk), 1), opval);
24403     written |= (1 << 12);
24404     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24405   }
24406 }
24407 }
24408 }
24409 }
24410 }
24411 }
24412
24413   abuf->written = written;
24414   return vpc;
24415 #undef FLD
24416 }
24417
24418 /* mmrdhs: mmrdhs$pack $FRinti,$FRintj,$ACC40Sk */
24419
24420 static SEM_PC
24421 SEM_FN_NAME (frvbf,mmrdhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
24422 {
24423 #define FLD(f) abuf->fields.sfmt_cmmachs.f
24424   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
24425   int UNUSED written = 0;
24426   IADDR UNUSED pc = abuf->addr;
24427   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
24428
24429 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
24430 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
24431 frvbf_media_acc_not_aligned (current_cpu);
24432 } else {
24433 {
24434   HI tmp_argihi;
24435   HI tmp_argilo;
24436   HI tmp_argjhi;
24437   HI tmp_argjlo;
24438 {
24439   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24440   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24441   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24442   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24443 }
24444 {
24445   DI tmp_tmp;
24446   tmp_tmp = SUBDI (GET_H_ACC40S (FLD (f_ACC40Sk)), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi)));
24447 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24448 {
24449   {
24450     DI opval = MAKEDI (127, 0xffffffff);
24451     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24452     written |= (1 << 11);
24453     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24454   }
24455 frvbf_media_overflow (current_cpu, 8);
24456 }
24457 } else {
24458 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24459 {
24460   {
24461     DI opval = MAKEDI (0xffffff80, 0);
24462     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24463     written |= (1 << 11);
24464     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24465   }
24466 frvbf_media_overflow (current_cpu, 8);
24467 }
24468 } else {
24469   {
24470     DI opval = tmp_tmp;
24471     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24472     written |= (1 << 11);
24473     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24474   }
24475 }
24476 }
24477 }
24478 {
24479   DI tmp_tmp;
24480   tmp_tmp = SUBDI (GET_H_ACC40S (ADDSI (FLD (f_ACC40Sk), 1)), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo)));
24481 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24482 {
24483   {
24484     DI opval = MAKEDI (127, 0xffffffff);
24485     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
24486     written |= (1 << 12);
24487     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24488   }
24489 frvbf_media_overflow (current_cpu, 4);
24490 }
24491 } else {
24492 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24493 {
24494   {
24495     DI opval = MAKEDI (0xffffff80, 0);
24496     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
24497     written |= (1 << 12);
24498     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24499   }
24500 frvbf_media_overflow (current_cpu, 4);
24501 }
24502 } else {
24503   {
24504     DI opval = tmp_tmp;
24505     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
24506     written |= (1 << 12);
24507     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24508   }
24509 }
24510 }
24511 }
24512 }
24513 }
24514 }
24515
24516   abuf->written = written;
24517   return vpc;
24518 #undef FLD
24519 }
24520
24521 /* mmrdhu: mmrdhu$pack $FRinti,$FRintj,$ACC40Uk */
24522
24523 static SEM_PC
24524 SEM_FN_NAME (frvbf,mmrdhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
24525 {
24526 #define FLD(f) abuf->fields.sfmt_cmmachu.f
24527   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
24528   int UNUSED written = 0;
24529   IADDR UNUSED pc = abuf->addr;
24530   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
24531
24532 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Uk))) {
24533 if (ANDSI (FLD (f_ACC40Uk), SUBSI (2, 1))) {
24534 frvbf_media_acc_not_aligned (current_cpu);
24535 } else {
24536 {
24537   UHI tmp_argihi;
24538   UHI tmp_argilo;
24539   UHI tmp_argjhi;
24540   UHI tmp_argjlo;
24541 {
24542   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24543   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24544   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24545   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24546 }
24547 {
24548   DI tmp_tmp;
24549   tmp_tmp = SUBDI (GET_H_ACC40U (FLD (f_ACC40Uk)), MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi)));
24550 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
24551 {
24552   {
24553     UDI opval = MAKEDI (255, 0xffffffff);
24554     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24555     written |= (1 << 11);
24556     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24557   }
24558 frvbf_media_overflow (current_cpu, 8);
24559 }
24560 } else {
24561 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
24562 {
24563   {
24564     UDI opval = MAKEDI (0, 0);
24565     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24566     written |= (1 << 11);
24567     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24568   }
24569 frvbf_media_overflow (current_cpu, 8);
24570 }
24571 } else {
24572   {
24573     UDI opval = tmp_tmp;
24574     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24575     written |= (1 << 11);
24576     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24577   }
24578 }
24579 }
24580 }
24581 {
24582   DI tmp_tmp;
24583   tmp_tmp = SUBDI (GET_H_ACC40U (ADDSI (FLD (f_ACC40Uk), 1)), MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo)));
24584 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
24585 {
24586   {
24587     UDI opval = MAKEDI (255, 0xffffffff);
24588     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ADDSI (FLD (f_ACC40Uk), 1), opval);
24589     written |= (1 << 12);
24590     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24591   }
24592 frvbf_media_overflow (current_cpu, 4);
24593 }
24594 } else {
24595 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
24596 {
24597   {
24598     UDI opval = MAKEDI (0, 0);
24599     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ADDSI (FLD (f_ACC40Uk), 1), opval);
24600     written |= (1 << 12);
24601     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24602   }
24603 frvbf_media_overflow (current_cpu, 4);
24604 }
24605 } else {
24606   {
24607     UDI opval = tmp_tmp;
24608     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ADDSI (FLD (f_ACC40Uk), 1), opval);
24609     written |= (1 << 12);
24610     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24611   }
24612 }
24613 }
24614 }
24615 }
24616 }
24617 }
24618
24619   abuf->written = written;
24620   return vpc;
24621 #undef FLD
24622 }
24623
24624 /* cmmachs: cmmachs$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
24625
24626 static SEM_PC
24627 SEM_FN_NAME (frvbf,cmmachs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
24628 {
24629 #define FLD(f) abuf->fields.sfmt_cmmachs.f
24630   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
24631   int UNUSED written = 0;
24632   IADDR UNUSED pc = abuf->addr;
24633   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
24634
24635 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
24636 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
24637 frvbf_media_acc_not_aligned (current_cpu);
24638 } else {
24639 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
24640 {
24641   HI tmp_argihi;
24642   HI tmp_argilo;
24643   HI tmp_argjhi;
24644   HI tmp_argjlo;
24645 {
24646   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24647   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24648   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24649   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24650 }
24651 {
24652   DI tmp_tmp;
24653   tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Sk)), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi)));
24654 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24655 {
24656   {
24657     DI opval = MAKEDI (127, 0xffffffff);
24658     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24659     written |= (1 << 13);
24660     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24661   }
24662 frvbf_media_overflow (current_cpu, 8);
24663 }
24664 } else {
24665 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24666 {
24667   {
24668     DI opval = MAKEDI (0xffffff80, 0);
24669     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24670     written |= (1 << 13);
24671     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24672   }
24673 frvbf_media_overflow (current_cpu, 8);
24674 }
24675 } else {
24676   {
24677     DI opval = tmp_tmp;
24678     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24679     written |= (1 << 13);
24680     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24681   }
24682 }
24683 }
24684 }
24685 {
24686   DI tmp_tmp;
24687   tmp_tmp = ADDDI (GET_H_ACC40S (ADDSI (FLD (f_ACC40Sk), 1)), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo)));
24688 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24689 {
24690   {
24691     DI opval = MAKEDI (127, 0xffffffff);
24692     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
24693     written |= (1 << 14);
24694     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24695   }
24696 frvbf_media_overflow (current_cpu, 4);
24697 }
24698 } else {
24699 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24700 {
24701   {
24702     DI opval = MAKEDI (0xffffff80, 0);
24703     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
24704     written |= (1 << 14);
24705     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24706   }
24707 frvbf_media_overflow (current_cpu, 4);
24708 }
24709 } else {
24710   {
24711     DI opval = tmp_tmp;
24712     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
24713     written |= (1 << 14);
24714     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24715   }
24716 }
24717 }
24718 }
24719 }
24720 }
24721 }
24722 }
24723
24724   abuf->written = written;
24725   return vpc;
24726 #undef FLD
24727 }
24728
24729 /* cmmachu: cmmachu$pack $FRinti,$FRintj,$ACC40Uk,$CCi,$cond */
24730
24731 static SEM_PC
24732 SEM_FN_NAME (frvbf,cmmachu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
24733 {
24734 #define FLD(f) abuf->fields.sfmt_cmmachu.f
24735   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
24736   int UNUSED written = 0;
24737   IADDR UNUSED pc = abuf->addr;
24738   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
24739
24740 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Uk))) {
24741 if (ANDSI (FLD (f_ACC40Uk), SUBSI (2, 1))) {
24742 frvbf_media_acc_not_aligned (current_cpu);
24743 } else {
24744 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
24745 {
24746   UHI tmp_argihi;
24747   UHI tmp_argilo;
24748   UHI tmp_argjhi;
24749   UHI tmp_argjlo;
24750 {
24751   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24752   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24753   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24754   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24755 }
24756 {
24757   DI tmp_tmp;
24758   tmp_tmp = ADDDI (GET_H_ACC40U (FLD (f_ACC40Uk)), MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi)));
24759 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
24760 {
24761   {
24762     UDI opval = MAKEDI (255, 0xffffffff);
24763     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24764     written |= (1 << 13);
24765     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24766   }
24767 frvbf_media_overflow (current_cpu, 8);
24768 }
24769 } else {
24770 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
24771 {
24772   {
24773     UDI opval = MAKEDI (0, 0);
24774     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24775     written |= (1 << 13);
24776     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24777   }
24778 frvbf_media_overflow (current_cpu, 8);
24779 }
24780 } else {
24781   {
24782     UDI opval = tmp_tmp;
24783     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24784     written |= (1 << 13);
24785     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24786   }
24787 }
24788 }
24789 }
24790 {
24791   DI tmp_tmp;
24792   tmp_tmp = ADDDI (GET_H_ACC40U (ADDSI (FLD (f_ACC40Uk), 1)), MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo)));
24793 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
24794 {
24795   {
24796     UDI opval = MAKEDI (255, 0xffffffff);
24797     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ADDSI (FLD (f_ACC40Uk), 1), opval);
24798     written |= (1 << 14);
24799     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24800   }
24801 frvbf_media_overflow (current_cpu, 4);
24802 }
24803 } else {
24804 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
24805 {
24806   {
24807     UDI opval = MAKEDI (0, 0);
24808     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ADDSI (FLD (f_ACC40Uk), 1), opval);
24809     written |= (1 << 14);
24810     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24811   }
24812 frvbf_media_overflow (current_cpu, 4);
24813 }
24814 } else {
24815   {
24816     UDI opval = tmp_tmp;
24817     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ADDSI (FLD (f_ACC40Uk), 1), opval);
24818     written |= (1 << 14);
24819     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24820   }
24821 }
24822 }
24823 }
24824 }
24825 }
24826 }
24827 }
24828
24829   abuf->written = written;
24830   return vpc;
24831 #undef FLD
24832 }
24833
24834 /* mqmachs: mqmachs$pack $FRintieven,$FRintjeven,$ACC40Sk */
24835
24836 static SEM_PC
24837 SEM_FN_NAME (frvbf,mqmachs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
24838 {
24839 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
24840   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
24841   int UNUSED written = 0;
24842   IADDR UNUSED pc = abuf->addr;
24843   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
24844
24845 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
24846 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
24847 frvbf_media_acc_not_aligned (current_cpu);
24848 } else {
24849 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
24850 frvbf_media_register_not_aligned (current_cpu);
24851 } else {
24852 {
24853   HI tmp_argihi;
24854   HI tmp_argilo;
24855   HI tmp_argjhi;
24856   HI tmp_argjlo;
24857 {
24858   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24859   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24860   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24861   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24862 }
24863 {
24864   DI tmp_tmp;
24865   tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Sk)), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi)));
24866 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24867 {
24868   {
24869     DI opval = MAKEDI (127, 0xffffffff);
24870     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24871     written |= (1 << 17);
24872     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24873   }
24874 frvbf_media_overflow (current_cpu, 8);
24875 }
24876 } else {
24877 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24878 {
24879   {
24880     DI opval = MAKEDI (0xffffff80, 0);
24881     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24882     written |= (1 << 17);
24883     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24884   }
24885 frvbf_media_overflow (current_cpu, 8);
24886 }
24887 } else {
24888   {
24889     DI opval = tmp_tmp;
24890     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24891     written |= (1 << 17);
24892     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24893   }
24894 }
24895 }
24896 }
24897 {
24898   DI tmp_tmp;
24899   tmp_tmp = ADDDI (GET_H_ACC40S (ADDSI (FLD (f_ACC40Sk), 1)), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo)));
24900 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24901 {
24902   {
24903     DI opval = MAKEDI (127, 0xffffffff);
24904     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
24905     written |= (1 << 18);
24906     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24907   }
24908 frvbf_media_overflow (current_cpu, 4);
24909 }
24910 } else {
24911 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24912 {
24913   {
24914     DI opval = MAKEDI (0xffffff80, 0);
24915     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
24916     written |= (1 << 18);
24917     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24918   }
24919 frvbf_media_overflow (current_cpu, 4);
24920 }
24921 } else {
24922   {
24923     DI opval = tmp_tmp;
24924     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
24925     written |= (1 << 18);
24926     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24927   }
24928 }
24929 }
24930 }
24931 {
24932   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24933   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24934   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24935   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24936 }
24937 {
24938   DI tmp_tmp;
24939   tmp_tmp = ADDDI (GET_H_ACC40S (ADDSI (FLD (f_ACC40Sk), 2)), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi)));
24940 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24941 {
24942   {
24943     DI opval = MAKEDI (127, 0xffffffff);
24944     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 2), opval);
24945     written |= (1 << 19);
24946     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24947   }
24948 frvbf_media_overflow (current_cpu, 2);
24949 }
24950 } else {
24951 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24952 {
24953   {
24954     DI opval = MAKEDI (0xffffff80, 0);
24955     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 2), opval);
24956     written |= (1 << 19);
24957     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24958   }
24959 frvbf_media_overflow (current_cpu, 2);
24960 }
24961 } else {
24962   {
24963     DI opval = tmp_tmp;
24964     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 2), opval);
24965     written |= (1 << 19);
24966     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24967   }
24968 }
24969 }
24970 }
24971 {
24972   DI tmp_tmp;
24973   tmp_tmp = ADDDI (GET_H_ACC40S (ADDSI (FLD (f_ACC40Sk), 3)), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo)));
24974 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24975 {
24976   {
24977     DI opval = MAKEDI (127, 0xffffffff);
24978     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 3), opval);
24979     written |= (1 << 20);
24980     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24981   }
24982 frvbf_media_overflow (current_cpu, 1);
24983 }
24984 } else {
24985 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24986 {
24987   {
24988     DI opval = MAKEDI (0xffffff80, 0);
24989     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 3), opval);
24990     written |= (1 << 20);
24991     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24992   }
24993 frvbf_media_overflow (current_cpu, 1);
24994 }
24995 } else {
24996   {
24997     DI opval = tmp_tmp;
24998     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 3), opval);
24999     written |= (1 << 20);
25000     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25001   }
25002 }
25003 }
25004 }
25005 }
25006 }
25007 }
25008 }
25009
25010   abuf->written = written;
25011   return vpc;
25012 #undef FLD
25013 }
25014
25015 /* mqmachu: mqmachu$pack $FRintieven,$FRintjeven,$ACC40Uk */
25016
25017 static SEM_PC
25018 SEM_FN_NAME (frvbf,mqmachu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
25019 {
25020 #define FLD(f) abuf->fields.sfmt_cmqmachu.f
25021   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
25022   int UNUSED written = 0;
25023   IADDR UNUSED pc = abuf->addr;
25024   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
25025
25026 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Uk))) {
25027 if (ANDSI (FLD (f_ACC40Uk), SUBSI (4, 1))) {
25028 frvbf_media_acc_not_aligned (current_cpu);
25029 } else {
25030 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
25031 frvbf_media_register_not_aligned (current_cpu);
25032 } else {
25033 {
25034   UHI tmp_argihi;
25035   UHI tmp_argilo;
25036   UHI tmp_argjhi;
25037   UHI tmp_argjlo;
25038 {
25039   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25040   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25041   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25042   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25043 }
25044 {
25045   DI tmp_tmp;
25046   tmp_tmp = ADDDI (GET_H_ACC40U (FLD (f_ACC40Uk)), MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi)));
25047 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
25048 {
25049   {
25050     UDI opval = MAKEDI (255, 0xffffffff);
25051     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
25052     written |= (1 << 17);
25053     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25054   }
25055 frvbf_media_overflow (current_cpu, 8);
25056 }
25057 } else {
25058 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
25059 {
25060   {
25061     UDI opval = MAKEDI (0, 0);
25062     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
25063     written |= (1 << 17);
25064     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25065   }
25066 frvbf_media_overflow (current_cpu, 8);
25067 }
25068 } else {
25069   {
25070     UDI opval = tmp_tmp;
25071     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
25072     written |= (1 << 17);
25073     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25074   }
25075 }
25076 }
25077 }
25078 {
25079   DI tmp_tmp;
25080   tmp_tmp = ADDDI (GET_H_ACC40U (ADDSI (FLD (f_ACC40Uk), 1)), MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo)));
25081 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
25082 {
25083   {
25084     UDI opval = MAKEDI (255, 0xffffffff);
25085     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ADDSI (FLD (f_ACC40Uk), 1), opval);
25086     written |= (1 << 18);
25087     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25088   }
25089 frvbf_media_overflow (current_cpu, 4);
25090 }
25091 } else {
25092 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
25093 {
25094   {
25095     UDI opval = MAKEDI (0, 0);
25096     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ADDSI (FLD (f_ACC40Uk), 1), opval);
25097     written |= (1 << 18);
25098     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25099   }
25100 frvbf_media_overflow (current_cpu, 4);
25101 }
25102 } else {
25103   {
25104     UDI opval = tmp_tmp;
25105     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ADDSI (FLD (f_ACC40Uk), 1), opval);
25106     written |= (1 << 18);
25107     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25108   }
25109 }
25110 }
25111 }
25112 {
25113   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25114   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25115   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25116   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25117 }
25118 {
25119   DI tmp_tmp;
25120   tmp_tmp = ADDDI (GET_H_ACC40U (ADDSI (FLD (f_ACC40Uk), 2)), MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi)));
25121 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
25122 {
25123   {
25124     UDI opval = MAKEDI (255, 0xffffffff);
25125     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ADDSI (FLD (f_ACC40Uk), 2), opval);
25126     written |= (1 << 19);
25127     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25128   }
25129 frvbf_media_overflow (current_cpu, 2);
25130 }
25131 } else {
25132 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
25133 {
25134   {
25135     UDI opval = MAKEDI (0, 0);
25136     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ADDSI (FLD (f_ACC40Uk), 2), opval);
25137     written |= (1 << 19);
25138     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25139   }
25140 frvbf_media_overflow (current_cpu, 2);
25141 }
25142 } else {
25143   {
25144     UDI opval = tmp_tmp;
25145     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ADDSI (FLD (f_ACC40Uk), 2), opval);
25146     written |= (1 << 19);
25147     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25148   }
25149 }
25150 }
25151 }
25152 {
25153   DI tmp_tmp;
25154   tmp_tmp = ADDDI (GET_H_ACC40U (ADDSI (FLD (f_ACC40Uk), 3)), MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo)));
25155 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
25156 {
25157   {
25158     UDI opval = MAKEDI (255, 0xffffffff);
25159     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ADDSI (FLD (f_ACC40Uk), 3), opval);
25160     written |= (1 << 20);
25161     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25162   }
25163 frvbf_media_overflow (current_cpu, 1);
25164 }
25165 } else {
25166 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
25167 {
25168   {
25169     UDI opval = MAKEDI (0, 0);
25170     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ADDSI (FLD (f_ACC40Uk), 3), opval);
25171     written |= (1 << 20);
25172     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25173   }
25174 frvbf_media_overflow (current_cpu, 1);
25175 }
25176 } else {
25177   {
25178     UDI opval = tmp_tmp;
25179     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ADDSI (FLD (f_ACC40Uk), 3), opval);
25180     written |= (1 << 20);
25181     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25182   }
25183 }
25184 }
25185 }
25186 }
25187 }
25188 }
25189 }
25190
25191   abuf->written = written;
25192   return vpc;
25193 #undef FLD
25194 }
25195
25196 /* cmqmachs: cmqmachs$pack $FRintieven,$FRintjeven,$ACC40Sk,$CCi,$cond */
25197
25198 static SEM_PC
25199 SEM_FN_NAME (frvbf,cmqmachs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
25200 {
25201 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
25202   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
25203   int UNUSED written = 0;
25204   IADDR UNUSED pc = abuf->addr;
25205   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
25206
25207 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
25208 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
25209 frvbf_media_acc_not_aligned (current_cpu);
25210 } else {
25211 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
25212 frvbf_media_register_not_aligned (current_cpu);
25213 } else {
25214 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
25215 {
25216   HI tmp_argihi;
25217   HI tmp_argilo;
25218   HI tmp_argjhi;
25219   HI tmp_argjlo;
25220 {
25221   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25222   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25223   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25224   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25225 }
25226 {
25227   DI tmp_tmp;
25228   tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Sk)), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi)));
25229 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25230 {
25231   {
25232     DI opval = MAKEDI (127, 0xffffffff);
25233     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25234     written |= (1 << 19);
25235     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25236   }
25237 frvbf_media_overflow (current_cpu, 8);
25238 }
25239 } else {
25240 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25241 {
25242   {
25243     DI opval = MAKEDI (0xffffff80, 0);
25244     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25245     written |= (1 << 19);
25246     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25247   }
25248 frvbf_media_overflow (current_cpu, 8);
25249 }
25250 } else {
25251   {
25252     DI opval = tmp_tmp;
25253     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25254     written |= (1 << 19);
25255     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25256   }
25257 }
25258 }
25259 }
25260 {
25261   DI tmp_tmp;
25262   tmp_tmp = ADDDI (GET_H_ACC40S (ADDSI (FLD (f_ACC40Sk), 1)), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo)));
25263 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25264 {
25265   {
25266     DI opval = MAKEDI (127, 0xffffffff);
25267     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
25268     written |= (1 << 20);
25269     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25270   }
25271 frvbf_media_overflow (current_cpu, 4);
25272 }
25273 } else {
25274 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25275 {
25276   {
25277     DI opval = MAKEDI (0xffffff80, 0);
25278     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
25279     written |= (1 << 20);
25280     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25281   }
25282 frvbf_media_overflow (current_cpu, 4);
25283 }
25284 } else {
25285   {
25286     DI opval = tmp_tmp;
25287     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
25288     written |= (1 << 20);
25289     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25290   }
25291 }
25292 }
25293 }
25294 {
25295   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25296   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25297   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25298   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25299 }
25300 {
25301   DI tmp_tmp;
25302   tmp_tmp = ADDDI (GET_H_ACC40S (ADDSI (FLD (f_ACC40Sk), 2)), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi)));
25303 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25304 {
25305   {
25306     DI opval = MAKEDI (127, 0xffffffff);
25307     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 2), opval);
25308     written |= (1 << 21);
25309     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25310   }
25311 frvbf_media_overflow (current_cpu, 2);
25312 }
25313 } else {
25314 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25315 {
25316   {
25317     DI opval = MAKEDI (0xffffff80, 0);
25318     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 2), opval);
25319     written |= (1 << 21);
25320     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25321   }
25322 frvbf_media_overflow (current_cpu, 2);
25323 }
25324 } else {
25325   {
25326     DI opval = tmp_tmp;
25327     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 2), opval);
25328     written |= (1 << 21);
25329     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25330   }
25331 }
25332 }
25333 }
25334 {
25335   DI tmp_tmp;
25336   tmp_tmp = ADDDI (GET_H_ACC40S (ADDSI (FLD (f_ACC40Sk), 3)), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo)));
25337 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25338 {
25339   {
25340     DI opval = MAKEDI (127, 0xffffffff);
25341     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 3), opval);
25342     written |= (1 << 22);
25343     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25344   }
25345 frvbf_media_overflow (current_cpu, 1);
25346 }
25347 } else {
25348 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25349 {
25350   {
25351     DI opval = MAKEDI (0xffffff80, 0);
25352     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 3), opval);
25353     written |= (1 << 22);
25354     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25355   }
25356 frvbf_media_overflow (current_cpu, 1);
25357 }
25358 } else {
25359   {
25360     DI opval = tmp_tmp;
25361     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 3), opval);
25362     written |= (1 << 22);
25363     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25364   }
25365 }
25366 }
25367 }
25368 }
25369 }
25370 }
25371 }
25372 }
25373
25374   abuf->written = written;
25375   return vpc;
25376 #undef FLD
25377 }
25378
25379 /* cmqmachu: cmqmachu$pack $FRintieven,$FRintjeven,$ACC40Uk,$CCi,$cond */
25380
25381 static SEM_PC
25382 SEM_FN_NAME (frvbf,cmqmachu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
25383 {
25384 #define FLD(f) abuf->fields.sfmt_cmqmachu.f
25385   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
25386   int UNUSED written = 0;
25387   IADDR UNUSED pc = abuf->addr;
25388   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
25389
25390 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Uk))) {
25391 if (ANDSI (FLD (f_ACC40Uk), SUBSI (4, 1))) {
25392 frvbf_media_acc_not_aligned (current_cpu);
25393 } else {
25394 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
25395 frvbf_media_register_not_aligned (current_cpu);
25396 } else {
25397 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
25398 {
25399   UHI tmp_argihi;
25400   UHI tmp_argilo;
25401   UHI tmp_argjhi;
25402   UHI tmp_argjlo;
25403 {
25404   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25405   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25406   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25407   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25408 }
25409 {
25410   DI tmp_tmp;
25411   tmp_tmp = ADDDI (GET_H_ACC40U (FLD (f_ACC40Uk)), MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi)));
25412 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
25413 {
25414   {
25415     UDI opval = MAKEDI (255, 0xffffffff);
25416     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
25417     written |= (1 << 19);
25418     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25419   }
25420 frvbf_media_overflow (current_cpu, 8);
25421 }
25422 } else {
25423 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
25424 {
25425   {
25426     UDI opval = MAKEDI (0, 0);
25427     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
25428     written |= (1 << 19);
25429     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25430   }
25431 frvbf_media_overflow (current_cpu, 8);
25432 }
25433 } else {
25434   {
25435     UDI opval = tmp_tmp;
25436     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
25437     written |= (1 << 19);
25438     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25439   }
25440 }
25441 }
25442 }
25443 {
25444   DI tmp_tmp;
25445   tmp_tmp = ADDDI (GET_H_ACC40U (ADDSI (FLD (f_ACC40Uk), 1)), MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo)));
25446 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
25447 {
25448   {
25449     UDI opval = MAKEDI (255, 0xffffffff);
25450     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ADDSI (FLD (f_ACC40Uk), 1), opval);
25451     written |= (1 << 20);
25452     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25453   }
25454 frvbf_media_overflow (current_cpu, 4);
25455 }
25456 } else {
25457 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
25458 {
25459   {
25460     UDI opval = MAKEDI (0, 0);
25461     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ADDSI (FLD (f_ACC40Uk), 1), opval);
25462     written |= (1 << 20);
25463     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25464   }
25465 frvbf_media_overflow (current_cpu, 4);
25466 }
25467 } else {
25468   {
25469     UDI opval = tmp_tmp;
25470     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ADDSI (FLD (f_ACC40Uk), 1), opval);
25471     written |= (1 << 20);
25472     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25473   }
25474 }
25475 }
25476 }
25477 {
25478   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25479   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25480   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25481   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25482 }
25483 {
25484   DI tmp_tmp;
25485   tmp_tmp = ADDDI (GET_H_ACC40U (ADDSI (FLD (f_ACC40Uk), 2)), MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi)));
25486 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
25487 {
25488   {
25489     UDI opval = MAKEDI (255, 0xffffffff);
25490     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ADDSI (FLD (f_ACC40Uk), 2), opval);
25491     written |= (1 << 21);
25492     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25493   }
25494 frvbf_media_overflow (current_cpu, 2);
25495 }
25496 } else {
25497 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
25498 {
25499   {
25500     UDI opval = MAKEDI (0, 0);
25501     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ADDSI (FLD (f_ACC40Uk), 2), opval);
25502     written |= (1 << 21);
25503     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25504   }
25505 frvbf_media_overflow (current_cpu, 2);
25506 }
25507 } else {
25508   {
25509     UDI opval = tmp_tmp;
25510     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ADDSI (FLD (f_ACC40Uk), 2), opval);
25511     written |= (1 << 21);
25512     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25513   }
25514 }
25515 }
25516 }
25517 {
25518   DI tmp_tmp;
25519   tmp_tmp = ADDDI (GET_H_ACC40U (ADDSI (FLD (f_ACC40Uk), 3)), MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo)));
25520 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
25521 {
25522   {
25523     UDI opval = MAKEDI (255, 0xffffffff);
25524     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ADDSI (FLD (f_ACC40Uk), 3), opval);
25525     written |= (1 << 22);
25526     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25527   }
25528 frvbf_media_overflow (current_cpu, 1);
25529 }
25530 } else {
25531 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
25532 {
25533   {
25534     UDI opval = MAKEDI (0, 0);
25535     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ADDSI (FLD (f_ACC40Uk), 3), opval);
25536     written |= (1 << 22);
25537     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25538   }
25539 frvbf_media_overflow (current_cpu, 1);
25540 }
25541 } else {
25542   {
25543     UDI opval = tmp_tmp;
25544     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ADDSI (FLD (f_ACC40Uk), 3), opval);
25545     written |= (1 << 22);
25546     TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25547   }
25548 }
25549 }
25550 }
25551 }
25552 }
25553 }
25554 }
25555 }
25556
25557   abuf->written = written;
25558   return vpc;
25559 #undef FLD
25560 }
25561
25562 /* mqxmachs: mqxmachs$pack $FRintieven,$FRintjeven,$ACC40Sk */
25563
25564 static SEM_PC
25565 SEM_FN_NAME (frvbf,mqxmachs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
25566 {
25567 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
25568   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
25569   int UNUSED written = 0;
25570   IADDR UNUSED pc = abuf->addr;
25571   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
25572
25573 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
25574 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
25575 frvbf_media_acc_not_aligned (current_cpu);
25576 } else {
25577 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
25578 frvbf_media_register_not_aligned (current_cpu);
25579 } else {
25580 {
25581   HI tmp_argihi;
25582   HI tmp_argilo;
25583   HI tmp_argjhi;
25584   HI tmp_argjlo;
25585 {
25586   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25587   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25588   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25589   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25590 }
25591 {
25592   DI tmp_tmp;
25593   tmp_tmp = ADDDI (GET_H_ACC40S (ADDSI (FLD (f_ACC40Sk), 2)), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi)));
25594 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25595 {
25596   {
25597     DI opval = MAKEDI (127, 0xffffffff);
25598     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 2), opval);
25599     written |= (1 << 19);
25600     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25601   }
25602 frvbf_media_overflow (current_cpu, 2);
25603 }
25604 } else {
25605 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25606 {
25607   {
25608     DI opval = MAKEDI (0xffffff80, 0);
25609     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 2), opval);
25610     written |= (1 << 19);
25611     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25612   }
25613 frvbf_media_overflow (current_cpu, 2);
25614 }
25615 } else {
25616   {
25617     DI opval = tmp_tmp;
25618     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 2), opval);
25619     written |= (1 << 19);
25620     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25621   }
25622 }
25623 }
25624 }
25625 {
25626   DI tmp_tmp;
25627   tmp_tmp = ADDDI (GET_H_ACC40S (ADDSI (FLD (f_ACC40Sk), 3)), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo)));
25628 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25629 {
25630   {
25631     DI opval = MAKEDI (127, 0xffffffff);
25632     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 3), opval);
25633     written |= (1 << 20);
25634     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25635   }
25636 frvbf_media_overflow (current_cpu, 1);
25637 }
25638 } else {
25639 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25640 {
25641   {
25642     DI opval = MAKEDI (0xffffff80, 0);
25643     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 3), opval);
25644     written |= (1 << 20);
25645     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25646   }
25647 frvbf_media_overflow (current_cpu, 1);
25648 }
25649 } else {
25650   {
25651     DI opval = tmp_tmp;
25652     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 3), opval);
25653     written |= (1 << 20);
25654     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25655   }
25656 }
25657 }
25658 }
25659 {
25660   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25661   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25662   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25663   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25664 }
25665 {
25666   DI tmp_tmp;
25667   tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Sk)), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi)));
25668 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25669 {
25670   {
25671     DI opval = MAKEDI (127, 0xffffffff);
25672     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25673     written |= (1 << 17);
25674     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25675   }
25676 frvbf_media_overflow (current_cpu, 8);
25677 }
25678 } else {
25679 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25680 {
25681   {
25682     DI opval = MAKEDI (0xffffff80, 0);
25683     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25684     written |= (1 << 17);
25685     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25686   }
25687 frvbf_media_overflow (current_cpu, 8);
25688 }
25689 } else {
25690   {
25691     DI opval = tmp_tmp;
25692     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25693     written |= (1 << 17);
25694     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25695   }
25696 }
25697 }
25698 }
25699 {
25700   DI tmp_tmp;
25701   tmp_tmp = ADDDI (GET_H_ACC40S (ADDSI (FLD (f_ACC40Sk), 1)), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo)));
25702 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25703 {
25704   {
25705     DI opval = MAKEDI (127, 0xffffffff);
25706     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
25707     written |= (1 << 18);
25708     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25709   }
25710 frvbf_media_overflow (current_cpu, 4);
25711 }
25712 } else {
25713 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25714 {
25715   {
25716     DI opval = MAKEDI (0xffffff80, 0);
25717     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
25718     written |= (1 << 18);
25719     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25720   }
25721 frvbf_media_overflow (current_cpu, 4);
25722 }
25723 } else {
25724   {
25725     DI opval = tmp_tmp;
25726     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
25727     written |= (1 << 18);
25728     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25729   }
25730 }
25731 }
25732 }
25733 }
25734 }
25735 }
25736 }
25737
25738   abuf->written = written;
25739   return vpc;
25740 #undef FLD
25741 }
25742
25743 /* mqxmacxhs: mqxmacxhs$pack $FRintieven,$FRintjeven,$ACC40Sk */
25744
25745 static SEM_PC
25746 SEM_FN_NAME (frvbf,mqxmacxhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
25747 {
25748 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
25749   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
25750   int UNUSED written = 0;
25751   IADDR UNUSED pc = abuf->addr;
25752   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
25753
25754 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
25755 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
25756 frvbf_media_acc_not_aligned (current_cpu);
25757 } else {
25758 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
25759 frvbf_media_register_not_aligned (current_cpu);
25760 } else {
25761 {
25762   HI tmp_argihi;
25763   HI tmp_argilo;
25764   HI tmp_argjhi;
25765   HI tmp_argjlo;
25766 {
25767   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25768   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25769   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25770   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25771 }
25772 {
25773   DI tmp_tmp;
25774   tmp_tmp = ADDDI (GET_H_ACC40S (ADDSI (FLD (f_ACC40Sk), 2)), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo)));
25775 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25776 {
25777   {
25778     DI opval = MAKEDI (127, 0xffffffff);
25779     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 2), opval);
25780     written |= (1 << 19);
25781     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25782   }
25783 frvbf_media_overflow (current_cpu, 2);
25784 }
25785 } else {
25786 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25787 {
25788   {
25789     DI opval = MAKEDI (0xffffff80, 0);
25790     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 2), opval);
25791     written |= (1 << 19);
25792     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25793   }
25794 frvbf_media_overflow (current_cpu, 2);
25795 }
25796 } else {
25797   {
25798     DI opval = tmp_tmp;
25799     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 2), opval);
25800     written |= (1 << 19);
25801     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25802   }
25803 }
25804 }
25805 }
25806 {
25807   DI tmp_tmp;
25808   tmp_tmp = ADDDI (GET_H_ACC40S (ADDSI (FLD (f_ACC40Sk), 3)), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi)));
25809 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25810 {
25811   {
25812     DI opval = MAKEDI (127, 0xffffffff);
25813     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 3), opval);
25814     written |= (1 << 20);
25815     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25816   }
25817 frvbf_media_overflow (current_cpu, 1);
25818 }
25819 } else {
25820 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25821 {
25822   {
25823     DI opval = MAKEDI (0xffffff80, 0);
25824     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 3), opval);
25825     written |= (1 << 20);
25826     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25827   }
25828 frvbf_media_overflow (current_cpu, 1);
25829 }
25830 } else {
25831   {
25832     DI opval = tmp_tmp;
25833     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 3), opval);
25834     written |= (1 << 20);
25835     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25836   }
25837 }
25838 }
25839 }
25840 {
25841   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25842   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25843   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25844   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25845 }
25846 {
25847   DI tmp_tmp;
25848   tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Sk)), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo)));
25849 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25850 {
25851   {
25852     DI opval = MAKEDI (127, 0xffffffff);
25853     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25854     written |= (1 << 17);
25855     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25856   }
25857 frvbf_media_overflow (current_cpu, 8);
25858 }
25859 } else {
25860 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25861 {
25862   {
25863     DI opval = MAKEDI (0xffffff80, 0);
25864     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25865     written |= (1 << 17);
25866     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25867   }
25868 frvbf_media_overflow (current_cpu, 8);
25869 }
25870 } else {
25871   {
25872     DI opval = tmp_tmp;
25873     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25874     written |= (1 << 17);
25875     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25876   }
25877 }
25878 }
25879 }
25880 {
25881   DI tmp_tmp;
25882   tmp_tmp = ADDDI (GET_H_ACC40S (ADDSI (FLD (f_ACC40Sk), 1)), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi)));
25883 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25884 {
25885   {
25886     DI opval = MAKEDI (127, 0xffffffff);
25887     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
25888     written |= (1 << 18);
25889     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25890   }
25891 frvbf_media_overflow (current_cpu, 4);
25892 }
25893 } else {
25894 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25895 {
25896   {
25897     DI opval = MAKEDI (0xffffff80, 0);
25898     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
25899     written |= (1 << 18);
25900     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25901   }
25902 frvbf_media_overflow (current_cpu, 4);
25903 }
25904 } else {
25905   {
25906     DI opval = tmp_tmp;
25907     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
25908     written |= (1 << 18);
25909     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25910   }
25911 }
25912 }
25913 }
25914 }
25915 }
25916 }
25917 }
25918
25919   abuf->written = written;
25920   return vpc;
25921 #undef FLD
25922 }
25923
25924 /* mqmacxhs: mqmacxhs$pack $FRintieven,$FRintjeven,$ACC40Sk */
25925
25926 static SEM_PC
25927 SEM_FN_NAME (frvbf,mqmacxhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
25928 {
25929 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
25930   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
25931   int UNUSED written = 0;
25932   IADDR UNUSED pc = abuf->addr;
25933   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
25934
25935 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
25936 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
25937 frvbf_media_acc_not_aligned (current_cpu);
25938 } else {
25939 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
25940 frvbf_media_register_not_aligned (current_cpu);
25941 } else {
25942 {
25943   HI tmp_argihi;
25944   HI tmp_argilo;
25945   HI tmp_argjhi;
25946   HI tmp_argjlo;
25947 {
25948   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25949   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25950   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25951   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25952 }
25953 {
25954   DI tmp_tmp;
25955   tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Sk)), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo)));
25956 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25957 {
25958   {
25959     DI opval = MAKEDI (127, 0xffffffff);
25960     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25961     written |= (1 << 17);
25962     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25963   }
25964 frvbf_media_overflow (current_cpu, 8);
25965 }
25966 } else {
25967 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25968 {
25969   {
25970     DI opval = MAKEDI (0xffffff80, 0);
25971     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25972     written |= (1 << 17);
25973     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25974   }
25975 frvbf_media_overflow (current_cpu, 8);
25976 }
25977 } else {
25978   {
25979     DI opval = tmp_tmp;
25980     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25981     written |= (1 << 17);
25982     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25983   }
25984 }
25985 }
25986 }
25987 {
25988   DI tmp_tmp;
25989   tmp_tmp = ADDDI (GET_H_ACC40S (ADDSI (FLD (f_ACC40Sk), 1)), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi)));
25990 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25991 {
25992   {
25993     DI opval = MAKEDI (127, 0xffffffff);
25994     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
25995     written |= (1 << 18);
25996     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25997   }
25998 frvbf_media_overflow (current_cpu, 4);
25999 }
26000 } else {
26001 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
26002 {
26003   {
26004     DI opval = MAKEDI (0xffffff80, 0);
26005     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
26006     written |= (1 << 18);
26007     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26008   }
26009 frvbf_media_overflow (current_cpu, 4);
26010 }
26011 } else {
26012   {
26013     DI opval = tmp_tmp;
26014     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
26015     written |= (1 << 18);
26016     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26017   }
26018 }
26019 }
26020 }
26021 {
26022   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26023   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26024   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26025   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26026 }
26027 {
26028   DI tmp_tmp;
26029   tmp_tmp = ADDDI (GET_H_ACC40S (ADDSI (FLD (f_ACC40Sk), 2)), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo)));
26030 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
26031 {
26032   {
26033     DI opval = MAKEDI (127, 0xffffffff);
26034     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 2), opval);
26035     written |= (1 << 19);
26036     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26037   }
26038 frvbf_media_overflow (current_cpu, 2);
26039 }
26040 } else {
26041 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
26042 {
26043   {
26044     DI opval = MAKEDI (0xffffff80, 0);
26045     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 2), opval);
26046     written |= (1 << 19);
26047     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26048   }
26049 frvbf_media_overflow (current_cpu, 2);
26050 }
26051 } else {
26052   {
26053     DI opval = tmp_tmp;
26054     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 2), opval);
26055     written |= (1 << 19);
26056     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26057   }
26058 }
26059 }
26060 }
26061 {
26062   DI tmp_tmp;
26063   tmp_tmp = ADDDI (GET_H_ACC40S (ADDSI (FLD (f_ACC40Sk), 3)), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi)));
26064 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
26065 {
26066   {
26067     DI opval = MAKEDI (127, 0xffffffff);
26068     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 3), opval);
26069     written |= (1 << 20);
26070     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26071   }
26072 frvbf_media_overflow (current_cpu, 1);
26073 }
26074 } else {
26075 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
26076 {
26077   {
26078     DI opval = MAKEDI (0xffffff80, 0);
26079     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 3), opval);
26080     written |= (1 << 20);
26081     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26082   }
26083 frvbf_media_overflow (current_cpu, 1);
26084 }
26085 } else {
26086   {
26087     DI opval = tmp_tmp;
26088     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 3), opval);
26089     written |= (1 << 20);
26090     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26091   }
26092 }
26093 }
26094 }
26095 }
26096 }
26097 }
26098 }
26099
26100   abuf->written = written;
26101   return vpc;
26102 #undef FLD
26103 }
26104
26105 /* mcpxrs: mcpxrs$pack $FRinti,$FRintj,$ACC40Sk */
26106
26107 static SEM_PC
26108 SEM_FN_NAME (frvbf,mcpxrs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26109 {
26110 #define FLD(f) abuf->fields.sfmt_cmmachs.f
26111   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26112   int UNUSED written = 0;
26113   IADDR UNUSED pc = abuf->addr;
26114   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26115
26116 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
26117 {
26118   HI tmp_argihi;
26119   HI tmp_argilo;
26120   HI tmp_argjhi;
26121   HI tmp_argjlo;
26122 {
26123   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26124   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26125   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26126   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26127 }
26128 {
26129   DI tmp_tmp1;
26130   DI tmp_tmp2;
26131   tmp_tmp1 = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
26132   tmp_tmp2 = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
26133   tmp_tmp1 = SUBDI (tmp_tmp1, tmp_tmp2);
26134 if (GTDI (tmp_tmp1, MAKEDI (127, 0xffffffff))) {
26135 {
26136   {
26137     DI opval = MAKEDI (127, 0xffffffff);
26138     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26139     written |= (1 << 9);
26140     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26141   }
26142 frvbf_media_overflow (current_cpu, 8);
26143 }
26144 } else {
26145 if (LTDI (tmp_tmp1, MAKEDI (0xffffff80, 0))) {
26146 {
26147   {
26148     DI opval = MAKEDI (0xffffff80, 0);
26149     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26150     written |= (1 << 9);
26151     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26152   }
26153 frvbf_media_overflow (current_cpu, 8);
26154 }
26155 } else {
26156   {
26157     DI opval = tmp_tmp1;
26158     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26159     written |= (1 << 9);
26160     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26161   }
26162 }
26163 }
26164 }
26165 }
26166 }
26167
26168   abuf->written = written;
26169   return vpc;
26170 #undef FLD
26171 }
26172
26173 /* mcpxru: mcpxru$pack $FRinti,$FRintj,$ACC40Sk */
26174
26175 static SEM_PC
26176 SEM_FN_NAME (frvbf,mcpxru) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26177 {
26178 #define FLD(f) abuf->fields.sfmt_cmmachs.f
26179   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26180   int UNUSED written = 0;
26181   IADDR UNUSED pc = abuf->addr;
26182   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26183
26184 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
26185 {
26186   UHI tmp_argihi;
26187   UHI tmp_argilo;
26188   UHI tmp_argjhi;
26189   UHI tmp_argjlo;
26190 {
26191   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26192   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26193   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26194   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26195 }
26196 {
26197   DI tmp_tmp1;
26198   DI tmp_tmp2;
26199   tmp_tmp1 = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
26200   tmp_tmp2 = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
26201   tmp_tmp1 = SUBDI (tmp_tmp1, tmp_tmp2);
26202 if (GTDI (tmp_tmp1, MAKEDI (255, 0xffffffff))) {
26203 {
26204   {
26205     DI opval = MAKEDI (255, 0xffffffff);
26206     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26207     written |= (1 << 9);
26208     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26209   }
26210 frvbf_media_overflow (current_cpu, 8);
26211 }
26212 } else {
26213 if (LTDI (tmp_tmp1, MAKEDI (0, 0))) {
26214 {
26215   {
26216     DI opval = MAKEDI (0, 0);
26217     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26218     written |= (1 << 9);
26219     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26220   }
26221 frvbf_media_overflow (current_cpu, 8);
26222 }
26223 } else {
26224   {
26225     DI opval = tmp_tmp1;
26226     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26227     written |= (1 << 9);
26228     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26229   }
26230 }
26231 }
26232 }
26233 }
26234 }
26235
26236   abuf->written = written;
26237   return vpc;
26238 #undef FLD
26239 }
26240
26241 /* mcpxis: mcpxis$pack $FRinti,$FRintj,$ACC40Sk */
26242
26243 static SEM_PC
26244 SEM_FN_NAME (frvbf,mcpxis) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26245 {
26246 #define FLD(f) abuf->fields.sfmt_cmmachs.f
26247   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26248   int UNUSED written = 0;
26249   IADDR UNUSED pc = abuf->addr;
26250   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26251
26252 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
26253 {
26254   HI tmp_argihi;
26255   HI tmp_argilo;
26256   HI tmp_argjhi;
26257   HI tmp_argjlo;
26258 {
26259   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26260   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26261   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26262   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26263 }
26264 {
26265   DI tmp_tmp1;
26266   DI tmp_tmp2;
26267   tmp_tmp1 = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo));
26268   tmp_tmp2 = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi));
26269   tmp_tmp1 = ADDDI (tmp_tmp1, tmp_tmp2);
26270 if (GTDI (tmp_tmp1, MAKEDI (127, 0xffffffff))) {
26271 {
26272   {
26273     DI opval = MAKEDI (127, 0xffffffff);
26274     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26275     written |= (1 << 9);
26276     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26277   }
26278 frvbf_media_overflow (current_cpu, 8);
26279 }
26280 } else {
26281 if (LTDI (tmp_tmp1, MAKEDI (0xffffff80, 0))) {
26282 {
26283   {
26284     DI opval = MAKEDI (0xffffff80, 0);
26285     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26286     written |= (1 << 9);
26287     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26288   }
26289 frvbf_media_overflow (current_cpu, 8);
26290 }
26291 } else {
26292   {
26293     DI opval = tmp_tmp1;
26294     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26295     written |= (1 << 9);
26296     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26297   }
26298 }
26299 }
26300 }
26301 }
26302 }
26303
26304   abuf->written = written;
26305   return vpc;
26306 #undef FLD
26307 }
26308
26309 /* mcpxiu: mcpxiu$pack $FRinti,$FRintj,$ACC40Sk */
26310
26311 static SEM_PC
26312 SEM_FN_NAME (frvbf,mcpxiu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26313 {
26314 #define FLD(f) abuf->fields.sfmt_cmmachs.f
26315   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26316   int UNUSED written = 0;
26317   IADDR UNUSED pc = abuf->addr;
26318   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26319
26320 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
26321 {
26322   UHI tmp_argihi;
26323   UHI tmp_argilo;
26324   UHI tmp_argjhi;
26325   UHI tmp_argjlo;
26326 {
26327   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26328   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26329   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26330   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26331 }
26332 {
26333   DI tmp_tmp1;
26334   DI tmp_tmp2;
26335   tmp_tmp1 = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjlo));
26336   tmp_tmp2 = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjhi));
26337   tmp_tmp1 = ADDDI (tmp_tmp1, tmp_tmp2);
26338 if (GTDI (tmp_tmp1, MAKEDI (255, 0xffffffff))) {
26339 {
26340   {
26341     DI opval = MAKEDI (255, 0xffffffff);
26342     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26343     written |= (1 << 9);
26344     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26345   }
26346 frvbf_media_overflow (current_cpu, 8);
26347 }
26348 } else {
26349 if (LTDI (tmp_tmp1, MAKEDI (0, 0))) {
26350 {
26351   {
26352     DI opval = MAKEDI (0, 0);
26353     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26354     written |= (1 << 9);
26355     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26356   }
26357 frvbf_media_overflow (current_cpu, 8);
26358 }
26359 } else {
26360   {
26361     DI opval = tmp_tmp1;
26362     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26363     written |= (1 << 9);
26364     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26365   }
26366 }
26367 }
26368 }
26369 }
26370 }
26371
26372   abuf->written = written;
26373   return vpc;
26374 #undef FLD
26375 }
26376
26377 /* cmcpxrs: cmcpxrs$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
26378
26379 static SEM_PC
26380 SEM_FN_NAME (frvbf,cmcpxrs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26381 {
26382 #define FLD(f) abuf->fields.sfmt_cmmachs.f
26383   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26384   int UNUSED written = 0;
26385   IADDR UNUSED pc = abuf->addr;
26386   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26387
26388 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
26389 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
26390 {
26391   HI tmp_argihi;
26392   HI tmp_argilo;
26393   HI tmp_argjhi;
26394   HI tmp_argjlo;
26395 {
26396   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26397   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26398   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26399   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26400 }
26401 {
26402   DI tmp_tmp1;
26403   DI tmp_tmp2;
26404   tmp_tmp1 = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
26405   tmp_tmp2 = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
26406   tmp_tmp1 = SUBDI (tmp_tmp1, tmp_tmp2);
26407 if (GTDI (tmp_tmp1, MAKEDI (127, 0xffffffff))) {
26408 {
26409   {
26410     DI opval = MAKEDI (127, 0xffffffff);
26411     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26412     written |= (1 << 11);
26413     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26414   }
26415 frvbf_media_overflow (current_cpu, 8);
26416 }
26417 } else {
26418 if (LTDI (tmp_tmp1, MAKEDI (0xffffff80, 0))) {
26419 {
26420   {
26421     DI opval = MAKEDI (0xffffff80, 0);
26422     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26423     written |= (1 << 11);
26424     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26425   }
26426 frvbf_media_overflow (current_cpu, 8);
26427 }
26428 } else {
26429   {
26430     DI opval = tmp_tmp1;
26431     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26432     written |= (1 << 11);
26433     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26434   }
26435 }
26436 }
26437 }
26438 }
26439 }
26440 }
26441
26442   abuf->written = written;
26443   return vpc;
26444 #undef FLD
26445 }
26446
26447 /* cmcpxru: cmcpxru$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
26448
26449 static SEM_PC
26450 SEM_FN_NAME (frvbf,cmcpxru) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26451 {
26452 #define FLD(f) abuf->fields.sfmt_cmmachs.f
26453   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26454   int UNUSED written = 0;
26455   IADDR UNUSED pc = abuf->addr;
26456   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26457
26458 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
26459 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
26460 {
26461   UHI tmp_argihi;
26462   UHI tmp_argilo;
26463   UHI tmp_argjhi;
26464   UHI tmp_argjlo;
26465 {
26466   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26467   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26468   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26469   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26470 }
26471 {
26472   DI tmp_tmp1;
26473   DI tmp_tmp2;
26474   tmp_tmp1 = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
26475   tmp_tmp2 = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
26476   tmp_tmp1 = SUBDI (tmp_tmp1, tmp_tmp2);
26477 if (GTDI (tmp_tmp1, MAKEDI (255, 0xffffffff))) {
26478 {
26479   {
26480     DI opval = MAKEDI (255, 0xffffffff);
26481     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26482     written |= (1 << 11);
26483     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26484   }
26485 frvbf_media_overflow (current_cpu, 8);
26486 }
26487 } else {
26488 if (LTDI (tmp_tmp1, MAKEDI (0, 0))) {
26489 {
26490   {
26491     DI opval = MAKEDI (0, 0);
26492     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26493     written |= (1 << 11);
26494     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26495   }
26496 frvbf_media_overflow (current_cpu, 8);
26497 }
26498 } else {
26499   {
26500     DI opval = tmp_tmp1;
26501     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26502     written |= (1 << 11);
26503     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26504   }
26505 }
26506 }
26507 }
26508 }
26509 }
26510 }
26511
26512   abuf->written = written;
26513   return vpc;
26514 #undef FLD
26515 }
26516
26517 /* cmcpxis: cmcpxis$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
26518
26519 static SEM_PC
26520 SEM_FN_NAME (frvbf,cmcpxis) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26521 {
26522 #define FLD(f) abuf->fields.sfmt_cmmachs.f
26523   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26524   int UNUSED written = 0;
26525   IADDR UNUSED pc = abuf->addr;
26526   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26527
26528 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
26529 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
26530 {
26531   HI tmp_argihi;
26532   HI tmp_argilo;
26533   HI tmp_argjhi;
26534   HI tmp_argjlo;
26535 {
26536   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26537   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26538   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26539   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26540 }
26541 {
26542   DI tmp_tmp1;
26543   DI tmp_tmp2;
26544   tmp_tmp1 = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo));
26545   tmp_tmp2 = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi));
26546   tmp_tmp1 = ADDDI (tmp_tmp1, tmp_tmp2);
26547 if (GTDI (tmp_tmp1, MAKEDI (127, 0xffffffff))) {
26548 {
26549   {
26550     DI opval = MAKEDI (127, 0xffffffff);
26551     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26552     written |= (1 << 11);
26553     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26554   }
26555 frvbf_media_overflow (current_cpu, 8);
26556 }
26557 } else {
26558 if (LTDI (tmp_tmp1, MAKEDI (0xffffff80, 0))) {
26559 {
26560   {
26561     DI opval = MAKEDI (0xffffff80, 0);
26562     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26563     written |= (1 << 11);
26564     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26565   }
26566 frvbf_media_overflow (current_cpu, 8);
26567 }
26568 } else {
26569   {
26570     DI opval = tmp_tmp1;
26571     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26572     written |= (1 << 11);
26573     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26574   }
26575 }
26576 }
26577 }
26578 }
26579 }
26580 }
26581
26582   abuf->written = written;
26583   return vpc;
26584 #undef FLD
26585 }
26586
26587 /* cmcpxiu: cmcpxiu$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
26588
26589 static SEM_PC
26590 SEM_FN_NAME (frvbf,cmcpxiu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26591 {
26592 #define FLD(f) abuf->fields.sfmt_cmmachs.f
26593   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26594   int UNUSED written = 0;
26595   IADDR UNUSED pc = abuf->addr;
26596   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26597
26598 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
26599 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
26600 {
26601   UHI tmp_argihi;
26602   UHI tmp_argilo;
26603   UHI tmp_argjhi;
26604   UHI tmp_argjlo;
26605 {
26606   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26607   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26608   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26609   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26610 }
26611 {
26612   DI tmp_tmp1;
26613   DI tmp_tmp2;
26614   tmp_tmp1 = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjlo));
26615   tmp_tmp2 = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjhi));
26616   tmp_tmp1 = ADDDI (tmp_tmp1, tmp_tmp2);
26617 if (GTDI (tmp_tmp1, MAKEDI (255, 0xffffffff))) {
26618 {
26619   {
26620     DI opval = MAKEDI (255, 0xffffffff);
26621     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26622     written |= (1 << 11);
26623     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26624   }
26625 frvbf_media_overflow (current_cpu, 8);
26626 }
26627 } else {
26628 if (LTDI (tmp_tmp1, MAKEDI (0, 0))) {
26629 {
26630   {
26631     DI opval = MAKEDI (0, 0);
26632     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26633     written |= (1 << 11);
26634     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26635   }
26636 frvbf_media_overflow (current_cpu, 8);
26637 }
26638 } else {
26639   {
26640     DI opval = tmp_tmp1;
26641     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26642     written |= (1 << 11);
26643     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26644   }
26645 }
26646 }
26647 }
26648 }
26649 }
26650 }
26651
26652   abuf->written = written;
26653   return vpc;
26654 #undef FLD
26655 }
26656
26657 /* mqcpxrs: mqcpxrs$pack $FRintieven,$FRintjeven,$ACC40Sk */
26658
26659 static SEM_PC
26660 SEM_FN_NAME (frvbf,mqcpxrs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26661 {
26662 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
26663   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26664   int UNUSED written = 0;
26665   IADDR UNUSED pc = abuf->addr;
26666   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26667
26668 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
26669 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
26670 frvbf_media_acc_not_aligned (current_cpu);
26671 } else {
26672 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
26673 frvbf_media_register_not_aligned (current_cpu);
26674 } else {
26675 {
26676   HI tmp_argihi;
26677   HI tmp_argilo;
26678   HI tmp_argjhi;
26679   HI tmp_argjlo;
26680 {
26681   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26682   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26683   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26684   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26685 }
26686 {
26687   DI tmp_tmp1;
26688   DI tmp_tmp2;
26689   tmp_tmp1 = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
26690   tmp_tmp2 = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
26691   tmp_tmp1 = SUBDI (tmp_tmp1, tmp_tmp2);
26692 if (GTDI (tmp_tmp1, MAKEDI (127, 0xffffffff))) {
26693 {
26694   {
26695     DI opval = MAKEDI (127, 0xffffffff);
26696     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26697     written |= (1 << 13);
26698     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26699   }
26700 frvbf_media_overflow (current_cpu, 8);
26701 }
26702 } else {
26703 if (LTDI (tmp_tmp1, MAKEDI (0xffffff80, 0))) {
26704 {
26705   {
26706     DI opval = MAKEDI (0xffffff80, 0);
26707     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26708     written |= (1 << 13);
26709     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26710   }
26711 frvbf_media_overflow (current_cpu, 8);
26712 }
26713 } else {
26714   {
26715     DI opval = tmp_tmp1;
26716     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26717     written |= (1 << 13);
26718     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26719   }
26720 }
26721 }
26722 }
26723 {
26724   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26725   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26726   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26727   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26728 }
26729 {
26730   DI tmp_tmp1;
26731   DI tmp_tmp2;
26732   tmp_tmp1 = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
26733   tmp_tmp2 = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
26734   tmp_tmp1 = SUBDI (tmp_tmp1, tmp_tmp2);
26735 if (GTDI (tmp_tmp1, MAKEDI (127, 0xffffffff))) {
26736 {
26737   {
26738     DI opval = MAKEDI (127, 0xffffffff);
26739     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
26740     written |= (1 << 14);
26741     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26742   }
26743 frvbf_media_overflow (current_cpu, 4);
26744 }
26745 } else {
26746 if (LTDI (tmp_tmp1, MAKEDI (0xffffff80, 0))) {
26747 {
26748   {
26749     DI opval = MAKEDI (0xffffff80, 0);
26750     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
26751     written |= (1 << 14);
26752     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26753   }
26754 frvbf_media_overflow (current_cpu, 4);
26755 }
26756 } else {
26757   {
26758     DI opval = tmp_tmp1;
26759     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
26760     written |= (1 << 14);
26761     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26762   }
26763 }
26764 }
26765 }
26766 }
26767 }
26768 }
26769 }
26770
26771   abuf->written = written;
26772   return vpc;
26773 #undef FLD
26774 }
26775
26776 /* mqcpxru: mqcpxru$pack $FRintieven,$FRintjeven,$ACC40Sk */
26777
26778 static SEM_PC
26779 SEM_FN_NAME (frvbf,mqcpxru) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26780 {
26781 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
26782   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26783   int UNUSED written = 0;
26784   IADDR UNUSED pc = abuf->addr;
26785   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26786
26787 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
26788 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
26789 frvbf_media_acc_not_aligned (current_cpu);
26790 } else {
26791 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
26792 frvbf_media_register_not_aligned (current_cpu);
26793 } else {
26794 {
26795   UHI tmp_argihi;
26796   UHI tmp_argilo;
26797   UHI tmp_argjhi;
26798   UHI tmp_argjlo;
26799 {
26800   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26801   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26802   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26803   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26804 }
26805 {
26806   DI tmp_tmp1;
26807   DI tmp_tmp2;
26808   tmp_tmp1 = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
26809   tmp_tmp2 = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
26810   tmp_tmp1 = SUBDI (tmp_tmp1, tmp_tmp2);
26811 if (GTDI (tmp_tmp1, MAKEDI (255, 0xffffffff))) {
26812 {
26813   {
26814     DI opval = MAKEDI (255, 0xffffffff);
26815     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26816     written |= (1 << 13);
26817     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26818   }
26819 frvbf_media_overflow (current_cpu, 8);
26820 }
26821 } else {
26822 if (LTDI (tmp_tmp1, MAKEDI (0, 0))) {
26823 {
26824   {
26825     DI opval = MAKEDI (0, 0);
26826     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26827     written |= (1 << 13);
26828     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26829   }
26830 frvbf_media_overflow (current_cpu, 8);
26831 }
26832 } else {
26833   {
26834     DI opval = tmp_tmp1;
26835     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26836     written |= (1 << 13);
26837     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26838   }
26839 }
26840 }
26841 }
26842 {
26843   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26844   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26845   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26846   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26847 }
26848 {
26849   DI tmp_tmp1;
26850   DI tmp_tmp2;
26851   tmp_tmp1 = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
26852   tmp_tmp2 = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
26853   tmp_tmp1 = SUBDI (tmp_tmp1, tmp_tmp2);
26854 if (GTDI (tmp_tmp1, MAKEDI (255, 0xffffffff))) {
26855 {
26856   {
26857     DI opval = MAKEDI (255, 0xffffffff);
26858     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
26859     written |= (1 << 14);
26860     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26861   }
26862 frvbf_media_overflow (current_cpu, 4);
26863 }
26864 } else {
26865 if (LTDI (tmp_tmp1, MAKEDI (0, 0))) {
26866 {
26867   {
26868     DI opval = MAKEDI (0, 0);
26869     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
26870     written |= (1 << 14);
26871     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26872   }
26873 frvbf_media_overflow (current_cpu, 4);
26874 }
26875 } else {
26876   {
26877     DI opval = tmp_tmp1;
26878     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
26879     written |= (1 << 14);
26880     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26881   }
26882 }
26883 }
26884 }
26885 }
26886 }
26887 }
26888 }
26889
26890   abuf->written = written;
26891   return vpc;
26892 #undef FLD
26893 }
26894
26895 /* mqcpxis: mqcpxis$pack $FRintieven,$FRintjeven,$ACC40Sk */
26896
26897 static SEM_PC
26898 SEM_FN_NAME (frvbf,mqcpxis) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26899 {
26900 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
26901   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26902   int UNUSED written = 0;
26903   IADDR UNUSED pc = abuf->addr;
26904   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26905
26906 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
26907 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
26908 frvbf_media_acc_not_aligned (current_cpu);
26909 } else {
26910 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
26911 frvbf_media_register_not_aligned (current_cpu);
26912 } else {
26913 {
26914   HI tmp_argihi;
26915   HI tmp_argilo;
26916   HI tmp_argjhi;
26917   HI tmp_argjlo;
26918 {
26919   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26920   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26921   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26922   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26923 }
26924 {
26925   DI tmp_tmp1;
26926   DI tmp_tmp2;
26927   tmp_tmp1 = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo));
26928   tmp_tmp2 = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi));
26929   tmp_tmp1 = ADDDI (tmp_tmp1, tmp_tmp2);
26930 if (GTDI (tmp_tmp1, MAKEDI (127, 0xffffffff))) {
26931 {
26932   {
26933     DI opval = MAKEDI (127, 0xffffffff);
26934     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26935     written |= (1 << 13);
26936     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26937   }
26938 frvbf_media_overflow (current_cpu, 8);
26939 }
26940 } else {
26941 if (LTDI (tmp_tmp1, MAKEDI (0xffffff80, 0))) {
26942 {
26943   {
26944     DI opval = MAKEDI (0xffffff80, 0);
26945     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26946     written |= (1 << 13);
26947     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26948   }
26949 frvbf_media_overflow (current_cpu, 8);
26950 }
26951 } else {
26952   {
26953     DI opval = tmp_tmp1;
26954     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26955     written |= (1 << 13);
26956     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26957   }
26958 }
26959 }
26960 }
26961 {
26962   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26963   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26964   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26965   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26966 }
26967 {
26968   DI tmp_tmp1;
26969   DI tmp_tmp2;
26970   tmp_tmp1 = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo));
26971   tmp_tmp2 = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi));
26972   tmp_tmp1 = ADDDI (tmp_tmp1, tmp_tmp2);
26973 if (GTDI (tmp_tmp1, MAKEDI (127, 0xffffffff))) {
26974 {
26975   {
26976     DI opval = MAKEDI (127, 0xffffffff);
26977     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
26978     written |= (1 << 14);
26979     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26980   }
26981 frvbf_media_overflow (current_cpu, 4);
26982 }
26983 } else {
26984 if (LTDI (tmp_tmp1, MAKEDI (0xffffff80, 0))) {
26985 {
26986   {
26987     DI opval = MAKEDI (0xffffff80, 0);
26988     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
26989     written |= (1 << 14);
26990     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26991   }
26992 frvbf_media_overflow (current_cpu, 4);
26993 }
26994 } else {
26995   {
26996     DI opval = tmp_tmp1;
26997     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
26998     written |= (1 << 14);
26999     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
27000   }
27001 }
27002 }
27003 }
27004 }
27005 }
27006 }
27007 }
27008
27009   abuf->written = written;
27010   return vpc;
27011 #undef FLD
27012 }
27013
27014 /* mqcpxiu: mqcpxiu$pack $FRintieven,$FRintjeven,$ACC40Sk */
27015
27016 static SEM_PC
27017 SEM_FN_NAME (frvbf,mqcpxiu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27018 {
27019 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
27020   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27021   int UNUSED written = 0;
27022   IADDR UNUSED pc = abuf->addr;
27023   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27024
27025 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
27026 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
27027 frvbf_media_acc_not_aligned (current_cpu);
27028 } else {
27029 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
27030 frvbf_media_register_not_aligned (current_cpu);
27031 } else {
27032 {
27033   UHI tmp_argihi;
27034   UHI tmp_argilo;
27035   UHI tmp_argjhi;
27036   UHI tmp_argjlo;
27037 {
27038   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
27039   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
27040   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
27041   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
27042 }
27043 {
27044   DI tmp_tmp1;
27045   DI tmp_tmp2;
27046   tmp_tmp1 = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjlo));
27047   tmp_tmp2 = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjhi));
27048   tmp_tmp1 = ADDDI (tmp_tmp1, tmp_tmp2);
27049 if (GTDI (tmp_tmp1, MAKEDI (255, 0xffffffff))) {
27050 {
27051   {
27052     DI opval = MAKEDI (255, 0xffffffff);
27053     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
27054     written |= (1 << 13);
27055     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
27056   }
27057 frvbf_media_overflow (current_cpu, 8);
27058 }
27059 } else {
27060 if (LTDI (tmp_tmp1, MAKEDI (0, 0))) {
27061 {
27062   {
27063     DI opval = MAKEDI (0, 0);
27064     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
27065     written |= (1 << 13);
27066     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
27067   }
27068 frvbf_media_overflow (current_cpu, 8);
27069 }
27070 } else {
27071   {
27072     DI opval = tmp_tmp1;
27073     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
27074     written |= (1 << 13);
27075     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
27076   }
27077 }
27078 }
27079 }
27080 {
27081   tmp_argihi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
27082   tmp_argilo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
27083   tmp_argjhi = ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
27084   tmp_argjlo = ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
27085 }
27086 {
27087   DI tmp_tmp1;
27088   DI tmp_tmp2;
27089   tmp_tmp1 = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjlo));
27090   tmp_tmp2 = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjhi));
27091   tmp_tmp1 = ADDDI (tmp_tmp1, tmp_tmp2);
27092 if (GTDI (tmp_tmp1, MAKEDI (255, 0xffffffff))) {
27093 {
27094   {
27095     DI opval = MAKEDI (255, 0xffffffff);
27096     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
27097     written |= (1 << 14);
27098     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
27099   }
27100 frvbf_media_overflow (current_cpu, 4);
27101 }
27102 } else {
27103 if (LTDI (tmp_tmp1, MAKEDI (0, 0))) {
27104 {
27105   {
27106     DI opval = MAKEDI (0, 0);
27107     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
27108     written |= (1 << 14);
27109     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
27110   }
27111 frvbf_media_overflow (current_cpu, 4);
27112 }
27113 } else {
27114   {
27115     DI opval = tmp_tmp1;
27116     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ADDSI (FLD (f_ACC40Sk), 1), opval);
27117     written |= (1 << 14);
27118     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
27119   }
27120 }
27121 }
27122 }
27123 }
27124 }
27125 }
27126 }
27127
27128   abuf->written = written;
27129   return vpc;
27130 #undef FLD
27131 }
27132
27133 /* mexpdhw: mexpdhw$pack $FRinti,$u6,$FRintk */
27134
27135 static SEM_PC
27136 SEM_FN_NAME (frvbf,mexpdhw) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27137 {
27138 #define FLD(f) abuf->fields.sfmt_cmexpdhw.f
27139   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27140   int UNUSED written = 0;
27141   IADDR UNUSED pc = abuf->addr;
27142   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27143
27144 {
27145   UHI tmp_tmp;
27146 if (ANDSI (FLD (f_u6), 1)) {
27147   tmp_tmp = GET_H_FR_LO (ADDSI (FLD (f_FRi), 0));
27148 } else {
27149   tmp_tmp = GET_H_FR_HI (ADDSI (FLD (f_FRi), 0));
27150 }
27151   {
27152     UHI opval = tmp_tmp;
27153     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
27154     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27155   }
27156   {
27157     UHI opval = tmp_tmp;
27158     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
27159     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27160   }
27161 }
27162
27163   return vpc;
27164 #undef FLD
27165 }
27166
27167 /* cmexpdhw: cmexpdhw$pack $FRinti,$u6,$FRintk,$CCi,$cond */
27168
27169 static SEM_PC
27170 SEM_FN_NAME (frvbf,cmexpdhw) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27171 {
27172 #define FLD(f) abuf->fields.sfmt_cmexpdhw.f
27173   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27174   int UNUSED written = 0;
27175   IADDR UNUSED pc = abuf->addr;
27176   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27177
27178 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
27179 {
27180   UHI tmp_tmp;
27181 if (ANDSI (FLD (f_u6), 1)) {
27182   tmp_tmp = GET_H_FR_LO (ADDSI (FLD (f_FRi), 0));
27183 } else {
27184   tmp_tmp = GET_H_FR_HI (ADDSI (FLD (f_FRi), 0));
27185 }
27186   {
27187     UHI opval = tmp_tmp;
27188     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
27189     written |= (1 << 7);
27190     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27191   }
27192   {
27193     UHI opval = tmp_tmp;
27194     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
27195     written |= (1 << 8);
27196     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27197   }
27198 }
27199 }
27200
27201   abuf->written = written;
27202   return vpc;
27203 #undef FLD
27204 }
27205
27206 /* mexpdhd: mexpdhd$pack $FRinti,$u6,$FRintkeven */
27207
27208 static SEM_PC
27209 SEM_FN_NAME (frvbf,mexpdhd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27210 {
27211 #define FLD(f) abuf->fields.sfmt_cmexpdhd.f
27212   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27213   int UNUSED written = 0;
27214   IADDR UNUSED pc = abuf->addr;
27215   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27216
27217 if (ANDSI (FLD (f_FRk), SUBSI (2, 1))) {
27218 frvbf_media_register_not_aligned (current_cpu);
27219 } else {
27220 {
27221   UHI tmp_tmp;
27222   {
27223     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27224     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27225     written |= (1 << 6);
27226     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27227   }
27228 if (ANDSI (FLD (f_u6), 1)) {
27229   tmp_tmp = GET_H_FR_LO (ADDSI (FLD (f_FRi), 0));
27230 } else {
27231   tmp_tmp = GET_H_FR_HI (ADDSI (FLD (f_FRi), 0));
27232 }
27233   {
27234     UHI opval = tmp_tmp;
27235     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
27236     written |= (1 << 7);
27237     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27238   }
27239   {
27240     UHI opval = tmp_tmp;
27241     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
27242     written |= (1 << 9);
27243     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27244   }
27245   {
27246     UHI opval = tmp_tmp;
27247     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 1), opval);
27248     written |= (1 << 8);
27249     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27250   }
27251   {
27252     UHI opval = tmp_tmp;
27253     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 1), opval);
27254     written |= (1 << 10);
27255     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27256   }
27257 }
27258 }
27259
27260   abuf->written = written;
27261   return vpc;
27262 #undef FLD
27263 }
27264
27265 /* cmexpdhd: cmexpdhd$pack $FRinti,$u6,$FRintkeven,$CCi,$cond */
27266
27267 static SEM_PC
27268 SEM_FN_NAME (frvbf,cmexpdhd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27269 {
27270 #define FLD(f) abuf->fields.sfmt_cmexpdhd.f
27271   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27272   int UNUSED written = 0;
27273   IADDR UNUSED pc = abuf->addr;
27274   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27275
27276 if (ANDSI (FLD (f_FRk), SUBSI (2, 1))) {
27277 frvbf_media_register_not_aligned (current_cpu);
27278 } else {
27279 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
27280 {
27281   UHI tmp_tmp;
27282   {
27283     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27284     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27285     written |= (1 << 8);
27286     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27287   }
27288 if (ANDSI (FLD (f_u6), 1)) {
27289   tmp_tmp = GET_H_FR_LO (ADDSI (FLD (f_FRi), 0));
27290 } else {
27291   tmp_tmp = GET_H_FR_HI (ADDSI (FLD (f_FRi), 0));
27292 }
27293   {
27294     UHI opval = tmp_tmp;
27295     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
27296     written |= (1 << 9);
27297     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27298   }
27299   {
27300     UHI opval = tmp_tmp;
27301     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
27302     written |= (1 << 11);
27303     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27304   }
27305   {
27306     UHI opval = tmp_tmp;
27307     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 1), opval);
27308     written |= (1 << 10);
27309     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27310   }
27311   {
27312     UHI opval = tmp_tmp;
27313     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 1), opval);
27314     written |= (1 << 12);
27315     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27316   }
27317 }
27318 }
27319 }
27320
27321   abuf->written = written;
27322   return vpc;
27323 #undef FLD
27324 }
27325
27326 /* mpackh: mpackh$pack $FRinti,$FRintj,$FRintk */
27327
27328 static SEM_PC
27329 SEM_FN_NAME (frvbf,mpackh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27330 {
27331 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
27332   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27333   int UNUSED written = 0;
27334   IADDR UNUSED pc = abuf->addr;
27335   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27336
27337 {
27338   {
27339     UHI opval = GET_H_FR_LO (ADDSI (FLD (f_FRi), 0));
27340     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
27341     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27342   }
27343   {
27344     UHI opval = GET_H_FR_LO (ADDSI (FLD (f_FRj), 0));
27345     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
27346     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27347   }
27348 }
27349
27350   return vpc;
27351 #undef FLD
27352 }
27353
27354 /* mdpackh: mdpackh$pack $FRintieven,$FRintjeven,$FRintkeven */
27355
27356 static SEM_PC
27357 SEM_FN_NAME (frvbf,mdpackh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27358 {
27359 #define FLD(f) abuf->fields.sfmt_mdpackh.f
27360   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27361   int UNUSED written = 0;
27362   IADDR UNUSED pc = abuf->addr;
27363   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27364
27365 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
27366 frvbf_media_register_not_aligned (current_cpu);
27367 } else {
27368 {
27369   {
27370     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRi)));
27371     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRi), opval);
27372     written |= (1 << 10);
27373     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27374   }
27375   {
27376     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRj)));
27377     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRj), opval);
27378     written |= (1 << 11);
27379     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27380   }
27381   {
27382     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27383     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27384     written |= (1 << 12);
27385     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27386   }
27387 {
27388   {
27389     UHI opval = GET_H_FR_LO (ADDSI (FLD (f_FRi), 0));
27390     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
27391     written |= (1 << 13);
27392     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27393   }
27394   {
27395     UHI opval = GET_H_FR_LO (ADDSI (FLD (f_FRj), 0));
27396     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
27397     written |= (1 << 15);
27398     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27399   }
27400 }
27401 {
27402   {
27403     UHI opval = GET_H_FR_LO (ADDSI (FLD (f_FRi), 1));
27404     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 1), opval);
27405     written |= (1 << 14);
27406     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27407   }
27408   {
27409     UHI opval = GET_H_FR_LO (ADDSI (FLD (f_FRj), 1));
27410     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 1), opval);
27411     written |= (1 << 16);
27412     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27413   }
27414 }
27415 }
27416 }
27417
27418   abuf->written = written;
27419   return vpc;
27420 #undef FLD
27421 }
27422
27423 /* munpackh: munpackh$pack $FRinti,$FRintkeven */
27424
27425 static SEM_PC
27426 SEM_FN_NAME (frvbf,munpackh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27427 {
27428 #define FLD(f) abuf->fields.sfmt_munpackh.f
27429   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27430   int UNUSED written = 0;
27431   IADDR UNUSED pc = abuf->addr;
27432   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27433
27434 if (ANDSI (FLD (f_FRk), SUBSI (2, 1))) {
27435 frvbf_media_register_not_aligned (current_cpu);
27436 } else {
27437 {
27438   {
27439     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRi)));
27440     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRi), opval);
27441     written |= (1 << 6);
27442     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27443   }
27444   {
27445     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27446     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27447     written |= (1 << 7);
27448     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27449   }
27450 {
27451   {
27452     UHI opval = GET_H_FR_HI (ADDSI (FLD (f_FRi), 0));
27453     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
27454     written |= (1 << 8);
27455     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27456   }
27457   {
27458     UHI opval = GET_H_FR_HI (ADDSI (FLD (f_FRi), 0));
27459     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
27460     written |= (1 << 10);
27461     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27462   }
27463   {
27464     UHI opval = GET_H_FR_LO (ADDSI (FLD (f_FRi), 0));
27465     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), ADDSI (0, 1)), opval);
27466     written |= (1 << 9);
27467     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27468   }
27469   {
27470     UHI opval = GET_H_FR_LO (ADDSI (FLD (f_FRi), 0));
27471     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), ADDSI (0, 1)), opval);
27472     written |= (1 << 11);
27473     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27474   }
27475 }
27476 }
27477 }
27478
27479   abuf->written = written;
27480   return vpc;
27481 #undef FLD
27482 }
27483
27484 /* mdunpackh: mdunpackh$pack $FRintieven,$FRintk */
27485
27486 static SEM_PC
27487 SEM_FN_NAME (frvbf,mdunpackh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27488 {
27489 #define FLD(f) abuf->fields.sfmt_mdunpackh.f
27490   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27491   int UNUSED written = 0;
27492   IADDR UNUSED pc = abuf->addr;
27493   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27494
27495 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (4, 1)))) {
27496 frvbf_media_register_not_aligned (current_cpu);
27497 } else {
27498 {
27499   {
27500     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRi)));
27501     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRi), opval);
27502     written |= (1 << 8);
27503     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27504   }
27505   {
27506     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27507     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27508     written |= (1 << 9);
27509     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27510   }
27511 {
27512   {
27513     UHI opval = GET_H_FR_HI (ADDSI (FLD (f_FRi), 0));
27514     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
27515     written |= (1 << 10);
27516     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27517   }
27518   {
27519     UHI opval = GET_H_FR_HI (ADDSI (FLD (f_FRi), 0));
27520     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
27521     written |= (1 << 14);
27522     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27523   }
27524   {
27525     UHI opval = GET_H_FR_LO (ADDSI (FLD (f_FRi), 0));
27526     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), ADDSI (0, 1)), opval);
27527     written |= (1 << 12);
27528     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27529   }
27530   {
27531     UHI opval = GET_H_FR_LO (ADDSI (FLD (f_FRi), 0));
27532     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), ADDSI (0, 1)), opval);
27533     written |= (1 << 16);
27534     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27535   }
27536 }
27537 {
27538   {
27539     UHI opval = GET_H_FR_HI (ADDSI (FLD (f_FRi), 1));
27540     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 2), opval);
27541     written |= (1 << 11);
27542     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27543   }
27544   {
27545     UHI opval = GET_H_FR_HI (ADDSI (FLD (f_FRi), 1));
27546     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 2), opval);
27547     written |= (1 << 15);
27548     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27549   }
27550   {
27551     UHI opval = GET_H_FR_LO (ADDSI (FLD (f_FRi), 1));
27552     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), ADDSI (2, 1)), opval);
27553     written |= (1 << 13);
27554     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27555   }
27556   {
27557     UHI opval = GET_H_FR_LO (ADDSI (FLD (f_FRi), 1));
27558     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), ADDSI (2, 1)), opval);
27559     written |= (1 << 17);
27560     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27561   }
27562 }
27563 }
27564 }
27565
27566   abuf->written = written;
27567   return vpc;
27568 #undef FLD
27569 }
27570
27571 /* mbtoh: mbtoh$pack $FRintj,$FRintkeven */
27572
27573 static SEM_PC
27574 SEM_FN_NAME (frvbf,mbtoh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27575 {
27576 #define FLD(f) abuf->fields.sfmt_cmbtoh.f
27577   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27578   int UNUSED written = 0;
27579   IADDR UNUSED pc = abuf->addr;
27580   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27581
27582 {
27583   {
27584     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRj)));
27585     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRj), opval);
27586     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27587   }
27588   {
27589     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27590     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27591     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27592   }
27593 if (ANDSI (FLD (f_FRk), SUBSI (2, 1))) {
27594 frvbf_media_register_not_aligned (current_cpu);
27595 } else {
27596 {
27597   {
27598     UHI opval = GET_H_FR_3 (ADDSI (FLD (f_FRj), 0));
27599     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
27600     written |= (1 << 10);
27601     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27602   }
27603   {
27604     UHI opval = GET_H_FR_2 (ADDSI (FLD (f_FRj), 0));
27605     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
27606     written |= (1 << 12);
27607     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27608   }
27609   {
27610     UHI opval = GET_H_FR_1 (ADDSI (FLD (f_FRj), 0));
27611     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 1), opval);
27612     written |= (1 << 11);
27613     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27614   }
27615   {
27616     UHI opval = GET_H_FR_0 (ADDSI (FLD (f_FRj), 0));
27617     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 1), opval);
27618     written |= (1 << 13);
27619     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27620   }
27621 }
27622 }
27623 }
27624
27625   abuf->written = written;
27626   return vpc;
27627 #undef FLD
27628 }
27629
27630 /* cmbtoh: cmbtoh$pack $FRintj,$FRintkeven,$CCi,$cond */
27631
27632 static SEM_PC
27633 SEM_FN_NAME (frvbf,cmbtoh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27634 {
27635 #define FLD(f) abuf->fields.sfmt_cmbtoh.f
27636   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27637   int UNUSED written = 0;
27638   IADDR UNUSED pc = abuf->addr;
27639   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27640
27641 {
27642   {
27643     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRj)));
27644     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRj), opval);
27645     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27646   }
27647   {
27648     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27649     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27650     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27651   }
27652 if (ANDSI (FLD (f_FRk), SUBSI (2, 1))) {
27653 frvbf_media_register_not_aligned (current_cpu);
27654 } else {
27655 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
27656 {
27657   {
27658     UHI opval = GET_H_FR_3 (ADDSI (FLD (f_FRj), 0));
27659     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
27660     written |= (1 << 12);
27661     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27662   }
27663   {
27664     UHI opval = GET_H_FR_2 (ADDSI (FLD (f_FRj), 0));
27665     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
27666     written |= (1 << 14);
27667     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27668   }
27669   {
27670     UHI opval = GET_H_FR_1 (ADDSI (FLD (f_FRj), 0));
27671     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 1), opval);
27672     written |= (1 << 13);
27673     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27674   }
27675   {
27676     UHI opval = GET_H_FR_0 (ADDSI (FLD (f_FRj), 0));
27677     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 1), opval);
27678     written |= (1 << 15);
27679     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27680   }
27681 }
27682 }
27683 }
27684 }
27685
27686   abuf->written = written;
27687   return vpc;
27688 #undef FLD
27689 }
27690
27691 /* mhtob: mhtob$pack $FRintjeven,$FRintk */
27692
27693 static SEM_PC
27694 SEM_FN_NAME (frvbf,mhtob) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27695 {
27696 #define FLD(f) abuf->fields.sfmt_cmhtob.f
27697   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27698   int UNUSED written = 0;
27699   IADDR UNUSED pc = abuf->addr;
27700   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27701
27702 {
27703   {
27704     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRj)));
27705     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRj), opval);
27706     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27707   }
27708   {
27709     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27710     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27711     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27712   }
27713 if (ANDSI (FLD (f_FRj), SUBSI (2, 1))) {
27714 frvbf_media_register_not_aligned (current_cpu);
27715 } else {
27716 {
27717   {
27718     UHI opval = GET_H_FR_HI (ADDSI (FLD (f_FRj), 0));
27719     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_3_set, ADDSI (FLD (f_FRk), 0), opval);
27720     written |= (1 << 13);
27721     TRACE_RESULT (current_cpu, abuf, "fr_3", 'x', opval);
27722   }
27723   {
27724     UHI opval = GET_H_FR_LO (ADDSI (FLD (f_FRj), 0));
27725     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_2_set, ADDSI (FLD (f_FRk), 0), opval);
27726     written |= (1 << 12);
27727     TRACE_RESULT (current_cpu, abuf, "fr_2", 'x', opval);
27728   }
27729   {
27730     UHI opval = GET_H_FR_HI (ADDSI (FLD (f_FRj), 1));
27731     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_1_set, ADDSI (FLD (f_FRk), 0), opval);
27732     written |= (1 << 11);
27733     TRACE_RESULT (current_cpu, abuf, "fr_1", 'x', opval);
27734   }
27735   {
27736     UHI opval = GET_H_FR_LO (ADDSI (FLD (f_FRj), 1));
27737     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_0_set, ADDSI (FLD (f_FRk), 0), opval);
27738     written |= (1 << 10);
27739     TRACE_RESULT (current_cpu, abuf, "fr_0", 'x', opval);
27740   }
27741 }
27742 }
27743 }
27744
27745   abuf->written = written;
27746   return vpc;
27747 #undef FLD
27748 }
27749
27750 /* cmhtob: cmhtob$pack $FRintjeven,$FRintk,$CCi,$cond */
27751
27752 static SEM_PC
27753 SEM_FN_NAME (frvbf,cmhtob) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27754 {
27755 #define FLD(f) abuf->fields.sfmt_cmhtob.f
27756   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27757   int UNUSED written = 0;
27758   IADDR UNUSED pc = abuf->addr;
27759   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27760
27761 {
27762   {
27763     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRj)));
27764     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRj), opval);
27765     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27766   }
27767   {
27768     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27769     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27770     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27771   }
27772 if (ANDSI (FLD (f_FRj), SUBSI (2, 1))) {
27773 frvbf_media_register_not_aligned (current_cpu);
27774 } else {
27775 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
27776 {
27777   {
27778     UHI opval = GET_H_FR_HI (ADDSI (FLD (f_FRj), 0));
27779     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_3_set, ADDSI (FLD (f_FRk), 0), opval);
27780     written |= (1 << 15);
27781     TRACE_RESULT (current_cpu, abuf, "fr_3", 'x', opval);
27782   }
27783   {
27784     UHI opval = GET_H_FR_LO (ADDSI (FLD (f_FRj), 0));
27785     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_2_set, ADDSI (FLD (f_FRk), 0), opval);
27786     written |= (1 << 14);
27787     TRACE_RESULT (current_cpu, abuf, "fr_2", 'x', opval);
27788   }
27789   {
27790     UHI opval = GET_H_FR_HI (ADDSI (FLD (f_FRj), 1));
27791     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_1_set, ADDSI (FLD (f_FRk), 0), opval);
27792     written |= (1 << 13);
27793     TRACE_RESULT (current_cpu, abuf, "fr_1", 'x', opval);
27794   }
27795   {
27796     UHI opval = GET_H_FR_LO (ADDSI (FLD (f_FRj), 1));
27797     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_0_set, ADDSI (FLD (f_FRk), 0), opval);
27798     written |= (1 << 12);
27799     TRACE_RESULT (current_cpu, abuf, "fr_0", 'x', opval);
27800   }
27801 }
27802 }
27803 }
27804 }
27805
27806   abuf->written = written;
27807   return vpc;
27808 #undef FLD
27809 }
27810
27811 /* mbtohe: mbtohe$pack $FRintj,$FRintk */
27812
27813 static SEM_PC
27814 SEM_FN_NAME (frvbf,mbtohe) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27815 {
27816 #define FLD(f) abuf->fields.sfmt_cmbtohe.f
27817   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27818   int UNUSED written = 0;
27819   IADDR UNUSED pc = abuf->addr;
27820   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27821
27822 {
27823   {
27824     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRj)));
27825     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRj), opval);
27826     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27827   }
27828   {
27829     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27830     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27831     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27832   }
27833 if (ANDSI (FLD (f_FRk), SUBSI (4, 1))) {
27834 frvbf_media_register_not_aligned (current_cpu);
27835 } else {
27836 {
27837   {
27838     UHI opval = GET_H_FR_3 (ADDSI (FLD (f_FRj), 0));
27839     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
27840     written |= (1 << 10);
27841     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27842   }
27843   {
27844     UHI opval = GET_H_FR_3 (ADDSI (FLD (f_FRj), 0));
27845     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
27846     written |= (1 << 14);
27847     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27848   }
27849   {
27850     UHI opval = GET_H_FR_2 (ADDSI (FLD (f_FRj), 0));
27851     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 1), opval);
27852     written |= (1 << 11);
27853     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27854   }
27855   {
27856     UHI opval = GET_H_FR_2 (ADDSI (FLD (f_FRj), 0));
27857     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 1), opval);
27858     written |= (1 << 15);
27859     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27860   }
27861   {
27862     UHI opval = GET_H_FR_1 (ADDSI (FLD (f_FRj), 0));
27863     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 2), opval);
27864     written |= (1 << 12);
27865     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27866   }
27867   {
27868     UHI opval = GET_H_FR_1 (ADDSI (FLD (f_FRj), 0));
27869     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 2), opval);
27870     written |= (1 << 16);
27871     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27872   }
27873   {
27874     UHI opval = GET_H_FR_0 (ADDSI (FLD (f_FRj), 0));
27875     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 3), opval);
27876     written |= (1 << 13);
27877     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27878   }
27879   {
27880     UHI opval = GET_H_FR_0 (ADDSI (FLD (f_FRj), 0));
27881     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 3), opval);
27882     written |= (1 << 17);
27883     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27884   }
27885 }
27886 }
27887 }
27888
27889   abuf->written = written;
27890   return vpc;
27891 #undef FLD
27892 }
27893
27894 /* cmbtohe: cmbtohe$pack $FRintj,$FRintk,$CCi,$cond */
27895
27896 static SEM_PC
27897 SEM_FN_NAME (frvbf,cmbtohe) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27898 {
27899 #define FLD(f) abuf->fields.sfmt_cmbtohe.f
27900   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27901   int UNUSED written = 0;
27902   IADDR UNUSED pc = abuf->addr;
27903   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27904
27905 {
27906   {
27907     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRj)));
27908     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRj), opval);
27909     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27910   }
27911   {
27912     SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27913     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27914     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27915   }
27916 if (ANDSI (FLD (f_FRk), SUBSI (4, 1))) {
27917 frvbf_media_register_not_aligned (current_cpu);
27918 } else {
27919 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
27920 {
27921   {
27922     UHI opval = GET_H_FR_3 (ADDSI (FLD (f_FRj), 0));
27923     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 0), opval);
27924     written |= (1 << 12);
27925     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27926   }
27927   {
27928     UHI opval = GET_H_FR_3 (ADDSI (FLD (f_FRj), 0));
27929     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 0), opval);
27930     written |= (1 << 16);
27931     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27932   }
27933   {
27934     UHI opval = GET_H_FR_2 (ADDSI (FLD (f_FRj), 0));
27935     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 1), opval);
27936     written |= (1 << 13);
27937     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27938   }
27939   {
27940     UHI opval = GET_H_FR_2 (ADDSI (FLD (f_FRj), 0));
27941     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 1), opval);
27942     written |= (1 << 17);
27943     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27944   }
27945   {
27946     UHI opval = GET_H_FR_1 (ADDSI (FLD (f_FRj), 0));
27947     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 2), opval);
27948     written |= (1 << 14);
27949     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27950   }
27951   {
27952     UHI opval = GET_H_FR_1 (ADDSI (FLD (f_FRj), 0));
27953     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 2), opval);
27954     written |= (1 << 18);
27955     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27956   }
27957   {
27958     UHI opval = GET_H_FR_0 (ADDSI (FLD (f_FRj), 0));
27959     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ADDSI (FLD (f_FRk), 3), opval);
27960     written |= (1 << 15);
27961     TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27962   }
27963   {
27964     UHI opval = GET_H_FR_0 (ADDSI (FLD (f_FRj), 0));
27965     sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ADDSI (FLD (f_FRk), 3), opval);
27966     written |= (1 << 19);
27967     TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27968   }
27969 }
27970 }
27971 }
27972 }
27973
27974   abuf->written = written;
27975   return vpc;
27976 #undef FLD
27977 }
27978
27979 /* mnop: mnop$pack */
27980
27981 static SEM_PC
27982 SEM_FN_NAME (frvbf,mnop) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27983 {
27984 #define FLD(f) abuf->fields.fmt_empty.f
27985   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27986   int UNUSED written = 0;
27987   IADDR UNUSED pc = abuf->addr;
27988   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27989
27990 ((void) 0); /*nop*/
27991
27992   return vpc;
27993 #undef FLD
27994 }
27995
27996 /* mclracc-0: mclracc$pack $ACC40Sk,$A0 */
27997
27998 static SEM_PC
27999 SEM_FN_NAME (frvbf,mclracc_0) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
28000 {
28001 #define FLD(f) abuf->fields.sfmt_mdasaccs.f
28002   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
28003   int UNUSED written = 0;
28004   IADDR UNUSED pc = abuf->addr;
28005   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
28006
28007 frvbf_clear_accumulators (current_cpu, FLD (f_ACC40Sk), 0);
28008
28009   return vpc;
28010 #undef FLD
28011 }
28012
28013 /* mclracc-1: mclracc$pack $ACC40Sk,$A1 */
28014
28015 static SEM_PC
28016 SEM_FN_NAME (frvbf,mclracc_1) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
28017 {
28018 #define FLD(f) abuf->fields.sfmt_mdasaccs.f
28019   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
28020   int UNUSED written = 0;
28021   IADDR UNUSED pc = abuf->addr;
28022   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
28023
28024 frvbf_clear_accumulators (current_cpu, FLD (f_ACC40Sk), 1);
28025
28026   return vpc;
28027 #undef FLD
28028 }
28029
28030 /* mrdacc: mrdacc$pack $ACC40Si,$FRintk */
28031
28032 static SEM_PC
28033 SEM_FN_NAME (frvbf,mrdacc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
28034 {
28035 #define FLD(f) abuf->fields.sfmt_mcuti.f
28036   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
28037   int UNUSED written = 0;
28038   IADDR UNUSED pc = abuf->addr;
28039   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
28040
28041   {
28042     SI opval = GET_H_ACC40S (FLD (f_ACC40Si));
28043     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
28044     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
28045   }
28046
28047   return vpc;
28048 #undef FLD
28049 }
28050
28051 /* mrdaccg: mrdaccg$pack $ACCGi,$FRintk */
28052
28053 static SEM_PC
28054 SEM_FN_NAME (frvbf,mrdaccg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
28055 {
28056 #define FLD(f) abuf->fields.sfmt_mrdaccg.f
28057   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
28058   int UNUSED written = 0;
28059   IADDR UNUSED pc = abuf->addr;
28060   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
28061
28062   {
28063     SI opval = GET_H_ACCG (FLD (f_ACCGi));
28064     sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
28065     TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
28066   }
28067
28068   return vpc;
28069 #undef FLD
28070 }
28071
28072 /* mwtacc: mwtacc$pack $FRinti,$ACC40Sk */
28073
28074 static SEM_PC
28075 SEM_FN_NAME (frvbf,mwtacc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
28076 {
28077 #define FLD(f) abuf->fields.sfmt_cmmachs.f
28078   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
28079   int UNUSED written = 0;
28080   IADDR UNUSED pc = abuf->addr;
28081   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
28082
28083   {
28084     DI opval = ORDI (ANDDI (GET_H_ACC40S (FLD (f_ACC40Sk)), MAKEDI (0xffffffff, 0)), GET_H_FR_INT (FLD (f_FRi)));
28085     sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
28086     TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
28087   }
28088
28089   return vpc;
28090 #undef FLD
28091 }
28092
28093 /* mwtaccg: mwtaccg$pack $FRinti,$ACCGk */
28094
28095 static SEM_PC
28096 SEM_FN_NAME (frvbf,mwtaccg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
28097 {
28098 #define FLD(f) abuf->fields.sfmt_mwtaccg.f
28099   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
28100   int UNUSED written = 0;
28101   IADDR UNUSED pc = abuf->addr;
28102   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
28103
28104 {
28105 frv_ref_SI (GET_H_ACCG (FLD (f_ACCGk)));
28106   {
28107     USI opval = GET_H_FR_INT (FLD (f_FRi));
28108     sim_queue_fn_si_write (current_cpu, frvbf_h_accg_set, FLD (f_ACCGk), opval);
28109     TRACE_RESULT (current_cpu, abuf, "accg", 'x', opval);
28110   }
28111 }
28112
28113   return vpc;
28114 #undef FLD
28115 }
28116
28117 /* mcop1: mcop1$pack $FRi,$FRj,$FRk */
28118
28119 static SEM_PC
28120 SEM_FN_NAME (frvbf,mcop1) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
28121 {
28122 #define FLD(f) abuf->fields.fmt_empty.f
28123   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
28124   int UNUSED written = 0;
28125   IADDR UNUSED pc = abuf->addr;
28126   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
28127
28128 frvbf_media_cop (current_cpu, 1);
28129
28130   return vpc;
28131 #undef FLD
28132 }
28133
28134 /* mcop2: mcop2$pack $FRi,$FRj,$FRk */
28135
28136 static SEM_PC
28137 SEM_FN_NAME (frvbf,mcop2) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
28138 {
28139 #define FLD(f) abuf->fields.fmt_empty.f
28140   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
28141   int UNUSED written = 0;
28142   IADDR UNUSED pc = abuf->addr;
28143   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
28144
28145 frvbf_media_cop (current_cpu, 2);
28146
28147   return vpc;
28148 #undef FLD
28149 }
28150
28151 /* fnop: fnop$pack */
28152
28153 static SEM_PC
28154 SEM_FN_NAME (frvbf,fnop) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
28155 {
28156 #define FLD(f) abuf->fields.fmt_empty.f
28157   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
28158   int UNUSED written = 0;
28159   IADDR UNUSED pc = abuf->addr;
28160   SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
28161
28162 ((void) 0); /*nop*/
28163
28164   return vpc;
28165 #undef FLD
28166 }
28167
28168 /* Table of all semantic fns.  */
28169
28170 static const struct sem_fn_desc sem_fns[] = {
28171   { FRVBF_INSN_X_INVALID, SEM_FN_NAME (frvbf,x_invalid) },
28172   { FRVBF_INSN_X_AFTER, SEM_FN_NAME (frvbf,x_after) },
28173   { FRVBF_INSN_X_BEFORE, SEM_FN_NAME (frvbf,x_before) },
28174   { FRVBF_INSN_X_CTI_CHAIN, SEM_FN_NAME (frvbf,x_cti_chain) },
28175   { FRVBF_INSN_X_CHAIN, SEM_FN_NAME (frvbf,x_chain) },
28176   { FRVBF_INSN_X_BEGIN, SEM_FN_NAME (frvbf,x_begin) },
28177   { FRVBF_INSN_ADD, SEM_FN_NAME (frvbf,add) },
28178   { FRVBF_INSN_SUB, SEM_FN_NAME (frvbf,sub) },
28179   { FRVBF_INSN_AND, SEM_FN_NAME (frvbf,and) },
28180   { FRVBF_INSN_OR, SEM_FN_NAME (frvbf,or) },
28181   { FRVBF_INSN_XOR, SEM_FN_NAME (frvbf,xor) },
28182   { FRVBF_INSN_NOT, SEM_FN_NAME (frvbf,not) },
28183   { FRVBF_INSN_SDIV, SEM_FN_NAME (frvbf,sdiv) },
28184   { FRVBF_INSN_NSDIV, SEM_FN_NAME (frvbf,nsdiv) },
28185   { FRVBF_INSN_UDIV, SEM_FN_NAME (frvbf,udiv) },
28186   { FRVBF_INSN_NUDIV, SEM_FN_NAME (frvbf,nudiv) },
28187   { FRVBF_INSN_SMUL, SEM_FN_NAME (frvbf,smul) },
28188   { FRVBF_INSN_UMUL, SEM_FN_NAME (frvbf,umul) },
28189   { FRVBF_INSN_SMU, SEM_FN_NAME (frvbf,smu) },
28190   { FRVBF_INSN_SMASS, SEM_FN_NAME (frvbf,smass) },
28191   { FRVBF_INSN_SMSSS, SEM_FN_NAME (frvbf,smsss) },
28192   { FRVBF_INSN_SLL, SEM_FN_NAME (frvbf,sll) },
28193   { FRVBF_INSN_SRL, SEM_FN_NAME (frvbf,srl) },
28194   { FRVBF_INSN_SRA, SEM_FN_NAME (frvbf,sra) },
28195   { FRVBF_INSN_SLASS, SEM_FN_NAME (frvbf,slass) },
28196   { FRVBF_INSN_SCUTSS, SEM_FN_NAME (frvbf,scutss) },
28197   { FRVBF_INSN_SCAN, SEM_FN_NAME (frvbf,scan) },
28198   { FRVBF_INSN_CADD, SEM_FN_NAME (frvbf,cadd) },
28199   { FRVBF_INSN_CSUB, SEM_FN_NAME (frvbf,csub) },
28200   { FRVBF_INSN_CAND, SEM_FN_NAME (frvbf,cand) },
28201   { FRVBF_INSN_COR, SEM_FN_NAME (frvbf,cor) },
28202   { FRVBF_INSN_CXOR, SEM_FN_NAME (frvbf,cxor) },
28203   { FRVBF_INSN_CNOT, SEM_FN_NAME (frvbf,cnot) },
28204   { FRVBF_INSN_CSMUL, SEM_FN_NAME (frvbf,csmul) },
28205   { FRVBF_INSN_CSDIV, SEM_FN_NAME (frvbf,csdiv) },
28206   { FRVBF_INSN_CUDIV, SEM_FN_NAME (frvbf,cudiv) },
28207   { FRVBF_INSN_CSLL, SEM_FN_NAME (frvbf,csll) },
28208   { FRVBF_INSN_CSRL, SEM_FN_NAME (frvbf,csrl) },
28209   { FRVBF_INSN_CSRA, SEM_FN_NAME (frvbf,csra) },
28210   { FRVBF_INSN_CSCAN, SEM_FN_NAME (frvbf,cscan) },
28211   { FRVBF_INSN_ADDCC, SEM_FN_NAME (frvbf,addcc) },
28212   { FRVBF_INSN_SUBCC, SEM_FN_NAME (frvbf,subcc) },
28213   { FRVBF_INSN_ANDCC, SEM_FN_NAME (frvbf,andcc) },
28214   { FRVBF_INSN_ORCC, SEM_FN_NAME (frvbf,orcc) },
28215   { FRVBF_INSN_XORCC, SEM_FN_NAME (frvbf,xorcc) },
28216   { FRVBF_INSN_SLLCC, SEM_FN_NAME (frvbf,sllcc) },
28217   { FRVBF_INSN_SRLCC, SEM_FN_NAME (frvbf,srlcc) },
28218   { FRVBF_INSN_SRACC, SEM_FN_NAME (frvbf,sracc) },
28219   { FRVBF_INSN_SMULCC, SEM_FN_NAME (frvbf,smulcc) },
28220   { FRVBF_INSN_UMULCC, SEM_FN_NAME (frvbf,umulcc) },
28221   { FRVBF_INSN_CADDCC, SEM_FN_NAME (frvbf,caddcc) },
28222   { FRVBF_INSN_CSUBCC, SEM_FN_NAME (frvbf,csubcc) },
28223   { FRVBF_INSN_CSMULCC, SEM_FN_NAME (frvbf,csmulcc) },
28224   { FRVBF_INSN_CANDCC, SEM_FN_NAME (frvbf,candcc) },
28225   { FRVBF_INSN_CORCC, SEM_FN_NAME (frvbf,corcc) },
28226   { FRVBF_INSN_CXORCC, SEM_FN_NAME (frvbf,cxorcc) },
28227   { FRVBF_INSN_CSLLCC, SEM_FN_NAME (frvbf,csllcc) },
28228   { FRVBF_INSN_CSRLCC, SEM_FN_NAME (frvbf,csrlcc) },
28229   { FRVBF_INSN_CSRACC, SEM_FN_NAME (frvbf,csracc) },
28230   { FRVBF_INSN_ADDX, SEM_FN_NAME (frvbf,addx) },
28231   { FRVBF_INSN_SUBX, SEM_FN_NAME (frvbf,subx) },
28232   { FRVBF_INSN_ADDXCC, SEM_FN_NAME (frvbf,addxcc) },
28233   { FRVBF_INSN_SUBXCC, SEM_FN_NAME (frvbf,subxcc) },
28234   { FRVBF_INSN_ADDSS, SEM_FN_NAME (frvbf,addss) },
28235   { FRVBF_INSN_SUBSS, SEM_FN_NAME (frvbf,subss) },
28236   { FRVBF_INSN_ADDI, SEM_FN_NAME (frvbf,addi) },
28237   { FRVBF_INSN_SUBI, SEM_FN_NAME (frvbf,subi) },
28238   { FRVBF_INSN_ANDI, SEM_FN_NAME (frvbf,andi) },
28239   { FRVBF_INSN_ORI, SEM_FN_NAME (frvbf,ori) },
28240   { FRVBF_INSN_XORI, SEM_FN_NAME (frvbf,xori) },
28241   { FRVBF_INSN_SDIVI, SEM_FN_NAME (frvbf,sdivi) },
28242   { FRVBF_INSN_NSDIVI, SEM_FN_NAME (frvbf,nsdivi) },
28243   { FRVBF_INSN_UDIVI, SEM_FN_NAME (frvbf,udivi) },
28244   { FRVBF_INSN_NUDIVI, SEM_FN_NAME (frvbf,nudivi) },
28245   { FRVBF_INSN_SMULI, SEM_FN_NAME (frvbf,smuli) },
28246   { FRVBF_INSN_UMULI, SEM_FN_NAME (frvbf,umuli) },
28247   { FRVBF_INSN_SLLI, SEM_FN_NAME (frvbf,slli) },
28248   { FRVBF_INSN_SRLI, SEM_FN_NAME (frvbf,srli) },
28249   { FRVBF_INSN_SRAI, SEM_FN_NAME (frvbf,srai) },
28250   { FRVBF_INSN_SCANI, SEM_FN_NAME (frvbf,scani) },
28251   { FRVBF_INSN_ADDICC, SEM_FN_NAME (frvbf,addicc) },
28252   { FRVBF_INSN_SUBICC, SEM_FN_NAME (frvbf,subicc) },
28253   { FRVBF_INSN_ANDICC, SEM_FN_NAME (frvbf,andicc) },
28254   { FRVBF_INSN_ORICC, SEM_FN_NAME (frvbf,oricc) },
28255   { FRVBF_INSN_XORICC, SEM_FN_NAME (frvbf,xoricc) },
28256   { FRVBF_INSN_SMULICC, SEM_FN_NAME (frvbf,smulicc) },
28257   { FRVBF_INSN_UMULICC, SEM_FN_NAME (frvbf,umulicc) },
28258   { FRVBF_INSN_SLLICC, SEM_FN_NAME (frvbf,sllicc) },
28259   { FRVBF_INSN_SRLICC, SEM_FN_NAME (frvbf,srlicc) },
28260   { FRVBF_INSN_SRAICC, SEM_FN_NAME (frvbf,sraicc) },
28261   { FRVBF_INSN_ADDXI, SEM_FN_NAME (frvbf,addxi) },
28262   { FRVBF_INSN_SUBXI, SEM_FN_NAME (frvbf,subxi) },
28263   { FRVBF_INSN_ADDXICC, SEM_FN_NAME (frvbf,addxicc) },
28264   { FRVBF_INSN_SUBXICC, SEM_FN_NAME (frvbf,subxicc) },
28265   { FRVBF_INSN_CMPB, SEM_FN_NAME (frvbf,cmpb) },
28266   { FRVBF_INSN_CMPBA, SEM_FN_NAME (frvbf,cmpba) },
28267   { FRVBF_INSN_SETLO, SEM_FN_NAME (frvbf,setlo) },
28268   { FRVBF_INSN_SETHI, SEM_FN_NAME (frvbf,sethi) },
28269   { FRVBF_INSN_SETLOS, SEM_FN_NAME (frvbf,setlos) },
28270   { FRVBF_INSN_LDSB, SEM_FN_NAME (frvbf,ldsb) },
28271   { FRVBF_INSN_LDUB, SEM_FN_NAME (frvbf,ldub) },
28272   { FRVBF_INSN_LDSH, SEM_FN_NAME (frvbf,ldsh) },
28273   { FRVBF_INSN_LDUH, SEM_FN_NAME (frvbf,lduh) },
28274   { FRVBF_INSN_LD, SEM_FN_NAME (frvbf,ld) },
28275   { FRVBF_INSN_LDBF, SEM_FN_NAME (frvbf,ldbf) },
28276   { FRVBF_INSN_LDHF, SEM_FN_NAME (frvbf,ldhf) },
28277   { FRVBF_INSN_LDF, SEM_FN_NAME (frvbf,ldf) },
28278   { FRVBF_INSN_LDC, SEM_FN_NAME (frvbf,ldc) },
28279   { FRVBF_INSN_NLDSB, SEM_FN_NAME (frvbf,nldsb) },
28280   { FRVBF_INSN_NLDUB, SEM_FN_NAME (frvbf,nldub) },
28281   { FRVBF_INSN_NLDSH, SEM_FN_NAME (frvbf,nldsh) },
28282   { FRVBF_INSN_NLDUH, SEM_FN_NAME (frvbf,nlduh) },
28283   { FRVBF_INSN_NLD, SEM_FN_NAME (frvbf,nld) },
28284   { FRVBF_INSN_NLDBF, SEM_FN_NAME (frvbf,nldbf) },
28285   { FRVBF_INSN_NLDHF, SEM_FN_NAME (frvbf,nldhf) },
28286   { FRVBF_INSN_NLDF, SEM_FN_NAME (frvbf,nldf) },
28287   { FRVBF_INSN_LDD, SEM_FN_NAME (frvbf,ldd) },
28288   { FRVBF_INSN_LDDF, SEM_FN_NAME (frvbf,lddf) },
28289   { FRVBF_INSN_LDDC, SEM_FN_NAME (frvbf,lddc) },
28290   { FRVBF_INSN_NLDD, SEM_FN_NAME (frvbf,nldd) },
28291   { FRVBF_INSN_NLDDF, SEM_FN_NAME (frvbf,nlddf) },
28292   { FRVBF_INSN_LDQ, SEM_FN_NAME (frvbf,ldq) },
28293   { FRVBF_INSN_LDQF, SEM_FN_NAME (frvbf,ldqf) },
28294   { FRVBF_INSN_LDQC, SEM_FN_NAME (frvbf,ldqc) },
28295   { FRVBF_INSN_NLDQ, SEM_FN_NAME (frvbf,nldq) },
28296   { FRVBF_INSN_NLDQF, SEM_FN_NAME (frvbf,nldqf) },
28297   { FRVBF_INSN_LDSBU, SEM_FN_NAME (frvbf,ldsbu) },
28298   { FRVBF_INSN_LDUBU, SEM_FN_NAME (frvbf,ldubu) },
28299   { FRVBF_INSN_LDSHU, SEM_FN_NAME (frvbf,ldshu) },
28300   { FRVBF_INSN_LDUHU, SEM_FN_NAME (frvbf,lduhu) },
28301   { FRVBF_INSN_LDU, SEM_FN_NAME (frvbf,ldu) },
28302   { FRVBF_INSN_NLDSBU, SEM_FN_NAME (frvbf,nldsbu) },
28303   { FRVBF_INSN_NLDUBU, SEM_FN_NAME (frvbf,nldubu) },
28304   { FRVBF_INSN_NLDSHU, SEM_FN_NAME (frvbf,nldshu) },
28305   { FRVBF_INSN_NLDUHU, SEM_FN_NAME (frvbf,nlduhu) },
28306   { FRVBF_INSN_NLDU, SEM_FN_NAME (frvbf,nldu) },
28307   { FRVBF_INSN_LDBFU, SEM_FN_NAME (frvbf,ldbfu) },
28308   { FRVBF_INSN_LDHFU, SEM_FN_NAME (frvbf,ldhfu) },
28309   { FRVBF_INSN_LDFU, SEM_FN_NAME (frvbf,ldfu) },
28310   { FRVBF_INSN_LDCU, SEM_FN_NAME (frvbf,ldcu) },
28311   { FRVBF_INSN_NLDBFU, SEM_FN_NAME (frvbf,nldbfu) },
28312   { FRVBF_INSN_NLDHFU, SEM_FN_NAME (frvbf,nldhfu) },
28313   { FRVBF_INSN_NLDFU, SEM_FN_NAME (frvbf,nldfu) },
28314   { FRVBF_INSN_LDDU, SEM_FN_NAME (frvbf,lddu) },
28315   { FRVBF_INSN_NLDDU, SEM_FN_NAME (frvbf,nlddu) },
28316   { FRVBF_INSN_LDDFU, SEM_FN_NAME (frvbf,lddfu) },
28317   { FRVBF_INSN_LDDCU, SEM_FN_NAME (frvbf,lddcu) },
28318   { FRVBF_INSN_NLDDFU, SEM_FN_NAME (frvbf,nlddfu) },
28319   { FRVBF_INSN_LDQU, SEM_FN_NAME (frvbf,ldqu) },
28320   { FRVBF_INSN_NLDQU, SEM_FN_NAME (frvbf,nldqu) },
28321   { FRVBF_INSN_LDQFU, SEM_FN_NAME (frvbf,ldqfu) },
28322   { FRVBF_INSN_LDQCU, SEM_FN_NAME (frvbf,ldqcu) },
28323   { FRVBF_INSN_NLDQFU, SEM_FN_NAME (frvbf,nldqfu) },
28324   { FRVBF_INSN_LDSBI, SEM_FN_NAME (frvbf,ldsbi) },
28325   { FRVBF_INSN_LDSHI, SEM_FN_NAME (frvbf,ldshi) },
28326   { FRVBF_INSN_LDI, SEM_FN_NAME (frvbf,ldi) },
28327   { FRVBF_INSN_LDUBI, SEM_FN_NAME (frvbf,ldubi) },
28328   { FRVBF_INSN_LDUHI, SEM_FN_NAME (frvbf,lduhi) },
28329   { FRVBF_INSN_LDBFI, SEM_FN_NAME (frvbf,ldbfi) },
28330   { FRVBF_INSN_LDHFI, SEM_FN_NAME (frvbf,ldhfi) },
28331   { FRVBF_INSN_LDFI, SEM_FN_NAME (frvbf,ldfi) },
28332   { FRVBF_INSN_NLDSBI, SEM_FN_NAME (frvbf,nldsbi) },
28333   { FRVBF_INSN_NLDUBI, SEM_FN_NAME (frvbf,nldubi) },
28334   { FRVBF_INSN_NLDSHI, SEM_FN_NAME (frvbf,nldshi) },
28335   { FRVBF_INSN_NLDUHI, SEM_FN_NAME (frvbf,nlduhi) },
28336   { FRVBF_INSN_NLDI, SEM_FN_NAME (frvbf,nldi) },
28337   { FRVBF_INSN_NLDBFI, SEM_FN_NAME (frvbf,nldbfi) },
28338   { FRVBF_INSN_NLDHFI, SEM_FN_NAME (frvbf,nldhfi) },
28339   { FRVBF_INSN_NLDFI, SEM_FN_NAME (frvbf,nldfi) },
28340   { FRVBF_INSN_LDDI, SEM_FN_NAME (frvbf,lddi) },
28341   { FRVBF_INSN_LDDFI, SEM_FN_NAME (frvbf,lddfi) },
28342   { FRVBF_INSN_NLDDI, SEM_FN_NAME (frvbf,nlddi) },
28343   { FRVBF_INSN_NLDDFI, SEM_FN_NAME (frvbf,nlddfi) },
28344   { FRVBF_INSN_LDQI, SEM_FN_NAME (frvbf,ldqi) },
28345   { FRVBF_INSN_LDQFI, SEM_FN_NAME (frvbf,ldqfi) },
28346   { FRVBF_INSN_NLDQFI, SEM_FN_NAME (frvbf,nldqfi) },
28347   { FRVBF_INSN_STB, SEM_FN_NAME (frvbf,stb) },
28348   { FRVBF_INSN_STH, SEM_FN_NAME (frvbf,sth) },
28349   { FRVBF_INSN_ST, SEM_FN_NAME (frvbf,st) },
28350   { FRVBF_INSN_STBF, SEM_FN_NAME (frvbf,stbf) },
28351   { FRVBF_INSN_STHF, SEM_FN_NAME (frvbf,sthf) },
28352   { FRVBF_INSN_STF, SEM_FN_NAME (frvbf,stf) },
28353   { FRVBF_INSN_STC, SEM_FN_NAME (frvbf,stc) },
28354   { FRVBF_INSN_STD, SEM_FN_NAME (frvbf,std) },
28355   { FRVBF_INSN_STDF, SEM_FN_NAME (frvbf,stdf) },
28356   { FRVBF_INSN_STDC, SEM_FN_NAME (frvbf,stdc) },
28357   { FRVBF_INSN_STQ, SEM_FN_NAME (frvbf,stq) },
28358   { FRVBF_INSN_STQF, SEM_FN_NAME (frvbf,stqf) },
28359   { FRVBF_INSN_STQC, SEM_FN_NAME (frvbf,stqc) },
28360   { FRVBF_INSN_STBU, SEM_FN_NAME (frvbf,stbu) },
28361   { FRVBF_INSN_STHU, SEM_FN_NAME (frvbf,sthu) },
28362   { FRVBF_INSN_STU, SEM_FN_NAME (frvbf,stu) },
28363   { FRVBF_INSN_STBFU, SEM_FN_NAME (frvbf,stbfu) },
28364   { FRVBF_INSN_STHFU, SEM_FN_NAME (frvbf,sthfu) },
28365   { FRVBF_INSN_STFU, SEM_FN_NAME (frvbf,stfu) },
28366   { FRVBF_INSN_STCU, SEM_FN_NAME (frvbf,stcu) },
28367   { FRVBF_INSN_STDU, SEM_FN_NAME (frvbf,stdu) },
28368   { FRVBF_INSN_STDFU, SEM_FN_NAME (frvbf,stdfu) },
28369   { FRVBF_INSN_STDCU, SEM_FN_NAME (frvbf,stdcu) },
28370   { FRVBF_INSN_STQU, SEM_FN_NAME (frvbf,stqu) },
28371   { FRVBF_INSN_STQFU, SEM_FN_NAME (frvbf,stqfu) },
28372   { FRVBF_INSN_STQCU, SEM_FN_NAME (frvbf,stqcu) },
28373   { FRVBF_INSN_CLDSB, SEM_FN_NAME (frvbf,cldsb) },
28374   { FRVBF_INSN_CLDUB, SEM_FN_NAME (frvbf,cldub) },
28375   { FRVBF_INSN_CLDSH, SEM_FN_NAME (frvbf,cldsh) },
28376   { FRVBF_INSN_CLDUH, SEM_FN_NAME (frvbf,clduh) },
28377   { FRVBF_INSN_CLD, SEM_FN_NAME (frvbf,cld) },
28378   { FRVBF_INSN_CLDBF, SEM_FN_NAME (frvbf,cldbf) },
28379   { FRVBF_INSN_CLDHF, SEM_FN_NAME (frvbf,cldhf) },
28380   { FRVBF_INSN_CLDF, SEM_FN_NAME (frvbf,cldf) },
28381   { FRVBF_INSN_CLDD, SEM_FN_NAME (frvbf,cldd) },
28382   { FRVBF_INSN_CLDDF, SEM_FN_NAME (frvbf,clddf) },
28383   { FRVBF_INSN_CLDQ, SEM_FN_NAME (frvbf,cldq) },
28384   { FRVBF_INSN_CLDSBU, SEM_FN_NAME (frvbf,cldsbu) },
28385   { FRVBF_INSN_CLDUBU, SEM_FN_NAME (frvbf,cldubu) },
28386   { FRVBF_INSN_CLDSHU, SEM_FN_NAME (frvbf,cldshu) },
28387   { FRVBF_INSN_CLDUHU, SEM_FN_NAME (frvbf,clduhu) },
28388   { FRVBF_INSN_CLDU, SEM_FN_NAME (frvbf,cldu) },
28389   { FRVBF_INSN_CLDBFU, SEM_FN_NAME (frvbf,cldbfu) },
28390   { FRVBF_INSN_CLDHFU, SEM_FN_NAME (frvbf,cldhfu) },
28391   { FRVBF_INSN_CLDFU, SEM_FN_NAME (frvbf,cldfu) },
28392   { FRVBF_INSN_CLDDU, SEM_FN_NAME (frvbf,clddu) },
28393   { FRVBF_INSN_CLDDFU, SEM_FN_NAME (frvbf,clddfu) },
28394   { FRVBF_INSN_CLDQU, SEM_FN_NAME (frvbf,cldqu) },
28395   { FRVBF_INSN_CSTB, SEM_FN_NAME (frvbf,cstb) },
28396   { FRVBF_INSN_CSTH, SEM_FN_NAME (frvbf,csth) },
28397   { FRVBF_INSN_CST, SEM_FN_NAME (frvbf,cst) },
28398   { FRVBF_INSN_CSTBF, SEM_FN_NAME (frvbf,cstbf) },
28399   { FRVBF_INSN_CSTHF, SEM_FN_NAME (frvbf,csthf) },
28400   { FRVBF_INSN_CSTF, SEM_FN_NAME (frvbf,cstf) },
28401   { FRVBF_INSN_CSTD, SEM_FN_NAME (frvbf,cstd) },
28402   { FRVBF_INSN_CSTDF, SEM_FN_NAME (frvbf,cstdf) },
28403   { FRVBF_INSN_CSTQ, SEM_FN_NAME (frvbf,cstq) },
28404   { FRVBF_INSN_CSTBU, SEM_FN_NAME (frvbf,cstbu) },
28405   { FRVBF_INSN_CSTHU, SEM_FN_NAME (frvbf,csthu) },
28406   { FRVBF_INSN_CSTU, SEM_FN_NAME (frvbf,cstu) },
28407   { FRVBF_INSN_CSTBFU, SEM_FN_NAME (frvbf,cstbfu) },
28408   { FRVBF_INSN_CSTHFU, SEM_FN_NAME (frvbf,csthfu) },
28409   { FRVBF_INSN_CSTFU, SEM_FN_NAME (frvbf,cstfu) },
28410   { FRVBF_INSN_CSTDU, SEM_FN_NAME (frvbf,cstdu) },
28411   { FRVBF_INSN_CSTDFU, SEM_FN_NAME (frvbf,cstdfu) },
28412   { FRVBF_INSN_STBI, SEM_FN_NAME (frvbf,stbi) },
28413   { FRVBF_INSN_STHI, SEM_FN_NAME (frvbf,sthi) },
28414   { FRVBF_INSN_STI, SEM_FN_NAME (frvbf,sti) },
28415   { FRVBF_INSN_STBFI, SEM_FN_NAME (frvbf,stbfi) },
28416   { FRVBF_INSN_STHFI, SEM_FN_NAME (frvbf,sthfi) },
28417   { FRVBF_INSN_STFI, SEM_FN_NAME (frvbf,stfi) },
28418   { FRVBF_INSN_STDI, SEM_FN_NAME (frvbf,stdi) },
28419   { FRVBF_INSN_STDFI, SEM_FN_NAME (frvbf,stdfi) },
28420   { FRVBF_INSN_STQI, SEM_FN_NAME (frvbf,stqi) },
28421   { FRVBF_INSN_STQFI, SEM_FN_NAME (frvbf,stqfi) },
28422   { FRVBF_INSN_SWAP, SEM_FN_NAME (frvbf,swap) },
28423   { FRVBF_INSN_SWAPI, SEM_FN_NAME (frvbf,swapi) },
28424   { FRVBF_INSN_CSWAP, SEM_FN_NAME (frvbf,cswap) },
28425   { FRVBF_INSN_MOVGF, SEM_FN_NAME (frvbf,movgf) },
28426   { FRVBF_INSN_MOVFG, SEM_FN_NAME (frvbf,movfg) },
28427   { FRVBF_INSN_MOVGFD, SEM_FN_NAME (frvbf,movgfd) },
28428   { FRVBF_INSN_MOVFGD, SEM_FN_NAME (frvbf,movfgd) },
28429   { FRVBF_INSN_MOVGFQ, SEM_FN_NAME (frvbf,movgfq) },
28430   { FRVBF_INSN_MOVFGQ, SEM_FN_NAME (frvbf,movfgq) },
28431   { FRVBF_INSN_CMOVGF, SEM_FN_NAME (frvbf,cmovgf) },
28432   { FRVBF_INSN_CMOVFG, SEM_FN_NAME (frvbf,cmovfg) },
28433   { FRVBF_INSN_CMOVGFD, SEM_FN_NAME (frvbf,cmovgfd) },
28434   { FRVBF_INSN_CMOVFGD, SEM_FN_NAME (frvbf,cmovfgd) },
28435   { FRVBF_INSN_MOVGS, SEM_FN_NAME (frvbf,movgs) },
28436   { FRVBF_INSN_MOVSG, SEM_FN_NAME (frvbf,movsg) },
28437   { FRVBF_INSN_BRA, SEM_FN_NAME (frvbf,bra) },
28438   { FRVBF_INSN_BNO, SEM_FN_NAME (frvbf,bno) },
28439   { FRVBF_INSN_BEQ, SEM_FN_NAME (frvbf,beq) },
28440   { FRVBF_INSN_BNE, SEM_FN_NAME (frvbf,bne) },
28441   { FRVBF_INSN_BLE, SEM_FN_NAME (frvbf,ble) },
28442   { FRVBF_INSN_BGT, SEM_FN_NAME (frvbf,bgt) },
28443   { FRVBF_INSN_BLT, SEM_FN_NAME (frvbf,blt) },
28444   { FRVBF_INSN_BGE, SEM_FN_NAME (frvbf,bge) },
28445   { FRVBF_INSN_BLS, SEM_FN_NAME (frvbf,bls) },
28446   { FRVBF_INSN_BHI, SEM_FN_NAME (frvbf,bhi) },
28447   { FRVBF_INSN_BC, SEM_FN_NAME (frvbf,bc) },
28448   { FRVBF_INSN_BNC, SEM_FN_NAME (frvbf,bnc) },
28449   { FRVBF_INSN_BN, SEM_FN_NAME (frvbf,bn) },
28450   { FRVBF_INSN_BP, SEM_FN_NAME (frvbf,bp) },
28451   { FRVBF_INSN_BV, SEM_FN_NAME (frvbf,bv) },
28452   { FRVBF_INSN_BNV, SEM_FN_NAME (frvbf,bnv) },
28453   { FRVBF_INSN_FBRA, SEM_FN_NAME (frvbf,fbra) },
28454   { FRVBF_INSN_FBNO, SEM_FN_NAME (frvbf,fbno) },
28455   { FRVBF_INSN_FBNE, SEM_FN_NAME (frvbf,fbne) },
28456   { FRVBF_INSN_FBEQ, SEM_FN_NAME (frvbf,fbeq) },
28457   { FRVBF_INSN_FBLG, SEM_FN_NAME (frvbf,fblg) },
28458   { FRVBF_INSN_FBUE, SEM_FN_NAME (frvbf,fbue) },
28459   { FRVBF_INSN_FBUL, SEM_FN_NAME (frvbf,fbul) },
28460   { FRVBF_INSN_FBGE, SEM_FN_NAME (frvbf,fbge) },
28461   { FRVBF_INSN_FBLT, SEM_FN_NAME (frvbf,fblt) },
28462   { FRVBF_INSN_FBUGE, SEM_FN_NAME (frvbf,fbuge) },
28463   { FRVBF_INSN_FBUG, SEM_FN_NAME (frvbf,fbug) },
28464   { FRVBF_INSN_FBLE, SEM_FN_NAME (frvbf,fble) },
28465   { FRVBF_INSN_FBGT, SEM_FN_NAME (frvbf,fbgt) },
28466   { FRVBF_INSN_FBULE, SEM_FN_NAME (frvbf,fbule) },
28467   { FRVBF_INSN_FBU, SEM_FN_NAME (frvbf,fbu) },
28468   { FRVBF_INSN_FBO, SEM_FN_NAME (frvbf,fbo) },
28469   { FRVBF_INSN_BCTRLR, SEM_FN_NAME (frvbf,bctrlr) },
28470   { FRVBF_INSN_BRALR, SEM_FN_NAME (frvbf,bralr) },
28471   { FRVBF_INSN_BNOLR, SEM_FN_NAME (frvbf,bnolr) },
28472   { FRVBF_INSN_BEQLR, SEM_FN_NAME (frvbf,beqlr) },
28473   { FRVBF_INSN_BNELR, SEM_FN_NAME (frvbf,bnelr) },
28474   { FRVBF_INSN_BLELR, SEM_FN_NAME (frvbf,blelr) },
28475   { FRVBF_INSN_BGTLR, SEM_FN_NAME (frvbf,bgtlr) },
28476   { FRVBF_INSN_BLTLR, SEM_FN_NAME (frvbf,bltlr) },
28477   { FRVBF_INSN_BGELR, SEM_FN_NAME (frvbf,bgelr) },
28478   { FRVBF_INSN_BLSLR, SEM_FN_NAME (frvbf,blslr) },
28479   { FRVBF_INSN_BHILR, SEM_FN_NAME (frvbf,bhilr) },
28480   { FRVBF_INSN_BCLR, SEM_FN_NAME (frvbf,bclr) },
28481   { FRVBF_INSN_BNCLR, SEM_FN_NAME (frvbf,bnclr) },
28482   { FRVBF_INSN_BNLR, SEM_FN_NAME (frvbf,bnlr) },
28483   { FRVBF_INSN_BPLR, SEM_FN_NAME (frvbf,bplr) },
28484   { FRVBF_INSN_BVLR, SEM_FN_NAME (frvbf,bvlr) },
28485   { FRVBF_INSN_BNVLR, SEM_FN_NAME (frvbf,bnvlr) },
28486   { FRVBF_INSN_FBRALR, SEM_FN_NAME (frvbf,fbralr) },
28487   { FRVBF_INSN_FBNOLR, SEM_FN_NAME (frvbf,fbnolr) },
28488   { FRVBF_INSN_FBEQLR, SEM_FN_NAME (frvbf,fbeqlr) },
28489   { FRVBF_INSN_FBNELR, SEM_FN_NAME (frvbf,fbnelr) },
28490   { FRVBF_INSN_FBLGLR, SEM_FN_NAME (frvbf,fblglr) },
28491   { FRVBF_INSN_FBUELR, SEM_FN_NAME (frvbf,fbuelr) },
28492   { FRVBF_INSN_FBULLR, SEM_FN_NAME (frvbf,fbullr) },
28493   { FRVBF_INSN_FBGELR, SEM_FN_NAME (frvbf,fbgelr) },
28494   { FRVBF_INSN_FBLTLR, SEM_FN_NAME (frvbf,fbltlr) },
28495   { FRVBF_INSN_FBUGELR, SEM_FN_NAME (frvbf,fbugelr) },
28496   { FRVBF_INSN_FBUGLR, SEM_FN_NAME (frvbf,fbuglr) },
28497   { FRVBF_INSN_FBLELR, SEM_FN_NAME (frvbf,fblelr) },
28498   { FRVBF_INSN_FBGTLR, SEM_FN_NAME (frvbf,fbgtlr) },
28499   { FRVBF_INSN_FBULELR, SEM_FN_NAME (frvbf,fbulelr) },
28500   { FRVBF_INSN_FBULR, SEM_FN_NAME (frvbf,fbulr) },
28501   { FRVBF_INSN_FBOLR, SEM_FN_NAME (frvbf,fbolr) },
28502   { FRVBF_INSN_BCRALR, SEM_FN_NAME (frvbf,bcralr) },
28503   { FRVBF_INSN_BCNOLR, SEM_FN_NAME (frvbf,bcnolr) },
28504   { FRVBF_INSN_BCEQLR, SEM_FN_NAME (frvbf,bceqlr) },
28505   { FRVBF_INSN_BCNELR, SEM_FN_NAME (frvbf,bcnelr) },
28506   { FRVBF_INSN_BCLELR, SEM_FN_NAME (frvbf,bclelr) },
28507   { FRVBF_INSN_BCGTLR, SEM_FN_NAME (frvbf,bcgtlr) },
28508   { FRVBF_INSN_BCLTLR, SEM_FN_NAME (frvbf,bcltlr) },
28509   { FRVBF_INSN_BCGELR, SEM_FN_NAME (frvbf,bcgelr) },
28510   { FRVBF_INSN_BCLSLR, SEM_FN_NAME (frvbf,bclslr) },
28511   { FRVBF_INSN_BCHILR, SEM_FN_NAME (frvbf,bchilr) },
28512   { FRVBF_INSN_BCCLR, SEM_FN_NAME (frvbf,bcclr) },
28513   { FRVBF_INSN_BCNCLR, SEM_FN_NAME (frvbf,bcnclr) },
28514   { FRVBF_INSN_BCNLR, SEM_FN_NAME (frvbf,bcnlr) },
28515   { FRVBF_INSN_BCPLR, SEM_FN_NAME (frvbf,bcplr) },
28516   { FRVBF_INSN_BCVLR, SEM_FN_NAME (frvbf,bcvlr) },
28517   { FRVBF_INSN_BCNVLR, SEM_FN_NAME (frvbf,bcnvlr) },
28518   { FRVBF_INSN_FCBRALR, SEM_FN_NAME (frvbf,fcbralr) },
28519   { FRVBF_INSN_FCBNOLR, SEM_FN_NAME (frvbf,fcbnolr) },
28520   { FRVBF_INSN_FCBEQLR, SEM_FN_NAME (frvbf,fcbeqlr) },
28521   { FRVBF_INSN_FCBNELR, SEM_FN_NAME (frvbf,fcbnelr) },
28522   { FRVBF_INSN_FCBLGLR, SEM_FN_NAME (frvbf,fcblglr) },
28523   { FRVBF_INSN_FCBUELR, SEM_FN_NAME (frvbf,fcbuelr) },
28524   { FRVBF_INSN_FCBULLR, SEM_FN_NAME (frvbf,fcbullr) },
28525   { FRVBF_INSN_FCBGELR, SEM_FN_NAME (frvbf,fcbgelr) },
28526   { FRVBF_INSN_FCBLTLR, SEM_FN_NAME (frvbf,fcbltlr) },
28527   { FRVBF_INSN_FCBUGELR, SEM_FN_NAME (frvbf,fcbugelr) },
28528   { FRVBF_INSN_FCBUGLR, SEM_FN_NAME (frvbf,fcbuglr) },
28529   { FRVBF_INSN_FCBLELR, SEM_FN_NAME (frvbf,fcblelr) },
28530   { FRVBF_INSN_FCBGTLR, SEM_FN_NAME (frvbf,fcbgtlr) },
28531   { FRVBF_INSN_FCBULELR, SEM_FN_NAME (frvbf,fcbulelr) },
28532   { FRVBF_INSN_FCBULR, SEM_FN_NAME (frvbf,fcbulr) },
28533   { FRVBF_INSN_FCBOLR, SEM_FN_NAME (frvbf,fcbolr) },
28534   { FRVBF_INSN_JMPL, SEM_FN_NAME (frvbf,jmpl) },
28535   { FRVBF_INSN_CALLL, SEM_FN_NAME (frvbf,calll) },
28536   { FRVBF_INSN_JMPIL, SEM_FN_NAME (frvbf,jmpil) },
28537   { FRVBF_INSN_CALLIL, SEM_FN_NAME (frvbf,callil) },
28538   { FRVBF_INSN_CALL, SEM_FN_NAME (frvbf,call) },
28539   { FRVBF_INSN_RETT, SEM_FN_NAME (frvbf,rett) },
28540   { FRVBF_INSN_REI, SEM_FN_NAME (frvbf,rei) },
28541   { FRVBF_INSN_TRA, SEM_FN_NAME (frvbf,tra) },
28542   { FRVBF_INSN_TNO, SEM_FN_NAME (frvbf,tno) },
28543   { FRVBF_INSN_TEQ, SEM_FN_NAME (frvbf,teq) },
28544   { FRVBF_INSN_TNE, SEM_FN_NAME (frvbf,tne) },
28545   { FRVBF_INSN_TLE, SEM_FN_NAME (frvbf,tle) },
28546   { FRVBF_INSN_TGT, SEM_FN_NAME (frvbf,tgt) },
28547   { FRVBF_INSN_TLT, SEM_FN_NAME (frvbf,tlt) },
28548   { FRVBF_INSN_TGE, SEM_FN_NAME (frvbf,tge) },
28549   { FRVBF_INSN_TLS, SEM_FN_NAME (frvbf,tls) },
28550   { FRVBF_INSN_THI, SEM_FN_NAME (frvbf,thi) },
28551   { FRVBF_INSN_TC, SEM_FN_NAME (frvbf,tc) },
28552   { FRVBF_INSN_TNC, SEM_FN_NAME (frvbf,tnc) },
28553   { FRVBF_INSN_TN, SEM_FN_NAME (frvbf,tn) },
28554   { FRVBF_INSN_TP, SEM_FN_NAME (frvbf,tp) },
28555   { FRVBF_INSN_TV, SEM_FN_NAME (frvbf,tv) },
28556   { FRVBF_INSN_TNV, SEM_FN_NAME (frvbf,tnv) },
28557   { FRVBF_INSN_FTRA, SEM_FN_NAME (frvbf,ftra) },
28558   { FRVBF_INSN_FTNO, SEM_FN_NAME (frvbf,ftno) },
28559   { FRVBF_INSN_FTNE, SEM_FN_NAME (frvbf,ftne) },
28560   { FRVBF_INSN_FTEQ, SEM_FN_NAME (frvbf,fteq) },
28561   { FRVBF_INSN_FTLG, SEM_FN_NAME (frvbf,ftlg) },
28562   { FRVBF_INSN_FTUE, SEM_FN_NAME (frvbf,ftue) },
28563   { FRVBF_INSN_FTUL, SEM_FN_NAME (frvbf,ftul) },
28564   { FRVBF_INSN_FTGE, SEM_FN_NAME (frvbf,ftge) },
28565   { FRVBF_INSN_FTLT, SEM_FN_NAME (frvbf,ftlt) },
28566   { FRVBF_INSN_FTUGE, SEM_FN_NAME (frvbf,ftuge) },
28567   { FRVBF_INSN_FTUG, SEM_FN_NAME (frvbf,ftug) },
28568   { FRVBF_INSN_FTLE, SEM_FN_NAME (frvbf,ftle) },
28569   { FRVBF_INSN_FTGT, SEM_FN_NAME (frvbf,ftgt) },
28570   { FRVBF_INSN_FTULE, SEM_FN_NAME (frvbf,ftule) },
28571   { FRVBF_INSN_FTU, SEM_FN_NAME (frvbf,ftu) },
28572   { FRVBF_INSN_FTO, SEM_FN_NAME (frvbf,fto) },
28573   { FRVBF_INSN_TIRA, SEM_FN_NAME (frvbf,tira) },
28574   { FRVBF_INSN_TINO, SEM_FN_NAME (frvbf,tino) },
28575   { FRVBF_INSN_TIEQ, SEM_FN_NAME (frvbf,tieq) },
28576   { FRVBF_INSN_TINE, SEM_FN_NAME (frvbf,tine) },
28577   { FRVBF_INSN_TILE, SEM_FN_NAME (frvbf,tile) },
28578   { FRVBF_INSN_TIGT, SEM_FN_NAME (frvbf,tigt) },
28579   { FRVBF_INSN_TILT, SEM_FN_NAME (frvbf,tilt) },
28580   { FRVBF_INSN_TIGE, SEM_FN_NAME (frvbf,tige) },
28581   { FRVBF_INSN_TILS, SEM_FN_NAME (frvbf,tils) },
28582   { FRVBF_INSN_TIHI, SEM_FN_NAME (frvbf,tihi) },
28583   { FRVBF_INSN_TIC, SEM_FN_NAME (frvbf,tic) },
28584   { FRVBF_INSN_TINC, SEM_FN_NAME (frvbf,tinc) },
28585   { FRVBF_INSN_TIN, SEM_FN_NAME (frvbf,tin) },
28586   { FRVBF_INSN_TIP, SEM_FN_NAME (frvbf,tip) },
28587   { FRVBF_INSN_TIV, SEM_FN_NAME (frvbf,tiv) },
28588   { FRVBF_INSN_TINV, SEM_FN_NAME (frvbf,tinv) },
28589   { FRVBF_INSN_FTIRA, SEM_FN_NAME (frvbf,ftira) },
28590   { FRVBF_INSN_FTINO, SEM_FN_NAME (frvbf,ftino) },
28591   { FRVBF_INSN_FTINE, SEM_FN_NAME (frvbf,ftine) },
28592   { FRVBF_INSN_FTIEQ, SEM_FN_NAME (frvbf,ftieq) },
28593   { FRVBF_INSN_FTILG, SEM_FN_NAME (frvbf,ftilg) },
28594   { FRVBF_INSN_FTIUE, SEM_FN_NAME (frvbf,ftiue) },
28595   { FRVBF_INSN_FTIUL, SEM_FN_NAME (frvbf,ftiul) },
28596   { FRVBF_INSN_FTIGE, SEM_FN_NAME (frvbf,ftige) },
28597   { FRVBF_INSN_FTILT, SEM_FN_NAME (frvbf,ftilt) },
28598   { FRVBF_INSN_FTIUGE, SEM_FN_NAME (frvbf,ftiuge) },
28599   { FRVBF_INSN_FTIUG, SEM_FN_NAME (frvbf,ftiug) },
28600   { FRVBF_INSN_FTILE, SEM_FN_NAME (frvbf,ftile) },
28601   { FRVBF_INSN_FTIGT, SEM_FN_NAME (frvbf,ftigt) },
28602   { FRVBF_INSN_FTIULE, SEM_FN_NAME (frvbf,ftiule) },
28603   { FRVBF_INSN_FTIU, SEM_FN_NAME (frvbf,ftiu) },
28604   { FRVBF_INSN_FTIO, SEM_FN_NAME (frvbf,ftio) },
28605   { FRVBF_INSN_BREAK, SEM_FN_NAME (frvbf,break) },
28606   { FRVBF_INSN_MTRAP, SEM_FN_NAME (frvbf,mtrap) },
28607   { FRVBF_INSN_ANDCR, SEM_FN_NAME (frvbf,andcr) },
28608   { FRVBF_INSN_ORCR, SEM_FN_NAME (frvbf,orcr) },
28609   { FRVBF_INSN_XORCR, SEM_FN_NAME (frvbf,xorcr) },
28610   { FRVBF_INSN_NANDCR, SEM_FN_NAME (frvbf,nandcr) },
28611   { FRVBF_INSN_NORCR, SEM_FN_NAME (frvbf,norcr) },
28612   { FRVBF_INSN_ANDNCR, SEM_FN_NAME (frvbf,andncr) },
28613   { FRVBF_INSN_ORNCR, SEM_FN_NAME (frvbf,orncr) },
28614   { FRVBF_INSN_NANDNCR, SEM_FN_NAME (frvbf,nandncr) },
28615   { FRVBF_INSN_NORNCR, SEM_FN_NAME (frvbf,norncr) },
28616   { FRVBF_INSN_NOTCR, SEM_FN_NAME (frvbf,notcr) },
28617   { FRVBF_INSN_CKRA, SEM_FN_NAME (frvbf,ckra) },
28618   { FRVBF_INSN_CKNO, SEM_FN_NAME (frvbf,ckno) },
28619   { FRVBF_INSN_CKEQ, SEM_FN_NAME (frvbf,ckeq) },
28620   { FRVBF_INSN_CKNE, SEM_FN_NAME (frvbf,ckne) },
28621   { FRVBF_INSN_CKLE, SEM_FN_NAME (frvbf,ckle) },
28622   { FRVBF_INSN_CKGT, SEM_FN_NAME (frvbf,ckgt) },
28623   { FRVBF_INSN_CKLT, SEM_FN_NAME (frvbf,cklt) },
28624   { FRVBF_INSN_CKGE, SEM_FN_NAME (frvbf,ckge) },
28625   { FRVBF_INSN_CKLS, SEM_FN_NAME (frvbf,ckls) },
28626   { FRVBF_INSN_CKHI, SEM_FN_NAME (frvbf,ckhi) },
28627   { FRVBF_INSN_CKC, SEM_FN_NAME (frvbf,ckc) },
28628   { FRVBF_INSN_CKNC, SEM_FN_NAME (frvbf,cknc) },
28629   { FRVBF_INSN_CKN, SEM_FN_NAME (frvbf,ckn) },
28630   { FRVBF_INSN_CKP, SEM_FN_NAME (frvbf,ckp) },
28631   { FRVBF_INSN_CKV, SEM_FN_NAME (frvbf,ckv) },
28632   { FRVBF_INSN_CKNV, SEM_FN_NAME (frvbf,cknv) },
28633   { FRVBF_INSN_FCKRA, SEM_FN_NAME (frvbf,fckra) },
28634   { FRVBF_INSN_FCKNO, SEM_FN_NAME (frvbf,fckno) },
28635   { FRVBF_INSN_FCKNE, SEM_FN_NAME (frvbf,fckne) },
28636   { FRVBF_INSN_FCKEQ, SEM_FN_NAME (frvbf,fckeq) },
28637   { FRVBF_INSN_FCKLG, SEM_FN_NAME (frvbf,fcklg) },
28638   { FRVBF_INSN_FCKUE, SEM_FN_NAME (frvbf,fckue) },
28639   { FRVBF_INSN_FCKUL, SEM_FN_NAME (frvbf,fckul) },
28640   { FRVBF_INSN_FCKGE, SEM_FN_NAME (frvbf,fckge) },
28641   { FRVBF_INSN_FCKLT, SEM_FN_NAME (frvbf,fcklt) },
28642   { FRVBF_INSN_FCKUGE, SEM_FN_NAME (frvbf,fckuge) },
28643   { FRVBF_INSN_FCKUG, SEM_FN_NAME (frvbf,fckug) },
28644   { FRVBF_INSN_FCKLE, SEM_FN_NAME (frvbf,fckle) },
28645   { FRVBF_INSN_FCKGT, SEM_FN_NAME (frvbf,fckgt) },
28646   { FRVBF_INSN_FCKULE, SEM_FN_NAME (frvbf,fckule) },
28647   { FRVBF_INSN_FCKU, SEM_FN_NAME (frvbf,fcku) },
28648   { FRVBF_INSN_FCKO, SEM_FN_NAME (frvbf,fcko) },
28649   { FRVBF_INSN_CCKRA, SEM_FN_NAME (frvbf,cckra) },
28650   { FRVBF_INSN_CCKNO, SEM_FN_NAME (frvbf,cckno) },
28651   { FRVBF_INSN_CCKEQ, SEM_FN_NAME (frvbf,cckeq) },
28652   { FRVBF_INSN_CCKNE, SEM_FN_NAME (frvbf,cckne) },
28653   { FRVBF_INSN_CCKLE, SEM_FN_NAME (frvbf,cckle) },
28654   { FRVBF_INSN_CCKGT, SEM_FN_NAME (frvbf,cckgt) },
28655   { FRVBF_INSN_CCKLT, SEM_FN_NAME (frvbf,ccklt) },
28656   { FRVBF_INSN_CCKGE, SEM_FN_NAME (frvbf,cckge) },
28657   { FRVBF_INSN_CCKLS, SEM_FN_NAME (frvbf,cckls) },
28658   { FRVBF_INSN_CCKHI, SEM_FN_NAME (frvbf,cckhi) },
28659   { FRVBF_INSN_CCKC, SEM_FN_NAME (frvbf,cckc) },
28660   { FRVBF_INSN_CCKNC, SEM_FN_NAME (frvbf,ccknc) },
28661   { FRVBF_INSN_CCKN, SEM_FN_NAME (frvbf,cckn) },
28662   { FRVBF_INSN_CCKP, SEM_FN_NAME (frvbf,cckp) },
28663   { FRVBF_INSN_CCKV, SEM_FN_NAME (frvbf,cckv) },
28664   { FRVBF_INSN_CCKNV, SEM_FN_NAME (frvbf,ccknv) },
28665   { FRVBF_INSN_CFCKRA, SEM_FN_NAME (frvbf,cfckra) },
28666   { FRVBF_INSN_CFCKNO, SEM_FN_NAME (frvbf,cfckno) },
28667   { FRVBF_INSN_CFCKNE, SEM_FN_NAME (frvbf,cfckne) },
28668   { FRVBF_INSN_CFCKEQ, SEM_FN_NAME (frvbf,cfckeq) },
28669   { FRVBF_INSN_CFCKLG, SEM_FN_NAME (frvbf,cfcklg) },
28670   { FRVBF_INSN_CFCKUE, SEM_FN_NAME (frvbf,cfckue) },
28671   { FRVBF_INSN_CFCKUL, SEM_FN_NAME (frvbf,cfckul) },
28672   { FRVBF_INSN_CFCKGE, SEM_FN_NAME (frvbf,cfckge) },
28673   { FRVBF_INSN_CFCKLT, SEM_FN_NAME (frvbf,cfcklt) },
28674   { FRVBF_INSN_CFCKUGE, SEM_FN_NAME (frvbf,cfckuge) },
28675   { FRVBF_INSN_CFCKUG, SEM_FN_NAME (frvbf,cfckug) },
28676   { FRVBF_INSN_CFCKLE, SEM_FN_NAME (frvbf,cfckle) },
28677   { FRVBF_INSN_CFCKGT, SEM_FN_NAME (frvbf,cfckgt) },
28678   { FRVBF_INSN_CFCKULE, SEM_FN_NAME (frvbf,cfckule) },
28679   { FRVBF_INSN_CFCKU, SEM_FN_NAME (frvbf,cfcku) },
28680   { FRVBF_INSN_CFCKO, SEM_FN_NAME (frvbf,cfcko) },
28681   { FRVBF_INSN_CJMPL, SEM_FN_NAME (frvbf,cjmpl) },
28682   { FRVBF_INSN_CCALLL, SEM_FN_NAME (frvbf,ccalll) },
28683   { FRVBF_INSN_ICI, SEM_FN_NAME (frvbf,ici) },
28684   { FRVBF_INSN_DCI, SEM_FN_NAME (frvbf,dci) },
28685   { FRVBF_INSN_ICEI, SEM_FN_NAME (frvbf,icei) },
28686   { FRVBF_INSN_DCEI, SEM_FN_NAME (frvbf,dcei) },
28687   { FRVBF_INSN_DCF, SEM_FN_NAME (frvbf,dcf) },
28688   { FRVBF_INSN_DCEF, SEM_FN_NAME (frvbf,dcef) },
28689   { FRVBF_INSN_WITLB, SEM_FN_NAME (frvbf,witlb) },
28690   { FRVBF_INSN_WDTLB, SEM_FN_NAME (frvbf,wdtlb) },
28691   { FRVBF_INSN_ITLBI, SEM_FN_NAME (frvbf,itlbi) },
28692   { FRVBF_INSN_DTLBI, SEM_FN_NAME (frvbf,dtlbi) },
28693   { FRVBF_INSN_ICPL, SEM_FN_NAME (frvbf,icpl) },
28694   { FRVBF_INSN_DCPL, SEM_FN_NAME (frvbf,dcpl) },
28695   { FRVBF_INSN_ICUL, SEM_FN_NAME (frvbf,icul) },
28696   { FRVBF_INSN_DCUL, SEM_FN_NAME (frvbf,dcul) },
28697   { FRVBF_INSN_BAR, SEM_FN_NAME (frvbf,bar) },
28698   { FRVBF_INSN_MEMBAR, SEM_FN_NAME (frvbf,membar) },
28699   { FRVBF_INSN_LRAI, SEM_FN_NAME (frvbf,lrai) },
28700   { FRVBF_INSN_LRAD, SEM_FN_NAME (frvbf,lrad) },
28701   { FRVBF_INSN_TLBPR, SEM_FN_NAME (frvbf,tlbpr) },
28702   { FRVBF_INSN_COP1, SEM_FN_NAME (frvbf,cop1) },
28703   { FRVBF_INSN_COP2, SEM_FN_NAME (frvbf,cop2) },
28704   { FRVBF_INSN_CLRGR, SEM_FN_NAME (frvbf,clrgr) },
28705   { FRVBF_INSN_CLRFR, SEM_FN_NAME (frvbf,clrfr) },
28706   { FRVBF_INSN_CLRGA, SEM_FN_NAME (frvbf,clrga) },
28707   { FRVBF_INSN_CLRFA, SEM_FN_NAME (frvbf,clrfa) },
28708   { FRVBF_INSN_COMMITGR, SEM_FN_NAME (frvbf,commitgr) },
28709   { FRVBF_INSN_COMMITFR, SEM_FN_NAME (frvbf,commitfr) },
28710   { FRVBF_INSN_COMMITGA, SEM_FN_NAME (frvbf,commitga) },
28711   { FRVBF_INSN_COMMITFA, SEM_FN_NAME (frvbf,commitfa) },
28712   { FRVBF_INSN_FITOS, SEM_FN_NAME (frvbf,fitos) },
28713   { FRVBF_INSN_FSTOI, SEM_FN_NAME (frvbf,fstoi) },
28714   { FRVBF_INSN_FITOD, SEM_FN_NAME (frvbf,fitod) },
28715   { FRVBF_INSN_FDTOI, SEM_FN_NAME (frvbf,fdtoi) },
28716   { FRVBF_INSN_FDITOS, SEM_FN_NAME (frvbf,fditos) },
28717   { FRVBF_INSN_FDSTOI, SEM_FN_NAME (frvbf,fdstoi) },
28718   { FRVBF_INSN_NFDITOS, SEM_FN_NAME (frvbf,nfditos) },
28719   { FRVBF_INSN_NFDSTOI, SEM_FN_NAME (frvbf,nfdstoi) },
28720   { FRVBF_INSN_CFITOS, SEM_FN_NAME (frvbf,cfitos) },
28721   { FRVBF_INSN_CFSTOI, SEM_FN_NAME (frvbf,cfstoi) },
28722   { FRVBF_INSN_NFITOS, SEM_FN_NAME (frvbf,nfitos) },
28723   { FRVBF_INSN_NFSTOI, SEM_FN_NAME (frvbf,nfstoi) },
28724   { FRVBF_INSN_FMOVS, SEM_FN_NAME (frvbf,fmovs) },
28725   { FRVBF_INSN_FMOVD, SEM_FN_NAME (frvbf,fmovd) },
28726   { FRVBF_INSN_FDMOVS, SEM_FN_NAME (frvbf,fdmovs) },
28727   { FRVBF_INSN_CFMOVS, SEM_FN_NAME (frvbf,cfmovs) },
28728   { FRVBF_INSN_FNEGS, SEM_FN_NAME (frvbf,fnegs) },
28729   { FRVBF_INSN_FNEGD, SEM_FN_NAME (frvbf,fnegd) },
28730   { FRVBF_INSN_FDNEGS, SEM_FN_NAME (frvbf,fdnegs) },
28731   { FRVBF_INSN_CFNEGS, SEM_FN_NAME (frvbf,cfnegs) },
28732   { FRVBF_INSN_FABSS, SEM_FN_NAME (frvbf,fabss) },
28733   { FRVBF_INSN_FABSD, SEM_FN_NAME (frvbf,fabsd) },
28734   { FRVBF_INSN_FDABSS, SEM_FN_NAME (frvbf,fdabss) },
28735   { FRVBF_INSN_CFABSS, SEM_FN_NAME (frvbf,cfabss) },
28736   { FRVBF_INSN_FSQRTS, SEM_FN_NAME (frvbf,fsqrts) },
28737   { FRVBF_INSN_FDSQRTS, SEM_FN_NAME (frvbf,fdsqrts) },
28738   { FRVBF_INSN_NFDSQRTS, SEM_FN_NAME (frvbf,nfdsqrts) },
28739   { FRVBF_INSN_FSQRTD, SEM_FN_NAME (frvbf,fsqrtd) },
28740   { FRVBF_INSN_CFSQRTS, SEM_FN_NAME (frvbf,cfsqrts) },
28741   { FRVBF_INSN_NFSQRTS, SEM_FN_NAME (frvbf,nfsqrts) },
28742   { FRVBF_INSN_FADDS, SEM_FN_NAME (frvbf,fadds) },
28743   { FRVBF_INSN_FSUBS, SEM_FN_NAME (frvbf,fsubs) },
28744   { FRVBF_INSN_FMULS, SEM_FN_NAME (frvbf,fmuls) },
28745   { FRVBF_INSN_FDIVS, SEM_FN_NAME (frvbf,fdivs) },
28746   { FRVBF_INSN_FADDD, SEM_FN_NAME (frvbf,faddd) },
28747   { FRVBF_INSN_FSUBD, SEM_FN_NAME (frvbf,fsubd) },
28748   { FRVBF_INSN_FMULD, SEM_FN_NAME (frvbf,fmuld) },
28749   { FRVBF_INSN_FDIVD, SEM_FN_NAME (frvbf,fdivd) },
28750   { FRVBF_INSN_CFADDS, SEM_FN_NAME (frvbf,cfadds) },
28751   { FRVBF_INSN_CFSUBS, SEM_FN_NAME (frvbf,cfsubs) },
28752   { FRVBF_INSN_CFMULS, SEM_FN_NAME (frvbf,cfmuls) },
28753   { FRVBF_INSN_CFDIVS, SEM_FN_NAME (frvbf,cfdivs) },
28754   { FRVBF_INSN_NFADDS, SEM_FN_NAME (frvbf,nfadds) },
28755   { FRVBF_INSN_NFSUBS, SEM_FN_NAME (frvbf,nfsubs) },
28756   { FRVBF_INSN_NFMULS, SEM_FN_NAME (frvbf,nfmuls) },
28757   { FRVBF_INSN_NFDIVS, SEM_FN_NAME (frvbf,nfdivs) },
28758   { FRVBF_INSN_FCMPS, SEM_FN_NAME (frvbf,fcmps) },
28759   { FRVBF_INSN_FCMPD, SEM_FN_NAME (frvbf,fcmpd) },
28760   { FRVBF_INSN_CFCMPS, SEM_FN_NAME (frvbf,cfcmps) },
28761   { FRVBF_INSN_FDCMPS, SEM_FN_NAME (frvbf,fdcmps) },
28762   { FRVBF_INSN_FMADDS, SEM_FN_NAME (frvbf,fmadds) },
28763   { FRVBF_INSN_FMSUBS, SEM_FN_NAME (frvbf,fmsubs) },
28764   { FRVBF_INSN_FMADDD, SEM_FN_NAME (frvbf,fmaddd) },
28765   { FRVBF_INSN_FMSUBD, SEM_FN_NAME (frvbf,fmsubd) },
28766   { FRVBF_INSN_FDMADDS, SEM_FN_NAME (frvbf,fdmadds) },
28767   { FRVBF_INSN_NFDMADDS, SEM_FN_NAME (frvbf,nfdmadds) },
28768   { FRVBF_INSN_CFMADDS, SEM_FN_NAME (frvbf,cfmadds) },
28769   { FRVBF_INSN_CFMSUBS, SEM_FN_NAME (frvbf,cfmsubs) },
28770   { FRVBF_INSN_NFMADDS, SEM_FN_NAME (frvbf,nfmadds) },
28771   { FRVBF_INSN_NFMSUBS, SEM_FN_NAME (frvbf,nfmsubs) },
28772   { FRVBF_INSN_FMAS, SEM_FN_NAME (frvbf,fmas) },
28773   { FRVBF_INSN_FMSS, SEM_FN_NAME (frvbf,fmss) },
28774   { FRVBF_INSN_FDMAS, SEM_FN_NAME (frvbf,fdmas) },
28775   { FRVBF_INSN_FDMSS, SEM_FN_NAME (frvbf,fdmss) },
28776   { FRVBF_INSN_NFDMAS, SEM_FN_NAME (frvbf,nfdmas) },
28777   { FRVBF_INSN_NFDMSS, SEM_FN_NAME (frvbf,nfdmss) },
28778   { FRVBF_INSN_CFMAS, SEM_FN_NAME (frvbf,cfmas) },
28779   { FRVBF_INSN_CFMSS, SEM_FN_NAME (frvbf,cfmss) },
28780   { FRVBF_INSN_FMAD, SEM_FN_NAME (frvbf,fmad) },
28781   { FRVBF_INSN_FMSD, SEM_FN_NAME (frvbf,fmsd) },
28782   { FRVBF_INSN_NFMAS, SEM_FN_NAME (frvbf,nfmas) },
28783   { FRVBF_INSN_NFMSS, SEM_FN_NAME (frvbf,nfmss) },
28784   { FRVBF_INSN_FDADDS, SEM_FN_NAME (frvbf,fdadds) },
28785   { FRVBF_INSN_FDSUBS, SEM_FN_NAME (frvbf,fdsubs) },
28786   { FRVBF_INSN_FDMULS, SEM_FN_NAME (frvbf,fdmuls) },
28787   { FRVBF_INSN_FDDIVS, SEM_FN_NAME (frvbf,fddivs) },
28788   { FRVBF_INSN_FDSADS, SEM_FN_NAME (frvbf,fdsads) },
28789   { FRVBF_INSN_FDMULCS, SEM_FN_NAME (frvbf,fdmulcs) },
28790   { FRVBF_INSN_NFDMULCS, SEM_FN_NAME (frvbf,nfdmulcs) },
28791   { FRVBF_INSN_NFDADDS, SEM_FN_NAME (frvbf,nfdadds) },
28792   { FRVBF_INSN_NFDSUBS, SEM_FN_NAME (frvbf,nfdsubs) },
28793   { FRVBF_INSN_NFDMULS, SEM_FN_NAME (frvbf,nfdmuls) },
28794   { FRVBF_INSN_NFDDIVS, SEM_FN_NAME (frvbf,nfddivs) },
28795   { FRVBF_INSN_NFDSADS, SEM_FN_NAME (frvbf,nfdsads) },
28796   { FRVBF_INSN_NFDCMPS, SEM_FN_NAME (frvbf,nfdcmps) },
28797   { FRVBF_INSN_MHSETLOS, SEM_FN_NAME (frvbf,mhsetlos) },
28798   { FRVBF_INSN_MHSETHIS, SEM_FN_NAME (frvbf,mhsethis) },
28799   { FRVBF_INSN_MHDSETS, SEM_FN_NAME (frvbf,mhdsets) },
28800   { FRVBF_INSN_MHSETLOH, SEM_FN_NAME (frvbf,mhsetloh) },
28801   { FRVBF_INSN_MHSETHIH, SEM_FN_NAME (frvbf,mhsethih) },
28802   { FRVBF_INSN_MHDSETH, SEM_FN_NAME (frvbf,mhdseth) },
28803   { FRVBF_INSN_MAND, SEM_FN_NAME (frvbf,mand) },
28804   { FRVBF_INSN_MOR, SEM_FN_NAME (frvbf,mor) },
28805   { FRVBF_INSN_MXOR, SEM_FN_NAME (frvbf,mxor) },
28806   { FRVBF_INSN_CMAND, SEM_FN_NAME (frvbf,cmand) },
28807   { FRVBF_INSN_CMOR, SEM_FN_NAME (frvbf,cmor) },
28808   { FRVBF_INSN_CMXOR, SEM_FN_NAME (frvbf,cmxor) },
28809   { FRVBF_INSN_MNOT, SEM_FN_NAME (frvbf,mnot) },
28810   { FRVBF_INSN_CMNOT, SEM_FN_NAME (frvbf,cmnot) },
28811   { FRVBF_INSN_MROTLI, SEM_FN_NAME (frvbf,mrotli) },
28812   { FRVBF_INSN_MROTRI, SEM_FN_NAME (frvbf,mrotri) },
28813   { FRVBF_INSN_MWCUT, SEM_FN_NAME (frvbf,mwcut) },
28814   { FRVBF_INSN_MWCUTI, SEM_FN_NAME (frvbf,mwcuti) },
28815   { FRVBF_INSN_MCUT, SEM_FN_NAME (frvbf,mcut) },
28816   { FRVBF_INSN_MCUTI, SEM_FN_NAME (frvbf,mcuti) },
28817   { FRVBF_INSN_MCUTSS, SEM_FN_NAME (frvbf,mcutss) },
28818   { FRVBF_INSN_MCUTSSI, SEM_FN_NAME (frvbf,mcutssi) },
28819   { FRVBF_INSN_MDCUTSSI, SEM_FN_NAME (frvbf,mdcutssi) },
28820   { FRVBF_INSN_MAVEH, SEM_FN_NAME (frvbf,maveh) },
28821   { FRVBF_INSN_MSLLHI, SEM_FN_NAME (frvbf,msllhi) },
28822   { FRVBF_INSN_MSRLHI, SEM_FN_NAME (frvbf,msrlhi) },
28823   { FRVBF_INSN_MSRAHI, SEM_FN_NAME (frvbf,msrahi) },
28824   { FRVBF_INSN_MDROTLI, SEM_FN_NAME (frvbf,mdrotli) },
28825   { FRVBF_INSN_MCPLHI, SEM_FN_NAME (frvbf,mcplhi) },
28826   { FRVBF_INSN_MCPLI, SEM_FN_NAME (frvbf,mcpli) },
28827   { FRVBF_INSN_MSATHS, SEM_FN_NAME (frvbf,msaths) },
28828   { FRVBF_INSN_MQSATHS, SEM_FN_NAME (frvbf,mqsaths) },
28829   { FRVBF_INSN_MSATHU, SEM_FN_NAME (frvbf,msathu) },
28830   { FRVBF_INSN_MCMPSH, SEM_FN_NAME (frvbf,mcmpsh) },
28831   { FRVBF_INSN_MCMPUH, SEM_FN_NAME (frvbf,mcmpuh) },
28832   { FRVBF_INSN_MABSHS, SEM_FN_NAME (frvbf,mabshs) },
28833   { FRVBF_INSN_MADDHSS, SEM_FN_NAME (frvbf,maddhss) },
28834   { FRVBF_INSN_MADDHUS, SEM_FN_NAME (frvbf,maddhus) },
28835   { FRVBF_INSN_MSUBHSS, SEM_FN_NAME (frvbf,msubhss) },
28836   { FRVBF_INSN_MSUBHUS, SEM_FN_NAME (frvbf,msubhus) },
28837   { FRVBF_INSN_CMADDHSS, SEM_FN_NAME (frvbf,cmaddhss) },
28838   { FRVBF_INSN_CMADDHUS, SEM_FN_NAME (frvbf,cmaddhus) },
28839   { FRVBF_INSN_CMSUBHSS, SEM_FN_NAME (frvbf,cmsubhss) },
28840   { FRVBF_INSN_CMSUBHUS, SEM_FN_NAME (frvbf,cmsubhus) },
28841   { FRVBF_INSN_MQADDHSS, SEM_FN_NAME (frvbf,mqaddhss) },
28842   { FRVBF_INSN_MQADDHUS, SEM_FN_NAME (frvbf,mqaddhus) },
28843   { FRVBF_INSN_MQSUBHSS, SEM_FN_NAME (frvbf,mqsubhss) },
28844   { FRVBF_INSN_MQSUBHUS, SEM_FN_NAME (frvbf,mqsubhus) },
28845   { FRVBF_INSN_CMQADDHSS, SEM_FN_NAME (frvbf,cmqaddhss) },
28846   { FRVBF_INSN_CMQADDHUS, SEM_FN_NAME (frvbf,cmqaddhus) },
28847   { FRVBF_INSN_CMQSUBHSS, SEM_FN_NAME (frvbf,cmqsubhss) },
28848   { FRVBF_INSN_CMQSUBHUS, SEM_FN_NAME (frvbf,cmqsubhus) },
28849   { FRVBF_INSN_MQLCLRHS, SEM_FN_NAME (frvbf,mqlclrhs) },
28850   { FRVBF_INSN_MQLMTHS, SEM_FN_NAME (frvbf,mqlmths) },
28851   { FRVBF_INSN_MQSLLHI, SEM_FN_NAME (frvbf,mqsllhi) },
28852   { FRVBF_INSN_MQSRAHI, SEM_FN_NAME (frvbf,mqsrahi) },
28853   { FRVBF_INSN_MADDACCS, SEM_FN_NAME (frvbf,maddaccs) },
28854   { FRVBF_INSN_MSUBACCS, SEM_FN_NAME (frvbf,msubaccs) },
28855   { FRVBF_INSN_MDADDACCS, SEM_FN_NAME (frvbf,mdaddaccs) },
28856   { FRVBF_INSN_MDSUBACCS, SEM_FN_NAME (frvbf,mdsubaccs) },
28857   { FRVBF_INSN_MASACCS, SEM_FN_NAME (frvbf,masaccs) },
28858   { FRVBF_INSN_MDASACCS, SEM_FN_NAME (frvbf,mdasaccs) },
28859   { FRVBF_INSN_MMULHS, SEM_FN_NAME (frvbf,mmulhs) },
28860   { FRVBF_INSN_MMULHU, SEM_FN_NAME (frvbf,mmulhu) },
28861   { FRVBF_INSN_MMULXHS, SEM_FN_NAME (frvbf,mmulxhs) },
28862   { FRVBF_INSN_MMULXHU, SEM_FN_NAME (frvbf,mmulxhu) },
28863   { FRVBF_INSN_CMMULHS, SEM_FN_NAME (frvbf,cmmulhs) },
28864   { FRVBF_INSN_CMMULHU, SEM_FN_NAME (frvbf,cmmulhu) },
28865   { FRVBF_INSN_MQMULHS, SEM_FN_NAME (frvbf,mqmulhs) },
28866   { FRVBF_INSN_MQMULHU, SEM_FN_NAME (frvbf,mqmulhu) },
28867   { FRVBF_INSN_MQMULXHS, SEM_FN_NAME (frvbf,mqmulxhs) },
28868   { FRVBF_INSN_MQMULXHU, SEM_FN_NAME (frvbf,mqmulxhu) },
28869   { FRVBF_INSN_CMQMULHS, SEM_FN_NAME (frvbf,cmqmulhs) },
28870   { FRVBF_INSN_CMQMULHU, SEM_FN_NAME (frvbf,cmqmulhu) },
28871   { FRVBF_INSN_MMACHS, SEM_FN_NAME (frvbf,mmachs) },
28872   { FRVBF_INSN_MMACHU, SEM_FN_NAME (frvbf,mmachu) },
28873   { FRVBF_INSN_MMRDHS, SEM_FN_NAME (frvbf,mmrdhs) },
28874   { FRVBF_INSN_MMRDHU, SEM_FN_NAME (frvbf,mmrdhu) },
28875   { FRVBF_INSN_CMMACHS, SEM_FN_NAME (frvbf,cmmachs) },
28876   { FRVBF_INSN_CMMACHU, SEM_FN_NAME (frvbf,cmmachu) },
28877   { FRVBF_INSN_MQMACHS, SEM_FN_NAME (frvbf,mqmachs) },
28878   { FRVBF_INSN_MQMACHU, SEM_FN_NAME (frvbf,mqmachu) },
28879   { FRVBF_INSN_CMQMACHS, SEM_FN_NAME (frvbf,cmqmachs) },
28880   { FRVBF_INSN_CMQMACHU, SEM_FN_NAME (frvbf,cmqmachu) },
28881   { FRVBF_INSN_MQXMACHS, SEM_FN_NAME (frvbf,mqxmachs) },
28882   { FRVBF_INSN_MQXMACXHS, SEM_FN_NAME (frvbf,mqxmacxhs) },
28883   { FRVBF_INSN_MQMACXHS, SEM_FN_NAME (frvbf,mqmacxhs) },
28884   { FRVBF_INSN_MCPXRS, SEM_FN_NAME (frvbf,mcpxrs) },
28885   { FRVBF_INSN_MCPXRU, SEM_FN_NAME (frvbf,mcpxru) },
28886   { FRVBF_INSN_MCPXIS, SEM_FN_NAME (frvbf,mcpxis) },
28887   { FRVBF_INSN_MCPXIU, SEM_FN_NAME (frvbf,mcpxiu) },
28888   { FRVBF_INSN_CMCPXRS, SEM_FN_NAME (frvbf,cmcpxrs) },
28889   { FRVBF_INSN_CMCPXRU, SEM_FN_NAME (frvbf,cmcpxru) },
28890   { FRVBF_INSN_CMCPXIS, SEM_FN_NAME (frvbf,cmcpxis) },
28891   { FRVBF_INSN_CMCPXIU, SEM_FN_NAME (frvbf,cmcpxiu) },
28892   { FRVBF_INSN_MQCPXRS, SEM_FN_NAME (frvbf,mqcpxrs) },
28893   { FRVBF_INSN_MQCPXRU, SEM_FN_NAME (frvbf,mqcpxru) },
28894   { FRVBF_INSN_MQCPXIS, SEM_FN_NAME (frvbf,mqcpxis) },
28895   { FRVBF_INSN_MQCPXIU, SEM_FN_NAME (frvbf,mqcpxiu) },
28896   { FRVBF_INSN_MEXPDHW, SEM_FN_NAME (frvbf,mexpdhw) },
28897   { FRVBF_INSN_CMEXPDHW, SEM_FN_NAME (frvbf,cmexpdhw) },
28898   { FRVBF_INSN_MEXPDHD, SEM_FN_NAME (frvbf,mexpdhd) },
28899   { FRVBF_INSN_CMEXPDHD, SEM_FN_NAME (frvbf,cmexpdhd) },
28900   { FRVBF_INSN_MPACKH, SEM_FN_NAME (frvbf,mpackh) },
28901   { FRVBF_INSN_MDPACKH, SEM_FN_NAME (frvbf,mdpackh) },
28902   { FRVBF_INSN_MUNPACKH, SEM_FN_NAME (frvbf,munpackh) },
28903   { FRVBF_INSN_MDUNPACKH, SEM_FN_NAME (frvbf,mdunpackh) },
28904   { FRVBF_INSN_MBTOH, SEM_FN_NAME (frvbf,mbtoh) },
28905   { FRVBF_INSN_CMBTOH, SEM_FN_NAME (frvbf,cmbtoh) },
28906   { FRVBF_INSN_MHTOB, SEM_FN_NAME (frvbf,mhtob) },
28907   { FRVBF_INSN_CMHTOB, SEM_FN_NAME (frvbf,cmhtob) },
28908   { FRVBF_INSN_MBTOHE, SEM_FN_NAME (frvbf,mbtohe) },
28909   { FRVBF_INSN_CMBTOHE, SEM_FN_NAME (frvbf,cmbtohe) },
28910   { FRVBF_INSN_MNOP, SEM_FN_NAME (frvbf,mnop) },
28911   { FRVBF_INSN_MCLRACC_0, SEM_FN_NAME (frvbf,mclracc_0) },
28912   { FRVBF_INSN_MCLRACC_1, SEM_FN_NAME (frvbf,mclracc_1) },
28913   { FRVBF_INSN_MRDACC, SEM_FN_NAME (frvbf,mrdacc) },
28914   { FRVBF_INSN_MRDACCG, SEM_FN_NAME (frvbf,mrdaccg) },
28915   { FRVBF_INSN_MWTACC, SEM_FN_NAME (frvbf,mwtacc) },
28916   { FRVBF_INSN_MWTACCG, SEM_FN_NAME (frvbf,mwtaccg) },
28917   { FRVBF_INSN_MCOP1, SEM_FN_NAME (frvbf,mcop1) },
28918   { FRVBF_INSN_MCOP2, SEM_FN_NAME (frvbf,mcop2) },
28919   { FRVBF_INSN_FNOP, SEM_FN_NAME (frvbf,fnop) },
28920   { 0, 0 }
28921 };
28922
28923 /* Add the semantic fns to IDESC_TABLE.  */
28924
28925 void
28926 SEM_FN_NAME (frvbf,init_idesc_table) (SIM_CPU *current_cpu)
28927 {
28928   IDESC *idesc_table = CPU_IDESC (current_cpu);
28929   const struct sem_fn_desc *sf;
28930   int mach_num = MACH_NUM (CPU_MACH (current_cpu));
28931
28932   for (sf = &sem_fns[0]; sf->fn != 0; ++sf)
28933     {
28934       const CGEN_INSN *insn = idesc_table[sf->index].idata;
28935       int valid_p = (CGEN_INSN_VIRTUAL_P (insn)
28936                      || CGEN_INSN_MACH_HAS_P (insn, mach_num));
28937 #if FAST_P
28938       if (valid_p)
28939         idesc_table[sf->index].sem_fast = sf->fn;
28940       else
28941         idesc_table[sf->index].sem_fast = SEM_FN_NAME (frvbf,x_invalid);
28942 #else
28943       if (valid_p)
28944         idesc_table[sf->index].sem_full = sf->fn;
28945       else
28946         idesc_table[sf->index].sem_full = SEM_FN_NAME (frvbf,x_invalid);
28947 #endif
28948     }
28949 }
28950