1 /* Simulator instruction semantics for frvbf.
3 THIS FILE IS MACHINE GENERATED WITH CGEN.
5 Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
7 This file is part of the GNU simulators.
9 This program is free software; you can redistribute it and/or modify
10 it under the terms of the GNU General Public License as published by
11 the Free Software Foundation; either version 2, or (at your option)
14 This program is distributed in the hope that it will be useful,
15 but WITHOUT ANY WARRANTY; without even the implied warranty of
16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 GNU General Public License for more details.
19 You should have received a copy of the GNU General Public License along
20 with this program; if not, write to the Free Software Foundation, Inc.,
21 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
25 #define WANT_CPU frvbf
26 #define WANT_CPU_FRVBF
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)
36 #define GET_ATTR(cpu, num, attr) CGEN_ATTR_VALUE (NULL, abuf->idesc->attrs, CGEN_INSN_/**/attr)
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. */
43 #define SEM_FN_NAME(cpu,fn) XCONCAT3 (cpu,_semf_,fn)
45 #define TRACE_RESULT(cpu, abuf, name, type, val)
47 #define SEM_FN_NAME(cpu,fn) XCONCAT3 (cpu,_sem_,fn)
50 /* x-invalid: --invalid-- */
53 SEM_FN_NAME (frvbf,x_invalid) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
62 /* Update the recorded pc in the cpu state struct.
63 Only necessary for WITH_SCACHE case, but to avoid the
64 conditional compilation .... */
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);
77 /* x-after: --after-- */
80 SEM_FN_NAME (frvbf,x_after) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
89 #if WITH_SCACHE_PBB_FRVBF
90 frvbf_pbb_after (current_cpu, sem_arg);
98 /* x-before: --before-- */
101 SEM_FN_NAME (frvbf,x_before) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
110 #if WITH_SCACHE_PBB_FRVBF
111 frvbf_pbb_before (current_cpu, sem_arg);
119 /* x-cti-chain: --cti-chain-- */
122 SEM_FN_NAME (frvbf,x_cti_chain) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
131 #if WITH_SCACHE_PBB_FRVBF
133 vpc = frvbf_pbb_cti_chain (current_cpu, sem_arg,
134 pbb_br_type, pbb_br_npc);
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));
149 /* x-chain: --chain-- */
152 SEM_FN_NAME (frvbf,x_chain) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
161 #if WITH_SCACHE_PBB_FRVBF
162 vpc = frvbf_pbb_chain (current_cpu, sem_arg);
173 /* x-begin: --begin-- */
176 SEM_FN_NAME (frvbf,x_begin) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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);
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)));
194 vpc = frvbf_pbb_begin (current_cpu, 0);
204 /* add: add$pack $GRi,$GRj,$GRk */
207 SEM_FN_NAME (frvbf,add) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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);
225 /* sub: sub$pack $GRi,$GRj,$GRk */
228 SEM_FN_NAME (frvbf,sub) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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);
246 /* and: and$pack $GRi,$GRj,$GRk */
249 SEM_FN_NAME (frvbf,and) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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);
267 /* or: or$pack $GRi,$GRj,$GRk */
270 SEM_FN_NAME (frvbf,or) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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);
288 /* xor: xor$pack $GRi,$GRj,$GRk */
291 SEM_FN_NAME (frvbf,xor) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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);
309 /* not: not$pack $GRj,$GRk */
312 SEM_FN_NAME (frvbf,not) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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);
330 /* sdiv: sdiv$pack $GRi,$GRj,$GRk */
333 SEM_FN_NAME (frvbf,sdiv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
342 frvbf_signed_integer_divide (current_cpu, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), FLD (f_GRk), 0);
350 /* nsdiv: nsdiv$pack $GRi,$GRj,$GRk */
353 SEM_FN_NAME (frvbf,nsdiv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
362 frvbf_signed_integer_divide (current_cpu, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), FLD (f_GRk), 1);
370 /* udiv: udiv$pack $GRi,$GRj,$GRk */
373 SEM_FN_NAME (frvbf,udiv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
382 frvbf_unsigned_integer_divide (current_cpu, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), FLD (f_GRk), 0);
390 /* nudiv: nudiv$pack $GRi,$GRj,$GRk */
393 SEM_FN_NAME (frvbf,nudiv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
402 frvbf_unsigned_integer_divide (current_cpu, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), FLD (f_GRk), 1);
410 /* smul: smul$pack $GRi,$GRj,$GRdoublek */
413 SEM_FN_NAME (frvbf,smul) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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);
431 /* umul: umul$pack $GRi,$GRj,$GRdoublek */
434 SEM_FN_NAME (frvbf,umul) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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);
452 /* smu: smu$pack $GRi,$GRj */
455 SEM_FN_NAME (frvbf,smu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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);
473 /* smass: smass$pack $GRi,$GRj */
476 SEM_FN_NAME (frvbf,smass) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
485 DI opval = (ANDIF (ANDIF (GTDI (MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi))), EXTSIDI (GET_H_GR (FLD (f_GRj)))), 0), GTDI (GET_H_IACC0 (((UINT) 0)), 0)), LTDI (SUBDI (9223372036854775807, MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi))), EXTSIDI (GET_H_GR (FLD (f_GRj))))), GET_H_IACC0 (((UINT) 0))))) ? (MAKEDI (2147483647, 0xffffffff)) : (ANDIF (ANDIF (LTDI (MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi))), EXTSIDI (GET_H_GR (FLD (f_GRj)))), 0), LTDI (GET_H_IACC0 (((UINT) 0)), 0)), GTDI (SUBDI (9223372036854775808, MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi))), EXTSIDI (GET_H_GR (FLD (f_GRj))))), GET_H_IACC0 (((UINT) 0))))) ? (MAKEDI (0x80000000, 0)) : (ADDDI (GET_H_IACC0 (((UINT) 0)), MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi))), EXTSIDI (GET_H_GR (FLD (f_GRj))))));
486 sim_queue_fn_di_write (current_cpu, frvbf_h_iacc0_set, ((UINT) 0), opval);
487 TRACE_RESULT (current_cpu, abuf, "iacc0", 'D', opval);
494 /* smsss: smsss$pack $GRi,$GRj */
497 SEM_FN_NAME (frvbf,smsss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
506 DI opval = (ANDIF (ANDIF (LTDI (MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi))), EXTSIDI (GET_H_GR (FLD (f_GRj)))), 0), GTDI (GET_H_IACC0 (((UINT) 0)), 0)), LTDI (ADDDI (9223372036854775807, MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi))), EXTSIDI (GET_H_GR (FLD (f_GRj))))), GET_H_IACC0 (((UINT) 0))))) ? (MAKEDI (2147483647, 0xffffffff)) : (ANDIF (ANDIF (GTDI (MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi))), EXTSIDI (GET_H_GR (FLD (f_GRj)))), 0), LTDI (GET_H_IACC0 (((UINT) 0)), 0)), GTDI (ADDDI (9223372036854775808, MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi))), EXTSIDI (GET_H_GR (FLD (f_GRj))))), GET_H_IACC0 (((UINT) 0))))) ? (MAKEDI (0x80000000, 0)) : (SUBDI (GET_H_IACC0 (((UINT) 0)), MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi))), EXTSIDI (GET_H_GR (FLD (f_GRj))))));
507 sim_queue_fn_di_write (current_cpu, frvbf_h_iacc0_set, ((UINT) 0), opval);
508 TRACE_RESULT (current_cpu, abuf, "iacc0", 'D', opval);
515 /* sll: sll$pack $GRi,$GRj,$GRk */
518 SEM_FN_NAME (frvbf,sll) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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);
536 /* srl: srl$pack $GRi,$GRj,$GRk */
539 SEM_FN_NAME (frvbf,srl) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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);
557 /* sra: sra$pack $GRi,$GRj,$GRk */
560 SEM_FN_NAME (frvbf,sra) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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);
578 /* slass: slass$pack $GRi,$GRj,$GRk */
581 SEM_FN_NAME (frvbf,slass) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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);
599 /* scutss: scutss$pack $GRj,$GRk */
602 SEM_FN_NAME (frvbf,scutss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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);
620 /* scan: scan$pack $GRi,$GRj,$GRk */
623 SEM_FN_NAME (frvbf,scan) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
634 tmp_tmp1 = GET_H_GR (FLD (f_GRi));
635 tmp_tmp2 = SRASI (GET_H_GR (FLD (f_GRj)), 1);
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);
647 /* cadd: cadd$pack $GRi,$GRj,$GRk,$CCi,$cond */
650 SEM_FN_NAME (frvbf,cadd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
658 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
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);
663 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
667 abuf->written = written;
672 /* csub: csub$pack $GRi,$GRj,$GRk,$CCi,$cond */
675 SEM_FN_NAME (frvbf,csub) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
683 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
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);
688 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
692 abuf->written = written;
697 /* cand: cand$pack $GRi,$GRj,$GRk,$CCi,$cond */
700 SEM_FN_NAME (frvbf,cand) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
708 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
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);
713 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
717 abuf->written = written;
722 /* cor: cor$pack $GRi,$GRj,$GRk,$CCi,$cond */
725 SEM_FN_NAME (frvbf,cor) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
733 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
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);
738 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
742 abuf->written = written;
747 /* cxor: cxor$pack $GRi,$GRj,$GRk,$CCi,$cond */
750 SEM_FN_NAME (frvbf,cxor) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
758 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
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);
763 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
767 abuf->written = written;
772 /* cnot: cnot$pack $GRj,$GRk,$CCi,$cond */
775 SEM_FN_NAME (frvbf,cnot) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
783 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
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);
788 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
792 abuf->written = written;
797 /* csmul: csmul$pack $GRi,$GRj,$GRdoublek,$CCi,$cond */
800 SEM_FN_NAME (frvbf,csmul) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
808 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
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);
813 TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
817 abuf->written = written;
822 /* csdiv: csdiv$pack $GRi,$GRj,$GRk,$CCi,$cond */
825 SEM_FN_NAME (frvbf,csdiv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
833 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
835 frvbf_signed_integer_divide (current_cpu, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), FLD (f_GRk), 0);
840 abuf->written = written;
845 /* cudiv: cudiv$pack $GRi,$GRj,$GRk,$CCi,$cond */
848 SEM_FN_NAME (frvbf,cudiv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
856 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
858 frvbf_unsigned_integer_divide (current_cpu, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), FLD (f_GRk), 0);
863 abuf->written = written;
868 /* csll: csll$pack $GRi,$GRj,$GRk,$CCi,$cond */
871 SEM_FN_NAME (frvbf,csll) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
879 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
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);
884 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
888 abuf->written = written;
893 /* csrl: csrl$pack $GRi,$GRj,$GRk,$CCi,$cond */
896 SEM_FN_NAME (frvbf,csrl) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
904 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
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);
909 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
913 abuf->written = written;
918 /* csra: csra$pack $GRi,$GRj,$GRk,$CCi,$cond */
921 SEM_FN_NAME (frvbf,csra) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
929 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
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);
934 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
938 abuf->written = written;
943 /* cscan: cscan$pack $GRi,$GRj,$GRk,$CCi,$cond */
946 SEM_FN_NAME (frvbf,cscan) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
954 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
958 tmp_tmp1 = GET_H_GR (FLD (f_GRi));
959 tmp_tmp2 = SRASI (GET_H_GR (FLD (f_GRj)), 1);
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);
964 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
969 abuf->written = written;
974 /* addcc: addcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
977 SEM_FN_NAME (frvbf,addcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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);
994 tmp_cc = ORQI (tmp_cc, 2);
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);
1000 tmp_cc = ORQI (tmp_cc, 1);
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);
1006 if (LTSI (tmp_result, 0)) {
1007 tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
1009 tmp_cc = ANDQI (tmp_cc, 3);
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);
1019 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1020 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1028 /* subcc: subcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
1031 SEM_FN_NAME (frvbf,subcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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);
1048 tmp_cc = ORQI (tmp_cc, 2);
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);
1054 tmp_cc = ORQI (tmp_cc, 1);
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);
1060 if (LTSI (tmp_result, 0)) {
1061 tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
1063 tmp_cc = ANDQI (tmp_cc, 3);
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);
1073 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1074 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1082 /* andcc: andcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
1085 SEM_FN_NAME (frvbf,andcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
1095 tmp_tmp = ANDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
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);
1101 if (EQSI (tmp_tmp, 0)) {
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);
1109 if (LTSI (tmp_tmp, 0)) {
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);
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);
1127 abuf->written = written;
1132 /* orcc: orcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
1135 SEM_FN_NAME (frvbf,orcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
1145 tmp_tmp = ORSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
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);
1151 if (EQSI (tmp_tmp, 0)) {
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);
1159 if (LTSI (tmp_tmp, 0)) {
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);
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);
1177 abuf->written = written;
1182 /* xorcc: xorcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
1185 SEM_FN_NAME (frvbf,xorcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
1195 tmp_tmp = XORSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
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);
1201 if (EQSI (tmp_tmp, 0)) {
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);
1209 if (LTSI (tmp_tmp, 0)) {
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);
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);
1227 abuf->written = written;
1232 /* sllcc: sllcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
1235 SEM_FN_NAME (frvbf,sllcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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);
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);
1255 if (EQSI (tmp_tmp, 0)) {
1256 tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
1258 if (LTSI (tmp_tmp, 0)) {
1259 tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
1261 tmp_cc = ANDQI (tmp_cc, 3);
1266 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1267 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1275 /* srlcc: srlcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
1278 SEM_FN_NAME (frvbf,srlcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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);
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);
1298 if (EQSI (tmp_tmp, 0)) {
1299 tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
1301 if (LTSI (tmp_tmp, 0)) {
1302 tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
1304 tmp_cc = ANDQI (tmp_cc, 3);
1309 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1310 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1318 /* sracc: sracc$pack $GRi,$GRj,$GRk,$ICCi_1 */
1321 SEM_FN_NAME (frvbf,sracc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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);
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);
1341 if (EQSI (tmp_tmp, 0)) {
1342 tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
1344 if (LTSI (tmp_tmp, 0)) {
1345 tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
1347 tmp_cc = ANDQI (tmp_cc, 3);
1352 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1353 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1361 /* smulcc: smulcc$pack $GRi,$GRj,$GRdoublek,$ICCi_1 */
1364 SEM_FN_NAME (frvbf,smulcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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);
1380 tmp_cc = ORQI (tmp_cc, 8);
1382 if (EQBI (EQDI (tmp_tmp, 0), 0)) {
1383 tmp_cc = ANDQI (tmp_cc, 11);
1385 tmp_cc = ORQI (tmp_cc, 4);
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);
1394 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1395 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1403 /* umulcc: umulcc$pack $GRi,$GRj,$GRdoublek,$ICCi_1 */
1406 SEM_FN_NAME (frvbf,umulcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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);
1422 tmp_cc = ORQI (tmp_cc, 8);
1424 if (EQBI (EQDI (tmp_tmp, 0), 0)) {
1425 tmp_cc = ANDQI (tmp_cc, 11);
1427 tmp_cc = ORQI (tmp_cc, 4);
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);
1436 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1437 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1445 /* caddcc: caddcc$pack $GRi,$GRj,$GRk,$CCi,$cond */
1448 SEM_FN_NAME (frvbf,caddcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
1456 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
1461 tmp_cc = CPU (h_iccr[((FLD (f_CCi)) & (3))]);
1462 tmp_tmp = ADDOFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), 0);
1463 if (EQBI (tmp_tmp, 0)) {
1464 tmp_cc = ANDQI (tmp_cc, 13);
1466 tmp_cc = ORQI (tmp_cc, 2);
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);
1472 tmp_cc = ORQI (tmp_cc, 1);
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);
1478 if (LTSI (tmp_result, 0)) {
1479 tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
1481 tmp_cc = ANDQI (tmp_cc, 3);
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);
1492 sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);
1493 written |= (1 << 7);
1494 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1499 abuf->written = written;
1504 /* csubcc: csubcc$pack $GRi,$GRj,$GRk,$CCi,$cond */
1507 SEM_FN_NAME (frvbf,csubcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
1515 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
1520 tmp_cc = CPU (h_iccr[((FLD (f_CCi)) & (3))]);
1521 tmp_tmp = SUBOFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), 0);
1522 if (EQBI (tmp_tmp, 0)) {
1523 tmp_cc = ANDQI (tmp_cc, 13);
1525 tmp_cc = ORQI (tmp_cc, 2);
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);
1531 tmp_cc = ORQI (tmp_cc, 1);
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);
1537 if (LTSI (tmp_result, 0)) {
1538 tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
1540 tmp_cc = ANDQI (tmp_cc, 3);
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);
1551 sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);
1552 written |= (1 << 7);
1553 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1558 abuf->written = written;
1563 /* csmulcc: csmulcc$pack $GRi,$GRj,$GRdoublek,$CCi,$cond */
1566 SEM_FN_NAME (frvbf,csmulcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
1574 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
1578 tmp_cc = CPU (h_iccr[((FLD (f_CCi)) & (3))]);
1579 tmp_tmp = MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi))), EXTSIDI (GET_H_GR (FLD (f_GRj))));
1580 if (EQDI (SRLDI (tmp_tmp, 63), 0)) {
1581 tmp_cc = ANDQI (tmp_cc, 7);
1583 tmp_cc = ORQI (tmp_cc, 8);
1585 if (EQBI (EQDI (tmp_tmp, 0), 0)) {
1586 tmp_cc = ANDQI (tmp_cc, 11);
1588 tmp_cc = ORQI (tmp_cc, 4);
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);
1598 sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);
1599 written |= (1 << 7);
1600 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1605 abuf->written = written;
1610 /* candcc: candcc$pack $GRi,$GRj,$GRk,$CCi,$cond */
1613 SEM_FN_NAME (frvbf,candcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
1621 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
1624 tmp_tmp = ANDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
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);
1631 if (EQSI (tmp_tmp, 0)) {
1633 UQI opval = ORQI (ANDQI (CPU (h_iccr[((FLD (f_CCi)) & (3))]), 7), 4);
1634 sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);
1635 written |= (1 << 7);
1636 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1639 if (LTSI (tmp_tmp, 0)) {
1641 UQI opval = ORQI (ANDQI (CPU (h_iccr[((FLD (f_CCi)) & (3))]), 11), 8);
1642 sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);
1643 written |= (1 << 7);
1644 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1648 UQI opval = ANDQI (CPU (h_iccr[((FLD (f_CCi)) & (3))]), 3);
1649 sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);
1650 written |= (1 << 7);
1651 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1658 abuf->written = written;
1663 /* corcc: corcc$pack $GRi,$GRj,$GRk,$CCi,$cond */
1666 SEM_FN_NAME (frvbf,corcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
1674 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
1677 tmp_tmp = ORSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
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);
1684 if (EQSI (tmp_tmp, 0)) {
1686 UQI opval = ORQI (ANDQI (CPU (h_iccr[((FLD (f_CCi)) & (3))]), 7), 4);
1687 sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);
1688 written |= (1 << 7);
1689 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1692 if (LTSI (tmp_tmp, 0)) {
1694 UQI opval = ORQI (ANDQI (CPU (h_iccr[((FLD (f_CCi)) & (3))]), 11), 8);
1695 sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);
1696 written |= (1 << 7);
1697 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1701 UQI opval = ANDQI (CPU (h_iccr[((FLD (f_CCi)) & (3))]), 3);
1702 sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);
1703 written |= (1 << 7);
1704 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1711 abuf->written = written;
1716 /* cxorcc: cxorcc$pack $GRi,$GRj,$GRk,$CCi,$cond */
1719 SEM_FN_NAME (frvbf,cxorcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
1727 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
1730 tmp_tmp = XORSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
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);
1737 if (EQSI (tmp_tmp, 0)) {
1739 UQI opval = ORQI (ANDQI (CPU (h_iccr[((FLD (f_CCi)) & (3))]), 7), 4);
1740 sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);
1741 written |= (1 << 7);
1742 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1745 if (LTSI (tmp_tmp, 0)) {
1747 UQI opval = ORQI (ANDQI (CPU (h_iccr[((FLD (f_CCi)) & (3))]), 11), 8);
1748 sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);
1749 written |= (1 << 7);
1750 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1754 UQI opval = ANDQI (CPU (h_iccr[((FLD (f_CCi)) & (3))]), 3);
1755 sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);
1756 written |= (1 << 7);
1757 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1764 abuf->written = written;
1769 /* csllcc: csllcc$pack $GRi,$GRj,$GRk,$CCi,$cond */
1772 SEM_FN_NAME (frvbf,csllcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
1780 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
1785 tmp_shift = ANDSI (GET_H_GR (FLD (f_GRj)), 31);
1786 tmp_cc = frvbf_set_icc_for_shift_left (current_cpu, GET_H_GR (FLD (f_GRi)), tmp_shift, CPU (h_iccr[((FLD (f_CCi)) & (3))]));
1787 tmp_tmp = SLLSI (GET_H_GR (FLD (f_GRi)), tmp_shift);
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);
1794 if (EQSI (tmp_tmp, 0)) {
1795 tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
1797 if (LTSI (tmp_tmp, 0)) {
1798 tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
1800 tmp_cc = ANDQI (tmp_cc, 3);
1805 sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);
1806 written |= (1 << 7);
1807 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1812 abuf->written = written;
1817 /* csrlcc: csrlcc$pack $GRi,$GRj,$GRk,$CCi,$cond */
1820 SEM_FN_NAME (frvbf,csrlcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
1828 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
1833 tmp_shift = ANDSI (GET_H_GR (FLD (f_GRj)), 31);
1834 tmp_cc = frvbf_set_icc_for_shift_right (current_cpu, GET_H_GR (FLD (f_GRi)), tmp_shift, CPU (h_iccr[((FLD (f_CCi)) & (3))]));
1835 tmp_tmp = SRLSI (GET_H_GR (FLD (f_GRi)), tmp_shift);
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);
1842 if (EQSI (tmp_tmp, 0)) {
1843 tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
1845 if (LTSI (tmp_tmp, 0)) {
1846 tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
1848 tmp_cc = ANDQI (tmp_cc, 3);
1853 sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);
1854 written |= (1 << 7);
1855 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1860 abuf->written = written;
1865 /* csracc: csracc$pack $GRi,$GRj,$GRk,$CCi,$cond */
1868 SEM_FN_NAME (frvbf,csracc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
1876 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
1881 tmp_shift = ANDSI (GET_H_GR (FLD (f_GRj)), 31);
1882 tmp_cc = frvbf_set_icc_for_shift_right (current_cpu, GET_H_GR (FLD (f_GRi)), tmp_shift, CPU (h_iccr[((FLD (f_CCi)) & (3))]));
1883 tmp_tmp = SRASI (GET_H_GR (FLD (f_GRi)), tmp_shift);
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);
1890 if (EQSI (tmp_tmp, 0)) {
1891 tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
1893 if (LTSI (tmp_tmp, 0)) {
1894 tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
1896 tmp_cc = ANDQI (tmp_cc, 3);
1901 sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);
1902 written |= (1 << 7);
1903 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1908 abuf->written = written;
1913 /* addx: addx$pack $GRi,$GRj,$GRk,$ICCi_1 */
1916 SEM_FN_NAME (frvbf,addx) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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);
1934 /* subx: subx$pack $GRi,$GRj,$GRk,$ICCi_1 */
1937 SEM_FN_NAME (frvbf,subx) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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);
1955 /* addxcc: addxcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
1958 SEM_FN_NAME (frvbf,addxcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
1969 tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
1970 tmp_tmp = ADDCSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), TRUNCQIBI (ANDQI (tmp_cc, 1)));
1971 if (EQSI (ADDOFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), TRUNCQIBI (ANDQI (tmp_cc, 1))), 0)) {
1972 tmp_cc = ANDQI (tmp_cc, 13);
1974 tmp_cc = ORQI (tmp_cc, 2);
1976 if (EQSI (ADDCFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), TRUNCQIBI (ANDQI (tmp_cc, 1))), 0)) {
1977 tmp_cc = ANDQI (tmp_cc, 14);
1979 tmp_cc = ORQI (tmp_cc, 1);
1981 if (EQSI (tmp_tmp, 0)) {
1982 tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
1984 if (LTSI (tmp_tmp, 0)) {
1985 tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
1987 tmp_cc = ANDQI (tmp_cc, 3);
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);
1997 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1998 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2006 /* subxcc: subxcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
2009 SEM_FN_NAME (frvbf,subxcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
2020 tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
2021 tmp_tmp = SUBCSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), TRUNCQIBI (ANDQI (tmp_cc, 1)));
2022 if (EQSI (SUBOFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), TRUNCQIBI (ANDQI (tmp_cc, 1))), 0)) {
2023 tmp_cc = ANDQI (tmp_cc, 13);
2025 tmp_cc = ORQI (tmp_cc, 2);
2027 if (EQSI (SUBCFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), TRUNCQIBI (ANDQI (tmp_cc, 1))), 0)) {
2028 tmp_cc = ANDQI (tmp_cc, 14);
2030 tmp_cc = ORQI (tmp_cc, 1);
2032 if (EQSI (tmp_tmp, 0)) {
2033 tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
2035 if (LTSI (tmp_tmp, 0)) {
2036 tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
2038 tmp_cc = ANDQI (tmp_cc, 3);
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);
2048 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2049 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2057 /* addss: addss$pack $GRi,$GRj,$GRk */
2060 SEM_FN_NAME (frvbf,addss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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);
2074 if (ADDOFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), 0)) {
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);
2087 /* subss: subss$pack $GRi,$GRj,$GRk */
2090 SEM_FN_NAME (frvbf,subss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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);
2104 if (SUBOFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), 0)) {
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);
2117 /* addi: addi$pack $GRi,$s12,$GRk */
2120 SEM_FN_NAME (frvbf,addi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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);
2138 /* subi: subi$pack $GRi,$s12,$GRk */
2141 SEM_FN_NAME (frvbf,subi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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);
2159 /* andi: andi$pack $GRi,$s12,$GRk */
2162 SEM_FN_NAME (frvbf,andi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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);
2180 /* ori: ori$pack $GRi,$s12,$GRk */
2183 SEM_FN_NAME (frvbf,ori) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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);
2201 /* xori: xori$pack $GRi,$s12,$GRk */
2204 SEM_FN_NAME (frvbf,xori) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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);
2222 /* sdivi: sdivi$pack $GRi,$s12,$GRk */
2225 SEM_FN_NAME (frvbf,sdivi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
2234 frvbf_signed_integer_divide (current_cpu, GET_H_GR (FLD (f_GRi)), FLD (f_d12), FLD (f_GRk), 0);
2242 /* nsdivi: nsdivi$pack $GRi,$s12,$GRk */
2245 SEM_FN_NAME (frvbf,nsdivi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
2254 frvbf_signed_integer_divide (current_cpu, GET_H_GR (FLD (f_GRi)), FLD (f_d12), FLD (f_GRk), 1);
2262 /* udivi: udivi$pack $GRi,$s12,$GRk */
2265 SEM_FN_NAME (frvbf,udivi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
2274 frvbf_unsigned_integer_divide (current_cpu, GET_H_GR (FLD (f_GRi)), FLD (f_d12), FLD (f_GRk), 0);
2282 /* nudivi: nudivi$pack $GRi,$s12,$GRk */
2285 SEM_FN_NAME (frvbf,nudivi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
2294 frvbf_unsigned_integer_divide (current_cpu, GET_H_GR (FLD (f_GRi)), FLD (f_d12), FLD (f_GRk), 1);
2302 /* smuli: smuli$pack $GRi,$s12,$GRdoublek */
2305 SEM_FN_NAME (frvbf,smuli) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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);
2323 /* umuli: umuli$pack $GRi,$s12,$GRdoublek */
2326 SEM_FN_NAME (frvbf,umuli) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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);
2344 /* slli: slli$pack $GRi,$s12,$GRk */
2347 SEM_FN_NAME (frvbf,slli) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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);
2365 /* srli: srli$pack $GRi,$s12,$GRk */
2368 SEM_FN_NAME (frvbf,srli) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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);
2386 /* srai: srai$pack $GRi,$s12,$GRk */
2389 SEM_FN_NAME (frvbf,srai) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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);
2407 /* scani: scani$pack $GRi,$s12,$GRk */
2410 SEM_FN_NAME (frvbf,scani) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
2421 tmp_tmp1 = GET_H_GR (FLD (f_GRi));
2422 tmp_tmp2 = SRASI (FLD (f_d12), 1);
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);
2434 /* addicc: addicc$pack $GRi,$s10,$GRk,$ICCi_1 */
2437 SEM_FN_NAME (frvbf,addicc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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);
2454 tmp_cc = ORQI (tmp_cc, 2);
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);
2460 tmp_cc = ORQI (tmp_cc, 1);
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);
2466 if (LTSI (tmp_result, 0)) {
2467 tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
2469 tmp_cc = ANDQI (tmp_cc, 3);
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);
2479 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2480 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2488 /* subicc: subicc$pack $GRi,$s10,$GRk,$ICCi_1 */
2491 SEM_FN_NAME (frvbf,subicc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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);
2508 tmp_cc = ORQI (tmp_cc, 2);
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);
2514 tmp_cc = ORQI (tmp_cc, 1);
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);
2520 if (LTSI (tmp_result, 0)) {
2521 tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
2523 tmp_cc = ANDQI (tmp_cc, 3);
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);
2533 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2534 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2542 /* andicc: andicc$pack $GRi,$s10,$GRk,$ICCi_1 */
2545 SEM_FN_NAME (frvbf,andicc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
2555 tmp_tmp = ANDSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10));
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);
2561 if (EQSI (tmp_tmp, 0)) {
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);
2569 if (LTSI (tmp_tmp, 0)) {
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);
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);
2587 abuf->written = written;
2592 /* oricc: oricc$pack $GRi,$s10,$GRk,$ICCi_1 */
2595 SEM_FN_NAME (frvbf,oricc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
2605 tmp_tmp = ORSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10));
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);
2611 if (EQSI (tmp_tmp, 0)) {
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);
2619 if (LTSI (tmp_tmp, 0)) {
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);
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);
2637 abuf->written = written;
2642 /* xoricc: xoricc$pack $GRi,$s10,$GRk,$ICCi_1 */
2645 SEM_FN_NAME (frvbf,xoricc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
2655 tmp_tmp = XORSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10));
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);
2661 if (EQSI (tmp_tmp, 0)) {
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);
2669 if (LTSI (tmp_tmp, 0)) {
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);
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);
2687 abuf->written = written;
2692 /* smulicc: smulicc$pack $GRi,$s10,$GRdoublek,$ICCi_1 */
2695 SEM_FN_NAME (frvbf,smulicc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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);
2711 tmp_cc = ORQI (tmp_cc, 8);
2713 if (EQBI (EQDI (tmp_tmp, 0), 0)) {
2714 tmp_cc = ANDQI (tmp_cc, 11);
2716 tmp_cc = ORQI (tmp_cc, 4);
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);
2725 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2726 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2734 /* umulicc: umulicc$pack $GRi,$s10,$GRdoublek,$ICCi_1 */
2737 SEM_FN_NAME (frvbf,umulicc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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);
2753 tmp_cc = ORQI (tmp_cc, 8);
2755 if (EQBI (EQDI (tmp_tmp, 0), 0)) {
2756 tmp_cc = ANDQI (tmp_cc, 11);
2758 tmp_cc = ORQI (tmp_cc, 4);
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);
2767 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2768 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2776 /* sllicc: sllicc$pack $GRi,$s10,$GRk,$ICCi_1 */
2779 SEM_FN_NAME (frvbf,sllicc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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);
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);
2799 if (EQSI (tmp_tmp, 0)) {
2800 tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
2802 if (LTSI (tmp_tmp, 0)) {
2803 tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
2805 tmp_cc = ANDQI (tmp_cc, 3);
2810 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2811 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2819 /* srlicc: srlicc$pack $GRi,$s10,$GRk,$ICCi_1 */
2822 SEM_FN_NAME (frvbf,srlicc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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);
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);
2842 if (EQSI (tmp_tmp, 0)) {
2843 tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
2845 if (LTSI (tmp_tmp, 0)) {
2846 tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
2848 tmp_cc = ANDQI (tmp_cc, 3);
2853 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2854 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2862 /* sraicc: sraicc$pack $GRi,$s10,$GRk,$ICCi_1 */
2865 SEM_FN_NAME (frvbf,sraicc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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);
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);
2885 if (EQSI (tmp_tmp, 0)) {
2886 tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
2888 if (LTSI (tmp_tmp, 0)) {
2889 tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
2891 tmp_cc = ANDQI (tmp_cc, 3);
2896 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2897 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2905 /* addxi: addxi$pack $GRi,$s10,$GRk,$ICCi_1 */
2908 SEM_FN_NAME (frvbf,addxi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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);
2926 /* subxi: subxi$pack $GRi,$s10,$GRk,$ICCi_1 */
2929 SEM_FN_NAME (frvbf,subxi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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);
2947 /* addxicc: addxicc$pack $GRi,$s10,$GRk,$ICCi_1 */
2950 SEM_FN_NAME (frvbf,addxicc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
2961 tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
2962 tmp_tmp = ADDCSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), TRUNCQIBI (ANDQI (tmp_cc, 1)));
2963 if (EQSI (ADDOFSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), TRUNCQIBI (ANDQI (tmp_cc, 1))), 0)) {
2964 tmp_cc = ANDQI (tmp_cc, 13);
2966 tmp_cc = ORQI (tmp_cc, 2);
2968 if (EQSI (ADDCFSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), TRUNCQIBI (ANDQI (tmp_cc, 1))), 0)) {
2969 tmp_cc = ANDQI (tmp_cc, 14);
2971 tmp_cc = ORQI (tmp_cc, 1);
2973 if (EQSI (tmp_tmp, 0)) {
2974 tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
2976 if (LTSI (tmp_tmp, 0)) {
2977 tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
2979 tmp_cc = ANDQI (tmp_cc, 3);
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);
2989 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2990 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2998 /* subxicc: subxicc$pack $GRi,$s10,$GRk,$ICCi_1 */
3001 SEM_FN_NAME (frvbf,subxicc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
3012 tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
3013 tmp_tmp = SUBCSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), TRUNCQIBI (ANDQI (tmp_cc, 1)));
3014 if (EQSI (SUBOFSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), TRUNCQIBI (ANDQI (tmp_cc, 1))), 0)) {
3015 tmp_cc = ANDQI (tmp_cc, 13);
3017 tmp_cc = ORQI (tmp_cc, 2);
3019 if (EQSI (SUBCFSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), TRUNCQIBI (ANDQI (tmp_cc, 1))), 0)) {
3020 tmp_cc = ANDQI (tmp_cc, 14);
3022 tmp_cc = ORQI (tmp_cc, 1);
3024 if (EQSI (tmp_tmp, 0)) {
3025 tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
3027 if (LTSI (tmp_tmp, 0)) {
3028 tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
3030 tmp_cc = ANDQI (tmp_cc, 3);
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);
3040 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
3041 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
3049 /* cmpb: cmpb$pack $GRi,$GRj,$ICCi_1 */
3052 SEM_FN_NAME (frvbf,cmpb) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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);
3065 tmp_cc = ORQI (tmp_cc, 8);
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);
3070 tmp_cc = ORQI (tmp_cc, 4);
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);
3075 tmp_cc = ORQI (tmp_cc, 2);
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);
3080 tmp_cc = ORQI (tmp_cc, 1);
3084 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
3085 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
3093 /* cmpba: cmpba$pack $GRi,$GRj,$ICCi_1 */
3096 SEM_FN_NAME (frvbf,cmpba) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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);
3110 tmp_cc = ORQI (tmp_cc, 1);
3114 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
3115 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
3123 /* setlo: setlo$pack $ulo16,$GRklo */
3126 SEM_FN_NAME (frvbf,setlo) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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);
3144 /* sethi: sethi$pack $uhi16,$GRkhi */
3147 SEM_FN_NAME (frvbf,sethi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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);
3165 /* setlos: setlos$pack $slo16,$GRk */
3168 SEM_FN_NAME (frvbf,setlos) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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);
3186 /* ldsb: ldsb$pack @($GRi,$GRj),$GRk */
3189 SEM_FN_NAME (frvbf,ldsb) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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);
3207 /* ldub: ldub$pack @($GRi,$GRj),$GRk */
3210 SEM_FN_NAME (frvbf,ldub) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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);
3228 /* ldsh: ldsh$pack @($GRi,$GRj),$GRk */
3231 SEM_FN_NAME (frvbf,ldsh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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);
3249 /* lduh: lduh$pack @($GRi,$GRj),$GRk */
3252 SEM_FN_NAME (frvbf,lduh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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);
3270 /* ld: ld$pack @($GRi,$GRj),$GRk */
3273 SEM_FN_NAME (frvbf,ld) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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);
3291 /* ldbf: ldbf$pack @($GRi,$GRj),$FRintk */
3294 SEM_FN_NAME (frvbf,ldbf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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);
3312 /* ldhf: ldhf$pack @($GRi,$GRj),$FRintk */
3315 SEM_FN_NAME (frvbf,ldhf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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);
3333 /* ldf: ldf$pack @($GRi,$GRj),$FRintk */
3336 SEM_FN_NAME (frvbf,ldf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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);
3354 /* ldc: ldc$pack @($GRi,$GRj),$CPRk */
3357 SEM_FN_NAME (frvbf,ldc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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);
3375 /* nldsb: nldsb$pack @($GRi,$GRj),$GRk */
3378 SEM_FN_NAME (frvbf,nldsb) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
3388 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 1, 0);
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);
3399 abuf->written = written;
3404 /* nldub: nldub$pack @($GRi,$GRj),$GRk */
3407 SEM_FN_NAME (frvbf,nldub) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
3417 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 0, 0);
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);
3428 abuf->written = written;
3433 /* nldsh: nldsh$pack @($GRi,$GRj),$GRk */
3436 SEM_FN_NAME (frvbf,nldsh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
3446 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 3, 0);
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);
3457 abuf->written = written;
3462 /* nlduh: nlduh$pack @($GRi,$GRj),$GRk */
3465 SEM_FN_NAME (frvbf,nlduh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
3475 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 2, 0);
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);
3486 abuf->written = written;
3491 /* nld: nld$pack @($GRi,$GRj),$GRk */
3494 SEM_FN_NAME (frvbf,nld) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
3504 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 4, 0);
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);
3515 abuf->written = written;
3520 /* nldbf: nldbf$pack @($GRi,$GRj),$FRintk */
3523 SEM_FN_NAME (frvbf,nldbf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
3533 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_FRk), 0, 0, 1);
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);
3544 abuf->written = written;
3549 /* nldhf: nldhf$pack @($GRi,$GRj),$FRintk */
3552 SEM_FN_NAME (frvbf,nldhf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
3562 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_FRk), 0, 2, 1);
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);
3573 abuf->written = written;
3578 /* nldf: nldf$pack @($GRi,$GRj),$FRintk */
3581 SEM_FN_NAME (frvbf,nldf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
3591 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_FRk), 0, 4, 1);
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);
3602 abuf->written = written;
3607 /* ldd: ldd$pack @($GRi,$GRj),$GRdoublek */
3610 SEM_FN_NAME (frvbf,ldd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
3620 if (NESI (FLD (f_GRk), 0)) {
3622 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
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);
3633 abuf->written = written;
3638 /* lddf: lddf$pack @($GRi,$GRj),$FRdoublek */
3641 SEM_FN_NAME (frvbf,lddf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
3652 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
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);
3665 /* lddc: lddc$pack @($GRi,$GRj),$CPRdoublek */
3668 SEM_FN_NAME (frvbf,lddc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
3679 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
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);
3692 /* nldd: nldd$pack @($GRi,$GRj),$GRdoublek */
3695 SEM_FN_NAME (frvbf,nldd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
3707 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 5, 0);
3709 if (NESI (FLD (f_GRk), 0)) {
3711 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
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);
3724 abuf->written = written;
3729 /* nlddf: nlddf$pack @($GRi,$GRj),$FRdoublek */
3732 SEM_FN_NAME (frvbf,nlddf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
3744 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_FRk), 0, 5, 1);
3747 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
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);
3759 abuf->written = written;
3764 /* ldq: ldq$pack @($GRi,$GRj),$GRk */
3767 SEM_FN_NAME (frvbf,ldq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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));
3787 /* ldqf: ldqf$pack @($GRi,$GRj),$FRintk */
3790 SEM_FN_NAME (frvbf,ldqf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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));
3810 /* ldqc: ldqc$pack @($GRi,$GRj),$CPRk */
3813 SEM_FN_NAME (frvbf,ldqc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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));
3833 /* nldq: nldq$pack @($GRi,$GRj),$GRk */
3836 SEM_FN_NAME (frvbf,nldq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
3848 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 6, 0);
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));
3862 /* nldqf: nldqf$pack @($GRi,$GRj),$FRintk */
3865 SEM_FN_NAME (frvbf,nldqf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
3877 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_FRk), 0, 6, 1);
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));
3891 /* ldsbu: ldsbu$pack @($GRi,$GRj),$GRk */
3894 SEM_FN_NAME (frvbf,ldsbu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
3904 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
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);
3910 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
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);
3918 frvbf_force_update (current_cpu);
3923 abuf->written = written;
3928 /* ldubu: ldubu$pack @($GRi,$GRj),$GRk */
3931 SEM_FN_NAME (frvbf,ldubu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
3941 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
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);
3947 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
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);
3955 frvbf_force_update (current_cpu);
3960 abuf->written = written;
3965 /* ldshu: ldshu$pack @($GRi,$GRj),$GRk */
3968 SEM_FN_NAME (frvbf,ldshu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
3978 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
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);
3984 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
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);
3992 frvbf_force_update (current_cpu);
3997 abuf->written = written;
4002 /* lduhu: lduhu$pack @($GRi,$GRj),$GRk */
4005 SEM_FN_NAME (frvbf,lduhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
4015 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
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);
4021 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
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);
4029 frvbf_force_update (current_cpu);
4034 abuf->written = written;
4039 /* ldu: ldu$pack @($GRi,$GRj),$GRk */
4042 SEM_FN_NAME (frvbf,ldu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
4052 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
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);
4058 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
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);
4066 frvbf_force_update (current_cpu);
4071 abuf->written = written;
4076 /* nldsbu: nldsbu$pack @($GRi,$GRj),$GRk */
4079 SEM_FN_NAME (frvbf,nldsbu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
4089 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 1, 0);
4093 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
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);
4100 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
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);
4108 frvbf_force_update (current_cpu);
4115 abuf->written = written;
4120 /* nldubu: nldubu$pack @($GRi,$GRj),$GRk */
4123 SEM_FN_NAME (frvbf,nldubu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
4133 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 0, 0);
4137 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
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);
4144 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
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);
4152 frvbf_force_update (current_cpu);
4159 abuf->written = written;
4164 /* nldshu: nldshu$pack @($GRi,$GRj),$GRk */
4167 SEM_FN_NAME (frvbf,nldshu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
4177 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 3, 0);
4181 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
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);
4188 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
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);
4196 frvbf_force_update (current_cpu);
4203 abuf->written = written;
4208 /* nlduhu: nlduhu$pack @($GRi,$GRj),$GRk */
4211 SEM_FN_NAME (frvbf,nlduhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
4221 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 2, 0);
4225 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
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);
4232 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
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);
4240 frvbf_force_update (current_cpu);
4247 abuf->written = written;
4252 /* nldu: nldu$pack @($GRi,$GRj),$GRk */
4255 SEM_FN_NAME (frvbf,nldu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
4265 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 4, 0);
4269 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
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);
4276 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
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);
4284 frvbf_force_update (current_cpu);
4291 abuf->written = written;
4296 /* ldbfu: ldbfu$pack @($GRi,$GRj),$FRintk */
4299 SEM_FN_NAME (frvbf,ldbfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
4309 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
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);
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);
4320 frvbf_force_update (current_cpu);
4327 /* ldhfu: ldhfu$pack @($GRi,$GRj),$FRintk */
4330 SEM_FN_NAME (frvbf,ldhfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
4340 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
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);
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);
4351 frvbf_force_update (current_cpu);
4358 /* ldfu: ldfu$pack @($GRi,$GRj),$FRintk */
4361 SEM_FN_NAME (frvbf,ldfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
4371 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
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);
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);
4382 frvbf_force_update (current_cpu);
4389 /* ldcu: ldcu$pack @($GRi,$GRj),$CPRk */
4392 SEM_FN_NAME (frvbf,ldcu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
4402 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
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);
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);
4413 frvbf_force_update (current_cpu);
4420 /* nldbfu: nldbfu$pack @($GRi,$GRj),$FRintk */
4423 SEM_FN_NAME (frvbf,nldbfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
4433 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_FRk), 0, 0, 1);
4437 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
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);
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);
4450 frvbf_force_update (current_cpu);
4455 abuf->written = written;
4460 /* nldhfu: nldhfu$pack @($GRi,$GRj),$FRintk */
4463 SEM_FN_NAME (frvbf,nldhfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
4473 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_FRk), 0, 2, 1);
4477 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
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);
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);
4490 frvbf_force_update (current_cpu);
4495 abuf->written = written;
4500 /* nldfu: nldfu$pack @($GRi,$GRj),$FRintk */
4503 SEM_FN_NAME (frvbf,nldfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
4513 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_FRk), 0, 4, 1);
4517 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
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);
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);
4530 frvbf_force_update (current_cpu);
4535 abuf->written = written;
4540 /* lddu: lddu$pack @($GRi,$GRj),$GRdoublek */
4543 SEM_FN_NAME (frvbf,lddu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
4553 if (NESI (FLD (f_GRk), 0)) {
4555 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
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);
4564 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
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);
4572 frvbf_force_update (current_cpu);
4577 abuf->written = written;
4582 /* nlddu: nlddu$pack @($GRi,$GRj),$GRdoublek */
4585 SEM_FN_NAME (frvbf,nlddu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
4595 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 5, 0);
4599 if (NESI (FLD (f_GRk), 0)) {
4601 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
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);
4610 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
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);
4618 frvbf_force_update (current_cpu);
4625 abuf->written = written;
4630 /* lddfu: lddfu$pack @($GRi,$GRj),$FRdoublek */
4633 SEM_FN_NAME (frvbf,lddfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
4644 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
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);
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);
4656 frvbf_force_update (current_cpu);
4663 /* lddcu: lddcu$pack @($GRi,$GRj),$CPRdoublek */
4666 SEM_FN_NAME (frvbf,lddcu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
4677 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
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);
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);
4689 frvbf_force_update (current_cpu);
4696 /* nlddfu: nlddfu$pack @($GRi,$GRj),$FRdoublek */
4699 SEM_FN_NAME (frvbf,nlddfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
4709 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_FRk), 0, 5, 1);
4714 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
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);
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);
4728 frvbf_force_update (current_cpu);
4733 abuf->written = written;
4738 /* ldqu: ldqu$pack @($GRi,$GRj),$GRk */
4741 SEM_FN_NAME (frvbf,ldqu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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));
4755 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
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);
4763 frvbf_force_update (current_cpu);
4768 abuf->written = written;
4773 /* nldqu: nldqu$pack @($GRi,$GRj),$GRk */
4776 SEM_FN_NAME (frvbf,nldqu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
4786 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 6, 0);
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));
4794 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
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);
4802 frvbf_force_update (current_cpu);
4809 abuf->written = written;
4814 /* ldqfu: ldqfu$pack @($GRi,$GRj),$FRintk */
4817 SEM_FN_NAME (frvbf,ldqfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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));
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);
4836 frvbf_force_update (current_cpu);
4843 /* ldqcu: ldqcu$pack @($GRi,$GRj),$CPRk */
4846 SEM_FN_NAME (frvbf,ldqcu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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));
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);
4865 frvbf_force_update (current_cpu);
4872 /* nldqfu: nldqfu$pack @($GRi,$GRj),$FRintk */
4875 SEM_FN_NAME (frvbf,nldqfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
4885 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_FRk), 0, 6, 1);
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));
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);
4899 frvbf_force_update (current_cpu);
4904 abuf->written = written;
4909 /* ldsbi: ldsbi$pack @($GRi,$d12),$GRk */
4912 SEM_FN_NAME (frvbf,ldsbi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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);
4930 /* ldshi: ldshi$pack @($GRi,$d12),$GRk */
4933 SEM_FN_NAME (frvbf,ldshi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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);
4951 /* ldi: ldi$pack @($GRi,$d12),$GRk */
4954 SEM_FN_NAME (frvbf,ldi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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);
4972 /* ldubi: ldubi$pack @($GRi,$d12),$GRk */
4975 SEM_FN_NAME (frvbf,ldubi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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);
4993 /* lduhi: lduhi$pack @($GRi,$d12),$GRk */
4996 SEM_FN_NAME (frvbf,lduhi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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);
5014 /* ldbfi: ldbfi$pack @($GRi,$d12),$FRintk */
5017 SEM_FN_NAME (frvbf,ldbfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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);
5035 /* ldhfi: ldhfi$pack @($GRi,$d12),$FRintk */
5038 SEM_FN_NAME (frvbf,ldhfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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);
5056 /* ldfi: ldfi$pack @($GRi,$d12),$FRintk */
5059 SEM_FN_NAME (frvbf,ldfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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);
5077 /* nldsbi: nldsbi$pack @($GRi,$d12),$GRk */
5080 SEM_FN_NAME (frvbf,nldsbi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
5090 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), -1, FLD (f_GRk), FLD (f_d12), 1, 0);
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);
5101 abuf->written = written;
5106 /* nldubi: nldubi$pack @($GRi,$d12),$GRk */
5109 SEM_FN_NAME (frvbf,nldubi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
5119 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), -1, FLD (f_GRk), FLD (f_d12), 0, 0);
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);
5130 abuf->written = written;
5135 /* nldshi: nldshi$pack @($GRi,$d12),$GRk */
5138 SEM_FN_NAME (frvbf,nldshi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
5148 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), -1, FLD (f_GRk), FLD (f_d12), 3, 0);
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);
5159 abuf->written = written;
5164 /* nlduhi: nlduhi$pack @($GRi,$d12),$GRk */
5167 SEM_FN_NAME (frvbf,nlduhi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
5177 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), -1, FLD (f_GRk), FLD (f_d12), 2, 0);
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);
5188 abuf->written = written;
5193 /* nldi: nldi$pack @($GRi,$d12),$GRk */
5196 SEM_FN_NAME (frvbf,nldi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
5206 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), -1, FLD (f_GRk), FLD (f_d12), 4, 0);
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);
5217 abuf->written = written;
5222 /* nldbfi: nldbfi$pack @($GRi,$d12),$FRintk */
5225 SEM_FN_NAME (frvbf,nldbfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
5235 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), -1, FLD (f_FRk), FLD (f_d12), 0, 1);
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);
5246 abuf->written = written;
5251 /* nldhfi: nldhfi$pack @($GRi,$d12),$FRintk */
5254 SEM_FN_NAME (frvbf,nldhfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
5264 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), -1, FLD (f_FRk), FLD (f_d12), 2, 1);
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);
5275 abuf->written = written;
5280 /* nldfi: nldfi$pack @($GRi,$d12),$FRintk */
5283 SEM_FN_NAME (frvbf,nldfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
5293 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), -1, FLD (f_FRk), FLD (f_d12), 4, 1);
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);
5304 abuf->written = written;
5309 /* lddi: lddi$pack @($GRi,$d12),$GRdoublek */
5312 SEM_FN_NAME (frvbf,lddi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
5322 if (NESI (FLD (f_GRk), 0)) {
5324 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
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);
5335 abuf->written = written;
5340 /* lddfi: lddfi$pack @($GRi,$d12),$FRdoublek */
5343 SEM_FN_NAME (frvbf,lddfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
5354 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
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);
5367 /* nlddi: nlddi$pack @($GRi,$d12),$GRdoublek */
5370 SEM_FN_NAME (frvbf,nlddi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
5382 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), -1, FLD (f_GRk), FLD (f_d12), 5, 0);
5384 if (NESI (FLD (f_GRk), 0)) {
5386 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
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);
5399 abuf->written = written;
5404 /* nlddfi: nlddfi$pack @($GRi,$d12),$FRdoublek */
5407 SEM_FN_NAME (frvbf,nlddfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
5419 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), -1, FLD (f_FRk), FLD (f_d12), 5, 1);
5422 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
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);
5434 abuf->written = written;
5439 /* ldqi: ldqi$pack @($GRi,$d12),$GRk */
5442 SEM_FN_NAME (frvbf,ldqi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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));
5462 /* ldqfi: ldqfi$pack @($GRi,$d12),$FRintk */
5465 SEM_FN_NAME (frvbf,ldqfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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));
5485 /* nldqfi: nldqfi$pack @($GRi,$d12),$FRintk */
5488 SEM_FN_NAME (frvbf,nldqfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
5500 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), -1, FLD (f_FRk), FLD (f_d12), 6, 1);
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));
5514 /* stb: stb$pack $GRk,@($GRi,$GRj) */
5517 SEM_FN_NAME (frvbf,stb) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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)));
5531 /* sth: sth$pack $GRk,@($GRi,$GRj) */
5534 SEM_FN_NAME (frvbf,sth) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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)));
5548 /* st: st$pack $GRk,@($GRi,$GRj) */
5551 SEM_FN_NAME (frvbf,st) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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)));
5565 /* stbf: stbf$pack $FRintk,@($GRi,$GRj) */
5568 SEM_FN_NAME (frvbf,stbf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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)));
5582 /* sthf: sthf$pack $FRintk,@($GRi,$GRj) */
5585 SEM_FN_NAME (frvbf,sthf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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)));
5599 /* stf: stf$pack $FRintk,@($GRi,$GRj) */
5602 SEM_FN_NAME (frvbf,stf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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)));
5616 /* stc: stc$pack $CPRk,@($GRi,$GRj) */
5619 SEM_FN_NAME (frvbf,stc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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)]));
5633 /* std: std$pack $GRdoublek,@($GRi,$GRj) */
5636 SEM_FN_NAME (frvbf,std) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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)));
5656 /* stdf: stdf$pack $FRdoublek,@($GRi,$GRj) */
5659 SEM_FN_NAME (frvbf,stdf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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)));
5679 /* stdc: stdc$pack $CPRdoublek,@($GRi,$GRj) */
5682 SEM_FN_NAME (frvbf,stdc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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)));
5702 /* stq: stq$pack $GRk,@($GRi,$GRj) */
5705 SEM_FN_NAME (frvbf,stq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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));
5725 /* stqf: stqf$pack $FRintk,@($GRi,$GRj) */
5728 SEM_FN_NAME (frvbf,stqf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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));
5748 /* stqc: stqc$pack $CPRk,@($GRi,$GRj) */
5751 SEM_FN_NAME (frvbf,stqc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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));
5771 /* stbu: stbu$pack $GRk,@($GRi,$GRj) */
5774 SEM_FN_NAME (frvbf,stbu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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)));
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);
5797 /* sthu: sthu$pack $GRk,@($GRi,$GRj) */
5800 SEM_FN_NAME (frvbf,sthu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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)));
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);
5823 /* stu: stu$pack $GRk,@($GRi,$GRj) */
5826 SEM_FN_NAME (frvbf,stu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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)));
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);
5849 /* stbfu: stbfu$pack $FRintk,@($GRi,$GRj) */
5852 SEM_FN_NAME (frvbf,stbfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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)));
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);
5875 /* sthfu: sthfu$pack $FRintk,@($GRi,$GRj) */
5878 SEM_FN_NAME (frvbf,sthfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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)));
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);
5901 /* stfu: stfu$pack $FRintk,@($GRi,$GRj) */
5904 SEM_FN_NAME (frvbf,stfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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)));
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);
5927 /* stcu: stcu$pack $CPRk,@($GRi,$GRj) */
5930 SEM_FN_NAME (frvbf,stcu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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)]));
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);
5953 /* stdu: stdu$pack $GRdoublek,@($GRi,$GRj) */
5956 SEM_FN_NAME (frvbf,stdu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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)));
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);
5981 /* stdfu: stdfu$pack $FRdoublek,@($GRi,$GRj) */
5984 SEM_FN_NAME (frvbf,stdfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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)));
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);
6009 /* stdcu: stdcu$pack $CPRdoublek,@($GRi,$GRj) */
6012 SEM_FN_NAME (frvbf,stdcu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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)));
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);
6037 /* stqu: stqu$pack $GRk,@($GRi,$GRj) */
6040 SEM_FN_NAME (frvbf,stqu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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));
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);
6065 /* stqfu: stqfu$pack $FRintk,@($GRi,$GRj) */
6068 SEM_FN_NAME (frvbf,stqfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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));
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);
6093 /* stqcu: stqcu$pack $CPRk,@($GRi,$GRj) */
6096 SEM_FN_NAME (frvbf,stqcu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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));
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);
6121 /* cldsb: cldsb$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6124 SEM_FN_NAME (frvbf,cldsb) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
6132 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
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);
6141 abuf->written = written;
6146 /* cldub: cldub$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6149 SEM_FN_NAME (frvbf,cldub) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
6157 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
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);
6166 abuf->written = written;
6171 /* cldsh: cldsh$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6174 SEM_FN_NAME (frvbf,cldsh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
6182 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
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);
6191 abuf->written = written;
6196 /* clduh: clduh$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6199 SEM_FN_NAME (frvbf,clduh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
6207 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
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);
6216 abuf->written = written;
6221 /* cld: cld$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6224 SEM_FN_NAME (frvbf,cld) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
6232 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
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);
6241 abuf->written = written;
6246 /* cldbf: cldbf$pack @($GRi,$GRj),$FRintk,$CCi,$cond */
6249 SEM_FN_NAME (frvbf,cldbf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
6257 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
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);
6266 abuf->written = written;
6271 /* cldhf: cldhf$pack @($GRi,$GRj),$FRintk,$CCi,$cond */
6274 SEM_FN_NAME (frvbf,cldhf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
6282 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
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);
6291 abuf->written = written;
6296 /* cldf: cldf$pack @($GRi,$GRj),$FRintk,$CCi,$cond */
6299 SEM_FN_NAME (frvbf,cldf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
6307 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
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);
6316 abuf->written = written;
6321 /* cldd: cldd$pack @($GRi,$GRj),$GRdoublek,$CCi,$cond */
6324 SEM_FN_NAME (frvbf,cldd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
6332 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6335 if (NESI (FLD (f_GRk), 0)) {
6337 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
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);
6349 abuf->written = written;
6354 /* clddf: clddf$pack @($GRi,$GRj),$FRdoublek,$CCi,$cond */
6357 SEM_FN_NAME (frvbf,clddf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
6365 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6369 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
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);
6380 abuf->written = written;
6385 /* cldq: cldq$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6388 SEM_FN_NAME (frvbf,cldq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
6396 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
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));
6410 /* cldsbu: cldsbu$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6413 SEM_FN_NAME (frvbf,cldsbu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
6421 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6424 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
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);
6431 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
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);
6442 abuf->written = written;
6447 /* cldubu: cldubu$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6450 SEM_FN_NAME (frvbf,cldubu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
6458 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6461 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
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);
6468 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
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);
6479 abuf->written = written;
6484 /* cldshu: cldshu$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6487 SEM_FN_NAME (frvbf,cldshu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
6495 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6498 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
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);
6505 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
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);
6516 abuf->written = written;
6521 /* clduhu: clduhu$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6524 SEM_FN_NAME (frvbf,clduhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
6532 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6535 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
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);
6542 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
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);
6553 abuf->written = written;
6558 /* cldu: cldu$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6561 SEM_FN_NAME (frvbf,cldu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
6569 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6572 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
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);
6579 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
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);
6590 abuf->written = written;
6595 /* cldbfu: cldbfu$pack @($GRi,$GRj),$FRintk,$CCi,$cond */
6598 SEM_FN_NAME (frvbf,cldbfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
6606 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6609 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
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);
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);
6625 abuf->written = written;
6630 /* cldhfu: cldhfu$pack @($GRi,$GRj),$FRintk,$CCi,$cond */
6633 SEM_FN_NAME (frvbf,cldhfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
6641 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6644 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
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);
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);
6660 abuf->written = written;
6665 /* cldfu: cldfu$pack @($GRi,$GRj),$FRintk,$CCi,$cond */
6668 SEM_FN_NAME (frvbf,cldfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
6676 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6679 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
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);
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);
6695 abuf->written = written;
6700 /* clddu: clddu$pack @($GRi,$GRj),$GRdoublek,$CCi,$cond */
6703 SEM_FN_NAME (frvbf,clddu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
6711 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6714 if (NESI (FLD (f_GRk), 0)) {
6716 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
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);
6725 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
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);
6736 abuf->written = written;
6741 /* clddfu: clddfu$pack @($GRi,$GRj),$FRdoublek,$CCi,$cond */
6744 SEM_FN_NAME (frvbf,clddfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
6752 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6756 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
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);
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);
6773 abuf->written = written;
6778 /* cldqu: cldqu$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6781 SEM_FN_NAME (frvbf,cldqu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
6789 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
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));
6796 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
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);
6807 abuf->written = written;
6812 /* cstb: cstb$pack $GRk,@($GRi,$GRj),$CCi,$cond */
6815 SEM_FN_NAME (frvbf,cstb) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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)));
6831 /* csth: csth$pack $GRk,@($GRi,$GRj),$CCi,$cond */
6834 SEM_FN_NAME (frvbf,csth) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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)));
6850 /* cst: cst$pack $GRk,@($GRi,$GRj),$CCi,$cond */
6853 SEM_FN_NAME (frvbf,cst) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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)));
6869 /* cstbf: cstbf$pack $FRintk,@($GRi,$GRj),$CCi,$cond */
6872 SEM_FN_NAME (frvbf,cstbf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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)));
6888 /* csthf: csthf$pack $FRintk,@($GRi,$GRj),$CCi,$cond */
6891 SEM_FN_NAME (frvbf,csthf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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)));
6907 /* cstf: cstf$pack $FRintk,@($GRi,$GRj),$CCi,$cond */
6910 SEM_FN_NAME (frvbf,cstf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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)));
6926 /* cstd: cstd$pack $GRdoublek,@($GRi,$GRj),$CCi,$cond */
6929 SEM_FN_NAME (frvbf,cstd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
6937 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
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)));
6951 /* cstdf: cstdf$pack $FRdoublek,@($GRi,$GRj),$CCi,$cond */
6954 SEM_FN_NAME (frvbf,cstdf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
6962 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
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)));
6976 /* cstq: cstq$pack $GRk,@($GRi,$GRj),$CCi,$cond */
6979 SEM_FN_NAME (frvbf,cstq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
6987 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
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));
7001 /* cstbu: cstbu$pack $GRk,@($GRi,$GRj),$CCi,$cond */
7004 SEM_FN_NAME (frvbf,cstbu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
7012 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
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)));
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);
7026 abuf->written = written;
7031 /* csthu: csthu$pack $GRk,@($GRi,$GRj),$CCi,$cond */
7034 SEM_FN_NAME (frvbf,csthu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
7042 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
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)));
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);
7056 abuf->written = written;
7061 /* cstu: cstu$pack $GRk,@($GRi,$GRj),$CCi,$cond */
7064 SEM_FN_NAME (frvbf,cstu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
7072 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
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)));
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);
7086 abuf->written = written;
7091 /* cstbfu: cstbfu$pack $FRintk,@($GRi,$GRj),$CCi,$cond */
7094 SEM_FN_NAME (frvbf,cstbfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
7102 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
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)));
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);
7116 abuf->written = written;
7121 /* csthfu: csthfu$pack $FRintk,@($GRi,$GRj),$CCi,$cond */
7124 SEM_FN_NAME (frvbf,csthfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
7132 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
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)));
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);
7146 abuf->written = written;
7151 /* cstfu: cstfu$pack $FRintk,@($GRi,$GRj),$CCi,$cond */
7154 SEM_FN_NAME (frvbf,cstfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
7162 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
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)));
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);
7176 abuf->written = written;
7181 /* cstdu: cstdu$pack $GRdoublek,@($GRi,$GRj),$CCi,$cond */
7184 SEM_FN_NAME (frvbf,cstdu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
7192 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
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)));
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);
7208 abuf->written = written;
7213 /* cstdfu: cstdfu$pack $FRdoublek,@($GRi,$GRj),$CCi,$cond */
7216 SEM_FN_NAME (frvbf,cstdfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
7224 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
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)));
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);
7240 abuf->written = written;
7245 /* stbi: stbi$pack $GRk,@($GRi,$d12) */
7248 SEM_FN_NAME (frvbf,stbi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
7256 frvbf_write_mem_QI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)), GET_H_GR (FLD (f_GRk)));
7262 /* sthi: sthi$pack $GRk,@($GRi,$d12) */
7265 SEM_FN_NAME (frvbf,sthi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
7273 frvbf_write_mem_HI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)), GET_H_GR (FLD (f_GRk)));
7279 /* sti: sti$pack $GRk,@($GRi,$d12) */
7282 SEM_FN_NAME (frvbf,sti) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
7290 frvbf_write_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)), GET_H_GR (FLD (f_GRk)));
7296 /* stbfi: stbfi$pack $FRintk,@($GRi,$d12) */
7299 SEM_FN_NAME (frvbf,stbfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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)));
7313 /* sthfi: sthfi$pack $FRintk,@($GRi,$d12) */
7316 SEM_FN_NAME (frvbf,sthfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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)));
7330 /* stfi: stfi$pack $FRintk,@($GRi,$d12) */
7333 SEM_FN_NAME (frvbf,stfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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)));
7347 /* stdi: stdi$pack $GRdoublek,@($GRi,$d12) */
7350 SEM_FN_NAME (frvbf,stdi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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)));
7370 /* stdfi: stdfi$pack $FRdoublek,@($GRi,$d12) */
7373 SEM_FN_NAME (frvbf,stdfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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)));
7393 /* stqi: stqi$pack $GRk,@($GRi,$d12) */
7396 SEM_FN_NAME (frvbf,stqi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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));
7416 /* stqfi: stqfi$pack $FRintk,@($GRi,$d12) */
7419 SEM_FN_NAME (frvbf,stqfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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));
7439 /* swap: swap$pack @($GRi,$GRj),$GRk */
7442 SEM_FN_NAME (frvbf,swap) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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);
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);
7461 frvbf_write_mem_WI (current_cpu, pc, tmp_address, tmp_tmp);
7468 /* swapi: swapi$pack @($GRi,$d12),$GRk */
7471 SEM_FN_NAME (frvbf,swapi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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);
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);
7490 frvbf_write_mem_WI (current_cpu, pc, tmp_address, tmp_tmp);
7497 /* cswap: cswap$pack @($GRi,$GRj),$GRk,$CCi,$cond */
7500 SEM_FN_NAME (frvbf,cswap) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
7508 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
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);
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);
7521 frvbf_write_mem_WI (current_cpu, pc, tmp_address, tmp_tmp);
7525 abuf->written = written;
7530 /* movgf: movgf$pack $GRj,$FRintk */
7533 SEM_FN_NAME (frvbf,movgf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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);
7551 /* movfg: movfg$pack $FRintk,$GRj */
7554 SEM_FN_NAME (frvbf,movfg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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);
7572 /* movgfd: movgfd$pack $GRj,$FRintk */
7575 SEM_FN_NAME (frvbf,movgfd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
7583 if (EQSI (FLD (f_GRj), 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);
7593 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (1)), opval);
7594 written |= (1 << 5);
7595 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
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);
7607 USI opval = GET_H_GR (((FLD (f_GRj)) + (1)));
7608 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (1)), opval);
7609 written |= (1 << 5);
7610 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7615 abuf->written = written;
7620 /* movfgd: movfgd$pack $FRintk,$GRj */
7623 SEM_FN_NAME (frvbf,movfgd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
7631 if (NESI (FLD (f_GRj), 0)) {
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);
7640 USI opval = GET_H_FR_INT (((FLD (f_FRk)) + (1)));
7641 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, ((FLD (f_GRj)) + (1)), opval);
7642 written |= (1 << 5);
7643 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7648 abuf->written = written;
7653 /* movgfq: movgfq$pack $GRj,$FRintk */
7656 SEM_FN_NAME (frvbf,movgfq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
7664 if (EQSI (FLD (f_GRj), 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);
7674 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (1)), opval);
7675 written |= (1 << 7);
7676 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7680 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (2)), opval);
7681 written |= (1 << 8);
7682 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7686 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (3)), opval);
7687 written |= (1 << 9);
7688 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
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);
7700 USI opval = GET_H_GR (((FLD (f_GRj)) + (1)));
7701 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (1)), opval);
7702 written |= (1 << 7);
7703 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7706 USI opval = GET_H_GR (((FLD (f_GRj)) + (2)));
7707 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (2)), opval);
7708 written |= (1 << 8);
7709 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7712 USI opval = GET_H_GR (((FLD (f_GRj)) + (3)));
7713 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (3)), opval);
7714 written |= (1 << 9);
7715 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7720 abuf->written = written;
7725 /* movfgq: movfgq$pack $FRintk,$GRj */
7728 SEM_FN_NAME (frvbf,movfgq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
7736 if (NESI (FLD (f_GRj), 0)) {
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);
7745 USI opval = GET_H_FR_INT (((FLD (f_FRk)) + (1)));
7746 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, ((FLD (f_GRj)) + (1)), opval);
7747 written |= (1 << 7);
7748 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7751 USI opval = GET_H_FR_INT (((FLD (f_FRk)) + (2)));
7752 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, ((FLD (f_GRj)) + (2)), opval);
7753 written |= (1 << 8);
7754 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7757 USI opval = GET_H_FR_INT (((FLD (f_FRk)) + (3)));
7758 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, ((FLD (f_GRj)) + (3)), opval);
7759 written |= (1 << 9);
7760 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7765 abuf->written = written;
7770 /* cmovgf: cmovgf$pack $GRj,$FRintk,$CCi,$cond */
7773 SEM_FN_NAME (frvbf,cmovgf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
7781 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
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);
7790 abuf->written = written;
7795 /* cmovfg: cmovfg$pack $FRintk,$GRj,$CCi,$cond */
7798 SEM_FN_NAME (frvbf,cmovfg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
7806 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
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);
7815 abuf->written = written;
7820 /* cmovgfd: cmovgfd$pack $GRj,$FRintk,$CCi,$cond */
7823 SEM_FN_NAME (frvbf,cmovgfd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
7831 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7832 if (EQSI (FLD (f_GRj), 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);
7842 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (1)), opval);
7843 written |= (1 << 7);
7844 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
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);
7856 USI opval = GET_H_GR (((FLD (f_GRj)) + (1)));
7857 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (1)), opval);
7858 written |= (1 << 7);
7859 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7865 abuf->written = written;
7870 /* cmovfgd: cmovfgd$pack $FRintk,$GRj,$CCi,$cond */
7873 SEM_FN_NAME (frvbf,cmovfgd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
7881 if (ANDIF (NESI (FLD (f_GRj), 0), EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2)))) {
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);
7890 USI opval = GET_H_FR_INT (((FLD (f_FRk)) + (1)));
7891 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, ((FLD (f_GRj)) + (1)), opval);
7892 written |= (1 << 7);
7893 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7898 abuf->written = written;
7903 /* movgs: movgs$pack $GRj,$spr */
7906 SEM_FN_NAME (frvbf,movgs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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);
7924 /* movsg: movsg$pack $spr,$GRj */
7927 SEM_FN_NAME (frvbf,movsg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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);
7945 /* bra: bra$pack $hint_taken$label16 */
7948 SEM_FN_NAME (frvbf,bra) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
7957 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
7959 USI opval = FLD (i_label16);
7960 sim_queue_pc_write (current_cpu, opval);
7961 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
7969 /* bno: bno$pack$hint_not_taken */
7972 SEM_FN_NAME (frvbf,bno) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
7980 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
7986 /* beq: beq$pack $ICCi_2,$hint,$label16 */
7989 SEM_FN_NAME (frvbf,beq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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))) {
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);
8009 abuf->written = written;
8014 /* bne: bne$pack $ICCi_2,$hint,$label16 */
8017 SEM_FN_NAME (frvbf,bne) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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)))) {
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);
8037 abuf->written = written;
8042 /* ble: ble$pack $ICCi_2,$hint,$label16 */
8045 SEM_FN_NAME (frvbf,ble) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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))))) {
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);
8065 abuf->written = written;
8070 /* bgt: bgt$pack $ICCi_2,$hint,$label16 */
8073 SEM_FN_NAME (frvbf,bgt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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)))))) {
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);
8093 abuf->written = written;
8098 /* blt: blt$pack $ICCi_2,$hint,$label16 */
8101 SEM_FN_NAME (frvbf,blt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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)))) {
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);
8121 abuf->written = written;
8126 /* bge: bge$pack $ICCi_2,$hint,$label16 */
8129 SEM_FN_NAME (frvbf,bge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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))))) {
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);
8149 abuf->written = written;
8154 /* bls: bls$pack $ICCi_2,$hint,$label16 */
8157 SEM_FN_NAME (frvbf,bls) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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)))) {
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);
8177 abuf->written = written;
8182 /* bhi: bhi$pack $ICCi_2,$hint,$label16 */
8185 SEM_FN_NAME (frvbf,bhi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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))))) {
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);
8205 abuf->written = written;
8210 /* bc: bc$pack $ICCi_2,$hint,$label16 */
8213 SEM_FN_NAME (frvbf,bc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
8222 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8223 if (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1))) {
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);
8233 abuf->written = written;
8238 /* bnc: bnc$pack $ICCi_2,$hint,$label16 */
8241 SEM_FN_NAME (frvbf,bnc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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)))) {
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);
8261 abuf->written = written;
8266 /* bn: bn$pack $ICCi_2,$hint,$label16 */
8269 SEM_FN_NAME (frvbf,bn) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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))) {
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);
8289 abuf->written = written;
8294 /* bp: bp$pack $ICCi_2,$hint,$label16 */
8297 SEM_FN_NAME (frvbf,bp) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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)))) {
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);
8317 abuf->written = written;
8322 /* bv: bv$pack $ICCi_2,$hint,$label16 */
8325 SEM_FN_NAME (frvbf,bv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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))) {
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);
8345 abuf->written = written;
8350 /* bnv: bnv$pack $ICCi_2,$hint,$label16 */
8353 SEM_FN_NAME (frvbf,bnv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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)))) {
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);
8373 abuf->written = written;
8378 /* fbra: fbra$pack $hint_taken$label16 */
8381 SEM_FN_NAME (frvbf,fbra) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
8390 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8392 USI opval = FLD (i_label16);
8393 sim_queue_pc_write (current_cpu, opval);
8394 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8402 /* fbno: fbno$pack$hint_not_taken */
8405 SEM_FN_NAME (frvbf,fbno) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
8413 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8419 /* fbne: fbne$pack $FCCi_2,$hint,$label16 */
8422 SEM_FN_NAME (frvbf,fbne) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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))))) {
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);
8442 abuf->written = written;
8447 /* fbeq: fbeq$pack $FCCi_2,$hint,$label16 */
8450 SEM_FN_NAME (frvbf,fbeq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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))) {
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);
8470 abuf->written = written;
8475 /* fblg: fblg$pack $FCCi_2,$hint,$label16 */
8478 SEM_FN_NAME (frvbf,fblg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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)))) {
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);
8498 abuf->written = written;
8503 /* fbue: fbue$pack $FCCi_2,$hint,$label16 */
8506 SEM_FN_NAME (frvbf,fbue) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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)))) {
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);
8526 abuf->written = written;
8531 /* fbul: fbul$pack $FCCi_2,$hint,$label16 */
8534 SEM_FN_NAME (frvbf,fbul) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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)))) {
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);
8554 abuf->written = written;
8559 /* fbge: fbge$pack $FCCi_2,$hint,$label16 */
8562 SEM_FN_NAME (frvbf,fbge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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)))) {
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);
8582 abuf->written = written;
8587 /* fblt: fblt$pack $FCCi_2,$hint,$label16 */
8590 SEM_FN_NAME (frvbf,fblt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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))) {
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);
8610 abuf->written = written;
8615 /* fbuge: fbuge$pack $FCCi_2,$hint,$label16 */
8618 SEM_FN_NAME (frvbf,fbuge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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))))) {
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);
8638 abuf->written = written;
8643 /* fbug: fbug$pack $FCCi_2,$hint,$label16 */
8646 SEM_FN_NAME (frvbf,fbug) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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)))) {
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);
8666 abuf->written = written;
8671 /* fble: fble$pack $FCCi_2,$hint,$label16 */
8674 SEM_FN_NAME (frvbf,fble) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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)))) {
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);
8694 abuf->written = written;
8699 /* fbgt: fbgt$pack $FCCi_2,$hint,$label16 */
8702 SEM_FN_NAME (frvbf,fbgt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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))) {
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);
8722 abuf->written = written;
8727 /* fbule: fbule$pack $FCCi_2,$hint,$label16 */
8730 SEM_FN_NAME (frvbf,fbule) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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))))) {
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);
8750 abuf->written = written;
8755 /* fbu: fbu$pack $FCCi_2,$hint,$label16 */
8758 SEM_FN_NAME (frvbf,fbu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
8767 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8768 if (TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1))) {
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);
8778 abuf->written = written;
8783 /* fbo: fbo$pack $FCCi_2,$hint,$label16 */
8786 SEM_FN_NAME (frvbf,fbo) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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))))) {
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);
8806 abuf->written = written;
8811 /* bctrlr: bctrlr$pack $ccond,$hint */
8814 SEM_FN_NAME (frvbf,bctrlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
8823 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
8826 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
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);
8832 if (EQSI (FLD (f_ccond), 0)) {
8833 if (NESI (tmp_tmp, 0)) {
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);
8842 if (EQSI (tmp_tmp, 0)) {
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);
8854 abuf->written = written;
8859 /* bralr: bralr$pack$hint_taken */
8862 SEM_FN_NAME (frvbf,bralr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
8871 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
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);
8883 /* bnolr: bnolr$pack$hint_not_taken */
8886 SEM_FN_NAME (frvbf,bnolr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
8894 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
8900 /* beqlr: beqlr$pack $ICCi_2,$hint */
8903 SEM_FN_NAME (frvbf,beqlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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))) {
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);
8923 abuf->written = written;
8928 /* bnelr: bnelr$pack $ICCi_2,$hint */
8931 SEM_FN_NAME (frvbf,bnelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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)))) {
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);
8951 abuf->written = written;
8956 /* blelr: blelr$pack $ICCi_2,$hint */
8959 SEM_FN_NAME (frvbf,blelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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))))) {
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);
8979 abuf->written = written;
8984 /* bgtlr: bgtlr$pack $ICCi_2,$hint */
8987 SEM_FN_NAME (frvbf,bgtlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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)))))) {
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);
9007 abuf->written = written;
9012 /* bltlr: bltlr$pack $ICCi_2,$hint */
9015 SEM_FN_NAME (frvbf,bltlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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)))) {
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);
9035 abuf->written = written;
9040 /* bgelr: bgelr$pack $ICCi_2,$hint */
9043 SEM_FN_NAME (frvbf,bgelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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))))) {
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);
9063 abuf->written = written;
9068 /* blslr: blslr$pack $ICCi_2,$hint */
9071 SEM_FN_NAME (frvbf,blslr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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)))) {
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);
9091 abuf->written = written;
9096 /* bhilr: bhilr$pack $ICCi_2,$hint */
9099 SEM_FN_NAME (frvbf,bhilr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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))))) {
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);
9119 abuf->written = written;
9124 /* bclr: bclr$pack $ICCi_2,$hint */
9127 SEM_FN_NAME (frvbf,bclr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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))) {
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);
9147 abuf->written = written;
9152 /* bnclr: bnclr$pack $ICCi_2,$hint */
9155 SEM_FN_NAME (frvbf,bnclr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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)))) {
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);
9175 abuf->written = written;
9180 /* bnlr: bnlr$pack $ICCi_2,$hint */
9183 SEM_FN_NAME (frvbf,bnlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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))) {
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);
9203 abuf->written = written;
9208 /* bplr: bplr$pack $ICCi_2,$hint */
9211 SEM_FN_NAME (frvbf,bplr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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)))) {
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);
9231 abuf->written = written;
9236 /* bvlr: bvlr$pack $ICCi_2,$hint */
9239 SEM_FN_NAME (frvbf,bvlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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))) {
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);
9259 abuf->written = written;
9264 /* bnvlr: bnvlr$pack $ICCi_2,$hint */
9267 SEM_FN_NAME (frvbf,bnvlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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)))) {
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);
9287 abuf->written = written;
9292 /* fbralr: fbralr$pack$hint_taken */
9295 SEM_FN_NAME (frvbf,fbralr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
9304 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
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);
9316 /* fbnolr: fbnolr$pack$hint_not_taken */
9319 SEM_FN_NAME (frvbf,fbnolr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
9327 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9333 /* fbeqlr: fbeqlr$pack $FCCi_2,$hint */
9336 SEM_FN_NAME (frvbf,fbeqlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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))) {
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);
9356 abuf->written = written;
9361 /* fbnelr: fbnelr$pack $FCCi_2,$hint */
9364 SEM_FN_NAME (frvbf,fbnelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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))))) {
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);
9384 abuf->written = written;
9389 /* fblglr: fblglr$pack $FCCi_2,$hint */
9392 SEM_FN_NAME (frvbf,fblglr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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)))) {
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);
9412 abuf->written = written;
9417 /* fbuelr: fbuelr$pack $FCCi_2,$hint */
9420 SEM_FN_NAME (frvbf,fbuelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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)))) {
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);
9440 abuf->written = written;
9445 /* fbullr: fbullr$pack $FCCi_2,$hint */
9448 SEM_FN_NAME (frvbf,fbullr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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)))) {
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);
9468 abuf->written = written;
9473 /* fbgelr: fbgelr$pack $FCCi_2,$hint */
9476 SEM_FN_NAME (frvbf,fbgelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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)))) {
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);
9496 abuf->written = written;
9501 /* fbltlr: fbltlr$pack $FCCi_2,$hint */
9504 SEM_FN_NAME (frvbf,fbltlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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))) {
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);
9524 abuf->written = written;
9529 /* fbugelr: fbugelr$pack $FCCi_2,$hint */
9532 SEM_FN_NAME (frvbf,fbugelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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))))) {
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);
9552 abuf->written = written;
9557 /* fbuglr: fbuglr$pack $FCCi_2,$hint */
9560 SEM_FN_NAME (frvbf,fbuglr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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)))) {
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);
9580 abuf->written = written;
9585 /* fblelr: fblelr$pack $FCCi_2,$hint */
9588 SEM_FN_NAME (frvbf,fblelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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)))) {
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);
9608 abuf->written = written;
9613 /* fbgtlr: fbgtlr$pack $FCCi_2,$hint */
9616 SEM_FN_NAME (frvbf,fbgtlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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))) {
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);
9636 abuf->written = written;
9641 /* fbulelr: fbulelr$pack $FCCi_2,$hint */
9644 SEM_FN_NAME (frvbf,fbulelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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))))) {
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);
9664 abuf->written = written;
9669 /* fbulr: fbulr$pack $FCCi_2,$hint */
9672 SEM_FN_NAME (frvbf,fbulr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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))) {
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);
9692 abuf->written = written;
9697 /* fbolr: fbolr$pack $FCCi_2,$hint */
9700 SEM_FN_NAME (frvbf,fbolr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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))))) {
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);
9720 abuf->written = written;
9725 /* bcralr: bcralr$pack $ccond$hint_taken */
9728 SEM_FN_NAME (frvbf,bcralr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
9737 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9740 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
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);
9746 if (EQSI (FLD (f_ccond), 0)) {
9747 if (NESI (tmp_tmp, 0)) {
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);
9756 if (EQSI (tmp_tmp, 0)) {
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);
9768 abuf->written = written;
9773 /* bcnolr: bcnolr$pack$hint_not_taken */
9776 SEM_FN_NAME (frvbf,bcnolr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
9785 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9788 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
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);
9802 /* bceqlr: bceqlr$pack $ICCi_2,$ccond,$hint */
9805 SEM_FN_NAME (frvbf,bceqlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
9814 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9817 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
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);
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)) {
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);
9834 if (EQSI (tmp_tmp, 0)) {
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);
9847 abuf->written = written;
9852 /* bcnelr: bcnelr$pack $ICCi_2,$ccond,$hint */
9855 SEM_FN_NAME (frvbf,bcnelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
9864 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9867 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
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);
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)) {
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);
9884 if (EQSI (tmp_tmp, 0)) {
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);
9897 abuf->written = written;
9902 /* bclelr: bclelr$pack $ICCi_2,$ccond,$hint */
9905 SEM_FN_NAME (frvbf,bclelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
9914 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9917 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
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);
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)) {
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);
9934 if (EQSI (tmp_tmp, 0)) {
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);
9947 abuf->written = written;
9952 /* bcgtlr: bcgtlr$pack $ICCi_2,$ccond,$hint */
9955 SEM_FN_NAME (frvbf,bcgtlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
9964 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9967 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
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);
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)) {
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);
9984 if (EQSI (tmp_tmp, 0)) {
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);
9997 abuf->written = written;
10002 /* bcltlr: bcltlr$pack $ICCi_2,$ccond,$hint */
10005 SEM_FN_NAME (frvbf,bcltlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
10014 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10017 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
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);
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)) {
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);
10034 if (EQSI (tmp_tmp, 0)) {
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);
10047 abuf->written = written;
10052 /* bcgelr: bcgelr$pack $ICCi_2,$ccond,$hint */
10055 SEM_FN_NAME (frvbf,bcgelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
10064 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10067 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
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);
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)) {
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);
10084 if (EQSI (tmp_tmp, 0)) {
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);
10097 abuf->written = written;
10102 /* bclslr: bclslr$pack $ICCi_2,$ccond,$hint */
10105 SEM_FN_NAME (frvbf,bclslr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
10114 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10117 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
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);
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)) {
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);
10134 if (EQSI (tmp_tmp, 0)) {
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);
10147 abuf->written = written;
10152 /* bchilr: bchilr$pack $ICCi_2,$ccond,$hint */
10155 SEM_FN_NAME (frvbf,bchilr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
10164 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10167 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
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);
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)) {
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);
10184 if (EQSI (tmp_tmp, 0)) {
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);
10197 abuf->written = written;
10202 /* bcclr: bcclr$pack $ICCi_2,$ccond,$hint */
10205 SEM_FN_NAME (frvbf,bcclr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
10214 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10217 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
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);
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)) {
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);
10234 if (EQSI (tmp_tmp, 0)) {
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);
10247 abuf->written = written;
10252 /* bcnclr: bcnclr$pack $ICCi_2,$ccond,$hint */
10255 SEM_FN_NAME (frvbf,bcnclr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
10264 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10267 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
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);
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)) {
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);
10284 if (EQSI (tmp_tmp, 0)) {
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);
10297 abuf->written = written;
10302 /* bcnlr: bcnlr$pack $ICCi_2,$ccond,$hint */
10305 SEM_FN_NAME (frvbf,bcnlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
10314 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10317 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
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);
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)) {
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);
10334 if (EQSI (tmp_tmp, 0)) {
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);
10347 abuf->written = written;
10352 /* bcplr: bcplr$pack $ICCi_2,$ccond,$hint */
10355 SEM_FN_NAME (frvbf,bcplr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
10364 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10367 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
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);
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)) {
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);
10384 if (EQSI (tmp_tmp, 0)) {
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);
10397 abuf->written = written;
10402 /* bcvlr: bcvlr$pack $ICCi_2,$ccond,$hint */
10405 SEM_FN_NAME (frvbf,bcvlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
10414 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10417 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
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);
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)) {
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);
10434 if (EQSI (tmp_tmp, 0)) {
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);
10447 abuf->written = written;
10452 /* bcnvlr: bcnvlr$pack $ICCi_2,$ccond,$hint */
10455 SEM_FN_NAME (frvbf,bcnvlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
10464 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10467 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
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);
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)) {
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);
10484 if (EQSI (tmp_tmp, 0)) {
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);
10497 abuf->written = written;
10502 /* fcbralr: fcbralr$pack $ccond$hint_taken */
10505 SEM_FN_NAME (frvbf,fcbralr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
10514 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10517 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
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);
10523 if (EQSI (FLD (f_ccond), 0)) {
10524 if (NESI (tmp_tmp, 0)) {
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);
10533 if (EQSI (tmp_tmp, 0)) {
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);
10545 abuf->written = written;
10550 /* fcbnolr: fcbnolr$pack$hint_not_taken */
10553 SEM_FN_NAME (frvbf,fcbnolr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
10562 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10565 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
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);
10571 ((void) 0); /*nop*/
10579 /* fcbeqlr: fcbeqlr$pack $FCCi_2,$ccond,$hint */
10582 SEM_FN_NAME (frvbf,fcbeqlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
10591 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10594 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
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);
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)) {
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);
10611 if (EQSI (tmp_tmp, 0)) {
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);
10624 abuf->written = written;
10629 /* fcbnelr: fcbnelr$pack $FCCi_2,$ccond,$hint */
10632 SEM_FN_NAME (frvbf,fcbnelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
10641 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10644 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
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);
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)) {
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);
10661 if (EQSI (tmp_tmp, 0)) {
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);
10674 abuf->written = written;
10679 /* fcblglr: fcblglr$pack $FCCi_2,$ccond,$hint */
10682 SEM_FN_NAME (frvbf,fcblglr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
10691 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10694 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
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);
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)) {
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);
10711 if (EQSI (tmp_tmp, 0)) {
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);
10724 abuf->written = written;
10729 /* fcbuelr: fcbuelr$pack $FCCi_2,$ccond,$hint */
10732 SEM_FN_NAME (frvbf,fcbuelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
10741 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10744 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
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);
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)) {
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);
10761 if (EQSI (tmp_tmp, 0)) {
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);
10774 abuf->written = written;
10779 /* fcbullr: fcbullr$pack $FCCi_2,$ccond,$hint */
10782 SEM_FN_NAME (frvbf,fcbullr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
10791 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10794 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
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);
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)) {
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);
10811 if (EQSI (tmp_tmp, 0)) {
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);
10824 abuf->written = written;
10829 /* fcbgelr: fcbgelr$pack $FCCi_2,$ccond,$hint */
10832 SEM_FN_NAME (frvbf,fcbgelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
10841 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10844 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
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);
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)) {
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);
10861 if (EQSI (tmp_tmp, 0)) {
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);
10874 abuf->written = written;
10879 /* fcbltlr: fcbltlr$pack $FCCi_2,$ccond,$hint */
10882 SEM_FN_NAME (frvbf,fcbltlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
10891 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10894 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
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);
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)) {
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);
10911 if (EQSI (tmp_tmp, 0)) {
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);
10924 abuf->written = written;
10929 /* fcbugelr: fcbugelr$pack $FCCi_2,$ccond,$hint */
10932 SEM_FN_NAME (frvbf,fcbugelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
10941 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10944 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
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);
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)) {
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);
10961 if (EQSI (tmp_tmp, 0)) {
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);
10974 abuf->written = written;
10979 /* fcbuglr: fcbuglr$pack $FCCi_2,$ccond,$hint */
10982 SEM_FN_NAME (frvbf,fcbuglr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
10991 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10994 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
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);
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)) {
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);
11011 if (EQSI (tmp_tmp, 0)) {
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);
11024 abuf->written = written;
11029 /* fcblelr: fcblelr$pack $FCCi_2,$ccond,$hint */
11032 SEM_FN_NAME (frvbf,fcblelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
11041 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
11044 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
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);
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)) {
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);
11061 if (EQSI (tmp_tmp, 0)) {
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);
11074 abuf->written = written;
11079 /* fcbgtlr: fcbgtlr$pack $FCCi_2,$ccond,$hint */
11082 SEM_FN_NAME (frvbf,fcbgtlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
11091 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
11094 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
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);
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)) {
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);
11111 if (EQSI (tmp_tmp, 0)) {
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);
11124 abuf->written = written;
11129 /* fcbulelr: fcbulelr$pack $FCCi_2,$ccond,$hint */
11132 SEM_FN_NAME (frvbf,fcbulelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
11141 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
11144 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
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);
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)) {
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);
11161 if (EQSI (tmp_tmp, 0)) {
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);
11174 abuf->written = written;
11179 /* fcbulr: fcbulr$pack $FCCi_2,$ccond,$hint */
11182 SEM_FN_NAME (frvbf,fcbulr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
11191 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
11194 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
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);
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)) {
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);
11211 if (EQSI (tmp_tmp, 0)) {
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);
11224 abuf->written = written;
11229 /* fcbolr: fcbolr$pack $FCCi_2,$ccond,$hint */
11232 SEM_FN_NAME (frvbf,fcbolr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
11241 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
11244 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
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);
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)) {
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);
11261 if (EQSI (tmp_tmp, 0)) {
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);
11274 abuf->written = written;
11279 /* jmpl: jmpl$pack @($GRi,$GRj) */
11282 SEM_FN_NAME (frvbf,jmpl) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
11291 if (EQSI (FLD (f_LI), 1)) {
11292 frvbf_set_write_next_vliw_addr_to_LR (current_cpu, 1);
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);
11299 frvbf_model_branch (current_cpu, pc, 2);
11306 /* calll: calll$pack @($GRi,$GRj) */
11309 SEM_FN_NAME (frvbf,calll) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
11318 if (EQSI (FLD (f_LI), 1)) {
11319 frvbf_set_write_next_vliw_addr_to_LR (current_cpu, 1);
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);
11326 frvbf_model_branch (current_cpu, pc, 2);
11333 /* jmpil: jmpil$pack @($GRi,$s12) */
11336 SEM_FN_NAME (frvbf,jmpil) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
11345 if (EQSI (FLD (f_LI), 1)) {
11346 frvbf_set_write_next_vliw_addr_to_LR (current_cpu, 1);
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);
11353 frvbf_model_branch (current_cpu, pc, 2);
11360 /* callil: callil$pack @($GRi,$s12) */
11363 SEM_FN_NAME (frvbf,callil) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
11372 if (EQSI (FLD (f_LI), 1)) {
11373 frvbf_set_write_next_vliw_addr_to_LR (current_cpu, 1);
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);
11380 frvbf_model_branch (current_cpu, pc, 2);
11387 /* call: call$pack $label24 */
11390 SEM_FN_NAME (frvbf,call) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
11399 frvbf_set_write_next_vliw_addr_to_LR (current_cpu, 1);
11401 USI opval = FLD (i_label24);
11402 sim_queue_pc_write (current_cpu, opval);
11403 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11405 frvbf_model_branch (current_cpu, pc, 2);
11412 /* rett: rett$pack $debug */
11415 SEM_FN_NAME (frvbf,rett) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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);
11429 frvbf_model_branch (current_cpu, pc, 2);
11436 /* rei: rei$pack $eir */
11439 SEM_FN_NAME (frvbf,rei) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
11447 ((void) 0); /*nop*/
11453 /* tra: tra$pack $GRi,$GRj */
11456 SEM_FN_NAME (frvbf,tra) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
11469 if (NEBI (CPU (h_psr_esr), 0)) {
11477 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11480 abuf->written = written;
11485 /* tno: tno$pack */
11488 SEM_FN_NAME (frvbf,tno) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
11496 ((void) 0); /*nop*/
11502 /* teq: teq$pack $ICCi_2,$GRi,$GRj */
11505 SEM_FN_NAME (frvbf,teq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
11513 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2))) {
11519 if (NEBI (CPU (h_psr_esr), 0)) {
11527 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11531 abuf->written = written;
11536 /* tne: tne$pack $ICCi_2,$GRi,$GRj */
11539 SEM_FN_NAME (frvbf,tne) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
11547 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)))) {
11553 if (NEBI (CPU (h_psr_esr), 0)) {
11561 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11565 abuf->written = written;
11570 /* tle: tle$pack $ICCi_2,$GRi,$GRj */
11573 SEM_FN_NAME (frvbf,tle) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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))))) {
11587 if (NEBI (CPU (h_psr_esr), 0)) {
11595 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11599 abuf->written = written;
11604 /* tgt: tgt$pack $ICCi_2,$GRi,$GRj */
11607 SEM_FN_NAME (frvbf,tgt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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)))))) {
11621 if (NEBI (CPU (h_psr_esr), 0)) {
11629 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11633 abuf->written = written;
11638 /* tlt: tlt$pack $ICCi_2,$GRi,$GRj */
11641 SEM_FN_NAME (frvbf,tlt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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)))) {
11655 if (NEBI (CPU (h_psr_esr), 0)) {
11663 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11667 abuf->written = written;
11672 /* tge: tge$pack $ICCi_2,$GRi,$GRj */
11675 SEM_FN_NAME (frvbf,tge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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))))) {
11689 if (NEBI (CPU (h_psr_esr), 0)) {
11697 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11701 abuf->written = written;
11706 /* tls: tls$pack $ICCi_2,$GRi,$GRj */
11709 SEM_FN_NAME (frvbf,tls) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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)))) {
11723 if (NEBI (CPU (h_psr_esr), 0)) {
11731 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11735 abuf->written = written;
11740 /* thi: thi$pack $ICCi_2,$GRi,$GRj */
11743 SEM_FN_NAME (frvbf,thi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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))))) {
11757 if (NEBI (CPU (h_psr_esr), 0)) {
11765 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11769 abuf->written = written;
11774 /* tc: tc$pack $ICCi_2,$GRi,$GRj */
11777 SEM_FN_NAME (frvbf,tc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
11785 if (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1))) {
11791 if (NEBI (CPU (h_psr_esr), 0)) {
11799 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11803 abuf->written = written;
11808 /* tnc: tnc$pack $ICCi_2,$GRi,$GRj */
11811 SEM_FN_NAME (frvbf,tnc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
11819 if (NOTBI (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)))) {
11825 if (NEBI (CPU (h_psr_esr), 0)) {
11833 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11837 abuf->written = written;
11842 /* tn: tn$pack $ICCi_2,$GRi,$GRj */
11845 SEM_FN_NAME (frvbf,tn) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
11853 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3))) {
11859 if (NEBI (CPU (h_psr_esr), 0)) {
11867 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11871 abuf->written = written;
11876 /* tp: tp$pack $ICCi_2,$GRi,$GRj */
11879 SEM_FN_NAME (frvbf,tp) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
11887 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3)))) {
11893 if (NEBI (CPU (h_psr_esr), 0)) {
11901 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11905 abuf->written = written;
11910 /* tv: tv$pack $ICCi_2,$GRi,$GRj */
11913 SEM_FN_NAME (frvbf,tv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
11921 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1))) {
11927 if (NEBI (CPU (h_psr_esr), 0)) {
11935 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11939 abuf->written = written;
11944 /* tnv: tnv$pack $ICCi_2,$GRi,$GRj */
11947 SEM_FN_NAME (frvbf,tnv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
11955 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1)))) {
11961 if (NEBI (CPU (h_psr_esr), 0)) {
11969 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11973 abuf->written = written;
11978 /* ftra: ftra$pack $GRi,$GRj */
11981 SEM_FN_NAME (frvbf,ftra) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
11994 if (NEBI (CPU (h_psr_esr), 0)) {
12002 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12005 abuf->written = written;
12010 /* ftno: ftno$pack */
12013 SEM_FN_NAME (frvbf,ftno) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
12021 ((void) 0); /*nop*/
12027 /* ftne: ftne$pack $FCCi_2,$GRi,$GRj */
12030 SEM_FN_NAME (frvbf,ftne) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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))))) {
12044 if (NEBI (CPU (h_psr_esr), 0)) {
12052 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12056 abuf->written = written;
12061 /* fteq: fteq$pack $FCCi_2,$GRi,$GRj */
12064 SEM_FN_NAME (frvbf,fteq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
12072 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3))) {
12078 if (NEBI (CPU (h_psr_esr), 0)) {
12086 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12090 abuf->written = written;
12095 /* ftlg: ftlg$pack $FCCi_2,$GRi,$GRj */
12098 SEM_FN_NAME (frvbf,ftlg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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)))) {
12112 if (NEBI (CPU (h_psr_esr), 0)) {
12120 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12124 abuf->written = written;
12129 /* ftue: ftue$pack $FCCi_2,$GRi,$GRj */
12132 SEM_FN_NAME (frvbf,ftue) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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)))) {
12146 if (NEBI (CPU (h_psr_esr), 0)) {
12154 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12158 abuf->written = written;
12163 /* ftul: ftul$pack $FCCi_2,$GRi,$GRj */
12166 SEM_FN_NAME (frvbf,ftul) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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)))) {
12180 if (NEBI (CPU (h_psr_esr), 0)) {
12188 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12192 abuf->written = written;
12197 /* ftge: ftge$pack $FCCi_2,$GRi,$GRj */
12200 SEM_FN_NAME (frvbf,ftge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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)))) {
12214 if (NEBI (CPU (h_psr_esr), 0)) {
12222 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12226 abuf->written = written;
12231 /* ftlt: ftlt$pack $FCCi_2,$GRi,$GRj */
12234 SEM_FN_NAME (frvbf,ftlt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
12242 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2))) {
12248 if (NEBI (CPU (h_psr_esr), 0)) {
12256 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12260 abuf->written = written;
12265 /* ftuge: ftuge$pack $FCCi_2,$GRi,$GRj */
12268 SEM_FN_NAME (frvbf,ftuge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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))))) {
12282 if (NEBI (CPU (h_psr_esr), 0)) {
12290 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12294 abuf->written = written;
12299 /* ftug: ftug$pack $FCCi_2,$GRi,$GRj */
12302 SEM_FN_NAME (frvbf,ftug) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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)))) {
12316 if (NEBI (CPU (h_psr_esr), 0)) {
12324 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12328 abuf->written = written;
12333 /* ftle: ftle$pack $FCCi_2,$GRi,$GRj */
12336 SEM_FN_NAME (frvbf,ftle) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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)))) {
12350 if (NEBI (CPU (h_psr_esr), 0)) {
12358 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12362 abuf->written = written;
12367 /* ftgt: ftgt$pack $FCCi_2,$GRi,$GRj */
12370 SEM_FN_NAME (frvbf,ftgt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
12378 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1))) {
12384 if (NEBI (CPU (h_psr_esr), 0)) {
12392 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12396 abuf->written = written;
12401 /* ftule: ftule$pack $FCCi_2,$GRi,$GRj */
12404 SEM_FN_NAME (frvbf,ftule) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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))))) {
12418 if (NEBI (CPU (h_psr_esr), 0)) {
12426 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12430 abuf->written = written;
12435 /* ftu: ftu$pack $FCCi_2,$GRi,$GRj */
12438 SEM_FN_NAME (frvbf,ftu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
12446 if (TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1))) {
12452 if (NEBI (CPU (h_psr_esr), 0)) {
12460 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12464 abuf->written = written;
12469 /* fto: fto$pack $FCCi_2,$GRi,$GRj */
12472 SEM_FN_NAME (frvbf,fto) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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))))) {
12486 if (NEBI (CPU (h_psr_esr), 0)) {
12494 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12498 abuf->written = written;
12503 /* tira: tira$pack $GRi,$s12 */
12506 SEM_FN_NAME (frvbf,tira) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
12519 if (NEBI (CPU (h_psr_esr), 0)) {
12527 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12530 abuf->written = written;
12535 /* tino: tino$pack */
12538 SEM_FN_NAME (frvbf,tino) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
12546 ((void) 0); /*nop*/
12552 /* tieq: tieq$pack $ICCi_2,$GRi,$s12 */
12555 SEM_FN_NAME (frvbf,tieq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
12563 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2))) {
12569 if (NEBI (CPU (h_psr_esr), 0)) {
12577 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12581 abuf->written = written;
12586 /* tine: tine$pack $ICCi_2,$GRi,$s12 */
12589 SEM_FN_NAME (frvbf,tine) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
12597 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)))) {
12603 if (NEBI (CPU (h_psr_esr), 0)) {
12611 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12615 abuf->written = written;
12620 /* tile: tile$pack $ICCi_2,$GRi,$s12 */
12623 SEM_FN_NAME (frvbf,tile) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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))))) {
12637 if (NEBI (CPU (h_psr_esr), 0)) {
12645 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12649 abuf->written = written;
12654 /* tigt: tigt$pack $ICCi_2,$GRi,$s12 */
12657 SEM_FN_NAME (frvbf,tigt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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)))))) {
12671 if (NEBI (CPU (h_psr_esr), 0)) {
12679 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12683 abuf->written = written;
12688 /* tilt: tilt$pack $ICCi_2,$GRi,$s12 */
12691 SEM_FN_NAME (frvbf,tilt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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)))) {
12705 if (NEBI (CPU (h_psr_esr), 0)) {
12713 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12717 abuf->written = written;
12722 /* tige: tige$pack $ICCi_2,$GRi,$s12 */
12725 SEM_FN_NAME (frvbf,tige) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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))))) {
12739 if (NEBI (CPU (h_psr_esr), 0)) {
12747 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12751 abuf->written = written;
12756 /* tils: tils$pack $ICCi_2,$GRi,$s12 */
12759 SEM_FN_NAME (frvbf,tils) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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)))) {
12773 if (NEBI (CPU (h_psr_esr), 0)) {
12781 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12785 abuf->written = written;
12790 /* tihi: tihi$pack $ICCi_2,$GRi,$s12 */
12793 SEM_FN_NAME (frvbf,tihi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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))))) {
12807 if (NEBI (CPU (h_psr_esr), 0)) {
12815 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12819 abuf->written = written;
12824 /* tic: tic$pack $ICCi_2,$GRi,$s12 */
12827 SEM_FN_NAME (frvbf,tic) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
12835 if (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1))) {
12841 if (NEBI (CPU (h_psr_esr), 0)) {
12849 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12853 abuf->written = written;
12858 /* tinc: tinc$pack $ICCi_2,$GRi,$s12 */
12861 SEM_FN_NAME (frvbf,tinc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
12869 if (NOTBI (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)))) {
12875 if (NEBI (CPU (h_psr_esr), 0)) {
12883 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12887 abuf->written = written;
12892 /* tin: tin$pack $ICCi_2,$GRi,$s12 */
12895 SEM_FN_NAME (frvbf,tin) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
12903 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3))) {
12909 if (NEBI (CPU (h_psr_esr), 0)) {
12917 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12921 abuf->written = written;
12926 /* tip: tip$pack $ICCi_2,$GRi,$s12 */
12929 SEM_FN_NAME (frvbf,tip) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
12937 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3)))) {
12943 if (NEBI (CPU (h_psr_esr), 0)) {
12951 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12955 abuf->written = written;
12960 /* tiv: tiv$pack $ICCi_2,$GRi,$s12 */
12963 SEM_FN_NAME (frvbf,tiv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
12971 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1))) {
12977 if (NEBI (CPU (h_psr_esr), 0)) {
12985 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12989 abuf->written = written;
12994 /* tinv: tinv$pack $ICCi_2,$GRi,$s12 */
12997 SEM_FN_NAME (frvbf,tinv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
13005 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1)))) {
13011 if (NEBI (CPU (h_psr_esr), 0)) {
13019 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13023 abuf->written = written;
13028 /* ftira: ftira$pack $GRi,$s12 */
13031 SEM_FN_NAME (frvbf,ftira) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
13044 if (NEBI (CPU (h_psr_esr), 0)) {
13052 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13055 abuf->written = written;
13060 /* ftino: ftino$pack */
13063 SEM_FN_NAME (frvbf,ftino) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
13071 ((void) 0); /*nop*/
13077 /* ftine: ftine$pack $FCCi_2,$GRi,$s12 */
13080 SEM_FN_NAME (frvbf,ftine) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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))))) {
13094 if (NEBI (CPU (h_psr_esr), 0)) {
13102 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13106 abuf->written = written;
13111 /* ftieq: ftieq$pack $FCCi_2,$GRi,$s12 */
13114 SEM_FN_NAME (frvbf,ftieq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
13122 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3))) {
13128 if (NEBI (CPU (h_psr_esr), 0)) {
13136 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13140 abuf->written = written;
13145 /* ftilg: ftilg$pack $FCCi_2,$GRi,$s12 */
13148 SEM_FN_NAME (frvbf,ftilg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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)))) {
13162 if (NEBI (CPU (h_psr_esr), 0)) {
13170 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13174 abuf->written = written;
13179 /* ftiue: ftiue$pack $FCCi_2,$GRi,$s12 */
13182 SEM_FN_NAME (frvbf,ftiue) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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)))) {
13196 if (NEBI (CPU (h_psr_esr), 0)) {
13204 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13208 abuf->written = written;
13213 /* ftiul: ftiul$pack $FCCi_2,$GRi,$s12 */
13216 SEM_FN_NAME (frvbf,ftiul) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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)))) {
13230 if (NEBI (CPU (h_psr_esr), 0)) {
13238 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13242 abuf->written = written;
13247 /* ftige: ftige$pack $FCCi_2,$GRi,$s12 */
13250 SEM_FN_NAME (frvbf,ftige) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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)))) {
13264 if (NEBI (CPU (h_psr_esr), 0)) {
13272 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13276 abuf->written = written;
13281 /* ftilt: ftilt$pack $FCCi_2,$GRi,$s12 */
13284 SEM_FN_NAME (frvbf,ftilt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
13292 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2))) {
13298 if (NEBI (CPU (h_psr_esr), 0)) {
13306 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13310 abuf->written = written;
13315 /* ftiuge: ftiuge$pack $FCCi_2,$GRi,$s12 */
13318 SEM_FN_NAME (frvbf,ftiuge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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))))) {
13332 if (NEBI (CPU (h_psr_esr), 0)) {
13340 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13344 abuf->written = written;
13349 /* ftiug: ftiug$pack $FCCi_2,$GRi,$s12 */
13352 SEM_FN_NAME (frvbf,ftiug) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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)))) {
13366 if (NEBI (CPU (h_psr_esr), 0)) {
13374 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13378 abuf->written = written;
13383 /* ftile: ftile$pack $FCCi_2,$GRi,$s12 */
13386 SEM_FN_NAME (frvbf,ftile) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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)))) {
13400 if (NEBI (CPU (h_psr_esr), 0)) {
13408 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13412 abuf->written = written;
13417 /* ftigt: ftigt$pack $FCCi_2,$GRi,$s12 */
13420 SEM_FN_NAME (frvbf,ftigt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
13428 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1))) {
13434 if (NEBI (CPU (h_psr_esr), 0)) {
13442 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13446 abuf->written = written;
13451 /* ftiule: ftiule$pack $FCCi_2,$GRi,$s12 */
13454 SEM_FN_NAME (frvbf,ftiule) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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))))) {
13468 if (NEBI (CPU (h_psr_esr), 0)) {
13476 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13480 abuf->written = written;
13485 /* ftiu: ftiu$pack $FCCi_2,$GRi,$s12 */
13488 SEM_FN_NAME (frvbf,ftiu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
13496 if (TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1))) {
13502 if (NEBI (CPU (h_psr_esr), 0)) {
13510 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13514 abuf->written = written;
13519 /* ftio: ftio$pack $FCCi_2,$GRi,$s12 */
13522 SEM_FN_NAME (frvbf,ftio) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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))))) {
13536 if (NEBI (CPU (h_psr_esr), 0)) {
13544 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13548 abuf->written = written;
13553 /* break: break$pack */
13556 SEM_FN_NAME (frvbf,break) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
13571 frv_break (current_cpu);
13578 /* mtrap: mtrap$pack */
13581 SEM_FN_NAME (frvbf,mtrap) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
13589 frv_mtrap (current_cpu);
13595 /* andcr: andcr$pack $CRi,$CRj,$CRk */
13598 SEM_FN_NAME (frvbf,andcr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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);
13616 /* orcr: orcr$pack $CRi,$CRj,$CRk */
13619 SEM_FN_NAME (frvbf,orcr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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);
13637 /* xorcr: xorcr$pack $CRi,$CRj,$CRk */
13640 SEM_FN_NAME (frvbf,xorcr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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);
13658 /* nandcr: nandcr$pack $CRi,$CRj,$CRk */
13661 SEM_FN_NAME (frvbf,nandcr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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);
13679 /* norcr: norcr$pack $CRi,$CRj,$CRk */
13682 SEM_FN_NAME (frvbf,norcr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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);
13700 /* andncr: andncr$pack $CRi,$CRj,$CRk */
13703 SEM_FN_NAME (frvbf,andncr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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);
13721 /* orncr: orncr$pack $CRi,$CRj,$CRk */
13724 SEM_FN_NAME (frvbf,orncr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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);
13742 /* nandncr: nandncr$pack $CRi,$CRj,$CRk */
13745 SEM_FN_NAME (frvbf,nandncr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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);
13763 /* norncr: norncr$pack $CRi,$CRj,$CRk */
13766 SEM_FN_NAME (frvbf,norncr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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);
13784 /* notcr: notcr$pack $CRj,$CRk */
13787 SEM_FN_NAME (frvbf,notcr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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);
13805 /* ckra: ckra$pack $CRj_int */
13808 SEM_FN_NAME (frvbf,ckra) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
13818 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
13819 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13826 /* ckno: ckno$pack $CRj_int */
13829 SEM_FN_NAME (frvbf,ckno) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
13839 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
13840 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13847 /* ckeq: ckeq$pack $ICCi_3,$CRj_int */
13850 SEM_FN_NAME (frvbf,ckeq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
13858 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 4), 2))) {
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);
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);
13874 abuf->written = written;
13879 /* ckne: ckne$pack $ICCi_3,$CRj_int */
13882 SEM_FN_NAME (frvbf,ckne) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
13890 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 4), 2)))) {
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);
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);
13906 abuf->written = written;
13911 /* ckle: ckle$pack $ICCi_3,$CRj_int */
13914 SEM_FN_NAME (frvbf,ckle) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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))))) {
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);
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);
13938 abuf->written = written;
13943 /* ckgt: ckgt$pack $ICCi_3,$CRj_int */
13946 SEM_FN_NAME (frvbf,ckgt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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)))))) {
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);
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);
13970 abuf->written = written;
13975 /* cklt: cklt$pack $ICCi_3,$CRj_int */
13978 SEM_FN_NAME (frvbf,cklt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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)))) {
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);
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);
14002 abuf->written = written;
14007 /* ckge: ckge$pack $ICCi_3,$CRj_int */
14010 SEM_FN_NAME (frvbf,ckge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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))))) {
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);
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);
14034 abuf->written = written;
14039 /* ckls: ckls$pack $ICCi_3,$CRj_int */
14042 SEM_FN_NAME (frvbf,ckls) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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)))) {
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);
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);
14066 abuf->written = written;
14071 /* ckhi: ckhi$pack $ICCi_3,$CRj_int */
14074 SEM_FN_NAME (frvbf,ckhi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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))))) {
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);
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);
14098 abuf->written = written;
14103 /* ckc: ckc$pack $ICCi_3,$CRj_int */
14106 SEM_FN_NAME (frvbf,ckc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
14114 if (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 1))) {
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);
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);
14130 abuf->written = written;
14135 /* cknc: cknc$pack $ICCi_3,$CRj_int */
14138 SEM_FN_NAME (frvbf,cknc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
14146 if (NOTBI (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 1)))) {
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);
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);
14162 abuf->written = written;
14167 /* ckn: ckn$pack $ICCi_3,$CRj_int */
14170 SEM_FN_NAME (frvbf,ckn) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
14178 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 8), 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);
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);
14194 abuf->written = written;
14199 /* ckp: ckp$pack $ICCi_3,$CRj_int */
14202 SEM_FN_NAME (frvbf,ckp) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
14210 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 8), 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);
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);
14226 abuf->written = written;
14231 /* ckv: ckv$pack $ICCi_3,$CRj_int */
14234 SEM_FN_NAME (frvbf,ckv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
14242 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 2), 1))) {
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);
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);
14258 abuf->written = written;
14263 /* cknv: cknv$pack $ICCi_3,$CRj_int */
14266 SEM_FN_NAME (frvbf,cknv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
14274 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 2), 1)))) {
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);
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);
14290 abuf->written = written;
14295 /* fckra: fckra$pack $CRj_float */
14298 SEM_FN_NAME (frvbf,fckra) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
14308 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14309 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14316 /* fckno: fckno$pack $CRj_float */
14319 SEM_FN_NAME (frvbf,fckno) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
14329 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14330 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14337 /* fckne: fckne$pack $FCCi_3,$CRj_float */
14340 SEM_FN_NAME (frvbf,fckne) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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))))) {
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);
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);
14364 abuf->written = written;
14369 /* fckeq: fckeq$pack $FCCi_3,$CRj_float */
14372 SEM_FN_NAME (frvbf,fckeq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
14380 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 8), 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);
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);
14396 abuf->written = written;
14401 /* fcklg: fcklg$pack $FCCi_3,$CRj_float */
14404 SEM_FN_NAME (frvbf,fcklg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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)))) {
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);
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);
14428 abuf->written = written;
14433 /* fckue: fckue$pack $FCCi_3,$CRj_float */
14436 SEM_FN_NAME (frvbf,fckue) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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)))) {
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);
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);
14460 abuf->written = written;
14465 /* fckul: fckul$pack $FCCi_3,$CRj_float */
14468 SEM_FN_NAME (frvbf,fckul) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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)))) {
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);
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);
14492 abuf->written = written;
14497 /* fckge: fckge$pack $FCCi_3,$CRj_float */
14500 SEM_FN_NAME (frvbf,fckge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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)))) {
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);
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);
14524 abuf->written = written;
14529 /* fcklt: fcklt$pack $FCCi_3,$CRj_float */
14532 SEM_FN_NAME (frvbf,fcklt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
14540 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 4), 2))) {
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);
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);
14556 abuf->written = written;
14561 /* fckuge: fckuge$pack $FCCi_3,$CRj_float */
14564 SEM_FN_NAME (frvbf,fckuge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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))))) {
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);
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);
14588 abuf->written = written;
14593 /* fckug: fckug$pack $FCCi_3,$CRj_float */
14596 SEM_FN_NAME (frvbf,fckug) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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)))) {
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);
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);
14620 abuf->written = written;
14625 /* fckle: fckle$pack $FCCi_3,$CRj_float */
14628 SEM_FN_NAME (frvbf,fckle) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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)))) {
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);
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);
14652 abuf->written = written;
14657 /* fckgt: fckgt$pack $FCCi_3,$CRj_float */
14660 SEM_FN_NAME (frvbf,fckgt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
14668 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 2), 1))) {
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);
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);
14684 abuf->written = written;
14689 /* fckule: fckule$pack $FCCi_3,$CRj_float */
14692 SEM_FN_NAME (frvbf,fckule) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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))))) {
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);
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);
14716 abuf->written = written;
14721 /* fcku: fcku$pack $FCCi_3,$CRj_float */
14724 SEM_FN_NAME (frvbf,fcku) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
14732 if (TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 1))) {
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);
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);
14748 abuf->written = written;
14753 /* fcko: fcko$pack $FCCi_3,$CRj_float */
14756 SEM_FN_NAME (frvbf,fcko) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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))))) {
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);
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);
14780 abuf->written = written;
14785 /* cckra: cckra$pack $CRj_int,$CCi,$cond */
14788 SEM_FN_NAME (frvbf,cckra) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
14796 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
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);
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);
14812 abuf->written = written;
14817 /* cckno: cckno$pack $CRj_int,$CCi,$cond */
14820 SEM_FN_NAME (frvbf,cckno) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
14828 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 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);
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);
14844 abuf->written = written;
14849 /* cckeq: cckeq$pack $ICCi_3,$CRj_int,$CCi,$cond */
14852 SEM_FN_NAME (frvbf,cckeq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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))) {
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);
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);
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);
14885 abuf->written = written;
14890 /* cckne: cckne$pack $ICCi_3,$CRj_int,$CCi,$cond */
14893 SEM_FN_NAME (frvbf,cckne) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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)))) {
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);
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);
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);
14926 abuf->written = written;
14931 /* cckle: cckle$pack $ICCi_3,$CRj_int,$CCi,$cond */
14934 SEM_FN_NAME (frvbf,cckle) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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))))) {
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);
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);
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);
14967 abuf->written = written;
14972 /* cckgt: cckgt$pack $ICCi_3,$CRj_int,$CCi,$cond */
14975 SEM_FN_NAME (frvbf,cckgt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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)))))) {
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);
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);
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);
15008 abuf->written = written;
15013 /* ccklt: ccklt$pack $ICCi_3,$CRj_int,$CCi,$cond */
15016 SEM_FN_NAME (frvbf,ccklt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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)))) {
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);
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);
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);
15049 abuf->written = written;
15054 /* cckge: cckge$pack $ICCi_3,$CRj_int,$CCi,$cond */
15057 SEM_FN_NAME (frvbf,cckge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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))))) {
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);
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);
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);
15090 abuf->written = written;
15095 /* cckls: cckls$pack $ICCi_3,$CRj_int,$CCi,$cond */
15098 SEM_FN_NAME (frvbf,cckls) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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)))) {
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);
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);
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);
15131 abuf->written = written;
15136 /* cckhi: cckhi$pack $ICCi_3,$CRj_int,$CCi,$cond */
15139 SEM_FN_NAME (frvbf,cckhi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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))))) {
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);
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);
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);
15172 abuf->written = written;
15177 /* cckc: cckc$pack $ICCi_3,$CRj_int,$CCi,$cond */
15180 SEM_FN_NAME (frvbf,cckc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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))) {
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);
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);
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);
15213 abuf->written = written;
15218 /* ccknc: ccknc$pack $ICCi_3,$CRj_int,$CCi,$cond */
15221 SEM_FN_NAME (frvbf,ccknc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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)))) {
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);
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);
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);
15254 abuf->written = written;
15259 /* cckn: cckn$pack $ICCi_3,$CRj_int,$CCi,$cond */
15262 SEM_FN_NAME (frvbf,cckn) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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))) {
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);
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);
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);
15295 abuf->written = written;
15300 /* cckp: cckp$pack $ICCi_3,$CRj_int,$CCi,$cond */
15303 SEM_FN_NAME (frvbf,cckp) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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)))) {
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);
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);
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);
15336 abuf->written = written;
15341 /* cckv: cckv$pack $ICCi_3,$CRj_int,$CCi,$cond */
15344 SEM_FN_NAME (frvbf,cckv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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))) {
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);
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);
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);
15377 abuf->written = written;
15382 /* ccknv: ccknv$pack $ICCi_3,$CRj_int,$CCi,$cond */
15385 SEM_FN_NAME (frvbf,ccknv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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)))) {
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);
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);
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);
15418 abuf->written = written;
15423 /* cfckra: cfckra$pack $CRj_float,$CCi,$cond */
15426 SEM_FN_NAME (frvbf,cfckra) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
15434 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
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);
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);
15450 abuf->written = written;
15455 /* cfckno: cfckno$pack $CRj_float,$CCi,$cond */
15458 SEM_FN_NAME (frvbf,cfckno) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
15466 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 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);
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);
15482 abuf->written = written;
15487 /* cfckne: cfckne$pack $FCCi_3,$CRj_float,$CCi,$cond */
15490 SEM_FN_NAME (frvbf,cfckne) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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))))) {
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);
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);
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);
15523 abuf->written = written;
15528 /* cfckeq: cfckeq$pack $FCCi_3,$CRj_float,$CCi,$cond */
15531 SEM_FN_NAME (frvbf,cfckeq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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))) {
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);
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);
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);
15564 abuf->written = written;
15569 /* cfcklg: cfcklg$pack $FCCi_3,$CRj_float,$CCi,$cond */
15572 SEM_FN_NAME (frvbf,cfcklg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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)))) {
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);
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);
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);
15605 abuf->written = written;
15610 /* cfckue: cfckue$pack $FCCi_3,$CRj_float,$CCi,$cond */
15613 SEM_FN_NAME (frvbf,cfckue) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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)))) {
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);
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);
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);
15646 abuf->written = written;
15651 /* cfckul: cfckul$pack $FCCi_3,$CRj_float,$CCi,$cond */
15654 SEM_FN_NAME (frvbf,cfckul) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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)))) {
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);
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);
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);
15687 abuf->written = written;
15692 /* cfckge: cfckge$pack $FCCi_3,$CRj_float,$CCi,$cond */
15695 SEM_FN_NAME (frvbf,cfckge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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)))) {
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);
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);
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);
15728 abuf->written = written;
15733 /* cfcklt: cfcklt$pack $FCCi_3,$CRj_float,$CCi,$cond */
15736 SEM_FN_NAME (frvbf,cfcklt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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))) {
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);
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);
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);
15769 abuf->written = written;
15774 /* cfckuge: cfckuge$pack $FCCi_3,$CRj_float,$CCi,$cond */
15777 SEM_FN_NAME (frvbf,cfckuge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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))))) {
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);
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);
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);
15810 abuf->written = written;
15815 /* cfckug: cfckug$pack $FCCi_3,$CRj_float,$CCi,$cond */
15818 SEM_FN_NAME (frvbf,cfckug) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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)))) {
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);
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);
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);
15851 abuf->written = written;
15856 /* cfckle: cfckle$pack $FCCi_3,$CRj_float,$CCi,$cond */
15859 SEM_FN_NAME (frvbf,cfckle) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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)))) {
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);
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);
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);
15892 abuf->written = written;
15897 /* cfckgt: cfckgt$pack $FCCi_3,$CRj_float,$CCi,$cond */
15900 SEM_FN_NAME (frvbf,cfckgt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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))) {
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);
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);
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);
15933 abuf->written = written;
15938 /* cfckule: cfckule$pack $FCCi_3,$CRj_float,$CCi,$cond */
15941 SEM_FN_NAME (frvbf,cfckule) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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))))) {
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);
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);
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);
15974 abuf->written = written;
15979 /* cfcku: cfcku$pack $FCCi_3,$CRj_float,$CCi,$cond */
15982 SEM_FN_NAME (frvbf,cfcku) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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))) {
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);
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);
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);
16015 abuf->written = written;
16020 /* cfcko: cfcko$pack $FCCi_3,$CRj_float,$CCi,$cond */
16023 SEM_FN_NAME (frvbf,cfcko) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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))))) {
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);
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);
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);
16056 abuf->written = written;
16061 /* cjmpl: cjmpl$pack @($GRi,$GRj),$CCi,$cond */
16064 SEM_FN_NAME (frvbf,cjmpl) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
16072 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
16074 if (EQSI (FLD (f_LI), 1)) {
16075 frvbf_set_write_next_vliw_addr_to_LR (current_cpu, 1);
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);
16083 frvbf_model_branch (current_cpu, pc, 2);
16087 abuf->written = written;
16092 /* ccalll: ccalll$pack @($GRi,$GRj),$CCi,$cond */
16095 SEM_FN_NAME (frvbf,ccalll) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
16103 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
16105 if (EQSI (FLD (f_LI), 1)) {
16106 frvbf_set_write_next_vliw_addr_to_LR (current_cpu, 1);
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);
16114 frvbf_model_branch (current_cpu, pc, 2);
16118 abuf->written = written;
16123 /* ici: ici$pack @($GRi,$GRj) */
16126 SEM_FN_NAME (frvbf,ici) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
16134 frvbf_insn_cache_invalidate (current_cpu, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), 0);
16140 /* dci: dci$pack @($GRi,$GRj) */
16143 SEM_FN_NAME (frvbf,dci) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
16151 frvbf_data_cache_invalidate (current_cpu, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), 0);
16157 /* icei: icei$pack @($GRi,$GRj),$ae */
16160 SEM_FN_NAME (frvbf,icei) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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);
16171 frvbf_insn_cache_invalidate (current_cpu, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), FLD (f_ae));
16178 /* dcei: dcei$pack @($GRi,$GRj),$ae */
16181 SEM_FN_NAME (frvbf,dcei) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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);
16192 frvbf_data_cache_invalidate (current_cpu, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), FLD (f_ae));
16199 /* dcf: dcf$pack @($GRi,$GRj) */
16202 SEM_FN_NAME (frvbf,dcf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
16210 frvbf_data_cache_flush (current_cpu, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), 0);
16216 /* dcef: dcef$pack @($GRi,$GRj),$ae */
16219 SEM_FN_NAME (frvbf,dcef) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
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);
16230 frvbf_data_cache_flush (current_cpu, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), FLD (f_ae));
16237 /* witlb: witlb$pack $GRk,@($GRi,$GRj) */
16240 SEM_FN_NAME (frvbf,witlb) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
16248 ((void) 0); /*nop*/
16254 /* wdtlb: wdtlb$pack $GRk,@($GRi,$GRj) */
16257 SEM_FN_NAME (frvbf,wdtlb) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
16265 ((void) 0); /*nop*/
16271 /* itlbi: itlbi$pack @($GRi,$GRj) */
16274 SEM_FN_NAME (frvbf,itlbi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
16282 ((void) 0); /*nop*/
16288 /* dtlbi: dtlbi$pack @($GRi,$GRj) */
16291 SEM_FN_NAME (frvbf,dtlbi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
16299 ((void) 0); /*nop*/
16305 /* icpl: icpl$pack $GRi,$GRj,$lock */
16308 SEM_FN_NAME (frvbf,icpl) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
16316 frvbf_insn_cache_preload (current_cpu, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), FLD (f_lock));
16322 /* dcpl: dcpl$pack $GRi,$GRj,$lock */
16325 SEM_FN_NAME (frvbf,dcpl) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
16333 frvbf_data_cache_preload (current_cpu, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), FLD (f_lock));
16339 /* icul: icul$pack $GRi */
16342 SEM_FN_NAME (frvbf,icul) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
16350 frvbf_insn_cache_unlock (current_cpu, GET_H_GR (FLD (f_GRi)));
16356 /* dcul: dcul$pack $GRi */
16359 SEM_FN_NAME (frvbf,dcul) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
16367 frvbf_data_cache_unlock (current_cpu, GET_H_GR (FLD (f_GRi)));
16373 /* bar: bar$pack */
16376 SEM_FN_NAME (frvbf,bar) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
16384 ((void) 0); /*nop*/
16390 /* membar: membar$pack */
16393 SEM_FN_NAME (frvbf,membar) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
16401 ((void) 0); /*nop*/
16407 /* cop1: cop1$pack $s6_1,$CPRi,$CPRj,$CPRk */
16410 SEM_FN_NAME (frvbf,cop1) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
16418 ((void) 0); /*nop*/
16424 /* cop2: cop2$pack $s6_1,$CPRi,$CPRj,$CPRk */
16427 SEM_FN_NAME (frvbf,cop2) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
16435 ((void) 0); /*nop*/
16441 /* clrgr: clrgr$pack $GRk */
16444 SEM_FN_NAME (frvbf,clrgr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16446 #define FLD(f) abuf->fields.sfmt_swapi.f
16447 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16448 int UNUSED written = 0;
16449 IADDR UNUSED pc = abuf->addr;
16450 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16453 frv_ref_SI (GET_H_GR (FLD (f_GRk)));
16454 frvbf_clear_ne_flags (current_cpu, FLD (f_GRk), 0);
16461 /* clrfr: clrfr$pack $FRk */
16464 SEM_FN_NAME (frvbf,clrfr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16466 #define FLD(f) abuf->fields.sfmt_cfmadds.f
16467 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16468 int UNUSED written = 0;
16469 IADDR UNUSED pc = abuf->addr;
16470 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16473 frv_ref_SI (GET_H_FR (FLD (f_FRk)));
16474 frvbf_clear_ne_flags (current_cpu, FLD (f_FRk), 1);
16481 /* clrga: clrga$pack */
16484 SEM_FN_NAME (frvbf,clrga) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16486 #define FLD(f) abuf->fields.fmt_empty.f
16487 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16488 int UNUSED written = 0;
16489 IADDR UNUSED pc = abuf->addr;
16490 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16492 frvbf_clear_ne_flags (current_cpu, -1, 0);
16498 /* clrfa: clrfa$pack */
16501 SEM_FN_NAME (frvbf,clrfa) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16503 #define FLD(f) abuf->fields.fmt_empty.f
16504 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16505 int UNUSED written = 0;
16506 IADDR UNUSED pc = abuf->addr;
16507 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16509 frvbf_clear_ne_flags (current_cpu, -1, 1);
16515 /* commitgr: commitgr$pack $GRk */
16518 SEM_FN_NAME (frvbf,commitgr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16520 #define FLD(f) abuf->fields.sfmt_setlos.f
16521 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16522 int UNUSED written = 0;
16523 IADDR UNUSED pc = abuf->addr;
16524 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16526 frvbf_commit (current_cpu, FLD (f_GRk), 0);
16532 /* commitfr: commitfr$pack $FRk */
16535 SEM_FN_NAME (frvbf,commitfr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16537 #define FLD(f) abuf->fields.sfmt_mhsethis.f
16538 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16539 int UNUSED written = 0;
16540 IADDR UNUSED pc = abuf->addr;
16541 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16543 frvbf_commit (current_cpu, FLD (f_FRk), 1);
16549 /* commitga: commitga$pack */
16552 SEM_FN_NAME (frvbf,commitga) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
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);
16560 frvbf_commit (current_cpu, -1, 0);
16566 /* commitfa: commitfa$pack */
16569 SEM_FN_NAME (frvbf,commitfa) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16571 #define FLD(f) abuf->fields.fmt_empty.f
16572 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16573 int UNUSED written = 0;
16574 IADDR UNUSED pc = abuf->addr;
16575 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16577 frvbf_commit (current_cpu, -1, 1);
16583 /* fitos: fitos$pack $FRintj,$FRk */
16586 SEM_FN_NAME (frvbf,fitos) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16588 #define FLD(f) abuf->fields.sfmt_fditos.f
16589 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16590 int UNUSED written = 0;
16591 IADDR UNUSED pc = abuf->addr;
16592 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16595 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->floatsisf) (CGEN_CPU_FPU (current_cpu), GET_H_FR_INT (FLD (f_FRj)));
16596 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
16597 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
16604 /* fstoi: fstoi$pack $FRj,$FRintk */
16607 SEM_FN_NAME (frvbf,fstoi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16609 #define FLD(f) abuf->fields.sfmt_fdstoi.f
16610 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16611 int UNUSED written = 0;
16612 IADDR UNUSED pc = abuf->addr;
16613 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16616 SI opval = (* CGEN_CPU_FPU (current_cpu)->ops->fixsfsi) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
16617 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
16618 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
16625 /* fitod: fitod$pack $FRintj,$FRdoublek */
16628 SEM_FN_NAME (frvbf,fitod) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16630 #define FLD(f) abuf->fields.sfmt_fitod.f
16631 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16632 int UNUSED written = 0;
16633 IADDR UNUSED pc = abuf->addr;
16634 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16637 DF opval = (* CGEN_CPU_FPU (current_cpu)->ops->floatsidf) (CGEN_CPU_FPU (current_cpu), GET_H_FR_INT (FLD (f_FRj)));
16638 sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
16639 TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
16646 /* fdtoi: fdtoi$pack $FRdoublej,$FRintk */
16649 SEM_FN_NAME (frvbf,fdtoi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16651 #define FLD(f) abuf->fields.sfmt_fdtoi.f
16652 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16653 int UNUSED written = 0;
16654 IADDR UNUSED pc = abuf->addr;
16655 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16658 SI opval = (* CGEN_CPU_FPU (current_cpu)->ops->fixdfsi) (CGEN_CPU_FPU (current_cpu), GET_H_FR_DOUBLE (FLD (f_FRj)));
16659 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
16660 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
16667 /* fditos: fditos$pack $FRintj,$FRk */
16670 SEM_FN_NAME (frvbf,fditos) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16672 #define FLD(f) abuf->fields.sfmt_fditos.f
16673 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16674 int UNUSED written = 0;
16675 IADDR UNUSED pc = abuf->addr;
16676 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16680 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->floatsisf) (CGEN_CPU_FPU (current_cpu), GET_H_FR_INT (FLD (f_FRj)));
16681 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
16682 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
16685 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->floatsisf) (CGEN_CPU_FPU (current_cpu), GET_H_FR_INT (((FLD (f_FRj)) + (1))));
16686 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
16687 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
16695 /* fdstoi: fdstoi$pack $FRj,$FRintk */
16698 SEM_FN_NAME (frvbf,fdstoi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16700 #define FLD(f) abuf->fields.sfmt_fdstoi.f
16701 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16702 int UNUSED written = 0;
16703 IADDR UNUSED pc = abuf->addr;
16704 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16708 SI opval = (* CGEN_CPU_FPU (current_cpu)->ops->fixsfsi) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
16709 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
16710 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
16713 USI opval = (* CGEN_CPU_FPU (current_cpu)->ops->fixsfsi) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRj)) + (1))));
16714 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (1)), opval);
16715 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
16723 /* nfditos: nfditos$pack $FRintj,$FRk */
16726 SEM_FN_NAME (frvbf,nfditos) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16728 #define FLD(f) abuf->fields.sfmt_fditos.f
16729 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16730 int UNUSED written = 0;
16731 IADDR UNUSED pc = abuf->addr;
16732 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16735 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
16737 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->floatsisf) (CGEN_CPU_FPU (current_cpu), GET_H_FR_INT (FLD (f_FRj)));
16738 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
16739 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
16741 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
16743 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->floatsisf) (CGEN_CPU_FPU (current_cpu), GET_H_FR_INT (((FLD (f_FRj)) + (1))));
16744 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
16745 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
16753 /* nfdstoi: nfdstoi$pack $FRj,$FRintk */
16756 SEM_FN_NAME (frvbf,nfdstoi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16758 #define FLD(f) abuf->fields.sfmt_fdstoi.f
16759 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16760 int UNUSED written = 0;
16761 IADDR UNUSED pc = abuf->addr;
16762 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16765 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
16767 SI opval = (* CGEN_CPU_FPU (current_cpu)->ops->fixsfsi) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
16768 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
16769 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
16771 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
16773 USI opval = (* CGEN_CPU_FPU (current_cpu)->ops->fixsfsi) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRj)) + (1))));
16774 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (1)), opval);
16775 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
16783 /* cfitos: cfitos$pack $FRintj,$FRk,$CCi,$cond */
16786 SEM_FN_NAME (frvbf,cfitos) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16788 #define FLD(f) abuf->fields.sfmt_cfitos.f
16789 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16790 int UNUSED written = 0;
16791 IADDR UNUSED pc = abuf->addr;
16792 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16794 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
16796 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->floatsisf) (CGEN_CPU_FPU (current_cpu), GET_H_FR_INT (FLD (f_FRj)));
16797 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
16798 written |= (1 << 3);
16799 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
16803 abuf->written = written;
16808 /* cfstoi: cfstoi$pack $FRj,$FRintk,$CCi,$cond */
16811 SEM_FN_NAME (frvbf,cfstoi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16813 #define FLD(f) abuf->fields.sfmt_cfstoi.f
16814 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16815 int UNUSED written = 0;
16816 IADDR UNUSED pc = abuf->addr;
16817 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16819 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
16821 SI opval = (* CGEN_CPU_FPU (current_cpu)->ops->fixsfsi) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
16822 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
16823 written |= (1 << 3);
16824 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
16828 abuf->written = written;
16833 /* nfitos: nfitos$pack $FRintj,$FRk */
16836 SEM_FN_NAME (frvbf,nfitos) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16838 #define FLD(f) abuf->fields.sfmt_fditos.f
16839 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16840 int UNUSED written = 0;
16841 IADDR UNUSED pc = abuf->addr;
16842 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16845 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
16847 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->floatsisf) (CGEN_CPU_FPU (current_cpu), GET_H_FR_INT (FLD (f_FRj)));
16848 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
16849 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
16857 /* nfstoi: nfstoi$pack $FRj,$FRintk */
16860 SEM_FN_NAME (frvbf,nfstoi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16862 #define FLD(f) abuf->fields.sfmt_fdstoi.f
16863 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16864 int UNUSED written = 0;
16865 IADDR UNUSED pc = abuf->addr;
16866 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16869 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
16871 SI opval = (* CGEN_CPU_FPU (current_cpu)->ops->fixsfsi) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
16872 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
16873 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
16881 /* fmovs: fmovs$pack $FRj,$FRk */
16884 SEM_FN_NAME (frvbf,fmovs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16886 #define FLD(f) abuf->fields.sfmt_cfmadds.f
16887 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16888 int UNUSED written = 0;
16889 IADDR UNUSED pc = abuf->addr;
16890 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16893 SF opval = GET_H_FR (FLD (f_FRj));
16894 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
16895 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
16902 /* fmovd: fmovd$pack $FRdoublej,$FRdoublek */
16905 SEM_FN_NAME (frvbf,fmovd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16907 #define FLD(f) abuf->fields.sfmt_fmaddd.f
16908 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16909 int UNUSED written = 0;
16910 IADDR UNUSED pc = abuf->addr;
16911 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16914 DF opval = GET_H_FR_DOUBLE (FLD (f_FRj));
16915 sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
16916 TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
16923 /* fdmovs: fdmovs$pack $FRj,$FRk */
16926 SEM_FN_NAME (frvbf,fdmovs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16928 #define FLD(f) abuf->fields.sfmt_fdmadds.f
16929 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16930 int UNUSED written = 0;
16931 IADDR UNUSED pc = abuf->addr;
16932 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16936 SF opval = GET_H_FR (FLD (f_FRj));
16937 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
16938 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
16941 SF opval = GET_H_FR (((FLD (f_FRj)) + (1)));
16942 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
16943 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
16951 /* cfmovs: cfmovs$pack $FRj,$FRk,$CCi,$cond */
16954 SEM_FN_NAME (frvbf,cfmovs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16956 #define FLD(f) abuf->fields.sfmt_cfmadds.f
16957 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16958 int UNUSED written = 0;
16959 IADDR UNUSED pc = abuf->addr;
16960 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16962 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
16964 SF opval = GET_H_FR (FLD (f_FRj));
16965 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
16966 written |= (1 << 3);
16967 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
16971 abuf->written = written;
16976 /* fnegs: fnegs$pack $FRj,$FRk */
16979 SEM_FN_NAME (frvbf,fnegs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16981 #define FLD(f) abuf->fields.sfmt_cfmadds.f
16982 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16983 int UNUSED written = 0;
16984 IADDR UNUSED pc = abuf->addr;
16985 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16988 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->negsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
16989 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
16990 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
16997 /* fnegd: fnegd$pack $FRdoublej,$FRdoublek */
17000 SEM_FN_NAME (frvbf,fnegd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17002 #define FLD(f) abuf->fields.sfmt_fmaddd.f
17003 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17004 int UNUSED written = 0;
17005 IADDR UNUSED pc = abuf->addr;
17006 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17009 DF opval = (* CGEN_CPU_FPU (current_cpu)->ops->negdf) (CGEN_CPU_FPU (current_cpu), GET_H_FR_DOUBLE (FLD (f_FRj)));
17010 sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
17011 TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
17018 /* fdnegs: fdnegs$pack $FRj,$FRk */
17021 SEM_FN_NAME (frvbf,fdnegs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17023 #define FLD(f) abuf->fields.sfmt_fdmadds.f
17024 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17025 int UNUSED written = 0;
17026 IADDR UNUSED pc = abuf->addr;
17027 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17031 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->negsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17032 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17033 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17036 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->negsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRj)) + (1))));
17037 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
17038 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17046 /* cfnegs: cfnegs$pack $FRj,$FRk,$CCi,$cond */
17049 SEM_FN_NAME (frvbf,cfnegs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17051 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17052 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17053 int UNUSED written = 0;
17054 IADDR UNUSED pc = abuf->addr;
17055 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17057 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
17059 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->negsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17060 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17061 written |= (1 << 3);
17062 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17066 abuf->written = written;
17071 /* fabss: fabss$pack $FRj,$FRk */
17074 SEM_FN_NAME (frvbf,fabss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17076 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17077 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17078 int UNUSED written = 0;
17079 IADDR UNUSED pc = abuf->addr;
17080 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17083 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->abssf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17084 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17085 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17092 /* fabsd: fabsd$pack $FRdoublej,$FRdoublek */
17095 SEM_FN_NAME (frvbf,fabsd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17097 #define FLD(f) abuf->fields.sfmt_fmaddd.f
17098 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17099 int UNUSED written = 0;
17100 IADDR UNUSED pc = abuf->addr;
17101 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17104 DF opval = (* CGEN_CPU_FPU (current_cpu)->ops->absdf) (CGEN_CPU_FPU (current_cpu), GET_H_FR_DOUBLE (FLD (f_FRj)));
17105 sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
17106 TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
17113 /* fdabss: fdabss$pack $FRj,$FRk */
17116 SEM_FN_NAME (frvbf,fdabss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17118 #define FLD(f) abuf->fields.sfmt_fdmadds.f
17119 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17120 int UNUSED written = 0;
17121 IADDR UNUSED pc = abuf->addr;
17122 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17126 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->abssf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17127 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17128 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17131 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->abssf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRj)) + (1))));
17132 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
17133 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17141 /* cfabss: cfabss$pack $FRj,$FRk,$CCi,$cond */
17144 SEM_FN_NAME (frvbf,cfabss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17146 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17147 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17148 int UNUSED written = 0;
17149 IADDR UNUSED pc = abuf->addr;
17150 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17152 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
17154 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->abssf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17155 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17156 written |= (1 << 3);
17157 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17161 abuf->written = written;
17166 /* fsqrts: fsqrts$pack $FRj,$FRk */
17169 SEM_FN_NAME (frvbf,fsqrts) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17171 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17172 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17173 int UNUSED written = 0;
17174 IADDR UNUSED pc = abuf->addr;
17175 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17178 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->sqrtsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17179 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17180 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17187 /* fdsqrts: fdsqrts$pack $FRj,$FRk */
17190 SEM_FN_NAME (frvbf,fdsqrts) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17192 #define FLD(f) abuf->fields.sfmt_fdmadds.f
17193 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17194 int UNUSED written = 0;
17195 IADDR UNUSED pc = abuf->addr;
17196 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17200 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->sqrtsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17201 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17202 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17205 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->sqrtsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRj)) + (1))));
17206 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
17207 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17215 /* nfdsqrts: nfdsqrts$pack $FRj,$FRk */
17218 SEM_FN_NAME (frvbf,nfdsqrts) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17220 #define FLD(f) abuf->fields.sfmt_fdmadds.f
17221 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17222 int UNUSED written = 0;
17223 IADDR UNUSED pc = abuf->addr;
17224 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17227 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
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);
17233 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
17235 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->sqrtsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRj)) + (1))));
17236 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
17237 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17245 /* fsqrtd: fsqrtd$pack $FRdoublej,$FRdoublek */
17248 SEM_FN_NAME (frvbf,fsqrtd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17250 #define FLD(f) abuf->fields.sfmt_fmaddd.f
17251 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17252 int UNUSED written = 0;
17253 IADDR UNUSED pc = abuf->addr;
17254 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17257 DF opval = (* CGEN_CPU_FPU (current_cpu)->ops->sqrtdf) (CGEN_CPU_FPU (current_cpu), GET_H_FR_DOUBLE (FLD (f_FRj)));
17258 sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
17259 TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
17266 /* cfsqrts: cfsqrts$pack $FRj,$FRk,$CCi,$cond */
17269 SEM_FN_NAME (frvbf,cfsqrts) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17271 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17272 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17273 int UNUSED written = 0;
17274 IADDR UNUSED pc = abuf->addr;
17275 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17277 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
17279 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->sqrtsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17280 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17281 written |= (1 << 3);
17282 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17286 abuf->written = written;
17291 /* nfsqrts: nfsqrts$pack $FRj,$FRk */
17294 SEM_FN_NAME (frvbf,nfsqrts) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17296 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17297 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17298 int UNUSED written = 0;
17299 IADDR UNUSED pc = abuf->addr;
17300 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17303 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
17305 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->sqrtsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17306 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17307 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17315 /* fadds: fadds$pack $FRi,$FRj,$FRk */
17318 SEM_FN_NAME (frvbf,fadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17320 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17321 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17322 int UNUSED written = 0;
17323 IADDR UNUSED pc = abuf->addr;
17324 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17327 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->addsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)));
17328 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17329 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17336 /* fsubs: fsubs$pack $FRi,$FRj,$FRk */
17339 SEM_FN_NAME (frvbf,fsubs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17341 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17342 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17343 int UNUSED written = 0;
17344 IADDR UNUSED pc = abuf->addr;
17345 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17348 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->subsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)));
17349 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17350 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17357 /* fmuls: fmuls$pack $FRi,$FRj,$FRk */
17360 SEM_FN_NAME (frvbf,fmuls) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17362 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17363 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17364 int UNUSED written = 0;
17365 IADDR UNUSED pc = abuf->addr;
17366 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17369 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->mulsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)));
17370 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17371 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17378 /* fdivs: fdivs$pack $FRi,$FRj,$FRk */
17381 SEM_FN_NAME (frvbf,fdivs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17383 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17384 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17385 int UNUSED written = 0;
17386 IADDR UNUSED pc = abuf->addr;
17387 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17390 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->divsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)));
17391 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17392 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17399 /* faddd: faddd$pack $FRdoublei,$FRdoublej,$FRdoublek */
17402 SEM_FN_NAME (frvbf,faddd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17404 #define FLD(f) abuf->fields.sfmt_fmaddd.f
17405 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17406 int UNUSED written = 0;
17407 IADDR UNUSED pc = abuf->addr;
17408 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17411 DF opval = (* CGEN_CPU_FPU (current_cpu)->ops->adddf) (CGEN_CPU_FPU (current_cpu), GET_H_FR_DOUBLE (FLD (f_FRi)), GET_H_FR_DOUBLE (FLD (f_FRj)));
17412 sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
17413 TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
17420 /* fsubd: fsubd$pack $FRdoublei,$FRdoublej,$FRdoublek */
17423 SEM_FN_NAME (frvbf,fsubd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17425 #define FLD(f) abuf->fields.sfmt_fmaddd.f
17426 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17427 int UNUSED written = 0;
17428 IADDR UNUSED pc = abuf->addr;
17429 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17432 DF opval = (* CGEN_CPU_FPU (current_cpu)->ops->subdf) (CGEN_CPU_FPU (current_cpu), GET_H_FR_DOUBLE (FLD (f_FRi)), GET_H_FR_DOUBLE (FLD (f_FRj)));
17433 sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
17434 TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
17441 /* fmuld: fmuld$pack $FRdoublei,$FRdoublej,$FRdoublek */
17444 SEM_FN_NAME (frvbf,fmuld) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17446 #define FLD(f) abuf->fields.sfmt_fmaddd.f
17447 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17448 int UNUSED written = 0;
17449 IADDR UNUSED pc = abuf->addr;
17450 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17453 DF opval = (* CGEN_CPU_FPU (current_cpu)->ops->muldf) (CGEN_CPU_FPU (current_cpu), GET_H_FR_DOUBLE (FLD (f_FRi)), GET_H_FR_DOUBLE (FLD (f_FRj)));
17454 sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
17455 TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
17462 /* fdivd: fdivd$pack $FRdoublei,$FRdoublej,$FRdoublek */
17465 SEM_FN_NAME (frvbf,fdivd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17467 #define FLD(f) abuf->fields.sfmt_fmaddd.f
17468 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17469 int UNUSED written = 0;
17470 IADDR UNUSED pc = abuf->addr;
17471 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17474 DF opval = (* CGEN_CPU_FPU (current_cpu)->ops->divdf) (CGEN_CPU_FPU (current_cpu), GET_H_FR_DOUBLE (FLD (f_FRi)), GET_H_FR_DOUBLE (FLD (f_FRj)));
17475 sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
17476 TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
17483 /* cfadds: cfadds$pack $FRi,$FRj,$FRk,$CCi,$cond */
17486 SEM_FN_NAME (frvbf,cfadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17488 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17489 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17490 int UNUSED written = 0;
17491 IADDR UNUSED pc = abuf->addr;
17492 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17494 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
17496 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->addsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)));
17497 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17498 written |= (1 << 4);
17499 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17503 abuf->written = written;
17508 /* cfsubs: cfsubs$pack $FRi,$FRj,$FRk,$CCi,$cond */
17511 SEM_FN_NAME (frvbf,cfsubs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17513 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17514 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17515 int UNUSED written = 0;
17516 IADDR UNUSED pc = abuf->addr;
17517 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17519 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
17521 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->subsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)));
17522 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17523 written |= (1 << 4);
17524 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17528 abuf->written = written;
17533 /* cfmuls: cfmuls$pack $FRi,$FRj,$FRk,$CCi,$cond */
17536 SEM_FN_NAME (frvbf,cfmuls) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17538 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17539 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17540 int UNUSED written = 0;
17541 IADDR UNUSED pc = abuf->addr;
17542 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17544 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
17546 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->mulsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)));
17547 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17548 written |= (1 << 4);
17549 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17553 abuf->written = written;
17558 /* cfdivs: cfdivs$pack $FRi,$FRj,$FRk,$CCi,$cond */
17561 SEM_FN_NAME (frvbf,cfdivs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17563 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17564 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17565 int UNUSED written = 0;
17566 IADDR UNUSED pc = abuf->addr;
17567 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17569 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
17571 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->divsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)));
17572 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17573 written |= (1 << 4);
17574 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17578 abuf->written = written;
17583 /* nfadds: nfadds$pack $FRi,$FRj,$FRk */
17586 SEM_FN_NAME (frvbf,nfadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17588 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17589 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17590 int UNUSED written = 0;
17591 IADDR UNUSED pc = abuf->addr;
17592 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17595 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
17597 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->addsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)));
17598 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17599 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17607 /* nfsubs: nfsubs$pack $FRi,$FRj,$FRk */
17610 SEM_FN_NAME (frvbf,nfsubs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17612 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17613 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17614 int UNUSED written = 0;
17615 IADDR UNUSED pc = abuf->addr;
17616 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17619 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
17621 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->subsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)));
17622 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17623 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17631 /* nfmuls: nfmuls$pack $FRi,$FRj,$FRk */
17634 SEM_FN_NAME (frvbf,nfmuls) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17636 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17637 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17638 int UNUSED written = 0;
17639 IADDR UNUSED pc = abuf->addr;
17640 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17643 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
17645 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->mulsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)));
17646 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17647 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17655 /* nfdivs: nfdivs$pack $FRi,$FRj,$FRk */
17658 SEM_FN_NAME (frvbf,nfdivs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17660 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17661 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17662 int UNUSED written = 0;
17663 IADDR UNUSED pc = abuf->addr;
17664 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17667 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
17669 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->divsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)));
17670 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17671 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17679 /* fcmps: fcmps$pack $FRi,$FRj,$FCCi_2 */
17682 SEM_FN_NAME (frvbf,fcmps) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17684 #define FLD(f) abuf->fields.sfmt_cfcmps.f
17685 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17686 int UNUSED written = 0;
17687 IADDR UNUSED pc = abuf->addr;
17688 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17690 if ((* CGEN_CPU_FPU (current_cpu)->ops->gtsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)))) {
17693 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17694 written |= (1 << 2);
17695 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17698 if ((* CGEN_CPU_FPU (current_cpu)->ops->eqsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)))) {
17701 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17702 written |= (1 << 2);
17703 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17706 if ((* CGEN_CPU_FPU (current_cpu)->ops->ltsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)))) {
17709 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17710 written |= (1 << 2);
17711 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17716 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17717 written |= (1 << 2);
17718 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17724 abuf->written = written;
17729 /* fcmpd: fcmpd$pack $FRdoublei,$FRdoublej,$FCCi_2 */
17732 SEM_FN_NAME (frvbf,fcmpd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17734 #define FLD(f) abuf->fields.sfmt_fcmpd.f
17735 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17736 int UNUSED written = 0;
17737 IADDR UNUSED pc = abuf->addr;
17738 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17740 if ((* CGEN_CPU_FPU (current_cpu)->ops->gtdf) (CGEN_CPU_FPU (current_cpu), GET_H_FR_DOUBLE (FLD (f_FRi)), GET_H_FR_DOUBLE (FLD (f_FRj)))) {
17743 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17744 written |= (1 << 2);
17745 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17748 if ((* CGEN_CPU_FPU (current_cpu)->ops->eqdf) (CGEN_CPU_FPU (current_cpu), GET_H_FR_DOUBLE (FLD (f_FRi)), GET_H_FR_DOUBLE (FLD (f_FRj)))) {
17751 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17752 written |= (1 << 2);
17753 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17756 if ((* CGEN_CPU_FPU (current_cpu)->ops->ltdf) (CGEN_CPU_FPU (current_cpu), GET_H_FR_DOUBLE (FLD (f_FRi)), GET_H_FR_DOUBLE (FLD (f_FRj)))) {
17759 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17760 written |= (1 << 2);
17761 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17766 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17767 written |= (1 << 2);
17768 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17774 abuf->written = written;
17779 /* cfcmps: cfcmps$pack $FRi,$FRj,$FCCi_2,$CCi,$cond */
17782 SEM_FN_NAME (frvbf,cfcmps) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17784 #define FLD(f) abuf->fields.sfmt_cfcmps.f
17785 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17786 int UNUSED written = 0;
17787 IADDR UNUSED pc = abuf->addr;
17788 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17790 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
17791 if ((* CGEN_CPU_FPU (current_cpu)->ops->gtsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)))) {
17794 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17795 written |= (1 << 4);
17796 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17799 if ((* CGEN_CPU_FPU (current_cpu)->ops->eqsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)))) {
17802 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17803 written |= (1 << 4);
17804 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17807 if ((* CGEN_CPU_FPU (current_cpu)->ops->ltsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)))) {
17810 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17811 written |= (1 << 4);
17812 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17817 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17818 written |= (1 << 4);
17819 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17826 abuf->written = written;
17831 /* fdcmps: fdcmps$pack $FRi,$FRj,$FCCi_2 */
17834 SEM_FN_NAME (frvbf,fdcmps) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17836 #define FLD(f) abuf->fields.sfmt_nfdcmps.f
17837 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17838 int UNUSED written = 0;
17839 IADDR UNUSED pc = abuf->addr;
17840 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17843 if ((* CGEN_CPU_FPU (current_cpu)->ops->gtsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)))) {
17846 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17847 written |= (1 << 7);
17848 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17851 if ((* CGEN_CPU_FPU (current_cpu)->ops->eqsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)))) {
17854 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17855 written |= (1 << 7);
17856 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17859 if ((* CGEN_CPU_FPU (current_cpu)->ops->ltsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)))) {
17862 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17863 written |= (1 << 7);
17864 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17869 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17870 written |= (1 << 7);
17871 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17876 if ((* CGEN_CPU_FPU (current_cpu)->ops->gtsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (1))), GET_H_FR (((FLD (f_FRj)) + (1))))) {
17879 sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCi_2)) + (1))]), opval);
17880 written |= (1 << 8);
17881 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17884 if ((* CGEN_CPU_FPU (current_cpu)->ops->eqsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (1))), GET_H_FR (((FLD (f_FRj)) + (1))))) {
17887 sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCi_2)) + (1))]), opval);
17888 written |= (1 << 8);
17889 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17892 if ((* CGEN_CPU_FPU (current_cpu)->ops->ltsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (1))), GET_H_FR (((FLD (f_FRj)) + (1))))) {
17895 sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCi_2)) + (1))]), opval);
17896 written |= (1 << 8);
17897 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17902 sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCi_2)) + (1))]), opval);
17903 written |= (1 << 8);
17904 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17911 abuf->written = written;
17916 /* fmadds: fmadds$pack $FRi,$FRj,$FRk */
17919 SEM_FN_NAME (frvbf,fmadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17921 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17922 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17923 int UNUSED written = 0;
17924 IADDR UNUSED pc = abuf->addr;
17925 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17928 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->addsf) (CGEN_CPU_FPU (current_cpu), (* CGEN_CPU_FPU (current_cpu)->ops->mulsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj))), GET_H_FR (FLD (f_FRk)));
17929 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17930 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17937 /* fmsubs: fmsubs$pack $FRi,$FRj,$FRk */
17940 SEM_FN_NAME (frvbf,fmsubs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17942 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17943 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17944 int UNUSED written = 0;
17945 IADDR UNUSED pc = abuf->addr;
17946 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17949 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->subsf) (CGEN_CPU_FPU (current_cpu), (* CGEN_CPU_FPU (current_cpu)->ops->mulsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj))), GET_H_FR (FLD (f_FRk)));
17950 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17951 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17958 /* fmaddd: fmaddd$pack $FRdoublei,$FRdoublej,$FRdoublek */
17961 SEM_FN_NAME (frvbf,fmaddd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17963 #define FLD(f) abuf->fields.sfmt_fmaddd.f
17964 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17965 int UNUSED written = 0;
17966 IADDR UNUSED pc = abuf->addr;
17967 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17970 DF opval = (* CGEN_CPU_FPU (current_cpu)->ops->adddf) (CGEN_CPU_FPU (current_cpu), (* CGEN_CPU_FPU (current_cpu)->ops->muldf) (CGEN_CPU_FPU (current_cpu), GET_H_FR_DOUBLE (FLD (f_FRi)), GET_H_FR_DOUBLE (FLD (f_FRj))), GET_H_FR_DOUBLE (FLD (f_FRk)));
17971 sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
17972 TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
17979 /* fmsubd: fmsubd$pack $FRdoublei,$FRdoublej,$FRdoublek */
17982 SEM_FN_NAME (frvbf,fmsubd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17984 #define FLD(f) abuf->fields.sfmt_fmaddd.f
17985 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17986 int UNUSED written = 0;
17987 IADDR UNUSED pc = abuf->addr;
17988 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17991 DF opval = (* CGEN_CPU_FPU (current_cpu)->ops->subdf) (CGEN_CPU_FPU (current_cpu), (* CGEN_CPU_FPU (current_cpu)->ops->muldf) (CGEN_CPU_FPU (current_cpu), GET_H_FR_DOUBLE (FLD (f_FRi)), GET_H_FR_DOUBLE (FLD (f_FRj))), GET_H_FR_DOUBLE (FLD (f_FRk)));
17992 sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
17993 TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
18000 /* fdmadds: fdmadds$pack $FRi,$FRj,$FRk */
18003 SEM_FN_NAME (frvbf,fdmadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18005 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18006 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18007 int UNUSED written = 0;
18008 IADDR UNUSED pc = abuf->addr;
18009 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18013 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->addsf) (CGEN_CPU_FPU (current_cpu), (* CGEN_CPU_FPU (current_cpu)->ops->mulsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj))), GET_H_FR (FLD (f_FRk)));
18014 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18015 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18018 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->addsf) (CGEN_CPU_FPU (current_cpu), (* CGEN_CPU_FPU (current_cpu)->ops->mulsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (1))), GET_H_FR (((FLD (f_FRj)) + (1)))), GET_H_FR (((FLD (f_FRk)) + (1))));
18019 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18020 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18028 /* nfdmadds: nfdmadds$pack $FRi,$FRj,$FRk */
18031 SEM_FN_NAME (frvbf,nfdmadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18033 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18034 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18035 int UNUSED written = 0;
18036 IADDR UNUSED pc = abuf->addr;
18037 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18040 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18042 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->addsf) (CGEN_CPU_FPU (current_cpu), (* CGEN_CPU_FPU (current_cpu)->ops->mulsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj))), GET_H_FR (FLD (f_FRk)));
18043 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18044 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18046 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18048 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->addsf) (CGEN_CPU_FPU (current_cpu), (* CGEN_CPU_FPU (current_cpu)->ops->mulsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (1))), GET_H_FR (((FLD (f_FRj)) + (1)))), GET_H_FR (((FLD (f_FRk)) + (1))));
18049 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18050 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18058 /* cfmadds: cfmadds$pack $FRi,$FRj,$FRk,$CCi,$cond */
18061 SEM_FN_NAME (frvbf,cfmadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18063 #define FLD(f) abuf->fields.sfmt_cfmadds.f
18064 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18065 int UNUSED written = 0;
18066 IADDR UNUSED pc = abuf->addr;
18067 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18069 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
18071 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->addsf) (CGEN_CPU_FPU (current_cpu), (* CGEN_CPU_FPU (current_cpu)->ops->mulsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj))), GET_H_FR (FLD (f_FRk)));
18072 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18073 written |= (1 << 5);
18074 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18078 abuf->written = written;
18083 /* cfmsubs: cfmsubs$pack $FRi,$FRj,$FRk,$CCi,$cond */
18086 SEM_FN_NAME (frvbf,cfmsubs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18088 #define FLD(f) abuf->fields.sfmt_cfmadds.f
18089 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18090 int UNUSED written = 0;
18091 IADDR UNUSED pc = abuf->addr;
18092 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18094 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
18096 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->subsf) (CGEN_CPU_FPU (current_cpu), (* CGEN_CPU_FPU (current_cpu)->ops->mulsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj))), GET_H_FR (FLD (f_FRk)));
18097 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18098 written |= (1 << 5);
18099 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18103 abuf->written = written;
18108 /* nfmadds: nfmadds$pack $FRi,$FRj,$FRk */
18111 SEM_FN_NAME (frvbf,nfmadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18113 #define FLD(f) abuf->fields.sfmt_cfmadds.f
18114 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18115 int UNUSED written = 0;
18116 IADDR UNUSED pc = abuf->addr;
18117 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18120 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18122 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->addsf) (CGEN_CPU_FPU (current_cpu), (* CGEN_CPU_FPU (current_cpu)->ops->mulsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj))), GET_H_FR (FLD (f_FRk)));
18123 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18124 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18132 /* nfmsubs: nfmsubs$pack $FRi,$FRj,$FRk */
18135 SEM_FN_NAME (frvbf,nfmsubs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18137 #define FLD(f) abuf->fields.sfmt_cfmadds.f
18138 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18139 int UNUSED written = 0;
18140 IADDR UNUSED pc = abuf->addr;
18141 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18144 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18146 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->subsf) (CGEN_CPU_FPU (current_cpu), (* CGEN_CPU_FPU (current_cpu)->ops->mulsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj))), GET_H_FR (FLD (f_FRk)));
18147 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18148 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18156 /* fmas: fmas$pack $FRi,$FRj,$FRk */
18159 SEM_FN_NAME (frvbf,fmas) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18161 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18162 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18163 int UNUSED written = 0;
18164 IADDR UNUSED pc = abuf->addr;
18165 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18169 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->mulsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)));
18170 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18171 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18174 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->addsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (1))), GET_H_FR (((FLD (f_FRj)) + (1))));
18175 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18176 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18184 /* fmss: fmss$pack $FRi,$FRj,$FRk */
18187 SEM_FN_NAME (frvbf,fmss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18189 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18190 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18191 int UNUSED written = 0;
18192 IADDR UNUSED pc = abuf->addr;
18193 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18197 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->mulsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)));
18198 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18199 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18202 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->subsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (1))), GET_H_FR (((FLD (f_FRj)) + (1))));
18203 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18204 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18212 /* fdmas: fdmas$pack $FRi,$FRj,$FRk */
18215 SEM_FN_NAME (frvbf,fdmas) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18217 #define FLD(f) abuf->fields.sfmt_fdmas.f
18218 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18219 int UNUSED written = 0;
18220 IADDR UNUSED pc = abuf->addr;
18221 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18225 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->mulsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)));
18226 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18227 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18230 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->addsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (1))), GET_H_FR (((FLD (f_FRj)) + (1))));
18231 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18232 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18235 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->mulsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (2))), GET_H_FR (((FLD (f_FRj)) + (2))));
18236 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (2)), opval);
18237 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18240 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->addsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (3))), GET_H_FR (((FLD (f_FRj)) + (3))));
18241 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (3)), opval);
18242 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18250 /* fdmss: fdmss$pack $FRi,$FRj,$FRk */
18253 SEM_FN_NAME (frvbf,fdmss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18255 #define FLD(f) abuf->fields.sfmt_fdmas.f
18256 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18257 int UNUSED written = 0;
18258 IADDR UNUSED pc = abuf->addr;
18259 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18263 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->mulsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)));
18264 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18265 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18268 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->subsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (1))), GET_H_FR (((FLD (f_FRj)) + (1))));
18269 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18270 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18273 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->mulsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (2))), GET_H_FR (((FLD (f_FRj)) + (2))));
18274 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (2)), opval);
18275 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18278 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->subsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (3))), GET_H_FR (((FLD (f_FRj)) + (3))));
18279 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (3)), opval);
18280 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18288 /* nfdmas: nfdmas$pack $FRi,$FRj,$FRk */
18291 SEM_FN_NAME (frvbf,nfdmas) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18293 #define FLD(f) abuf->fields.sfmt_fdmas.f
18294 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18295 int UNUSED written = 0;
18296 IADDR UNUSED pc = abuf->addr;
18297 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18300 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18301 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18302 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 2));
18303 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 3));
18305 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->mulsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)));
18306 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18307 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18310 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->addsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (1))), GET_H_FR (((FLD (f_FRj)) + (1))));
18311 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18312 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18315 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->mulsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (2))), GET_H_FR (((FLD (f_FRj)) + (2))));
18316 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (2)), opval);
18317 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18320 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->addsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (3))), GET_H_FR (((FLD (f_FRj)) + (3))));
18321 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (3)), opval);
18322 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18330 /* nfdmss: nfdmss$pack $FRi,$FRj,$FRk */
18333 SEM_FN_NAME (frvbf,nfdmss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18335 #define FLD(f) abuf->fields.sfmt_fdmas.f
18336 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18337 int UNUSED written = 0;
18338 IADDR UNUSED pc = abuf->addr;
18339 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18342 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18343 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18344 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 2));
18345 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 3));
18347 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->mulsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)));
18348 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18349 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18352 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->subsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (1))), GET_H_FR (((FLD (f_FRj)) + (1))));
18353 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18354 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18357 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->mulsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (2))), GET_H_FR (((FLD (f_FRj)) + (2))));
18358 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (2)), opval);
18359 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18362 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->subsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (3))), GET_H_FR (((FLD (f_FRj)) + (3))));
18363 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (3)), opval);
18364 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18372 /* cfmas: cfmas$pack $FRi,$FRj,$FRk,$CCi,$cond */
18375 SEM_FN_NAME (frvbf,cfmas) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18377 #define FLD(f) abuf->fields.sfmt_cfmas.f
18378 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18379 int UNUSED written = 0;
18380 IADDR UNUSED pc = abuf->addr;
18381 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18383 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
18386 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->mulsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)));
18387 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18388 written |= (1 << 9);
18389 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18392 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->addsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (1))), GET_H_FR (((FLD (f_FRj)) + (1))));
18393 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18394 written |= (1 << 10);
18395 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18400 abuf->written = written;
18405 /* cfmss: cfmss$pack $FRi,$FRj,$FRk,$CCi,$cond */
18408 SEM_FN_NAME (frvbf,cfmss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18410 #define FLD(f) abuf->fields.sfmt_cfmas.f
18411 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18412 int UNUSED written = 0;
18413 IADDR UNUSED pc = abuf->addr;
18414 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18416 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
18419 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->mulsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)));
18420 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18421 written |= (1 << 9);
18422 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18425 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->subsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (1))), GET_H_FR (((FLD (f_FRj)) + (1))));
18426 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18427 written |= (1 << 10);
18428 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18433 abuf->written = written;
18438 /* fmad: fmad$pack $FRi,$FRj,$FRk */
18441 SEM_FN_NAME (frvbf,fmad) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18443 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18444 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18445 int UNUSED written = 0;
18446 IADDR UNUSED pc = abuf->addr;
18447 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18451 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->ftruncdfsf) (CGEN_CPU_FPU (current_cpu), (* CGEN_CPU_FPU (current_cpu)->ops->muldf) (CGEN_CPU_FPU (current_cpu), (* CGEN_CPU_FPU (current_cpu)->ops->fextsfdf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi))), (* CGEN_CPU_FPU (current_cpu)->ops->fextsfdf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)))));
18452 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18453 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18456 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->ftruncdfsf) (CGEN_CPU_FPU (current_cpu), (* CGEN_CPU_FPU (current_cpu)->ops->adddf) (CGEN_CPU_FPU (current_cpu), (* CGEN_CPU_FPU (current_cpu)->ops->fextsfdf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (1)))), (* CGEN_CPU_FPU (current_cpu)->ops->fextsfdf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRj)) + (1))))));
18457 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18458 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18466 /* fmsd: fmsd$pack $FRi,$FRj,$FRk */
18469 SEM_FN_NAME (frvbf,fmsd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18471 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18472 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18473 int UNUSED written = 0;
18474 IADDR UNUSED pc = abuf->addr;
18475 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18479 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->ftruncdfsf) (CGEN_CPU_FPU (current_cpu), (* CGEN_CPU_FPU (current_cpu)->ops->muldf) (CGEN_CPU_FPU (current_cpu), (* CGEN_CPU_FPU (current_cpu)->ops->fextsfdf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi))), (* CGEN_CPU_FPU (current_cpu)->ops->fextsfdf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)))));
18480 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18481 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18484 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->ftruncdfsf) (CGEN_CPU_FPU (current_cpu), (* CGEN_CPU_FPU (current_cpu)->ops->subdf) (CGEN_CPU_FPU (current_cpu), (* CGEN_CPU_FPU (current_cpu)->ops->fextsfdf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (1)))), (* CGEN_CPU_FPU (current_cpu)->ops->fextsfdf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRj)) + (1))))));
18485 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18486 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18494 /* nfmas: nfmas$pack $FRi,$FRj,$FRk */
18497 SEM_FN_NAME (frvbf,nfmas) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18499 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18500 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18501 int UNUSED written = 0;
18502 IADDR UNUSED pc = abuf->addr;
18503 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18506 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18508 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->mulsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)));
18509 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18510 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18512 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18514 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->addsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (1))), GET_H_FR (((FLD (f_FRj)) + (1))));
18515 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18516 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18524 /* nfmss: nfmss$pack $FRi,$FRj,$FRk */
18527 SEM_FN_NAME (frvbf,nfmss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18529 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18530 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18531 int UNUSED written = 0;
18532 IADDR UNUSED pc = abuf->addr;
18533 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18536 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18538 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->mulsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)));
18539 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18540 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18542 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18544 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->subsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (1))), GET_H_FR (((FLD (f_FRj)) + (1))));
18545 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18546 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18554 /* fdadds: fdadds$pack $FRi,$FRj,$FRk */
18557 SEM_FN_NAME (frvbf,fdadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18559 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18560 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18561 int UNUSED written = 0;
18562 IADDR UNUSED pc = abuf->addr;
18563 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18567 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->addsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)));
18568 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18569 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18572 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->addsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (1))), GET_H_FR (((FLD (f_FRj)) + (1))));
18573 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18574 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18582 /* fdsubs: fdsubs$pack $FRi,$FRj,$FRk */
18585 SEM_FN_NAME (frvbf,fdsubs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18587 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18588 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18589 int UNUSED written = 0;
18590 IADDR UNUSED pc = abuf->addr;
18591 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18595 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->subsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)));
18596 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18597 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18600 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->subsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (1))), GET_H_FR (((FLD (f_FRj)) + (1))));
18601 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18602 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18610 /* fdmuls: fdmuls$pack $FRi,$FRj,$FRk */
18613 SEM_FN_NAME (frvbf,fdmuls) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18615 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18616 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18617 int UNUSED written = 0;
18618 IADDR UNUSED pc = abuf->addr;
18619 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18623 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->mulsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)));
18624 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18625 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18628 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->mulsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (1))), GET_H_FR (((FLD (f_FRj)) + (1))));
18629 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18630 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18638 /* fddivs: fddivs$pack $FRi,$FRj,$FRk */
18641 SEM_FN_NAME (frvbf,fddivs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18643 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18644 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18645 int UNUSED written = 0;
18646 IADDR UNUSED pc = abuf->addr;
18647 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18651 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->divsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)));
18652 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18653 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18656 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->divsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (1))), GET_H_FR (((FLD (f_FRj)) + (1))));
18657 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18658 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18666 /* fdsads: fdsads$pack $FRi,$FRj,$FRk */
18669 SEM_FN_NAME (frvbf,fdsads) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18671 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18672 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18673 int UNUSED written = 0;
18674 IADDR UNUSED pc = abuf->addr;
18675 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18679 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->addsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)));
18680 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18681 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18684 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->subsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (1))), GET_H_FR (((FLD (f_FRj)) + (1))));
18685 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18686 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18694 /* fdmulcs: fdmulcs$pack $FRi,$FRj,$FRk */
18697 SEM_FN_NAME (frvbf,fdmulcs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18699 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18700 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18701 int UNUSED written = 0;
18702 IADDR UNUSED pc = abuf->addr;
18703 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18707 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->mulsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (((FLD (f_FRj)) + (1))));
18708 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18709 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18712 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->mulsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (1))), GET_H_FR (FLD (f_FRj)));
18713 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18714 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18722 /* nfdmulcs: nfdmulcs$pack $FRi,$FRj,$FRk */
18725 SEM_FN_NAME (frvbf,nfdmulcs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18727 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18728 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18729 int UNUSED written = 0;
18730 IADDR UNUSED pc = abuf->addr;
18731 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18734 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18736 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->mulsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (((FLD (f_FRj)) + (1))));
18737 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18738 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18740 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18742 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->mulsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (1))), GET_H_FR (FLD (f_FRj)));
18743 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18744 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18752 /* nfdadds: nfdadds$pack $FRi,$FRj,$FRk */
18755 SEM_FN_NAME (frvbf,nfdadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18757 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18758 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18759 int UNUSED written = 0;
18760 IADDR UNUSED pc = abuf->addr;
18761 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18764 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18766 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->addsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)));
18767 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18768 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18770 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18772 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->addsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (1))), GET_H_FR (((FLD (f_FRj)) + (1))));
18773 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18774 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18782 /* nfdsubs: nfdsubs$pack $FRi,$FRj,$FRk */
18785 SEM_FN_NAME (frvbf,nfdsubs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18787 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18788 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18789 int UNUSED written = 0;
18790 IADDR UNUSED pc = abuf->addr;
18791 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18794 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18796 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->subsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)));
18797 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18798 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18800 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18802 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->subsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (1))), GET_H_FR (((FLD (f_FRj)) + (1))));
18803 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18804 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18812 /* nfdmuls: nfdmuls$pack $FRi,$FRj,$FRk */
18815 SEM_FN_NAME (frvbf,nfdmuls) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18817 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18818 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18819 int UNUSED written = 0;
18820 IADDR UNUSED pc = abuf->addr;
18821 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18824 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18826 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->mulsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)));
18827 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18828 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18830 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18832 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->mulsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (1))), GET_H_FR (((FLD (f_FRj)) + (1))));
18833 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18834 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18842 /* nfddivs: nfddivs$pack $FRi,$FRj,$FRk */
18845 SEM_FN_NAME (frvbf,nfddivs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18847 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18848 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18849 int UNUSED written = 0;
18850 IADDR UNUSED pc = abuf->addr;
18851 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18854 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18856 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->divsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)));
18857 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18858 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18860 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18862 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->divsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (1))), GET_H_FR (((FLD (f_FRj)) + (1))));
18863 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18864 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18872 /* nfdsads: nfdsads$pack $FRi,$FRj,$FRk */
18875 SEM_FN_NAME (frvbf,nfdsads) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18877 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18878 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18879 int UNUSED written = 0;
18880 IADDR UNUSED pc = abuf->addr;
18881 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18884 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18886 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->addsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)));
18887 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18888 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18890 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18892 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->subsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (1))), GET_H_FR (((FLD (f_FRj)) + (1))));
18893 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18894 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18902 /* nfdcmps: nfdcmps$pack $FRi,$FRj,$FCCi_2 */
18905 SEM_FN_NAME (frvbf,nfdcmps) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18907 #define FLD(f) abuf->fields.sfmt_nfdcmps.f
18908 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18909 int UNUSED written = 0;
18910 IADDR UNUSED pc = abuf->addr;
18911 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18914 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18915 if ((* CGEN_CPU_FPU (current_cpu)->ops->gtsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)))) {
18918 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
18919 written |= (1 << 8);
18920 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
18923 if ((* CGEN_CPU_FPU (current_cpu)->ops->eqsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)))) {
18926 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
18927 written |= (1 << 8);
18928 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
18931 if ((* CGEN_CPU_FPU (current_cpu)->ops->ltsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)))) {
18934 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
18935 written |= (1 << 8);
18936 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
18941 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
18942 written |= (1 << 8);
18943 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
18948 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18949 if ((* CGEN_CPU_FPU (current_cpu)->ops->gtsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (1))), GET_H_FR (((FLD (f_FRj)) + (1))))) {
18952 sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCi_2)) + (1))]), opval);
18953 written |= (1 << 9);
18954 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
18957 if ((* CGEN_CPU_FPU (current_cpu)->ops->eqsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (1))), GET_H_FR (((FLD (f_FRj)) + (1))))) {
18960 sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCi_2)) + (1))]), opval);
18961 written |= (1 << 9);
18962 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
18965 if ((* CGEN_CPU_FPU (current_cpu)->ops->ltsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (1))), GET_H_FR (((FLD (f_FRj)) + (1))))) {
18968 sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCi_2)) + (1))]), opval);
18969 written |= (1 << 9);
18970 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
18975 sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCi_2)) + (1))]), opval);
18976 written |= (1 << 9);
18977 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
18984 abuf->written = written;
18989 /* mhsetlos: mhsetlos$pack $u12,$FRklo */
18992 SEM_FN_NAME (frvbf,mhsetlos) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18994 #define FLD(f) abuf->fields.sfmt_mhsetlos.f
18995 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18996 int UNUSED written = 0;
18997 IADDR UNUSED pc = abuf->addr;
18998 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19001 UHI opval = FLD (f_u12);
19002 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, FLD (f_FRk), opval);
19003 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19010 /* mhsethis: mhsethis$pack $u12,$FRkhi */
19013 SEM_FN_NAME (frvbf,mhsethis) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19015 #define FLD(f) abuf->fields.sfmt_mhsethis.f
19016 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19017 int UNUSED written = 0;
19018 IADDR UNUSED pc = abuf->addr;
19019 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19022 UHI opval = FLD (f_u12);
19023 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, FLD (f_FRk), opval);
19024 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19031 /* mhdsets: mhdsets$pack $u12,$FRintk */
19034 SEM_FN_NAME (frvbf,mhdsets) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19036 #define FLD(f) abuf->fields.sfmt_mhdsets.f
19037 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19038 int UNUSED written = 0;
19039 IADDR UNUSED pc = abuf->addr;
19040 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19044 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
19045 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19046 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19049 UHI opval = FLD (f_u12);
19050 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
19051 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19054 UHI opval = FLD (f_u12);
19055 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
19056 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19064 /* mhsetloh: mhsetloh$pack $s5,$FRklo */
19067 SEM_FN_NAME (frvbf,mhsetloh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19069 #define FLD(f) abuf->fields.sfmt_mhsetloh.f
19070 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19071 int UNUSED written = 0;
19072 IADDR UNUSED pc = abuf->addr;
19073 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19077 tmp_tmp = GET_H_FR_LO (FLD (f_FRk));
19078 tmp_tmp = ANDHI (tmp_tmp, 2047);
19079 tmp_tmp = ORHI (tmp_tmp, SLLSI (ANDSI (FLD (f_s5), 31), 11));
19081 UHI opval = tmp_tmp;
19082 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, FLD (f_FRk), opval);
19083 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19091 /* mhsethih: mhsethih$pack $s5,$FRkhi */
19094 SEM_FN_NAME (frvbf,mhsethih) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19096 #define FLD(f) abuf->fields.sfmt_mhsethih.f
19097 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19098 int UNUSED written = 0;
19099 IADDR UNUSED pc = abuf->addr;
19100 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19104 tmp_tmp = GET_H_FR_HI (FLD (f_FRk));
19105 tmp_tmp = ANDHI (tmp_tmp, 2047);
19106 tmp_tmp = ORHI (tmp_tmp, SLLSI (ANDSI (FLD (f_s5), 31), 11));
19108 UHI opval = tmp_tmp;
19109 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, FLD (f_FRk), opval);
19110 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19118 /* mhdseth: mhdseth$pack $s5,$FRintk */
19121 SEM_FN_NAME (frvbf,mhdseth) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19123 #define FLD(f) abuf->fields.sfmt_mhdseth.f
19124 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19125 int UNUSED written = 0;
19126 IADDR UNUSED pc = abuf->addr;
19127 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19131 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
19132 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19133 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19137 tmp_tmp = GET_H_FR_HI (((FLD (f_FRk)) + (0)));
19138 tmp_tmp = ANDHI (tmp_tmp, 2047);
19139 tmp_tmp = ORHI (tmp_tmp, SLLSI (ANDSI (FLD (f_s5), 31), 11));
19141 UHI opval = tmp_tmp;
19142 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
19143 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19148 tmp_tmp = GET_H_FR_LO (((FLD (f_FRk)) + (0)));
19149 tmp_tmp = ANDHI (tmp_tmp, 2047);
19150 tmp_tmp = ORHI (tmp_tmp, SLLSI (ANDSI (FLD (f_s5), 31), 11));
19152 UHI opval = tmp_tmp;
19153 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
19154 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19163 /* mand: mand$pack $FRinti,$FRintj,$FRintk */
19166 SEM_FN_NAME (frvbf,mand) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19168 #define FLD(f) abuf->fields.sfmt_mwcut.f
19169 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19170 int UNUSED written = 0;
19171 IADDR UNUSED pc = abuf->addr;
19172 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19175 SI opval = ANDSI (GET_H_FR_INT (FLD (f_FRi)), GET_H_FR_INT (FLD (f_FRj)));
19176 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19177 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19184 /* mor: mor$pack $FRinti,$FRintj,$FRintk */
19187 SEM_FN_NAME (frvbf,mor) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19189 #define FLD(f) abuf->fields.sfmt_mwcut.f
19190 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19191 int UNUSED written = 0;
19192 IADDR UNUSED pc = abuf->addr;
19193 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19196 SI opval = ORSI (GET_H_FR_INT (FLD (f_FRi)), GET_H_FR_INT (FLD (f_FRj)));
19197 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19198 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19205 /* mxor: mxor$pack $FRinti,$FRintj,$FRintk */
19208 SEM_FN_NAME (frvbf,mxor) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19210 #define FLD(f) abuf->fields.sfmt_mwcut.f
19211 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19212 int UNUSED written = 0;
19213 IADDR UNUSED pc = abuf->addr;
19214 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19217 SI opval = XORSI (GET_H_FR_INT (FLD (f_FRi)), GET_H_FR_INT (FLD (f_FRj)));
19218 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19219 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19226 /* cmand: cmand$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
19229 SEM_FN_NAME (frvbf,cmand) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19231 #define FLD(f) abuf->fields.sfmt_cmand.f
19232 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19233 int UNUSED written = 0;
19234 IADDR UNUSED pc = abuf->addr;
19235 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19237 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
19239 SI opval = ANDSI (GET_H_FR_INT (FLD (f_FRi)), GET_H_FR_INT (FLD (f_FRj)));
19240 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19241 written |= (1 << 4);
19242 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19246 abuf->written = written;
19251 /* cmor: cmor$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
19254 SEM_FN_NAME (frvbf,cmor) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19256 #define FLD(f) abuf->fields.sfmt_cmand.f
19257 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19258 int UNUSED written = 0;
19259 IADDR UNUSED pc = abuf->addr;
19260 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19262 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
19264 SI opval = ORSI (GET_H_FR_INT (FLD (f_FRi)), GET_H_FR_INT (FLD (f_FRj)));
19265 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19266 written |= (1 << 4);
19267 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19271 abuf->written = written;
19276 /* cmxor: cmxor$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
19279 SEM_FN_NAME (frvbf,cmxor) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19281 #define FLD(f) abuf->fields.sfmt_cmand.f
19282 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19283 int UNUSED written = 0;
19284 IADDR UNUSED pc = abuf->addr;
19285 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19287 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
19289 SI opval = XORSI (GET_H_FR_INT (FLD (f_FRi)), GET_H_FR_INT (FLD (f_FRj)));
19290 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19291 written |= (1 << 4);
19292 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19296 abuf->written = written;
19301 /* mnot: mnot$pack $FRintj,$FRintk */
19304 SEM_FN_NAME (frvbf,mnot) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19306 #define FLD(f) abuf->fields.sfmt_mcut.f
19307 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19308 int UNUSED written = 0;
19309 IADDR UNUSED pc = abuf->addr;
19310 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19313 SI opval = INVSI (GET_H_FR_INT (FLD (f_FRj)));
19314 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19315 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19322 /* cmnot: cmnot$pack $FRintj,$FRintk,$CCi,$cond */
19325 SEM_FN_NAME (frvbf,cmnot) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19327 #define FLD(f) abuf->fields.sfmt_cmand.f
19328 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19329 int UNUSED written = 0;
19330 IADDR UNUSED pc = abuf->addr;
19331 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19333 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
19335 SI opval = INVSI (GET_H_FR_INT (FLD (f_FRj)));
19336 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19337 written |= (1 << 3);
19338 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19342 abuf->written = written;
19347 /* mrotli: mrotli$pack $FRinti,$u6,$FRintk */
19350 SEM_FN_NAME (frvbf,mrotli) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19352 #define FLD(f) abuf->fields.sfmt_mwcuti.f
19353 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19354 int UNUSED written = 0;
19355 IADDR UNUSED pc = abuf->addr;
19356 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19359 SI opval = ROLSI (GET_H_FR_INT (FLD (f_FRi)), ANDSI (FLD (f_u6), 31));
19360 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19361 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19368 /* mrotri: mrotri$pack $FRinti,$u6,$FRintk */
19371 SEM_FN_NAME (frvbf,mrotri) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19373 #define FLD(f) abuf->fields.sfmt_mwcuti.f
19374 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19375 int UNUSED written = 0;
19376 IADDR UNUSED pc = abuf->addr;
19377 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19380 SI opval = RORSI (GET_H_FR_INT (FLD (f_FRi)), ANDSI (FLD (f_u6), 31));
19381 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19382 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19389 /* mwcut: mwcut$pack $FRinti,$FRintj,$FRintk */
19392 SEM_FN_NAME (frvbf,mwcut) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19394 #define FLD(f) abuf->fields.sfmt_mwcut.f
19395 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19396 int UNUSED written = 0;
19397 IADDR UNUSED pc = abuf->addr;
19398 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19401 SI opval = frvbf_cut (current_cpu, GET_H_FR_INT (FLD (f_FRi)), GET_H_FR_INT (((FLD (f_FRi)) + (1))), GET_H_FR_INT (FLD (f_FRj)));
19402 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19403 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19410 /* mwcuti: mwcuti$pack $FRinti,$u6,$FRintk */
19413 SEM_FN_NAME (frvbf,mwcuti) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19415 #define FLD(f) abuf->fields.sfmt_mwcuti.f
19416 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19417 int UNUSED written = 0;
19418 IADDR UNUSED pc = abuf->addr;
19419 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19422 SI opval = frvbf_cut (current_cpu, GET_H_FR_INT (FLD (f_FRi)), GET_H_FR_INT (((FLD (f_FRi)) + (1))), FLD (f_u6));
19423 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19424 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19431 /* mcut: mcut$pack $ACC40Si,$FRintj,$FRintk */
19434 SEM_FN_NAME (frvbf,mcut) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19436 #define FLD(f) abuf->fields.sfmt_mcut.f
19437 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19438 int UNUSED written = 0;
19439 IADDR UNUSED pc = abuf->addr;
19440 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19443 SI opval = frvbf_media_cut (current_cpu, GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_FR_INT (FLD (f_FRj)));
19444 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19445 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19452 /* mcuti: mcuti$pack $ACC40Si,$s6,$FRintk */
19455 SEM_FN_NAME (frvbf,mcuti) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19457 #define FLD(f) abuf->fields.sfmt_mcuti.f
19458 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19459 int UNUSED written = 0;
19460 IADDR UNUSED pc = abuf->addr;
19461 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19464 SI opval = frvbf_media_cut (current_cpu, GET_H_ACC40S (FLD (f_ACC40Si)), FLD (f_s6));
19465 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19466 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19473 /* mcutss: mcutss$pack $ACC40Si,$FRintj,$FRintk */
19476 SEM_FN_NAME (frvbf,mcutss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19478 #define FLD(f) abuf->fields.sfmt_mcut.f
19479 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19480 int UNUSED written = 0;
19481 IADDR UNUSED pc = abuf->addr;
19482 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19485 SI opval = frvbf_media_cut_ss (current_cpu, GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_FR_INT (FLD (f_FRj)));
19486 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19487 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19494 /* mcutssi: mcutssi$pack $ACC40Si,$s6,$FRintk */
19497 SEM_FN_NAME (frvbf,mcutssi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19499 #define FLD(f) abuf->fields.sfmt_mcuti.f
19500 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19501 int UNUSED written = 0;
19502 IADDR UNUSED pc = abuf->addr;
19503 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19506 SI opval = frvbf_media_cut_ss (current_cpu, GET_H_ACC40S (FLD (f_ACC40Si)), FLD (f_s6));
19507 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19508 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19515 /* mdcutssi: mdcutssi$pack $ACC40Si,$s6,$FRintkeven */
19518 SEM_FN_NAME (frvbf,mdcutssi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19520 #define FLD(f) abuf->fields.sfmt_mdcutssi.f
19521 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19522 int UNUSED written = 0;
19523 IADDR UNUSED pc = abuf->addr;
19524 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19526 if (ANDSI (FLD (f_ACC40Si), SUBSI (2, 1))) {
19527 frvbf_media_acc_not_aligned (current_cpu);
19529 if (ANDSI (FLD (f_FRk), SUBSI (2, 1))) {
19530 frvbf_media_register_not_aligned (current_cpu);
19534 SI opval = frvbf_media_cut_ss (current_cpu, GET_H_ACC40S (FLD (f_ACC40Si)), FLD (f_s6));
19535 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19536 written |= (1 << 5);
19537 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19540 USI opval = frvbf_media_cut_ss (current_cpu, GET_H_ACC40S (((FLD (f_ACC40Si)) + (1))), FLD (f_s6));
19541 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (1)), opval);
19542 written |= (1 << 6);
19543 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19549 abuf->written = written;
19554 /* maveh: maveh$pack $FRinti,$FRintj,$FRintk */
19557 SEM_FN_NAME (frvbf,maveh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19559 #define FLD(f) abuf->fields.sfmt_mwcut.f
19560 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19561 int UNUSED written = 0;
19562 IADDR UNUSED pc = abuf->addr;
19563 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19566 SI opval = frvbf_media_average (current_cpu, GET_H_FR_INT (FLD (f_FRi)), GET_H_FR_INT (FLD (f_FRj)));
19567 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19568 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19575 /* msllhi: msllhi$pack $FRinti,$u6,$FRintk */
19578 SEM_FN_NAME (frvbf,msllhi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19580 #define FLD(f) abuf->fields.sfmt_msllhi.f
19581 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19582 int UNUSED written = 0;
19583 IADDR UNUSED pc = abuf->addr;
19584 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19588 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRi)));
19589 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRi), opval);
19590 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19593 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
19594 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19595 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19598 UHI opval = SLLHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), ANDSI (FLD (f_u6), 15));
19599 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
19600 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19603 UHI opval = SLLHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), ANDSI (FLD (f_u6), 15));
19604 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
19605 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19613 /* msrlhi: msrlhi$pack $FRinti,$u6,$FRintk */
19616 SEM_FN_NAME (frvbf,msrlhi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19618 #define FLD(f) abuf->fields.sfmt_msllhi.f
19619 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19620 int UNUSED written = 0;
19621 IADDR UNUSED pc = abuf->addr;
19622 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19626 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRi)));
19627 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRi), opval);
19628 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19631 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
19632 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19633 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19636 UHI opval = SRLHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), ANDSI (FLD (f_u6), 15));
19637 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
19638 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19641 UHI opval = SRLHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), ANDSI (FLD (f_u6), 15));
19642 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
19643 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19651 /* msrahi: msrahi$pack $FRinti,$u6,$FRintk */
19654 SEM_FN_NAME (frvbf,msrahi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19656 #define FLD(f) abuf->fields.sfmt_msllhi.f
19657 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19658 int UNUSED written = 0;
19659 IADDR UNUSED pc = abuf->addr;
19660 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19664 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRi)));
19665 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRi), opval);
19666 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19669 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
19670 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19671 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19674 UHI opval = SRAHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), ANDSI (FLD (f_u6), 15));
19675 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
19676 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19679 UHI opval = SRAHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), ANDSI (FLD (f_u6), 15));
19680 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
19681 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19689 /* mdrotli: mdrotli$pack $FRintieven,$s6,$FRintkeven */
19692 SEM_FN_NAME (frvbf,mdrotli) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19694 #define FLD(f) abuf->fields.sfmt_mdrotli.f
19695 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19696 int UNUSED written = 0;
19697 IADDR UNUSED pc = abuf->addr;
19698 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19700 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1)))) {
19701 frvbf_media_register_not_aligned (current_cpu);
19705 SI opval = ROLSI (GET_H_FR_INT (FLD (f_FRi)), ANDSI (FLD (f_s6), 31));
19706 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19707 written |= (1 << 5);
19708 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19711 USI opval = ROLSI (GET_H_FR_INT (((FLD (f_FRi)) + (1))), ANDSI (FLD (f_s6), 31));
19712 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (1)), opval);
19713 written |= (1 << 6);
19714 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19719 abuf->written = written;
19724 /* mcplhi: mcplhi$pack $FRinti,$u6,$FRintk */
19727 SEM_FN_NAME (frvbf,mcplhi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19729 #define FLD(f) abuf->fields.sfmt_mcplhi.f
19730 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19731 int UNUSED written = 0;
19732 IADDR UNUSED pc = abuf->addr;
19733 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19740 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRi)));
19741 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRi), opval);
19742 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19745 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
19746 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19747 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19749 tmp_shift = ANDSI (FLD (f_u6), 15);
19750 tmp_arg1 = SLLHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), tmp_shift);
19751 if (NEHI (tmp_shift, 0)) {
19753 tmp_arg2 = GET_H_FR_HI (((FLD (f_FRi)) + (1)));
19754 tmp_arg2 = SRLHI (SLLHI (tmp_arg2, SUBSI (15, tmp_shift)), SUBSI (15, tmp_shift));
19755 tmp_arg1 = ORHI (tmp_arg1, tmp_arg2);
19759 UHI opval = tmp_arg1;
19760 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
19761 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19769 /* mcpli: mcpli$pack $FRinti,$u6,$FRintk */
19772 SEM_FN_NAME (frvbf,mcpli) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19774 #define FLD(f) abuf->fields.sfmt_mwcuti.f
19775 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19776 int UNUSED written = 0;
19777 IADDR UNUSED pc = abuf->addr;
19778 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19783 tmp_shift = ANDSI (FLD (f_u6), 31);
19784 tmp_tmp = SLLSI (GET_H_FR_INT (FLD (f_FRi)), tmp_shift);
19785 if (NESI (tmp_shift, 0)) {
19788 tmp_tmp1 = SRLSI (SLLSI (GET_H_FR_INT (((FLD (f_FRi)) + (1))), SUBSI (31, tmp_shift)), SUBSI (31, tmp_shift));
19789 tmp_tmp = ORSI (tmp_tmp, tmp_tmp1);
19793 SI opval = tmp_tmp;
19794 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19795 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19803 /* msaths: msaths$pack $FRinti,$FRintj,$FRintk */
19806 SEM_FN_NAME (frvbf,msaths) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19808 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
19809 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19810 int UNUSED written = 0;
19811 IADDR UNUSED pc = abuf->addr;
19812 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19820 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
19821 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
19822 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
19823 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
19825 if (GTHI (tmp_argihi, tmp_argjhi)) {
19827 UHI opval = tmp_argjhi;
19828 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
19829 written |= (1 << 9);
19830 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19833 if (LTHI (tmp_argihi, INVHI (tmp_argjhi))) {
19835 UHI opval = INVHI (tmp_argjhi);
19836 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
19837 written |= (1 << 9);
19838 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19842 UHI opval = tmp_argihi;
19843 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
19844 written |= (1 << 9);
19845 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19849 if (GTHI (tmp_argilo, tmp_argjlo)) {
19851 UHI opval = tmp_argjlo;
19852 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
19853 written |= (1 << 10);
19854 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19857 if (LTHI (tmp_argilo, INVHI (tmp_argjlo))) {
19859 UHI opval = INVHI (tmp_argjlo);
19860 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
19861 written |= (1 << 10);
19862 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19866 UHI opval = tmp_argilo;
19867 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
19868 written |= (1 << 10);
19869 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19875 abuf->written = written;
19880 /* mqsaths: mqsaths$pack $FRintieven,$FRintjeven,$FRintkeven */
19883 SEM_FN_NAME (frvbf,mqsaths) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19885 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
19886 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19887 int UNUSED written = 0;
19888 IADDR UNUSED pc = abuf->addr;
19889 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19891 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
19892 frvbf_media_register_not_aligned (current_cpu);
19900 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
19901 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19902 written |= (1 << 14);
19903 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19906 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
19907 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
19908 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
19909 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
19911 if (GTHI (tmp_argihi, tmp_argjhi)) {
19913 UHI opval = tmp_argjhi;
19914 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
19915 written |= (1 << 15);
19916 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19919 if (LTHI (tmp_argihi, INVHI (tmp_argjhi))) {
19921 UHI opval = INVHI (tmp_argjhi);
19922 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
19923 written |= (1 << 15);
19924 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19928 UHI opval = tmp_argihi;
19929 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
19930 written |= (1 << 15);
19931 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19935 if (GTHI (tmp_argilo, tmp_argjlo)) {
19937 UHI opval = tmp_argjlo;
19938 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
19939 written |= (1 << 17);
19940 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19943 if (LTHI (tmp_argilo, INVHI (tmp_argjlo))) {
19945 UHI opval = INVHI (tmp_argjlo);
19946 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
19947 written |= (1 << 17);
19948 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19952 UHI opval = tmp_argilo;
19953 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
19954 written |= (1 << 17);
19955 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19960 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
19961 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
19962 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
19963 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
19965 if (GTHI (tmp_argihi, tmp_argjhi)) {
19967 UHI opval = tmp_argjhi;
19968 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
19969 written |= (1 << 16);
19970 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19973 if (LTHI (tmp_argihi, INVHI (tmp_argjhi))) {
19975 UHI opval = INVHI (tmp_argjhi);
19976 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
19977 written |= (1 << 16);
19978 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19982 UHI opval = tmp_argihi;
19983 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
19984 written |= (1 << 16);
19985 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19989 if (GTHI (tmp_argilo, tmp_argjlo)) {
19991 UHI opval = tmp_argjlo;
19992 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
19993 written |= (1 << 18);
19994 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19997 if (LTHI (tmp_argilo, INVHI (tmp_argjlo))) {
19999 UHI opval = INVHI (tmp_argjlo);
20000 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
20001 written |= (1 << 18);
20002 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20006 UHI opval = tmp_argilo;
20007 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
20008 written |= (1 << 18);
20009 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20016 abuf->written = written;
20021 /* msathu: msathu$pack $FRinti,$FRintj,$FRintk */
20024 SEM_FN_NAME (frvbf,msathu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20026 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
20027 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20028 int UNUSED written = 0;
20029 IADDR UNUSED pc = abuf->addr;
20030 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20038 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20039 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20040 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20041 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20043 if (GTUHI (tmp_argihi, tmp_argjhi)) {
20045 UHI opval = tmp_argjhi;
20046 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20047 written |= (1 << 9);
20048 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20052 UHI opval = tmp_argihi;
20053 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20054 written |= (1 << 9);
20055 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20058 if (GTUHI (tmp_argilo, tmp_argjlo)) {
20060 UHI opval = tmp_argjlo;
20061 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20062 written |= (1 << 10);
20063 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20067 UHI opval = tmp_argilo;
20068 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20069 written |= (1 << 10);
20070 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20075 abuf->written = written;
20080 /* mcmpsh: mcmpsh$pack $FRinti,$FRintj,$FCCk */
20083 SEM_FN_NAME (frvbf,mcmpsh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20085 #define FLD(f) abuf->fields.sfmt_mcmpsh.f
20086 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20087 int UNUSED written = 0;
20088 IADDR UNUSED pc = abuf->addr;
20089 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20091 if (ANDSI (FLD (f_FCCk), SUBSI (2, 1))) {
20092 frvbf_media_cr_not_aligned (current_cpu);
20100 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20101 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20102 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20103 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20105 if (GTHI (tmp_argihi, tmp_argjhi)) {
20108 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCk)]), opval);
20109 written |= (1 << 9);
20110 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20113 if (EQHI (tmp_argihi, tmp_argjhi)) {
20116 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCk)]), opval);
20117 written |= (1 << 9);
20118 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20121 if (LTHI (tmp_argihi, tmp_argjhi)) {
20124 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCk)]), opval);
20125 written |= (1 << 9);
20126 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20131 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCk)]), opval);
20132 written |= (1 << 9);
20133 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20138 if (GTHI (tmp_argilo, tmp_argjlo)) {
20141 sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCk)) + (1))]), opval);
20142 written |= (1 << 10);
20143 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20146 if (EQHI (tmp_argilo, tmp_argjlo)) {
20149 sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCk)) + (1))]), opval);
20150 written |= (1 << 10);
20151 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20154 if (LTHI (tmp_argilo, tmp_argjlo)) {
20157 sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCk)) + (1))]), opval);
20158 written |= (1 << 10);
20159 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20164 sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCk)) + (1))]), opval);
20165 written |= (1 << 10);
20166 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20174 abuf->written = written;
20179 /* mcmpuh: mcmpuh$pack $FRinti,$FRintj,$FCCk */
20182 SEM_FN_NAME (frvbf,mcmpuh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20184 #define FLD(f) abuf->fields.sfmt_mcmpsh.f
20185 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20186 int UNUSED written = 0;
20187 IADDR UNUSED pc = abuf->addr;
20188 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20190 if (ANDSI (FLD (f_FCCk), SUBSI (2, 1))) {
20191 frvbf_media_cr_not_aligned (current_cpu);
20199 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20200 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20201 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20202 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20204 if (GTUHI (tmp_argihi, tmp_argjhi)) {
20207 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCk)]), opval);
20208 written |= (1 << 9);
20209 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20212 if (EQHI (tmp_argihi, tmp_argjhi)) {
20215 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCk)]), opval);
20216 written |= (1 << 9);
20217 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20220 if (LTUHI (tmp_argihi, tmp_argjhi)) {
20223 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCk)]), opval);
20224 written |= (1 << 9);
20225 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20230 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCk)]), opval);
20231 written |= (1 << 9);
20232 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20237 if (GTUHI (tmp_argilo, tmp_argjlo)) {
20240 sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCk)) + (1))]), opval);
20241 written |= (1 << 10);
20242 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20245 if (EQHI (tmp_argilo, tmp_argjlo)) {
20248 sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCk)) + (1))]), opval);
20249 written |= (1 << 10);
20250 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20253 if (LTUHI (tmp_argilo, tmp_argjlo)) {
20256 sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCk)) + (1))]), opval);
20257 written |= (1 << 10);
20258 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20263 sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCk)) + (1))]), opval);
20264 written |= (1 << 10);
20265 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20273 abuf->written = written;
20278 /* mabshs: mabshs$pack $FRintj,$FRintk */
20281 SEM_FN_NAME (frvbf,mabshs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20283 #define FLD(f) abuf->fields.sfmt_mabshs.f
20284 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20285 int UNUSED written = 0;
20286 IADDR UNUSED pc = abuf->addr;
20287 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20293 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRj)));
20294 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRj), opval);
20295 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
20298 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
20299 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
20300 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
20302 tmp_arghi = GET_H_FR_HI (((FLD (f_FRj)) + (0)));
20303 tmp_arglo = GET_H_FR_LO (((FLD (f_FRj)) + (0)));
20304 if (GTDI (ABSHI (tmp_arghi), 32767)) {
20308 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20309 written |= (1 << 8);
20310 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20312 frvbf_media_overflow (current_cpu, 8);
20315 if (LTDI (ABSHI (tmp_arghi), -32768)) {
20318 UHI opval = -32768;
20319 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20320 written |= (1 << 8);
20321 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20323 frvbf_media_overflow (current_cpu, 8);
20327 UHI opval = ABSHI (tmp_arghi);
20328 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20329 written |= (1 << 8);
20330 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20334 if (GTDI (ABSHI (tmp_arglo), 32767)) {
20338 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20339 written |= (1 << 9);
20340 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20342 frvbf_media_overflow (current_cpu, 4);
20345 if (LTDI (ABSHI (tmp_arglo), -32768)) {
20348 UHI opval = -32768;
20349 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20350 written |= (1 << 9);
20351 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20353 frvbf_media_overflow (current_cpu, 4);
20357 UHI opval = ABSHI (tmp_arglo);
20358 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20359 written |= (1 << 9);
20360 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20366 abuf->written = written;
20371 /* maddhss: maddhss$pack $FRinti,$FRintj,$FRintk */
20374 SEM_FN_NAME (frvbf,maddhss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20376 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
20377 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20378 int UNUSED written = 0;
20379 IADDR UNUSED pc = abuf->addr;
20380 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20388 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20389 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20390 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20391 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20395 tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
20396 if (GTDI (tmp_tmp, 32767)) {
20400 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20401 written |= (1 << 9);
20402 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20404 frvbf_media_overflow (current_cpu, 8);
20407 if (LTDI (tmp_tmp, -32768)) {
20410 UHI opval = -32768;
20411 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20412 written |= (1 << 9);
20413 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20415 frvbf_media_overflow (current_cpu, 8);
20419 UHI opval = tmp_tmp;
20420 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20421 written |= (1 << 9);
20422 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20429 tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
20430 if (GTDI (tmp_tmp, 32767)) {
20434 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20435 written |= (1 << 10);
20436 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20438 frvbf_media_overflow (current_cpu, 4);
20441 if (LTDI (tmp_tmp, -32768)) {
20444 UHI opval = -32768;
20445 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20446 written |= (1 << 10);
20447 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20449 frvbf_media_overflow (current_cpu, 4);
20453 UHI opval = tmp_tmp;
20454 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20455 written |= (1 << 10);
20456 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20463 abuf->written = written;
20468 /* maddhus: maddhus$pack $FRinti,$FRintj,$FRintk */
20471 SEM_FN_NAME (frvbf,maddhus) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20473 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
20474 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20475 int UNUSED written = 0;
20476 IADDR UNUSED pc = abuf->addr;
20477 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20485 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20486 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20487 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20488 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20492 tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
20493 if (GTDI (tmp_tmp, 65535)) {
20497 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20498 written |= (1 << 9);
20499 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20501 frvbf_media_overflow (current_cpu, 8);
20504 if (LTDI (tmp_tmp, 0)) {
20508 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20509 written |= (1 << 9);
20510 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20512 frvbf_media_overflow (current_cpu, 8);
20516 UHI opval = tmp_tmp;
20517 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20518 written |= (1 << 9);
20519 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20526 tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
20527 if (GTDI (tmp_tmp, 65535)) {
20531 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20532 written |= (1 << 10);
20533 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20535 frvbf_media_overflow (current_cpu, 4);
20538 if (LTDI (tmp_tmp, 0)) {
20542 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20543 written |= (1 << 10);
20544 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20546 frvbf_media_overflow (current_cpu, 4);
20550 UHI opval = tmp_tmp;
20551 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20552 written |= (1 << 10);
20553 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20560 abuf->written = written;
20565 /* msubhss: msubhss$pack $FRinti,$FRintj,$FRintk */
20568 SEM_FN_NAME (frvbf,msubhss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20570 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
20571 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20572 int UNUSED written = 0;
20573 IADDR UNUSED pc = abuf->addr;
20574 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20582 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20583 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20584 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20585 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20589 tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
20590 if (GTDI (tmp_tmp, 32767)) {
20594 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20595 written |= (1 << 9);
20596 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20598 frvbf_media_overflow (current_cpu, 8);
20601 if (LTDI (tmp_tmp, -32768)) {
20604 UHI opval = -32768;
20605 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20606 written |= (1 << 9);
20607 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20609 frvbf_media_overflow (current_cpu, 8);
20613 UHI opval = tmp_tmp;
20614 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20615 written |= (1 << 9);
20616 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20623 tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
20624 if (GTDI (tmp_tmp, 32767)) {
20628 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20629 written |= (1 << 10);
20630 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20632 frvbf_media_overflow (current_cpu, 4);
20635 if (LTDI (tmp_tmp, -32768)) {
20638 UHI opval = -32768;
20639 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20640 written |= (1 << 10);
20641 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20643 frvbf_media_overflow (current_cpu, 4);
20647 UHI opval = tmp_tmp;
20648 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20649 written |= (1 << 10);
20650 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20657 abuf->written = written;
20662 /* msubhus: msubhus$pack $FRinti,$FRintj,$FRintk */
20665 SEM_FN_NAME (frvbf,msubhus) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20667 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
20668 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20669 int UNUSED written = 0;
20670 IADDR UNUSED pc = abuf->addr;
20671 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20679 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20680 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20681 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20682 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20686 tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
20687 if (GTDI (tmp_tmp, 65535)) {
20691 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20692 written |= (1 << 9);
20693 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20695 frvbf_media_overflow (current_cpu, 8);
20698 if (LTDI (tmp_tmp, 0)) {
20702 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20703 written |= (1 << 9);
20704 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20706 frvbf_media_overflow (current_cpu, 8);
20710 UHI opval = tmp_tmp;
20711 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20712 written |= (1 << 9);
20713 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20720 tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
20721 if (GTDI (tmp_tmp, 65535)) {
20725 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20726 written |= (1 << 10);
20727 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20729 frvbf_media_overflow (current_cpu, 4);
20732 if (LTDI (tmp_tmp, 0)) {
20736 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20737 written |= (1 << 10);
20738 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20740 frvbf_media_overflow (current_cpu, 4);
20744 UHI opval = tmp_tmp;
20745 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20746 written |= (1 << 10);
20747 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20754 abuf->written = written;
20759 /* cmaddhss: cmaddhss$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
20762 SEM_FN_NAME (frvbf,cmaddhss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20764 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
20765 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20766 int UNUSED written = 0;
20767 IADDR UNUSED pc = abuf->addr;
20768 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20770 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
20777 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20778 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20779 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20780 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20784 tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
20785 if (GTDI (tmp_tmp, 32767)) {
20789 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20790 written |= (1 << 11);
20791 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20793 frvbf_media_overflow (current_cpu, 8);
20796 if (LTDI (tmp_tmp, -32768)) {
20799 UHI opval = -32768;
20800 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20801 written |= (1 << 11);
20802 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20804 frvbf_media_overflow (current_cpu, 8);
20808 UHI opval = tmp_tmp;
20809 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20810 written |= (1 << 11);
20811 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20818 tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
20819 if (GTDI (tmp_tmp, 32767)) {
20823 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20824 written |= (1 << 12);
20825 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20827 frvbf_media_overflow (current_cpu, 4);
20830 if (LTDI (tmp_tmp, -32768)) {
20833 UHI opval = -32768;
20834 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20835 written |= (1 << 12);
20836 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20838 frvbf_media_overflow (current_cpu, 4);
20842 UHI opval = tmp_tmp;
20843 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20844 written |= (1 << 12);
20845 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20853 abuf->written = written;
20858 /* cmaddhus: cmaddhus$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
20861 SEM_FN_NAME (frvbf,cmaddhus) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20863 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
20864 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20865 int UNUSED written = 0;
20866 IADDR UNUSED pc = abuf->addr;
20867 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20869 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
20876 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20877 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20878 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20879 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20883 tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
20884 if (GTDI (tmp_tmp, 65535)) {
20888 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20889 written |= (1 << 11);
20890 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20892 frvbf_media_overflow (current_cpu, 8);
20895 if (LTDI (tmp_tmp, 0)) {
20899 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20900 written |= (1 << 11);
20901 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20903 frvbf_media_overflow (current_cpu, 8);
20907 UHI opval = tmp_tmp;
20908 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20909 written |= (1 << 11);
20910 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20917 tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
20918 if (GTDI (tmp_tmp, 65535)) {
20922 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20923 written |= (1 << 12);
20924 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20926 frvbf_media_overflow (current_cpu, 4);
20929 if (LTDI (tmp_tmp, 0)) {
20933 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20934 written |= (1 << 12);
20935 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20937 frvbf_media_overflow (current_cpu, 4);
20941 UHI opval = tmp_tmp;
20942 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20943 written |= (1 << 12);
20944 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20952 abuf->written = written;
20957 /* cmsubhss: cmsubhss$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
20960 SEM_FN_NAME (frvbf,cmsubhss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20962 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
20963 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20964 int UNUSED written = 0;
20965 IADDR UNUSED pc = abuf->addr;
20966 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20968 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
20975 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20976 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20977 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20978 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20982 tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
20983 if (GTDI (tmp_tmp, 32767)) {
20987 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20988 written |= (1 << 11);
20989 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20991 frvbf_media_overflow (current_cpu, 8);
20994 if (LTDI (tmp_tmp, -32768)) {
20997 UHI opval = -32768;
20998 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20999 written |= (1 << 11);
21000 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21002 frvbf_media_overflow (current_cpu, 8);
21006 UHI opval = tmp_tmp;
21007 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21008 written |= (1 << 11);
21009 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21016 tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
21017 if (GTDI (tmp_tmp, 32767)) {
21021 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21022 written |= (1 << 12);
21023 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21025 frvbf_media_overflow (current_cpu, 4);
21028 if (LTDI (tmp_tmp, -32768)) {
21031 UHI opval = -32768;
21032 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21033 written |= (1 << 12);
21034 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21036 frvbf_media_overflow (current_cpu, 4);
21040 UHI opval = tmp_tmp;
21041 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21042 written |= (1 << 12);
21043 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21051 abuf->written = written;
21056 /* cmsubhus: cmsubhus$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
21059 SEM_FN_NAME (frvbf,cmsubhus) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
21061 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
21062 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
21063 int UNUSED written = 0;
21064 IADDR UNUSED pc = abuf->addr;
21065 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
21067 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
21074 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21075 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21076 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21077 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21081 tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
21082 if (GTDI (tmp_tmp, 65535)) {
21086 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21087 written |= (1 << 11);
21088 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21090 frvbf_media_overflow (current_cpu, 8);
21093 if (LTDI (tmp_tmp, 0)) {
21097 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21098 written |= (1 << 11);
21099 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21101 frvbf_media_overflow (current_cpu, 8);
21105 UHI opval = tmp_tmp;
21106 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21107 written |= (1 << 11);
21108 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21115 tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
21116 if (GTDI (tmp_tmp, 65535)) {
21120 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21121 written |= (1 << 12);
21122 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21124 frvbf_media_overflow (current_cpu, 4);
21127 if (LTDI (tmp_tmp, 0)) {
21131 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21132 written |= (1 << 12);
21133 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21135 frvbf_media_overflow (current_cpu, 4);
21139 UHI opval = tmp_tmp;
21140 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21141 written |= (1 << 12);
21142 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21150 abuf->written = written;
21155 /* mqaddhss: mqaddhss$pack $FRintieven,$FRintjeven,$FRintkeven */
21158 SEM_FN_NAME (frvbf,mqaddhss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
21160 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
21161 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
21162 int UNUSED written = 0;
21163 IADDR UNUSED pc = abuf->addr;
21164 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
21166 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
21167 frvbf_media_register_not_aligned (current_cpu);
21175 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
21176 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
21177 written |= (1 << 14);
21178 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
21181 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21182 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21183 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21184 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21188 tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
21189 if (GTDI (tmp_tmp, 32767)) {
21193 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21194 written |= (1 << 15);
21195 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21197 frvbf_media_overflow (current_cpu, 8);
21200 if (LTDI (tmp_tmp, -32768)) {
21203 UHI opval = -32768;
21204 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21205 written |= (1 << 15);
21206 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21208 frvbf_media_overflow (current_cpu, 8);
21212 UHI opval = tmp_tmp;
21213 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21214 written |= (1 << 15);
21215 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21222 tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
21223 if (GTDI (tmp_tmp, 32767)) {
21227 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21228 written |= (1 << 17);
21229 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21231 frvbf_media_overflow (current_cpu, 4);
21234 if (LTDI (tmp_tmp, -32768)) {
21237 UHI opval = -32768;
21238 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21239 written |= (1 << 17);
21240 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21242 frvbf_media_overflow (current_cpu, 4);
21246 UHI opval = tmp_tmp;
21247 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21248 written |= (1 << 17);
21249 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21255 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21256 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21257 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21258 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21262 tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
21263 if (GTDI (tmp_tmp, 32767)) {
21267 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21268 written |= (1 << 16);
21269 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21271 frvbf_media_overflow (current_cpu, 2);
21274 if (LTDI (tmp_tmp, -32768)) {
21277 UHI opval = -32768;
21278 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21279 written |= (1 << 16);
21280 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21282 frvbf_media_overflow (current_cpu, 2);
21286 UHI opval = tmp_tmp;
21287 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21288 written |= (1 << 16);
21289 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21296 tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
21297 if (GTDI (tmp_tmp, 32767)) {
21301 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21302 written |= (1 << 18);
21303 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21305 frvbf_media_overflow (current_cpu, 1);
21308 if (LTDI (tmp_tmp, -32768)) {
21311 UHI opval = -32768;
21312 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21313 written |= (1 << 18);
21314 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21316 frvbf_media_overflow (current_cpu, 1);
21320 UHI opval = tmp_tmp;
21321 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21322 written |= (1 << 18);
21323 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21331 abuf->written = written;
21336 /* mqaddhus: mqaddhus$pack $FRintieven,$FRintjeven,$FRintkeven */
21339 SEM_FN_NAME (frvbf,mqaddhus) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
21341 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
21342 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
21343 int UNUSED written = 0;
21344 IADDR UNUSED pc = abuf->addr;
21345 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
21347 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
21348 frvbf_media_register_not_aligned (current_cpu);
21356 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
21357 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
21358 written |= (1 << 14);
21359 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
21362 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21363 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21364 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21365 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21369 tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
21370 if (GTDI (tmp_tmp, 65535)) {
21374 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21375 written |= (1 << 15);
21376 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21378 frvbf_media_overflow (current_cpu, 8);
21381 if (LTDI (tmp_tmp, 0)) {
21385 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21386 written |= (1 << 15);
21387 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21389 frvbf_media_overflow (current_cpu, 8);
21393 UHI opval = tmp_tmp;
21394 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21395 written |= (1 << 15);
21396 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21403 tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
21404 if (GTDI (tmp_tmp, 65535)) {
21408 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21409 written |= (1 << 17);
21410 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21412 frvbf_media_overflow (current_cpu, 4);
21415 if (LTDI (tmp_tmp, 0)) {
21419 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21420 written |= (1 << 17);
21421 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21423 frvbf_media_overflow (current_cpu, 4);
21427 UHI opval = tmp_tmp;
21428 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21429 written |= (1 << 17);
21430 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21436 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21437 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21438 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21439 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21443 tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
21444 if (GTDI (tmp_tmp, 65535)) {
21448 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21449 written |= (1 << 16);
21450 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21452 frvbf_media_overflow (current_cpu, 2);
21455 if (LTDI (tmp_tmp, 0)) {
21459 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21460 written |= (1 << 16);
21461 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21463 frvbf_media_overflow (current_cpu, 2);
21467 UHI opval = tmp_tmp;
21468 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21469 written |= (1 << 16);
21470 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21477 tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
21478 if (GTDI (tmp_tmp, 65535)) {
21482 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21483 written |= (1 << 18);
21484 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21486 frvbf_media_overflow (current_cpu, 1);
21489 if (LTDI (tmp_tmp, 0)) {
21493 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21494 written |= (1 << 18);
21495 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21497 frvbf_media_overflow (current_cpu, 1);
21501 UHI opval = tmp_tmp;
21502 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21503 written |= (1 << 18);
21504 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21512 abuf->written = written;
21517 /* mqsubhss: mqsubhss$pack $FRintieven,$FRintjeven,$FRintkeven */
21520 SEM_FN_NAME (frvbf,mqsubhss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
21522 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
21523 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
21524 int UNUSED written = 0;
21525 IADDR UNUSED pc = abuf->addr;
21526 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
21528 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
21529 frvbf_media_register_not_aligned (current_cpu);
21537 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
21538 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
21539 written |= (1 << 14);
21540 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
21543 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21544 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21545 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21546 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21550 tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
21551 if (GTDI (tmp_tmp, 32767)) {
21555 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21556 written |= (1 << 15);
21557 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21559 frvbf_media_overflow (current_cpu, 8);
21562 if (LTDI (tmp_tmp, -32768)) {
21565 UHI opval = -32768;
21566 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21567 written |= (1 << 15);
21568 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21570 frvbf_media_overflow (current_cpu, 8);
21574 UHI opval = tmp_tmp;
21575 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21576 written |= (1 << 15);
21577 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21584 tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
21585 if (GTDI (tmp_tmp, 32767)) {
21589 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21590 written |= (1 << 17);
21591 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21593 frvbf_media_overflow (current_cpu, 4);
21596 if (LTDI (tmp_tmp, -32768)) {
21599 UHI opval = -32768;
21600 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21601 written |= (1 << 17);
21602 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21604 frvbf_media_overflow (current_cpu, 4);
21608 UHI opval = tmp_tmp;
21609 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21610 written |= (1 << 17);
21611 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21617 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21618 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21619 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21620 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21624 tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
21625 if (GTDI (tmp_tmp, 32767)) {
21629 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21630 written |= (1 << 16);
21631 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21633 frvbf_media_overflow (current_cpu, 2);
21636 if (LTDI (tmp_tmp, -32768)) {
21639 UHI opval = -32768;
21640 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21641 written |= (1 << 16);
21642 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21644 frvbf_media_overflow (current_cpu, 2);
21648 UHI opval = tmp_tmp;
21649 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21650 written |= (1 << 16);
21651 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21658 tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
21659 if (GTDI (tmp_tmp, 32767)) {
21663 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21664 written |= (1 << 18);
21665 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21667 frvbf_media_overflow (current_cpu, 1);
21670 if (LTDI (tmp_tmp, -32768)) {
21673 UHI opval = -32768;
21674 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21675 written |= (1 << 18);
21676 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21678 frvbf_media_overflow (current_cpu, 1);
21682 UHI opval = tmp_tmp;
21683 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21684 written |= (1 << 18);
21685 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21693 abuf->written = written;
21698 /* mqsubhus: mqsubhus$pack $FRintieven,$FRintjeven,$FRintkeven */
21701 SEM_FN_NAME (frvbf,mqsubhus) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
21703 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
21704 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
21705 int UNUSED written = 0;
21706 IADDR UNUSED pc = abuf->addr;
21707 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
21709 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
21710 frvbf_media_register_not_aligned (current_cpu);
21718 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
21719 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
21720 written |= (1 << 14);
21721 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
21724 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21725 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21726 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21727 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21731 tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
21732 if (GTDI (tmp_tmp, 65535)) {
21736 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21737 written |= (1 << 15);
21738 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21740 frvbf_media_overflow (current_cpu, 8);
21743 if (LTDI (tmp_tmp, 0)) {
21747 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21748 written |= (1 << 15);
21749 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21751 frvbf_media_overflow (current_cpu, 8);
21755 UHI opval = tmp_tmp;
21756 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21757 written |= (1 << 15);
21758 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21765 tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
21766 if (GTDI (tmp_tmp, 65535)) {
21770 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21771 written |= (1 << 17);
21772 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21774 frvbf_media_overflow (current_cpu, 4);
21777 if (LTDI (tmp_tmp, 0)) {
21781 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21782 written |= (1 << 17);
21783 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21785 frvbf_media_overflow (current_cpu, 4);
21789 UHI opval = tmp_tmp;
21790 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21791 written |= (1 << 17);
21792 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21798 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21799 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21800 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21801 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21805 tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
21806 if (GTDI (tmp_tmp, 65535)) {
21810 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21811 written |= (1 << 16);
21812 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21814 frvbf_media_overflow (current_cpu, 2);
21817 if (LTDI (tmp_tmp, 0)) {
21821 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21822 written |= (1 << 16);
21823 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21825 frvbf_media_overflow (current_cpu, 2);
21829 UHI opval = tmp_tmp;
21830 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21831 written |= (1 << 16);
21832 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21839 tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
21840 if (GTDI (tmp_tmp, 65535)) {
21844 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21845 written |= (1 << 18);
21846 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21848 frvbf_media_overflow (current_cpu, 1);
21851 if (LTDI (tmp_tmp, 0)) {
21855 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21856 written |= (1 << 18);
21857 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21859 frvbf_media_overflow (current_cpu, 1);
21863 UHI opval = tmp_tmp;
21864 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21865 written |= (1 << 18);
21866 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21874 abuf->written = written;
21879 /* cmqaddhss: cmqaddhss$pack $FRintieven,$FRintjeven,$FRintkeven,$CCi,$cond */
21882 SEM_FN_NAME (frvbf,cmqaddhss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
21884 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
21885 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
21886 int UNUSED written = 0;
21887 IADDR UNUSED pc = abuf->addr;
21888 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
21890 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
21891 frvbf_media_register_not_aligned (current_cpu);
21893 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
21900 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
21901 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
21902 written |= (1 << 16);
21903 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
21906 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21907 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21908 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21909 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21913 tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
21914 if (GTDI (tmp_tmp, 32767)) {
21918 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21919 written |= (1 << 17);
21920 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21922 frvbf_media_overflow (current_cpu, 8);
21925 if (LTDI (tmp_tmp, -32768)) {
21928 UHI opval = -32768;
21929 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21930 written |= (1 << 17);
21931 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21933 frvbf_media_overflow (current_cpu, 8);
21937 UHI opval = tmp_tmp;
21938 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21939 written |= (1 << 17);
21940 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21947 tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
21948 if (GTDI (tmp_tmp, 32767)) {
21952 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21953 written |= (1 << 19);
21954 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21956 frvbf_media_overflow (current_cpu, 4);
21959 if (LTDI (tmp_tmp, -32768)) {
21962 UHI opval = -32768;
21963 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21964 written |= (1 << 19);
21965 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21967 frvbf_media_overflow (current_cpu, 4);
21971 UHI opval = tmp_tmp;
21972 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21973 written |= (1 << 19);
21974 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21980 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21981 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21982 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21983 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21987 tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
21988 if (GTDI (tmp_tmp, 32767)) {
21992 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21993 written |= (1 << 18);
21994 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21996 frvbf_media_overflow (current_cpu, 2);
21999 if (LTDI (tmp_tmp, -32768)) {
22002 UHI opval = -32768;
22003 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22004 written |= (1 << 18);
22005 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22007 frvbf_media_overflow (current_cpu, 2);
22011 UHI opval = tmp_tmp;
22012 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22013 written |= (1 << 18);
22014 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22021 tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
22022 if (GTDI (tmp_tmp, 32767)) {
22026 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22027 written |= (1 << 20);
22028 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22030 frvbf_media_overflow (current_cpu, 1);
22033 if (LTDI (tmp_tmp, -32768)) {
22036 UHI opval = -32768;
22037 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22038 written |= (1 << 20);
22039 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22041 frvbf_media_overflow (current_cpu, 1);
22045 UHI opval = tmp_tmp;
22046 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22047 written |= (1 << 20);
22048 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22057 abuf->written = written;
22062 /* cmqaddhus: cmqaddhus$pack $FRintieven,$FRintjeven,$FRintkeven,$CCi,$cond */
22065 SEM_FN_NAME (frvbf,cmqaddhus) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
22067 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
22068 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
22069 int UNUSED written = 0;
22070 IADDR UNUSED pc = abuf->addr;
22071 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
22073 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
22074 frvbf_media_register_not_aligned (current_cpu);
22076 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
22083 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
22084 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
22085 written |= (1 << 16);
22086 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
22089 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22090 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22091 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22092 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22096 tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
22097 if (GTDI (tmp_tmp, 65535)) {
22101 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22102 written |= (1 << 17);
22103 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22105 frvbf_media_overflow (current_cpu, 8);
22108 if (LTDI (tmp_tmp, 0)) {
22112 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22113 written |= (1 << 17);
22114 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22116 frvbf_media_overflow (current_cpu, 8);
22120 UHI opval = tmp_tmp;
22121 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22122 written |= (1 << 17);
22123 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22130 tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
22131 if (GTDI (tmp_tmp, 65535)) {
22135 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22136 written |= (1 << 19);
22137 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22139 frvbf_media_overflow (current_cpu, 4);
22142 if (LTDI (tmp_tmp, 0)) {
22146 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22147 written |= (1 << 19);
22148 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22150 frvbf_media_overflow (current_cpu, 4);
22154 UHI opval = tmp_tmp;
22155 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22156 written |= (1 << 19);
22157 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22163 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22164 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22165 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22166 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22170 tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
22171 if (GTDI (tmp_tmp, 65535)) {
22175 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22176 written |= (1 << 18);
22177 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22179 frvbf_media_overflow (current_cpu, 2);
22182 if (LTDI (tmp_tmp, 0)) {
22186 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22187 written |= (1 << 18);
22188 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22190 frvbf_media_overflow (current_cpu, 2);
22194 UHI opval = tmp_tmp;
22195 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22196 written |= (1 << 18);
22197 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22204 tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
22205 if (GTDI (tmp_tmp, 65535)) {
22209 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22210 written |= (1 << 20);
22211 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22213 frvbf_media_overflow (current_cpu, 1);
22216 if (LTDI (tmp_tmp, 0)) {
22220 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22221 written |= (1 << 20);
22222 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22224 frvbf_media_overflow (current_cpu, 1);
22228 UHI opval = tmp_tmp;
22229 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22230 written |= (1 << 20);
22231 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22240 abuf->written = written;
22245 /* cmqsubhss: cmqsubhss$pack $FRintieven,$FRintjeven,$FRintkeven,$CCi,$cond */
22248 SEM_FN_NAME (frvbf,cmqsubhss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
22250 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
22251 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
22252 int UNUSED written = 0;
22253 IADDR UNUSED pc = abuf->addr;
22254 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
22256 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
22257 frvbf_media_register_not_aligned (current_cpu);
22259 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
22266 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
22267 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
22268 written |= (1 << 16);
22269 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
22272 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22273 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22274 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22275 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22279 tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
22280 if (GTDI (tmp_tmp, 32767)) {
22284 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22285 written |= (1 << 17);
22286 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22288 frvbf_media_overflow (current_cpu, 8);
22291 if (LTDI (tmp_tmp, -32768)) {
22294 UHI opval = -32768;
22295 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22296 written |= (1 << 17);
22297 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22299 frvbf_media_overflow (current_cpu, 8);
22303 UHI opval = tmp_tmp;
22304 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22305 written |= (1 << 17);
22306 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22313 tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
22314 if (GTDI (tmp_tmp, 32767)) {
22318 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22319 written |= (1 << 19);
22320 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22322 frvbf_media_overflow (current_cpu, 4);
22325 if (LTDI (tmp_tmp, -32768)) {
22328 UHI opval = -32768;
22329 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22330 written |= (1 << 19);
22331 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22333 frvbf_media_overflow (current_cpu, 4);
22337 UHI opval = tmp_tmp;
22338 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22339 written |= (1 << 19);
22340 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22346 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22347 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22348 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22349 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22353 tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
22354 if (GTDI (tmp_tmp, 32767)) {
22358 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22359 written |= (1 << 18);
22360 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22362 frvbf_media_overflow (current_cpu, 2);
22365 if (LTDI (tmp_tmp, -32768)) {
22368 UHI opval = -32768;
22369 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22370 written |= (1 << 18);
22371 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22373 frvbf_media_overflow (current_cpu, 2);
22377 UHI opval = tmp_tmp;
22378 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22379 written |= (1 << 18);
22380 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22387 tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
22388 if (GTDI (tmp_tmp, 32767)) {
22392 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22393 written |= (1 << 20);
22394 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22396 frvbf_media_overflow (current_cpu, 1);
22399 if (LTDI (tmp_tmp, -32768)) {
22402 UHI opval = -32768;
22403 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22404 written |= (1 << 20);
22405 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22407 frvbf_media_overflow (current_cpu, 1);
22411 UHI opval = tmp_tmp;
22412 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22413 written |= (1 << 20);
22414 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22423 abuf->written = written;
22428 /* cmqsubhus: cmqsubhus$pack $FRintieven,$FRintjeven,$FRintkeven,$CCi,$cond */
22431 SEM_FN_NAME (frvbf,cmqsubhus) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
22433 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
22434 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
22435 int UNUSED written = 0;
22436 IADDR UNUSED pc = abuf->addr;
22437 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
22439 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
22440 frvbf_media_register_not_aligned (current_cpu);
22442 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
22449 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
22450 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
22451 written |= (1 << 16);
22452 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
22455 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22456 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22457 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22458 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22462 tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
22463 if (GTDI (tmp_tmp, 65535)) {
22467 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22468 written |= (1 << 17);
22469 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22471 frvbf_media_overflow (current_cpu, 8);
22474 if (LTDI (tmp_tmp, 0)) {
22478 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22479 written |= (1 << 17);
22480 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22482 frvbf_media_overflow (current_cpu, 8);
22486 UHI opval = tmp_tmp;
22487 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22488 written |= (1 << 17);
22489 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22496 tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
22497 if (GTDI (tmp_tmp, 65535)) {
22501 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22502 written |= (1 << 19);
22503 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22505 frvbf_media_overflow (current_cpu, 4);
22508 if (LTDI (tmp_tmp, 0)) {
22512 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22513 written |= (1 << 19);
22514 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22516 frvbf_media_overflow (current_cpu, 4);
22520 UHI opval = tmp_tmp;
22521 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22522 written |= (1 << 19);
22523 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22529 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22530 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22531 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22532 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22536 tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
22537 if (GTDI (tmp_tmp, 65535)) {
22541 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22542 written |= (1 << 18);
22543 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22545 frvbf_media_overflow (current_cpu, 2);
22548 if (LTDI (tmp_tmp, 0)) {
22552 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22553 written |= (1 << 18);
22554 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22556 frvbf_media_overflow (current_cpu, 2);
22560 UHI opval = tmp_tmp;
22561 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22562 written |= (1 << 18);
22563 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22570 tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
22571 if (GTDI (tmp_tmp, 65535)) {
22575 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22576 written |= (1 << 20);
22577 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22579 frvbf_media_overflow (current_cpu, 1);
22582 if (LTDI (tmp_tmp, 0)) {
22586 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22587 written |= (1 << 20);
22588 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22590 frvbf_media_overflow (current_cpu, 1);
22594 UHI opval = tmp_tmp;
22595 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22596 written |= (1 << 20);
22597 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22606 abuf->written = written;
22611 /* maddaccs: maddaccs$pack $ACC40Si,$ACC40Sk */
22614 SEM_FN_NAME (frvbf,maddaccs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
22616 #define FLD(f) abuf->fields.sfmt_mdasaccs.f
22617 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
22618 int UNUSED written = 0;
22619 IADDR UNUSED pc = abuf->addr;
22620 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
22622 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Si))) {
22623 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
22624 if (ANDSI (FLD (f_ACC40Si), SUBSI (2, 1))) {
22625 frvbf_media_acc_not_aligned (current_cpu);
22629 tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_ACC40S (((FLD (f_ACC40Si)) + (1))));
22630 if (GTDI (tmp_tmp, 549755813887)) {
22633 DI opval = 549755813887;
22634 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
22635 written |= (1 << 4);
22636 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22638 frvbf_media_overflow (current_cpu, 8);
22641 if (LTDI (tmp_tmp, INVDI (549755813887))) {
22644 DI opval = INVDI (549755813887);
22645 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
22646 written |= (1 << 4);
22647 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22649 frvbf_media_overflow (current_cpu, 8);
22653 DI opval = tmp_tmp;
22654 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
22655 written |= (1 << 4);
22656 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22665 abuf->written = written;
22670 /* msubaccs: msubaccs$pack $ACC40Si,$ACC40Sk */
22673 SEM_FN_NAME (frvbf,msubaccs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
22675 #define FLD(f) abuf->fields.sfmt_mdasaccs.f
22676 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
22677 int UNUSED written = 0;
22678 IADDR UNUSED pc = abuf->addr;
22679 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
22681 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Si))) {
22682 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
22683 if (ANDSI (FLD (f_ACC40Si), SUBSI (2, 1))) {
22684 frvbf_media_acc_not_aligned (current_cpu);
22688 tmp_tmp = SUBDI (GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_ACC40S (((FLD (f_ACC40Si)) + (1))));
22689 if (GTDI (tmp_tmp, 549755813887)) {
22692 DI opval = 549755813887;
22693 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
22694 written |= (1 << 4);
22695 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22697 frvbf_media_overflow (current_cpu, 8);
22700 if (LTDI (tmp_tmp, INVDI (549755813887))) {
22703 DI opval = INVDI (549755813887);
22704 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
22705 written |= (1 << 4);
22706 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22708 frvbf_media_overflow (current_cpu, 8);
22712 DI opval = tmp_tmp;
22713 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
22714 written |= (1 << 4);
22715 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22724 abuf->written = written;
22729 /* mdaddaccs: mdaddaccs$pack $ACC40Si,$ACC40Sk */
22732 SEM_FN_NAME (frvbf,mdaddaccs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
22734 #define FLD(f) abuf->fields.sfmt_mdasaccs.f
22735 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
22736 int UNUSED written = 0;
22737 IADDR UNUSED pc = abuf->addr;
22738 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
22740 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Si))) {
22741 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
22742 if (ANDSI (FLD (f_ACC40Si), SUBSI (4, 1))) {
22743 frvbf_media_acc_not_aligned (current_cpu);
22745 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
22746 frvbf_media_acc_not_aligned (current_cpu);
22751 tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_ACC40S (((FLD (f_ACC40Si)) + (1))));
22752 if (GTDI (tmp_tmp, 549755813887)) {
22755 DI opval = 549755813887;
22756 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
22757 written |= (1 << 6);
22758 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22760 frvbf_media_overflow (current_cpu, 8);
22763 if (LTDI (tmp_tmp, INVDI (549755813887))) {
22766 DI opval = INVDI (549755813887);
22767 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
22768 written |= (1 << 6);
22769 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22771 frvbf_media_overflow (current_cpu, 8);
22775 DI opval = tmp_tmp;
22776 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
22777 written |= (1 << 6);
22778 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22785 tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Si)) + (2))), GET_H_ACC40S (((FLD (f_ACC40Si)) + (3))));
22786 if (GTDI (tmp_tmp, 549755813887)) {
22789 DI opval = 549755813887;
22790 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
22791 written |= (1 << 7);
22792 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22794 frvbf_media_overflow (current_cpu, 4);
22797 if (LTDI (tmp_tmp, INVDI (549755813887))) {
22800 DI opval = INVDI (549755813887);
22801 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
22802 written |= (1 << 7);
22803 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22805 frvbf_media_overflow (current_cpu, 4);
22809 DI opval = tmp_tmp;
22810 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
22811 written |= (1 << 7);
22812 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22823 abuf->written = written;
22828 /* mdsubaccs: mdsubaccs$pack $ACC40Si,$ACC40Sk */
22831 SEM_FN_NAME (frvbf,mdsubaccs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
22833 #define FLD(f) abuf->fields.sfmt_mdasaccs.f
22834 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
22835 int UNUSED written = 0;
22836 IADDR UNUSED pc = abuf->addr;
22837 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
22839 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Si))) {
22840 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
22841 if (ANDSI (FLD (f_ACC40Si), SUBSI (4, 1))) {
22842 frvbf_media_acc_not_aligned (current_cpu);
22844 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
22845 frvbf_media_acc_not_aligned (current_cpu);
22850 tmp_tmp = SUBDI (GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_ACC40S (((FLD (f_ACC40Si)) + (1))));
22851 if (GTDI (tmp_tmp, 549755813887)) {
22854 DI opval = 549755813887;
22855 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
22856 written |= (1 << 6);
22857 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22859 frvbf_media_overflow (current_cpu, 8);
22862 if (LTDI (tmp_tmp, INVDI (549755813887))) {
22865 DI opval = INVDI (549755813887);
22866 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
22867 written |= (1 << 6);
22868 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22870 frvbf_media_overflow (current_cpu, 8);
22874 DI opval = tmp_tmp;
22875 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
22876 written |= (1 << 6);
22877 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22884 tmp_tmp = SUBDI (GET_H_ACC40S (((FLD (f_ACC40Si)) + (2))), GET_H_ACC40S (((FLD (f_ACC40Si)) + (3))));
22885 if (GTDI (tmp_tmp, 549755813887)) {
22888 DI opval = 549755813887;
22889 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
22890 written |= (1 << 7);
22891 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22893 frvbf_media_overflow (current_cpu, 4);
22896 if (LTDI (tmp_tmp, INVDI (549755813887))) {
22899 DI opval = INVDI (549755813887);
22900 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
22901 written |= (1 << 7);
22902 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22904 frvbf_media_overflow (current_cpu, 4);
22908 DI opval = tmp_tmp;
22909 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
22910 written |= (1 << 7);
22911 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22922 abuf->written = written;
22927 /* masaccs: masaccs$pack $ACC40Si,$ACC40Sk */
22930 SEM_FN_NAME (frvbf,masaccs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
22932 #define FLD(f) abuf->fields.sfmt_mdasaccs.f
22933 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
22934 int UNUSED written = 0;
22935 IADDR UNUSED pc = abuf->addr;
22936 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
22938 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Si))) {
22939 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
22940 if (ANDSI (FLD (f_ACC40Si), SUBSI (2, 1))) {
22941 frvbf_media_acc_not_aligned (current_cpu);
22943 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
22944 frvbf_media_acc_not_aligned (current_cpu);
22949 tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_ACC40S (((FLD (f_ACC40Si)) + (1))));
22950 if (GTDI (tmp_tmp, 549755813887)) {
22953 DI opval = 549755813887;
22954 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
22955 written |= (1 << 4);
22956 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22958 frvbf_media_overflow (current_cpu, 8);
22961 if (LTDI (tmp_tmp, INVDI (549755813887))) {
22964 DI opval = INVDI (549755813887);
22965 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
22966 written |= (1 << 4);
22967 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22969 frvbf_media_overflow (current_cpu, 8);
22973 DI opval = tmp_tmp;
22974 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
22975 written |= (1 << 4);
22976 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22983 tmp_tmp = SUBDI (GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_ACC40S (((FLD (f_ACC40Si)) + (1))));
22984 if (GTDI (tmp_tmp, 549755813887)) {
22987 DI opval = 549755813887;
22988 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
22989 written |= (1 << 5);
22990 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22992 frvbf_media_overflow (current_cpu, 4);
22995 if (LTDI (tmp_tmp, INVDI (549755813887))) {
22998 DI opval = INVDI (549755813887);
22999 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23000 written |= (1 << 5);
23001 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23003 frvbf_media_overflow (current_cpu, 4);
23007 DI opval = tmp_tmp;
23008 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23009 written |= (1 << 5);
23010 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23021 abuf->written = written;
23026 /* mdasaccs: mdasaccs$pack $ACC40Si,$ACC40Sk */
23029 SEM_FN_NAME (frvbf,mdasaccs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23031 #define FLD(f) abuf->fields.sfmt_mdasaccs.f
23032 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23033 int UNUSED written = 0;
23034 IADDR UNUSED pc = abuf->addr;
23035 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23037 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Si))) {
23038 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
23039 if (ANDSI (FLD (f_ACC40Si), SUBSI (4, 1))) {
23040 frvbf_media_acc_not_aligned (current_cpu);
23042 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
23043 frvbf_media_acc_not_aligned (current_cpu);
23048 tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_ACC40S (((FLD (f_ACC40Si)) + (1))));
23049 if (GTDI (tmp_tmp, 549755813887)) {
23052 DI opval = 549755813887;
23053 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23054 written |= (1 << 6);
23055 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23057 frvbf_media_overflow (current_cpu, 8);
23060 if (LTDI (tmp_tmp, INVDI (549755813887))) {
23063 DI opval = INVDI (549755813887);
23064 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23065 written |= (1 << 6);
23066 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23068 frvbf_media_overflow (current_cpu, 8);
23072 DI opval = tmp_tmp;
23073 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23074 written |= (1 << 6);
23075 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23082 tmp_tmp = SUBDI (GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_ACC40S (((FLD (f_ACC40Si)) + (1))));
23083 if (GTDI (tmp_tmp, 549755813887)) {
23086 DI opval = 549755813887;
23087 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23088 written |= (1 << 7);
23089 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23091 frvbf_media_overflow (current_cpu, 4);
23094 if (LTDI (tmp_tmp, INVDI (549755813887))) {
23097 DI opval = INVDI (549755813887);
23098 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23099 written |= (1 << 7);
23100 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23102 frvbf_media_overflow (current_cpu, 4);
23106 DI opval = tmp_tmp;
23107 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23108 written |= (1 << 7);
23109 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23116 tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Si)) + (2))), GET_H_ACC40S (((FLD (f_ACC40Si)) + (3))));
23117 if (GTDI (tmp_tmp, 549755813887)) {
23120 DI opval = 549755813887;
23121 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
23122 written |= (1 << 8);
23123 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23125 frvbf_media_overflow (current_cpu, 2);
23128 if (LTDI (tmp_tmp, INVDI (549755813887))) {
23131 DI opval = INVDI (549755813887);
23132 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
23133 written |= (1 << 8);
23134 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23136 frvbf_media_overflow (current_cpu, 2);
23140 DI opval = tmp_tmp;
23141 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
23142 written |= (1 << 8);
23143 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23150 tmp_tmp = SUBDI (GET_H_ACC40S (((FLD (f_ACC40Si)) + (2))), GET_H_ACC40S (((FLD (f_ACC40Si)) + (3))));
23151 if (GTDI (tmp_tmp, 549755813887)) {
23154 DI opval = 549755813887;
23155 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
23156 written |= (1 << 9);
23157 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23159 frvbf_media_overflow (current_cpu, 1);
23162 if (LTDI (tmp_tmp, INVDI (549755813887))) {
23165 DI opval = INVDI (549755813887);
23166 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
23167 written |= (1 << 9);
23168 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23170 frvbf_media_overflow (current_cpu, 1);
23174 DI opval = tmp_tmp;
23175 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
23176 written |= (1 << 9);
23177 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23188 abuf->written = written;
23193 /* mmulhs: mmulhs$pack $FRinti,$FRintj,$ACC40Sk */
23196 SEM_FN_NAME (frvbf,mmulhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23198 #define FLD(f) abuf->fields.sfmt_cmmachs.f
23199 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23200 int UNUSED written = 0;
23201 IADDR UNUSED pc = abuf->addr;
23202 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23204 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
23205 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
23206 frvbf_media_acc_not_aligned (current_cpu);
23214 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23215 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23216 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23217 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23220 DI opval = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
23221 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23222 written |= (1 << 9);
23223 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23226 DI opval = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
23227 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23228 written |= (1 << 10);
23229 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23235 abuf->written = written;
23240 /* mmulhu: mmulhu$pack $FRinti,$FRintj,$ACC40Sk */
23243 SEM_FN_NAME (frvbf,mmulhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23245 #define FLD(f) abuf->fields.sfmt_cmmachs.f
23246 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23247 int UNUSED written = 0;
23248 IADDR UNUSED pc = abuf->addr;
23249 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23251 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
23252 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
23253 frvbf_media_acc_not_aligned (current_cpu);
23261 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23262 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23263 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23264 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23267 DI opval = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
23268 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23269 written |= (1 << 9);
23270 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23273 DI opval = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
23274 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23275 written |= (1 << 10);
23276 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23282 abuf->written = written;
23287 /* mmulxhs: mmulxhs$pack $FRinti,$FRintj,$ACC40Sk */
23290 SEM_FN_NAME (frvbf,mmulxhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23292 #define FLD(f) abuf->fields.sfmt_cmmachs.f
23293 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23294 int UNUSED written = 0;
23295 IADDR UNUSED pc = abuf->addr;
23296 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23298 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
23299 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
23300 frvbf_media_acc_not_aligned (current_cpu);
23308 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23309 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23310 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23311 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23314 DI opval = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo));
23315 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23316 written |= (1 << 9);
23317 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23320 DI opval = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi));
23321 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23322 written |= (1 << 10);
23323 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23329 abuf->written = written;
23334 /* mmulxhu: mmulxhu$pack $FRinti,$FRintj,$ACC40Sk */
23337 SEM_FN_NAME (frvbf,mmulxhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23339 #define FLD(f) abuf->fields.sfmt_cmmachs.f
23340 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23341 int UNUSED written = 0;
23342 IADDR UNUSED pc = abuf->addr;
23343 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23345 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
23346 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
23347 frvbf_media_acc_not_aligned (current_cpu);
23355 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23356 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23357 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23358 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23361 DI opval = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjlo));
23362 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23363 written |= (1 << 9);
23364 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23367 DI opval = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjhi));
23368 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23369 written |= (1 << 10);
23370 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23376 abuf->written = written;
23381 /* cmmulhs: cmmulhs$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
23384 SEM_FN_NAME (frvbf,cmmulhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23386 #define FLD(f) abuf->fields.sfmt_cmmachs.f
23387 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23388 int UNUSED written = 0;
23389 IADDR UNUSED pc = abuf->addr;
23390 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23392 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
23393 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
23394 frvbf_media_acc_not_aligned (current_cpu);
23396 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
23403 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23404 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23405 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23406 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23409 DI opval = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
23410 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23411 written |= (1 << 11);
23412 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23415 DI opval = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
23416 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23417 written |= (1 << 12);
23418 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23425 abuf->written = written;
23430 /* cmmulhu: cmmulhu$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
23433 SEM_FN_NAME (frvbf,cmmulhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23435 #define FLD(f) abuf->fields.sfmt_cmmachs.f
23436 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23437 int UNUSED written = 0;
23438 IADDR UNUSED pc = abuf->addr;
23439 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23441 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
23442 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
23443 frvbf_media_acc_not_aligned (current_cpu);
23445 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
23452 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23453 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23454 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23455 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23458 DI opval = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
23459 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23460 written |= (1 << 11);
23461 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23464 DI opval = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
23465 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23466 written |= (1 << 12);
23467 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23474 abuf->written = written;
23479 /* mqmulhs: mqmulhs$pack $FRintieven,$FRintjeven,$ACC40Sk */
23482 SEM_FN_NAME (frvbf,mqmulhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23484 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
23485 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23486 int UNUSED written = 0;
23487 IADDR UNUSED pc = abuf->addr;
23488 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23490 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
23491 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
23492 frvbf_media_acc_not_aligned (current_cpu);
23494 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
23495 frvbf_media_register_not_aligned (current_cpu);
23503 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23504 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23505 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23506 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23509 DI opval = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
23510 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23511 written |= (1 << 13);
23512 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23515 DI opval = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
23516 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23517 written |= (1 << 14);
23518 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23521 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23522 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23523 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23524 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23527 DI opval = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
23528 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
23529 written |= (1 << 15);
23530 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23533 DI opval = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
23534 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
23535 written |= (1 << 16);
23536 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23543 abuf->written = written;
23548 /* mqmulhu: mqmulhu$pack $FRintieven,$FRintjeven,$ACC40Sk */
23551 SEM_FN_NAME (frvbf,mqmulhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23553 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
23554 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23555 int UNUSED written = 0;
23556 IADDR UNUSED pc = abuf->addr;
23557 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23559 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
23560 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
23561 frvbf_media_acc_not_aligned (current_cpu);
23563 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
23564 frvbf_media_register_not_aligned (current_cpu);
23572 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23573 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23574 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23575 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23578 DI opval = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
23579 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23580 written |= (1 << 13);
23581 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23584 DI opval = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
23585 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23586 written |= (1 << 14);
23587 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23590 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23591 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23592 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23593 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23596 DI opval = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
23597 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
23598 written |= (1 << 15);
23599 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23602 DI opval = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
23603 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
23604 written |= (1 << 16);
23605 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23612 abuf->written = written;
23617 /* mqmulxhs: mqmulxhs$pack $FRintieven,$FRintjeven,$ACC40Sk */
23620 SEM_FN_NAME (frvbf,mqmulxhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23622 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
23623 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23624 int UNUSED written = 0;
23625 IADDR UNUSED pc = abuf->addr;
23626 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23628 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
23629 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
23630 frvbf_media_acc_not_aligned (current_cpu);
23632 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
23633 frvbf_media_register_not_aligned (current_cpu);
23641 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23642 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23643 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23644 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23647 DI opval = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo));
23648 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23649 written |= (1 << 13);
23650 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23653 DI opval = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi));
23654 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23655 written |= (1 << 14);
23656 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23659 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23660 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23661 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23662 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23665 DI opval = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo));
23666 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
23667 written |= (1 << 15);
23668 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23671 DI opval = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi));
23672 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
23673 written |= (1 << 16);
23674 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23681 abuf->written = written;
23686 /* mqmulxhu: mqmulxhu$pack $FRintieven,$FRintjeven,$ACC40Sk */
23689 SEM_FN_NAME (frvbf,mqmulxhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23691 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
23692 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23693 int UNUSED written = 0;
23694 IADDR UNUSED pc = abuf->addr;
23695 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23697 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
23698 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
23699 frvbf_media_acc_not_aligned (current_cpu);
23701 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
23702 frvbf_media_register_not_aligned (current_cpu);
23710 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23711 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23712 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23713 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23716 DI opval = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjlo));
23717 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23718 written |= (1 << 13);
23719 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23722 DI opval = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjhi));
23723 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23724 written |= (1 << 14);
23725 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23728 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23729 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23730 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23731 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23734 DI opval = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjlo));
23735 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
23736 written |= (1 << 15);
23737 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23740 DI opval = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjhi));
23741 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
23742 written |= (1 << 16);
23743 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23750 abuf->written = written;
23755 /* cmqmulhs: cmqmulhs$pack $FRintieven,$FRintjeven,$ACC40Sk,$CCi,$cond */
23758 SEM_FN_NAME (frvbf,cmqmulhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23760 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
23761 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23762 int UNUSED written = 0;
23763 IADDR UNUSED pc = abuf->addr;
23764 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23766 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
23767 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
23768 frvbf_media_acc_not_aligned (current_cpu);
23770 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
23771 frvbf_media_register_not_aligned (current_cpu);
23773 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
23780 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23781 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23782 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23783 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23786 DI opval = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
23787 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23788 written |= (1 << 15);
23789 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23792 DI opval = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
23793 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23794 written |= (1 << 16);
23795 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23798 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23799 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23800 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23801 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23804 DI opval = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
23805 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
23806 written |= (1 << 17);
23807 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23810 DI opval = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
23811 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
23812 written |= (1 << 18);
23813 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23821 abuf->written = written;
23826 /* cmqmulhu: cmqmulhu$pack $FRintieven,$FRintjeven,$ACC40Sk,$CCi,$cond */
23829 SEM_FN_NAME (frvbf,cmqmulhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23831 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
23832 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23833 int UNUSED written = 0;
23834 IADDR UNUSED pc = abuf->addr;
23835 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23837 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
23838 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
23839 frvbf_media_acc_not_aligned (current_cpu);
23841 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
23842 frvbf_media_register_not_aligned (current_cpu);
23844 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
23851 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23852 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23853 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23854 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23857 DI opval = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
23858 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23859 written |= (1 << 15);
23860 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23863 DI opval = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
23864 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23865 written |= (1 << 16);
23866 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23869 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23870 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23871 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23872 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23875 DI opval = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
23876 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
23877 written |= (1 << 17);
23878 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23881 DI opval = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
23882 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
23883 written |= (1 << 18);
23884 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23892 abuf->written = written;
23897 /* mmachs: mmachs$pack $FRinti,$FRintj,$ACC40Sk */
23900 SEM_FN_NAME (frvbf,mmachs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23902 #define FLD(f) abuf->fields.sfmt_cmmachs.f
23903 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23904 int UNUSED written = 0;
23905 IADDR UNUSED pc = abuf->addr;
23906 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23908 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
23909 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
23910 frvbf_media_acc_not_aligned (current_cpu);
23918 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23919 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23920 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23921 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23925 tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Sk)), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi)));
23926 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
23929 DI opval = MAKEDI (127, 0xffffffff);
23930 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23931 written |= (1 << 11);
23932 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23934 frvbf_media_overflow (current_cpu, 8);
23937 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
23940 DI opval = MAKEDI (0xffffff80, 0);
23941 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23942 written |= (1 << 11);
23943 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23945 frvbf_media_overflow (current_cpu, 8);
23949 DI opval = tmp_tmp;
23950 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23951 written |= (1 << 11);
23952 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23959 tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (1))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo)));
23960 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
23963 DI opval = MAKEDI (127, 0xffffffff);
23964 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23965 written |= (1 << 12);
23966 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23968 frvbf_media_overflow (current_cpu, 4);
23971 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
23974 DI opval = MAKEDI (0xffffff80, 0);
23975 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23976 written |= (1 << 12);
23977 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23979 frvbf_media_overflow (current_cpu, 4);
23983 DI opval = tmp_tmp;
23984 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23985 written |= (1 << 12);
23986 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23995 abuf->written = written;
24000 /* mmachu: mmachu$pack $FRinti,$FRintj,$ACC40Uk */
24003 SEM_FN_NAME (frvbf,mmachu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
24005 #define FLD(f) abuf->fields.sfmt_cmmachu.f
24006 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
24007 int UNUSED written = 0;
24008 IADDR UNUSED pc = abuf->addr;
24009 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
24011 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Uk))) {
24012 if (ANDSI (FLD (f_ACC40Uk), SUBSI (2, 1))) {
24013 frvbf_media_acc_not_aligned (current_cpu);
24021 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24022 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24023 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24024 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24028 tmp_tmp = ADDDI (GET_H_ACC40U (FLD (f_ACC40Uk)), MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi)));
24029 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
24032 UDI opval = MAKEDI (255, 0xffffffff);
24033 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24034 written |= (1 << 11);
24035 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24037 frvbf_media_overflow (current_cpu, 8);
24040 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
24043 UDI opval = MAKEDI (0, 0);
24044 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24045 written |= (1 << 11);
24046 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24048 frvbf_media_overflow (current_cpu, 8);
24052 UDI opval = tmp_tmp;
24053 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24054 written |= (1 << 11);
24055 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24062 tmp_tmp = ADDDI (GET_H_ACC40U (((FLD (f_ACC40Uk)) + (1))), MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo)));
24063 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
24066 UDI opval = MAKEDI (255, 0xffffffff);
24067 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
24068 written |= (1 << 12);
24069 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24071 frvbf_media_overflow (current_cpu, 4);
24074 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
24077 UDI opval = MAKEDI (0, 0);
24078 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
24079 written |= (1 << 12);
24080 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24082 frvbf_media_overflow (current_cpu, 4);
24086 UDI opval = tmp_tmp;
24087 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
24088 written |= (1 << 12);
24089 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24098 abuf->written = written;
24103 /* mmrdhs: mmrdhs$pack $FRinti,$FRintj,$ACC40Sk */
24106 SEM_FN_NAME (frvbf,mmrdhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
24108 #define FLD(f) abuf->fields.sfmt_cmmachs.f
24109 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
24110 int UNUSED written = 0;
24111 IADDR UNUSED pc = abuf->addr;
24112 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
24114 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
24115 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
24116 frvbf_media_acc_not_aligned (current_cpu);
24124 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24125 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24126 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24127 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24131 tmp_tmp = SUBDI (GET_H_ACC40S (FLD (f_ACC40Sk)), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi)));
24132 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24135 DI opval = MAKEDI (127, 0xffffffff);
24136 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24137 written |= (1 << 11);
24138 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24140 frvbf_media_overflow (current_cpu, 8);
24143 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24146 DI opval = MAKEDI (0xffffff80, 0);
24147 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24148 written |= (1 << 11);
24149 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24151 frvbf_media_overflow (current_cpu, 8);
24155 DI opval = tmp_tmp;
24156 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24157 written |= (1 << 11);
24158 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24165 tmp_tmp = SUBDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (1))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo)));
24166 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24169 DI opval = MAKEDI (127, 0xffffffff);
24170 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24171 written |= (1 << 12);
24172 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24174 frvbf_media_overflow (current_cpu, 4);
24177 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24180 DI opval = MAKEDI (0xffffff80, 0);
24181 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24182 written |= (1 << 12);
24183 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24185 frvbf_media_overflow (current_cpu, 4);
24189 DI opval = tmp_tmp;
24190 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24191 written |= (1 << 12);
24192 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24201 abuf->written = written;
24206 /* mmrdhu: mmrdhu$pack $FRinti,$FRintj,$ACC40Uk */
24209 SEM_FN_NAME (frvbf,mmrdhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
24211 #define FLD(f) abuf->fields.sfmt_cmmachu.f
24212 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
24213 int UNUSED written = 0;
24214 IADDR UNUSED pc = abuf->addr;
24215 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
24217 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Uk))) {
24218 if (ANDSI (FLD (f_ACC40Uk), SUBSI (2, 1))) {
24219 frvbf_media_acc_not_aligned (current_cpu);
24227 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24228 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24229 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24230 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24234 tmp_tmp = SUBDI (GET_H_ACC40U (FLD (f_ACC40Uk)), MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi)));
24235 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
24238 UDI opval = MAKEDI (255, 0xffffffff);
24239 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24240 written |= (1 << 11);
24241 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24243 frvbf_media_overflow (current_cpu, 8);
24246 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
24249 UDI opval = MAKEDI (0, 0);
24250 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24251 written |= (1 << 11);
24252 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24254 frvbf_media_overflow (current_cpu, 8);
24258 UDI opval = tmp_tmp;
24259 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24260 written |= (1 << 11);
24261 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24268 tmp_tmp = SUBDI (GET_H_ACC40U (((FLD (f_ACC40Uk)) + (1))), MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo)));
24269 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
24272 UDI opval = MAKEDI (255, 0xffffffff);
24273 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
24274 written |= (1 << 12);
24275 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24277 frvbf_media_overflow (current_cpu, 4);
24280 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
24283 UDI opval = MAKEDI (0, 0);
24284 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
24285 written |= (1 << 12);
24286 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24288 frvbf_media_overflow (current_cpu, 4);
24292 UDI opval = tmp_tmp;
24293 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
24294 written |= (1 << 12);
24295 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24304 abuf->written = written;
24309 /* cmmachs: cmmachs$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
24312 SEM_FN_NAME (frvbf,cmmachs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
24314 #define FLD(f) abuf->fields.sfmt_cmmachs.f
24315 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
24316 int UNUSED written = 0;
24317 IADDR UNUSED pc = abuf->addr;
24318 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
24320 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
24321 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
24322 frvbf_media_acc_not_aligned (current_cpu);
24324 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
24331 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24332 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24333 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24334 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24338 tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Sk)), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi)));
24339 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24342 DI opval = MAKEDI (127, 0xffffffff);
24343 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24344 written |= (1 << 13);
24345 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24347 frvbf_media_overflow (current_cpu, 8);
24350 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24353 DI opval = MAKEDI (0xffffff80, 0);
24354 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24355 written |= (1 << 13);
24356 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24358 frvbf_media_overflow (current_cpu, 8);
24362 DI opval = tmp_tmp;
24363 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24364 written |= (1 << 13);
24365 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24372 tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (1))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo)));
24373 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24376 DI opval = MAKEDI (127, 0xffffffff);
24377 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24378 written |= (1 << 14);
24379 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24381 frvbf_media_overflow (current_cpu, 4);
24384 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24387 DI opval = MAKEDI (0xffffff80, 0);
24388 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24389 written |= (1 << 14);
24390 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24392 frvbf_media_overflow (current_cpu, 4);
24396 DI opval = tmp_tmp;
24397 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24398 written |= (1 << 14);
24399 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24409 abuf->written = written;
24414 /* cmmachu: cmmachu$pack $FRinti,$FRintj,$ACC40Uk,$CCi,$cond */
24417 SEM_FN_NAME (frvbf,cmmachu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
24419 #define FLD(f) abuf->fields.sfmt_cmmachu.f
24420 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
24421 int UNUSED written = 0;
24422 IADDR UNUSED pc = abuf->addr;
24423 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
24425 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Uk))) {
24426 if (ANDSI (FLD (f_ACC40Uk), SUBSI (2, 1))) {
24427 frvbf_media_acc_not_aligned (current_cpu);
24429 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
24436 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24437 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24438 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24439 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24443 tmp_tmp = ADDDI (GET_H_ACC40U (FLD (f_ACC40Uk)), MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi)));
24444 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
24447 UDI opval = MAKEDI (255, 0xffffffff);
24448 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24449 written |= (1 << 13);
24450 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24452 frvbf_media_overflow (current_cpu, 8);
24455 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
24458 UDI opval = MAKEDI (0, 0);
24459 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24460 written |= (1 << 13);
24461 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24463 frvbf_media_overflow (current_cpu, 8);
24467 UDI opval = tmp_tmp;
24468 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24469 written |= (1 << 13);
24470 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24477 tmp_tmp = ADDDI (GET_H_ACC40U (((FLD (f_ACC40Uk)) + (1))), MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo)));
24478 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
24481 UDI opval = MAKEDI (255, 0xffffffff);
24482 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
24483 written |= (1 << 14);
24484 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24486 frvbf_media_overflow (current_cpu, 4);
24489 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
24492 UDI opval = MAKEDI (0, 0);
24493 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
24494 written |= (1 << 14);
24495 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24497 frvbf_media_overflow (current_cpu, 4);
24501 UDI opval = tmp_tmp;
24502 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
24503 written |= (1 << 14);
24504 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24514 abuf->written = written;
24519 /* mqmachs: mqmachs$pack $FRintieven,$FRintjeven,$ACC40Sk */
24522 SEM_FN_NAME (frvbf,mqmachs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
24524 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
24525 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
24526 int UNUSED written = 0;
24527 IADDR UNUSED pc = abuf->addr;
24528 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
24530 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
24531 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
24532 frvbf_media_acc_not_aligned (current_cpu);
24534 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
24535 frvbf_media_register_not_aligned (current_cpu);
24543 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24544 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24545 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24546 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24550 tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Sk)), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi)));
24551 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24554 DI opval = MAKEDI (127, 0xffffffff);
24555 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24556 written |= (1 << 17);
24557 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24559 frvbf_media_overflow (current_cpu, 8);
24562 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24565 DI opval = MAKEDI (0xffffff80, 0);
24566 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24567 written |= (1 << 17);
24568 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24570 frvbf_media_overflow (current_cpu, 8);
24574 DI opval = tmp_tmp;
24575 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24576 written |= (1 << 17);
24577 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24584 tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (1))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo)));
24585 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24588 DI opval = MAKEDI (127, 0xffffffff);
24589 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24590 written |= (1 << 18);
24591 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24593 frvbf_media_overflow (current_cpu, 4);
24596 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24599 DI opval = MAKEDI (0xffffff80, 0);
24600 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24601 written |= (1 << 18);
24602 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24604 frvbf_media_overflow (current_cpu, 4);
24608 DI opval = tmp_tmp;
24609 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24610 written |= (1 << 18);
24611 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24617 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24618 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24619 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24620 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24624 tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (2))), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi)));
24625 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24628 DI opval = MAKEDI (127, 0xffffffff);
24629 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
24630 written |= (1 << 19);
24631 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24633 frvbf_media_overflow (current_cpu, 2);
24636 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24639 DI opval = MAKEDI (0xffffff80, 0);
24640 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
24641 written |= (1 << 19);
24642 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24644 frvbf_media_overflow (current_cpu, 2);
24648 DI opval = tmp_tmp;
24649 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
24650 written |= (1 << 19);
24651 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24658 tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (3))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo)));
24659 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24662 DI opval = MAKEDI (127, 0xffffffff);
24663 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
24664 written |= (1 << 20);
24665 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24667 frvbf_media_overflow (current_cpu, 1);
24670 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24673 DI opval = MAKEDI (0xffffff80, 0);
24674 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
24675 written |= (1 << 20);
24676 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24678 frvbf_media_overflow (current_cpu, 1);
24682 DI opval = tmp_tmp;
24683 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
24684 written |= (1 << 20);
24685 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24695 abuf->written = written;
24700 /* mqmachu: mqmachu$pack $FRintieven,$FRintjeven,$ACC40Uk */
24703 SEM_FN_NAME (frvbf,mqmachu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
24705 #define FLD(f) abuf->fields.sfmt_cmqmachu.f
24706 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
24707 int UNUSED written = 0;
24708 IADDR UNUSED pc = abuf->addr;
24709 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
24711 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Uk))) {
24712 if (ANDSI (FLD (f_ACC40Uk), SUBSI (4, 1))) {
24713 frvbf_media_acc_not_aligned (current_cpu);
24715 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
24716 frvbf_media_register_not_aligned (current_cpu);
24724 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24725 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24726 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24727 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24731 tmp_tmp = ADDDI (GET_H_ACC40U (FLD (f_ACC40Uk)), MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi)));
24732 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
24735 UDI opval = MAKEDI (255, 0xffffffff);
24736 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24737 written |= (1 << 17);
24738 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24740 frvbf_media_overflow (current_cpu, 8);
24743 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
24746 UDI opval = MAKEDI (0, 0);
24747 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24748 written |= (1 << 17);
24749 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24751 frvbf_media_overflow (current_cpu, 8);
24755 UDI opval = tmp_tmp;
24756 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24757 written |= (1 << 17);
24758 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24765 tmp_tmp = ADDDI (GET_H_ACC40U (((FLD (f_ACC40Uk)) + (1))), MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo)));
24766 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
24769 UDI opval = MAKEDI (255, 0xffffffff);
24770 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
24771 written |= (1 << 18);
24772 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24774 frvbf_media_overflow (current_cpu, 4);
24777 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
24780 UDI opval = MAKEDI (0, 0);
24781 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
24782 written |= (1 << 18);
24783 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24785 frvbf_media_overflow (current_cpu, 4);
24789 UDI opval = tmp_tmp;
24790 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
24791 written |= (1 << 18);
24792 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24798 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24799 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24800 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24801 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24805 tmp_tmp = ADDDI (GET_H_ACC40U (((FLD (f_ACC40Uk)) + (2))), MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi)));
24806 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
24809 UDI opval = MAKEDI (255, 0xffffffff);
24810 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (2)), opval);
24811 written |= (1 << 19);
24812 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24814 frvbf_media_overflow (current_cpu, 2);
24817 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
24820 UDI opval = MAKEDI (0, 0);
24821 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (2)), opval);
24822 written |= (1 << 19);
24823 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24825 frvbf_media_overflow (current_cpu, 2);
24829 UDI opval = tmp_tmp;
24830 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (2)), opval);
24831 written |= (1 << 19);
24832 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24839 tmp_tmp = ADDDI (GET_H_ACC40U (((FLD (f_ACC40Uk)) + (3))), MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo)));
24840 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
24843 UDI opval = MAKEDI (255, 0xffffffff);
24844 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (3)), opval);
24845 written |= (1 << 20);
24846 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24848 frvbf_media_overflow (current_cpu, 1);
24851 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
24854 UDI opval = MAKEDI (0, 0);
24855 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (3)), opval);
24856 written |= (1 << 20);
24857 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24859 frvbf_media_overflow (current_cpu, 1);
24863 UDI opval = tmp_tmp;
24864 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (3)), opval);
24865 written |= (1 << 20);
24866 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24876 abuf->written = written;
24881 /* cmqmachs: cmqmachs$pack $FRintieven,$FRintjeven,$ACC40Sk,$CCi,$cond */
24884 SEM_FN_NAME (frvbf,cmqmachs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
24886 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
24887 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
24888 int UNUSED written = 0;
24889 IADDR UNUSED pc = abuf->addr;
24890 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
24892 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
24893 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
24894 frvbf_media_acc_not_aligned (current_cpu);
24896 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
24897 frvbf_media_register_not_aligned (current_cpu);
24899 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
24906 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24907 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24908 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24909 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24913 tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Sk)), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi)));
24914 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24917 DI opval = MAKEDI (127, 0xffffffff);
24918 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24919 written |= (1 << 19);
24920 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24922 frvbf_media_overflow (current_cpu, 8);
24925 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24928 DI opval = MAKEDI (0xffffff80, 0);
24929 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24930 written |= (1 << 19);
24931 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24933 frvbf_media_overflow (current_cpu, 8);
24937 DI opval = tmp_tmp;
24938 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24939 written |= (1 << 19);
24940 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24947 tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (1))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo)));
24948 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24951 DI opval = MAKEDI (127, 0xffffffff);
24952 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24953 written |= (1 << 20);
24954 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24956 frvbf_media_overflow (current_cpu, 4);
24959 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24962 DI opval = MAKEDI (0xffffff80, 0);
24963 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24964 written |= (1 << 20);
24965 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24967 frvbf_media_overflow (current_cpu, 4);
24971 DI opval = tmp_tmp;
24972 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24973 written |= (1 << 20);
24974 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24980 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24981 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24982 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24983 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24987 tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (2))), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi)));
24988 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24991 DI opval = MAKEDI (127, 0xffffffff);
24992 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
24993 written |= (1 << 21);
24994 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24996 frvbf_media_overflow (current_cpu, 2);
24999 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25002 DI opval = MAKEDI (0xffffff80, 0);
25003 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
25004 written |= (1 << 21);
25005 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25007 frvbf_media_overflow (current_cpu, 2);
25011 DI opval = tmp_tmp;
25012 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
25013 written |= (1 << 21);
25014 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25021 tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (3))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo)));
25022 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25025 DI opval = MAKEDI (127, 0xffffffff);
25026 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
25027 written |= (1 << 22);
25028 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25030 frvbf_media_overflow (current_cpu, 1);
25033 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25036 DI opval = MAKEDI (0xffffff80, 0);
25037 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
25038 written |= (1 << 22);
25039 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25041 frvbf_media_overflow (current_cpu, 1);
25045 DI opval = tmp_tmp;
25046 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
25047 written |= (1 << 22);
25048 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25059 abuf->written = written;
25064 /* cmqmachu: cmqmachu$pack $FRintieven,$FRintjeven,$ACC40Uk,$CCi,$cond */
25067 SEM_FN_NAME (frvbf,cmqmachu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
25069 #define FLD(f) abuf->fields.sfmt_cmqmachu.f
25070 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
25071 int UNUSED written = 0;
25072 IADDR UNUSED pc = abuf->addr;
25073 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
25075 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Uk))) {
25076 if (ANDSI (FLD (f_ACC40Uk), SUBSI (4, 1))) {
25077 frvbf_media_acc_not_aligned (current_cpu);
25079 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
25080 frvbf_media_register_not_aligned (current_cpu);
25082 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
25089 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25090 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25091 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25092 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25096 tmp_tmp = ADDDI (GET_H_ACC40U (FLD (f_ACC40Uk)), MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi)));
25097 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
25100 UDI opval = MAKEDI (255, 0xffffffff);
25101 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
25102 written |= (1 << 19);
25103 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25105 frvbf_media_overflow (current_cpu, 8);
25108 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
25111 UDI opval = MAKEDI (0, 0);
25112 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
25113 written |= (1 << 19);
25114 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25116 frvbf_media_overflow (current_cpu, 8);
25120 UDI opval = tmp_tmp;
25121 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
25122 written |= (1 << 19);
25123 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25130 tmp_tmp = ADDDI (GET_H_ACC40U (((FLD (f_ACC40Uk)) + (1))), MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo)));
25131 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
25134 UDI opval = MAKEDI (255, 0xffffffff);
25135 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
25136 written |= (1 << 20);
25137 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25139 frvbf_media_overflow (current_cpu, 4);
25142 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
25145 UDI opval = MAKEDI (0, 0);
25146 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
25147 written |= (1 << 20);
25148 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25150 frvbf_media_overflow (current_cpu, 4);
25154 UDI opval = tmp_tmp;
25155 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
25156 written |= (1 << 20);
25157 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25163 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25164 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25165 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25166 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25170 tmp_tmp = ADDDI (GET_H_ACC40U (((FLD (f_ACC40Uk)) + (2))), MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi)));
25171 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
25174 UDI opval = MAKEDI (255, 0xffffffff);
25175 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (2)), opval);
25176 written |= (1 << 21);
25177 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25179 frvbf_media_overflow (current_cpu, 2);
25182 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
25185 UDI opval = MAKEDI (0, 0);
25186 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (2)), opval);
25187 written |= (1 << 21);
25188 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25190 frvbf_media_overflow (current_cpu, 2);
25194 UDI opval = tmp_tmp;
25195 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (2)), opval);
25196 written |= (1 << 21);
25197 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25204 tmp_tmp = ADDDI (GET_H_ACC40U (((FLD (f_ACC40Uk)) + (3))), MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo)));
25205 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
25208 UDI opval = MAKEDI (255, 0xffffffff);
25209 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (3)), opval);
25210 written |= (1 << 22);
25211 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25213 frvbf_media_overflow (current_cpu, 1);
25216 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
25219 UDI opval = MAKEDI (0, 0);
25220 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (3)), opval);
25221 written |= (1 << 22);
25222 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25224 frvbf_media_overflow (current_cpu, 1);
25228 UDI opval = tmp_tmp;
25229 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (3)), opval);
25230 written |= (1 << 22);
25231 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25242 abuf->written = written;
25247 /* mqxmachs: mqxmachs$pack $FRintieven,$FRintjeven,$ACC40Sk */
25250 SEM_FN_NAME (frvbf,mqxmachs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
25252 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
25253 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
25254 int UNUSED written = 0;
25255 IADDR UNUSED pc = abuf->addr;
25256 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
25258 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
25259 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
25260 frvbf_media_acc_not_aligned (current_cpu);
25262 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
25263 frvbf_media_register_not_aligned (current_cpu);
25271 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25272 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25273 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25274 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25278 tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (2))), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi)));
25279 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25282 DI opval = MAKEDI (127, 0xffffffff);
25283 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
25284 written |= (1 << 19);
25285 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25287 frvbf_media_overflow (current_cpu, 2);
25290 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25293 DI opval = MAKEDI (0xffffff80, 0);
25294 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
25295 written |= (1 << 19);
25296 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25298 frvbf_media_overflow (current_cpu, 2);
25302 DI opval = tmp_tmp;
25303 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
25304 written |= (1 << 19);
25305 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25312 tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (3))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo)));
25313 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25316 DI opval = MAKEDI (127, 0xffffffff);
25317 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
25318 written |= (1 << 20);
25319 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25321 frvbf_media_overflow (current_cpu, 1);
25324 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25327 DI opval = MAKEDI (0xffffff80, 0);
25328 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
25329 written |= (1 << 20);
25330 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25332 frvbf_media_overflow (current_cpu, 1);
25336 DI opval = tmp_tmp;
25337 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
25338 written |= (1 << 20);
25339 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25345 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25346 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25347 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25348 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25352 tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Sk)), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi)));
25353 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25356 DI opval = MAKEDI (127, 0xffffffff);
25357 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25358 written |= (1 << 17);
25359 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25361 frvbf_media_overflow (current_cpu, 8);
25364 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25367 DI opval = MAKEDI (0xffffff80, 0);
25368 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25369 written |= (1 << 17);
25370 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25372 frvbf_media_overflow (current_cpu, 8);
25376 DI opval = tmp_tmp;
25377 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25378 written |= (1 << 17);
25379 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25386 tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (1))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo)));
25387 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25390 DI opval = MAKEDI (127, 0xffffffff);
25391 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
25392 written |= (1 << 18);
25393 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25395 frvbf_media_overflow (current_cpu, 4);
25398 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25401 DI opval = MAKEDI (0xffffff80, 0);
25402 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
25403 written |= (1 << 18);
25404 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25406 frvbf_media_overflow (current_cpu, 4);
25410 DI opval = tmp_tmp;
25411 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
25412 written |= (1 << 18);
25413 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25423 abuf->written = written;
25428 /* mqxmacxhs: mqxmacxhs$pack $FRintieven,$FRintjeven,$ACC40Sk */
25431 SEM_FN_NAME (frvbf,mqxmacxhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
25433 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
25434 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
25435 int UNUSED written = 0;
25436 IADDR UNUSED pc = abuf->addr;
25437 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
25439 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
25440 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
25441 frvbf_media_acc_not_aligned (current_cpu);
25443 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
25444 frvbf_media_register_not_aligned (current_cpu);
25452 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25453 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25454 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25455 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25459 tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (2))), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo)));
25460 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25463 DI opval = MAKEDI (127, 0xffffffff);
25464 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
25465 written |= (1 << 19);
25466 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25468 frvbf_media_overflow (current_cpu, 2);
25471 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25474 DI opval = MAKEDI (0xffffff80, 0);
25475 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
25476 written |= (1 << 19);
25477 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25479 frvbf_media_overflow (current_cpu, 2);
25483 DI opval = tmp_tmp;
25484 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
25485 written |= (1 << 19);
25486 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25493 tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (3))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi)));
25494 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25497 DI opval = MAKEDI (127, 0xffffffff);
25498 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
25499 written |= (1 << 20);
25500 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25502 frvbf_media_overflow (current_cpu, 1);
25505 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25508 DI opval = MAKEDI (0xffffff80, 0);
25509 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
25510 written |= (1 << 20);
25511 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25513 frvbf_media_overflow (current_cpu, 1);
25517 DI opval = tmp_tmp;
25518 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
25519 written |= (1 << 20);
25520 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25526 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25527 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25528 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25529 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25533 tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Sk)), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo)));
25534 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25537 DI opval = MAKEDI (127, 0xffffffff);
25538 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25539 written |= (1 << 17);
25540 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25542 frvbf_media_overflow (current_cpu, 8);
25545 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25548 DI opval = MAKEDI (0xffffff80, 0);
25549 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25550 written |= (1 << 17);
25551 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25553 frvbf_media_overflow (current_cpu, 8);
25557 DI opval = tmp_tmp;
25558 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25559 written |= (1 << 17);
25560 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25567 tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (1))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi)));
25568 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25571 DI opval = MAKEDI (127, 0xffffffff);
25572 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
25573 written |= (1 << 18);
25574 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25576 frvbf_media_overflow (current_cpu, 4);
25579 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25582 DI opval = MAKEDI (0xffffff80, 0);
25583 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
25584 written |= (1 << 18);
25585 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25587 frvbf_media_overflow (current_cpu, 4);
25591 DI opval = tmp_tmp;
25592 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
25593 written |= (1 << 18);
25594 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25604 abuf->written = written;
25609 /* mqmacxhs: mqmacxhs$pack $FRintieven,$FRintjeven,$ACC40Sk */
25612 SEM_FN_NAME (frvbf,mqmacxhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
25614 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
25615 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
25616 int UNUSED written = 0;
25617 IADDR UNUSED pc = abuf->addr;
25618 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
25620 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
25621 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
25622 frvbf_media_acc_not_aligned (current_cpu);
25624 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
25625 frvbf_media_register_not_aligned (current_cpu);
25633 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25634 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25635 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25636 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25640 tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Sk)), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo)));
25641 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25644 DI opval = MAKEDI (127, 0xffffffff);
25645 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25646 written |= (1 << 17);
25647 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25649 frvbf_media_overflow (current_cpu, 8);
25652 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25655 DI opval = MAKEDI (0xffffff80, 0);
25656 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25657 written |= (1 << 17);
25658 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25660 frvbf_media_overflow (current_cpu, 8);
25664 DI opval = tmp_tmp;
25665 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25666 written |= (1 << 17);
25667 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25674 tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (1))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi)));
25675 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25678 DI opval = MAKEDI (127, 0xffffffff);
25679 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
25680 written |= (1 << 18);
25681 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25683 frvbf_media_overflow (current_cpu, 4);
25686 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25689 DI opval = MAKEDI (0xffffff80, 0);
25690 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
25691 written |= (1 << 18);
25692 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25694 frvbf_media_overflow (current_cpu, 4);
25698 DI opval = tmp_tmp;
25699 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
25700 written |= (1 << 18);
25701 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25707 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25708 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25709 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25710 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25714 tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (2))), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo)));
25715 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25718 DI opval = MAKEDI (127, 0xffffffff);
25719 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
25720 written |= (1 << 19);
25721 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25723 frvbf_media_overflow (current_cpu, 2);
25726 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25729 DI opval = MAKEDI (0xffffff80, 0);
25730 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
25731 written |= (1 << 19);
25732 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25734 frvbf_media_overflow (current_cpu, 2);
25738 DI opval = tmp_tmp;
25739 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
25740 written |= (1 << 19);
25741 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25748 tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (3))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi)));
25749 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25752 DI opval = MAKEDI (127, 0xffffffff);
25753 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
25754 written |= (1 << 20);
25755 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25757 frvbf_media_overflow (current_cpu, 1);
25760 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25763 DI opval = MAKEDI (0xffffff80, 0);
25764 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
25765 written |= (1 << 20);
25766 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25768 frvbf_media_overflow (current_cpu, 1);
25772 DI opval = tmp_tmp;
25773 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
25774 written |= (1 << 20);
25775 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25785 abuf->written = written;
25790 /* mcpxrs: mcpxrs$pack $FRinti,$FRintj,$ACC40Sk */
25793 SEM_FN_NAME (frvbf,mcpxrs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
25795 #define FLD(f) abuf->fields.sfmt_cmmachs.f
25796 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
25797 int UNUSED written = 0;
25798 IADDR UNUSED pc = abuf->addr;
25799 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
25801 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
25808 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25809 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25810 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25811 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25816 tmp_tmp1 = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
25817 tmp_tmp2 = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
25818 tmp_tmp1 = SUBDI (tmp_tmp1, tmp_tmp2);
25819 if (GTDI (tmp_tmp1, MAKEDI (127, 0xffffffff))) {
25822 DI opval = MAKEDI (127, 0xffffffff);
25823 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25824 written |= (1 << 9);
25825 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25827 frvbf_media_overflow (current_cpu, 8);
25830 if (LTDI (tmp_tmp1, MAKEDI (0xffffff80, 0))) {
25833 DI opval = MAKEDI (0xffffff80, 0);
25834 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25835 written |= (1 << 9);
25836 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25838 frvbf_media_overflow (current_cpu, 8);
25842 DI opval = tmp_tmp1;
25843 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25844 written |= (1 << 9);
25845 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25853 abuf->written = written;
25858 /* mcpxru: mcpxru$pack $FRinti,$FRintj,$ACC40Sk */
25861 SEM_FN_NAME (frvbf,mcpxru) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
25863 #define FLD(f) abuf->fields.sfmt_cmmachs.f
25864 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
25865 int UNUSED written = 0;
25866 IADDR UNUSED pc = abuf->addr;
25867 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
25869 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
25876 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25877 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25878 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25879 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25884 tmp_tmp1 = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
25885 tmp_tmp2 = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
25886 tmp_tmp1 = SUBDI (tmp_tmp1, tmp_tmp2);
25887 if (GTDI (tmp_tmp1, MAKEDI (255, 0xffffffff))) {
25890 DI opval = MAKEDI (255, 0xffffffff);
25891 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25892 written |= (1 << 9);
25893 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25895 frvbf_media_overflow (current_cpu, 8);
25898 if (LTDI (tmp_tmp1, MAKEDI (0, 0))) {
25901 DI opval = MAKEDI (0, 0);
25902 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25903 written |= (1 << 9);
25904 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25906 frvbf_media_overflow (current_cpu, 8);
25910 DI opval = tmp_tmp1;
25911 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25912 written |= (1 << 9);
25913 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25921 abuf->written = written;
25926 /* mcpxis: mcpxis$pack $FRinti,$FRintj,$ACC40Sk */
25929 SEM_FN_NAME (frvbf,mcpxis) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
25931 #define FLD(f) abuf->fields.sfmt_cmmachs.f
25932 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
25933 int UNUSED written = 0;
25934 IADDR UNUSED pc = abuf->addr;
25935 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
25937 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
25944 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25945 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25946 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25947 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25952 tmp_tmp1 = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo));
25953 tmp_tmp2 = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi));
25954 tmp_tmp1 = ADDDI (tmp_tmp1, tmp_tmp2);
25955 if (GTDI (tmp_tmp1, MAKEDI (127, 0xffffffff))) {
25958 DI opval = MAKEDI (127, 0xffffffff);
25959 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25960 written |= (1 << 9);
25961 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25963 frvbf_media_overflow (current_cpu, 8);
25966 if (LTDI (tmp_tmp1, MAKEDI (0xffffff80, 0))) {
25969 DI opval = MAKEDI (0xffffff80, 0);
25970 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25971 written |= (1 << 9);
25972 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25974 frvbf_media_overflow (current_cpu, 8);
25978 DI opval = tmp_tmp1;
25979 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25980 written |= (1 << 9);
25981 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25989 abuf->written = written;
25994 /* mcpxiu: mcpxiu$pack $FRinti,$FRintj,$ACC40Sk */
25997 SEM_FN_NAME (frvbf,mcpxiu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
25999 #define FLD(f) abuf->fields.sfmt_cmmachs.f
26000 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26001 int UNUSED written = 0;
26002 IADDR UNUSED pc = abuf->addr;
26003 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26005 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
26012 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26013 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26014 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26015 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26020 tmp_tmp1 = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjlo));
26021 tmp_tmp2 = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjhi));
26022 tmp_tmp1 = ADDDI (tmp_tmp1, tmp_tmp2);
26023 if (GTDI (tmp_tmp1, MAKEDI (255, 0xffffffff))) {
26026 DI opval = MAKEDI (255, 0xffffffff);
26027 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26028 written |= (1 << 9);
26029 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26031 frvbf_media_overflow (current_cpu, 8);
26034 if (LTDI (tmp_tmp1, MAKEDI (0, 0))) {
26037 DI opval = MAKEDI (0, 0);
26038 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26039 written |= (1 << 9);
26040 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26042 frvbf_media_overflow (current_cpu, 8);
26046 DI opval = tmp_tmp1;
26047 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26048 written |= (1 << 9);
26049 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26057 abuf->written = written;
26062 /* cmcpxrs: cmcpxrs$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
26065 SEM_FN_NAME (frvbf,cmcpxrs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26067 #define FLD(f) abuf->fields.sfmt_cmmachs.f
26068 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26069 int UNUSED written = 0;
26070 IADDR UNUSED pc = abuf->addr;
26071 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26073 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
26074 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
26081 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26082 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26083 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26084 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26089 tmp_tmp1 = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
26090 tmp_tmp2 = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
26091 tmp_tmp1 = SUBDI (tmp_tmp1, tmp_tmp2);
26092 if (GTDI (tmp_tmp1, MAKEDI (127, 0xffffffff))) {
26095 DI opval = MAKEDI (127, 0xffffffff);
26096 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26097 written |= (1 << 11);
26098 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26100 frvbf_media_overflow (current_cpu, 8);
26103 if (LTDI (tmp_tmp1, MAKEDI (0xffffff80, 0))) {
26106 DI opval = MAKEDI (0xffffff80, 0);
26107 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26108 written |= (1 << 11);
26109 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26111 frvbf_media_overflow (current_cpu, 8);
26115 DI opval = tmp_tmp1;
26116 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26117 written |= (1 << 11);
26118 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26127 abuf->written = written;
26132 /* cmcpxru: cmcpxru$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
26135 SEM_FN_NAME (frvbf,cmcpxru) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26137 #define FLD(f) abuf->fields.sfmt_cmmachs.f
26138 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26139 int UNUSED written = 0;
26140 IADDR UNUSED pc = abuf->addr;
26141 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26143 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
26144 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
26151 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26152 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26153 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26154 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26159 tmp_tmp1 = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
26160 tmp_tmp2 = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
26161 tmp_tmp1 = SUBDI (tmp_tmp1, tmp_tmp2);
26162 if (GTDI (tmp_tmp1, MAKEDI (255, 0xffffffff))) {
26165 DI opval = MAKEDI (255, 0xffffffff);
26166 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26167 written |= (1 << 11);
26168 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26170 frvbf_media_overflow (current_cpu, 8);
26173 if (LTDI (tmp_tmp1, MAKEDI (0, 0))) {
26176 DI opval = MAKEDI (0, 0);
26177 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26178 written |= (1 << 11);
26179 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26181 frvbf_media_overflow (current_cpu, 8);
26185 DI opval = tmp_tmp1;
26186 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26187 written |= (1 << 11);
26188 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26197 abuf->written = written;
26202 /* cmcpxis: cmcpxis$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
26205 SEM_FN_NAME (frvbf,cmcpxis) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26207 #define FLD(f) abuf->fields.sfmt_cmmachs.f
26208 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26209 int UNUSED written = 0;
26210 IADDR UNUSED pc = abuf->addr;
26211 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26213 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
26214 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
26221 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26222 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26223 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26224 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26229 tmp_tmp1 = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo));
26230 tmp_tmp2 = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi));
26231 tmp_tmp1 = ADDDI (tmp_tmp1, tmp_tmp2);
26232 if (GTDI (tmp_tmp1, MAKEDI (127, 0xffffffff))) {
26235 DI opval = MAKEDI (127, 0xffffffff);
26236 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26237 written |= (1 << 11);
26238 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26240 frvbf_media_overflow (current_cpu, 8);
26243 if (LTDI (tmp_tmp1, MAKEDI (0xffffff80, 0))) {
26246 DI opval = MAKEDI (0xffffff80, 0);
26247 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26248 written |= (1 << 11);
26249 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26251 frvbf_media_overflow (current_cpu, 8);
26255 DI opval = tmp_tmp1;
26256 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26257 written |= (1 << 11);
26258 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26267 abuf->written = written;
26272 /* cmcpxiu: cmcpxiu$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
26275 SEM_FN_NAME (frvbf,cmcpxiu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26277 #define FLD(f) abuf->fields.sfmt_cmmachs.f
26278 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26279 int UNUSED written = 0;
26280 IADDR UNUSED pc = abuf->addr;
26281 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26283 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
26284 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
26291 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26292 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26293 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26294 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26299 tmp_tmp1 = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjlo));
26300 tmp_tmp2 = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjhi));
26301 tmp_tmp1 = ADDDI (tmp_tmp1, tmp_tmp2);
26302 if (GTDI (tmp_tmp1, MAKEDI (255, 0xffffffff))) {
26305 DI opval = MAKEDI (255, 0xffffffff);
26306 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26307 written |= (1 << 11);
26308 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26310 frvbf_media_overflow (current_cpu, 8);
26313 if (LTDI (tmp_tmp1, MAKEDI (0, 0))) {
26316 DI opval = MAKEDI (0, 0);
26317 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26318 written |= (1 << 11);
26319 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26321 frvbf_media_overflow (current_cpu, 8);
26325 DI opval = tmp_tmp1;
26326 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26327 written |= (1 << 11);
26328 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26337 abuf->written = written;
26342 /* mqcpxrs: mqcpxrs$pack $FRintieven,$FRintjeven,$ACC40Sk */
26345 SEM_FN_NAME (frvbf,mqcpxrs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26347 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
26348 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26349 int UNUSED written = 0;
26350 IADDR UNUSED pc = abuf->addr;
26351 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26353 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
26354 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
26355 frvbf_media_acc_not_aligned (current_cpu);
26357 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
26358 frvbf_media_register_not_aligned (current_cpu);
26366 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26367 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26368 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26369 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26374 tmp_tmp1 = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
26375 tmp_tmp2 = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
26376 tmp_tmp1 = SUBDI (tmp_tmp1, tmp_tmp2);
26377 if (GTDI (tmp_tmp1, MAKEDI (127, 0xffffffff))) {
26380 DI opval = MAKEDI (127, 0xffffffff);
26381 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26382 written |= (1 << 13);
26383 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26385 frvbf_media_overflow (current_cpu, 8);
26388 if (LTDI (tmp_tmp1, MAKEDI (0xffffff80, 0))) {
26391 DI opval = MAKEDI (0xffffff80, 0);
26392 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26393 written |= (1 << 13);
26394 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26396 frvbf_media_overflow (current_cpu, 8);
26400 DI opval = tmp_tmp1;
26401 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26402 written |= (1 << 13);
26403 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26409 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26410 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26411 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26412 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26417 tmp_tmp1 = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
26418 tmp_tmp2 = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
26419 tmp_tmp1 = SUBDI (tmp_tmp1, tmp_tmp2);
26420 if (GTDI (tmp_tmp1, MAKEDI (127, 0xffffffff))) {
26423 DI opval = MAKEDI (127, 0xffffffff);
26424 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
26425 written |= (1 << 14);
26426 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26428 frvbf_media_overflow (current_cpu, 4);
26431 if (LTDI (tmp_tmp1, MAKEDI (0xffffff80, 0))) {
26434 DI opval = MAKEDI (0xffffff80, 0);
26435 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
26436 written |= (1 << 14);
26437 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26439 frvbf_media_overflow (current_cpu, 4);
26443 DI opval = tmp_tmp1;
26444 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
26445 written |= (1 << 14);
26446 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26456 abuf->written = written;
26461 /* mqcpxru: mqcpxru$pack $FRintieven,$FRintjeven,$ACC40Sk */
26464 SEM_FN_NAME (frvbf,mqcpxru) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26466 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
26467 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26468 int UNUSED written = 0;
26469 IADDR UNUSED pc = abuf->addr;
26470 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26472 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
26473 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
26474 frvbf_media_acc_not_aligned (current_cpu);
26476 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
26477 frvbf_media_register_not_aligned (current_cpu);
26485 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26486 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26487 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26488 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26493 tmp_tmp1 = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
26494 tmp_tmp2 = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
26495 tmp_tmp1 = SUBDI (tmp_tmp1, tmp_tmp2);
26496 if (GTDI (tmp_tmp1, MAKEDI (255, 0xffffffff))) {
26499 DI opval = MAKEDI (255, 0xffffffff);
26500 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26501 written |= (1 << 13);
26502 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26504 frvbf_media_overflow (current_cpu, 8);
26507 if (LTDI (tmp_tmp1, MAKEDI (0, 0))) {
26510 DI opval = MAKEDI (0, 0);
26511 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26512 written |= (1 << 13);
26513 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26515 frvbf_media_overflow (current_cpu, 8);
26519 DI opval = tmp_tmp1;
26520 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26521 written |= (1 << 13);
26522 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26528 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26529 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26530 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26531 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26536 tmp_tmp1 = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
26537 tmp_tmp2 = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
26538 tmp_tmp1 = SUBDI (tmp_tmp1, tmp_tmp2);
26539 if (GTDI (tmp_tmp1, MAKEDI (255, 0xffffffff))) {
26542 DI opval = MAKEDI (255, 0xffffffff);
26543 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
26544 written |= (1 << 14);
26545 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26547 frvbf_media_overflow (current_cpu, 4);
26550 if (LTDI (tmp_tmp1, MAKEDI (0, 0))) {
26553 DI opval = MAKEDI (0, 0);
26554 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
26555 written |= (1 << 14);
26556 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26558 frvbf_media_overflow (current_cpu, 4);
26562 DI opval = tmp_tmp1;
26563 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
26564 written |= (1 << 14);
26565 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26575 abuf->written = written;
26580 /* mqcpxis: mqcpxis$pack $FRintieven,$FRintjeven,$ACC40Sk */
26583 SEM_FN_NAME (frvbf,mqcpxis) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26585 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
26586 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26587 int UNUSED written = 0;
26588 IADDR UNUSED pc = abuf->addr;
26589 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26591 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
26592 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
26593 frvbf_media_acc_not_aligned (current_cpu);
26595 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
26596 frvbf_media_register_not_aligned (current_cpu);
26604 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26605 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26606 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26607 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26612 tmp_tmp1 = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo));
26613 tmp_tmp2 = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi));
26614 tmp_tmp1 = ADDDI (tmp_tmp1, tmp_tmp2);
26615 if (GTDI (tmp_tmp1, MAKEDI (127, 0xffffffff))) {
26618 DI opval = MAKEDI (127, 0xffffffff);
26619 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26620 written |= (1 << 13);
26621 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26623 frvbf_media_overflow (current_cpu, 8);
26626 if (LTDI (tmp_tmp1, MAKEDI (0xffffff80, 0))) {
26629 DI opval = MAKEDI (0xffffff80, 0);
26630 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26631 written |= (1 << 13);
26632 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26634 frvbf_media_overflow (current_cpu, 8);
26638 DI opval = tmp_tmp1;
26639 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26640 written |= (1 << 13);
26641 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26647 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26648 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26649 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26650 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26655 tmp_tmp1 = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo));
26656 tmp_tmp2 = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi));
26657 tmp_tmp1 = ADDDI (tmp_tmp1, tmp_tmp2);
26658 if (GTDI (tmp_tmp1, MAKEDI (127, 0xffffffff))) {
26661 DI opval = MAKEDI (127, 0xffffffff);
26662 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
26663 written |= (1 << 14);
26664 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26666 frvbf_media_overflow (current_cpu, 4);
26669 if (LTDI (tmp_tmp1, MAKEDI (0xffffff80, 0))) {
26672 DI opval = MAKEDI (0xffffff80, 0);
26673 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
26674 written |= (1 << 14);
26675 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26677 frvbf_media_overflow (current_cpu, 4);
26681 DI opval = tmp_tmp1;
26682 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
26683 written |= (1 << 14);
26684 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26694 abuf->written = written;
26699 /* mqcpxiu: mqcpxiu$pack $FRintieven,$FRintjeven,$ACC40Sk */
26702 SEM_FN_NAME (frvbf,mqcpxiu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26704 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
26705 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26706 int UNUSED written = 0;
26707 IADDR UNUSED pc = abuf->addr;
26708 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26710 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
26711 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
26712 frvbf_media_acc_not_aligned (current_cpu);
26714 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
26715 frvbf_media_register_not_aligned (current_cpu);
26723 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26724 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26725 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26726 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26731 tmp_tmp1 = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjlo));
26732 tmp_tmp2 = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjhi));
26733 tmp_tmp1 = ADDDI (tmp_tmp1, tmp_tmp2);
26734 if (GTDI (tmp_tmp1, MAKEDI (255, 0xffffffff))) {
26737 DI opval = MAKEDI (255, 0xffffffff);
26738 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26739 written |= (1 << 13);
26740 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26742 frvbf_media_overflow (current_cpu, 8);
26745 if (LTDI (tmp_tmp1, MAKEDI (0, 0))) {
26748 DI opval = MAKEDI (0, 0);
26749 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26750 written |= (1 << 13);
26751 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26753 frvbf_media_overflow (current_cpu, 8);
26757 DI opval = tmp_tmp1;
26758 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26759 written |= (1 << 13);
26760 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26766 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26767 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26768 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26769 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26774 tmp_tmp1 = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjlo));
26775 tmp_tmp2 = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjhi));
26776 tmp_tmp1 = ADDDI (tmp_tmp1, tmp_tmp2);
26777 if (GTDI (tmp_tmp1, MAKEDI (255, 0xffffffff))) {
26780 DI opval = MAKEDI (255, 0xffffffff);
26781 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
26782 written |= (1 << 14);
26783 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26785 frvbf_media_overflow (current_cpu, 4);
26788 if (LTDI (tmp_tmp1, MAKEDI (0, 0))) {
26791 DI opval = MAKEDI (0, 0);
26792 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
26793 written |= (1 << 14);
26794 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26796 frvbf_media_overflow (current_cpu, 4);
26800 DI opval = tmp_tmp1;
26801 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
26802 written |= (1 << 14);
26803 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26813 abuf->written = written;
26818 /* mexpdhw: mexpdhw$pack $FRinti,$u6,$FRintk */
26821 SEM_FN_NAME (frvbf,mexpdhw) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26823 #define FLD(f) abuf->fields.sfmt_cmexpdhw.f
26824 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26825 int UNUSED written = 0;
26826 IADDR UNUSED pc = abuf->addr;
26827 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26831 if (ANDSI (FLD (f_u6), 1)) {
26832 tmp_tmp = GET_H_FR_LO (((FLD (f_FRi)) + (0)));
26834 tmp_tmp = GET_H_FR_HI (((FLD (f_FRi)) + (0)));
26837 UHI opval = tmp_tmp;
26838 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
26839 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
26842 UHI opval = tmp_tmp;
26843 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
26844 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
26852 /* cmexpdhw: cmexpdhw$pack $FRinti,$u6,$FRintk,$CCi,$cond */
26855 SEM_FN_NAME (frvbf,cmexpdhw) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26857 #define FLD(f) abuf->fields.sfmt_cmexpdhw.f
26858 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26859 int UNUSED written = 0;
26860 IADDR UNUSED pc = abuf->addr;
26861 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26863 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
26866 if (ANDSI (FLD (f_u6), 1)) {
26867 tmp_tmp = GET_H_FR_LO (((FLD (f_FRi)) + (0)));
26869 tmp_tmp = GET_H_FR_HI (((FLD (f_FRi)) + (0)));
26872 UHI opval = tmp_tmp;
26873 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
26874 written |= (1 << 7);
26875 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
26878 UHI opval = tmp_tmp;
26879 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
26880 written |= (1 << 8);
26881 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
26886 abuf->written = written;
26891 /* mexpdhd: mexpdhd$pack $FRinti,$u6,$FRintkeven */
26894 SEM_FN_NAME (frvbf,mexpdhd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26896 #define FLD(f) abuf->fields.sfmt_cmexpdhd.f
26897 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26898 int UNUSED written = 0;
26899 IADDR UNUSED pc = abuf->addr;
26900 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26902 if (ANDSI (FLD (f_FRk), SUBSI (2, 1))) {
26903 frvbf_media_register_not_aligned (current_cpu);
26908 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
26909 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
26910 written |= (1 << 6);
26911 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
26913 if (ANDSI (FLD (f_u6), 1)) {
26914 tmp_tmp = GET_H_FR_LO (((FLD (f_FRi)) + (0)));
26916 tmp_tmp = GET_H_FR_HI (((FLD (f_FRi)) + (0)));
26919 UHI opval = tmp_tmp;
26920 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
26921 written |= (1 << 7);
26922 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
26925 UHI opval = tmp_tmp;
26926 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
26927 written |= (1 << 9);
26928 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
26931 UHI opval = tmp_tmp;
26932 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
26933 written |= (1 << 8);
26934 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
26937 UHI opval = tmp_tmp;
26938 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
26939 written |= (1 << 10);
26940 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
26945 abuf->written = written;
26950 /* cmexpdhd: cmexpdhd$pack $FRinti,$u6,$FRintkeven,$CCi,$cond */
26953 SEM_FN_NAME (frvbf,cmexpdhd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26955 #define FLD(f) abuf->fields.sfmt_cmexpdhd.f
26956 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26957 int UNUSED written = 0;
26958 IADDR UNUSED pc = abuf->addr;
26959 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26961 if (ANDSI (FLD (f_FRk), SUBSI (2, 1))) {
26962 frvbf_media_register_not_aligned (current_cpu);
26964 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
26968 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
26969 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
26970 written |= (1 << 8);
26971 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
26973 if (ANDSI (FLD (f_u6), 1)) {
26974 tmp_tmp = GET_H_FR_LO (((FLD (f_FRi)) + (0)));
26976 tmp_tmp = GET_H_FR_HI (((FLD (f_FRi)) + (0)));
26979 UHI opval = tmp_tmp;
26980 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
26981 written |= (1 << 9);
26982 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
26985 UHI opval = tmp_tmp;
26986 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
26987 written |= (1 << 11);
26988 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
26991 UHI opval = tmp_tmp;
26992 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
26993 written |= (1 << 10);
26994 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
26997 UHI opval = tmp_tmp;
26998 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
26999 written |= (1 << 12);
27000 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27006 abuf->written = written;
27011 /* mpackh: mpackh$pack $FRinti,$FRintj,$FRintk */
27014 SEM_FN_NAME (frvbf,mpackh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27016 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
27017 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27018 int UNUSED written = 0;
27019 IADDR UNUSED pc = abuf->addr;
27020 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27024 UHI opval = GET_H_FR_LO (((FLD (f_FRi)) + (0)));
27025 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
27026 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27029 UHI opval = GET_H_FR_LO (((FLD (f_FRj)) + (0)));
27030 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
27031 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27039 /* mdpackh: mdpackh$pack $FRintieven,$FRintjeven,$FRintkeven */
27042 SEM_FN_NAME (frvbf,mdpackh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27044 #define FLD(f) abuf->fields.sfmt_mdpackh.f
27045 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27046 int UNUSED written = 0;
27047 IADDR UNUSED pc = abuf->addr;
27048 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27050 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
27051 frvbf_media_register_not_aligned (current_cpu);
27055 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRi)));
27056 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRi), opval);
27057 written |= (1 << 10);
27058 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27061 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRj)));
27062 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRj), opval);
27063 written |= (1 << 11);
27064 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27067 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27068 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27069 written |= (1 << 12);
27070 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27074 UHI opval = GET_H_FR_LO (((FLD (f_FRi)) + (0)));
27075 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
27076 written |= (1 << 13);
27077 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27080 UHI opval = GET_H_FR_LO (((FLD (f_FRj)) + (0)));
27081 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
27082 written |= (1 << 15);
27083 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27088 UHI opval = GET_H_FR_LO (((FLD (f_FRi)) + (1)));
27089 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
27090 written |= (1 << 14);
27091 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27094 UHI opval = GET_H_FR_LO (((FLD (f_FRj)) + (1)));
27095 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
27096 written |= (1 << 16);
27097 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27103 abuf->written = written;
27108 /* munpackh: munpackh$pack $FRinti,$FRintkeven */
27111 SEM_FN_NAME (frvbf,munpackh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27113 #define FLD(f) abuf->fields.sfmt_munpackh.f
27114 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27115 int UNUSED written = 0;
27116 IADDR UNUSED pc = abuf->addr;
27117 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27119 if (ANDSI (FLD (f_FRk), SUBSI (2, 1))) {
27120 frvbf_media_register_not_aligned (current_cpu);
27124 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRi)));
27125 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRi), opval);
27126 written |= (1 << 6);
27127 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27130 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27131 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27132 written |= (1 << 7);
27133 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27137 UHI opval = GET_H_FR_HI (((FLD (f_FRi)) + (0)));
27138 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
27139 written |= (1 << 8);
27140 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27143 UHI opval = GET_H_FR_HI (((FLD (f_FRi)) + (0)));
27144 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
27145 written |= (1 << 10);
27146 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27149 UHI opval = GET_H_FR_LO (((FLD (f_FRi)) + (0)));
27150 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (ADDSI (0, 1))), opval);
27151 written |= (1 << 9);
27152 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27155 UHI opval = GET_H_FR_LO (((FLD (f_FRi)) + (0)));
27156 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (ADDSI (0, 1))), opval);
27157 written |= (1 << 11);
27158 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27164 abuf->written = written;
27169 /* mdunpackh: mdunpackh$pack $FRintieven,$FRintk */
27172 SEM_FN_NAME (frvbf,mdunpackh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27174 #define FLD(f) abuf->fields.sfmt_mdunpackh.f
27175 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27176 int UNUSED written = 0;
27177 IADDR UNUSED pc = abuf->addr;
27178 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27180 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (4, 1)))) {
27181 frvbf_media_register_not_aligned (current_cpu);
27185 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRi)));
27186 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRi), opval);
27187 written |= (1 << 8);
27188 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27191 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27192 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27193 written |= (1 << 9);
27194 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27198 UHI opval = GET_H_FR_HI (((FLD (f_FRi)) + (0)));
27199 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
27200 written |= (1 << 10);
27201 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27204 UHI opval = GET_H_FR_HI (((FLD (f_FRi)) + (0)));
27205 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
27206 written |= (1 << 14);
27207 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27210 UHI opval = GET_H_FR_LO (((FLD (f_FRi)) + (0)));
27211 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (ADDSI (0, 1))), opval);
27212 written |= (1 << 12);
27213 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27216 UHI opval = GET_H_FR_LO (((FLD (f_FRi)) + (0)));
27217 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (ADDSI (0, 1))), opval);
27218 written |= (1 << 16);
27219 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27224 UHI opval = GET_H_FR_HI (((FLD (f_FRi)) + (1)));
27225 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (2)), opval);
27226 written |= (1 << 11);
27227 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27230 UHI opval = GET_H_FR_HI (((FLD (f_FRi)) + (1)));
27231 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (2)), opval);
27232 written |= (1 << 15);
27233 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27236 UHI opval = GET_H_FR_LO (((FLD (f_FRi)) + (1)));
27237 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (ADDSI (2, 1))), opval);
27238 written |= (1 << 13);
27239 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27242 UHI opval = GET_H_FR_LO (((FLD (f_FRi)) + (1)));
27243 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (ADDSI (2, 1))), opval);
27244 written |= (1 << 17);
27245 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27251 abuf->written = written;
27256 /* mbtoh: mbtoh$pack $FRintj,$FRintkeven */
27259 SEM_FN_NAME (frvbf,mbtoh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27261 #define FLD(f) abuf->fields.sfmt_cmbtoh.f
27262 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27263 int UNUSED written = 0;
27264 IADDR UNUSED pc = abuf->addr;
27265 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27269 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRj)));
27270 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRj), opval);
27271 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27274 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27275 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27276 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27278 if (ANDSI (FLD (f_FRk), SUBSI (2, 1))) {
27279 frvbf_media_register_not_aligned (current_cpu);
27283 UHI opval = GET_H_FR_3 (((FLD (f_FRj)) + (0)));
27284 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
27285 written |= (1 << 10);
27286 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27289 UHI opval = GET_H_FR_2 (((FLD (f_FRj)) + (0)));
27290 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
27291 written |= (1 << 12);
27292 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27295 UHI opval = GET_H_FR_1 (((FLD (f_FRj)) + (0)));
27296 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
27297 written |= (1 << 11);
27298 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27301 UHI opval = GET_H_FR_0 (((FLD (f_FRj)) + (0)));
27302 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
27303 written |= (1 << 13);
27304 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27310 abuf->written = written;
27315 /* cmbtoh: cmbtoh$pack $FRintj,$FRintkeven,$CCi,$cond */
27318 SEM_FN_NAME (frvbf,cmbtoh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27320 #define FLD(f) abuf->fields.sfmt_cmbtoh.f
27321 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27322 int UNUSED written = 0;
27323 IADDR UNUSED pc = abuf->addr;
27324 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27328 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRj)));
27329 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRj), opval);
27330 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27333 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27334 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27335 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27337 if (ANDSI (FLD (f_FRk), SUBSI (2, 1))) {
27338 frvbf_media_register_not_aligned (current_cpu);
27340 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
27343 UHI opval = GET_H_FR_3 (((FLD (f_FRj)) + (0)));
27344 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
27345 written |= (1 << 12);
27346 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27349 UHI opval = GET_H_FR_2 (((FLD (f_FRj)) + (0)));
27350 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
27351 written |= (1 << 14);
27352 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27355 UHI opval = GET_H_FR_1 (((FLD (f_FRj)) + (0)));
27356 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
27357 written |= (1 << 13);
27358 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27361 UHI opval = GET_H_FR_0 (((FLD (f_FRj)) + (0)));
27362 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
27363 written |= (1 << 15);
27364 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27371 abuf->written = written;
27376 /* mhtob: mhtob$pack $FRintjeven,$FRintk */
27379 SEM_FN_NAME (frvbf,mhtob) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27381 #define FLD(f) abuf->fields.sfmt_cmhtob.f
27382 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27383 int UNUSED written = 0;
27384 IADDR UNUSED pc = abuf->addr;
27385 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27389 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRj)));
27390 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRj), opval);
27391 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27394 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27395 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27396 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27398 if (ANDSI (FLD (f_FRj), SUBSI (2, 1))) {
27399 frvbf_media_register_not_aligned (current_cpu);
27403 UHI opval = GET_H_FR_HI (((FLD (f_FRj)) + (0)));
27404 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_3_set, ((FLD (f_FRk)) + (0)), opval);
27405 written |= (1 << 13);
27406 TRACE_RESULT (current_cpu, abuf, "fr_3", 'x', opval);
27409 UHI opval = GET_H_FR_LO (((FLD (f_FRj)) + (0)));
27410 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_2_set, ((FLD (f_FRk)) + (0)), opval);
27411 written |= (1 << 12);
27412 TRACE_RESULT (current_cpu, abuf, "fr_2", 'x', opval);
27415 UHI opval = GET_H_FR_HI (((FLD (f_FRj)) + (1)));
27416 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_1_set, ((FLD (f_FRk)) + (0)), opval);
27417 written |= (1 << 11);
27418 TRACE_RESULT (current_cpu, abuf, "fr_1", 'x', opval);
27421 UHI opval = GET_H_FR_LO (((FLD (f_FRj)) + (1)));
27422 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_0_set, ((FLD (f_FRk)) + (0)), opval);
27423 written |= (1 << 10);
27424 TRACE_RESULT (current_cpu, abuf, "fr_0", 'x', opval);
27430 abuf->written = written;
27435 /* cmhtob: cmhtob$pack $FRintjeven,$FRintk,$CCi,$cond */
27438 SEM_FN_NAME (frvbf,cmhtob) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27440 #define FLD(f) abuf->fields.sfmt_cmhtob.f
27441 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27442 int UNUSED written = 0;
27443 IADDR UNUSED pc = abuf->addr;
27444 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27448 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRj)));
27449 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRj), opval);
27450 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27453 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27454 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27455 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27457 if (ANDSI (FLD (f_FRj), SUBSI (2, 1))) {
27458 frvbf_media_register_not_aligned (current_cpu);
27460 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
27463 UHI opval = GET_H_FR_HI (((FLD (f_FRj)) + (0)));
27464 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_3_set, ((FLD (f_FRk)) + (0)), opval);
27465 written |= (1 << 15);
27466 TRACE_RESULT (current_cpu, abuf, "fr_3", 'x', opval);
27469 UHI opval = GET_H_FR_LO (((FLD (f_FRj)) + (0)));
27470 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_2_set, ((FLD (f_FRk)) + (0)), opval);
27471 written |= (1 << 14);
27472 TRACE_RESULT (current_cpu, abuf, "fr_2", 'x', opval);
27475 UHI opval = GET_H_FR_HI (((FLD (f_FRj)) + (1)));
27476 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_1_set, ((FLD (f_FRk)) + (0)), opval);
27477 written |= (1 << 13);
27478 TRACE_RESULT (current_cpu, abuf, "fr_1", 'x', opval);
27481 UHI opval = GET_H_FR_LO (((FLD (f_FRj)) + (1)));
27482 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_0_set, ((FLD (f_FRk)) + (0)), opval);
27483 written |= (1 << 12);
27484 TRACE_RESULT (current_cpu, abuf, "fr_0", 'x', opval);
27491 abuf->written = written;
27496 /* mbtohe: mbtohe$pack $FRintj,$FRintk */
27499 SEM_FN_NAME (frvbf,mbtohe) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27501 #define FLD(f) abuf->fields.sfmt_cmbtohe.f
27502 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27503 int UNUSED written = 0;
27504 IADDR UNUSED pc = abuf->addr;
27505 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27509 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRj)));
27510 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRj), opval);
27511 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27514 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27515 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27516 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27518 if (ANDSI (FLD (f_FRk), SUBSI (4, 1))) {
27519 frvbf_media_register_not_aligned (current_cpu);
27523 UHI opval = GET_H_FR_3 (((FLD (f_FRj)) + (0)));
27524 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
27525 written |= (1 << 10);
27526 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27529 UHI opval = GET_H_FR_3 (((FLD (f_FRj)) + (0)));
27530 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
27531 written |= (1 << 14);
27532 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27535 UHI opval = GET_H_FR_2 (((FLD (f_FRj)) + (0)));
27536 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
27537 written |= (1 << 11);
27538 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27541 UHI opval = GET_H_FR_2 (((FLD (f_FRj)) + (0)));
27542 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
27543 written |= (1 << 15);
27544 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27547 UHI opval = GET_H_FR_1 (((FLD (f_FRj)) + (0)));
27548 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (2)), opval);
27549 written |= (1 << 12);
27550 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27553 UHI opval = GET_H_FR_1 (((FLD (f_FRj)) + (0)));
27554 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (2)), opval);
27555 written |= (1 << 16);
27556 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27559 UHI opval = GET_H_FR_0 (((FLD (f_FRj)) + (0)));
27560 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (3)), opval);
27561 written |= (1 << 13);
27562 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27565 UHI opval = GET_H_FR_0 (((FLD (f_FRj)) + (0)));
27566 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (3)), opval);
27567 written |= (1 << 17);
27568 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27574 abuf->written = written;
27579 /* cmbtohe: cmbtohe$pack $FRintj,$FRintk,$CCi,$cond */
27582 SEM_FN_NAME (frvbf,cmbtohe) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27584 #define FLD(f) abuf->fields.sfmt_cmbtohe.f
27585 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27586 int UNUSED written = 0;
27587 IADDR UNUSED pc = abuf->addr;
27588 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27592 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRj)));
27593 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRj), opval);
27594 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27597 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27598 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27599 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27601 if (ANDSI (FLD (f_FRk), SUBSI (4, 1))) {
27602 frvbf_media_register_not_aligned (current_cpu);
27604 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
27607 UHI opval = GET_H_FR_3 (((FLD (f_FRj)) + (0)));
27608 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
27609 written |= (1 << 12);
27610 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27613 UHI opval = GET_H_FR_3 (((FLD (f_FRj)) + (0)));
27614 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
27615 written |= (1 << 16);
27616 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27619 UHI opval = GET_H_FR_2 (((FLD (f_FRj)) + (0)));
27620 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
27621 written |= (1 << 13);
27622 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27625 UHI opval = GET_H_FR_2 (((FLD (f_FRj)) + (0)));
27626 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
27627 written |= (1 << 17);
27628 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27631 UHI opval = GET_H_FR_1 (((FLD (f_FRj)) + (0)));
27632 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (2)), opval);
27633 written |= (1 << 14);
27634 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27637 UHI opval = GET_H_FR_1 (((FLD (f_FRj)) + (0)));
27638 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (2)), opval);
27639 written |= (1 << 18);
27640 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27643 UHI opval = GET_H_FR_0 (((FLD (f_FRj)) + (0)));
27644 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (3)), opval);
27645 written |= (1 << 15);
27646 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27649 UHI opval = GET_H_FR_0 (((FLD (f_FRj)) + (0)));
27650 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (3)), opval);
27651 written |= (1 << 19);
27652 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27659 abuf->written = written;
27664 /* mnop: mnop$pack */
27667 SEM_FN_NAME (frvbf,mnop) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27669 #define FLD(f) abuf->fields.fmt_empty.f
27670 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27671 int UNUSED written = 0;
27672 IADDR UNUSED pc = abuf->addr;
27673 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27675 ((void) 0); /*nop*/
27681 /* mclracc-0: mclracc$pack $ACC40Sk,$A0 */
27684 SEM_FN_NAME (frvbf,mclracc_0) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27686 #define FLD(f) abuf->fields.sfmt_mdasaccs.f
27687 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27688 int UNUSED written = 0;
27689 IADDR UNUSED pc = abuf->addr;
27690 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27692 frvbf_clear_accumulators (current_cpu, FLD (f_ACC40Sk), 0);
27698 /* mclracc-1: mclracc$pack $ACC40Sk,$A1 */
27701 SEM_FN_NAME (frvbf,mclracc_1) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27703 #define FLD(f) abuf->fields.sfmt_mdasaccs.f
27704 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27705 int UNUSED written = 0;
27706 IADDR UNUSED pc = abuf->addr;
27707 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27709 frvbf_clear_accumulators (current_cpu, FLD (f_ACC40Sk), 1);
27715 /* mrdacc: mrdacc$pack $ACC40Si,$FRintk */
27718 SEM_FN_NAME (frvbf,mrdacc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27720 #define FLD(f) abuf->fields.sfmt_mcuti.f
27721 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27722 int UNUSED written = 0;
27723 IADDR UNUSED pc = abuf->addr;
27724 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27727 SI opval = GET_H_ACC40S (FLD (f_ACC40Si));
27728 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27729 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27736 /* mrdaccg: mrdaccg$pack $ACCGi,$FRintk */
27739 SEM_FN_NAME (frvbf,mrdaccg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27741 #define FLD(f) abuf->fields.sfmt_mrdaccg.f
27742 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27743 int UNUSED written = 0;
27744 IADDR UNUSED pc = abuf->addr;
27745 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27748 SI opval = GET_H_ACCG (FLD (f_ACCGi));
27749 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27750 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27757 /* mwtacc: mwtacc$pack $FRinti,$ACC40Sk */
27760 SEM_FN_NAME (frvbf,mwtacc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27762 #define FLD(f) abuf->fields.sfmt_cmmachs.f
27763 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27764 int UNUSED written = 0;
27765 IADDR UNUSED pc = abuf->addr;
27766 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27769 DI opval = ORDI (ANDDI (GET_H_ACC40S (FLD (f_ACC40Sk)), MAKEDI (0xffffffff, 0)), GET_H_FR_INT (FLD (f_FRi)));
27770 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
27771 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
27778 /* mwtaccg: mwtaccg$pack $FRinti,$ACCGk */
27781 SEM_FN_NAME (frvbf,mwtaccg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27783 #define FLD(f) abuf->fields.sfmt_mwtaccg.f
27784 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27785 int UNUSED written = 0;
27786 IADDR UNUSED pc = abuf->addr;
27787 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27790 frv_ref_SI (GET_H_ACCG (FLD (f_ACCGk)));
27792 USI opval = GET_H_FR_INT (FLD (f_FRi));
27793 sim_queue_fn_si_write (current_cpu, frvbf_h_accg_set, FLD (f_ACCGk), opval);
27794 TRACE_RESULT (current_cpu, abuf, "accg", 'x', opval);
27802 /* mcop1: mcop1$pack $FRi,$FRj,$FRk */
27805 SEM_FN_NAME (frvbf,mcop1) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27807 #define FLD(f) abuf->fields.fmt_empty.f
27808 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27809 int UNUSED written = 0;
27810 IADDR UNUSED pc = abuf->addr;
27811 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27813 frvbf_media_cop (current_cpu, 1);
27819 /* mcop2: mcop2$pack $FRi,$FRj,$FRk */
27822 SEM_FN_NAME (frvbf,mcop2) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27824 #define FLD(f) abuf->fields.fmt_empty.f
27825 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27826 int UNUSED written = 0;
27827 IADDR UNUSED pc = abuf->addr;
27828 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27830 frvbf_media_cop (current_cpu, 2);
27836 /* fnop: fnop$pack */
27839 SEM_FN_NAME (frvbf,fnop) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27841 #define FLD(f) abuf->fields.fmt_empty.f
27842 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27843 int UNUSED written = 0;
27844 IADDR UNUSED pc = abuf->addr;
27845 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27847 ((void) 0); /*nop*/
27853 /* Table of all semantic fns. */
27855 static const struct sem_fn_desc sem_fns[] = {
27856 { FRVBF_INSN_X_INVALID, SEM_FN_NAME (frvbf,x_invalid) },
27857 { FRVBF_INSN_X_AFTER, SEM_FN_NAME (frvbf,x_after) },
27858 { FRVBF_INSN_X_BEFORE, SEM_FN_NAME (frvbf,x_before) },
27859 { FRVBF_INSN_X_CTI_CHAIN, SEM_FN_NAME (frvbf,x_cti_chain) },
27860 { FRVBF_INSN_X_CHAIN, SEM_FN_NAME (frvbf,x_chain) },
27861 { FRVBF_INSN_X_BEGIN, SEM_FN_NAME (frvbf,x_begin) },
27862 { FRVBF_INSN_ADD, SEM_FN_NAME (frvbf,add) },
27863 { FRVBF_INSN_SUB, SEM_FN_NAME (frvbf,sub) },
27864 { FRVBF_INSN_AND, SEM_FN_NAME (frvbf,and) },
27865 { FRVBF_INSN_OR, SEM_FN_NAME (frvbf,or) },
27866 { FRVBF_INSN_XOR, SEM_FN_NAME (frvbf,xor) },
27867 { FRVBF_INSN_NOT, SEM_FN_NAME (frvbf,not) },
27868 { FRVBF_INSN_SDIV, SEM_FN_NAME (frvbf,sdiv) },
27869 { FRVBF_INSN_NSDIV, SEM_FN_NAME (frvbf,nsdiv) },
27870 { FRVBF_INSN_UDIV, SEM_FN_NAME (frvbf,udiv) },
27871 { FRVBF_INSN_NUDIV, SEM_FN_NAME (frvbf,nudiv) },
27872 { FRVBF_INSN_SMUL, SEM_FN_NAME (frvbf,smul) },
27873 { FRVBF_INSN_UMUL, SEM_FN_NAME (frvbf,umul) },
27874 { FRVBF_INSN_SMU, SEM_FN_NAME (frvbf,smu) },
27875 { FRVBF_INSN_SMASS, SEM_FN_NAME (frvbf,smass) },
27876 { FRVBF_INSN_SMSSS, SEM_FN_NAME (frvbf,smsss) },
27877 { FRVBF_INSN_SLL, SEM_FN_NAME (frvbf,sll) },
27878 { FRVBF_INSN_SRL, SEM_FN_NAME (frvbf,srl) },
27879 { FRVBF_INSN_SRA, SEM_FN_NAME (frvbf,sra) },
27880 { FRVBF_INSN_SLASS, SEM_FN_NAME (frvbf,slass) },
27881 { FRVBF_INSN_SCUTSS, SEM_FN_NAME (frvbf,scutss) },
27882 { FRVBF_INSN_SCAN, SEM_FN_NAME (frvbf,scan) },
27883 { FRVBF_INSN_CADD, SEM_FN_NAME (frvbf,cadd) },
27884 { FRVBF_INSN_CSUB, SEM_FN_NAME (frvbf,csub) },
27885 { FRVBF_INSN_CAND, SEM_FN_NAME (frvbf,cand) },
27886 { FRVBF_INSN_COR, SEM_FN_NAME (frvbf,cor) },
27887 { FRVBF_INSN_CXOR, SEM_FN_NAME (frvbf,cxor) },
27888 { FRVBF_INSN_CNOT, SEM_FN_NAME (frvbf,cnot) },
27889 { FRVBF_INSN_CSMUL, SEM_FN_NAME (frvbf,csmul) },
27890 { FRVBF_INSN_CSDIV, SEM_FN_NAME (frvbf,csdiv) },
27891 { FRVBF_INSN_CUDIV, SEM_FN_NAME (frvbf,cudiv) },
27892 { FRVBF_INSN_CSLL, SEM_FN_NAME (frvbf,csll) },
27893 { FRVBF_INSN_CSRL, SEM_FN_NAME (frvbf,csrl) },
27894 { FRVBF_INSN_CSRA, SEM_FN_NAME (frvbf,csra) },
27895 { FRVBF_INSN_CSCAN, SEM_FN_NAME (frvbf,cscan) },
27896 { FRVBF_INSN_ADDCC, SEM_FN_NAME (frvbf,addcc) },
27897 { FRVBF_INSN_SUBCC, SEM_FN_NAME (frvbf,subcc) },
27898 { FRVBF_INSN_ANDCC, SEM_FN_NAME (frvbf,andcc) },
27899 { FRVBF_INSN_ORCC, SEM_FN_NAME (frvbf,orcc) },
27900 { FRVBF_INSN_XORCC, SEM_FN_NAME (frvbf,xorcc) },
27901 { FRVBF_INSN_SLLCC, SEM_FN_NAME (frvbf,sllcc) },
27902 { FRVBF_INSN_SRLCC, SEM_FN_NAME (frvbf,srlcc) },
27903 { FRVBF_INSN_SRACC, SEM_FN_NAME (frvbf,sracc) },
27904 { FRVBF_INSN_SMULCC, SEM_FN_NAME (frvbf,smulcc) },
27905 { FRVBF_INSN_UMULCC, SEM_FN_NAME (frvbf,umulcc) },
27906 { FRVBF_INSN_CADDCC, SEM_FN_NAME (frvbf,caddcc) },
27907 { FRVBF_INSN_CSUBCC, SEM_FN_NAME (frvbf,csubcc) },
27908 { FRVBF_INSN_CSMULCC, SEM_FN_NAME (frvbf,csmulcc) },
27909 { FRVBF_INSN_CANDCC, SEM_FN_NAME (frvbf,candcc) },
27910 { FRVBF_INSN_CORCC, SEM_FN_NAME (frvbf,corcc) },
27911 { FRVBF_INSN_CXORCC, SEM_FN_NAME (frvbf,cxorcc) },
27912 { FRVBF_INSN_CSLLCC, SEM_FN_NAME (frvbf,csllcc) },
27913 { FRVBF_INSN_CSRLCC, SEM_FN_NAME (frvbf,csrlcc) },
27914 { FRVBF_INSN_CSRACC, SEM_FN_NAME (frvbf,csracc) },
27915 { FRVBF_INSN_ADDX, SEM_FN_NAME (frvbf,addx) },
27916 { FRVBF_INSN_SUBX, SEM_FN_NAME (frvbf,subx) },
27917 { FRVBF_INSN_ADDXCC, SEM_FN_NAME (frvbf,addxcc) },
27918 { FRVBF_INSN_SUBXCC, SEM_FN_NAME (frvbf,subxcc) },
27919 { FRVBF_INSN_ADDSS, SEM_FN_NAME (frvbf,addss) },
27920 { FRVBF_INSN_SUBSS, SEM_FN_NAME (frvbf,subss) },
27921 { FRVBF_INSN_ADDI, SEM_FN_NAME (frvbf,addi) },
27922 { FRVBF_INSN_SUBI, SEM_FN_NAME (frvbf,subi) },
27923 { FRVBF_INSN_ANDI, SEM_FN_NAME (frvbf,andi) },
27924 { FRVBF_INSN_ORI, SEM_FN_NAME (frvbf,ori) },
27925 { FRVBF_INSN_XORI, SEM_FN_NAME (frvbf,xori) },
27926 { FRVBF_INSN_SDIVI, SEM_FN_NAME (frvbf,sdivi) },
27927 { FRVBF_INSN_NSDIVI, SEM_FN_NAME (frvbf,nsdivi) },
27928 { FRVBF_INSN_UDIVI, SEM_FN_NAME (frvbf,udivi) },
27929 { FRVBF_INSN_NUDIVI, SEM_FN_NAME (frvbf,nudivi) },
27930 { FRVBF_INSN_SMULI, SEM_FN_NAME (frvbf,smuli) },
27931 { FRVBF_INSN_UMULI, SEM_FN_NAME (frvbf,umuli) },
27932 { FRVBF_INSN_SLLI, SEM_FN_NAME (frvbf,slli) },
27933 { FRVBF_INSN_SRLI, SEM_FN_NAME (frvbf,srli) },
27934 { FRVBF_INSN_SRAI, SEM_FN_NAME (frvbf,srai) },
27935 { FRVBF_INSN_SCANI, SEM_FN_NAME (frvbf,scani) },
27936 { FRVBF_INSN_ADDICC, SEM_FN_NAME (frvbf,addicc) },
27937 { FRVBF_INSN_SUBICC, SEM_FN_NAME (frvbf,subicc) },
27938 { FRVBF_INSN_ANDICC, SEM_FN_NAME (frvbf,andicc) },
27939 { FRVBF_INSN_ORICC, SEM_FN_NAME (frvbf,oricc) },
27940 { FRVBF_INSN_XORICC, SEM_FN_NAME (frvbf,xoricc) },
27941 { FRVBF_INSN_SMULICC, SEM_FN_NAME (frvbf,smulicc) },
27942 { FRVBF_INSN_UMULICC, SEM_FN_NAME (frvbf,umulicc) },
27943 { FRVBF_INSN_SLLICC, SEM_FN_NAME (frvbf,sllicc) },
27944 { FRVBF_INSN_SRLICC, SEM_FN_NAME (frvbf,srlicc) },
27945 { FRVBF_INSN_SRAICC, SEM_FN_NAME (frvbf,sraicc) },
27946 { FRVBF_INSN_ADDXI, SEM_FN_NAME (frvbf,addxi) },
27947 { FRVBF_INSN_SUBXI, SEM_FN_NAME (frvbf,subxi) },
27948 { FRVBF_INSN_ADDXICC, SEM_FN_NAME (frvbf,addxicc) },
27949 { FRVBF_INSN_SUBXICC, SEM_FN_NAME (frvbf,subxicc) },
27950 { FRVBF_INSN_CMPB, SEM_FN_NAME (frvbf,cmpb) },
27951 { FRVBF_INSN_CMPBA, SEM_FN_NAME (frvbf,cmpba) },
27952 { FRVBF_INSN_SETLO, SEM_FN_NAME (frvbf,setlo) },
27953 { FRVBF_INSN_SETHI, SEM_FN_NAME (frvbf,sethi) },
27954 { FRVBF_INSN_SETLOS, SEM_FN_NAME (frvbf,setlos) },
27955 { FRVBF_INSN_LDSB, SEM_FN_NAME (frvbf,ldsb) },
27956 { FRVBF_INSN_LDUB, SEM_FN_NAME (frvbf,ldub) },
27957 { FRVBF_INSN_LDSH, SEM_FN_NAME (frvbf,ldsh) },
27958 { FRVBF_INSN_LDUH, SEM_FN_NAME (frvbf,lduh) },
27959 { FRVBF_INSN_LD, SEM_FN_NAME (frvbf,ld) },
27960 { FRVBF_INSN_LDBF, SEM_FN_NAME (frvbf,ldbf) },
27961 { FRVBF_INSN_LDHF, SEM_FN_NAME (frvbf,ldhf) },
27962 { FRVBF_INSN_LDF, SEM_FN_NAME (frvbf,ldf) },
27963 { FRVBF_INSN_LDC, SEM_FN_NAME (frvbf,ldc) },
27964 { FRVBF_INSN_NLDSB, SEM_FN_NAME (frvbf,nldsb) },
27965 { FRVBF_INSN_NLDUB, SEM_FN_NAME (frvbf,nldub) },
27966 { FRVBF_INSN_NLDSH, SEM_FN_NAME (frvbf,nldsh) },
27967 { FRVBF_INSN_NLDUH, SEM_FN_NAME (frvbf,nlduh) },
27968 { FRVBF_INSN_NLD, SEM_FN_NAME (frvbf,nld) },
27969 { FRVBF_INSN_NLDBF, SEM_FN_NAME (frvbf,nldbf) },
27970 { FRVBF_INSN_NLDHF, SEM_FN_NAME (frvbf,nldhf) },
27971 { FRVBF_INSN_NLDF, SEM_FN_NAME (frvbf,nldf) },
27972 { FRVBF_INSN_LDD, SEM_FN_NAME (frvbf,ldd) },
27973 { FRVBF_INSN_LDDF, SEM_FN_NAME (frvbf,lddf) },
27974 { FRVBF_INSN_LDDC, SEM_FN_NAME (frvbf,lddc) },
27975 { FRVBF_INSN_NLDD, SEM_FN_NAME (frvbf,nldd) },
27976 { FRVBF_INSN_NLDDF, SEM_FN_NAME (frvbf,nlddf) },
27977 { FRVBF_INSN_LDQ, SEM_FN_NAME (frvbf,ldq) },
27978 { FRVBF_INSN_LDQF, SEM_FN_NAME (frvbf,ldqf) },
27979 { FRVBF_INSN_LDQC, SEM_FN_NAME (frvbf,ldqc) },
27980 { FRVBF_INSN_NLDQ, SEM_FN_NAME (frvbf,nldq) },
27981 { FRVBF_INSN_NLDQF, SEM_FN_NAME (frvbf,nldqf) },
27982 { FRVBF_INSN_LDSBU, SEM_FN_NAME (frvbf,ldsbu) },
27983 { FRVBF_INSN_LDUBU, SEM_FN_NAME (frvbf,ldubu) },
27984 { FRVBF_INSN_LDSHU, SEM_FN_NAME (frvbf,ldshu) },
27985 { FRVBF_INSN_LDUHU, SEM_FN_NAME (frvbf,lduhu) },
27986 { FRVBF_INSN_LDU, SEM_FN_NAME (frvbf,ldu) },
27987 { FRVBF_INSN_NLDSBU, SEM_FN_NAME (frvbf,nldsbu) },
27988 { FRVBF_INSN_NLDUBU, SEM_FN_NAME (frvbf,nldubu) },
27989 { FRVBF_INSN_NLDSHU, SEM_FN_NAME (frvbf,nldshu) },
27990 { FRVBF_INSN_NLDUHU, SEM_FN_NAME (frvbf,nlduhu) },
27991 { FRVBF_INSN_NLDU, SEM_FN_NAME (frvbf,nldu) },
27992 { FRVBF_INSN_LDBFU, SEM_FN_NAME (frvbf,ldbfu) },
27993 { FRVBF_INSN_LDHFU, SEM_FN_NAME (frvbf,ldhfu) },
27994 { FRVBF_INSN_LDFU, SEM_FN_NAME (frvbf,ldfu) },
27995 { FRVBF_INSN_LDCU, SEM_FN_NAME (frvbf,ldcu) },
27996 { FRVBF_INSN_NLDBFU, SEM_FN_NAME (frvbf,nldbfu) },
27997 { FRVBF_INSN_NLDHFU, SEM_FN_NAME (frvbf,nldhfu) },
27998 { FRVBF_INSN_NLDFU, SEM_FN_NAME (frvbf,nldfu) },
27999 { FRVBF_INSN_LDDU, SEM_FN_NAME (frvbf,lddu) },
28000 { FRVBF_INSN_NLDDU, SEM_FN_NAME (frvbf,nlddu) },
28001 { FRVBF_INSN_LDDFU, SEM_FN_NAME (frvbf,lddfu) },
28002 { FRVBF_INSN_LDDCU, SEM_FN_NAME (frvbf,lddcu) },
28003 { FRVBF_INSN_NLDDFU, SEM_FN_NAME (frvbf,nlddfu) },
28004 { FRVBF_INSN_LDQU, SEM_FN_NAME (frvbf,ldqu) },
28005 { FRVBF_INSN_NLDQU, SEM_FN_NAME (frvbf,nldqu) },
28006 { FRVBF_INSN_LDQFU, SEM_FN_NAME (frvbf,ldqfu) },
28007 { FRVBF_INSN_LDQCU, SEM_FN_NAME (frvbf,ldqcu) },
28008 { FRVBF_INSN_NLDQFU, SEM_FN_NAME (frvbf,nldqfu) },
28009 { FRVBF_INSN_LDSBI, SEM_FN_NAME (frvbf,ldsbi) },
28010 { FRVBF_INSN_LDSHI, SEM_FN_NAME (frvbf,ldshi) },
28011 { FRVBF_INSN_LDI, SEM_FN_NAME (frvbf,ldi) },
28012 { FRVBF_INSN_LDUBI, SEM_FN_NAME (frvbf,ldubi) },
28013 { FRVBF_INSN_LDUHI, SEM_FN_NAME (frvbf,lduhi) },
28014 { FRVBF_INSN_LDBFI, SEM_FN_NAME (frvbf,ldbfi) },
28015 { FRVBF_INSN_LDHFI, SEM_FN_NAME (frvbf,ldhfi) },
28016 { FRVBF_INSN_LDFI, SEM_FN_NAME (frvbf,ldfi) },
28017 { FRVBF_INSN_NLDSBI, SEM_FN_NAME (frvbf,nldsbi) },
28018 { FRVBF_INSN_NLDUBI, SEM_FN_NAME (frvbf,nldubi) },
28019 { FRVBF_INSN_NLDSHI, SEM_FN_NAME (frvbf,nldshi) },
28020 { FRVBF_INSN_NLDUHI, SEM_FN_NAME (frvbf,nlduhi) },
28021 { FRVBF_INSN_NLDI, SEM_FN_NAME (frvbf,nldi) },
28022 { FRVBF_INSN_NLDBFI, SEM_FN_NAME (frvbf,nldbfi) },
28023 { FRVBF_INSN_NLDHFI, SEM_FN_NAME (frvbf,nldhfi) },
28024 { FRVBF_INSN_NLDFI, SEM_FN_NAME (frvbf,nldfi) },
28025 { FRVBF_INSN_LDDI, SEM_FN_NAME (frvbf,lddi) },
28026 { FRVBF_INSN_LDDFI, SEM_FN_NAME (frvbf,lddfi) },
28027 { FRVBF_INSN_NLDDI, SEM_FN_NAME (frvbf,nlddi) },
28028 { FRVBF_INSN_NLDDFI, SEM_FN_NAME (frvbf,nlddfi) },
28029 { FRVBF_INSN_LDQI, SEM_FN_NAME (frvbf,ldqi) },
28030 { FRVBF_INSN_LDQFI, SEM_FN_NAME (frvbf,ldqfi) },
28031 { FRVBF_INSN_NLDQFI, SEM_FN_NAME (frvbf,nldqfi) },
28032 { FRVBF_INSN_STB, SEM_FN_NAME (frvbf,stb) },
28033 { FRVBF_INSN_STH, SEM_FN_NAME (frvbf,sth) },
28034 { FRVBF_INSN_ST, SEM_FN_NAME (frvbf,st) },
28035 { FRVBF_INSN_STBF, SEM_FN_NAME (frvbf,stbf) },
28036 { FRVBF_INSN_STHF, SEM_FN_NAME (frvbf,sthf) },
28037 { FRVBF_INSN_STF, SEM_FN_NAME (frvbf,stf) },
28038 { FRVBF_INSN_STC, SEM_FN_NAME (frvbf,stc) },
28039 { FRVBF_INSN_STD, SEM_FN_NAME (frvbf,std) },
28040 { FRVBF_INSN_STDF, SEM_FN_NAME (frvbf,stdf) },
28041 { FRVBF_INSN_STDC, SEM_FN_NAME (frvbf,stdc) },
28042 { FRVBF_INSN_STQ, SEM_FN_NAME (frvbf,stq) },
28043 { FRVBF_INSN_STQF, SEM_FN_NAME (frvbf,stqf) },
28044 { FRVBF_INSN_STQC, SEM_FN_NAME (frvbf,stqc) },
28045 { FRVBF_INSN_STBU, SEM_FN_NAME (frvbf,stbu) },
28046 { FRVBF_INSN_STHU, SEM_FN_NAME (frvbf,sthu) },
28047 { FRVBF_INSN_STU, SEM_FN_NAME (frvbf,stu) },
28048 { FRVBF_INSN_STBFU, SEM_FN_NAME (frvbf,stbfu) },
28049 { FRVBF_INSN_STHFU, SEM_FN_NAME (frvbf,sthfu) },
28050 { FRVBF_INSN_STFU, SEM_FN_NAME (frvbf,stfu) },
28051 { FRVBF_INSN_STCU, SEM_FN_NAME (frvbf,stcu) },
28052 { FRVBF_INSN_STDU, SEM_FN_NAME (frvbf,stdu) },
28053 { FRVBF_INSN_STDFU, SEM_FN_NAME (frvbf,stdfu) },
28054 { FRVBF_INSN_STDCU, SEM_FN_NAME (frvbf,stdcu) },
28055 { FRVBF_INSN_STQU, SEM_FN_NAME (frvbf,stqu) },
28056 { FRVBF_INSN_STQFU, SEM_FN_NAME (frvbf,stqfu) },
28057 { FRVBF_INSN_STQCU, SEM_FN_NAME (frvbf,stqcu) },
28058 { FRVBF_INSN_CLDSB, SEM_FN_NAME (frvbf,cldsb) },
28059 { FRVBF_INSN_CLDUB, SEM_FN_NAME (frvbf,cldub) },
28060 { FRVBF_INSN_CLDSH, SEM_FN_NAME (frvbf,cldsh) },
28061 { FRVBF_INSN_CLDUH, SEM_FN_NAME (frvbf,clduh) },
28062 { FRVBF_INSN_CLD, SEM_FN_NAME (frvbf,cld) },
28063 { FRVBF_INSN_CLDBF, SEM_FN_NAME (frvbf,cldbf) },
28064 { FRVBF_INSN_CLDHF, SEM_FN_NAME (frvbf,cldhf) },
28065 { FRVBF_INSN_CLDF, SEM_FN_NAME (frvbf,cldf) },
28066 { FRVBF_INSN_CLDD, SEM_FN_NAME (frvbf,cldd) },
28067 { FRVBF_INSN_CLDDF, SEM_FN_NAME (frvbf,clddf) },
28068 { FRVBF_INSN_CLDQ, SEM_FN_NAME (frvbf,cldq) },
28069 { FRVBF_INSN_CLDSBU, SEM_FN_NAME (frvbf,cldsbu) },
28070 { FRVBF_INSN_CLDUBU, SEM_FN_NAME (frvbf,cldubu) },
28071 { FRVBF_INSN_CLDSHU, SEM_FN_NAME (frvbf,cldshu) },
28072 { FRVBF_INSN_CLDUHU, SEM_FN_NAME (frvbf,clduhu) },
28073 { FRVBF_INSN_CLDU, SEM_FN_NAME (frvbf,cldu) },
28074 { FRVBF_INSN_CLDBFU, SEM_FN_NAME (frvbf,cldbfu) },
28075 { FRVBF_INSN_CLDHFU, SEM_FN_NAME (frvbf,cldhfu) },
28076 { FRVBF_INSN_CLDFU, SEM_FN_NAME (frvbf,cldfu) },
28077 { FRVBF_INSN_CLDDU, SEM_FN_NAME (frvbf,clddu) },
28078 { FRVBF_INSN_CLDDFU, SEM_FN_NAME (frvbf,clddfu) },
28079 { FRVBF_INSN_CLDQU, SEM_FN_NAME (frvbf,cldqu) },
28080 { FRVBF_INSN_CSTB, SEM_FN_NAME (frvbf,cstb) },
28081 { FRVBF_INSN_CSTH, SEM_FN_NAME (frvbf,csth) },
28082 { FRVBF_INSN_CST, SEM_FN_NAME (frvbf,cst) },
28083 { FRVBF_INSN_CSTBF, SEM_FN_NAME (frvbf,cstbf) },
28084 { FRVBF_INSN_CSTHF, SEM_FN_NAME (frvbf,csthf) },
28085 { FRVBF_INSN_CSTF, SEM_FN_NAME (frvbf,cstf) },
28086 { FRVBF_INSN_CSTD, SEM_FN_NAME (frvbf,cstd) },
28087 { FRVBF_INSN_CSTDF, SEM_FN_NAME (frvbf,cstdf) },
28088 { FRVBF_INSN_CSTQ, SEM_FN_NAME (frvbf,cstq) },
28089 { FRVBF_INSN_CSTBU, SEM_FN_NAME (frvbf,cstbu) },
28090 { FRVBF_INSN_CSTHU, SEM_FN_NAME (frvbf,csthu) },
28091 { FRVBF_INSN_CSTU, SEM_FN_NAME (frvbf,cstu) },
28092 { FRVBF_INSN_CSTBFU, SEM_FN_NAME (frvbf,cstbfu) },
28093 { FRVBF_INSN_CSTHFU, SEM_FN_NAME (frvbf,csthfu) },
28094 { FRVBF_INSN_CSTFU, SEM_FN_NAME (frvbf,cstfu) },
28095 { FRVBF_INSN_CSTDU, SEM_FN_NAME (frvbf,cstdu) },
28096 { FRVBF_INSN_CSTDFU, SEM_FN_NAME (frvbf,cstdfu) },
28097 { FRVBF_INSN_STBI, SEM_FN_NAME (frvbf,stbi) },
28098 { FRVBF_INSN_STHI, SEM_FN_NAME (frvbf,sthi) },
28099 { FRVBF_INSN_STI, SEM_FN_NAME (frvbf,sti) },
28100 { FRVBF_INSN_STBFI, SEM_FN_NAME (frvbf,stbfi) },
28101 { FRVBF_INSN_STHFI, SEM_FN_NAME (frvbf,sthfi) },
28102 { FRVBF_INSN_STFI, SEM_FN_NAME (frvbf,stfi) },
28103 { FRVBF_INSN_STDI, SEM_FN_NAME (frvbf,stdi) },
28104 { FRVBF_INSN_STDFI, SEM_FN_NAME (frvbf,stdfi) },
28105 { FRVBF_INSN_STQI, SEM_FN_NAME (frvbf,stqi) },
28106 { FRVBF_INSN_STQFI, SEM_FN_NAME (frvbf,stqfi) },
28107 { FRVBF_INSN_SWAP, SEM_FN_NAME (frvbf,swap) },
28108 { FRVBF_INSN_SWAPI, SEM_FN_NAME (frvbf,swapi) },
28109 { FRVBF_INSN_CSWAP, SEM_FN_NAME (frvbf,cswap) },
28110 { FRVBF_INSN_MOVGF, SEM_FN_NAME (frvbf,movgf) },
28111 { FRVBF_INSN_MOVFG, SEM_FN_NAME (frvbf,movfg) },
28112 { FRVBF_INSN_MOVGFD, SEM_FN_NAME (frvbf,movgfd) },
28113 { FRVBF_INSN_MOVFGD, SEM_FN_NAME (frvbf,movfgd) },
28114 { FRVBF_INSN_MOVGFQ, SEM_FN_NAME (frvbf,movgfq) },
28115 { FRVBF_INSN_MOVFGQ, SEM_FN_NAME (frvbf,movfgq) },
28116 { FRVBF_INSN_CMOVGF, SEM_FN_NAME (frvbf,cmovgf) },
28117 { FRVBF_INSN_CMOVFG, SEM_FN_NAME (frvbf,cmovfg) },
28118 { FRVBF_INSN_CMOVGFD, SEM_FN_NAME (frvbf,cmovgfd) },
28119 { FRVBF_INSN_CMOVFGD, SEM_FN_NAME (frvbf,cmovfgd) },
28120 { FRVBF_INSN_MOVGS, SEM_FN_NAME (frvbf,movgs) },
28121 { FRVBF_INSN_MOVSG, SEM_FN_NAME (frvbf,movsg) },
28122 { FRVBF_INSN_BRA, SEM_FN_NAME (frvbf,bra) },
28123 { FRVBF_INSN_BNO, SEM_FN_NAME (frvbf,bno) },
28124 { FRVBF_INSN_BEQ, SEM_FN_NAME (frvbf,beq) },
28125 { FRVBF_INSN_BNE, SEM_FN_NAME (frvbf,bne) },
28126 { FRVBF_INSN_BLE, SEM_FN_NAME (frvbf,ble) },
28127 { FRVBF_INSN_BGT, SEM_FN_NAME (frvbf,bgt) },
28128 { FRVBF_INSN_BLT, SEM_FN_NAME (frvbf,blt) },
28129 { FRVBF_INSN_BGE, SEM_FN_NAME (frvbf,bge) },
28130 { FRVBF_INSN_BLS, SEM_FN_NAME (frvbf,bls) },
28131 { FRVBF_INSN_BHI, SEM_FN_NAME (frvbf,bhi) },
28132 { FRVBF_INSN_BC, SEM_FN_NAME (frvbf,bc) },
28133 { FRVBF_INSN_BNC, SEM_FN_NAME (frvbf,bnc) },
28134 { FRVBF_INSN_BN, SEM_FN_NAME (frvbf,bn) },
28135 { FRVBF_INSN_BP, SEM_FN_NAME (frvbf,bp) },
28136 { FRVBF_INSN_BV, SEM_FN_NAME (frvbf,bv) },
28137 { FRVBF_INSN_BNV, SEM_FN_NAME (frvbf,bnv) },
28138 { FRVBF_INSN_FBRA, SEM_FN_NAME (frvbf,fbra) },
28139 { FRVBF_INSN_FBNO, SEM_FN_NAME (frvbf,fbno) },
28140 { FRVBF_INSN_FBNE, SEM_FN_NAME (frvbf,fbne) },
28141 { FRVBF_INSN_FBEQ, SEM_FN_NAME (frvbf,fbeq) },
28142 { FRVBF_INSN_FBLG, SEM_FN_NAME (frvbf,fblg) },
28143 { FRVBF_INSN_FBUE, SEM_FN_NAME (frvbf,fbue) },
28144 { FRVBF_INSN_FBUL, SEM_FN_NAME (frvbf,fbul) },
28145 { FRVBF_INSN_FBGE, SEM_FN_NAME (frvbf,fbge) },
28146 { FRVBF_INSN_FBLT, SEM_FN_NAME (frvbf,fblt) },
28147 { FRVBF_INSN_FBUGE, SEM_FN_NAME (frvbf,fbuge) },
28148 { FRVBF_INSN_FBUG, SEM_FN_NAME (frvbf,fbug) },
28149 { FRVBF_INSN_FBLE, SEM_FN_NAME (frvbf,fble) },
28150 { FRVBF_INSN_FBGT, SEM_FN_NAME (frvbf,fbgt) },
28151 { FRVBF_INSN_FBULE, SEM_FN_NAME (frvbf,fbule) },
28152 { FRVBF_INSN_FBU, SEM_FN_NAME (frvbf,fbu) },
28153 { FRVBF_INSN_FBO, SEM_FN_NAME (frvbf,fbo) },
28154 { FRVBF_INSN_BCTRLR, SEM_FN_NAME (frvbf,bctrlr) },
28155 { FRVBF_INSN_BRALR, SEM_FN_NAME (frvbf,bralr) },
28156 { FRVBF_INSN_BNOLR, SEM_FN_NAME (frvbf,bnolr) },
28157 { FRVBF_INSN_BEQLR, SEM_FN_NAME (frvbf,beqlr) },
28158 { FRVBF_INSN_BNELR, SEM_FN_NAME (frvbf,bnelr) },
28159 { FRVBF_INSN_BLELR, SEM_FN_NAME (frvbf,blelr) },
28160 { FRVBF_INSN_BGTLR, SEM_FN_NAME (frvbf,bgtlr) },
28161 { FRVBF_INSN_BLTLR, SEM_FN_NAME (frvbf,bltlr) },
28162 { FRVBF_INSN_BGELR, SEM_FN_NAME (frvbf,bgelr) },
28163 { FRVBF_INSN_BLSLR, SEM_FN_NAME (frvbf,blslr) },
28164 { FRVBF_INSN_BHILR, SEM_FN_NAME (frvbf,bhilr) },
28165 { FRVBF_INSN_BCLR, SEM_FN_NAME (frvbf,bclr) },
28166 { FRVBF_INSN_BNCLR, SEM_FN_NAME (frvbf,bnclr) },
28167 { FRVBF_INSN_BNLR, SEM_FN_NAME (frvbf,bnlr) },
28168 { FRVBF_INSN_BPLR, SEM_FN_NAME (frvbf,bplr) },
28169 { FRVBF_INSN_BVLR, SEM_FN_NAME (frvbf,bvlr) },
28170 { FRVBF_INSN_BNVLR, SEM_FN_NAME (frvbf,bnvlr) },
28171 { FRVBF_INSN_FBRALR, SEM_FN_NAME (frvbf,fbralr) },
28172 { FRVBF_INSN_FBNOLR, SEM_FN_NAME (frvbf,fbnolr) },
28173 { FRVBF_INSN_FBEQLR, SEM_FN_NAME (frvbf,fbeqlr) },
28174 { FRVBF_INSN_FBNELR, SEM_FN_NAME (frvbf,fbnelr) },
28175 { FRVBF_INSN_FBLGLR, SEM_FN_NAME (frvbf,fblglr) },
28176 { FRVBF_INSN_FBUELR, SEM_FN_NAME (frvbf,fbuelr) },
28177 { FRVBF_INSN_FBULLR, SEM_FN_NAME (frvbf,fbullr) },
28178 { FRVBF_INSN_FBGELR, SEM_FN_NAME (frvbf,fbgelr) },
28179 { FRVBF_INSN_FBLTLR, SEM_FN_NAME (frvbf,fbltlr) },
28180 { FRVBF_INSN_FBUGELR, SEM_FN_NAME (frvbf,fbugelr) },
28181 { FRVBF_INSN_FBUGLR, SEM_FN_NAME (frvbf,fbuglr) },
28182 { FRVBF_INSN_FBLELR, SEM_FN_NAME (frvbf,fblelr) },
28183 { FRVBF_INSN_FBGTLR, SEM_FN_NAME (frvbf,fbgtlr) },
28184 { FRVBF_INSN_FBULELR, SEM_FN_NAME (frvbf,fbulelr) },
28185 { FRVBF_INSN_FBULR, SEM_FN_NAME (frvbf,fbulr) },
28186 { FRVBF_INSN_FBOLR, SEM_FN_NAME (frvbf,fbolr) },
28187 { FRVBF_INSN_BCRALR, SEM_FN_NAME (frvbf,bcralr) },
28188 { FRVBF_INSN_BCNOLR, SEM_FN_NAME (frvbf,bcnolr) },
28189 { FRVBF_INSN_BCEQLR, SEM_FN_NAME (frvbf,bceqlr) },
28190 { FRVBF_INSN_BCNELR, SEM_FN_NAME (frvbf,bcnelr) },
28191 { FRVBF_INSN_BCLELR, SEM_FN_NAME (frvbf,bclelr) },
28192 { FRVBF_INSN_BCGTLR, SEM_FN_NAME (frvbf,bcgtlr) },
28193 { FRVBF_INSN_BCLTLR, SEM_FN_NAME (frvbf,bcltlr) },
28194 { FRVBF_INSN_BCGELR, SEM_FN_NAME (frvbf,bcgelr) },
28195 { FRVBF_INSN_BCLSLR, SEM_FN_NAME (frvbf,bclslr) },
28196 { FRVBF_INSN_BCHILR, SEM_FN_NAME (frvbf,bchilr) },
28197 { FRVBF_INSN_BCCLR, SEM_FN_NAME (frvbf,bcclr) },
28198 { FRVBF_INSN_BCNCLR, SEM_FN_NAME (frvbf,bcnclr) },
28199 { FRVBF_INSN_BCNLR, SEM_FN_NAME (frvbf,bcnlr) },
28200 { FRVBF_INSN_BCPLR, SEM_FN_NAME (frvbf,bcplr) },
28201 { FRVBF_INSN_BCVLR, SEM_FN_NAME (frvbf,bcvlr) },
28202 { FRVBF_INSN_BCNVLR, SEM_FN_NAME (frvbf,bcnvlr) },
28203 { FRVBF_INSN_FCBRALR, SEM_FN_NAME (frvbf,fcbralr) },
28204 { FRVBF_INSN_FCBNOLR, SEM_FN_NAME (frvbf,fcbnolr) },
28205 { FRVBF_INSN_FCBEQLR, SEM_FN_NAME (frvbf,fcbeqlr) },
28206 { FRVBF_INSN_FCBNELR, SEM_FN_NAME (frvbf,fcbnelr) },
28207 { FRVBF_INSN_FCBLGLR, SEM_FN_NAME (frvbf,fcblglr) },
28208 { FRVBF_INSN_FCBUELR, SEM_FN_NAME (frvbf,fcbuelr) },
28209 { FRVBF_INSN_FCBULLR, SEM_FN_NAME (frvbf,fcbullr) },
28210 { FRVBF_INSN_FCBGELR, SEM_FN_NAME (frvbf,fcbgelr) },
28211 { FRVBF_INSN_FCBLTLR, SEM_FN_NAME (frvbf,fcbltlr) },
28212 { FRVBF_INSN_FCBUGELR, SEM_FN_NAME (frvbf,fcbugelr) },
28213 { FRVBF_INSN_FCBUGLR, SEM_FN_NAME (frvbf,fcbuglr) },
28214 { FRVBF_INSN_FCBLELR, SEM_FN_NAME (frvbf,fcblelr) },
28215 { FRVBF_INSN_FCBGTLR, SEM_FN_NAME (frvbf,fcbgtlr) },
28216 { FRVBF_INSN_FCBULELR, SEM_FN_NAME (frvbf,fcbulelr) },
28217 { FRVBF_INSN_FCBULR, SEM_FN_NAME (frvbf,fcbulr) },
28218 { FRVBF_INSN_FCBOLR, SEM_FN_NAME (frvbf,fcbolr) },
28219 { FRVBF_INSN_JMPL, SEM_FN_NAME (frvbf,jmpl) },
28220 { FRVBF_INSN_CALLL, SEM_FN_NAME (frvbf,calll) },
28221 { FRVBF_INSN_JMPIL, SEM_FN_NAME (frvbf,jmpil) },
28222 { FRVBF_INSN_CALLIL, SEM_FN_NAME (frvbf,callil) },
28223 { FRVBF_INSN_CALL, SEM_FN_NAME (frvbf,call) },
28224 { FRVBF_INSN_RETT, SEM_FN_NAME (frvbf,rett) },
28225 { FRVBF_INSN_REI, SEM_FN_NAME (frvbf,rei) },
28226 { FRVBF_INSN_TRA, SEM_FN_NAME (frvbf,tra) },
28227 { FRVBF_INSN_TNO, SEM_FN_NAME (frvbf,tno) },
28228 { FRVBF_INSN_TEQ, SEM_FN_NAME (frvbf,teq) },
28229 { FRVBF_INSN_TNE, SEM_FN_NAME (frvbf,tne) },
28230 { FRVBF_INSN_TLE, SEM_FN_NAME (frvbf,tle) },
28231 { FRVBF_INSN_TGT, SEM_FN_NAME (frvbf,tgt) },
28232 { FRVBF_INSN_TLT, SEM_FN_NAME (frvbf,tlt) },
28233 { FRVBF_INSN_TGE, SEM_FN_NAME (frvbf,tge) },
28234 { FRVBF_INSN_TLS, SEM_FN_NAME (frvbf,tls) },
28235 { FRVBF_INSN_THI, SEM_FN_NAME (frvbf,thi) },
28236 { FRVBF_INSN_TC, SEM_FN_NAME (frvbf,tc) },
28237 { FRVBF_INSN_TNC, SEM_FN_NAME (frvbf,tnc) },
28238 { FRVBF_INSN_TN, SEM_FN_NAME (frvbf,tn) },
28239 { FRVBF_INSN_TP, SEM_FN_NAME (frvbf,tp) },
28240 { FRVBF_INSN_TV, SEM_FN_NAME (frvbf,tv) },
28241 { FRVBF_INSN_TNV, SEM_FN_NAME (frvbf,tnv) },
28242 { FRVBF_INSN_FTRA, SEM_FN_NAME (frvbf,ftra) },
28243 { FRVBF_INSN_FTNO, SEM_FN_NAME (frvbf,ftno) },
28244 { FRVBF_INSN_FTNE, SEM_FN_NAME (frvbf,ftne) },
28245 { FRVBF_INSN_FTEQ, SEM_FN_NAME (frvbf,fteq) },
28246 { FRVBF_INSN_FTLG, SEM_FN_NAME (frvbf,ftlg) },
28247 { FRVBF_INSN_FTUE, SEM_FN_NAME (frvbf,ftue) },
28248 { FRVBF_INSN_FTUL, SEM_FN_NAME (frvbf,ftul) },
28249 { FRVBF_INSN_FTGE, SEM_FN_NAME (frvbf,ftge) },
28250 { FRVBF_INSN_FTLT, SEM_FN_NAME (frvbf,ftlt) },
28251 { FRVBF_INSN_FTUGE, SEM_FN_NAME (frvbf,ftuge) },
28252 { FRVBF_INSN_FTUG, SEM_FN_NAME (frvbf,ftug) },
28253 { FRVBF_INSN_FTLE, SEM_FN_NAME (frvbf,ftle) },
28254 { FRVBF_INSN_FTGT, SEM_FN_NAME (frvbf,ftgt) },
28255 { FRVBF_INSN_FTULE, SEM_FN_NAME (frvbf,ftule) },
28256 { FRVBF_INSN_FTU, SEM_FN_NAME (frvbf,ftu) },
28257 { FRVBF_INSN_FTO, SEM_FN_NAME (frvbf,fto) },
28258 { FRVBF_INSN_TIRA, SEM_FN_NAME (frvbf,tira) },
28259 { FRVBF_INSN_TINO, SEM_FN_NAME (frvbf,tino) },
28260 { FRVBF_INSN_TIEQ, SEM_FN_NAME (frvbf,tieq) },
28261 { FRVBF_INSN_TINE, SEM_FN_NAME (frvbf,tine) },
28262 { FRVBF_INSN_TILE, SEM_FN_NAME (frvbf,tile) },
28263 { FRVBF_INSN_TIGT, SEM_FN_NAME (frvbf,tigt) },
28264 { FRVBF_INSN_TILT, SEM_FN_NAME (frvbf,tilt) },
28265 { FRVBF_INSN_TIGE, SEM_FN_NAME (frvbf,tige) },
28266 { FRVBF_INSN_TILS, SEM_FN_NAME (frvbf,tils) },
28267 { FRVBF_INSN_TIHI, SEM_FN_NAME (frvbf,tihi) },
28268 { FRVBF_INSN_TIC, SEM_FN_NAME (frvbf,tic) },
28269 { FRVBF_INSN_TINC, SEM_FN_NAME (frvbf,tinc) },
28270 { FRVBF_INSN_TIN, SEM_FN_NAME (frvbf,tin) },
28271 { FRVBF_INSN_TIP, SEM_FN_NAME (frvbf,tip) },
28272 { FRVBF_INSN_TIV, SEM_FN_NAME (frvbf,tiv) },
28273 { FRVBF_INSN_TINV, SEM_FN_NAME (frvbf,tinv) },
28274 { FRVBF_INSN_FTIRA, SEM_FN_NAME (frvbf,ftira) },
28275 { FRVBF_INSN_FTINO, SEM_FN_NAME (frvbf,ftino) },
28276 { FRVBF_INSN_FTINE, SEM_FN_NAME (frvbf,ftine) },
28277 { FRVBF_INSN_FTIEQ, SEM_FN_NAME (frvbf,ftieq) },
28278 { FRVBF_INSN_FTILG, SEM_FN_NAME (frvbf,ftilg) },
28279 { FRVBF_INSN_FTIUE, SEM_FN_NAME (frvbf,ftiue) },
28280 { FRVBF_INSN_FTIUL, SEM_FN_NAME (frvbf,ftiul) },
28281 { FRVBF_INSN_FTIGE, SEM_FN_NAME (frvbf,ftige) },
28282 { FRVBF_INSN_FTILT, SEM_FN_NAME (frvbf,ftilt) },
28283 { FRVBF_INSN_FTIUGE, SEM_FN_NAME (frvbf,ftiuge) },
28284 { FRVBF_INSN_FTIUG, SEM_FN_NAME (frvbf,ftiug) },
28285 { FRVBF_INSN_FTILE, SEM_FN_NAME (frvbf,ftile) },
28286 { FRVBF_INSN_FTIGT, SEM_FN_NAME (frvbf,ftigt) },
28287 { FRVBF_INSN_FTIULE, SEM_FN_NAME (frvbf,ftiule) },
28288 { FRVBF_INSN_FTIU, SEM_FN_NAME (frvbf,ftiu) },
28289 { FRVBF_INSN_FTIO, SEM_FN_NAME (frvbf,ftio) },
28290 { FRVBF_INSN_BREAK, SEM_FN_NAME (frvbf,break) },
28291 { FRVBF_INSN_MTRAP, SEM_FN_NAME (frvbf,mtrap) },
28292 { FRVBF_INSN_ANDCR, SEM_FN_NAME (frvbf,andcr) },
28293 { FRVBF_INSN_ORCR, SEM_FN_NAME (frvbf,orcr) },
28294 { FRVBF_INSN_XORCR, SEM_FN_NAME (frvbf,xorcr) },
28295 { FRVBF_INSN_NANDCR, SEM_FN_NAME (frvbf,nandcr) },
28296 { FRVBF_INSN_NORCR, SEM_FN_NAME (frvbf,norcr) },
28297 { FRVBF_INSN_ANDNCR, SEM_FN_NAME (frvbf,andncr) },
28298 { FRVBF_INSN_ORNCR, SEM_FN_NAME (frvbf,orncr) },
28299 { FRVBF_INSN_NANDNCR, SEM_FN_NAME (frvbf,nandncr) },
28300 { FRVBF_INSN_NORNCR, SEM_FN_NAME (frvbf,norncr) },
28301 { FRVBF_INSN_NOTCR, SEM_FN_NAME (frvbf,notcr) },
28302 { FRVBF_INSN_CKRA, SEM_FN_NAME (frvbf,ckra) },
28303 { FRVBF_INSN_CKNO, SEM_FN_NAME (frvbf,ckno) },
28304 { FRVBF_INSN_CKEQ, SEM_FN_NAME (frvbf,ckeq) },
28305 { FRVBF_INSN_CKNE, SEM_FN_NAME (frvbf,ckne) },
28306 { FRVBF_INSN_CKLE, SEM_FN_NAME (frvbf,ckle) },
28307 { FRVBF_INSN_CKGT, SEM_FN_NAME (frvbf,ckgt) },
28308 { FRVBF_INSN_CKLT, SEM_FN_NAME (frvbf,cklt) },
28309 { FRVBF_INSN_CKGE, SEM_FN_NAME (frvbf,ckge) },
28310 { FRVBF_INSN_CKLS, SEM_FN_NAME (frvbf,ckls) },
28311 { FRVBF_INSN_CKHI, SEM_FN_NAME (frvbf,ckhi) },
28312 { FRVBF_INSN_CKC, SEM_FN_NAME (frvbf,ckc) },
28313 { FRVBF_INSN_CKNC, SEM_FN_NAME (frvbf,cknc) },
28314 { FRVBF_INSN_CKN, SEM_FN_NAME (frvbf,ckn) },
28315 { FRVBF_INSN_CKP, SEM_FN_NAME (frvbf,ckp) },
28316 { FRVBF_INSN_CKV, SEM_FN_NAME (frvbf,ckv) },
28317 { FRVBF_INSN_CKNV, SEM_FN_NAME (frvbf,cknv) },
28318 { FRVBF_INSN_FCKRA, SEM_FN_NAME (frvbf,fckra) },
28319 { FRVBF_INSN_FCKNO, SEM_FN_NAME (frvbf,fckno) },
28320 { FRVBF_INSN_FCKNE, SEM_FN_NAME (frvbf,fckne) },
28321 { FRVBF_INSN_FCKEQ, SEM_FN_NAME (frvbf,fckeq) },
28322 { FRVBF_INSN_FCKLG, SEM_FN_NAME (frvbf,fcklg) },
28323 { FRVBF_INSN_FCKUE, SEM_FN_NAME (frvbf,fckue) },
28324 { FRVBF_INSN_FCKUL, SEM_FN_NAME (frvbf,fckul) },
28325 { FRVBF_INSN_FCKGE, SEM_FN_NAME (frvbf,fckge) },
28326 { FRVBF_INSN_FCKLT, SEM_FN_NAME (frvbf,fcklt) },
28327 { FRVBF_INSN_FCKUGE, SEM_FN_NAME (frvbf,fckuge) },
28328 { FRVBF_INSN_FCKUG, SEM_FN_NAME (frvbf,fckug) },
28329 { FRVBF_INSN_FCKLE, SEM_FN_NAME (frvbf,fckle) },
28330 { FRVBF_INSN_FCKGT, SEM_FN_NAME (frvbf,fckgt) },
28331 { FRVBF_INSN_FCKULE, SEM_FN_NAME (frvbf,fckule) },
28332 { FRVBF_INSN_FCKU, SEM_FN_NAME (frvbf,fcku) },
28333 { FRVBF_INSN_FCKO, SEM_FN_NAME (frvbf,fcko) },
28334 { FRVBF_INSN_CCKRA, SEM_FN_NAME (frvbf,cckra) },
28335 { FRVBF_INSN_CCKNO, SEM_FN_NAME (frvbf,cckno) },
28336 { FRVBF_INSN_CCKEQ, SEM_FN_NAME (frvbf,cckeq) },
28337 { FRVBF_INSN_CCKNE, SEM_FN_NAME (frvbf,cckne) },
28338 { FRVBF_INSN_CCKLE, SEM_FN_NAME (frvbf,cckle) },
28339 { FRVBF_INSN_CCKGT, SEM_FN_NAME (frvbf,cckgt) },
28340 { FRVBF_INSN_CCKLT, SEM_FN_NAME (frvbf,ccklt) },
28341 { FRVBF_INSN_CCKGE, SEM_FN_NAME (frvbf,cckge) },
28342 { FRVBF_INSN_CCKLS, SEM_FN_NAME (frvbf,cckls) },
28343 { FRVBF_INSN_CCKHI, SEM_FN_NAME (frvbf,cckhi) },
28344 { FRVBF_INSN_CCKC, SEM_FN_NAME (frvbf,cckc) },
28345 { FRVBF_INSN_CCKNC, SEM_FN_NAME (frvbf,ccknc) },
28346 { FRVBF_INSN_CCKN, SEM_FN_NAME (frvbf,cckn) },
28347 { FRVBF_INSN_CCKP, SEM_FN_NAME (frvbf,cckp) },
28348 { FRVBF_INSN_CCKV, SEM_FN_NAME (frvbf,cckv) },
28349 { FRVBF_INSN_CCKNV, SEM_FN_NAME (frvbf,ccknv) },
28350 { FRVBF_INSN_CFCKRA, SEM_FN_NAME (frvbf,cfckra) },
28351 { FRVBF_INSN_CFCKNO, SEM_FN_NAME (frvbf,cfckno) },
28352 { FRVBF_INSN_CFCKNE, SEM_FN_NAME (frvbf,cfckne) },
28353 { FRVBF_INSN_CFCKEQ, SEM_FN_NAME (frvbf,cfckeq) },
28354 { FRVBF_INSN_CFCKLG, SEM_FN_NAME (frvbf,cfcklg) },
28355 { FRVBF_INSN_CFCKUE, SEM_FN_NAME (frvbf,cfckue) },
28356 { FRVBF_INSN_CFCKUL, SEM_FN_NAME (frvbf,cfckul) },
28357 { FRVBF_INSN_CFCKGE, SEM_FN_NAME (frvbf,cfckge) },
28358 { FRVBF_INSN_CFCKLT, SEM_FN_NAME (frvbf,cfcklt) },
28359 { FRVBF_INSN_CFCKUGE, SEM_FN_NAME (frvbf,cfckuge) },
28360 { FRVBF_INSN_CFCKUG, SEM_FN_NAME (frvbf,cfckug) },
28361 { FRVBF_INSN_CFCKLE, SEM_FN_NAME (frvbf,cfckle) },
28362 { FRVBF_INSN_CFCKGT, SEM_FN_NAME (frvbf,cfckgt) },
28363 { FRVBF_INSN_CFCKULE, SEM_FN_NAME (frvbf,cfckule) },
28364 { FRVBF_INSN_CFCKU, SEM_FN_NAME (frvbf,cfcku) },
28365 { FRVBF_INSN_CFCKO, SEM_FN_NAME (frvbf,cfcko) },
28366 { FRVBF_INSN_CJMPL, SEM_FN_NAME (frvbf,cjmpl) },
28367 { FRVBF_INSN_CCALLL, SEM_FN_NAME (frvbf,ccalll) },
28368 { FRVBF_INSN_ICI, SEM_FN_NAME (frvbf,ici) },
28369 { FRVBF_INSN_DCI, SEM_FN_NAME (frvbf,dci) },
28370 { FRVBF_INSN_ICEI, SEM_FN_NAME (frvbf,icei) },
28371 { FRVBF_INSN_DCEI, SEM_FN_NAME (frvbf,dcei) },
28372 { FRVBF_INSN_DCF, SEM_FN_NAME (frvbf,dcf) },
28373 { FRVBF_INSN_DCEF, SEM_FN_NAME (frvbf,dcef) },
28374 { FRVBF_INSN_WITLB, SEM_FN_NAME (frvbf,witlb) },
28375 { FRVBF_INSN_WDTLB, SEM_FN_NAME (frvbf,wdtlb) },
28376 { FRVBF_INSN_ITLBI, SEM_FN_NAME (frvbf,itlbi) },
28377 { FRVBF_INSN_DTLBI, SEM_FN_NAME (frvbf,dtlbi) },
28378 { FRVBF_INSN_ICPL, SEM_FN_NAME (frvbf,icpl) },
28379 { FRVBF_INSN_DCPL, SEM_FN_NAME (frvbf,dcpl) },
28380 { FRVBF_INSN_ICUL, SEM_FN_NAME (frvbf,icul) },
28381 { FRVBF_INSN_DCUL, SEM_FN_NAME (frvbf,dcul) },
28382 { FRVBF_INSN_BAR, SEM_FN_NAME (frvbf,bar) },
28383 { FRVBF_INSN_MEMBAR, SEM_FN_NAME (frvbf,membar) },
28384 { FRVBF_INSN_COP1, SEM_FN_NAME (frvbf,cop1) },
28385 { FRVBF_INSN_COP2, SEM_FN_NAME (frvbf,cop2) },
28386 { FRVBF_INSN_CLRGR, SEM_FN_NAME (frvbf,clrgr) },
28387 { FRVBF_INSN_CLRFR, SEM_FN_NAME (frvbf,clrfr) },
28388 { FRVBF_INSN_CLRGA, SEM_FN_NAME (frvbf,clrga) },
28389 { FRVBF_INSN_CLRFA, SEM_FN_NAME (frvbf,clrfa) },
28390 { FRVBF_INSN_COMMITGR, SEM_FN_NAME (frvbf,commitgr) },
28391 { FRVBF_INSN_COMMITFR, SEM_FN_NAME (frvbf,commitfr) },
28392 { FRVBF_INSN_COMMITGA, SEM_FN_NAME (frvbf,commitga) },
28393 { FRVBF_INSN_COMMITFA, SEM_FN_NAME (frvbf,commitfa) },
28394 { FRVBF_INSN_FITOS, SEM_FN_NAME (frvbf,fitos) },
28395 { FRVBF_INSN_FSTOI, SEM_FN_NAME (frvbf,fstoi) },
28396 { FRVBF_INSN_FITOD, SEM_FN_NAME (frvbf,fitod) },
28397 { FRVBF_INSN_FDTOI, SEM_FN_NAME (frvbf,fdtoi) },
28398 { FRVBF_INSN_FDITOS, SEM_FN_NAME (frvbf,fditos) },
28399 { FRVBF_INSN_FDSTOI, SEM_FN_NAME (frvbf,fdstoi) },
28400 { FRVBF_INSN_NFDITOS, SEM_FN_NAME (frvbf,nfditos) },
28401 { FRVBF_INSN_NFDSTOI, SEM_FN_NAME (frvbf,nfdstoi) },
28402 { FRVBF_INSN_CFITOS, SEM_FN_NAME (frvbf,cfitos) },
28403 { FRVBF_INSN_CFSTOI, SEM_FN_NAME (frvbf,cfstoi) },
28404 { FRVBF_INSN_NFITOS, SEM_FN_NAME (frvbf,nfitos) },
28405 { FRVBF_INSN_NFSTOI, SEM_FN_NAME (frvbf,nfstoi) },
28406 { FRVBF_INSN_FMOVS, SEM_FN_NAME (frvbf,fmovs) },
28407 { FRVBF_INSN_FMOVD, SEM_FN_NAME (frvbf,fmovd) },
28408 { FRVBF_INSN_FDMOVS, SEM_FN_NAME (frvbf,fdmovs) },
28409 { FRVBF_INSN_CFMOVS, SEM_FN_NAME (frvbf,cfmovs) },
28410 { FRVBF_INSN_FNEGS, SEM_FN_NAME (frvbf,fnegs) },
28411 { FRVBF_INSN_FNEGD, SEM_FN_NAME (frvbf,fnegd) },
28412 { FRVBF_INSN_FDNEGS, SEM_FN_NAME (frvbf,fdnegs) },
28413 { FRVBF_INSN_CFNEGS, SEM_FN_NAME (frvbf,cfnegs) },
28414 { FRVBF_INSN_FABSS, SEM_FN_NAME (frvbf,fabss) },
28415 { FRVBF_INSN_FABSD, SEM_FN_NAME (frvbf,fabsd) },
28416 { FRVBF_INSN_FDABSS, SEM_FN_NAME (frvbf,fdabss) },
28417 { FRVBF_INSN_CFABSS, SEM_FN_NAME (frvbf,cfabss) },
28418 { FRVBF_INSN_FSQRTS, SEM_FN_NAME (frvbf,fsqrts) },
28419 { FRVBF_INSN_FDSQRTS, SEM_FN_NAME (frvbf,fdsqrts) },
28420 { FRVBF_INSN_NFDSQRTS, SEM_FN_NAME (frvbf,nfdsqrts) },
28421 { FRVBF_INSN_FSQRTD, SEM_FN_NAME (frvbf,fsqrtd) },
28422 { FRVBF_INSN_CFSQRTS, SEM_FN_NAME (frvbf,cfsqrts) },
28423 { FRVBF_INSN_NFSQRTS, SEM_FN_NAME (frvbf,nfsqrts) },
28424 { FRVBF_INSN_FADDS, SEM_FN_NAME (frvbf,fadds) },
28425 { FRVBF_INSN_FSUBS, SEM_FN_NAME (frvbf,fsubs) },
28426 { FRVBF_INSN_FMULS, SEM_FN_NAME (frvbf,fmuls) },
28427 { FRVBF_INSN_FDIVS, SEM_FN_NAME (frvbf,fdivs) },
28428 { FRVBF_INSN_FADDD, SEM_FN_NAME (frvbf,faddd) },
28429 { FRVBF_INSN_FSUBD, SEM_FN_NAME (frvbf,fsubd) },
28430 { FRVBF_INSN_FMULD, SEM_FN_NAME (frvbf,fmuld) },
28431 { FRVBF_INSN_FDIVD, SEM_FN_NAME (frvbf,fdivd) },
28432 { FRVBF_INSN_CFADDS, SEM_FN_NAME (frvbf,cfadds) },
28433 { FRVBF_INSN_CFSUBS, SEM_FN_NAME (frvbf,cfsubs) },
28434 { FRVBF_INSN_CFMULS, SEM_FN_NAME (frvbf,cfmuls) },
28435 { FRVBF_INSN_CFDIVS, SEM_FN_NAME (frvbf,cfdivs) },
28436 { FRVBF_INSN_NFADDS, SEM_FN_NAME (frvbf,nfadds) },
28437 { FRVBF_INSN_NFSUBS, SEM_FN_NAME (frvbf,nfsubs) },
28438 { FRVBF_INSN_NFMULS, SEM_FN_NAME (frvbf,nfmuls) },
28439 { FRVBF_INSN_NFDIVS, SEM_FN_NAME (frvbf,nfdivs) },
28440 { FRVBF_INSN_FCMPS, SEM_FN_NAME (frvbf,fcmps) },
28441 { FRVBF_INSN_FCMPD, SEM_FN_NAME (frvbf,fcmpd) },
28442 { FRVBF_INSN_CFCMPS, SEM_FN_NAME (frvbf,cfcmps) },
28443 { FRVBF_INSN_FDCMPS, SEM_FN_NAME (frvbf,fdcmps) },
28444 { FRVBF_INSN_FMADDS, SEM_FN_NAME (frvbf,fmadds) },
28445 { FRVBF_INSN_FMSUBS, SEM_FN_NAME (frvbf,fmsubs) },
28446 { FRVBF_INSN_FMADDD, SEM_FN_NAME (frvbf,fmaddd) },
28447 { FRVBF_INSN_FMSUBD, SEM_FN_NAME (frvbf,fmsubd) },
28448 { FRVBF_INSN_FDMADDS, SEM_FN_NAME (frvbf,fdmadds) },
28449 { FRVBF_INSN_NFDMADDS, SEM_FN_NAME (frvbf,nfdmadds) },
28450 { FRVBF_INSN_CFMADDS, SEM_FN_NAME (frvbf,cfmadds) },
28451 { FRVBF_INSN_CFMSUBS, SEM_FN_NAME (frvbf,cfmsubs) },
28452 { FRVBF_INSN_NFMADDS, SEM_FN_NAME (frvbf,nfmadds) },
28453 { FRVBF_INSN_NFMSUBS, SEM_FN_NAME (frvbf,nfmsubs) },
28454 { FRVBF_INSN_FMAS, SEM_FN_NAME (frvbf,fmas) },
28455 { FRVBF_INSN_FMSS, SEM_FN_NAME (frvbf,fmss) },
28456 { FRVBF_INSN_FDMAS, SEM_FN_NAME (frvbf,fdmas) },
28457 { FRVBF_INSN_FDMSS, SEM_FN_NAME (frvbf,fdmss) },
28458 { FRVBF_INSN_NFDMAS, SEM_FN_NAME (frvbf,nfdmas) },
28459 { FRVBF_INSN_NFDMSS, SEM_FN_NAME (frvbf,nfdmss) },
28460 { FRVBF_INSN_CFMAS, SEM_FN_NAME (frvbf,cfmas) },
28461 { FRVBF_INSN_CFMSS, SEM_FN_NAME (frvbf,cfmss) },
28462 { FRVBF_INSN_FMAD, SEM_FN_NAME (frvbf,fmad) },
28463 { FRVBF_INSN_FMSD, SEM_FN_NAME (frvbf,fmsd) },
28464 { FRVBF_INSN_NFMAS, SEM_FN_NAME (frvbf,nfmas) },
28465 { FRVBF_INSN_NFMSS, SEM_FN_NAME (frvbf,nfmss) },
28466 { FRVBF_INSN_FDADDS, SEM_FN_NAME (frvbf,fdadds) },
28467 { FRVBF_INSN_FDSUBS, SEM_FN_NAME (frvbf,fdsubs) },
28468 { FRVBF_INSN_FDMULS, SEM_FN_NAME (frvbf,fdmuls) },
28469 { FRVBF_INSN_FDDIVS, SEM_FN_NAME (frvbf,fddivs) },
28470 { FRVBF_INSN_FDSADS, SEM_FN_NAME (frvbf,fdsads) },
28471 { FRVBF_INSN_FDMULCS, SEM_FN_NAME (frvbf,fdmulcs) },
28472 { FRVBF_INSN_NFDMULCS, SEM_FN_NAME (frvbf,nfdmulcs) },
28473 { FRVBF_INSN_NFDADDS, SEM_FN_NAME (frvbf,nfdadds) },
28474 { FRVBF_INSN_NFDSUBS, SEM_FN_NAME (frvbf,nfdsubs) },
28475 { FRVBF_INSN_NFDMULS, SEM_FN_NAME (frvbf,nfdmuls) },
28476 { FRVBF_INSN_NFDDIVS, SEM_FN_NAME (frvbf,nfddivs) },
28477 { FRVBF_INSN_NFDSADS, SEM_FN_NAME (frvbf,nfdsads) },
28478 { FRVBF_INSN_NFDCMPS, SEM_FN_NAME (frvbf,nfdcmps) },
28479 { FRVBF_INSN_MHSETLOS, SEM_FN_NAME (frvbf,mhsetlos) },
28480 { FRVBF_INSN_MHSETHIS, SEM_FN_NAME (frvbf,mhsethis) },
28481 { FRVBF_INSN_MHDSETS, SEM_FN_NAME (frvbf,mhdsets) },
28482 { FRVBF_INSN_MHSETLOH, SEM_FN_NAME (frvbf,mhsetloh) },
28483 { FRVBF_INSN_MHSETHIH, SEM_FN_NAME (frvbf,mhsethih) },
28484 { FRVBF_INSN_MHDSETH, SEM_FN_NAME (frvbf,mhdseth) },
28485 { FRVBF_INSN_MAND, SEM_FN_NAME (frvbf,mand) },
28486 { FRVBF_INSN_MOR, SEM_FN_NAME (frvbf,mor) },
28487 { FRVBF_INSN_MXOR, SEM_FN_NAME (frvbf,mxor) },
28488 { FRVBF_INSN_CMAND, SEM_FN_NAME (frvbf,cmand) },
28489 { FRVBF_INSN_CMOR, SEM_FN_NAME (frvbf,cmor) },
28490 { FRVBF_INSN_CMXOR, SEM_FN_NAME (frvbf,cmxor) },
28491 { FRVBF_INSN_MNOT, SEM_FN_NAME (frvbf,mnot) },
28492 { FRVBF_INSN_CMNOT, SEM_FN_NAME (frvbf,cmnot) },
28493 { FRVBF_INSN_MROTLI, SEM_FN_NAME (frvbf,mrotli) },
28494 { FRVBF_INSN_MROTRI, SEM_FN_NAME (frvbf,mrotri) },
28495 { FRVBF_INSN_MWCUT, SEM_FN_NAME (frvbf,mwcut) },
28496 { FRVBF_INSN_MWCUTI, SEM_FN_NAME (frvbf,mwcuti) },
28497 { FRVBF_INSN_MCUT, SEM_FN_NAME (frvbf,mcut) },
28498 { FRVBF_INSN_MCUTI, SEM_FN_NAME (frvbf,mcuti) },
28499 { FRVBF_INSN_MCUTSS, SEM_FN_NAME (frvbf,mcutss) },
28500 { FRVBF_INSN_MCUTSSI, SEM_FN_NAME (frvbf,mcutssi) },
28501 { FRVBF_INSN_MDCUTSSI, SEM_FN_NAME (frvbf,mdcutssi) },
28502 { FRVBF_INSN_MAVEH, SEM_FN_NAME (frvbf,maveh) },
28503 { FRVBF_INSN_MSLLHI, SEM_FN_NAME (frvbf,msllhi) },
28504 { FRVBF_INSN_MSRLHI, SEM_FN_NAME (frvbf,msrlhi) },
28505 { FRVBF_INSN_MSRAHI, SEM_FN_NAME (frvbf,msrahi) },
28506 { FRVBF_INSN_MDROTLI, SEM_FN_NAME (frvbf,mdrotli) },
28507 { FRVBF_INSN_MCPLHI, SEM_FN_NAME (frvbf,mcplhi) },
28508 { FRVBF_INSN_MCPLI, SEM_FN_NAME (frvbf,mcpli) },
28509 { FRVBF_INSN_MSATHS, SEM_FN_NAME (frvbf,msaths) },
28510 { FRVBF_INSN_MQSATHS, SEM_FN_NAME (frvbf,mqsaths) },
28511 { FRVBF_INSN_MSATHU, SEM_FN_NAME (frvbf,msathu) },
28512 { FRVBF_INSN_MCMPSH, SEM_FN_NAME (frvbf,mcmpsh) },
28513 { FRVBF_INSN_MCMPUH, SEM_FN_NAME (frvbf,mcmpuh) },
28514 { FRVBF_INSN_MABSHS, SEM_FN_NAME (frvbf,mabshs) },
28515 { FRVBF_INSN_MADDHSS, SEM_FN_NAME (frvbf,maddhss) },
28516 { FRVBF_INSN_MADDHUS, SEM_FN_NAME (frvbf,maddhus) },
28517 { FRVBF_INSN_MSUBHSS, SEM_FN_NAME (frvbf,msubhss) },
28518 { FRVBF_INSN_MSUBHUS, SEM_FN_NAME (frvbf,msubhus) },
28519 { FRVBF_INSN_CMADDHSS, SEM_FN_NAME (frvbf,cmaddhss) },
28520 { FRVBF_INSN_CMADDHUS, SEM_FN_NAME (frvbf,cmaddhus) },
28521 { FRVBF_INSN_CMSUBHSS, SEM_FN_NAME (frvbf,cmsubhss) },
28522 { FRVBF_INSN_CMSUBHUS, SEM_FN_NAME (frvbf,cmsubhus) },
28523 { FRVBF_INSN_MQADDHSS, SEM_FN_NAME (frvbf,mqaddhss) },
28524 { FRVBF_INSN_MQADDHUS, SEM_FN_NAME (frvbf,mqaddhus) },
28525 { FRVBF_INSN_MQSUBHSS, SEM_FN_NAME (frvbf,mqsubhss) },
28526 { FRVBF_INSN_MQSUBHUS, SEM_FN_NAME (frvbf,mqsubhus) },
28527 { FRVBF_INSN_CMQADDHSS, SEM_FN_NAME (frvbf,cmqaddhss) },
28528 { FRVBF_INSN_CMQADDHUS, SEM_FN_NAME (frvbf,cmqaddhus) },
28529 { FRVBF_INSN_CMQSUBHSS, SEM_FN_NAME (frvbf,cmqsubhss) },
28530 { FRVBF_INSN_CMQSUBHUS, SEM_FN_NAME (frvbf,cmqsubhus) },
28531 { FRVBF_INSN_MADDACCS, SEM_FN_NAME (frvbf,maddaccs) },
28532 { FRVBF_INSN_MSUBACCS, SEM_FN_NAME (frvbf,msubaccs) },
28533 { FRVBF_INSN_MDADDACCS, SEM_FN_NAME (frvbf,mdaddaccs) },
28534 { FRVBF_INSN_MDSUBACCS, SEM_FN_NAME (frvbf,mdsubaccs) },
28535 { FRVBF_INSN_MASACCS, SEM_FN_NAME (frvbf,masaccs) },
28536 { FRVBF_INSN_MDASACCS, SEM_FN_NAME (frvbf,mdasaccs) },
28537 { FRVBF_INSN_MMULHS, SEM_FN_NAME (frvbf,mmulhs) },
28538 { FRVBF_INSN_MMULHU, SEM_FN_NAME (frvbf,mmulhu) },
28539 { FRVBF_INSN_MMULXHS, SEM_FN_NAME (frvbf,mmulxhs) },
28540 { FRVBF_INSN_MMULXHU, SEM_FN_NAME (frvbf,mmulxhu) },
28541 { FRVBF_INSN_CMMULHS, SEM_FN_NAME (frvbf,cmmulhs) },
28542 { FRVBF_INSN_CMMULHU, SEM_FN_NAME (frvbf,cmmulhu) },
28543 { FRVBF_INSN_MQMULHS, SEM_FN_NAME (frvbf,mqmulhs) },
28544 { FRVBF_INSN_MQMULHU, SEM_FN_NAME (frvbf,mqmulhu) },
28545 { FRVBF_INSN_MQMULXHS, SEM_FN_NAME (frvbf,mqmulxhs) },
28546 { FRVBF_INSN_MQMULXHU, SEM_FN_NAME (frvbf,mqmulxhu) },
28547 { FRVBF_INSN_CMQMULHS, SEM_FN_NAME (frvbf,cmqmulhs) },
28548 { FRVBF_INSN_CMQMULHU, SEM_FN_NAME (frvbf,cmqmulhu) },
28549 { FRVBF_INSN_MMACHS, SEM_FN_NAME (frvbf,mmachs) },
28550 { FRVBF_INSN_MMACHU, SEM_FN_NAME (frvbf,mmachu) },
28551 { FRVBF_INSN_MMRDHS, SEM_FN_NAME (frvbf,mmrdhs) },
28552 { FRVBF_INSN_MMRDHU, SEM_FN_NAME (frvbf,mmrdhu) },
28553 { FRVBF_INSN_CMMACHS, SEM_FN_NAME (frvbf,cmmachs) },
28554 { FRVBF_INSN_CMMACHU, SEM_FN_NAME (frvbf,cmmachu) },
28555 { FRVBF_INSN_MQMACHS, SEM_FN_NAME (frvbf,mqmachs) },
28556 { FRVBF_INSN_MQMACHU, SEM_FN_NAME (frvbf,mqmachu) },
28557 { FRVBF_INSN_CMQMACHS, SEM_FN_NAME (frvbf,cmqmachs) },
28558 { FRVBF_INSN_CMQMACHU, SEM_FN_NAME (frvbf,cmqmachu) },
28559 { FRVBF_INSN_MQXMACHS, SEM_FN_NAME (frvbf,mqxmachs) },
28560 { FRVBF_INSN_MQXMACXHS, SEM_FN_NAME (frvbf,mqxmacxhs) },
28561 { FRVBF_INSN_MQMACXHS, SEM_FN_NAME (frvbf,mqmacxhs) },
28562 { FRVBF_INSN_MCPXRS, SEM_FN_NAME (frvbf,mcpxrs) },
28563 { FRVBF_INSN_MCPXRU, SEM_FN_NAME (frvbf,mcpxru) },
28564 { FRVBF_INSN_MCPXIS, SEM_FN_NAME (frvbf,mcpxis) },
28565 { FRVBF_INSN_MCPXIU, SEM_FN_NAME (frvbf,mcpxiu) },
28566 { FRVBF_INSN_CMCPXRS, SEM_FN_NAME (frvbf,cmcpxrs) },
28567 { FRVBF_INSN_CMCPXRU, SEM_FN_NAME (frvbf,cmcpxru) },
28568 { FRVBF_INSN_CMCPXIS, SEM_FN_NAME (frvbf,cmcpxis) },
28569 { FRVBF_INSN_CMCPXIU, SEM_FN_NAME (frvbf,cmcpxiu) },
28570 { FRVBF_INSN_MQCPXRS, SEM_FN_NAME (frvbf,mqcpxrs) },
28571 { FRVBF_INSN_MQCPXRU, SEM_FN_NAME (frvbf,mqcpxru) },
28572 { FRVBF_INSN_MQCPXIS, SEM_FN_NAME (frvbf,mqcpxis) },
28573 { FRVBF_INSN_MQCPXIU, SEM_FN_NAME (frvbf,mqcpxiu) },
28574 { FRVBF_INSN_MEXPDHW, SEM_FN_NAME (frvbf,mexpdhw) },
28575 { FRVBF_INSN_CMEXPDHW, SEM_FN_NAME (frvbf,cmexpdhw) },
28576 { FRVBF_INSN_MEXPDHD, SEM_FN_NAME (frvbf,mexpdhd) },
28577 { FRVBF_INSN_CMEXPDHD, SEM_FN_NAME (frvbf,cmexpdhd) },
28578 { FRVBF_INSN_MPACKH, SEM_FN_NAME (frvbf,mpackh) },
28579 { FRVBF_INSN_MDPACKH, SEM_FN_NAME (frvbf,mdpackh) },
28580 { FRVBF_INSN_MUNPACKH, SEM_FN_NAME (frvbf,munpackh) },
28581 { FRVBF_INSN_MDUNPACKH, SEM_FN_NAME (frvbf,mdunpackh) },
28582 { FRVBF_INSN_MBTOH, SEM_FN_NAME (frvbf,mbtoh) },
28583 { FRVBF_INSN_CMBTOH, SEM_FN_NAME (frvbf,cmbtoh) },
28584 { FRVBF_INSN_MHTOB, SEM_FN_NAME (frvbf,mhtob) },
28585 { FRVBF_INSN_CMHTOB, SEM_FN_NAME (frvbf,cmhtob) },
28586 { FRVBF_INSN_MBTOHE, SEM_FN_NAME (frvbf,mbtohe) },
28587 { FRVBF_INSN_CMBTOHE, SEM_FN_NAME (frvbf,cmbtohe) },
28588 { FRVBF_INSN_MNOP, SEM_FN_NAME (frvbf,mnop) },
28589 { FRVBF_INSN_MCLRACC_0, SEM_FN_NAME (frvbf,mclracc_0) },
28590 { FRVBF_INSN_MCLRACC_1, SEM_FN_NAME (frvbf,mclracc_1) },
28591 { FRVBF_INSN_MRDACC, SEM_FN_NAME (frvbf,mrdacc) },
28592 { FRVBF_INSN_MRDACCG, SEM_FN_NAME (frvbf,mrdaccg) },
28593 { FRVBF_INSN_MWTACC, SEM_FN_NAME (frvbf,mwtacc) },
28594 { FRVBF_INSN_MWTACCG, SEM_FN_NAME (frvbf,mwtaccg) },
28595 { FRVBF_INSN_MCOP1, SEM_FN_NAME (frvbf,mcop1) },
28596 { FRVBF_INSN_MCOP2, SEM_FN_NAME (frvbf,mcop2) },
28597 { FRVBF_INSN_FNOP, SEM_FN_NAME (frvbf,fnop) },
28601 /* Add the semantic fns to IDESC_TABLE. */
28604 SEM_FN_NAME (frvbf,init_idesc_table) (SIM_CPU *current_cpu)
28606 IDESC *idesc_table = CPU_IDESC (current_cpu);
28607 const struct sem_fn_desc *sf;
28608 int mach_num = MACH_NUM (CPU_MACH (current_cpu));
28610 for (sf = &sem_fns[0]; sf->fn != 0; ++sf)
28612 const CGEN_INSN *insn = idesc_table[sf->index].idata;
28613 int valid_p = (CGEN_INSN_VIRTUAL_P (insn)
28614 || CGEN_INSN_MACH_HAS_P (insn, mach_num));
28617 idesc_table[sf->index].sem_fast = sf->fn;
28619 idesc_table[sf->index].sem_fast = SEM_FN_NAME (frvbf,x_invalid);
28622 idesc_table[sf->index].sem_full = sf->fn;
28624 idesc_table[sf->index].sem_full = SEM_FN_NAME (frvbf,x_invalid);